{"version":3,"sources":["webpack://hanab-live-client/./lib/tooltipster-scrollableTip.min.js","webpack://hanab-live-client/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://hanab-live-client/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://hanab-live-client/./node_modules/@sentry/browser/src/backend.ts","webpack://hanab-live-client/./node_modules/@sentry/browser/src/client.ts","webpack://hanab-live-client/./node_modules/@sentry/browser/src/eventbuilder.ts","webpack://hanab-live-client/./node_modules/@sentry/browser/src/helpers.ts","webpack://hanab-live-client/./node_modules/@sentry/browser/src/integrations/breadcrumbs.ts","webpack://hanab-live-client/./node_modules/@sentry/browser/src/integrations/globalhandlers.ts","webpack://hanab-live-client/./node_modules/@sentry/browser/src/integrations/linkederrors.ts","webpack://hanab-live-client/./node_modules/@sentry/browser/src/integrations/trycatch.ts","webpack://hanab-live-client/./node_modules/@sentry/browser/src/integrations/useragent.ts","webpack://hanab-live-client/./node_modules/@sentry/browser/src/parsers.ts","webpack://hanab-live-client/./node_modules/@sentry/browser/src/sdk.ts","webpack://hanab-live-client/./node_modules/@sentry/browser/src/tracekit.ts","webpack://hanab-live-client/./node_modules/@sentry/browser/src/transports/base.ts","webpack://hanab-live-client/./node_modules/@sentry/browser/src/transports/fetch.ts","webpack://hanab-live-client/./node_modules/@sentry/browser/src/transports/xhr.ts","webpack://hanab-live-client/./node_modules/@sentry/core/src/api.ts","webpack://hanab-live-client/./node_modules/@sentry/core/src/basebackend.ts","webpack://hanab-live-client/./node_modules/@sentry/core/src/baseclient.ts","webpack://hanab-live-client/./node_modules/@sentry/core/src/integration.ts","webpack://hanab-live-client/./node_modules/@sentry/core/src/integrations/functiontostring.ts","webpack://hanab-live-client/./node_modules/@sentry/core/src/integrations/inboundfilters.ts","webpack://hanab-live-client/./node_modules/@sentry/core/src/request.ts","webpack://hanab-live-client/./node_modules/@sentry/core/src/sdk.ts","webpack://hanab-live-client/./node_modules/@sentry/core/src/transports/noop.ts","webpack://hanab-live-client/./node_modules/@sentry/core/src/version.ts","webpack://hanab-live-client/./node_modules/@sentry/hub/src/hub.ts","webpack://hanab-live-client/./node_modules/@sentry/hub/src/scope.ts","webpack://hanab-live-client/./node_modules/@sentry/hub/src/session.ts","webpack://hanab-live-client/./node_modules/@sentry/minimal/src/index.ts","webpack://hanab-live-client/./node_modules/@sentry/types/src/session.ts","webpack://hanab-live-client/./node_modules/@sentry/types/src/severity.ts","webpack://hanab-live-client/./node_modules/@sentry/types/src/status.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/browser.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/dsn.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/error.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/instrument.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/is.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/logger.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/memo.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/misc.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/node.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/object.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/polyfill.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/promisebuffer.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/stacktrace.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/string.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/supports.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/syncpromise.ts","webpack://hanab-live-client/./node_modules/@sentry/utils/src/time.ts","webpack://hanab-live-client/./node_modules/fast-deep-equal/index.js","webpack://hanab-live-client/./node_modules/immer/src/utils/errors.ts","webpack://hanab-live-client/./node_modules/immer/src/utils/common.ts","webpack://hanab-live-client/./node_modules/immer/src/types/types-internal.ts","webpack://hanab-live-client/./node_modules/immer/src/utils/plugins.ts","webpack://hanab-live-client/./node_modules/immer/src/core/scope.ts","webpack://hanab-live-client/./node_modules/immer/src/core/finalize.ts","webpack://hanab-live-client/./node_modules/immer/src/core/proxy.ts","webpack://hanab-live-client/./node_modules/immer/src/core/immerClass.ts","webpack://hanab-live-client/./node_modules/immer/src/core/current.ts","webpack://hanab-live-client/./node_modules/immer/src/plugins/es5.ts","webpack://hanab-live-client/./node_modules/immer/src/plugins/patches.ts","webpack://hanab-live-client/./node_modules/immer/src/plugins/mapset.ts","webpack://hanab-live-client/./node_modules/immer/src/plugins/all.ts","webpack://hanab-live-client/./node_modules/immer/src/immer.ts","webpack://hanab-live-client/./node_modules/immer/src/utils/env.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/_header.js","webpack://hanab-live-client/./node_modules/interactjs/dist/node_modules/browser-pack-flat/_prelude","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/isWindow.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/window.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/is.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/actions/drag/plugin.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/domObjects.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/browser.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/domUtils.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/extend.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/rect.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/getOriginXY.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/normalizeListeners.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/hypot.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/pointerExtend.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/pointerUtils.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/core/BaseEvent.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/arr.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/actions/drop/DropEvent.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/actions/drop/plugin.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/actions/gesture/plugin.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/actions/resize/plugin.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/actions/plugin.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/raf.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/auto-scroll/plugin.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/misc.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/auto-start/InteractableMethods.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/auto-start/base.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/auto-start/dragAxis.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/auto-start/hold.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/auto-start/plugin.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/core/interactablePreventDefault.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/dev-tools/visualizer/plugin.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/dev-tools/plugin.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/utils/clone.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/modifiers/Modification.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/modifiers/base.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/core/options.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/core/InteractEvent.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/core/PointerInfo.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/core/Interaction.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/offset/plugin.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/inertia/plugin.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/core/Eventable.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/core/isNonNativeEvent.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/core/InteractStatic.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/core/Interactable.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/core/InteractableSet.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/core/events.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/core/interactionFinder.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/core/interactions.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/core/scope.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/interact/index.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/snappers/edgeTarget.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/snappers/elements.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/snappers/grid.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/snappers/plugin.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/modifiers/aspectRatio.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/modifiers/noop.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/modifiers/restrict/pointer.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/modifiers/restrict/edges.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/modifiers/restrict/rect.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/modifiers/restrict/size.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/modifiers/snap/pointer.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/modifiers/snap/size.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/modifiers/snap/edges.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/modifiers/all.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/modifiers/plugin.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/pointer-events/PointerEvent.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/pointer-events/base.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/pointer-events/holdRepeat.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/pointer-events/interactableTargets.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/pointer-events/plugin.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/reflow/plugin.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/@interactjs/interactjs/index.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/packages/interactjs/index.ts","webpack://hanab-live-client/./node_modules/interactjs/dist/node_modules/browser-pack-flat/_postlude","webpack://hanab-live-client/./node_modules/jquery/dist/jquery.js","webpack://hanab-live-client/./node_modules/keycode-js/dist/keycode.esm.js","webpack://hanab-live-client/./node_modules/konva/lib/Animation.js","webpack://hanab-live-client/./node_modules/konva/lib/BaseLayer.js","webpack://hanab-live-client/./node_modules/konva/lib/Canvas.js","webpack://hanab-live-client/./node_modules/konva/lib/Container.js","webpack://hanab-live-client/./node_modules/konva/lib/Context.js","webpack://hanab-live-client/./node_modules/konva/lib/DragAndDrop.js","webpack://hanab-live-client/./node_modules/konva/lib/Factory.js","webpack://hanab-live-client/./node_modules/konva/lib/FastLayer.js","webpack://hanab-live-client/./node_modules/konva/lib/Global.js","webpack://hanab-live-client/./node_modules/konva/lib/Group.js","webpack://hanab-live-client/./node_modules/konva/lib/Layer.js","webpack://hanab-live-client/./node_modules/konva/lib/Node.js","webpack://hanab-live-client/./node_modules/konva/lib/PointerEvents.js","webpack://hanab-live-client/./node_modules/konva/lib/Shape.js","webpack://hanab-live-client/./node_modules/konva/lib/Stage.js","webpack://hanab-live-client/./node_modules/konva/lib/Tween.js","webpack://hanab-live-client/./node_modules/konva/lib/Util.js","webpack://hanab-live-client/./node_modules/konva/lib/Validators.js","webpack://hanab-live-client/./node_modules/konva/lib/_CoreInternals.js","webpack://hanab-live-client/./node_modules/konva/lib/_FullInternals.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/Blur.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/Brighten.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/Contrast.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/Emboss.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/Enhance.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/Grayscale.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/HSL.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/HSV.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/Invert.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/Kaleidoscope.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/Mask.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/Noise.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/Pixelate.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/Posterize.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/RGB.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/RGBA.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/Sepia.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/Solarize.js","webpack://hanab-live-client/./node_modules/konva/lib/filters/Threshold.js","webpack://hanab-live-client/./node_modules/konva/lib/index.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/Arc.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/Arrow.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/Circle.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/Ellipse.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/Image.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/Label.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/Line.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/Path.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/Rect.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/RegularPolygon.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/Ring.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/Sprite.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/Star.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/Text.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/TextPath.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/Transformer.js","webpack://hanab-live-client/./node_modules/konva/lib/shapes/Wedge.js","webpack://hanab-live-client/./node_modules/linkifyjs/html.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/linkify-html.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/linkify.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/linkify/core/parser.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/linkify/core/scanner.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/linkify/core/state.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/linkify/core/tokens/create-token-class.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/linkify/core/tokens/multi.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/linkify/core/tokens/text.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/linkify/utils/class.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/linkify/utils/options.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/simple-html-tokenizer.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/simple-html-tokenizer/entity-parser.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/simple-html-tokenizer/evented-tokenizer.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/simple-html-tokenizer/html5-named-char-refs.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/simple-html-tokenizer/tokenize.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/simple-html-tokenizer/tokenizer.js","webpack://hanab-live-client/./node_modules/linkifyjs/lib/simple-html-tokenizer/utils.js","webpack://hanab-live-client/./node_modules/redux/es/redux.js","webpack://hanab-live-client/./node_modules/tooltipster/dist/js/tooltipster.bundle.min.js","webpack://hanab-live-client/./node_modules/tslib/tslib.es6.js","webpack://hanab-live-client/./src/Connection.ts","webpack://hanab-live-client/./src/Loader.ts","webpack://hanab-live-client/./src/chat.ts","webpack://hanab-live-client/./src/chatCommands.ts","webpack://hanab-live-client/./src/commands.ts","webpack://hanab-live-client/./src/constants.ts","webpack://hanab-live-client/./src/debug.ts","webpack://hanab-live-client/./src/game/chat.ts","webpack://hanab-live-client/./src/game/data/charactersInit.ts","webpack://hanab-live-client/./src/game/data/colorsInit.ts","webpack://hanab-live-client/./src/game/data/gameData.ts","webpack://hanab-live-client/./src/game/data/suitsInit.ts","webpack://hanab-live-client/./src/game/data/variantsInit.ts","webpack://hanab-live-client/./src/game/main.ts","webpack://hanab-live-client/./src/game/reducers/UIReducer.ts","webpack://hanab-live-client/./src/game/reducers/cardDeductionReducer.ts","webpack://hanab-live-client/./src/game/reducers/cardPossibilitiesReducer.ts","webpack://hanab-live-client/./src/game/reducers/cardsReducer.ts","webpack://hanab-live-client/./src/game/reducers/constants.ts","webpack://hanab-live-client/./src/game/reducers/ddaReducer.ts","webpack://hanab-live-client/./src/game/reducers/gameStateReducer.ts","webpack://hanab-live-client/./src/game/reducers/getSoundType.ts","webpack://hanab-live-client/./src/game/reducers/initialStates/initialCardState.ts","webpack://hanab-live-client/./src/game/reducers/initialStates/initialGameState.ts","webpack://hanab-live-client/./src/game/reducers/initialStates/initialState.ts","webpack://hanab-live-client/./src/game/reducers/initialStates/initialTurnState.ts","webpack://hanab-live-client/./src/game/reducers/noteIdentity.ts","webpack://hanab-live-client/./src/game/reducers/notesReducer.ts","webpack://hanab-live-client/./src/game/reducers/reducerHelpers.ts","webpack://hanab-live-client/./src/game/reducers/replayReducer.ts","webpack://hanab-live-client/./src/game/reducers/stateReducer.ts","webpack://hanab-live-client/./src/game/reducers/statsReducer.ts","webpack://hanab-live-client/./src/game/reducers/turnReducer.ts","webpack://hanab-live-client/./src/game/rules.ts","webpack://hanab-live-client/./src/game/rules/abbreviation.ts","webpack://hanab-live-client/./src/game/rules/card.ts","webpack://hanab-live-client/./src/game/rules/clueTokens.ts","webpack://hanab-live-client/./src/game/rules/clues.ts","webpack://hanab-live-client/./src/game/rules/deck.ts","webpack://hanab-live-client/./src/game/rules/hand.ts","webpack://hanab-live-client/./src/game/rules/hyphenated.ts","webpack://hanab-live-client/./src/game/rules/playStacks.ts","webpack://hanab-live-client/./src/game/rules/segment.ts","webpack://hanab-live-client/./src/game/rules/stats.ts","webpack://hanab-live-client/./src/game/rules/text.ts","webpack://hanab-live-client/./src/game/rules/turn.ts","webpack://hanab-live-client/./src/game/rules/variant.ts","webpack://hanab-live-client/./src/game/rules/variants/characters.ts","webpack://hanab-live-client/./src/game/rules/variants/reversible.ts","webpack://hanab-live-client/./src/game/types/ActionType.ts","webpack://hanab-live-client/./src/game/types/CardStatus.ts","webpack://hanab-live-client/./src/game/types/Clue.ts","webpack://hanab-live-client/./src/game/types/ClueType.ts","webpack://hanab-live-client/./src/game/types/EndCondition.ts","webpack://hanab-live-client/./src/game/types/GameMetadata.ts","webpack://hanab-live-client/./src/game/types/ReplayActionType.ts","webpack://hanab-live-client/./src/game/types/ReplayArrowOrder.ts","webpack://hanab-live-client/./src/game/types/SoundType.ts","webpack://hanab-live-client/./src/game/types/StackDirection.ts","webpack://hanab-live-client/./src/game/types/constants.ts","webpack://hanab-live-client/./src/game/ui/ButtonGroup.ts","webpack://hanab-live-client/./src/game/ui/CardLayout.ts","webpack://hanab-live-client/./src/game/ui/ClueEntry.ts","webpack://hanab-live-client/./src/game/ui/ClueLog.ts","webpack://hanab-live-client/./src/game/ui/ColorButton.ts","webpack://hanab-live-client/./src/game/ui/Deck.ts","webpack://hanab-live-client/./src/game/ui/Elements.ts","webpack://hanab-live-client/./src/game/ui/FullActionLog.ts","webpack://hanab-live-client/./src/game/ui/HanabiCard.ts","webpack://hanab-live-client/./src/game/ui/HanabiCardClick.ts","webpack://hanab-live-client/./src/game/ui/HanabiCardClickSpeedrun.ts","webpack://hanab-live-client/./src/game/ui/HanabiCardInit.ts","webpack://hanab-live-client/./src/game/ui/HanabiCardMouse.ts","webpack://hanab-live-client/./src/game/ui/HanabiCardTouchActions.ts","webpack://hanab-live-client/./src/game/ui/HanabiUI.ts","webpack://hanab-live-client/./src/game/ui/Layers.ts","webpack://hanab-live-client/./src/game/ui/LayoutChild.ts","webpack://hanab-live-client/./src/game/ui/MultiFitText.ts","webpack://hanab-live-client/./src/game/ui/NameFrame.ts","webpack://hanab-live-client/./src/game/ui/PlayStack.ts","webpack://hanab-live-client/./src/game/ui/RankButton.ts","webpack://hanab-live-client/./src/game/ui/arrows.ts","webpack://hanab-live-client/./src/game/ui/backToLobby.ts","webpack://hanab-live-client/./src/game/ui/clues.ts","webpack://hanab-live-client/./src/game/ui/constants.ts","webpack://hanab-live-client/./src/game/ui/controls/Arrow.ts","webpack://hanab-live-client/./src/game/ui/controls/Button.ts","webpack://hanab-live-client/./src/game/ui/controls/CheckButton.ts","webpack://hanab-live-client/./src/game/ui/controls/CurrentPlayerArea.ts","webpack://hanab-live-client/./src/game/ui/controls/EnterHypoButton.ts","webpack://hanab-live-client/./src/game/ui/controls/FitText.ts","webpack://hanab-live-client/./src/game/ui/controls/ImageWithTooltip.ts","webpack://hanab-live-client/./src/game/ui/controls/NoteIndicator.ts","webpack://hanab-live-client/./src/game/ui/controls/PlayerButton.ts","webpack://hanab-live-client/./src/game/ui/controls/RankPip.ts","webpack://hanab-live-client/./src/game/ui/controls/RectWithTooltip.ts","webpack://hanab-live-client/./src/game/ui/controls/SharedTurnsButton.ts","webpack://hanab-live-client/./src/game/ui/controls/Shuttle.ts","webpack://hanab-live-client/./src/game/ui/controls/SlidableGroup.ts","webpack://hanab-live-client/./src/game/ui/controls/StrikeSquare.ts","webpack://hanab-live-client/./src/game/ui/controls/StrikeX.ts","webpack://hanab-live-client/./src/game/ui/controls/TextWithTooltip.ts","webpack://hanab-live-client/./src/game/ui/controls/TimerDisplay.ts","webpack://hanab-live-client/./src/game/ui/convert.ts","webpack://hanab-live-client/./src/game/ui/cursor.ts","webpack://hanab-live-client/./src/game/ui/drawCards.ts","webpack://hanab-live-client/./src/game/ui/drawCardsBrowser.ts","webpack://hanab-live-client/./src/game/ui/drawHands.ts","webpack://hanab-live-client/./src/game/ui/drawPip.ts","webpack://hanab-live-client/./src/game/ui/drawReplayArea.ts","webpack://hanab-live-client/./src/game/ui/drawStylizedRank.ts","webpack://hanab-live-client/./src/game/ui/drawUI.ts","webpack://hanab-live-client/./src/game/ui/gameCommands.ts","webpack://hanab-live-client/./src/game/ui/getCardOrStackBase.ts","webpack://hanab-live-client/./src/game/ui/globals.ts","webpack://hanab-live-client/./src/game/ui/hypothetical.ts","webpack://hanab-live-client/./src/game/ui/isOurTurn.ts","webpack://hanab-live-client/./src/game/ui/keyboard.ts","webpack://hanab-live-client/./src/game/ui/konvaHelpers.ts","webpack://hanab-live-client/./src/game/ui/noteCheckImpossibility.ts","webpack://hanab-live-client/./src/game/ui/notes.ts","webpack://hanab-live-client/./src/game/ui/ourHand.ts","webpack://hanab-live-client/./src/game/ui/reactive/StateObserver.ts","webpack://hanab-live-client/./src/game/ui/reactive/observeStore.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/animateFastView.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/cardLayoutView.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/cardsView.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/cluesView.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/currentPlayerAreaView.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/deckView.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/gameInfoView.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/hypotheticalView.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/initView.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/logView.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/pauseView.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/premoveView.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/replayView.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/soundView.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/spectatorsView.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/statsView.ts","webpack://hanab-live-client/./src/game/ui/reactive/view/turn.ts","webpack://hanab-live-client/./src/game/ui/replay.ts","webpack://hanab-live-client/./src/game/ui/setGlobalEmpathy.ts","webpack://hanab-live-client/./src/game/ui/stats.ts","webpack://hanab-live-client/./src/game/ui/timer.ts","webpack://hanab-live-client/./src/game/ui/tooltips.ts","webpack://hanab-live-client/./src/game/ui/turn.ts","webpack://hanab-live-client/./src/game/ui/uiInit.ts","webpack://hanab-live-client/./src/globals.ts","webpack://hanab-live-client/./src/lobby/createGame.ts","webpack://hanab-live-client/./src/lobby/history.ts","webpack://hanab-live-client/./src/lobby/idleInit.ts","webpack://hanab-live-client/./src/lobby/keyboardInit.ts","webpack://hanab-live-client/./src/lobby/lobbyCommands.ts","webpack://hanab-live-client/./src/lobby/login.ts","webpack://hanab-live-client/./src/lobby/nav.ts","webpack://hanab-live-client/./src/lobby/pregame.ts","webpack://hanab-live-client/./src/lobby/settingsTooltip.ts","webpack://hanab-live-client/./src/lobby/tablesDraw.ts","webpack://hanab-live-client/./src/lobby/tutorialInit.ts","webpack://hanab-live-client/./src/lobby/types/Screen.ts","webpack://hanab-live-client/./src/lobby/types/Settings.ts","webpack://hanab-live-client/./src/lobby/types/Status.ts","webpack://hanab-live-client/./src/lobby/url.ts","webpack://hanab-live-client/./src/lobby/usersDraw.ts","webpack://hanab-live-client/./src/lobby/watchReplay.ts","webpack://hanab-live-client/./src/misc.ts","webpack://hanab-live-client/./src/modals.ts","webpack://hanab-live-client/./src/notifications.ts","webpack://hanab-live-client/./src/sentry.ts","webpack://hanab-live-client/./src/sounds.ts","webpack://hanab-live-client/./src/tooltips.ts","webpack://hanab-live-client/./src/websocketInit.ts","webpack://hanab-live-client/webpack/bootstrap","webpack://hanab-live-client/webpack/runtime/compat get default export","webpack://hanab-live-client/webpack/runtime/define property getters","webpack://hanab-live-client/webpack/runtime/global","webpack://hanab-live-client/webpack/runtime/harmony module decorator","webpack://hanab-live-client/webpack/runtime/hasOwnProperty shorthand","webpack://hanab-live-client/webpack/runtime/make namespace object","webpack://hanab-live-client/./src/main.ts"],"names":["die","error","args","e","errors","msg","apply","Error","length","map","s","join","isDraft","value","DRAFT_STATE","isDraftable","proto","Object","getPrototypeOf","Ctor","hasOwnProperty","call","constructor","Function","toString","objectCtorString","isPlainObject","Array","isArray","DRAFTABLE","isMap","isSet","original","base_","each","obj","iter","enumerableOnly","getArchtype","keys","ownKeys","forEach","key","entry","index","thing","state","type_","has","prop","prototype","get","set","propOrOldValue","t","delete","add","is","x","y","target","hasMap","Map","hasSet","Set","latest","copy_","shallowCopy","base","slice","descriptors","getOwnPropertyDescriptors","i","desc","writable","configurable","enumerable","create","freeze","deep","isFrozen","clear","dontMutateFrozenCollections","getPlugin","pluginKey","plugin","plugins","loadPlugin","implementation","getCurrentScope","process","currentScope","usePatchesInScope","scope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer","immer_","canAutoFreeze_","unfinalizedDrafts_","draft","revoke_","revoked_","processResult","result","baseDraft","isReplaced","undefined","useProxies_","willFinalizeES5_","modified_","finalize","maybeFreeze","generateReplacementPatches_","NOTHING","rootScope","path","childValue","finalizeProperty","scope_","finalized_","draft_","generatePatches_","parentState","targetObject","rootPath","res","assigned_","concat","autoFreeze_","peek","getDescriptorFromProto","source","getOwnPropertyDescriptor","markChanged","prepareCopy","createProxy","parent","proxyMap_","proxySet_","isManual_","traps","objectTraps","arrayTraps","Proxy","revocable","revoke","proxy","createProxyProxy","createES5Proxy_","push","current","currentImpl","copy","archType","hasChanges_","copyHelper","from","enableES5","proxyProperty","this","assertUnrevoked","markChangesSweep","drafts","hasArrayChanges","hasObjectChanges","baseValue","baseIsDraft","descriptor","JSON","stringify","defineProperty","createES5Draft","markChangesRecursively","object","min","Math","enablePatches","deepClonePatchValue","entries","cloned","clonePatchValueIfNeeded","ADD","applyPatches_","patches","patch","op","parentType","p","type","splice","basePath","inversePatches","assignedValue","origValue","generatePatchesFromAssigned","generateArrayPatches","unshift","generateSetPatches","rootState","replacement","enableMapSet","__extends","d","b","__","extendStatics","prepareMapCopy","prepareSetCopy","setPrototypeOf","__proto__","DraftMap","size","cb","thisArg","_value","_this","values","iterator","iteratorSymbol","_this2","next","r","done","_this3","DraftSet","enableAllPlugins","castDraft","castImmutable","hasSymbol","Symbol","hasProxies","Reflect","for","data","getOwnPropertySymbols","getOwnPropertyNames","_desc$get","readPropFromProto","currentState","deleteProperty","owner","fn","arguments","isNaN","parseInt","Immer","config","recipe","defaultBase","self","produce","hasError","Promise","then","arg1","arg2","produceWithPatches","ip","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","applyPatchesImpl","bind"],"mappings":";;;;;;;;;AAAA,qHAAqD,KAAqC,CAAC,iCAAO,CAAC,sGAAa,CAAC,mCAAC,YAAY,YAAY;AAAA,kGAAC,CAAC,CAA2E,CAAC,kBAAkB,8BAA8B,mCAAmC,mBAAmB,WAAW,+JAA+J,wCAAwC,+DAA+D,SAAS,kCAAkC,gCAAgC,qBAAqB,KAAK,aAAa,+BAA+B,SAAS,mOAAmO,2BAA2B,oFAAoF,sBAAsB,2CAA2C,yDAAyD,iBAAiB,2aAA2a,uBAAuB,kCAAkC,EAAE,6CAA6C,uBAAuB,qFAAqF,EAAE,6EAA6E,EAAE,sBAAsB,6CAA6C,IAAI,E;;;;;;;;;;;;;;;ACA98D;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA,C;;;;;;;;;;;;;;;;ACbiD;;AAEjD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEe;AACf,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA,QAAQ,2DAAc;AACtB,OAAO;AACP,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,C;;;;;;;;;;;;;;;;;;;;;;;ACtC2C;AACoC;AACjC;AAEwB;AACV;AA4B5D;;;GAGG;AACH;IAAoC,yEAA2B;IAA/D;;IAqCA,CAAC;IApCC;;OAEG;IACI,2CAAkB,GAAzB,UAA0B,SAAkB,EAAE,IAAgB;QAC5D,OAAO,iEAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IACD;;OAEG;IACI,yCAAgB,GAAvB,UAAwB,OAAe,EAAE,KAA+B,EAAE,IAAgB;QAAjD,gCAAkB,wDAAa;QACtE,OAAO,+DAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACO,wCAAe,GAAzB;QACE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACtB,6DAA6D;YAC7D,OAAO,iBAAM,eAAe,WAAE,CAAC;SAChC;QAED,IAAM,gBAAgB,GAAG,oGACpB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KACjC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EACtB,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,GACnC,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC3B,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;SACtD;QACD,IAAI,4DAAa,EAAE,EAAE;YACnB,OAAO,IAAI,uDAAc,CAAC,gBAAgB,CAAC,CAAC;SAC7C;QACD,OAAO,IAAI,qDAAY,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IACH,qBAAC;AAAD,CAAC,CArCmC,qDAAW,GAqC9C;;;;;;;;;;;;;;;;;;;;;;;;;;AC1E6D;AAEN;AAEG;AACS;AACvB;AAE7C;;;;;GAKG;AACH;IAAmC,wEAA0C;IAC3E;;;;OAIG;IACH,uBAAmB,OAA4B;QAA5B,sCAA4B;QAA/C,iBAcC;QAbC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;QAC5C,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;YAC/C,IAAI,EAAE,2BAA2B;YACjC,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,qDAAW;iBACrB;aACF;YACD,OAAO,EAAE,qDAAW;SACrB,CAAC;QAEF,0BAAM,oDAAc,EAAE,OAAO,CAAC,SAAC;;IACjC,CAAC;IAED;;;;OAIG;IACI,wCAAgB,GAAvB,UAAwB,OAAiC;QAAjC,sCAAiC;QACvD,iDAAiD;QACjD,IAAM,QAAQ,GAAG,8DAAe,EAAU,CAAC,QAAQ,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;YACtB,uDAAY,CAAC,6DAA6D,CAAC,CAAC;YAC5E,OAAO;SACR;QAED,4DAAkB,CAAC,oGACd,OAAO,KACV,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,IACjC,CAAC;IACL,CAAC;IAED;;OAEG;IACO,qCAAa,GAAvB,UAAwB,KAAY,EAAE,KAAa,EAAE,IAAgB;QACnE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC;QAChD,OAAO,iBAAM,aAAa,YAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACO,kCAAU,GAApB,UAAqB,KAAY;QAC/B,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,sDAAW,CAAC,CAAC;QACrD,IAAI,WAAW,EAAE;YACf,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SACxC;QACD,iBAAM,UAAU,YAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACH,oBAAC;AAAD,CAAC,CA/DkC,oDAAU,GA+D5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7EmE;AAW7C;AAEsE;AAC9C;AAE/C;;;GAGG;AACI,SAAS,kBAAkB,CAAC,OAAgB,EAAE,SAAkB,EAAE,IAAgB;IACvF,IAAM,kBAAkB,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC;IAC1E,IAAM,KAAK,GAAG,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,EAAE;QACjE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;KAC3C,CAAC,CAAC;IACH,oEAAqB,CAAC,KAAK,EAAE;QAC3B,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,GAAG,yDAAc,CAAC;IAC7B,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;QACzB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;KAChC;IACD,OAAO,8DAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACI,SAAS,gBAAgB,CAC9B,OAAgB,EAChB,OAAe,EACf,KAA+B,EAC/B,IAAgB;IADhB,gCAAkB,wDAAa;IAG/B,IAAM,kBAAkB,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC;IAC1E,IAAM,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE,kBAAkB,EAAE;QACzD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;KAC3C,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;QACzB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;KAChC;IACD,OAAO,8DAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACI,SAAS,qBAAqB,CACnC,SAAkB,EAClB,kBAA0B,EAC1B,OAGM;IAHN,sCAGM;IAEN,IAAI,KAAY,CAAC;IAEjB,IAAI,2DAAY,CAAC,SAAuB,CAAC,IAAK,SAAwB,CAAC,KAAK,EAAE;QAC5E,+EAA+E;QAC/E,IAAM,UAAU,GAAG,SAAuB,CAAC;QAC3C,6CAA6C;QAC7C,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC;QAC7B,KAAK,GAAG,6DAAmB,CAAC,4DAAiB,CAAC,SAAkB,CAAC,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;KACd;IACD,IAAI,yDAAU,CAAC,SAAqB,CAAC,IAAI,6DAAc,CAAC,SAAyB,CAAC,EAAE;QAClF,oGAAoG;QACpG,wFAAwF;QACxF,4DAA4D;QAC5D,gEAAgE;QAChE,IAAM,YAAY,GAAG,SAAyB,CAAC;QAC/C,IAAM,MAAI,GAAG,YAAY,CAAC,IAAI,IAAI,CAAC,yDAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC3F,IAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAI,MAAI,UAAK,YAAY,CAAC,OAAS,CAAC,CAAC,CAAC,MAAI,CAAC;QAEjF,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAC9D,oEAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtC,IAAI,MAAM,IAAI,YAAY,EAAE;YAC1B,KAAK,CAAC,IAAI,GAAG,oGAAK,KAAK,CAAC,IAAI,KAAE,mBAAmB,EAAE,KAAG,YAAY,CAAC,IAAM,GAAE,CAAC;SAC7E;QAED,OAAO,KAAK,CAAC;KACd;IACD,IAAI,sDAAO,CAAC,SAAkB,CAAC,EAAE;QAC/B,0CAA0C;QAC1C,KAAK,GAAG,6DAAmB,CAAC,4DAAiB,CAAC,SAAkB,CAAC,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;KACd;IACD,IAAI,4DAAa,CAAC,SAAS,CAAC,IAAI,sDAAO,CAAC,SAAS,CAAC,EAAE;QAClD,4EAA4E;QAC5E,6DAA6D;QAC7D,yEAAyE;QACzE,IAAM,eAAe,GAAG,SAAoC,CAAC;QAC7D,KAAK,GAAG,8DAAoB,CAAC,eAAe,EAAE,kBAAkB,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACrF,oEAAqB,CAAC,KAAK,EAAE;YAC3B,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;KACd;IAED,sEAAsE;IACtE,4BAA4B;IAC5B,gCAAgC;IAChC,yBAAyB;IACzB,yBAAyB;IACzB,oDAAoD;IACpD,mBAAmB;IACnB,EAAE;IACF,kDAAkD;IAClD,KAAK,GAAG,eAAe,CAAC,SAAmB,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAC1E,oEAAqB,CAAC,KAAK,EAAE,KAAG,SAAW,EAAE,SAAS,CAAC,CAAC;IACxD,oEAAqB,CAAC,KAAK,EAAE;QAC3B,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACI,SAAS,eAAe,CAC7B,KAAa,EACb,kBAA0B,EAC1B,OAEM;IAFN,sCAEM;IAEN,IAAM,KAAK,GAAU;QACnB,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,IAAI,OAAO,CAAC,gBAAgB,IAAI,kBAAkB,EAAE;QAClD,IAAM,UAAU,GAAG,4DAAiB,CAAC,kBAAkB,CAAC,CAAC;QACzD,IAAM,QAAM,GAAG,+DAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvD,KAAK,CAAC,UAAU,GAAG;YACjB,MAAM;SACP,CAAC;KACH;IAED,OAAO,KAAK,CAAC;AACf,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACzJ+D;AAEqB;AAErF,IAAI,aAAa,GAAW,CAAC,CAAC;AAE9B;;GAEG;AACI,SAAS,mBAAmB;IACjC,OAAO,aAAa,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACI,SAAS,iBAAiB;IAC/B,2CAA2C;IAC3C,aAAa,IAAI,CAAC,CAAC;IACnB,UAAU,CAAC;QACT,aAAa,IAAI,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACI,SAAS,IAAI,CAClB,EAAmB,EACnB,OAEM,EACN,MAAwB;IAHxB,sCAEM;IAIN,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;QAC5B,OAAO,EAAE,CAAC;KACX;IAED,IAAI;QACF,+BAA+B;QAC/B,IAAI,EAAE,CAAC,UAAU,EAAE;YACjB,OAAO,EAAE,CAAC;SACX;QAED,6EAA6E;QAC7E,IAAI,EAAE,CAAC,kBAAkB,EAAE;YACzB,OAAO,EAAE,CAAC,kBAAkB,CAAC;SAC9B;KACF;IAAC,OAAO,CAAC,EAAE;QACV,4DAA4D;QAC5D,gEAAgE;QAChE,6EAA6E;QAC7E,OAAO,EAAE,CAAC;KACX;IAED,uCAAuC;IACvC,8DAA8D;IAC9D,IAAM,aAAa,GAAoB;QACrC,IAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnD,IAAI;YACF,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;gBAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;aAC/B;YAED,0GAA0G;YAC1G,IAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAC,GAAQ,IAAK,WAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAlB,CAAkB,CAAC,CAAC;YAEpE,IAAI,EAAE,CAAC,WAAW,EAAE;gBAClB,uCAAuC;gBACvC,0EAA0E;gBAC1E,6FAA6F;gBAC7F,iFAAiF;gBACjF,sEAAsE;gBACtE,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;aACrD;YACD,uCAAuC;YACvC,0EAA0E;YAC1E,6FAA6F;YAC7F,iFAAiF;YACjF,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;SACzC;QAAC,OAAO,EAAE,EAAE;YACX,iBAAiB,EAAE,CAAC;YAEpB,uDAAS,CAAC,UAAC,KAAY;gBACrB,KAAK,CAAC,iBAAiB,CAAC,UAAC,KAAkB;oBACzC,IAAM,cAAc,GAAG,oDAAK,KAAK,CAAE,CAAC;oBAEpC,IAAI,OAAO,CAAC,SAAS,EAAE;wBACrB,oEAAqB,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;wBAC5D,oEAAqB,CAAC,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;qBAC1D;oBAED,cAAc,CAAC,KAAK,GAAG,oGAClB,cAAc,CAAC,KAAK,KACvB,SAAS,EAAE,IAAI,GAChB,CAAC;oBAEF,OAAO,cAAc,CAAC;gBACxB,CAAC,CAAC,CAAC;gBAEH,8DAAgB,CAAC,EAAE,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,MAAM,EAAE,CAAC;SACV;IACH,CAAC,CAAC;IACF,sCAAsC;IAEtC,mCAAmC;IACnC,kEAAkE;IAClE,IAAI;QACF,KAAK,IAAM,QAAQ,IAAI,EAAE,EAAE;YACzB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACtD,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;aACxC;SACF;KACF;IAAC,OAAO,GAAG,EAAE,GAAE,CAAC,+BAA+B;IAEhD,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC;IAClC,aAAa,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;IAEvC,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,oBAAoB,EAAE;QAC9C,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,aAAa;KACrB,CAAC,CAAC;IAEH,4DAA4D;IAC5D,qEAAqE;IACrE,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE;QACrC,UAAU,EAAE;YACV,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,IAAI;SACZ;QACD,mBAAmB,EAAE;YACnB,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,EAAE;SACV;KACF,CAAC,CAAC;IAEH,+DAA+D;IAC/D,IAAI;QACF,IAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,aAAa,EAAE,MAAM,CAAuB,CAAC;QAChG,IAAI,UAAU,CAAC,YAAY,EAAE;YAC3B,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE;gBAC3C,GAAG,EAAH;oBACE,OAAO,EAAE,CAAC,IAAI,CAAC;gBACjB,CAAC;aACF,CAAC,CAAC;SACJ;QACD,oCAAoC;KACrC;IAAC,OAAO,GAAG,EAAE,GAAE;IAEhB,OAAO,aAAa,CAAC;AACvB,CAAC;AA8BD;;;GAGG;AACI,SAAS,kBAAkB,CAAC,OAAiC;IAAjC,sCAAiC;IAClE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QACpB,uDAAY,CAAC,iDAAiD,CAAC,CAAC;QAChE,OAAO;KACR;IACD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;QAChB,uDAAY,CAAC,6CAA6C,CAAC,CAAC;QAC5D,OAAO;KACR;IAED,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,GAAG,GAAG,IAAI,6CAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEnE,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,6DAA6D;QAC7D,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;KAChC;IAED,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACtND,+DAA+D;AAC/D,8BAA8B;AACe;AACgB;AAQtC;AAYvB;;;GAGG;AACH;IAcE;;OAEG;IACH,qBAAmB,OAAqC;QAXxD;;WAEG;QACI,SAAI,GAAW,WAAW,CAAC,EAAE,CAAC;QASnC,IAAI,CAAC,QAAQ,GAAG,kDACd,OAAO,EAAE,IAAI,EACb,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,IAAI,EACX,OAAO,EAAE,IAAI,EACb,MAAM,EAAE,IAAI,EACZ,GAAG,EAAE,IAAI,IACN,OAAO,CACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,yCAAmB,GAA1B,UAA2B,KAAY;QACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACzB,OAAO;SACR;QACD,2DAAa,EAAE,CAAC,aAAa,CAC3B;YACE,QAAQ,EAAE,aAAU,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAE;YAC5E,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,kEAAmB,CAAC,KAAK,CAAC;SACpC,EACD;YACE,KAAK;SACN,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACI,+BAAS,GAAhB;QAAA,iBAyCC;QAxCC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACzB,wEAAyB,CAAC;gBACxB,QAAQ,EAAE;oBAAC,cAAO;yBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;wBAAP,yBAAO;;oBAChB,KAAI,CAAC,kBAAkB,OAAvB,KAAI,kDAAuB,IAAI,GAAE;gBACnC,CAAC;gBACD,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;SACJ;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACrB,wEAAyB,CAAC;gBACxB,QAAQ,EAAE;oBAAC,cAAO;yBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;wBAAP,yBAAO;;oBAChB,KAAI,CAAC,cAAc,OAAnB,KAAI,kDAAmB,IAAI,GAAE;gBAC/B,CAAC;gBACD,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;SACJ;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACrB,wEAAyB,CAAC;gBACxB,QAAQ,EAAE;oBAAC,cAAO;yBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;wBAAP,yBAAO;;oBAChB,KAAI,CAAC,cAAc,OAAnB,KAAI,kDAAmB,IAAI,GAAE;gBAC/B,CAAC;gBACD,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;SACJ;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YACvB,wEAAyB,CAAC;gBACxB,QAAQ,EAAE;oBAAC,cAAO;yBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;wBAAP,yBAAO;;oBAChB,KAAI,CAAC,gBAAgB,OAArB,KAAI,kDAAqB,IAAI,GAAE;gBACjC,CAAC;gBACD,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;SACJ;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACzB,wEAAyB,CAAC;gBACxB,QAAQ,EAAE;oBAAC,cAAO;yBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;wBAAP,yBAAO;;oBAChB,KAAI,CAAC,kBAAkB,OAAvB,KAAI,kDAAuB,IAAI,GAAE;gBACnC,CAAC;gBACD,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;SACJ;IACH,CAAC;IAED;;OAEG;IACH,8DAA8D;IACtD,wCAAkB,GAA1B,UAA2B,WAAmC;QAC5D,IAAM,UAAU,GAAG;YACjB,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE;gBACJ,SAAS,EAAE,WAAW,CAAC,IAAI;gBAC3B,MAAM,EAAE,SAAS;aAClB;YACD,KAAK,EAAE,8DAAmB,CAAC,WAAW,CAAC,KAAK,CAAC;YAC7C,OAAO,EAAE,uDAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC;SACzC,CAAC;QAEF,IAAI,WAAW,CAAC,KAAK,KAAK,QAAQ,EAAE;YAClC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;gBACjC,UAAU,CAAC,OAAO,GAAG,wBAAqB,uDAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,gBAAgB,CAAE,CAAC;gBACzG,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACvD;iBAAM;gBACL,mDAAmD;gBACnD,OAAO;aACR;SACF;QAED,2DAAa,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE;YACxC,KAAK,EAAE,WAAW,CAAC,IAAI;YACvB,KAAK,EAAE,WAAW,CAAC,KAAK;SACzB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,8DAA8D;IACtD,oCAAc,GAAtB,UAAuB,WAAmC;QACxD,IAAI,MAAM,CAAC;QACX,IAAM,OAAO,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEzG,sEAAsE;QACtE,IAAI;YACF,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM;gBAC/B,CAAC,CAAC,+DAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,MAAc,EAAE,OAAO,CAAC;gBAC7D,CAAC,CAAC,+DAAgB,CAAE,WAAW,CAAC,KAAyB,EAAE,OAAO,CAAC,CAAC;SACvE;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,GAAG,WAAW,CAAC;SACtB;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,OAAO;SACR;QAED,2DAAa,EAAE,CAAC,aAAa,CAC3B;YACE,QAAQ,EAAE,QAAM,WAAW,CAAC,IAAM;YAClC,OAAO,EAAE,MAAM;SAChB,EACD;YACE,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,MAAM,EAAE,WAAW,CAAC,MAAM;SAC3B,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,8DAA8D;IACtD,oCAAc,GAAtB,UAAuB,WAAmC;QACxD,IAAI,WAAW,CAAC,YAAY,EAAE;YAC5B,gDAAgD;YAChD,IAAI,WAAW,CAAC,GAAG,CAAC,sBAAsB,EAAE;gBAC1C,OAAO;aACR;YAEK,6CAAyE,EAAvE,kBAAM,EAAE,YAAG,EAAE,4BAAW,EAAE,cAA6C,CAAC;YAEhF,2DAAa,EAAE,CAAC,aAAa,CAC3B;gBACE,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE;oBACJ,MAAM;oBACN,GAAG;oBACH,WAAW;iBACZ;gBACD,IAAI,EAAE,MAAM;aACb,EACD;gBACE,GAAG,EAAE,WAAW,CAAC,GAAG;gBACpB,KAAK,EAAE,IAAI;aACZ,CACF,CAAC;YAEF,OAAO;SACR;IACH,CAAC;IAED;;OAEG;IACH,8DAA8D;IACtD,sCAAgB,GAAxB,UAAyB,WAAmC;QAC1D,0CAA0C;QAC1C,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YAC7B,OAAO;SACR;QAED,IAAI,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,EAAE;YAC5F,yGAAyG;YACzG,OAAO;SACR;QAED,IAAI,WAAW,CAAC,KAAK,EAAE;YACrB,2DAAa,EAAE,CAAC,aAAa,CAC3B;gBACE,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,WAAW,CAAC,SAAS;gBAC3B,KAAK,EAAE,yDAAc;gBACrB,IAAI,EAAE,MAAM;aACb,EACD;gBACE,IAAI,EAAE,WAAW,CAAC,KAAK;gBACvB,KAAK,EAAE,WAAW,CAAC,IAAI;aACxB,CACF,CAAC;SACH;aAAM;YACL,2DAAa,EAAE,CAAC,aAAa,CAC3B;gBACE,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,oGACD,WAAW,CAAC,SAAS,KACxB,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,GACzC;gBACD,IAAI,EAAE,MAAM;aACb,EACD;gBACE,KAAK,EAAE,WAAW,CAAC,IAAI;gBACvB,QAAQ,EAAE,WAAW,CAAC,QAAQ;aAC/B,CACF,CAAC;SACH;IACH,CAAC;IAED;;OAEG;IACH,8DAA8D;IACtD,wCAAkB,GAA1B,UAA2B,WAAmC;QAC5D,IAAM,MAAM,GAAG,8DAAe,EAAU,CAAC;QACzC,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAC5B,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC;QACxB,IAAM,SAAS,GAAG,uDAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,UAAU,GAAG,uDAAQ,CAAC,IAAI,CAAC,CAAC;QAChC,IAAM,QAAQ,GAAG,uDAAQ,CAAC,EAAE,CAAC,CAAC;QAE9B,uDAAuD;QACvD,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YACpB,UAAU,GAAG,SAAS,CAAC;SACxB;QAED,wEAAwE;QACxE,sDAAsD;QACtD,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE;YAChF,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC;SACxB;QACD,IAAI,SAAS,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE;YACpF,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC5B;QAED,2DAAa,EAAE,CAAC,aAAa,CAAC;YAC5B,QAAQ,EAAE,YAAY;YACtB,IAAI,EAAE;gBACJ,IAAI;gBACJ,EAAE;aACH;SACF,CAAC,CAAC;IACL,CAAC;IApRD;;OAEG;IACW,cAAE,GAAW,aAAa,CAAC;IAkR3C,kBAAC;CAAA;AAtRuB;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BxB,+DAA+D;AAClB;AAC2B;AASjD;AAEiC;AACP;AAQjD,sBAAsB;AACtB;IAoBE,YAAY;IACZ,wBAAmB,OAAoC;QAfvD;;WAEG;QACI,SAAI,GAAW,cAAc,CAAC,EAAE,CAAC;QAKxC,YAAY;QACJ,6BAAwB,GAAY,KAAK,CAAC;QAElD,YAAY;QACJ,0CAAqC,GAAY,KAAK,CAAC;QAI7D,IAAI,CAAC,QAAQ,GAAG,kDACd,OAAO,EAAE,IAAI,EACb,oBAAoB,EAAE,IAAI,IACvB,OAAO,CACX,CAAC;IACJ,CAAC;IACD;;OAEG;IACI,kCAAS,GAAhB;QACE,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACzB,qDAAU,CAAC,kCAAkC,CAAC,CAAC;YAC/C,IAAI,CAAC,4BAA4B,EAAE,CAAC;SACrC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE;YACtC,qDAAU,CAAC,+CAA+C,CAAC,CAAC;YAC5D,IAAI,CAAC,yCAAyC,EAAE,CAAC;SAClD;IACH,CAAC;IAED,YAAY;IACJ,qDAA4B,GAApC;QAAA,iBA2CC;QA1CC,IAAI,IAAI,CAAC,wBAAwB,EAAE;YACjC,OAAO;SACR;QAED,wEAAyB,CAAC;YACxB,8DAA8D;YAC9D,QAAQ,EAAE,UAAC,IAAgE;gBACzE,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,IAAM,UAAU,GAAG,2DAAa,EAAE,CAAC;gBACnC,IAAM,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;gBACjE,IAAM,mBAAmB,GAAG,KAAK,IAAI,KAAK,CAAC,sBAAsB,KAAK,IAAI,CAAC;gBAE3E,IAAI,CAAC,cAAc,IAAI,6DAAmB,EAAE,IAAI,mBAAmB,EAAE;oBACnE,OAAO;iBACR;gBAED,IAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAM,KAAK,GAAG,0DAAW,CAAC,KAAK,CAAC;oBAC9B,CAAC,CAAC,KAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;oBAC9E,CAAC,CAAC,KAAI,CAAC,6BAA6B,CAChC,oEAAqB,CAAC,KAAK,EAAE,SAAS,EAAE;wBACtC,gBAAgB,EAAE,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,gBAAgB;wBAChE,SAAS,EAAE,KAAK;qBACjB,CAAC,EACF,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,CACZ,CAAC;gBAEN,oEAAqB,CAAC,KAAK,EAAE;oBAC3B,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAC;gBAEH,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE;oBAC7B,iBAAiB,EAAE,KAAK;iBACzB,CAAC,CAAC;YACL,CAAC;YACD,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;IACvC,CAAC;IAED,YAAY;IACJ,kEAAyC,GAAjD;QAAA,iBA8DC;QA7DC,IAAI,IAAI,CAAC,qCAAqC,EAAE;YAC9C,OAAO;SACR;QAED,wEAAyB,CAAC;YACxB,8DAA8D;YAC9D,QAAQ,EAAE,UAAC,CAAM;gBACf,IAAI,KAAK,GAAG,CAAC,CAAC;gBAEd,2DAA2D;gBAC3D,IAAI;oBACF,0EAA0E;oBAC1E,6EAA6E;oBAC7E,IAAI,QAAQ,IAAI,CAAC,EAAE;wBACjB,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;qBAClB;oBACD,8FAA8F;oBAC9F,gFAAgF;oBAChF,qFAAqF;oBACrF,uEAAuE;oBACvE,6DAA6D;yBACxD,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAE;wBAC9C,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;qBACzB;iBACF;gBAAC,OAAO,GAAG,EAAE;oBACZ,WAAW;iBACZ;gBAED,IAAM,UAAU,GAAG,2DAAa,EAAE,CAAC;gBACnC,IAAM,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;gBACjE,IAAM,mBAAmB,GAAG,KAAK,IAAI,KAAK,CAAC,sBAAsB,KAAK,IAAI,CAAC;gBAE3E,IAAI,CAAC,cAAc,IAAI,6DAAmB,EAAE,IAAI,mBAAmB,EAAE;oBACnE,OAAO,IAAI,CAAC;iBACb;gBAED,IAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAM,KAAK,GAAG,0DAAW,CAAC,KAAK,CAAC;oBAC9B,CAAC,CAAC,KAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC;oBAC9C,CAAC,CAAC,oEAAqB,CAAC,KAAK,EAAE,SAAS,EAAE;wBACtC,gBAAgB,EAAE,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,gBAAgB;wBAChE,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC;gBAEP,KAAK,CAAC,KAAK,GAAG,yDAAc,CAAC;gBAE7B,oEAAqB,CAAC,KAAK,EAAE;oBAC3B,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,sBAAsB;iBAC7B,CAAC,CAAC;gBAEH,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE;oBAC7B,iBAAiB,EAAE,KAAK;iBACzB,CAAC,CAAC;gBAEH,OAAO;YACT,CAAC;YACD,IAAI,EAAE,oBAAoB;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,qCAAqC,GAAG,IAAI,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,8DAA8D;IACtD,oDAA2B,GAAnC,UAAoC,GAAQ,EAAE,GAAQ,EAAE,IAAS,EAAE,MAAW;QAC5E,IAAM,cAAc,GAAG,0GAA0G,CAAC;QAElI,2DAA2D;QAC3D,IAAI,OAAO,GAAG,2DAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QACpD,IAAI,IAAI,CAAC;QAET,IAAI,uDAAQ,CAAC,OAAO,CAAC,EAAE;YACrB,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC7C,IAAI,MAAM,EAAE;gBACV,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACjB,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;aACrB;SACF;QAED,IAAM,KAAK,GAAG;YACZ,SAAS,EAAE;gBACT,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,IAAI,IAAI,OAAO;wBACrB,KAAK,EAAE,OAAO;qBACf;iBACF;aACF;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED;;;;;OAKG;IACK,yDAAgC,GAAxC,UAAyC,MAAiB;QACxD,OAAO;YACL,SAAS,EAAE;gBACT,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,oBAAoB;wBAC1B,4GAA4G;wBAC5G,KAAK,EAAE,sDAAoD,MAAM,CAAC,MAAM,CAAG;qBAC5E;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,YAAY;IACZ,8DAA8D;IACtD,sDAA6B,GAArC,UAAsC,KAAY,EAAE,GAAQ,EAAE,IAAS,EAAE,MAAW;QAClF,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;QACxC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;QACtD,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;QAClF,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;QAEhG,IAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/D,IAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,IAAM,QAAQ,GAAG,uDAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,8DAAe,EAAE,CAAC;QAE3E,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5D,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC/C,KAAK;gBACL,QAAQ;gBACR,QAAQ,EAAE,GAAG;gBACb,MAAM,EAAE,IAAI;gBACZ,MAAM;aACP,CAAC,CAAC;SACJ;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAxOD;;OAEG;IACW,iBAAE,GAAW,gBAAgB,CAAC;IAsO9C,qBAAC;CAAA;AA1O0B;;;;;;;;;;;;;;;;;;;;;;;ACvB2C;AAEzB;AAEQ;AACL;AAEhD,IAAM,WAAW,GAAG,OAAO,CAAC;AAC5B,IAAM,aAAa,GAAG,CAAC,CAAC;AAExB,iCAAiC;AACjC;IAqBE;;OAEG;IACH,sBAAmB,OAA8C;QAA9C,sCAA8C;QAlBjE;;WAEG;QACa,SAAI,GAAW,YAAY,CAAC,EAAE,CAAC;QAgB7C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;IAC/C,CAAC;IAED;;OAEG;IACI,gCAAS,GAAhB;QACE,qEAAuB,CAAC,UAAC,KAAY,EAAE,IAAgB;YACrD,IAAM,IAAI,GAAG,2DAAa,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAC1D,IAAI,IAAI,EAAE;gBACR,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aACnC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,+BAAQ,GAAhB,UAAiB,KAAY,EAAE,IAAgB;QAC7C,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,2DAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE;YACxG,OAAO,KAAK,CAAC;SACd;QACD,IAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAkC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7F,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,gDAAI,YAAY,EAAK,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,qCAAc,GAAtB,UAAuB,KAAoB,EAAE,GAAW,EAAE,KAAuB;QAAvB,kCAAuB;QAC/E,IAAI,CAAC,2DAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;YACvE,OAAO,KAAK,CAAC;SACd;QACD,IAAM,UAAU,GAAG,4DAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,IAAM,SAAS,GAAG,iEAAuB,CAAC,UAAU,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,iDAAC,SAAS,GAAK,KAAK,EAAE,CAAC;IACrE,CAAC;IA/DD;;OAEG;IACW,eAAE,GAAW,cAAc,CAAC;IA6D5C,mBAAC;CAAA;AAjEwB;;;;;;;;;;;;;;;;;;;;;;ACV8C;AAErC;AAElC,IAAM,oBAAoB,GAAG;IAC3B,aAAa;IACb,QAAQ;IACR,MAAM;IACN,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,iBAAiB;IACjB,aAAa;IACb,YAAY;IACZ,oBAAoB;IACpB,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,cAAc;IACd,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,cAAc;IACd,oBAAoB;IACpB,QAAQ;IACR,WAAW;IACX,cAAc;IACd,eAAe;IACf,WAAW;IACX,iBAAiB;IACjB,QAAQ;IACR,gBAAgB;IAChB,2BAA2B;IAC3B,sBAAsB;CACvB,CAAC;AAaF,0FAA0F;AAC1F;IAcE;;OAEG;IACH,kBAAmB,OAAkC;QAXrD;;WAEG;QACI,SAAI,GAAW,QAAQ,CAAC,EAAE,CAAC;QAShC,IAAI,CAAC,QAAQ,GAAG,kDACd,cAAc,EAAE,IAAI,EACpB,WAAW,EAAE,IAAI,EACjB,qBAAqB,EAAE,IAAI,EAC3B,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,IAAI,IACb,OAAO,CACX,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,4BAAS,GAAhB;QACE,IAAM,MAAM,GAAG,8DAAe,EAAE,CAAC;QAEjC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;YAC5B,mDAAI,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC/D;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;YAC7B,mDAAI,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAChE;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACvC,mDAAI,CAAC,MAAM,EAAE,uBAAuB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACjE;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,gBAAgB,IAAI,MAAM,EAAE;YAC9D,mDAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAClE;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;YAC7B,IAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAChH,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACvD;IACH,CAAC;IAED,YAAY;IACJ,oCAAiB,GAAzB,UAA0B,QAAoB;QAC5C,8DAA8D;QAC9D,OAAO;YAAoB,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YACvC,IAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,CAAC,CAAC,GAAG,8CAAI,CAAC,gBAAgB,EAAE;gBAC/B,SAAS,EAAE;oBACT,IAAI,EAAE,EAAE,QAAQ,EAAE,8DAAe,CAAC,QAAQ,CAAC,EAAE;oBAC7C,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,YAAY;iBACnB;aACF,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC;IACJ,CAAC;IAED,YAAY;IACZ,8DAA8D;IACtD,2BAAQ,GAAhB,UAAiB,QAAa;QAC5B,8DAA8D;QAC9D,OAAO,UAAoB,QAAoB;YAC7C,sEAAsE;YACtE,OAAO,QAAQ,CAAC,IAAI,CAClB,IAAI,EACJ,8CAAI,CAAC,QAAQ,EAAE;gBACb,SAAS,EAAE;oBACT,IAAI,EAAE;wBACJ,QAAQ,EAAE,uBAAuB;wBACjC,OAAO,EAAE,8DAAe,CAAC,QAAQ,CAAC;qBACnC;oBACD,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,YAAY;iBACnB;aACF,CAAC,CACH,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAED,YAAY;IACJ,mCAAgB,GAAxB,UAAyB,MAAc;QACrC,8DAA8D;QAC9D,IAAM,MAAM,GAAG,8DAAe,EAA4B,CAAC;QAC3D,sEAAsE;QACtE,IAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;QAEzD,sEAAsE;QACtE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE;YAChF,OAAO;SACR;QAED,mDAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,UAC9B,QAAoB;YAEpB,OAAO,UAGL,SAAiB,EACjB,EAAuB,EACvB,OAA2C;gBAE3C,IAAI;oBACF,IAAI,OAAO,EAAE,CAAC,WAAW,KAAK,UAAU,EAAE;wBACxC,EAAE,CAAC,WAAW,GAAG,8CAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;4BAC7C,SAAS,EAAE;gCACT,IAAI,EAAE;oCACJ,QAAQ,EAAE,aAAa;oCACvB,OAAO,EAAE,8DAAe,CAAC,EAAE,CAAC;oCAC5B,MAAM;iCACP;gCACD,OAAO,EAAE,IAAI;gCACb,IAAI,EAAE,YAAY;6BACnB;yBACF,CAAC,CAAC;qBACJ;iBACF;gBAAC,OAAO,GAAG,EAAE;oBACZ,yEAAyE;iBAC1E;gBAED,OAAO,QAAQ,CAAC,IAAI,CAClB,IAAI,EACJ,SAAS;gBACT,8DAA8D;gBAC9D,8CAAI,CAAE,EAA6B,EAAE;oBACnC,SAAS,EAAE;wBACT,IAAI,EAAE;4BACJ,QAAQ,EAAE,kBAAkB;4BAC5B,OAAO,EAAE,8DAAe,CAAC,EAAE,CAAC;4BAC5B,MAAM;yBACP;wBACD,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE,YAAY;qBACnB;iBACF,CAAC,EACF,OAAO,CACR,CAAC;YACJ,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,mDAAI,CAAC,KAAK,EAAE,qBAAqB,EAAE,UACjC,2BAAuC;YAGvC,OAAO,UAGL,SAAiB,EACjB,EAAuB,EACvB,OAAwC;;gBAExC;;;;;;;;;;;;;;;;mBAgBG;gBACH,IAAM,mBAAmB,GAAI,EAAiC,CAAC;gBAC/D,IAAI;oBACF,IAAM,oBAAoB,SAAG,mBAAmB,0CAAE,kBAAkB,CAAC;oBACrE,IAAI,oBAAoB,EAAE;wBACxB,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;qBAClF;iBACF;gBAAC,OAAO,CAAC,EAAE;oBACV,gFAAgF;iBACjF;gBACD,OAAO,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;YACzF,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IACJ,2BAAQ,GAAhB,UAAiB,YAAwB;QACvC,8DAA8D;QAC9D,OAAO;YAA+B,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YAClD,4DAA4D;YAC5D,IAAM,GAAG,GAAG,IAAI,CAAC;YACjB,IAAM,mBAAmB,GAAyB,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAC;YAE5G,mBAAmB,CAAC,OAAO,CAAC,cAAI;gBAC9B,IAAI,IAAI,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;oBAClD,8DAA8D;oBAC9D,mDAAI,CAAC,GAAG,EAAE,IAAI,EAAE,UAAS,QAAyB;wBAChD,IAAM,WAAW,GAAG;4BAClB,SAAS,EAAE;gCACT,IAAI,EAAE;oCACJ,QAAQ,EAAE,IAAI;oCACd,OAAO,EAAE,8DAAe,CAAC,QAAQ,CAAC;iCACnC;gCACD,OAAO,EAAE,IAAI;gCACb,IAAI,EAAE,YAAY;6BACnB;yBACF,CAAC;wBAEF,+FAA+F;wBAC/F,IAAI,QAAQ,CAAC,mBAAmB,EAAE;4BAChC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,GAAG,8DAAe,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;yBACpF;wBAED,0BAA0B;wBAC1B,OAAO,8CAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;oBACrC,CAAC,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC;IACJ,CAAC;IAxOD;;OAEG;IACW,WAAE,GAAW,UAAU,CAAC;IAsOxC,eAAC;CAAA;AA1OoB;;;;;;;;;;;;;;;;;;;;;ACjDiD;AAEtB;AAEhD,IAAM,MAAM,GAAG,8DAAe,EAAU,CAAC;AAEzC,gBAAgB;AAChB;IAAA;QAME;;WAEG;QACI,SAAI,GAAW,SAAS,CAAC,EAAE,CAAC;IA8BrC,CAAC;IA5BC;;OAEG;IACI,6BAAS,GAAhB;QACE,qEAAuB,CAAC,UAAC,KAAY;;YACnC,IAAI,2DAAa,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;gBAC7C,0DAA0D;gBAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;oBAC7D,OAAO,KAAK,CAAC;iBACd;gBAED,sDAAsD;gBACtD,IAAM,GAAG,GAAG,YAAK,CAAC,OAAO,0CAAE,GAAG,YAAI,MAAM,CAAC,QAAQ,0CAAE,IAAI,EAAC;gBAChD,+CAAQ,CAA2B;gBACnC,kDAAS,CAA4B;gBAE7C,IAAM,OAAO,GAAG,0JACX,KAAK,CAAC,OAAO,0CAAE,OAAO,GACtB,CAAC,QAAQ,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GACnC,CAAC,SAAS,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAC9C,CAAC;gBACF,IAAM,OAAO,GAAG,oGAAK,CAAC,GAAG,IAAI,EAAE,GAAG,OAAE,CAAC,KAAE,OAAO,YAAE,CAAC;gBAEjD,OAAO,oGAAK,KAAK,KAAE,OAAO,aAAG;aAC9B;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IArCD;;OAEG;IACW,YAAE,GAAW,WAAW,CAAC;IAmCzC,gBAAC;CAAA;AAvCqB;;;;;;;;;;;;;;;;;;;;;;ACNmE;AAE0B;AAEnH,IAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B;;;;GAIG;AACI,SAAS,uBAAuB,CAAC,UAA8B;IACpE,IAAM,MAAM,GAAG,qBAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAEvD,IAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,KAAK,EAAE,UAAU,CAAC,OAAO;KAC1B,CAAC;IAEF,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;QAC3B,SAAS,CAAC,UAAU,GAAG,EAAE,MAAM,UAAE,CAAC;KACnC;IAED,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,EAAE,EAAE;QAC1D,SAAS,CAAC,KAAK,GAAG,4BAA4B,CAAC;KAChD;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACI,SAAS,oBAAoB,CAClC,SAAkC,EAClC,kBAA0B,EAC1B,SAAmB;IAEnB,IAAM,KAAK,GAAU;QACnB,SAAS,EAAE;YACT,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,sDAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO;oBAClG,KAAK,EAAE,gBACL,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,8BACvB,6EAA8B,CAAC,SAAS,CAAG;iBACpE;aACF;SACF;QACD,KAAK,EAAE;YACL,cAAc,EAAE,8DAAe,CAAC,SAAS,CAAC;SAC3C;KACF,CAAC;IAEF,IAAI,kBAAkB,EAAE;QACtB,IAAM,UAAU,GAAG,4DAAiB,CAAC,kBAAkB,CAAC,CAAC;QACzD,IAAM,QAAM,GAAG,qBAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvD,KAAK,CAAC,UAAU,GAAG;YACjB,MAAM;SACP,CAAC;KACH;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACI,SAAS,mBAAmB,CAAC,UAA8B;IAChE,IAAM,SAAS,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAEtD,OAAO;QACL,SAAS,EAAE;YACT,MAAM,EAAE,CAAC,SAAS,CAAC;SACpB;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACI,SAAS,qBAAqB,CAAC,KAA2B;IAC/D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QAC3B,OAAO,EAAE,CAAC;KACX;IAED,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,IAAM,kBAAkB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACpD,IAAM,iBAAiB,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IAEvE,mHAAmH;IACnH,IAAI,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE;QAChH,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAClC;IAED,+HAA+H;IAC/H,IAAI,iBAAiB,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE;QACrD,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KACtC;IAED,4EAA4E;IAC5E,OAAO,UAAU;SACd,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC;SAC1B,GAAG,CACF,UAAC,KAAyB,IAAiB,QAAC;QAC1C,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;QACvD,QAAQ,EAAE,KAAK,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG;QACxC,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,GAAG;QAC3B,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;KACrD,CAAC,EANyC,CAMzC,CACH;SACA,OAAO,EAAE,CAAC;AACf,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnH2F;AACI;AAGvD;AAC6B;AAC0B;AAEzF,IAAM,mBAAmB,GAAG;IACjC,IAAI,wDAA+B,EAAE;IACrC,IAAI,0DAAiC,EAAE;IACvC,IAAI,mDAAQ,EAAE;IACd,IAAI,sDAAW,EAAE;IACjB,IAAI,yDAAc,EAAE;IACpB,IAAI,uDAAY,EAAE;IAClB,IAAI,oDAAS,EAAE;CAChB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACI,SAAS,IAAI,CAAC,OAA4B;IAA5B,sCAA4B;IAC/C,IAAI,OAAO,CAAC,mBAAmB,KAAK,SAAS,EAAE;QAC7C,OAAO,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;KACnD;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE;QACjC,IAAM,QAAM,GAAG,8DAAe,EAAU,CAAC;QACzC,gEAAgE;QAChE,IAAI,QAAM,CAAC,cAAc,IAAI,QAAM,CAAC,cAAc,CAAC,EAAE,EAAE;YACrD,OAAO,CAAC,OAAO,GAAG,QAAM,CAAC,cAAc,CAAC,EAAE,CAAC;SAC5C;KACF;IACD,IAAI,OAAO,CAAC,mBAAmB,KAAK,SAAS,EAAE;QAC7C,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;KACpC;IAED,yDAAW,CAAC,kDAAa,EAAE,OAAO,CAAC,CAAC;IAEpC,IAAI,OAAO,CAAC,mBAAmB,EAAE;QAC/B,oBAAoB,EAAE,CAAC;KACxB;AACH,CAAC;AAED;;;;GAIG;AACI,SAAS,gBAAgB,CAAC,OAAiC;IAAjC,sCAAiC;IAChE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QACpB,OAAO,CAAC,OAAO,GAAG,4DAAa,EAAE,CAAC,WAAW,EAAE,CAAC;KACjD;IACD,IAAM,MAAM,GAAG,4DAAa,EAAE,CAAC,SAAS,EAAiB,CAAC;IAC1D,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;KAClC;AACH,CAAC;AAED;;;;GAIG;AACI,SAAS,WAAW;IACzB,OAAO,4DAAa,EAAE,CAAC,WAAW,EAAE,CAAC;AACvC,CAAC;AAED;;;GAGG;AACI,SAAS,SAAS;IACvB,OAAO;AACT,CAAC;AAED;;;GAGG;AACI,SAAS,MAAM,CAAC,QAAoB;IACzC,QAAQ,EAAE,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACI,SAAS,KAAK,CAAC,OAAgB;IACpC,IAAM,MAAM,GAAG,4DAAa,EAAE,CAAC,SAAS,EAAiB,CAAC;IAC1D,IAAI,MAAM,EAAE;QACV,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAC9B;IACD,OAAO,8DAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACI,SAAS,KAAK,CAAC,OAAgB;IACpC,IAAM,MAAM,GAAG,4DAAa,EAAE,CAAC,SAAS,EAAiB,CAAC;IAC1D,IAAI,MAAM,EAAE;QACV,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAC9B;IACD,OAAO,8DAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,8DAA8D;AACvD,SAAS,IAAI,CAAC,EAAyB;IAC5C,OAAO,+CAAY,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB;IAC3B,IAAM,MAAM,GAAG,8DAAe,EAAU,CAAC;IACzC,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAEjC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;QACnC,uDAAW,CAAC,oFAAoF,CAAC,CAAC;QAClG,OAAO;KACR;IAED,IAAM,GAAG,GAAG,4DAAa,EAAE,CAAC;IAE5B,iHAAiH;IACjH,gHAAgH;IAChH,gGAAgG;IAChG,iEAAiE;IACjE,iEAAiE;IACjE,8DAA8D;IAC9D,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,UAAU,EAAE;QACtF,OAAO;KACR;IAED,wEAAwE;IACxE,wCAAwC;IACxC,sEAAsE;IACtE,0BAA0B;IAC1B,GAAG,CAAC,YAAY,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,GAAG,CAAC,cAAc,EAAE,CAAC;IAErB,2DAA2D;IAC3D,yEAAyB,CAAC;QACxB,QAAQ,EAAE,UAAC,EAAY;gBAAV,cAAI,EAAE,UAAE;YACnB,6FAA6F;YAC7F,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE;gBACrC,OAAO;aACR;YACD,GAAG,CAAC,YAAY,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;AACL,CAAC;;;;;;;;;;;;;;;;;AC5ND;;;GAGG;;AAqCH,4BAA4B;AAC5B,IAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,8DAA8D;AAC9D,IAAM,MAAM,GAAG,4JAA4J,CAAC;AAC5K,8HAA8H;AAC9H,qGAAqG;AACrG,8EAA8E;AAC9E,IAAM,KAAK,GAAG,iMAAiM,CAAC;AAChN,IAAM,KAAK,GAAG,+GAA+G,CAAC;AAC9H,IAAM,SAAS,GAAG,+CAA+C,CAAC;AAClE,IAAM,UAAU,GAAG,+BAA+B,CAAC;AACnD,2KAA2K;AAC3K,IAAM,mBAAmB,GAAG,6BAA6B,CAAC;AAE1D,YAAY;AACZ,iHAAiH;AAC1G,SAAS,iBAAiB,CAAC,EAAO;IACvC,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,IAAI,EAAE,EAAE;QACN,IAAI,OAAO,EAAE,CAAC,WAAW,KAAK,QAAQ,EAAE;YACtC,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC;SAC1B;aAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;YAC/C,OAAO,GAAG,CAAC,CAAC;SACb;KACF;IAED,IAAI;QACF,uDAAuD;QACvD,yDAAyD;QACzD,mBAAmB;QACnB,KAAK,GAAG,mCAAmC,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,KAAK,EAAE;YACT,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAClC;KACF;IAAC,OAAO,CAAC,EAAE;QACV,WAAW;KACZ;IAED,IAAI;QACF,KAAK,GAAG,8BAA8B,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE;YACT,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAClC;KACF;IAAC,OAAO,CAAC,EAAE;QACV,WAAW;KACZ;IAED,OAAO;QACL,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC;QAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI;QACnB,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,IAAI;KACb,CAAC;AACJ,CAAC;AAED,YAAY;AACZ,0EAA0E;AAC1E,SAAS,8BAA8B,CAAC,EAAO;IAC7C,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;QACpB,OAAO,IAAI,CAAC;KACb;IAED,IAAM,KAAK,GAAG,EAAE,CAAC;IACjB,IAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC;IACX,IAAI,QAAQ,CAAC;IACb,IAAI,KAAK,CAAC;IACV,IAAI,OAAO,CAAC;IAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACrC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YACnC,IAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB;YAC/E,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB;YACrE,IAAI,MAAM,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBACpD,iEAAiE;gBACjE,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;gBAC9B,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;gBAC/B,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;aAClC;YAED,kHAAkH;YAClH,wDAAwD;YACxD,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE/G,kHAAkH;YAClH,oFAAoF;YACpF,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC;YACxC,IAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;YAClE,IAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;YACzE,IAAI,iBAAiB,IAAI,oBAAoB,EAAE;gBAC7C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;gBACxE,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,sBAAoB,GAAK,CAAC,CAAC,CAAC,0BAAwB,GAAK,CAAC;aACrF;YAED,OAAO,GAAG;gBACR,GAAG;gBACH,IAAI;gBACJ,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBAChC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;gBACjC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;aACpC,CAAC;SACH;aAAM,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YACzC,OAAO,GAAG;gBACR,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;gBACb,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,gBAAgB;gBAClC,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBACf,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;aACpC,CAAC;SACH;aAAM,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YACzC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACtD,IAAI,MAAM,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBACnD,0DAA0D;gBAC1D,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;gBAC9B,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACvB,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACvB,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,sBAAsB;aACtC;iBAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,CAAC,EAAE;gBAC7D,oEAAoE;gBACpE,qFAAqF;gBACrF,cAAc;gBACd,yDAAyD;gBACzD,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAI,EAAE,CAAC,YAAuB,GAAG,CAAC,CAAC;aACnD;YACD,OAAO,GAAG;gBACR,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;gBACb,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,gBAAgB;gBAClC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gBACzC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;gBACjC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;aACpC,CAAC;SACH;aAAM;YACL,SAAS;SACV;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;YACjC,OAAO,CAAC,IAAI,GAAG,gBAAgB,CAAC;SACjC;QAED,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACrB;IAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IAED,OAAO;QACL,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC;QAC3B,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,KAAK;KACN,CAAC;AACJ,CAAC;AAED,YAAY;AACZ,8DAA8D;AAC9D,SAAS,mCAAmC,CAAC,EAAO;IAClD,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE;QACzB,OAAO,IAAI,CAAC;KACb;IACD,iEAAiE;IACjE,4DAA4D;IAC5D,mCAAmC;IACnC,IAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;IACjC,IAAM,YAAY,GAAG,6DAA6D,CAAC;IACnF,IAAM,YAAY,GAAG,qGAAqG,CAAC;IAC3H,IAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,IAAM,KAAK,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,CAAC;IAEV,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,EAAE;QACjD,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC5C,OAAO,GAAG;gBACR,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;gBACb,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACd,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBACf,MAAM,EAAE,IAAI;aACb,CAAC;SACH;aAAM,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACnD,OAAO,GAAG;gBACR,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;gBACb,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;gBAC1B,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gBACzC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBACf,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;aAClB,CAAC;SACH;QAED,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;gBACjC,OAAO,CAAC,IAAI,GAAG,gBAAgB,CAAC;aACjC;YACD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACrB;KACF;IAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IAED,OAAO;QACL,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC;QAC3B,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,KAAK;KACN,CAAC;AACJ,CAAC;AAED,+CAA+C;AAC/C,SAAS,SAAS,CAAC,UAAsB,EAAE,OAAe;IACxD,IAAI;QACF,OAAO,oGACF,UAAU,KACb,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IACtC;KACH;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,UAAU,CAAC;KACnB;AACH,CAAC;AAED;;;;GAIG;AACH,8DAA8D;AAC9D,SAAS,cAAc,CAAC,EAAO;IAC7B,IAAM,OAAO,GAAG,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,kBAAkB,CAAC;KAC3B;IACD,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;QAC9D,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;KAC9B;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACtRkC;AAQZ;AACmE;AAE1F,IAAM,gBAAgB,GAElB;IACF,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;CACzB,CAAC;AAEF,0CAA0C;AAC1C;IAeE,uBAA0B,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QANnD,4CAA4C;QACzB,YAAO,GAAkC,IAAI,wDAAa,CAAC,EAAE,CAAC,CAAC;QAElF,gEAAgE;QAC7C,gBAAW,GAAyB,EAAE,CAAC;QAGxD,IAAI,CAAC,IAAI,GAAG,IAAI,6CAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACpD,mDAAmD;QACnD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,kCAAkC,EAAE,CAAC;IAC5D,CAAC;IAED;;OAEG;IACI,iCAAS,GAAhB,UAAiB,CAAQ;QACvB,MAAM,IAAI,sDAAW,CAAC,qDAAqD,CAAC,CAAC;IAC/E,CAAC;IAED;;OAEG;IACI,6BAAK,GAAZ,UAAa,OAAgB;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACO,uCAAe,GAAzB,UAA0B,EAYzB;YAXC,4BAAW,EACX,sBAAQ,EACR,oBAAO,EACP,oBAAO,EACP,kBAAM;QAQN,IAAM,MAAM,GAAG,8DAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpD;;;WAGG;QACH,IAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,OAAO;YAAE,sDAAW,CAAC,2CAAyC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAG,CAAC,CAAC;QAEtG,IAAI,MAAM,KAAK,yDAAc,EAAE;YAC7B,OAAO,CAAC,EAAE,MAAM,UAAE,CAAC,CAAC;YACpB,OAAO;SACR;QAED,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnB,CAAC;IAED;;OAEG;IACO,sCAAc,GAAxB,UAAyB,WAA8B;QACrD,IAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;IAC5D,CAAC;IAED;;OAEG;IACO,sCAAc,GAAxB,UAAyB,WAA8B;QACrD,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACO,wCAAgB,GAA1B,UAA2B,OAAsC;;QAC/D,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAM,QAAQ,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACjD,IAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAExC,IAAI,QAAQ,EAAE;;gBACZ,qCAAqC;gBACrC,2BAA2B;gBAC3B,qCAAqC;gBACrC,0DAA0D;gBAC1D,QAAQ;gBACR,qCAAqC;gBACrC,wGAAwG;gBACxG,oCAAoC;gBACpC,8EAA8E;gBAC9E,6EAA6E;gBAC7E,KAAoB,iEAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,6CAAE;oBAA3C,IAAM,KAAK;oBACd,IAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBACvC,IAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChD,IAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,gBAAgB;;wBAC/E,KAAuB,kFAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,8CAAE;4BAA5C,IAAM,QAAQ;4BACjB,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;yBAC7D;;;;;;;;;iBACF;;;;;;;;;YACD,OAAO,IAAI,CAAC;SACb;aAAM,IAAI,QAAQ,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,oEAAqB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC5E,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACH,oBAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACzI2E;AAEgC;AAErE;AAIvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,SAAS,4BAA4B;IACnC,sDAAsD;;IAEtD,6BAA6B;IAC7B,IAAM,MAAM,GAAG,8DAAe,EAAU,CAAC;IACzC,IAAI,4DAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAClC;IAED,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;IAC7B,mDAAmD;IACnD,IAAI,cAAO,QAAQ,0CAAE,aAAa,MAAK,UAAU,EAAE;QACjD,IAAI;YACF,IAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACjD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnC,UAAI,OAAO,CAAC,aAAa,0CAAE,KAAK,EAAE;gBAChC,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;aACzC;YACD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SACpC;QAAC,OAAO,CAAC,EAAE;YACV,sDAAW,CAAC,iFAAiF,EAAE,CAAC,CAAC,CAAC;SACnG;KACF;IAED,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,qDAAqD;AACvD,CAAC;AAED,8BAA8B;AAC9B;IAAoC,yEAAa;IAM/C,wBAAmB,OAAyB,EAAE,SAAqD;QAArD,wCAAuB,4BAA4B,EAAE;QAAnG,YACE,kBAAM,OAAO,CAAC,SAEf;QADC,KAAI,CAAC,MAAM,GAAG,SAAS,CAAC;;IAC1B,CAAC;IAED;;OAEG;IACI,kCAAS,GAAhB,UAAiB,KAAY;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,kEAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACI,oCAAW,GAAlB,UAAmB,OAAgB;QACjC,OAAO,IAAI,CAAC,YAAY,CAAC,oEAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAED;;;OAGG;IACK,qCAAY,GAApB,UAAqB,aAA4B,EAAE,eAAgC;QAAnF,iBA6CC;QA5CC,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;YAC3C,OAAO,OAAO,CAAC,MAAM,CAAC;gBACpB,KAAK,EAAE,eAAe;gBACtB,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,MAAM,EAAE,2BAAyB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,+BAA4B;gBACpG,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;SACJ;QAED,IAAM,OAAO,GAAgB;YAC3B,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,MAAM,EAAE,MAAM;YACd,wHAAwH;YACxH,4CAA4C;YAC5C,2EAA2E;YAC3E,yDAAyD;YACzD,cAAc,EAAE,CAAC,qEAAsB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAmB;SAC7E,CAAC;QACF,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE;YAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;SACtD;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE;YACtC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;SACxC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,sDAAW,CAAW,UAAC,OAAO,EAAE,MAAM;YACxC,KAAK,KAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC;iBACzC,IAAI,CAAC,kBAAQ;gBACZ,IAAM,OAAO,GAAG;oBACd,sBAAsB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;oBACpE,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;iBACnD,CAAC;gBACF,KAAI,CAAC,eAAe,CAAC;oBACnB,WAAW,EAAE,aAAa,CAAC,IAAI;oBAC/B,QAAQ;oBACR,OAAO;oBACP,OAAO;oBACP,MAAM;iBACP,CAAC,CAAC;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IACH,qBAAC;AAAD,CAAC,CA3EmC,gDAAa,GA2EhD;;;;;;;;;;;;;;;;;;;;;;ACxJ2E;AAEhC;AAEL;AAEvC,4BAA4B;AAC5B;IAAkC,uEAAa;IAA/C;;IAqDA,CAAC;IApDC;;OAEG;IACI,gCAAS,GAAhB,UAAiB,KAAY;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,kEAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACI,kCAAW,GAAlB,UAAmB,OAAgB;QACjC,OAAO,IAAI,CAAC,YAAY,CAAC,oEAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAED;;;OAGG;IACK,mCAAY,GAApB,UAAqB,aAA4B,EAAE,eAAgC;QAAnF,iBAiCC;QAhCC,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;YAC3C,OAAO,OAAO,CAAC,MAAM,CAAC;gBACpB,KAAK,EAAE,eAAe;gBACtB,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,MAAM,EAAE,2BAAyB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,+BAA4B;gBACpG,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;SACJ;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,sDAAW,CAAW,UAAC,OAAO,EAAE,MAAM;YACxC,IAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YAErC,OAAO,CAAC,kBAAkB,GAAG;gBAC3B,IAAI,OAAO,CAAC,UAAU,KAAK,CAAC,EAAE;oBAC5B,IAAM,OAAO,GAAG;wBACd,sBAAsB,EAAE,OAAO,CAAC,iBAAiB,CAAC,sBAAsB,CAAC;wBACzE,aAAa,EAAE,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC;qBACxD,CAAC;oBACF,KAAI,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,WAAE,OAAO,WAAE,MAAM,UAAE,CAAC,CAAC;iBACxG;YACH,CAAC,CAAC;YAEF,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;YACxC,KAAK,IAAM,MAAM,IAAI,KAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACzC,IAAI,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;oBAC/C,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;iBAChE;aACF;YACD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IACH,mBAAC;AAAD,CAAC,CArDiC,gDAAa,GAqD9C;;;;;;;;;;;;;;;;;;;AC3D8C;AAE/C,IAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B;;;;IAII;AACJ;IAUE,mCAAmC;IACnC,aAAmB,GAAY,EAAE,QAA0B;QAA1B,wCAA0B;QACzD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,IAAI,8CAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,8BAA8B;IACvB,oBAAM,GAAb;QACE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,sEAAsE;IAC/D,gCAAkB,GAAzB;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,IAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAI,GAAG,CAAC,QAAQ,MAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,IAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAI,GAAG,CAAC,IAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,OAAU,QAAQ,UAAK,GAAG,CAAC,IAAI,GAAG,IAAI,IAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAI,GAAG,CAAC,IAAM,CAAC,CAAC,CAAC,EAAE,WAAO,CAAC;IACjF,CAAC;IAED,sCAAsC;IAC/B,8BAAgB,GAAvB;QACE,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACI,gDAAkC,GAAzC;QACE,OAAU,IAAI,CAAC,gBAAgB,EAAE,SAAI,IAAI,CAAC,YAAY,EAAI,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACI,mDAAqC,GAA5C;QACE,OAAU,IAAI,CAAC,oBAAoB,EAAE,SAAI,IAAI,CAAC,YAAY,EAAI,CAAC;IACjE,CAAC;IAED,8DAA8D;IACvD,kCAAoB,GAA3B;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,OAAO,CAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAI,GAAG,CAAC,IAAM,CAAC,CAAC,CAAC,EAAE,cAAQ,GAAG,CAAC,SAAS,YAAS,CAAC;IACzE,CAAC;IAED;;;OAGG;IACI,+BAAiB,GAAxB,UAAyB,UAAkB,EAAE,aAAqB;QAChE,+EAA+E;QAC/E,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,IAAM,MAAM,GAAG,CAAC,2BAAyB,kBAAoB,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,mBAAiB,UAAU,SAAI,aAAe,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,gBAAc,GAAG,CAAC,SAAW,CAAC,CAAC;QAC3C,IAAI,GAAG,CAAC,IAAI,EAAE;YACZ,MAAM,CAAC,IAAI,CAAC,mBAAiB,GAAG,CAAC,IAAM,CAAC,CAAC;SAC1C;QACD,OAAO;YACL,cAAc,EAAE,kBAAkB;YAClC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;SACnC,CAAC;IACJ,CAAC;IAED,qDAAqD;IAC9C,qCAAuB,GAA9B,UACE,aAIM;QAJN,kDAIM;QAEN,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,IAAM,QAAQ,GAAM,IAAI,CAAC,kBAAkB,EAAE,sBAAmB,CAAC;QAEjE,IAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,cAAc,CAAC,IAAI,CAAC,SAAO,GAAG,CAAC,QAAQ,EAAI,CAAC,CAAC;QAC7C,KAAK,IAAM,GAAG,IAAI,aAAa,EAAE;YAC/B,IAAI,GAAG,KAAK,KAAK,EAAE;gBACjB,SAAS;aACV;YAED,IAAI,GAAG,KAAK,MAAM,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;oBACvB,SAAS;iBACV;gBACD,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE;oBAC3B,cAAc,CAAC,IAAI,CAAC,UAAQ,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAG,CAAC,CAAC;iBAC5E;gBACD,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE;oBAC5B,cAAc,CAAC,IAAI,CAAC,WAAS,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAG,CAAC,CAAC;iBAC9E;aACF;iBAAM;gBACL,cAAc,CAAC,IAAI,CAAI,kBAAkB,CAAC,GAAG,CAAC,SAAI,kBAAkB,CAAC,aAAa,CAAC,GAAG,CAAW,CAAG,CAAC,CAAC;aACvG;SACF;QACD,IAAI,cAAc,CAAC,MAAM,EAAE;YACzB,OAAU,QAAQ,SAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAG,CAAC;SAClD;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,yCAAyC;IACjC,kCAAoB,GAA5B;QACE,OAAO,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,kDAAkD;IAC1C,gCAAkB,GAA1B,UAA2B,MAA4B;QACrD,IAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvC,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,OAAO,KAAG,IAAI,GAAG,GAAG,CAAC,SAAS,SAAI,MAAM,MAAG,CAAC;IAC9C,CAAC;IAED,iFAAiF;IACzE,0BAAY,GAApB;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,IAAM,IAAI,GAAG;YACX,4DAA4D;YAC5D,8DAA8D;YAC9D,UAAU,EAAE,GAAG,CAAC,SAAS;YACzB,cAAc,EAAE,kBAAkB;SACnC,CAAC;QACF,OAAO,wDAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IACH,UAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;ACrJmD;AAEF;AAmDlD;;;GAGG;AACH;IAOE,sCAAsC;IACtC,qBAAmB,OAAU;QAC3B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACtB,sDAAW,CAAC,gDAAgD,CAAC,CAAC;SAC/D;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,iHAAiH;IAC1G,wCAAkB,GAAzB,UAA0B,UAAe,EAAE,KAAiB;QAC1D,MAAM,IAAI,sDAAW,CAAC,sDAAsD,CAAC,CAAC;IAChF,CAAC;IAED;;OAEG;IACI,sCAAgB,GAAvB,UAAwB,QAAgB,EAAE,MAAiB,EAAE,KAAiB;QAC5E,MAAM,IAAI,sDAAW,CAAC,oDAAoD,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACI,+BAAS,GAAhB,UAAiB,KAAY;QAC3B,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAM;YACrD,uDAAY,CAAC,gCAA8B,MAAQ,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,iCAAW,GAAlB,UAAmB,OAAgB;QACjC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAChC,sDAAW,CAAC,yEAAyE,CAAC,CAAC;YACvF,OAAO;SACR;QAED,KAAK,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAM;YACzD,uDAAY,CAAC,kCAAgC,MAAQ,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,kCAAY,GAAnB;QACE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACO,qCAAe,GAAzB;QACE,OAAO,IAAI,2DAAa,EAAE,CAAC;IAC7B,CAAC;IACH,kBAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7HD,8BAA8B;AACe;AAUtB;AAYA;AAG6C;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH;IAoBE;;;;;OAKG;IACH,oBAAsB,YAAgC,EAAE,OAAU;QAZlE,kCAAkC;QACxB,kBAAa,GAAqB,EAAE,CAAC;QAE/C,qCAAqC;QAC3B,gBAAW,GAAW,CAAC,CAAC;QAShC,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,IAAI,OAAO,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,IAAI,GAAG,IAAI,8CAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAClC;IACH,CAAC;IAED;;OAEG;IACH,iHAAiH;IAC1G,qCAAgB,GAAvB,UAAwB,SAAc,EAAE,IAAgB,EAAE,KAAa;QAAvE,iBAaC;QAZC,IAAI,OAAO,GAAuB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;QAExD,IAAI,CAAC,QAAQ,CACX,IAAI,CAAC,WAAW,EAAE;aACf,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC;aACnC,IAAI,CAAC,eAAK,IAAI,YAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,EAAtC,CAAsC,CAAC;aACrD,IAAI,CAAC,gBAAM;YACV,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC,CAAC,CACL,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,mCAAc,GAArB,UAAsB,OAAe,EAAE,KAAgB,EAAE,IAAgB,EAAE,KAAa;QAAxF,iBAgBC;QAfC,IAAI,OAAO,GAAuB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;QAExD,IAAM,aAAa,GAAG,0DAAW,CAAC,OAAO,CAAC;YACxC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YACnE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAEzD,IAAI,CAAC,QAAQ,CACX,aAAa;aACV,IAAI,CAAC,eAAK,IAAI,YAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,EAAtC,CAAsC,CAAC;aACrD,IAAI,CAAC,gBAAM;YACV,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC,CAAC,CACL,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,iCAAY,GAAnB,UAAoB,KAAY,EAAE,IAAgB,EAAE,KAAa;QAC/D,IAAI,OAAO,GAAuB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;QAExD,IAAI,CAAC,QAAQ,CACX,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAM;YAChD,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,mCAAc,GAArB,UAAsB,OAAgB;QACpC,IAAI,CAAC,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,EAAE;YAC1C,sDAAW,CAAC,4DAA4D,CAAC,CAAC;SAC3E;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC3B,6EAA6E;YAC7E,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;SACjC;IACH,CAAC;IAED;;OAEG;IACI,2BAAM,GAAb;QACE,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,+BAAU,GAAjB;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,0BAAK,GAAZ,UAAa,OAAgB;QAA7B,iBAOC;QANC,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAK;YACjD,OAAO,KAAI,CAAC,WAAW,EAAE;iBACtB,YAAY,EAAE;iBACd,KAAK,CAAC,OAAO,CAAC;iBACd,IAAI,CAAC,0BAAgB,IAAI,YAAK,IAAI,gBAAgB,EAAzB,CAAyB,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,0BAAK,GAAZ,UAAa,OAAgB;QAA7B,iBAKC;QAJC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAM;YACpC,KAAI,CAAC,UAAU,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC;YAClC,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,sCAAiB,GAAxB;QACE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,IAAI,CAAC,aAAa,GAAG,+DAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACvD;IACH,CAAC;IAED;;OAEG;IACI,mCAAc,GAArB,UAA6C,WAAgC;QAC3E,IAAI;YACF,OAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAO,IAAI,IAAI,CAAC;SAC1D;QAAC,OAAO,GAAG,EAAE;YACZ,sDAAW,CAAC,iCAA+B,WAAW,CAAC,EAAE,6BAA0B,CAAC,CAAC;YACrF,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,2DAA2D;IACjD,4CAAuB,GAAjC,UAAkC,OAAgB,EAAE,KAAY;;QAC9D,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,SAAS,CAAC;QACd,IAAM,UAAU,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;QAE7D,IAAI,UAAU,EAAE;YACd,OAAO,GAAG,IAAI,CAAC;;gBAEf,KAAiB,6EAAU,qGAAE;oBAAxB,IAAM,EAAE;oBACX,IAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;oBAC/B,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,KAAK,KAAK,EAAE;wBAC5C,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM;qBACP;iBACF;;;;;;;;;SACF;QAED,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YACtB,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,KAAK,IAAM,GAAG,IAAI,OAAO,EAAE;gBACzB,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,YAAY,EAAE;oBACtC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;oBACzB,MAAM;iBACP;aACF;SACF;QAED,OAAO,CAAC,MAAM,CAAC,oGACV,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,gEAAqB,EAAE,CAAC,KACjD,IAAI;YACJ,SAAS,aACT,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,IACnD,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,yCAAyC;IAC/B,iCAAY,GAAtB,UAAuB,OAAgB;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,uDAAuD;IAC7C,wCAAmB,GAA7B,UAA8B,OAAgB;QAA9C,iBAkBC;QAjBC,OAAO,IAAI,sDAAW,CAAC,iBAAO;YAC5B,IAAI,MAAM,GAAW,CAAC,CAAC;YACvB,IAAM,IAAI,GAAW,CAAC,CAAC;YAEvB,IAAM,QAAQ,GAAG,WAAW,CAAC;gBAC3B,IAAI,KAAI,CAAC,WAAW,IAAI,CAAC,EAAE;oBACzB,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACxB,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM;oBACL,MAAM,IAAI,IAAI,CAAC;oBACf,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,EAAE;wBAChC,aAAa,CAAC,QAAQ,CAAC,CAAC;wBACxB,OAAO,CAAC,KAAK,CAAC,CAAC;qBAChB;iBACF;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACzB,gCAAW,GAArB;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,yEAAyE;IAC/D,+BAAU,GAApB;QACE,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IACxE,CAAC;IAED;;;;;;;;;;;;;OAaG;IACO,kCAAa,GAAvB,UAAwB,KAAY,EAAE,KAAa,EAAE,IAAgB;QAArE,iBAkCC;QAjCS,yCAAkB,EAAlB,uCAAkB,CAAuB;QACjD,IAAM,QAAQ,uGACT,KAAK,KACR,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,oDAAK,EAAE,CAAC,EAC7E,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,qEAAsB,EAAE,GACvD,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAE1C,8EAA8E;QAC9E,6FAA6F;QAC7F,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE;YAC/B,UAAU,GAAG,oDAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAClE;QAED,oDAAoD;QACpD,IAAI,MAAM,GAAG,8DAAmB,CAAe,QAAQ,CAAC,CAAC;QAEzD,2DAA2D;QAC3D,kEAAkE;QAClE,IAAI,UAAU,EAAE;YACd,wCAAwC;YACxC,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SAClD;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,aAAG;YACpB,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,GAAG,CAAC,EAAE;gBAC5D,OAAO,KAAI,CAAC,eAAe,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;aAClD;YACD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACO,oCAAe,GAAzB,UAA0B,KAAmB,EAAE,KAAa;QAC1D,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,IAAI,CAAC;SACb;QAED,IAAM,UAAU,GAAG,oPACd,KAAK,GACL,CAAC,KAAK,CAAC,WAAW,IAAI;YACvB,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,oGACpC,CAAC,GACD,CAAC,CAAC,CAAC,IAAI,IAAI;gBACZ,IAAI,EAAE,yDAAS,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC;aAC/B,CAAC,EACF,EALsC,CAKtC,CAAC;SACJ,CAAC,GACC,CAAC,KAAK,CAAC,IAAI,IAAI;YAChB,IAAI,EAAE,yDAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;SACnC,CAAC,GACC,CAAC,KAAK,CAAC,QAAQ,IAAI;YACpB,QAAQ,EAAE,yDAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;SAC3C,CAAC,GACC,CAAC,KAAK,CAAC,KAAK,IAAI;YACjB,KAAK,EAAE,yDAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;SACrC,CAAC,CACH,CAAC;QACF,0EAA0E;QAC1E,mEAAmE;QACnE,yEAAyE;QACzE,uCAAuC;QACvC,2EAA2E;QAC3E,yEAAyE;QACzE,kDAAkD;QAClD,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE;YAC1C,sEAAsE;YACtE,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;SAClD;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACO,wCAAmB,GAA7B,UAA8B,KAAY;QACxC,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,qCAAW,EAAE,yBAAO,EAAE,mBAAI,EAAE,2BAAoB,EAApB,yCAAoB,CAAa;QAErE,IAAI,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,EAAE;YAC7B,KAAK,CAAC,WAAW,GAAG,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;SAC3E;QAED,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE;YACxD,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;SACzB;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE;YAClD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;SACnB;QAED,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,KAAK,CAAC,OAAO,GAAG,wDAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;SACzD;QAED,IAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzF,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,EAAE;YAChC,SAAS,CAAC,KAAK,GAAG,wDAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;SAC7D;QAED,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE;YAC1B,OAAO,CAAC,GAAG,GAAG,wDAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;SACrD;IACH,CAAC;IAED;;;OAGG;IACO,+CAA0B,GAApC,UAAqC,KAAY;QAC/C,IAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;YAC5B,KAAK,CAAC,GAAG,CAAC,YAAY,GAAG,gDAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAK,iBAAiB,CAAC,CAAC;SACpF;IACH,CAAC;IAED;;;OAGG;IACO,+BAAU,GAApB,UAAqB,KAAY;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACO,kCAAa,GAAvB,UAAwB,KAAY,EAAE,IAAgB,EAAE,KAAa;QACnE,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAChD,oBAAU;YACR,OAAO,UAAU,CAAC,QAAQ,CAAC;QAC7B,CAAC,EACD,gBAAM;YACJ,uDAAY,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO,SAAS,CAAC;QACnB,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACO,kCAAa,GAAvB,UAAwB,KAAY,EAAE,IAAgB,EAAE,KAAa;QAArE,iBAwEC;QAvEC,6DAA6D;QACvD,0BAA8C,EAA5C,0BAAU,EAAE,0BAAgC,CAAC;QAErD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;YACtB,OAAO,6DAAkB,CAAC,IAAI,uDAAW,CAAC,uCAAuC,CAAC,CAAC,CAAC;SACrF;QAED,IAAM,aAAa,GAAG,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC;QACnD,+BAA+B;QAC/B,6BAA6B;QAC7B,kDAAkD;QAClD,IAAI,CAAC,aAAa,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,EAAE;YAClF,OAAO,6DAAkB,CACvB,IAAI,uDAAW,CACb,sFAAoF,UAAU,MAAG,CAClG,CACF,CAAC;SACH;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;aAC1C,IAAI,CAAC,kBAAQ;YACZ,IAAI,QAAQ,KAAK,IAAI,EAAE;gBACrB,MAAM,IAAI,uDAAW,CAAC,wDAAwD,CAAC,CAAC;aACjF;YAED,IAAM,mBAAmB,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,IAAK,IAAI,CAAC,IAAgC,CAAC,UAAU,KAAK,IAAI,CAAC;YAC5G,IAAI,mBAAmB,IAAI,aAAa,IAAI,CAAC,UAAU,EAAE;gBACvD,OAAO,QAAQ,CAAC;aACjB;YAED,IAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE;gBAC3C,MAAM,IAAI,uDAAW,CAAC,4DAA4D,CAAC,CAAC;aACrF;iBAAM,IAAI,yDAAU,CAAC,gBAAgB,CAAC,EAAE;gBACvC,OAAQ,gBAA8C,CAAC,IAAI,CACzD,eAAK,IAAI,YAAK,EAAL,CAAK,EACd,WAAC;oBACC,MAAM,IAAI,uDAAW,CAAC,8BAA4B,CAAG,CAAC,CAAC;gBACzD,CAAC,CACF,CAAC;aACH;YACD,OAAO,gBAAgB,CAAC;QAC1B,CAAC,CAAC;aACD,IAAI,CAAC,wBAAc;YAClB,IAAI,cAAc,KAAK,IAAI,EAAE;gBAC3B,MAAM,IAAI,uDAAW,CAAC,oDAAoD,CAAC,CAAC;aAC7E;YAED,IAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YAChE,IAAI,CAAC,aAAa,IAAI,OAAO,EAAE;gBAC7B,KAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;aACvD;YAED,KAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAChC,OAAO,cAAc,CAAC;QACxB,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,EAAE,gBAAM;YAChB,IAAI,MAAM,YAAY,uDAAW,EAAE;gBACjC,MAAM,MAAM,CAAC;aACd;YAED,KAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;gBAC5B,IAAI,EAAE;oBACJ,UAAU,EAAE,IAAI;iBACjB;gBACD,iBAAiB,EAAE,MAAe;aACnC,CAAC,CAAC;YACH,MAAM,IAAI,uDAAW,CACnB,gIAA8H,MAAQ,CACvI,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACO,6BAAQ,GAAlB,UAAsB,OAAuB;QAA7C,iBAYC;QAXC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;QACtB,KAAK,OAAO,CAAC,IAAI,CACf,eAAK;YACH,KAAI,CAAC,WAAW,IAAI,CAAC,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC,EACD,gBAAM;YACJ,KAAI,CAAC,WAAW,IAAI,CAAC,CAAC;YACtB,OAAO,MAAM,CAAC;QAChB,CAAC,CACF,CAAC;IACJ,CAAC;IACH,iBAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;AC5jBoE;AAE9B;AAEhC,IAAM,qBAAqB,GAAa,EAAE,CAAC;AAOlD;;GAEG;AACH,SAAS,gBAAgB,CAAC,YAA2B;IACnD,OAAO,YAAY,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,YAAY;QAC3C,IAAI,GAAG,CAAC,KAAK,CAAC,wBAAc,IAAI,mBAAY,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,EAAzC,CAAyC,CAAC,EAAE;YAC1E,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACxB;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAmB,CAAC,CAAC;AAC1B,CAAC;AAED,kCAAkC;AAC3B,SAAS,sBAAsB,CAAC,OAAgB;IACrD,IAAM,mBAAmB,GAAG,CAAC,OAAO,CAAC,mBAAmB,IAAI,gDAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;IACpG,IAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAE9C,IAAI,YAAY,mDAAsB,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE7E,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;QACnC,iEAAiE;QACjE,YAAY,GAAG,gDACV,YAAY,CAAC,MAAM,CAAC,sBAAY;YACjC,uBAAgB,CAAC,KAAK,CAAC,yBAAe,IAAI,sBAAe,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,EAA1C,CAA0C,CAAC;QAArF,CAAqF,CACtF,EAEE,gBAAgB,CAAC,gBAAgB,CAAC,CACtC,CAAC;KACH;SAAM,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;QACjD,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC9C,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;KAC5E;IAED,sEAAsE;IACtE,IAAM,iBAAiB,GAAG,YAAY,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC;IACxD,IAAM,eAAe,GAAG,OAAO,CAAC;IAChC,IAAI,iBAAiB,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE;QACrD,YAAY,CAAC,IAAI,OAAjB,YAAY,kDAAS,YAAY,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,GAAE;KAC1F;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,8BAA8B;AACvB,SAAS,gBAAgB,CAAC,WAAwB;IACvD,IAAI,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;QAC1D,OAAO;KACR;IACD,WAAW,CAAC,SAAS,CAAC,gEAAuB,EAAE,sDAAa,CAAC,CAAC;IAC9D,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7C,qDAAU,CAAC,4BAA0B,WAAW,CAAC,IAAM,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACI,SAAS,iBAAiB,CAAoB,OAAU;IAC7D,IAAM,YAAY,GAAqB,EAAE,CAAC;IAC1C,sBAAsB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAW;QACjD,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;QAC7C,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,OAAO,YAAY,CAAC;AACtB,CAAC;;;;;;;;;;;;;;;;AC3ED,IAAI,wBAAoC,CAAC;AAEzC,uEAAuE;AACvE;IAAA;QAME;;WAEG;QACI,SAAI,GAAW,gBAAgB,CAAC,EAAE,CAAC;IAe5C,CAAC;IAbC;;OAEG;IACI,oCAAS,GAAhB;QACE,6DAA6D;QAC7D,wBAAwB,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC;QAEvD,8DAA8D;QAC9D,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG;YAAgC,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YAC1E,IAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC;YACjD,OAAO,wBAAwB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC;IACJ,CAAC;IAtBD;;OAEG;IACW,mBAAE,GAAW,kBAAkB,CAAC;IAoBhD,uBAAC;CAAA;AAxB4B;;;;;;;;;;;;;;;;;;;;;;;ACLwC;AAEU;AAE/E,6EAA6E;AAC7E,mFAAmF;AACnF,IAAM,qBAAqB,GAAG,CAAC,mBAAmB,EAAE,+CAA+C,CAAC,CAAC;AAerG,+CAA+C;AAC/C;IAWE,wBAAoC,QAA6C;QAA7C,wCAA6C;QAA7C,aAAQ,GAAR,QAAQ,CAAqC;QALjF;;WAEG;QACI,SAAI,GAAW,cAAc,CAAC,EAAE,CAAC;IAE4C,CAAC;IAErF;;OAEG;IACI,kCAAS,GAAhB;QACE,oEAAuB,CAAC,UAAC,KAAY;YACnC,IAAM,GAAG,GAAG,0DAAa,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,EAAE;gBACR,OAAO,KAAK,CAAC;aACd;YACD,IAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAChD,IAAI,IAAI,EAAE;gBACR,IAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;gBAC/B,IAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,wEAAwE;gBACxE,6DAA6D;gBAC7D,wGAAwG;gBACxG,+FAA+F;gBAC/F,yFAAyF;gBACzF,IAAM,OAAO,GAAG,OAAO,IAAI,CAAC,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClG,IAAI,OAAO,IAAI,CAAC,gBAAgB,KAAK,UAAU,EAAE;oBAC/C,OAAO,KAAK,CAAC;iBACd;gBACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;aAC7D;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IACJ,yCAAgB,GAAxB,UAAyB,KAAY,EAAE,OAAuC;QAC5E,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YACvC,sDAAW,CAAC,+DAA6D,kEAAmB,CAAC,KAAK,CAAG,CAAC,CAAC;YACvG,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YACxC,sDAAW,CACT,0EAA0E,kEAAmB,CAAC,KAAK,CAAG,CACvG,CAAC;YACF,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YACrC,sDAAW,CACT,sEAAsE,kEAAmB,CACvF,KAAK,CACN,gBAAW,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAG,CAC7C,CAAC;YACF,OAAO,IAAI,CAAC;SACb;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YACvC,sDAAW,CACT,2EAA2E,kEAAmB,CAC5F,KAAK,CACN,gBAAW,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAG,CAC7C,CAAC;YACF,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,YAAY;IACJ,uCAAc,GAAtB,UAAuB,KAAY,EAAE,OAAuC;QAC1E,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YAC3B,OAAO,KAAK,CAAC;SACd;QAED,IAAI;YACF,OAAO,CACL,CAAC,KAAK;gBACJ,KAAK,CAAC,SAAS;gBACf,KAAK,CAAC,SAAS,CAAC,MAAM;gBACtB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gBACzB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;gBACnD,KAAK,CACN,CAAC;SACH;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED,YAAY;IACJ,wCAAe,GAAvB,UAAwB,KAAY,EAAE,OAAuC;QAC3E,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE;YACzD,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAO;YACvD,4CAA4C;YAC5C,OAAC,OAAO,CAAC,YAAuC,CAAC,IAAI,CAAC,iBAAO,IAAI,uEAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAnC,CAAmC,CAAC;QAArG,CAAqG,CACtG,CAAC;IACJ,CAAC;IAED,YAAY;IACJ,qCAAY,GAApB,UAAqB,KAAY,EAAE,OAAuC;QACxE,0BAA0B;QAC1B,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE;YACjD,OAAO,KAAK,CAAC;SACd;QACD,IAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAO,IAAI,uEAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,EAA/B,CAA+B,CAAC,CAAC;IAC1F,CAAC;IAED,YAAY;IACJ,sCAAa,GAArB,UAAsB,KAAY,EAAE,OAAuC;QACzE,0BAA0B;QAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE;YACnD,OAAO,IAAI,CAAC;SACb;QACD,IAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAO,IAAI,uEAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,EAA/B,CAA+B,CAAC,CAAC;IAC1F,CAAC;IAED,YAAY;IACJ,sCAAa,GAArB,UAAsB,aAAkD;QAAlD,kDAAkD;QACtE,OAAO;YACL,SAAS,EAAE,gDAEN,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC,EACnC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,EAE/B,CAAC,aAAa,CAAC,aAAa,IAAI,EAAE,CAAC,EACnC,CAAC,aAAa,CAAC,SAAS,IAAI,EAAE,CAAC,CACnC;YACD,QAAQ,EAAE,gDAEL,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC,EACnC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,EAE9B,CAAC,aAAa,CAAC,aAAa,IAAI,EAAE,CAAC,EACnC,CAAC,aAAa,CAAC,QAAQ,IAAI,EAAE,CAAC,CAClC;YACD,YAAY,EAAE,gDACT,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,EAClC,CAAC,aAAa,CAAC,YAAY,IAAI,EAAE,CAAC,EAClC,qBAAqB,CACzB;YACD,cAAc,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;SAC1G,CAAC;IACJ,CAAC;IAED,YAAY;IACJ,kDAAyB,GAAjC,UAAkC,KAAY;QAC5C,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SACxB;QACD,IAAI,KAAK,CAAC,SAAS,EAAE;YACnB,IAAI;gBACI,oEAAuF,EAArF,YAAS,EAAT,8BAAS,EAAE,aAAU,EAAV,+BAA0E,CAAC;gBAC9F,OAAO,CAAC,KAAG,KAAO,EAAK,IAAI,UAAK,KAAO,CAAC,CAAC;aAC1C;YAAC,OAAO,EAAE,EAAE;gBACX,uDAAY,CAAC,sCAAoC,kEAAmB,CAAC,KAAK,CAAG,CAAC,CAAC;gBAC/E,OAAO,EAAE,CAAC;aACX;SACF;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,YAAY;IACJ,2CAAkB,GAA1B,UAA2B,KAAY;QACrC,IAAI;YACF,IAAI,KAAK,CAAC,UAAU,EAAE;gBACpB,IAAM,QAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;gBACvC,OAAO,CAAC,QAAM,IAAI,QAAM,CAAC,QAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;aAC/D;YACD,IAAI,KAAK,CAAC,SAAS,EAAE;gBACnB,IAAM,QAAM,GACV,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;gBAChH,OAAO,CAAC,QAAM,IAAI,QAAM,CAAC,QAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;aAC/D;YACD,OAAO,IAAI,CAAC;SACb;QAAC,OAAO,EAAE,EAAE;YACX,uDAAY,CAAC,kCAAgC,kEAAmB,CAAC,KAAK,CAAG,CAAC,CAAC;YAC3E,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAzLD;;OAEG;IACW,iBAAE,GAAW,gBAAgB,CAAC;IAuL9C,qBAAC;CAAA;AA3L0B;;;;;;;;;;;;;;;;;;;AClB3B,kDAAkD;AAClD,SAAS,+BAA+B,CAAC,GAAQ;IAC/C,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE;QACtC,OAAO;KACR;IACK,yBAAoC,EAAlC,cAAI,EAAE,oBAA4B,CAAC;IAC3C,OAAO,EAAE,IAAI,QAAE,OAAO,WAAE,CAAC;AAC3B,CAAC;AAED;;;IAGI;AACJ,SAAS,uBAAuB,CAAC,KAAY,EAAE,OAAiB;IAC9D,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,KAAK,CAAC;KACd;IACD,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;IAC5B,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAChD,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IACzD,KAAK,CAAC,GAAG,CAAC,YAAY,GAAG,gDAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAK,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9F,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,gDAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAK,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8CAA8C;AACvC,SAAS,sBAAsB,CAAC,OAAoC,EAAE,GAAQ;IACnF,IAAM,OAAO,GAAG,+BAA+B,CAAC,GAAG,CAAC,CAAC;IACrD,IAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,kDACrC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAC9B,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAChC,CAAC;IACH,wGAAwG;IACxG,IAAM,IAAI,GAAsB,YAAY,IAAI,OAAO,CAAC,CAAC,CAAE,UAAgC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxG,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI;KACL,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAK,eAAe,UAAK,WAAW,UAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAG;QACtE,IAAI;QACJ,GAAG,EAAE,GAAG,CAAC,qCAAqC,EAAE;KACjD,CAAC;AACJ,CAAC;AAED,6CAA6C;AACtC,SAAS,oBAAoB,CAAC,KAAY,EAAE,GAAQ;IACzD,IAAM,OAAO,GAAG,+BAA+B,CAAC,GAAG,CAAC,CAAC;IACrD,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC;IACxC,IAAM,WAAW,GAAG,SAAS,KAAK,aAAa,CAAC;IAEhD,IAAM,2BAA6D,EAA3D,4CAAmB,EAAE,qFAAsC,CAAC;IAC9D,kCAAwE,EAAtE,0BAAsB,EAAE,oBAA8C,CAAC;IAC/E,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACtC,OAAO,KAAK,CAAC,UAAU,CAAC;KACzB;SAAM;QACL,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;KAC7B;IAED,IAAM,GAAG,GAAkB;QACzB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACxF,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,kCAAkC,EAAE;KAC1G,CAAC;IAEF,4CAA4C;IAE5C,0EAA0E;IAC1E,8EAA8E;IAC9E,8EAA8E;IAC9E,gCAAgC;IAChC,IAAI,WAAW,EAAE;QACf,IAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,kDACrC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAC9B,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAChC,CAAC;QACH,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,IAAI,EAAE,KAAK,CAAC,IAAI;YAEhB,qGAAqG;YACrG,6DAA6D;YAC7D,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;SAezD,CAAC,CAAC;QACH,4EAA4E;QAC5E,6BAA6B;QAC7B,EAAE;QACF,wEAAwE;QACxE,IAAM,QAAQ,GAAM,eAAe,UAAK,WAAW,UAAK,GAAG,CAAC,IAAM,CAAC;QACnE,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;KACrB;IAED,OAAO,GAAG,CAAC;AACb,CAAC;;;;;;;;;;;;;;;;;;AC/G2C;AAEL;AAKvC;;;;;;GAMG;AACI,SAAS,WAAW,CAAsC,WAA8B,EAAE,OAAU;;IACzG,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE;QAC1B,wDAAa,EAAE,CAAC;KACjB;IACD,IAAM,GAAG,GAAG,0DAAa,EAAE,CAAC;IAC5B,SAAG,CAAC,QAAQ,EAAE,0CAAE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;IAC7C,IAAM,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IACxC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC;;;;;;;;;;;;;;;;;;ACtBkE;AACvB;AAE5C,qBAAqB;AACrB;IAAA;IAiBA,CAAC;IAhBC;;OAEG;IACI,iCAAS,GAAhB,UAAiB,CAAQ;QACvB,OAAO,8DAAmB,CAAC;YACzB,MAAM,EAAE,qEAAqE;YAC7E,MAAM,EAAE,yDAAc;SACvB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,6BAAK,GAAZ,UAAa,CAAU;QACrB,OAAO,8DAAmB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACH,oBAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;ACrBM,IAAM,WAAW,GAAG,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAnC,8BAA8B;AAsBP;AAC2F;AAElF;AACI;AAEpC;;;;;;;GAOG;AACI,IAAM,WAAW,GAAG,CAAC,CAAC;AAE7B;;;GAGG;AACH,IAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC;;;GAGG;AACH,IAAM,eAAe,GAAG,GAAG,CAAC;AA2C5B;;GAEG;AACH;IAOE;;;;;;;OAOG;IACH,aAAmB,MAAe,EAAE,KAA0B,EAAmB,QAA8B;QAA3E,oCAAmB,yCAAK,EAAE;QAAmB,iDAA8B;QAA9B,aAAQ,GAAR,QAAQ,CAAsB;QAd/G,2DAA2D;QAC1C,WAAM,GAAY,CAAC,EAAE,CAAC,CAAC;QActC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,yBAAW,GAAlB,UAAmB,OAAe;QAChC,OAAO,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,wBAAU,GAAjB,UAAkB,MAAe;QAC/B,IAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;QACpB,IAAI,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE;YACtC,MAAM,CAAC,iBAAiB,EAAE,CAAC;SAC5B;IACH,CAAC;IAED;;OAEG;IACI,uBAAS,GAAhB;QACE,6CAA6C;QAC7C,IAAM,KAAK,GAAG,+CAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;YACxB,KAAK;SACN,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACI,sBAAQ,GAAf;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9C,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,uBAAS,GAAhB,UAAiB,QAAgC;QAC/C,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI;YACF,QAAQ,CAAC,KAAK,CAAC,CAAC;SACjB;gBAAS;YACR,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;IACH,CAAC;IAED;;OAEG;IACI,uBAAS,GAAhB;QACE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAW,CAAC;IACxC,CAAC;IAED,0CAA0C;IACnC,sBAAQ,GAAf;QACE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,0DAA0D;IACnD,sBAAQ,GAAf;QACE,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,6EAA6E;IACtE,yBAAW,GAAlB;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,iHAAiH;IAC1G,8BAAgB,GAAvB,UAAwB,SAAc,EAAE,IAAgB;QACtD,IAAM,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,oDAAK,EAAE,CAAC,CAAC;QAC9C,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,gFAAgF;QAChF,yDAAyD;QACzD,gFAAgF;QAChF,iEAAiE;QACjE,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,kBAAkB,SAAO,CAAC;YAC9B,IAAI;gBACF,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;aAC9C;YAAC,OAAO,SAAS,EAAE;gBAClB,kBAAkB,GAAG,SAAkB,CAAC;aACzC;YACD,SAAS,GAAG;gBACV,iBAAiB,EAAE,SAAS;gBAC5B,kBAAkB;aACnB,CAAC;SACH;QAED,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,SAAS,EAAE,oGAC7C,SAAS,KACZ,QAAQ,EAAE,OAAO,IACjB,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,4BAAc,GAArB,UAAsB,OAAe,EAAE,KAAgB,EAAE,IAAgB;QACvE,IAAM,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,oDAAK,EAAE,CAAC,CAAC;QAC9C,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,gFAAgF;QAChF,yDAAyD;QACzD,gFAAgF;QAChF,iEAAiE;QACjE,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,kBAAkB,SAAO,CAAC;YAC9B,IAAI;gBACF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;aAC1B;YAAC,OAAO,SAAS,EAAE;gBAClB,kBAAkB,GAAG,SAAkB,CAAC;aACzC;YACD,SAAS,GAAG;gBACV,iBAAiB,EAAE,OAAO;gBAC1B,kBAAkB;aACnB,CAAC;SACH;QAED,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,oGAChD,SAAS,KACZ,QAAQ,EAAE,OAAO,IACjB,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,0BAAY,GAAnB,UAAoB,KAAY,EAAE,IAAgB;QAChD,IAAM,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,oDAAK,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,oGACrC,IAAI,KACP,QAAQ,EAAE,OAAO,IACjB,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,yBAAW,GAAlB;QACE,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,2BAAa,GAApB,UAAqB,UAAsB,EAAE,IAAqB;QAC1D,2BAAsC,EAApC,gBAAK,EAAE,kBAA6B,CAAC;QAE7C,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO;QAE9B,6DAA6D;QACvD,yDAC4C,EAD1C,wBAAuB,EAAvB,4CAAuB,EAAE,sBAAoC,EAApC,yDACiB,CAAC;QAEnD,IAAI,cAAc,IAAI,CAAC;YAAE,OAAO;QAEhC,IAAM,SAAS,GAAG,qEAAsB,EAAE,CAAC;QAC3C,IAAM,gBAAgB,GAAG,kDAAE,SAAS,eAAK,UAAU,CAAE,CAAC;QACtD,IAAM,eAAe,GAAG,gBAAgB;YACtC,CAAC,CAAE,6DAAc,CAAC,cAAM,uBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAxC,CAAwC,CAAuB;YACvF,CAAC,CAAC,gBAAgB,CAAC;QAErB,IAAI,eAAe,KAAK,IAAI;YAAE,OAAO;QAErC,KAAK,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;IAClF,CAAC;IAED;;OAEG;IACI,qBAAO,GAAd,UAAe,IAAiB;QAC9B,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK;YAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,qBAAO,GAAd,UAAe,IAAkC;QAC/C,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK;YAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,uBAAS,GAAhB,UAAiB,MAAc;QAC7B,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK;YAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,oBAAM,GAAb,UAAc,GAAW,EAAE,KAAgB;QACzC,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK;YAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,sBAAQ,GAAf,UAAgB,GAAW,EAAE,KAAY;QACvC,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK;YAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,8DAA8D;IACvD,wBAAU,GAAjB,UAAkB,IAAY,EAAE,OAAsC;QACpE,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK;YAAE,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,4BAAc,GAArB,UAAsB,QAAgC;QAC9C,2BAAsC,EAApC,gBAAK,EAAE,kBAA6B,CAAC;QAC7C,IAAI,KAAK,IAAI,MAAM,EAAE;YACnB,QAAQ,CAAC,KAAK,CAAC,CAAC;SACjB;IACH,CAAC;IAED;;OAEG;IACI,iBAAG,GAAV,UAAW,QAA4B;QACrC,IAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI;YACF,QAAQ,CAAC,IAAI,CAAC,CAAC;SAChB;gBAAS;YACR,QAAQ,CAAC,MAAM,CAAC,CAAC;SAClB;IACH,CAAC;IAED;;OAEG;IACI,4BAAc,GAArB,UAA6C,WAAgC;QAC3E,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI;YACF,OAAO,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;SAC3C;QAAC,OAAO,GAAG,EAAE;YACZ,sDAAW,CAAC,iCAA+B,WAAW,CAAC,EAAE,0BAAuB,CAAC,CAAC;YAClF,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED;;OAEG;IACI,uBAAS,GAAhB,UAAiB,OAAoB;QACnC,OAAO,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,8BAAgB,GAAvB,UAAwB,OAA2B,EAAE,qBAA6C;QAChG,OAAO,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;IACvF,CAAC;IAED;;OAEG;IACI,0BAAY,GAAnB;QACE,OAAO,IAAI,CAAC,oBAAoB,CAA4B,cAAc,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACI,4BAAc,GAArB,UAAsB,UAA2B;QAA3B,+CAA2B;QAC/C,2DAA2D;QAC3D,IAAI,UAAU,EAAE;YACd,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;SAC1B;QAED,uBAAuB;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,wBAAU,GAAjB;;QACE,sBAAI,CAAC,WAAW,EAAE,0CACd,KAAK,0CAAE,UAAU,4CACjB,KAAK,GAAG;QACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,gDAAgD;QAChD,gBAAI,CAAC,WAAW,EAAE,0CAAE,KAAK,0CAAE,UAAU,GAAG;IAC1C,CAAC;IAED;;OAEG;IACI,0BAAY,GAAnB,UAAoB,OAAwB;QACpC,2BAAsC,EAApC,gBAAK,EAAE,kBAA6B,CAAC;QACvC,8CAAgE,EAA9D,oBAAO,EAAE,4BAAqD,CAAC;QACvE,IAAM,OAAO,GAAG,IAAI,6CAAO,CAAC,kGAC1B,OAAO;YACP,WAAW,iBACR,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,GACpC,OAAO,EACV,CAAC;QAEH,IAAI,KAAK,EAAE;YACT,sCAAsC;YACtC,IAAM,cAAc,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YAC9D,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,2DAAgB,EAAE;gBAChE,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,+DAAoB,EAAE,CAAC,CAAC;aACzD;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAElB,iDAAiD;YACjD,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SAC3B;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,gCAAkB,GAA1B;QACQ,2BAAsC,EAApC,gBAAK,EAAE,kBAA6B,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,IAAM,OAAO,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACvD,IAAI,OAAO,EAAE;YACX,IAAI,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE;gBACnC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;aAChC;SACF;IACH,CAAC;IAED;;;;;OAKG;IACH,8DAA8D;IACtD,2BAAa,GAArB,UAA8C,MAAS;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC/D,2BAAsC,EAApC,gBAAK,EAAE,kBAA6B,CAAC;QAC7C,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE;YAC5B,0GAA0G;YAC1G,MAAC,MAAc,EAAC,MAAM,CAAC,2DAAI,IAAI,GAAE,KAAK,IAAE;SACzC;IACH,CAAC;IAED;;OAEG;IACH,2GAA2G;IAC3G,8DAA8D;IACtD,kCAAoB,GAA5B,UAAgC,MAAc;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC5D,IAAM,OAAO,GAAG,cAAc,EAAE,CAAC;QACjC,IAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;QAClC,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE;YAClF,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACpD;QACD,sDAAW,CAAC,sBAAoB,MAAM,uCAAoC,CAAC,CAAC;IAC9E,CAAC;IACH,UAAC;AAAD,CAAC;;AAED;;;;;;IAMI;AACG,SAAS,cAAc;IAC5B,IAAM,OAAO,GAAG,8DAAe,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI;QACzC,UAAU,EAAE,EAAE;QACd,GAAG,EAAE,SAAS;KACf,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACI,SAAS,QAAQ,CAAC,GAAQ;IAC/B,IAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,IAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC3C,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACI,SAAS,aAAa;IAC3B,kDAAkD;IAClD,IAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAElC,yDAAyD;IACzD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;QACtF,eAAe,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;KACtC;IAED,qFAAqF;IACrF,IAAI,wDAAS,EAAE,EAAE;QACf,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC;KACzC;IACD,2CAA2C;IAC3C,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,mDAAmD;AAC5C,SAAS,eAAe;IAC7B,sDAAW,CAAC,mFAAmF,CAAC,CAAC;IAEjG,IAAM,MAAM,GAAG,cAAc,EAAE,CAAC,UAAU,CAAC;IAE3C,OAAO,MAAM,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AACpG,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,QAAiB;;IAC/C,IAAI;QACF,IAAM,YAAY,qBAAG,cAAc,EAAE,CAAC,UAAU,0CAAE,UAAU,0CAAE,MAAM,0CAAE,MAAM,CAAC;QAE7E,sDAAsD;QACtD,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SACpC;QAED,4EAA4E;QAC5E,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;YAC9F,IAAM,mBAAmB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YACtE,eAAe,CAAC,YAAY,EAAE,IAAI,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,+CAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC5G;QAED,oCAAoC;QACpC,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC;KACxC;IAAC,OAAO,GAAG,EAAE;QACZ,2CAA2C;QAC3C,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;KACpC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,OAAgB;IACvC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACI,SAAS,iBAAiB,CAAC,OAAgB;IAChD,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG;QAAE,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;IAC3F,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAC9C,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACnC,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACI,SAAS,eAAe,CAAC,OAAgB,EAAE,GAAQ;IACxD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAC9C,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC;;;;;;;;;;;;;;;;;;;;;;;AC5lB+G;AAIhH;;;GAGG;AACH;IAAA;QACE,uCAAuC;QAC7B,wBAAmB,GAAY,KAAK,CAAC;QAE/C,oDAAoD;QAC1C,oBAAe,GAAkC,EAAE,CAAC;QAE9D,oEAAoE;QAC1D,qBAAgB,GAAqB,EAAE,CAAC;QAElD,4BAA4B;QAClB,iBAAY,GAAiB,EAAE,CAAC;QAE1C,WAAW;QACD,UAAK,GAAS,EAAE,CAAC;QAE3B,WAAW;QACD,UAAK,GAAiC,EAAE,CAAC;QAEnD,YAAY;QACF,WAAM,GAAW,EAAE,CAAC;QAE9B,eAAe;QACL,cAAS,GAAa,EAAE,CAAC;IAmcrC,CAAC;IA/aC;;;OAGG;IACW,WAAK,GAAnB,UAAoB,KAAa;QAC/B,IAAM,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,KAAK,EAAE;YACT,QAAQ,CAAC,YAAY,GAAG,gDAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAChD,QAAQ,CAAC,KAAK,GAAG,oDAAK,KAAK,CAAC,KAAK,CAAE,CAAC;YACpC,QAAQ,CAAC,MAAM,GAAG,oDAAK,KAAK,CAAC,MAAM,CAAE,CAAC;YACtC,QAAQ,CAAC,SAAS,GAAG,oDAAK,KAAK,CAAC,SAAS,CAAE,CAAC;YAC5C,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC7B,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC/B,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC7B,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YACnC,QAAQ,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;YACnD,QAAQ,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YAC3C,QAAQ,CAAC,gBAAgB,GAAG,gDAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACxD,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;SAClD;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACI,gCAAgB,GAAvB,UAAwB,QAAgC;QACtD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,iCAAiB,GAAxB,UAAyB,QAAwB;QAC/C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,uBAAO,GAAd,UAAe,IAAiB;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,QAAE,CAAC,CAAC;SAChC;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,uBAAO,GAAd;QACE,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,iCAAiB,GAAxB;QACE,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,iCAAiB,GAAxB,UAAyB,cAA+B;QACtD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,uBAAO,GAAd,UAAe,IAAkC;QAC/C,IAAI,CAAC,KAAK,GAAG,oGACR,IAAI,CAAC,KAAK,GACV,IAAI,CACR,CAAC;QACF,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,sBAAM,GAAb,UAAc,GAAW,EAAE,KAAgB;;QACzC,IAAI,CAAC,KAAK,GAAG,oGAAK,IAAI,CAAC,KAAK,gBAAG,GAAG,IAAG,KAAK,MAAE,CAAC;QAC7C,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,yBAAS,GAAhB,UAAiB,MAAc;QAC7B,IAAI,CAAC,MAAM,GAAG,oGACT,IAAI,CAAC,MAAM,GACX,MAAM,CACV,CAAC;QACF,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,wBAAQ,GAAf,UAAgB,GAAW,EAAE,KAAY;;QACvC,IAAI,CAAC,MAAM,GAAG,oGAAK,IAAI,CAAC,MAAM,gBAAG,GAAG,IAAG,KAAK,MAAE,CAAC;QAC/C,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,8BAAc,GAArB,UAAsB,WAAqB;QACzC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,wBAAQ,GAAf,UAAgB,KAAe;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,kCAAkB,GAAzB,UAA0B,IAAa;QACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,8BAAc,GAArB,UAAsB,IAAa;QACjC,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,0BAAU,GAAjB,UAAkB,GAAW,EAAE,OAAuB;;QACpD,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,gEAAgE;YAChE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,oGAAK,IAAI,CAAC,SAAS,gBAAG,GAAG,IAAG,OAAO,MAAE,CAAC;SACxD;QAED,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,uBAAO,GAAd,UAAe,IAAW;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,uBAAO,GAAd;QACE,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,8BAAc,GAArB;;QACE,wEAAwE;QACxE,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAA8D,CAAC;QAExF,2BAA2B;QAC3B,UAAI,IAAI,0CAAE,WAAW,EAAE;YACrB,aAAO,IAAI,0CAAE,WAAW,CAAC;SAC1B;QAED,wFAAwF;QACxF,gBAAI,IAAI,0CAAE,YAAY,0CAAE,KAAK,CAAC,CAAC,GAAG;YAChC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAgB,CAAC;SAClD;QAED,kCAAkC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,0BAAU,GAAjB,UAAkB,OAAiB;QACjC,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;SACzB;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,0BAAU,GAAjB;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,sBAAM,GAAb,UAAc,cAA+B;QAC3C,IAAI,CAAC,cAAc,EAAE;YACnB,OAAO,IAAI,CAAC;SACb;QAED,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;YACxC,IAAM,YAAY,GAAI,cAAqC,CAAC,IAAI,CAAC,CAAC;YAClE,OAAO,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;SAC5D;QAED,IAAI,cAAc,YAAY,KAAK,EAAE;YACnC,IAAI,CAAC,KAAK,GAAG,oGAAK,IAAI,CAAC,KAAK,GAAK,cAAc,CAAC,KAAK,CAAE,CAAC;YACxD,IAAI,CAAC,MAAM,GAAG,oGAAK,IAAI,CAAC,MAAM,GAAK,cAAc,CAAC,MAAM,CAAE,CAAC;YAC3D,IAAI,CAAC,SAAS,GAAG,oGAAK,IAAI,CAAC,SAAS,GAAK,cAAc,CAAC,SAAS,CAAE,CAAC;YACpE,IAAI,cAAc,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;gBACpE,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;aACnC;YACD,IAAI,cAAc,CAAC,MAAM,EAAE;gBACzB,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;aACrC;YACD,IAAI,cAAc,CAAC,YAAY,EAAE;gBAC/B,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC;aACjD;YACD,IAAI,cAAc,CAAC,eAAe,EAAE;gBAClC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,eAAe,CAAC;aACvD;SACF;aAAM,IAAI,4DAAa,CAAC,cAAc,CAAC,EAAE;YACxC,6CAA6C;YAC7C,cAAc,GAAG,cAA8B,CAAC;YAChD,IAAI,CAAC,KAAK,GAAG,oGAAK,IAAI,CAAC,KAAK,GAAK,cAAc,CAAC,IAAI,CAAE,CAAC;YACvD,IAAI,CAAC,MAAM,GAAG,oGAAK,IAAI,CAAC,MAAM,GAAK,cAAc,CAAC,KAAK,CAAE,CAAC;YAC1D,IAAI,CAAC,SAAS,GAAG,oGAAK,IAAI,CAAC,SAAS,GAAK,cAAc,CAAC,QAAQ,CAAE,CAAC;YACnE,IAAI,cAAc,CAAC,IAAI,EAAE;gBACvB,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC;aAClC;YACD,IAAI,cAAc,CAAC,KAAK,EAAE;gBACxB,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC;aACpC;YACD,IAAI,cAAc,CAAC,WAAW,EAAE;gBAC9B,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,WAAW,CAAC;aAChD;YACD,IAAI,cAAc,CAAC,cAAc,EAAE;gBACjC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC;aACtD;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,qBAAK,GAAZ;QACE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,6BAAa,GAApB,UAAqB,UAAsB,EAAE,cAAuB;QAClE,IAAM,gBAAgB,GAAG,kDACvB,SAAS,EAAE,qEAAsB,EAAE,IAChC,UAAU,CACd,CAAC;QAEF,IAAI,CAAC,YAAY;YACf,cAAc,KAAK,SAAS,IAAI,cAAc,IAAI,CAAC;gBACjD,CAAC,CAAC,gDAAI,IAAI,CAAC,YAAY,GAAE,gBAAgB,GAAE,KAAK,CAAC,CAAC,cAAc,CAAC;gBACjE,CAAC,CAAC,gDAAI,IAAI,CAAC,YAAY,GAAE,gBAAgB,EAAC,CAAC;QAC/C,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,gCAAgB,GAAvB;QACE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACI,4BAAY,GAAnB,UAAoB,KAAY,EAAE,IAAgB;;QAChD,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;YAClD,KAAK,CAAC,KAAK,GAAG,oGAAK,IAAI,CAAC,MAAM,GAAK,KAAK,CAAC,KAAK,CAAE,CAAC;SAClD;QACD,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;YAChD,KAAK,CAAC,IAAI,GAAG,oGAAK,IAAI,CAAC,KAAK,GAAK,KAAK,CAAC,IAAI,CAAE,CAAC;SAC/C;QACD,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;YAChD,KAAK,CAAC,IAAI,GAAG,oGAAK,IAAI,CAAC,KAAK,GAAK,KAAK,CAAC,IAAI,CAAE,CAAC;SAC/C;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;YACxD,KAAK,CAAC,QAAQ,GAAG,oGAAK,IAAI,CAAC,SAAS,GAAK,KAAK,CAAC,QAAQ,CAAE,CAAC;SAC3D;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;SAC3B;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC;SAC3C;QACD,iFAAiF;QACjF,kFAAkF;QAClF,gDAAgD;QAChD,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,KAAK,CAAC,QAAQ,GAAG,kDAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,IAAK,KAAK,CAAC,QAAQ,CAAE,CAAC;YAC5E,IAAM,eAAe,SAAG,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,IAAI,CAAC;YACrD,IAAI,eAAe,EAAE;gBACnB,KAAK,CAAC,IAAI,GAAG,kDAAE,WAAW,EAAE,eAAe,IAAK,KAAK,CAAC,IAAI,CAAE,CAAC;aAC9D;SACF;QAED,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE9B,KAAK,CAAC,WAAW,GAAG,gDAAI,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,EAAK,IAAI,CAAC,YAAY,CAAC,CAAC;QACzE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjF,OAAO,IAAI,CAAC,sBAAsB,CAAC,gDAAI,wBAAwB,EAAE,EAAK,IAAI,CAAC,gBAAgB,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7G,CAAC;IAED;;OAEG;IACO,sCAAsB,GAAhC,UACE,UAA4B,EAC5B,KAAmB,EACnB,IAAgB,EAChB,KAAiB;QAJnB,iBAuBC;QAnBC,iCAAiB;QAEjB,OAAO,IAAI,sDAAW,CAAe,UAAC,OAAO,EAAE,MAAM;YACnD,IAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;gBACrD,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;iBAAM;gBACL,IAAM,MAAM,GAAG,SAAS,CAAC,oDAAK,KAAK,GAAI,IAAI,CAAiB,CAAC;gBAC7D,IAAI,yDAAU,CAAC,MAAM,CAAC,EAAE;oBACtB,KAAM,MAAoC;yBACvC,IAAI,CAAC,eAAK,IAAI,YAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAA7E,CAA6E,CAAC;yBAC5F,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;iBACvB;qBAAM;oBACL,KAAK,KAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC;yBAClE,IAAI,CAAC,OAAO,CAAC;yBACb,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;iBACvB;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACO,qCAAqB,GAA/B;QAAA,iBAWC;QAVC,6FAA6F;QAC7F,kGAAkG;QAClG,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC7B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,kBAAQ;gBACnC,QAAQ,CAAC,KAAI,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;SAClC;IACH,CAAC;IAED;;;OAGG;IACK,iCAAiB,GAAzB,UAA0B,KAAY;QACpC,wEAAwE;QACxE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;YACnC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;gBAChC,CAAC,CAAC,KAAK,CAAC,WAAW;gBACnB,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;YACvB,CAAC,CAAC,EAAE,CAAC;QAEP,8DAA8D;QAC9D,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACjE;QAED,wDAAwD;QACxD,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE;YAClD,OAAO,KAAK,CAAC,WAAW,CAAC;SAC1B;IACH,CAAC;IACH,YAAC;AAAD,CAAC;;AAED;;GAEG;AACH,SAAS,wBAAwB;IAC/B,oGAAoG;IACpG,IAAM,MAAM,GAAG,8DAAe,EAAO,CAAC;IACtC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;IAC5C,MAAM,CAAC,UAAU,CAAC,qBAAqB,GAAG,MAAM,CAAC,UAAU,CAAC,qBAAqB,IAAI,EAAE,CAAC;IACxF,OAAO,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC;IAC/C,kGAAkG;AACpG,CAAC;AAED;;;GAGG;AACI,SAAS,uBAAuB,CAAC,QAAwB;IAC9D,wBAAwB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5C,CAAC;;;;;;;;;;;;;;;;;;;;AC1gB0F;AACd;AAE7E;;GAEG;AACH;IAeE,iBAAmB,OAAoD;QAbhE,WAAM,GAAW,CAAC,CAAC;QAEnB,QAAG,GAAW,oDAAK,EAAE,CAAC;QAItB,aAAQ,GAAY,CAAC,CAAC;QACtB,WAAM,GAAkB,2DAAgB,CAAC;QAGzC,SAAI,GAAY,IAAI,CAAC;QACrB,mBAAc,GAAY,KAAK,CAAC;QAGrC,kEAAkE;QAClE,IAAM,YAAY,GAAG,iEAAkB,EAAE,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;QAC5B,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SACtB;IACH,CAAC;IAED,YAAY;IACZ,sCAAsC;IAC/B,wBAAM,GAAb,UAAc,OAA4B;QAA5B,sCAA4B;QACxC,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE;gBAC3B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1C;YAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;gBAChB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC3E;SACF;QAED,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,iEAAkB,EAAE,CAAC;QAC3D,IAAI,OAAO,CAAC,cAAc,EAAE;YAC1B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;SAC9C;QACD,IAAI,OAAO,CAAC,GAAG,EAAE;YACf,uCAAuC;YACvC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,oDAAK,EAAE,CAAC;SAC9D;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;SAC1B;QACD,IAAI,OAAO,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,GAAG,GAAG,KAAG,OAAO,CAAC,GAAK,CAAC;SAC7B;QACD,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE;YACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;SAChC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;SAC3B;aAAM,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;YAC/C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;SAClC;aAAM;YACL,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;YAC/C,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9C;QACD,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;SAChC;QACD,IAAI,OAAO,CAAC,WAAW,EAAE;YACvB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;SACxC;QACD,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;SACpC;QACD,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;SACpC;QACD,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;YACtC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;SAC9B;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;SAC9B;IACH,CAAC;IAED,YAAY;IACL,uBAAK,GAAZ,UAAa,MAAiD;QAC5D,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,UAAE,CAAC,CAAC;SACzB;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,2DAAgB,EAAE;YAC3C,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,+DAAoB,EAAE,CAAC,CAAC;SAC/C;aAAM;YACL,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;IACH,CAAC;IAED,YAAY;IACL,wBAAM,GAAb;QAgBE,OAAO,gEAAiB,CAAC;YACvB,GAAG,EAAE,KAAG,IAAI,CAAC,GAAK;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,6DAA6D;YAC7D,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;YACpD,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;YACxD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAG,IAAI,CAAC,GAAK,CAAC,CAAC,CAAC,SAAS;YAC7F,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,gEAAiB,CAAC;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,IAAI,CAAC,SAAS;gBAC1B,UAAU,EAAE,IAAI,CAAC,SAAS;aAC3B,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IACH,cAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvIuD;AAexD;;;;GAIG;AACH,8DAA8D;AAC9D,SAAS,SAAS,CAAI,MAAc;IAAE,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,6BAAc;;IAClD,IAAM,GAAG,GAAG,0DAAa,EAAE,CAAC;IAC5B,IAAI,GAAG,IAAI,GAAG,CAAC,MAAmB,CAAC,EAAE;QACnC,8DAA8D;QAC9D,OAAQ,GAAG,CAAC,MAAmB,CAAC,OAAxB,GAAG,kDAAiC,IAAI,GAAE;KACnD;IACD,MAAM,IAAI,KAAK,CAAC,uBAAqB,MAAM,yDAAsD,CAAC,CAAC;AACrG,CAAC;AAED;;;;;GAKG;AACH,iHAAiH;AAC1G,SAAS,gBAAgB,CAAC,SAAc,EAAE,cAA+B;IAC9E,IAAI,kBAAyB,CAAC;IAC9B,IAAI;QACF,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;KAC9C;IAAC,OAAO,SAAS,EAAE;QAClB,kBAAkB,GAAG,SAAkB,CAAC;KACzC;IACD,OAAO,SAAS,CAAC,kBAAkB,EAAE,SAAS,EAAE;QAC9C,cAAc;QACd,iBAAiB,EAAE,SAAS;QAC5B,kBAAkB;KACnB,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACI,SAAS,cAAc,CAAC,OAAe,EAAE,cAA0C;IACxF,IAAI,kBAAyB,CAAC;IAC9B,IAAI;QACF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;KAC1B;IAAC,OAAO,SAAS,EAAE;QAClB,kBAAkB,GAAG,SAAkB,CAAC;KACzC;IAED,sFAAsF;IACtF,wDAAwD;IACxD,IAAM,KAAK,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,IAAM,OAAO,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,kBAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEpF,OAAO,SAAS,CAAC,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,kDACjD,iBAAiB,EAAE,OAAO,EAC1B,kBAAkB,wBACf,OAAO,EACV,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACI,SAAS,YAAY,CAAC,KAAY;IACvC,OAAO,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACI,SAAS,cAAc,CAAC,QAAgC;IAC7D,SAAS,CAAO,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACI,SAAS,aAAa,CAAC,UAAsB;IAClD,SAAS,CAAO,eAAe,EAAE,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,8DAA8D;AACvD,SAAS,UAAU,CAAC,IAAY,EAAE,OAAsC;IAC7E,SAAS,CAAO,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACI,SAAS,SAAS,CAAC,MAAc;IACtC,SAAS,CAAO,WAAW,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACI,SAAS,OAAO,CAAC,IAAkC;IACxD,SAAS,CAAO,SAAS,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACI,SAAS,QAAQ,CAAC,GAAW,EAAE,KAAY;IAChD,SAAS,CAAO,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;GAOG;AACI,SAAS,MAAM,CAAC,GAAW,EAAE,KAAgB;IAClD,SAAS,CAAO,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACI,SAAS,OAAO,CAAC,IAAiB;IACvC,SAAS,CAAO,SAAS,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;GAYG;AACI,SAAS,SAAS,CAAC,QAAgC;IACxD,SAAS,CAAO,WAAW,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;GASG;AACH,8DAA8D;AACvD,SAAS,aAAa,CAAC,MAAc;IAAE,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,6BAAc;;IAC1D,SAAS,gEAAO,eAAe,EAAE,MAAM,GAAK,IAAI,GAAE;AACpD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACI,SAAS,gBAAgB,CAC9B,OAA2B,EAC3B,qBAA6C;IAE7C,OAAO,SAAS,CAAC,kBAAkB,EAAE,oDAAK,OAAO,GAAI,qBAAqB,CAAC,CAAC;AAC9E,CAAC;;;;;;;;;;;;;;;;;ACjKD;;GAEG;AACH,IAAY,aASX;AATD,WAAY,aAAa;IACvB,YAAY;IACZ,0BAAS;IACT,YAAY;IACZ,kCAAiB;IACjB,YAAY;IACZ,oCAAmB;IACnB,YAAY;IACZ,sCAAqB;AACvB,CAAC,EATW,aAAa,KAAb,aAAa,QASxB;AAED,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC9B,YAAY;IACZ,iCAAS;IACT,YAAY;IACZ,2CAAmB;IACnB,YAAY;IACZ,2CAAmB;AACrB,CAAC,EAPW,oBAAoB,KAApB,oBAAoB,QAO/B;;;;;;;;;;;;;;;;AC9ED,YAAY;AACZ,yCAAyC;AACzC,IAAY,QAeX;AAfD,WAAY,QAAQ;IAClB,YAAY;IACZ,2BAAe;IACf,YAAY;IACZ,2BAAe;IACf,YAAY;IACZ,+BAAmB;IACnB,YAAY;IACZ,uBAAW;IACX,YAAY;IACZ,yBAAa;IACb,YAAY;IACZ,2BAAe;IACf,YAAY;IACZ,iCAAqB;AACvB,CAAC,EAfW,QAAQ,KAAR,QAAQ,QAenB;AAED,0EAA0E;AAC1E,WAAiB,QAAQ;IACvB;;;;;OAKG;IACH,SAAgB,UAAU,CAAC,KAAa;QACtC,QAAQ,KAAK,EAAE;YACb,KAAK,OAAO;gBACV,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,KAAK,MAAM,CAAC;YACZ,KAAK,SAAS;gBACZ,OAAO,QAAQ,CAAC,OAAO,CAAC;YAC1B,KAAK,OAAO;gBACV,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,KAAK,OAAO;gBACV,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,KAAK,UAAU;gBACb,OAAO,QAAQ,CAAC,QAAQ,CAAC;YAC3B,KAAK,KAAK,CAAC;YACX;gBACE,OAAO,QAAQ,CAAC,GAAG,CAAC;SACvB;IACH,CAAC;IAnBe,mBAAU,aAmBzB;AACH,CAAC,EA3BgB,QAAQ,KAAR,QAAQ,QA2BxB;;;;;;;;;;;;;;;;AC/CD,8BAA8B;AAC9B,yCAAyC;AACzC,IAAY,MAaX;AAbD,WAAY,MAAM;IAChB,0CAA0C;IAC1C,6BAAmB;IACnB,+DAA+D;IAC/D,6BAAmB;IACnB,iDAAiD;IACjD,6BAAmB;IACnB,qEAAqE;IACrE,kCAAwB;IACxB,wCAAwC;IACxC,6BAAmB;IACnB,qDAAqD;IACrD,2BAAiB;AACnB,CAAC,EAbW,MAAM,KAAN,MAAM,QAajB;AAED,0EAA0E;AAC1E,WAAiB,MAAM;IACrB;;;;;OAKG;IACH,SAAgB,YAAY,CAAC,IAAY;QACvC,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE;YAC7B,OAAO,MAAM,CAAC,OAAO,CAAC;SACvB;QAED,IAAI,IAAI,KAAK,GAAG,EAAE;YAChB,OAAO,MAAM,CAAC,SAAS,CAAC;SACzB;QAED,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE;YAC7B,OAAO,MAAM,CAAC,OAAO,CAAC;SACvB;QAED,IAAI,IAAI,IAAI,GAAG,EAAE;YACf,OAAO,MAAM,CAAC,MAAM,CAAC;SACtB;QAED,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAlBe,mBAAY,eAkB3B;AACH,CAAC,EA1BgB,MAAM,KAAN,MAAM,QA0BtB;;;;;;;;;;;;;;;;;AC5C+B;AAEhC;;;;;GAKG;AACI,SAAS,gBAAgB,CAAC,IAAa,EAAE,OAAgB;IAK9D,kBAAkB;IAClB,8DAA8D;IAC9D,oFAAoF;IACpF,kDAAkD;IAClD,IAAI;QACF,IAAI,WAAW,GAAG,IAAkB,CAAC;QACrC,IAAM,mBAAmB,GAAG,CAAC,CAAC;QAC9B,IAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,IAAM,GAAG,GAAG,EAAE,CAAC;QACf,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAM,SAAS,GAAG,KAAK,CAAC;QACxB,IAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;QACnC,IAAI,OAAO,UAAC;QAEZ,uCAAuC;QACvC,OAAO,WAAW,IAAI,MAAM,EAAE,GAAG,mBAAmB,EAAE;YACpD,OAAO,GAAG,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACrD,cAAc;YACd,kCAAkC;YAClC,0EAA0E;YAC1E,yDAAyD;YACzD,IAAI,OAAO,KAAK,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,EAAE;gBACzG,MAAM;aACP;YAED,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAElB,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;YACtB,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC;SACtC;QAED,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACtC;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,WAAW,CAAC;KACpB;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,EAAW,EAAE,OAAgB;IACzD,IAAM,IAAI,GAAG,EAKZ,CAAC;IAEF,IAAM,GAAG,GAAG,EAAE,CAAC;IACf,IAAI,SAAS,CAAC;IACd,IAAI,OAAO,CAAC;IACZ,IAAI,GAAG,CAAC;IACR,IAAI,IAAI,CAAC;IACT,IAAI,CAAC,CAAC;IAEN,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QAC1B,OAAO,EAAE,CAAC;KACX;IAED,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAErC,IAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,IAAI,YAAY,EAAE;QAChB,GAAG,CAAC,IAAI,CAAC,MAAI,OAAO,WAAK,YAAY,QAAI,CAAC,CAAC;KAC5C;SAAM;QACL,IAAI,IAAI,CAAC,EAAE,EAAE;YACX,GAAG,CAAC,IAAI,CAAC,MAAI,IAAI,CAAC,EAAI,CAAC,CAAC;SACzB;QAED,wCAAwC;QACxC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,IAAI,SAAS,IAAI,6CAAQ,CAAC,SAAS,CAAC,EAAE;YACpC,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,GAAG,CAAC,IAAI,CAAC,MAAI,OAAO,CAAC,CAAC,CAAG,CAAC,CAAC;aAC5B;SACF;KACF;IACD,IAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACtD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,IAAI,EAAE;YACR,GAAG,CAAC,IAAI,CAAC,MAAI,GAAG,WAAK,IAAI,QAAI,CAAC,CAAC;SAChC;KACF;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC;;;;;;;;;;;;;;;;;;;ACrGqC;AAEtC,8CAA8C;AAC9C,IAAM,SAAS,GAAG,gEAAgE,CAAC;AAEnF,oBAAoB;AACpB,IAAM,aAAa,GAAG,aAAa,CAAC;AAEpC,iEAAiE;AACjE;IAkBE,kCAAkC;IAClC,aAAmB,IAAa;QAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAC5B;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED;;;;;;;;OAQG;IACI,sBAAQ,GAAf,UAAgB,YAA6B;QAA7B,mDAA6B;QACrC,aAAiE,EAA/D,cAAI,EAAE,cAAI,EAAE,cAAI,EAAE,cAAI,EAAE,wBAAS,EAAE,sBAAQ,EAAE,wBAAkB,CAAC;QACxE,OAAO,CACF,QAAQ,WAAM,SAAS,IAAG,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,MAAI,IAAM,CAAC,CAAC,CAAC,EAAE,CAAE;aACrE,MAAI,IAAI,IAAG,IAAI,CAAC,CAAC,CAAC,MAAI,IAAM,CAAC,CAAC,CAAC,EAAE,WAAI,IAAI,CAAC,CAAC,CAAI,IAAI,MAAG,CAAC,CAAC,CAAC,IAAI,IAAG,SAAW,EAC5E,CAAC;IACJ,CAAC;IAED,qCAAqC;IAC7B,yBAAW,GAAnB,UAAoB,GAAW;QAC7B,IAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,+CAAW,CAAC,aAAa,CAAC,CAAC;SACtC;QAEK,yEAA4E,EAA3E,gBAAQ,EAAE,iBAAS,EAAE,UAAS,EAAT,8BAAS,EAAE,YAAI,EAAE,UAAS,EAAT,8BAAS,EAAE,gBAA0B,CAAC;QACnF,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,SAAS,GAAG,QAAQ,CAAC;QAEzB,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,SAAS,GAAG,KAAK,CAAC,GAAG,EAAY,CAAC;SACnC;QAED,IAAI,SAAS,EAAE;YACb,IAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,YAAY,EAAE;gBAChB,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;aAC7B;SACF;QAED,IAAI,CAAC,eAAe,CAAC,EAAE,IAAI,QAAE,IAAI,QAAE,IAAI,QAAE,SAAS,aAAE,IAAI,QAAE,QAAQ,EAAE,QAAuB,EAAE,SAAS,aAAE,CAAC,CAAC;IAC5G,CAAC;IAED,8CAA8C;IACtC,6BAAe,GAAvB,UAAwB,UAAyB;QAC/C,mFAAmF;QACnF,IAAI,MAAM,IAAI,UAAU,IAAI,CAAC,CAAC,WAAW,IAAI,UAAU,CAAC,EAAE;YACxD,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;SACxC;QACD,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC;QAEvC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACxC,CAAC;IAED,8CAA8C;IACtC,uBAAS,GAAjB;QAAA,iBAkBC;QAjBC,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,mBAAS;YAC9D,IAAI,CAAC,KAAI,CAAC,SAAgC,CAAC,EAAE;gBAC3C,MAAM,IAAI,+CAAW,CAAI,aAAa,UAAK,SAAS,aAAU,CAAC,CAAC;aACjE;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAClC,MAAM,IAAI,+CAAW,CAAI,aAAa,4BAAuB,IAAI,CAAC,SAAW,CAAC,CAAC;SAChF;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;YACzD,MAAM,IAAI,+CAAW,CAAI,aAAa,2BAAsB,IAAI,CAAC,QAAU,CAAC,CAAC;SAC9E;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE;YAC/C,MAAM,IAAI,+CAAW,CAAI,aAAa,uBAAkB,IAAI,CAAC,IAAM,CAAC,CAAC;SACtE;IACH,CAAC;IACH,UAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;AC1H2C;AAE5C,6DAA6D;AAC7D;IAAiC,sEAAK;IAIpC,qBAA0B,OAAe;;QAAzC,YACE,kBAAM,OAAO,CAAC,SAIf;QALyB,aAAO,GAAP,OAAO,CAAQ;QAGvC,KAAI,CAAC,IAAI,GAAG,WAAW,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;QAClD,yDAAc,CAAC,KAAI,EAAE,WAAW,SAAS,CAAC,CAAC;;IAC7C,CAAC;IACH,kBAAC;AAAD,CAAC,CAVgC,KAAK,GAUrC;;;;;;;;;;;;;;;;;;;;;;;;;ACT6C;AACZ;AACO;AACT;AACe;AACmB;AAElE,IAAM,MAAM,GAAG,sDAAe,EAAU,CAAC;AAkBzC;;;;;;;;;GASG;AAEH,IAAM,QAAQ,GAAqE,EAAE,CAAC;AACtF,IAAM,YAAY,GAAiD,EAAE,CAAC;AAEtE,4BAA4B;AAC5B,SAAS,UAAU,CAAC,IAA2B;IAC7C,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;QACtB,OAAO;KACR;IAED,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE1B,QAAQ,IAAI,EAAE;QACZ,KAAK,SAAS;YACZ,iBAAiB,EAAE,CAAC;YACpB,MAAM;QACR,KAAK,KAAK;YACR,aAAa,EAAE,CAAC;YAChB,MAAM;QACR,KAAK,KAAK;YACR,aAAa,EAAE,CAAC;YAChB,MAAM;QACR,KAAK,OAAO;YACV,eAAe,EAAE,CAAC;YAClB,MAAM;QACR,KAAK,SAAS;YACZ,iBAAiB,EAAE,CAAC;YACpB,MAAM;QACR,KAAK,OAAO;YACV,eAAe,EAAE,CAAC;YAClB,MAAM;QACR,KAAK,oBAAoB;YACvB,4BAA4B,EAAE,CAAC;YAC/B,MAAM;QACR;YACE,gDAAW,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC;KACtD;AACH,CAAC;AAED;;;;GAIG;AACI,SAAS,yBAAyB,CAAC,OAA0B;IAClE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE;QAC1F,OAAO;KACR;IACD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAiC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/E,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,YAAY;AACZ,SAAS,eAAe,CAAC,IAA2B,EAAE,IAAS;;IAC7D,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAC5B,OAAO;KACR;;QAED,KAAsB,iEAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,6CAAE;YAAvC,IAAM,OAAO;YAChB,IAAI;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC;aACf;YAAC,OAAO,CAAC,EAAE;gBACV,iDAAY,CACV,4DAA0D,IAAI,gBAAW,4DAAe,CACtF,OAAO,CACR,iBAAY,CAAG,CACjB,CAAC;aACH;SACF;;;;;;;;;AACH,CAAC;AAED,YAAY;AACZ,SAAS,iBAAiB;IACxB,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE;QAC1B,OAAO;KACR;IAED,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAS,KAAa;QAChF,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE;YAC9B,OAAO;SACR;QAED,6CAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,UAAS,oBAA+B;YAClE,OAAO;gBAAS,cAAc;qBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;oBAAd,yBAAc;;gBAC5B,eAAe,CAAC,SAAS,EAAE,EAAE,IAAI,QAAE,KAAK,SAAE,CAAC,CAAC;gBAE5C,mCAAmC;gBACnC,IAAI,oBAAoB,EAAE;oBACxB,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;iBAC3E;YACH,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,YAAY;AACZ,SAAS,eAAe;IACtB,IAAI,CAAC,8DAAmB,EAAE,EAAE;QAC1B,OAAO;KACR;IAED,6CAAI,CAAC,MAAM,EAAE,OAAO,EAAE,UAAS,aAAyB;QACtD,OAAO;YAAS,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YAC5B,IAAM,WAAW,GAAG;gBAClB,IAAI;gBACJ,SAAS,EAAE;oBACT,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC;oBAC5B,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC;iBACvB;gBACD,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;aAC3B,CAAC;YAEF,eAAe,CAAC,OAAO,EAAE,oDACpB,WAAW,EACd,CAAC;YAEH,sEAAsE;YACtE,OAAO,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAC3C,UAAC,QAAkB;gBACjB,eAAe,CAAC,OAAO,EAAE,oGACpB,WAAW,KACd,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,EACxB,QAAQ,cACR,CAAC;gBACH,OAAO,QAAQ,CAAC;YAClB,CAAC,EACD,UAAC,KAAY;gBACX,eAAe,CAAC,OAAO,EAAE,oGACpB,WAAW,KACd,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,EACxB,KAAK,WACL,CAAC;gBACH,uEAAuE;gBACvE,2FAA2F;gBAC3F,sFAAsF;gBACtF,MAAM,KAAK,CAAC;YACd,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAeD,+DAA+D;AAC/D,iDAAiD;AACjD,SAAS,cAAc,CAAC,SAAqB;IAArB,0CAAqB;IAC3C,IAAI,SAAS,IAAI,MAAM,IAAI,iDAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;QACrF,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;KAClD;IACD,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;QACvC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;KAClD;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8CAA8C;AAC9C,SAAS,WAAW,CAAC,SAAqB;IAArB,0CAAqB;IACxC,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;QACpC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;KACrB;IACD,IAAI,SAAS,IAAI,MAAM,IAAI,iDAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;QAC9D,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;KACzB;IACD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AACD,8DAA8D;AAE9D,YAAY;AACZ,SAAS,aAAa;IACpB,IAAI,CAAC,CAAC,gBAAgB,IAAI,MAAM,CAAC,EAAE;QACjC,OAAO;KACR;IAED,iGAAiG;IACjG,IAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,IAAM,aAAa,GAAiB,EAAE,CAAC;IACvC,IAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC;IAE1C,6CAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAS,YAAwB;QACtD,OAAO;YAA4C,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YAC/D,4DAA4D;YAC5D,IAAM,GAAG,GAAG,IAAI,CAAC;YACjB,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,GAAG,CAAC,cAAc,GAAG;gBACnB,sEAAsE;gBACtE,MAAM,EAAE,6CAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3D,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;aACb,CAAC;YAEF,8DAA8D;YAC9D,sEAAsE;YACtE,IAAI,6CAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;gBACpF,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC;aACnC;YAED,IAAM,yBAAyB,GAAG;gBAChC,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC,EAAE;oBACxB,IAAI;wBACF,+CAA+C;wBAC/C,eAAe;wBACf,IAAI,GAAG,CAAC,cAAc,EAAE;4BACtB,GAAG,CAAC,cAAc,CAAC,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;yBAC7C;qBACF;oBAAC,OAAO,CAAC,EAAE;wBACV,gBAAgB;qBACjB;oBAED,IAAI;wBACF,IAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBAC5C,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;4BACrB,0DAA0D;4BAC1D,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;4BAC/B,IAAM,MAAI,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;4BACjD,IAAI,GAAG,CAAC,cAAc,IAAI,MAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;gCAC/C,GAAG,CAAC,cAAc,CAAC,IAAI,GAAG,MAAI,CAAC,CAAC,CAAiB,CAAC;6BACnD;yBACF;qBACF;oBAAC,OAAO,CAAC,EAAE;wBACV,gBAAgB;qBACjB;oBAED,eAAe,CAAC,KAAK,EAAE;wBACrB,IAAI;wBACJ,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;wBACxB,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;wBAC1B,GAAG;qBACJ,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC;YAEF,IAAI,oBAAoB,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,kBAAkB,KAAK,UAAU,EAAE;gBAC/E,6CAAI,CAAC,GAAG,EAAE,oBAAoB,EAAE,UAAS,QAAyB;oBAChE,OAAO;wBAAS,wBAAwB;6BAAxB,UAAwB,EAAxB,qBAAwB,EAAxB,IAAwB;4BAAxB,mCAAwB;;wBACtC,yBAAyB,EAAE,CAAC;wBAC5B,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;oBAC7C,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,yBAAyB,CAAC,CAAC;aACrE;YAED,OAAO,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,6CAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAS,YAAwB;QACtD,OAAO;YAA4C,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YAC/D,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEzB,eAAe,CAAC,KAAK,EAAE;gBACrB,IAAI;gBACJ,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;gBAC1B,GAAG,EAAE,IAAI;aACV,CAAC,CAAC;YAEH,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,QAAgB,CAAC;AAErB,YAAY;AACZ,SAAS,iBAAiB;IACxB,IAAI,CAAC,0DAAe,EAAE,EAAE;QACtB,OAAO;KACR;IAED,IAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC;IACxC,MAAM,CAAC,UAAU,GAAG;QAAoC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACpE,IAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,mFAAmF;QACnF,IAAM,IAAI,GAAG,QAAQ,CAAC;QACtB,QAAQ,GAAG,EAAE,CAAC;QACd,eAAe,CAAC,SAAS,EAAE;YACzB,IAAI;YACJ,EAAE;SACH,CAAC,CAAC;QACH,IAAI,aAAa,EAAE;YACjB,yFAAyF;YACzF,6DAA6D;YAC7D,mDAAmD;YACnD,IAAI;gBACF,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACxC;YAAC,OAAO,GAAG,EAAE;gBACZ,WAAW;aACZ;SACF;IACH,CAAC,CAAC;IAEF,cAAc;IACd,SAAS,0BAA0B,CAAC,uBAAmC;QACrE,OAAO;YAAwB,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YAC3C,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClD,IAAI,GAAG,EAAE;gBACP,iDAAiD;gBACjD,IAAM,IAAI,GAAG,QAAQ,CAAC;gBACtB,IAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvB,mFAAmF;gBACnF,QAAQ,GAAG,EAAE,CAAC;gBACd,eAAe,CAAC,SAAS,EAAE;oBACzB,IAAI;oBACJ,EAAE;iBACH,CAAC,CAAC;aACJ;YACD,OAAO,uBAAuB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC;IACJ,CAAC;IAED,6CAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,0BAA0B,CAAC,CAAC;IAC9D,6CAAI,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,0BAA0B,CAAC,CAAC;AACnE,CAAC;AAED,IAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,IAAI,eAAmC,CAAC;AACxC,IAAI,iBAAoC,CAAC;AAEzC;;;;GAIG;AACH,SAAS,kCAAkC,CAAC,QAA2B,EAAE,OAAc;IACrF,+EAA+E;IAC/E,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,IAAI,CAAC;KACb;IAED,kHAAkH;IAClH,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE;QAClC,OAAO,IAAI,CAAC;KACb;IAED,IAAI;QACF,2GAA2G;QAC3G,sCAAsC;QACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE;YACtC,OAAO,IAAI,CAAC;SACb;KACF;IAAC,OAAO,CAAC,EAAE;QACV,qFAAqF;QACrF,iEAAiE;KAClE;IAED,gHAAgH;IAChH,oGAAoG;IACpG,mGAAmG;IACnG,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,KAAY;IACtC,iEAAiE;IACjE,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IAED,IAAI;QACF,IAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QAE3C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YAC9B,OAAO,IAAI,CAAC;SACb;QAED,wGAAwG;QACxG,8CAA8C;QAC9C,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,UAAU,IAAI,MAAM,CAAC,iBAAiB,EAAE;YAC3F,OAAO,KAAK,CAAC;SACd;KACF;IAAC,OAAO,CAAC,EAAE;QACV,qFAAqF;QACrF,iEAAiE;KAClE;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,OAAiB,EAAE,cAA+B;IAA/B,uDAA+B;IAC7E,OAAO,UAAC,KAAY;QAClB,uEAAuE;QACvE,yDAAyD;QACzD,+CAA+C;QAC/C,IAAI,CAAC,KAAK,IAAI,iBAAiB,KAAK,KAAK,EAAE;YACzC,OAAO;SACR;QAED,wCAAwC;QACxC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO;SACR;QAED,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAE9D,wHAAwH;QACxH,IAAI,eAAe,KAAK,SAAS,EAAE;YACjC,OAAO,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,IAAI;gBACJ,MAAM,EAAE,cAAc;aACvB,CAAC,CAAC;YACH,iBAAiB,GAAG,KAAK,CAAC;SAC3B;QACD,yGAAyG;QACzG,8FAA8F;aACzF,IAAI,kCAAkC,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE;YACrE,OAAO,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,IAAI;gBACJ,MAAM,EAAE,cAAc;aACvB,CAAC,CAAC;YACH,iBAAiB,GAAG,KAAK,CAAC;SAC3B;QAED,kHAAkH;QAClH,YAAY,CAAC,eAAe,CAAC,CAAC;QAC9B,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC;YAClC,eAAe,GAAG,SAAS,CAAC;QAC9B,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC;AAuBD,YAAY;AACZ,SAAS,aAAa;IACpB,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,EAAE;QAC3B,OAAO;KACR;IAED,oHAAoH;IACpH,gHAAgH;IAChH,yFAAyF;IACzF,IAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5D,IAAM,qBAAqB,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAC3E,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;IACxE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;IAE3E,wGAAwG;IACxG,gHAAgH;IAChH,6GAA6G;IAC7G,gHAAgH;IAChH,qCAAqC;IACrC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,MAAc;QAC7C,sEAAsE;QACtE,IAAM,KAAK,GAAI,MAAc,CAAC,MAAM,CAAC,IAAK,MAAc,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;QAC3E,6FAA6F;QAC7F,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE;YAChF,OAAO;SACR;QAED,6CAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,UAAS,wBAA0C;YACjF,OAAO,UAEL,IAAY,EACZ,QAA4C,EAC5C,OAA2C;gBAE3C,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,IAAI,UAAU,EAAE;oBAC1C,IAAI;wBACF,IAAM,EAAE,GAAG,IAA2B,CAAC;wBACvC,IAAM,UAAQ,GAAG,CAAC,EAAE,CAAC,mCAAmC,GAAG,EAAE,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;wBACzG,IAAM,cAAc,GAAG,CAAC,UAAQ,CAAC,IAAI,CAAC,GAAG,UAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;wBAE5E,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;4BAC3B,IAAM,OAAO,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;4BACvD,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC;4BACjC,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;yBAC7D;wBAED,cAAc,CAAC,QAAQ,IAAI,CAAC,CAAC;qBAC9B;oBAAC,OAAO,CAAC,EAAE;wBACV,8CAA8C;wBAC9C,iFAAiF;qBAClF;iBACF;gBAED,OAAO,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtE,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,6CAAI,CAAC,KAAK,EAAE,qBAAqB,EAAE,UAAS,2BAAgD;YAC1F,OAAO,UAEL,IAAY,EACZ,QAA4C,EAC5C,OAAwC;gBAExC,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,IAAI,UAAU,EAAE;oBAC1C,IAAI;wBACF,IAAM,EAAE,GAAG,IAA2B,CAAC;wBACvC,IAAM,UAAQ,GAAG,EAAE,CAAC,mCAAmC,IAAI,EAAE,CAAC;wBAC9D,IAAM,cAAc,GAAG,UAAQ,CAAC,IAAI,CAAC,CAAC;wBAEtC,IAAI,cAAc,EAAE;4BAClB,cAAc,CAAC,QAAQ,IAAI,CAAC,CAAC;4BAC7B,2GAA2G;4BAC3G,IAAI,cAAc,CAAC,QAAQ,IAAI,CAAC,EAAE;gCAChC,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gCAC9E,cAAc,CAAC,OAAO,GAAG,SAAS,CAAC;gCACnC,OAAO,UAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,2DAA2D;6BACnF;4BAED,8FAA8F;4BAC9F,IAAI,MAAM,CAAC,IAAI,CAAC,UAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gCACtC,OAAO,EAAE,CAAC,mCAAmC,CAAC;6BAC/C;yBACF;qBACF;oBAAC,OAAO,CAAC,EAAE;wBACV,8CAA8C;wBAC9C,iFAAiF;qBAClF;iBACF;gBAED,OAAO,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACzE,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,kBAAkB,GAAwB,IAAI,CAAC;AACnD,YAAY;AACZ,SAAS,eAAe;IACtB,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC;IAEpC,MAAM,CAAC,OAAO,GAAG,UAAS,GAAQ,EAAE,GAAQ,EAAE,IAAS,EAAE,MAAW,EAAE,KAAU;QAC9E,eAAe,CAAC,OAAO,EAAE;YACvB,MAAM;YACN,KAAK;YACL,IAAI;YACJ,GAAG;YACH,GAAG;SACJ,CAAC,CAAC;QAEH,IAAI,kBAAkB,EAAE;YACtB,8CAA8C;YAC9C,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SAClD;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED,IAAI,+BAA+B,GAA8B,IAAI,CAAC;AACtE,YAAY;AACZ,SAAS,4BAA4B;IACnC,+BAA+B,GAAG,MAAM,CAAC,oBAAoB,CAAC;IAE9D,MAAM,CAAC,oBAAoB,GAAG,UAAS,CAAM;QAC3C,eAAe,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAEzC,IAAI,+BAA+B,EAAE;YACnC,8CAA8C;YAC9C,OAAO,+BAA+B,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SAC/D;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/nBD,uDAAuD;AACvD,sEAAsE;AAGtE;;;;;;GAMG;AACI,SAAS,OAAO,CAAC,GAAQ;IAC9B,QAAQ,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC3C,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC;QACd,KAAK,oBAAoB;YACvB,OAAO,IAAI,CAAC;QACd,KAAK,uBAAuB;YAC1B,OAAO,IAAI,CAAC;QACd;YACE,OAAO,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KACnC;AACH,CAAC;AAED;;;;;;GAMG;AACI,SAAS,YAAY,CAAC,GAAQ;IACnC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,qBAAqB,CAAC;AACvE,CAAC;AAED;;;;;;GAMG;AACI,SAAS,UAAU,CAAC,GAAQ;IACjC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,mBAAmB,CAAC;AACrE,CAAC;AAED;;;;;;GAMG;AACI,SAAS,cAAc,CAAC,GAAQ;IACrC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,uBAAuB,CAAC;AACzE,CAAC;AAED;;;;;;GAMG;AACI,SAAS,QAAQ,CAAC,GAAQ;IAC/B,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC;AACnE,CAAC;AAED;;;;;;GAMG;AACI,SAAS,WAAW,CAAC,GAAQ;IAClC,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;GAMG;AACI,SAAS,aAAa,CAAC,GAAQ;IACpC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC;AACnE,CAAC;AAED;;;;;;GAMG;AACI,SAAS,OAAO,CAAC,GAAQ;IAC9B,OAAO,OAAO,KAAK,KAAK,WAAW,IAAI,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;GAMG;AACI,SAAS,SAAS,CAAC,GAAQ;IAChC,OAAO,OAAO,OAAO,KAAK,WAAW,IAAI,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACI,SAAS,QAAQ,CAAC,GAAQ;IAC/B,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC;AACnE,CAAC;AAED;;;GAGG;AACI,SAAS,UAAU,CAAC,GAAQ;IACjC,sEAAsE;IACtE,OAAO,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;GAMG;AACI,SAAS,gBAAgB,CAAC,GAAQ;IACvC,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,aAAa,IAAI,GAAG,IAAI,gBAAgB,IAAI,GAAG,IAAI,iBAAiB,IAAI,GAAG,CAAC;AAC3G,CAAC;AACD;;;;;;;GAOG;AACI,SAAS,YAAY,CAAC,GAAQ,EAAE,IAAS;IAC9C,IAAI;QACF,OAAO,GAAG,YAAY,IAAI,CAAC;KAC5B;IAAC,OAAO,EAAE,EAAE;QACX,OAAO,KAAK,CAAC;KACd;AACH,CAAC;;;;;;;;;;;;;;;;;AC5JD,uDAAuD;AACE;AAEzD,+DAA+D;AAC/D,IAAM,MAAM,GAAG,sDAAe,EAA0B,CAAC;AAEzD,iCAAiC;AACjC,IAAM,MAAM,GAAG,gBAAgB,CAAC;AAEhC,YAAY;AACZ;IAIE,YAAY;IACZ;QACE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,YAAY;IACL,wBAAO,GAAd;QACE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,YAAY;IACL,uBAAM,GAAb;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,YAAY;IACL,oBAAG,GAAV;QAAW,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;SACR;QACD,qDAAc,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,GAAG,CAAI,MAAM,eAAU,IAAI,CAAC,IAAI,CAAC,GAAG,CAAG,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IACL,qBAAI,GAAX;QAAY,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;SACR;QACD,qDAAc,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,IAAI,CAAI,MAAM,gBAAW,IAAI,CAAC,IAAI,CAAC,GAAG,CAAG,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IACL,sBAAK,GAAZ;QAAa,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;SACR;QACD,qDAAc,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,KAAK,CAAI,MAAM,iBAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAG,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;IACH,aAAC;AAAD,CAAC;AAED,0GAA0G;AAC1G,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;AAC5C,IAAM,MAAM,GAAI,MAAM,CAAC,UAAU,CAAC,MAAiB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC,CAAC;AAE/E;;;;;;;;;;;;;;;;AChElB,+DAA+D;AAC/D,uDAAuD;AACvD,sEAAsE;AACtE;;GAEG;AACH;IAME;QACE,IAAI,CAAC,WAAW,GAAG,OAAO,OAAO,KAAK,UAAU,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,CAAC;IAED;;;OAGG;IACI,sBAAO,GAAd,UAAe,GAAQ;QACrB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACxB,OAAO,IAAI,CAAC;aACb;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,KAAK,CAAC;SACd;QACD,4DAA4D;QAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,KAAK,KAAK,GAAG,EAAE;gBACjB,OAAO,IAAI,CAAC;aACb;SACF;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACI,wBAAS,GAAhB,UAAiB,GAAQ;QACvB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACzB;aAAM;YACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;oBAC1B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACzB,MAAM;iBACP;aACF;SACF;IACH,CAAC;IACH,WAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrDkC;AACC;AAmBpC,IAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC;;;;GAIG;AACI,SAAS,eAAe;IAC7B,OAAO,CAAC,gDAAS,EAAE;QACjB,CAAC,CAAC,qBAAM;QACR,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW;YAC/B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,OAAO,IAAI,KAAK,WAAW;gBAC7B,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,oBAAoB,CAAqB,CAAC;AAChD,CAAC;AASD;;;;GAIG;AACI,SAAS,KAAK;IACnB,IAAM,MAAM,GAAG,eAAe,EAAoB,CAAC;IACnD,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC;IAEhD,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,EAAE;QAClD,qCAAqC;QACrC,IAAM,GAAG,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAE5B,kBAAkB;QAClB,sCAAsC;QACtC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC;QACnC,gDAAgD;QAChD,sCAAsC;QACtC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;QAEpC,IAAM,GAAG,GAAG,UAAC,GAAW;YACtB,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnB,CAAC,GAAG,MAAI,CAAG,CAAC;aACb;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QAEF,OAAO,CACL,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC9G,CAAC;KACH;IACD,oGAAoG;IACpG,OAAO,kCAAkC,CAAC,OAAO,CAAC,OAAO,EAAE,WAAC;QAC1D,sCAAsC;QACtC,IAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACnC,sCAAsC;QACtC,IAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACI,SAAS,QAAQ,CACtB,GAAW;IAOX,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,EAAE,CAAC;KACX;IAED,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAExF,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,CAAC;KACX;IAED,yEAAyE;IACzE,IAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACd,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAClB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,QAAQ;KACtC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACI,SAAS,mBAAmB,CAAC,KAAY;IAC9C,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,OAAO,KAAK,CAAC,OAAO,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAC1E,IAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE5C,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE;YACrC,OAAU,SAAS,CAAC,IAAI,UAAK,SAAS,CAAC,KAAO,CAAC;SAChD;QACD,OAAO,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,IAAI,WAAW,CAAC;KAC3E;IACD,OAAO,KAAK,CAAC,QAAQ,IAAI,WAAW,CAAC;AACvC,CAAC;AAOD,YAAY;AACL,SAAS,cAAc,CAAC,QAAmB;IAChD,IAAM,MAAM,GAAG,eAAe,EAAU,CAAC;IACzC,IAAM,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAEnE,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE;QAC1B,OAAO,QAAQ,EAAE,CAAC;KACnB;IAED,sEAAsE;IACtE,IAAM,eAAe,GAAI,MAAc,CAAC,OAA4B,CAAC;IACrE,IAAM,aAAa,GAA2B,EAAE,CAAC;IAEjD,sCAAsC;IACtC,MAAM,CAAC,OAAO,CAAC,eAAK;QAClB,sEAAsE;QACtE,IAAI,KAAK,IAAK,MAAc,CAAC,OAAO,IAAK,eAAe,CAAC,KAAK,CAAqB,CAAC,mBAAmB,EAAE;YACvG,aAAa,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,KAAK,CAAoB,CAAC;YACjE,eAAe,CAAC,KAAK,CAAC,GAAI,eAAe,CAAC,KAAK,CAAqB,CAAC,mBAAmB,CAAC;SAC1F;IACH,CAAC,CAAC,CAAC;IAEH,iCAAiC;IACjC,IAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;IAE1B,sCAAsC;IACtC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,eAAK;QACtC,eAAe,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACI,SAAS,qBAAqB,CAAC,KAAY,EAAE,KAAc,EAAE,IAAa;IAC/E,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;IACxC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;IACtD,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,IAAI,EAAE,CAAC;IACjF,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC;AACrF,CAAC;AAED;;;;;GAKG;AACI,SAAS,qBAAqB,CACnC,KAAY,EACZ,SAEM;IAFN,0CAEM;IAEN,8EAA8E;IAC9E,IAAI;QACF,qFAAqF;QACrF,oEAAoE;QACpE,KAAK,CAAC,SAAU,CAAC,MAAO,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,SAAU,CAAC,MAAO,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;QACpF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,aAAG;YAChC,8CAA8C;YAC9C,oEAAoE;YACpE,KAAK,CAAC,SAAU,CAAC,MAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;KACJ;IAAC,OAAO,GAAG,EAAE;QACZ,WAAW;KACZ;AACH,CAAC;AAED;;GAEG;AACI,SAAS,eAAe;IAC7B,IAAI;QACF,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;KAC/B;IAAC,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAED,6FAA6F;AAC7F,IAAM,aAAa,GAAG,qLAAqL,CAAC;AAa5M;;;GAGG;AACI,SAAS,WAAW,CAAC,KAAa;IACvC,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,IAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,IAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,OAAO;QACL,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;QACvB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;QACvC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;QACvC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;QACvC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;KACrB,CAAC;AACJ,CAAC;AAED,IAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAElD;;;;GAIG;AACI,SAAS,qBAAqB,CAAC,GAAW,EAAE,MAA+B;IAChF,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,iBAAiB,CAAC;KAC1B;IAED,IAAM,WAAW,GAAG,QAAQ,CAAC,KAAG,MAAQ,EAAE,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;QACvB,OAAO,WAAW,GAAG,IAAI,CAAC;KAC3B;IAED,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAG,MAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;QACtB,OAAO,UAAU,GAAG,GAAG,CAAC;KACzB;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACI,SAAS,iBAAiB,CAAC,KAAe,EAAE,KAAiB,EAAE,cAA0B;IAA1B,mDAA0B;IAC9F,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACjC,IAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;IAC9B,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/D,KAAK,CAAC,WAAW,GAAG,KAAK;SACtB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC,EAAE,UAAU,CAAC;SAC3D,GAAG,CAAC,UAAC,IAAY,IAAK,wDAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAjB,CAAiB,CAAC,CAAC;IAE5C,KAAK,CAAC,YAAY,GAAG,iDAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IAE3F,KAAK,CAAC,YAAY,GAAG,KAAK;SACvB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,cAAc,CAAC;SAC1E,GAAG,CAAC,UAAC,IAAY,IAAK,wDAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAjB,CAAiB,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACI,SAAS,wBAAwB,CAAC,OAAe;IACtD,6CAA6C;IAC7C,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;;;;;;;;;;;;;;;;;;;ACrUD;;;;GAIG;AACI,SAAS,SAAS;IACvB,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC;AAC7G,CAAC;AAED;;;;GAIG;AACH,iHAAiH;AAC1G,SAAS,cAAc,CAAC,GAAQ,EAAE,OAAe;IACtD,sEAAsE;IACtE,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;GAYG;AACI,SAAS,UAAU,CAAI,UAAkB;IAC9C,IAAI,GAAkB,CAAC;IAEvB,IAAI;QACF,GAAG,GAAG,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;KAC1C;IAAC,OAAO,CAAC,EAAE;QACV,WAAW;KACZ;IAED,IAAI;QACM,+CAAG,CAAuC;QAClD,GAAG,GAAG,cAAc,CAAC,MAAM,EAAK,GAAG,EAAE,sBAAiB,UAAY,CAAM,CAAC;KAC1E;IAAC,OAAO,CAAC,EAAE;QACV,WAAW;KACZ;IAED,OAAO,GAAG,CAAC;AACb,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/C4C;AACkE;AACjF;AACiB;AACX;AAEpC;;;;;;;;;;GAUG;AACI,SAAS,IAAI,CAAC,MAA8B,EAAE,IAAY,EAAE,kBAA2C;IAC5G,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE;QACrB,OAAO;KACR;IAED,IAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAc,CAAC;IAC3C,IAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAoB,CAAC;IAEhE,0GAA0G;IAC1G,kFAAkF;IAClF,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;QACjC,IAAI;YACF,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;YAC5C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE;gBAC/B,mBAAmB,EAAE;oBACnB,UAAU,EAAE,KAAK;oBACjB,KAAK,EAAE,QAAQ;iBAChB;aACF,CAAC,CAAC;SACJ;QAAC,OAAO,GAAG,EAAE;YACZ,iFAAiF;YACjF,mEAAmE;SACpE;KACF;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACI,SAAS,SAAS,CAAC,MAA8B;IACtD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SACvB,GAAG,CAAC,aAAG,IAAI,OAAG,kBAAkB,CAAC,GAAG,CAAC,SAAI,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAG,EAA/D,CAA+D,CAAC;SAC3E,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CACpB,KAAU;IAIV,IAAI,4CAAO,CAAC,KAAK,CAAC,EAAE;QAClB,IAAM,KAAK,GAAG,KAAsB,CAAC;QACrC,IAAM,GAAG,GAKL;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC;QAEF,KAAK,IAAM,CAAC,IAAI,KAAK,EAAE;YACrB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;gBAClD,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;aACnB;SACF;QAED,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,4CAAO,CAAC,KAAK,CAAC,EAAE;QAWlB,IAAM,OAAK,GAAG,KAAoB,CAAC;QAEnC,IAAM,MAAM,GAER,EAAE,CAAC;QAEP,MAAM,CAAC,IAAI,GAAG,OAAK,CAAC,IAAI,CAAC;QAEzB,sEAAsE;QACtE,IAAI;YACF,MAAM,CAAC,MAAM,GAAG,8CAAS,CAAC,OAAK,CAAC,MAAM,CAAC;gBACrC,CAAC,CAAC,0DAAgB,CAAC,OAAK,CAAC,MAAM,CAAC;gBAChC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAK,CAAC,MAAM,CAAC,CAAC;SAClD;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC;SAC7B;QAED,IAAI;YACF,MAAM,CAAC,aAAa,GAAG,8CAAS,CAAC,OAAK,CAAC,aAAa,CAAC;gBACnD,CAAC,CAAC,0DAAgB,CAAC,OAAK,CAAC,aAAa,CAAC;gBACvC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAK,CAAC,aAAa,CAAC,CAAC;SACzD;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,aAAa,GAAG,WAAW,CAAC;SACpC;QAED,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,iDAAY,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;YAC1E,MAAM,CAAC,MAAM,GAAG,OAAK,CAAC,MAAM,CAAC;SAC9B;QAED,KAAK,IAAM,CAAC,IAAI,OAAK,EAAE;YACrB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAK,EAAE,CAAC,CAAC,EAAE;gBAClD,MAAM,CAAC,CAAC,CAAC,GAAG,OAAK,CAAC;aACnB;SACF;QAED,OAAO,MAAM,CAAC;KACf;IAED,OAAO,KAEN,CAAC;AACJ,CAAC;AAED,4CAA4C;AAC5C,SAAS,UAAU,CAAC,KAAa;IAC/B,sCAAsC;IACtC,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC;AAED,4CAA4C;AAC5C,SAAS,QAAQ,CAAC,KAAU;IAC1B,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,YAAY;AACL,SAAS,eAAe,CAC7B,MAA8B;AAC9B,6BAA6B;AAC7B,KAAiB;AACjB,iEAAiE;AACjE,OAA4B;IAF5B,iCAAiB;IAEjB,oCAAkB,GAAG,GAAG,IAAI;IAE5B,IAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAE5C,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,EAAE;QAClC,OAAO,eAAe,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;KACpD;IAED,OAAO,UAAe,CAAC;AACzB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,KAAU;IAChC,IAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEnD,wBAAwB;IACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IACD,IAAI,IAAI,KAAK,iBAAiB,EAAE;QAC9B,OAAO,UAAU,CAAC;KACnB;IACD,IAAI,IAAI,KAAK,gBAAgB,EAAE;QAC7B,OAAO,SAAS,CAAC;KAClB;IAED,IAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,gDAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAI,KAAQ,EAAE,GAAS;IAC5C,IAAI,GAAG,KAAK,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAM,KAAsC,CAAC,OAAO,EAAE;QAC9G,OAAO,UAAU,CAAC;KACnB;IAED,IAAI,GAAG,KAAK,eAAe,EAAE;QAC3B,OAAO,iBAAiB,CAAC;KAC1B;IAED,IAAI,OAAQ,qBAAc,KAAK,WAAW,IAAK,KAAiB,KAAK,qBAAM,EAAE;QAC3E,OAAO,UAAU,CAAC;KACnB;IAED,IAAI,OAAQ,MAAc,KAAK,WAAW,IAAK,KAAiB,KAAK,MAAM,EAAE;QAC3E,OAAO,UAAU,CAAC;KACnB;IAED,IAAI,OAAQ,QAAgB,KAAK,WAAW,IAAK,KAAiB,KAAK,QAAQ,EAAE;QAC/E,OAAO,YAAY,CAAC;KACrB;IAED,gCAAgC;IAChC,IAAI,qDAAgB,CAAC,KAAK,CAAC,EAAE;QAC3B,OAAO,kBAAkB,CAAC;KAC3B;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,EAAE;QAChD,OAAO,OAAO,CAAC;KAChB;IAED,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;QACpB,OAAO,aAAa,CAAC;KACtB;IAED,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;QAC/B,OAAO,gBAAc,4DAAe,CAAC,KAAK,CAAC,MAAG,CAAC;KAChD;IAED,6FAA6F;IAE7F,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,MAAI,MAAM,CAAC,KAAK,CAAC,MAAG,CAAC;KAC7B;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,cAAY,MAAM,CAAC,KAAK,CAAC,MAAG,CAAC;KACrC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,6EAA6E;AACtE,SAAS,IAAI,CAAC,GAAW,EAAE,KAAU,EAAE,KAAyB,EAAE,IAAuB;IAAlD,iCAAiB,QAAQ;IAAE,kCAAiB,uCAAI,EAAE;IAC9F,6DAA6D;IAC7D,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,+DAA+D;IAC/D,gEAAgE;IAChE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE;QAC/E,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;KACvB;IACD,8DAA8D;IAE9D,4JAA4J;IAC5J,IAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9C,IAAI,gDAAW,CAAC,UAAU,CAAC,EAAE;QAC3B,OAAO,UAAU,CAAC;KACnB;IAED,wJAAwJ;IACxJ,IAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAEpC,4FAA4F;IAC5F,IAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3C,yEAAyE;IACzE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACvB,OAAO,cAAc,CAAC;KACvB;IAED,8BAA8B;IAC9B,KAAK,IAAM,QAAQ,IAAI,MAAM,EAAE;QAC7B,+FAA+F;QAC/F,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;YAC3D,SAAS;SACV;QACD,+CAA+C;QAC9C,GAA8B,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;KAC/F;IAED,4EAA4E;IAC5E,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAEtB,4BAA4B;IAC5B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,6EAA6E;AACtE,SAAS,SAAS,CAAC,KAAU,EAAE,KAAc;IAClD,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAC,GAAW,EAAE,KAAU,IAAK,WAAI,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAC;KAChG;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,sBAAsB,CAAC;KAC/B;AACH,CAAC;AAED;;;;GAIG;AACH,6EAA6E;AACtE,SAAS,8BAA8B,CAAC,SAAc,EAAE,SAAsB;IAAtB,0CAAsB;IACnF,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI,EAAE,CAAC;IAEZ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAChB,OAAO,sBAAsB,CAAC;KAC/B;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,EAAE;QAC/B,OAAO,iDAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;KACrC;IAED,KAAK,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,CAAC,EAAE,YAAY,EAAE,EAAE;QACrE,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,UAAU,CAAC,MAAM,GAAG,SAAS,EAAE;YACjC,SAAS;SACV;QACD,IAAI,YAAY,KAAK,IAAI,CAAC,MAAM,EAAE;YAChC,OAAO,UAAU,CAAC;SACnB;QACD,OAAO,iDAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;KACxC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACI,SAAS,iBAAiB,CAAI,GAAM;;IACzC,IAAI,kDAAa,CAAC,GAAG,CAAC,EAAE;QACtB,IAAM,GAAG,GAAG,GAA6B,CAAC;QAC1C,IAAM,EAAE,GAA2B,EAAE,CAAC;;YACtC,KAAkB,+DAAM,CAAC,IAAI,CAAC,GAAG,CAAC,6CAAE;gBAA/B,IAAM,GAAG;gBACZ,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE;oBACnC,EAAE,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;iBACvC;aACF;;;;;;;;;QACD,OAAO,EAAO,CAAC;KAChB;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACtB,OAAQ,GAAa,CAAC,GAAG,CAAC,iBAAiB,CAAQ,CAAC;KACrD;IAED,OAAO,GAAG,CAAC;AACb,CAAC;;;;;;;;;;;;;;;;ACxYM,IAAM,cAAc,GACzB,MAAM,CAAC,cAAc,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;AAE/F;;GAEG;AACH,wDAAwD;AACxD,SAAS,UAAU,CAAiC,GAAY,EAAE,KAAa;IAC7E,6CAA6C;IAC7C,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;IACtB,OAAO,GAAuB,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,wDAAwD;AACxD,SAAS,eAAe,CAAiC,GAAY,EAAE,KAAa;IAClF,KAAK,IAAM,IAAI,IAAI,KAAK,EAAE;QACxB,iDAAiD;QACjD,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC7B,8DAA8D;YAC9D,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;SACzB;KACF;IAED,OAAO,GAAuB,CAAC;AACjC,CAAC;;;;;;;;;;;;;;;;;;AC3BqC;AACM;AAE5C,0CAA0C;AAC1C;IAIE,uBAA6B,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;QAH5C,sCAAsC;QACrB,YAAO,GAA0B,EAAE,CAAC;IAEN,CAAC;IAEhD;;OAEG;IACI,+BAAO,GAAd;QACE,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;IAClE,CAAC;IAED;;;;;OAKG;IACI,2BAAG,GAAV,UAAW,IAAoB;QAA/B,iBAgBC;QAfC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;YACnB,OAAO,4DAAkB,CAAC,IAAI,+CAAW,CAAC,iDAAiD,CAAC,CAAC,CAAC;SAC/F;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;QACD,KAAK,IAAI;aACN,IAAI,CAAC,cAAM,YAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAjB,CAAiB,CAAC;aAC7B,IAAI,CAAC,IAAI,EAAE;YACV,YAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC3B,gFAAgF;gBAChF,oCAAoC;YACtC,CAAC,CAAC;QAHF,CAGE,CACH,CAAC;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,8BAAM,GAAb,UAAc,IAAoB;QAChC,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,8BAAM,GAAb;QACE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACI,6BAAK,GAAZ,UAAa,OAAgB;QAA7B,iBAgBC;QAfC,OAAO,IAAI,qDAAW,CAAU,iBAAO;YACrC,IAAM,kBAAkB,GAAG,UAAU,CAAC;gBACpC,IAAI,OAAO,IAAI,OAAO,GAAG,CAAC,EAAE;oBAC1B,OAAO,CAAC,KAAK,CAAC,CAAC;iBAChB;YACH,CAAC,EAAE,OAAO,CAAC,CAAC;YACZ,KAAK,yDAAe,CAAC,KAAI,CAAC,OAAO,CAAC;iBAC/B,IAAI,CAAC;gBACJ,YAAY,CAAC,kBAAkB,CAAC,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,EAAE;gBACV,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IACH,oBAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;AClFD,IAAM,mBAAmB,GAAG,aAAa,CAAC;AAE1C;;GAEG;AACI,SAAS,eAAe,CAAC,EAAW;IACzC,IAAI;QACF,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;YACnC,OAAO,mBAAmB,CAAC;SAC5B;QACD,OAAO,EAAE,CAAC,IAAI,IAAI,mBAAmB,CAAC;KACvC;IAAC,OAAO,CAAC,EAAE;QACV,4DAA4D;QAC5D,gEAAgE;QAChE,OAAO,mBAAmB,CAAC;KAC5B;AACH,CAAC;;;;;;;;;;;;;;;;;;;;AChByC;AAE1C;;;;;;GAMG;AACI,SAAS,QAAQ,CAAC,GAAW,EAAE,GAAe;IAAf,6BAAe;IACnD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,CAAC,EAAE;QACxC,OAAO,GAAG,CAAC;KACZ;IACD,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,QAAK,CAAC;AAC9D,CAAC;AAED;;;;;;;GAOG;AACI,SAAS,QAAQ,CAAC,IAAY,EAAE,KAAa;IAClD,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAC1B,IAAI,EAAE,IAAI,GAAG,EAAE;QACb,OAAO,OAAO,CAAC;KAChB;IACD,IAAI,KAAK,GAAG,EAAE,EAAE;QACd,6CAA6C;QAC7C,KAAK,GAAG,EAAE,CAAC;KACZ;IAED,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,EAAE;QACb,KAAK,GAAG,CAAC,CAAC;KACX;IAED,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE;QAChB,GAAG,GAAG,EAAE,CAAC;KACV;IACD,IAAI,GAAG,KAAK,EAAE,EAAE;QACd,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;KAChC;IAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,EAAE;QACb,OAAO,GAAG,aAAW,OAAS,CAAC;KAChC;IACD,IAAI,GAAG,GAAG,EAAE,EAAE;QACZ,OAAO,IAAI,SAAS,CAAC;KACtB;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,8DAA8D;AACvD,SAAS,QAAQ,CAAC,KAAY,EAAE,SAAkB;IACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzB,OAAO,EAAE,CAAC;KACX;IAED,IAAM,MAAM,GAAG,EAAE,CAAC;IAClB,4DAA4D;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,IAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI;YACF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SAC5B;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;SAC7C;KACF;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACI,SAAS,iBAAiB,CAAC,KAAa,EAAE,OAAwB;IACvE,IAAI,CAAC,6CAAQ,CAAC,KAAK,CAAC,EAAE;QACpB,OAAO,KAAK,CAAC;KACd;IAED,IAAI,6CAAQ,CAAC,OAAO,CAAC,EAAE;QACrB,OAAQ,OAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxC;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;KACtC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACtGiC;AACO;AAEzC;;;;;GAKG;AACI,SAAS,kBAAkB;IAChC,IAAI;QACF,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAED;;;;;GAKG;AACI,SAAS,gBAAgB;IAC9B,IAAI;QACF,qEAAqE;QACrE,2CAA2C;QAC3C,gDAAgD;QAChD,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAED;;;;;GAKG;AACI,SAAS,oBAAoB;IAClC,IAAI;QACF,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAED;;;;;GAKG;AACI,SAAS,aAAa;IAC3B,IAAI,CAAC,CAAC,OAAO,IAAI,sDAAe,EAAU,CAAC,EAAE;QAC3C,OAAO,KAAK,CAAC;KACd;IAED,IAAI;QACF,IAAI,OAAO,EAAE,CAAC;QACd,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,QAAQ,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AACD;;GAEG;AACH,wDAAwD;AACjD,SAAS,aAAa,CAAC,IAAc;IAC1C,OAAO,IAAI,IAAI,kDAAkD,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;GAKG;AACI,SAAS,mBAAmB;IACjC,IAAI,CAAC,aAAa,EAAE,EAAE;QACpB,OAAO,KAAK,CAAC;KACd;IAED,IAAM,MAAM,GAAG,sDAAe,EAAU,CAAC;IAEzC,6BAA6B;IAC7B,6DAA6D;IAC7D,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QAC/B,OAAO,IAAI,CAAC;KACb;IAED,iGAAiG;IACjG,4DAA4D;IAC5D,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC5B,mDAAmD;IACnD,IAAI,GAAG,IAAI,OAAQ,GAAG,CAAC,aAAyB,KAAK,UAAU,EAAE;QAC/D,IAAI;YACF,IAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC5C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE;gBACxD,6DAA6D;gBAC7D,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aACrD;YACD,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SAC/B;QAAC,OAAO,GAAG,EAAE;YACZ,gDAAW,CAAC,iFAAiF,EAAE,GAAG,CAAC,CAAC;SACrG;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACI,SAAS,yBAAyB;IACvC,OAAO,mBAAmB,IAAI,sDAAe,EAAE,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACI,SAAS,sBAAsB;IACpC,wHAAwH;IACxH,4CAA4C;IAC5C,2EAA2E;IAC3E,yDAAyD;IAEzD,IAAI,CAAC,aAAa,EAAE,EAAE;QACpB,OAAO,KAAK,CAAC;KACd;IAED,IAAI;QACF,IAAI,OAAO,CAAC,GAAG,EAAE;YACf,cAAc,EAAE,QAA0B;SAC3C,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAED;;;;;GAKG;AACI,SAAS,eAAe;IAC7B,4EAA4E;IAC5E,kFAAkF;IAClF,wEAAwE;IACxE,IAAM,MAAM,GAAG,sDAAe,EAAU,CAAC;IACzC,+DAA+D;IAC/D,8DAA8D;IAC9D,IAAM,MAAM,GAAI,MAAc,CAAC,MAAM,CAAC;IACtC,IAAM,mBAAmB,GAAG,MAAM,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;IACvE,8DAA8D;IAC9D,IAAM,aAAa,GAAG,SAAS,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;IAEzG,OAAO,CAAC,mBAAmB,IAAI,aAAa,CAAC;AAC/C,CAAC;;;;;;;;;;;;;;;;;AChLD,qEAAqE;AACrE,+CAA+C;AAC/C,sEAAsE;AACtE,uDAAuD;AACrB;AAElC,kCAAkC;AAClC,IAAK,MAOJ;AAPD,WAAK,MAAM;IACT,cAAc;IACd,6BAAmB;IACnB,oBAAoB;IACpB,+BAAqB;IACrB,uBAAuB;IACvB,+BAAqB;AACvB,CAAC,EAPI,MAAM,KAAN,MAAM,QAOV;AAED;;;GAGG;AACH;IASE,qBACE,QAAwG;QAD1G,iBAQC;QAhBO,WAAM,GAAW,MAAM,CAAC,OAAO,CAAC;QAChC,cAAS,GAIZ,EAAE,CAAC;QA+IR,YAAY;QACK,aAAQ,GAAG,UAAC,KAAiC;YAC5D,KAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEF,YAAY;QACK,YAAO,GAAG,UAAC,MAAY;YACtC,KAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEF,YAAY;QACK,eAAU,GAAG,UAAC,KAAa,EAAE,KAAgC;YAC5E,IAAI,KAAI,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,EAAE;gBAClC,OAAO;aACR;YAED,IAAI,+CAAU,CAAC,KAAK,CAAC,EAAE;gBACrB,KAAM,KAAwB,CAAC,IAAI,CAAC,KAAI,CAAC,QAAQ,EAAE,KAAI,CAAC,OAAO,CAAC,CAAC;gBACjE,OAAO;aACR;YAED,KAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,KAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YAEpB,KAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC;QAEF,cAAc;QACd,YAAY;QACK,mBAAc,GAAG,UAAC,OAOlC;YACC,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChD,KAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC;QAEF,YAAY;QACK,qBAAgB,GAAG;YAClC,IAAI,KAAI,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,EAAE;gBAClC,OAAO;aACR;YAED,IAAM,cAAc,GAAG,KAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC9C,KAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YAEpB,cAAc,CAAC,OAAO,CAAC,iBAAO;gBAC5B,IAAI,OAAO,CAAC,IAAI,EAAE;oBAChB,OAAO;iBACR;gBAED,IAAI,KAAI,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,EAAE;oBACnC,IAAI,OAAO,CAAC,WAAW,EAAE;wBACvB,mEAAmE;wBACnE,OAAO,CAAC,WAAW,CAAE,KAAI,CAAC,MAAyB,CAAC,CAAC;qBACtD;iBACF;gBAED,IAAI,KAAI,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,EAAE;oBACnC,IAAI,OAAO,CAAC,UAAU,EAAE;wBACtB,OAAO,CAAC,UAAU,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC;qBACjC;iBACF;gBAED,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QA/MA,IAAI;YACF,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACvC;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACjB;IACH,CAAC;IAED,YAAY;IACE,mBAAO,GAArB,UAAyB,KAAyB;QAChD,OAAO,IAAI,WAAW,CAAC,iBAAO;YAC5B,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IACE,kBAAM,GAApB,UAAgC,MAAY;QAC1C,OAAO,IAAI,WAAW,CAAC,UAAC,CAAC,EAAE,MAAM;YAC/B,MAAM,CAAC,MAAM,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IACE,eAAG,GAAjB,UAA2B,UAAqC;QAC9D,OAAO,IAAI,WAAW,CAAM,UAAC,OAAO,EAAE,MAAM;YAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBAC9B,MAAM,CAAC,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC,CAAC;gBACjE,OAAO;aACR;YAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,OAAO,CAAC,EAAE,CAAC,CAAC;gBACZ,OAAO;aACR;YAED,IAAI,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;YAChC,IAAM,kBAAkB,GAAQ,EAAE,CAAC;YAEnC,UAAU,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;gBAC7B,KAAK,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;qBAC3B,IAAI,CAAC,eAAK;oBACT,kBAAkB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;oBAClC,OAAO,IAAI,CAAC,CAAC;oBAEb,IAAI,OAAO,KAAK,CAAC,EAAE;wBACjB,OAAO;qBACR;oBACD,OAAO,CAAC,kBAAkB,CAAC,CAAC;gBAC9B,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IACL,0BAAI,GAAX,UACE,WAAqE,EACrE,UAAuE;QAFzE,iBAqCC;QAjCC,OAAO,IAAI,WAAW,CAAC,UAAC,OAAO,EAAE,MAAM;YACrC,KAAI,CAAC,cAAc,CAAC;gBAClB,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,gBAAM;oBACjB,IAAI,CAAC,WAAW,EAAE;wBAChB,kBAAkB;wBAClB,cAAc;wBACd,OAAO,CAAC,MAAa,CAAC,CAAC;wBACvB,OAAO;qBACR;oBACD,IAAI;wBACF,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC7B,OAAO;qBACR;oBAAC,OAAO,CAAC,EAAE;wBACV,MAAM,CAAC,CAAC,CAAC,CAAC;wBACV,OAAO;qBACR;gBACH,CAAC;gBACD,UAAU,EAAE,gBAAM;oBAChB,IAAI,CAAC,UAAU,EAAE;wBACf,MAAM,CAAC,MAAM,CAAC,CAAC;wBACf,OAAO;qBACR;oBACD,IAAI;wBACF,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC5B,OAAO;qBACR;oBAAC,OAAO,CAAC,EAAE;wBACV,MAAM,CAAC,CAAC,CAAC,CAAC;wBACV,OAAO;qBACR;gBACH,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IACL,2BAAK,GAAZ,UACE,UAAqE;QAErE,OAAO,IAAI,CAAC,IAAI,CAAC,aAAG,IAAI,UAAG,EAAH,CAAG,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,YAAY;IACL,6BAAO,GAAd,UAAwB,SAA+B;QAAvD,iBA6BC;QA5BC,OAAO,IAAI,WAAW,CAAU,UAAC,OAAO,EAAE,MAAM;YAC9C,IAAI,GAAkB,CAAC;YACvB,IAAI,UAAmB,CAAC;YAExB,OAAO,KAAI,CAAC,IAAI,CACd,eAAK;gBACH,UAAU,GAAG,KAAK,CAAC;gBACnB,GAAG,GAAG,KAAK,CAAC;gBACZ,IAAI,SAAS,EAAE;oBACb,SAAS,EAAE,CAAC;iBACb;YACH,CAAC,EACD,gBAAM;gBACJ,UAAU,GAAG,IAAI,CAAC;gBAClB,GAAG,GAAG,MAAM,CAAC;gBACb,IAAI,SAAS,EAAE;oBACb,SAAS,EAAE,CAAC;iBACb;YACH,CAAC,CACF,CAAC,IAAI,CAAC;gBACL,IAAI,UAAU,EAAE;oBACd,MAAM,CAAC,GAAG,CAAC,CAAC;oBACZ,OAAO;iBACR;gBAED,OAAO,CAAE,GAAsB,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IACL,8BAAQ,GAAf;QACE,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAyEH,kBAAC;AAAD,CAAC;AAEsB;;;;;;;;;;;;;;;;;;;;;;;;AClPkB;AACU;AASnD;;;;;;GAMG;AACH,IAAM,mBAAmB,GAAoB;IAC3C,UAAU,EAAE,cAAM,WAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAjB,CAAiB;CACpC,CAAC;AAiBF;;;;;GAKG;AACH,SAAS,qBAAqB;IACpB,sFAAW,CAA+B;IAClD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;QACpC,OAAO,SAAS,CAAC;KAClB;IAED,8EAA8E;IAC9E,EAAE;IACF,gHAAgH;IAChH,0DAA0D;IAC1D,EAAE;IACF,4GAA4G;IAC5G,aAAa;IACb,EAAE;IACF,iHAAiH;IACjH,wDAAwD;IACxD,EAAE;IACF,qHAAqH;IACrH,uGAAuG;IACvG,qHAAqH;IACrH,+DAA+D;IAC/D,EAAE;IACF,kEAAkE;IAClE,EAAE;IACF,iHAAiH;IACjH,0GAA0G;IAC1G,wCAAwC;IACxC,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAElD,OAAO;QACL,GAAG,EAAE,cAAM,kBAAW,CAAC,GAAG,EAAE,EAAjB,CAAiB;QAC5B,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB;IACzB,IAAI;QACF,IAAM,SAAS,GAAG,qDAAc,CAAC,MAAM,EAAE,YAAY,CAAiC,CAAC;QACvF,OAAO,SAAS,CAAC,WAAW,CAAC;KAC9B;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED;;GAEG;AACH,IAAM,mBAAmB,GAA4B,gDAAS,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC;AAElH,IAAM,eAAe,GACnB,mBAAmB,KAAK,SAAS;IAC/B,CAAC,CAAC,mBAAmB;IACrB,CAAC,CAAC;QACE,UAAU,EAAE,cAAM,QAAC,mBAAmB,CAAC,UAAU,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAnE,CAAmE;KACtF,CAAC;AAER;;GAEG;AACI,IAAM,sBAAsB,GAAiB,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAE7G;;;;;;;;;;GAUG;AACI,IAAM,kBAAkB,GAAiB,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAEjG,4DAA4D;AACrD,IAAM,eAAe,GAAG,kBAAkB,CAAC;AAElD;;GAEG;AACI,IAAM,mBAAmB,GAAG,mBAAmB,KAAK,SAAS,CAAC;AAErE;;GAEG;AACI,IAAI,iCAAyC,CAAC;AAErD;;;GAGG;AACI,IAAM,4BAA4B,GAAG,CAAC;IAC3C,6GAA6G;IAC7G,mHAAmH;IACnH,kFAAkF;IAE1E,sFAAW,CAA+B;IAClD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;QACpC,iCAAiC,GAAG,MAAM,CAAC;QAC3C,OAAO,SAAS,CAAC;KAClB;IAED,IAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9B,IAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACzC,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,wEAAwE;IACxE,IAAM,eAAe,GAAG,WAAW,CAAC,UAAU;QAC5C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC;QAC7D,CAAC,CAAC,SAAS,CAAC;IACd,IAAM,oBAAoB,GAAG,eAAe,GAAG,SAAS,CAAC;IAEzD,oHAAoH;IACpH,mGAAmG;IACnG,qHAAqH;IACrH,qHAAqH;IACrH,YAAY;IACZ,mDAAmD;IACnD,IAAM,eAAe,GAAG,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC;IACjF,IAAM,kBAAkB,GAAG,OAAO,eAAe,KAAK,QAAQ,CAAC;IAC/D,6EAA6E;IAC7E,IAAM,oBAAoB,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnH,IAAM,yBAAyB,GAAG,oBAAoB,GAAG,SAAS,CAAC;IAEnE,IAAI,oBAAoB,IAAI,yBAAyB,EAAE;QACrD,oCAAoC;QACpC,IAAI,eAAe,IAAI,oBAAoB,EAAE;YAC3C,iCAAiC,GAAG,YAAY,CAAC;YACjD,OAAO,WAAW,CAAC,UAAU,CAAC;SAC/B;aAAM;YACL,iCAAiC,GAAG,iBAAiB,CAAC;YACtD,OAAO,eAAe,CAAC;SACxB;KACF;IAED,mGAAmG;IACnG,iCAAiC,GAAG,SAAS,CAAC;IAC9C,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;;;ACxLQ;;AAEb;;;;AAIA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SCDgBA,EAAIC,8BAA+BC,2DACrC,KACNC,EAAIC,EAAOH,GACXI,EAAOF,EAEG,mBAANA,EACPA,EAAEG,MAAM,KAAMJ,GACdC,EAHA,qBAAuBF,QAIhBM,iBAAiBF,SAElBE,oCACqBN,GAC7BC,EAAKM,OAAS,IAAMN,EAAKO,KAAI,SAAAC,aAASA,SAAMC,KAAK,KAAO,iECpC3CC,EAAQC,WACdA,KAAWA,EAAMC,YAKXC,EAAYF,WACtBA,aAawBA,OACxBA,GAA0B,iBAAVA,EAAoB,OAAO,MAC1CG,EAAQC,OAAOC,eAAeL,MACtB,OAAVG,SACI,MAEFG,EACLF,OAAOG,eAAeC,KAAKL,EAAO,gBAAkBA,EAAMM,kBAE3C,mBAARH,GACPI,SAASC,SAASH,KAAKF,KAAUM,EArBjCC,CAAcb,IACdc,MAAMC,QAAQf,MACZA,EAAMgB,MACNhB,EAAMS,YAAYO,IACpBC,EAAMjB,IACNkB,EAAMlB,aAuBQmB,EAASnB,UACnBD,EAAQC,IAAQb,EAAI,GAAIa,GACtBA,EAAMC,GAAamB,EA8B3B,SAAgBC,EAAKC,EAAUC,EAAWC,mBAAiB,GCtE7B,IDuEzBC,EAAYH,IACbE,EAAiBpB,OAAOsB,KAAOC,IAASL,GAAKM,SAAQ,SAAAC,GACjDL,GAAiC,iBAARK,GAAkBN,EAAKM,EAAKP,EAAIO,GAAMP,MAGrEA,EAAIM,SAAQ,SAACE,EAAYC,UAAeR,EAAKQ,EAAOD,EAAOR,eAK7CG,EAAYO,OAErBC,EAAgCD,EAAM/B,UACrCgC,EACJA,EAAMC,EAAQ,EACbD,EAAMC,EAAQ,EACbD,EAAMC,EACRpB,MAAMC,QAAQiB,GCvFW,EDyFzBf,EAAMe,GCxFiB,ED0FvBd,EAAMc,GCzFiB,EAHG,WDkGdG,EAAIH,EAAYI,UChGL,IDiGnBX,EAAYO,GAChBA,EAAMG,IAAIC,GACVhC,OAAOiC,UAAU9B,eAAeC,KAAKwB,EAAOI,YAIhCE,EAAIN,EAA2BI,UCvGpB,IDyGnBX,EAAYO,GAAyBA,EAAMM,IAAIF,GAAQJ,EAAMI,GAIrE,SAAgBG,EAAIP,EAAYQ,EAA6BxC,OACtDyC,EAAIhB,EAAYO,GC9GI,ID+GtBS,EAAmBT,EAAMO,IAAIC,EAAgBxC,GC9GvB,ID+GjByC,GACRT,EAAMU,OAAOF,GACbR,EAAMW,IAAI3C,IACJgC,EAAMQ,GAAkBxC,WAIhB4C,EAAGC,EAAQC,UAEtBD,IAAMC,EACI,IAAND,GAAW,EAAIA,GAAM,EAAIC,EAEzBD,GAAMA,GAAKC,GAAMA,WAKV7B,EAAM8B,UACdC,GAAUD,aAAkBE,aAIpB/B,EAAM6B,UACdG,GAAUH,aAAkBI,aAGpBC,EAAOnB,UACfA,EAAMoB,GAASpB,EAAMb,WAIbkC,EAAYC,MACvBzC,MAAMC,QAAQwC,GAAO,OAAOzC,MAAMuB,UAAUmB,MAAMhD,KAAK+C,OACrDE,EAAcC,GAA0BH,UACvCE,EAAYxD,WACfyB,EAAOC,GAAQ8B,GACVE,EAAI,EAAGA,EAAIjC,EAAK/B,OAAQgE,IAAK,KAC/B9B,EAAWH,EAAKiC,GAChBC,EAAOH,EAAY5B,IACH,IAAlB+B,EAAKC,WACRD,EAAKC,UAAW,EAChBD,EAAKE,cAAe,IAKjBF,EAAKtB,KAAOsB,EAAKrB,OACpBkB,EAAY5B,GAAO,CAClBiC,cAAc,EACdD,UAAU,EACVE,WAAYH,EAAKG,WACjB/D,MAAOuD,EAAK1B,YAGRzB,OAAO4D,OAAO5D,OAAOC,eAAekD,GAAOE,YAWnCQ,EAAU3C,EAAU4C,0BAAgB,GAC/CC,EAAS7C,IAAQvB,EAAQuB,KAASpB,EAAYoB,GAAaA,GAC3DG,EAAYH,GAAO,IACtBA,EAAIiB,IAAMjB,EAAIqB,IAAMrB,EAAI8C,MAAQ9C,EAAIoB,OAAS2B,GAE9CjE,OAAO6D,OAAO3C,GACV4C,GAAM7C,EAAKC,GAAK,SAACO,EAAK7B,UAAUiE,EAAOjE,GAAO,MAAO,GAClDsB,GAGR,SAAS+C,IACRlF,EAAI,YAGWgF,EAAS7C,UACb,MAAPA,GAA8B,iBAARA,GAEnBlB,OAAO+D,SAAS7C,YEtKRgD,EACfC,OAEMC,EAASC,GAAQF,UAClBC,GACJrF,EAAI,GAAIoF,GAGFC,WAGQE,EACfH,EACAI,GAEKF,GAAQF,KAAYE,GAAQF,GAAaI,GCpC/C,SAAgBC,gBACXC,EAAYC,GAAc3F,EAAI,GAC3B2F,WAkBQC,EACfC,EACAC,GAEIA,IACHX,EAAU,WACVU,EAAME,EAAW,GACjBF,EAAMG,EAAkB,GACxBH,EAAMI,EAAiBH,YAITI,EAAYL,GAC3BM,EAAWN,GACXA,EAAMO,EAAQ3D,QAAQ4D,GAEtBR,EAAMO,EAAU,cAGDD,EAAWN,GACtBA,IAAUF,IACbA,EAAeE,EAAMS,YAIPC,EAAWC,UAClBb,EArCD,CACNS,EAAS,GACTE,EAmCkCX,EAlClCc,EAkCgDD,EA/BhDE,GAAgB,EAChBC,EAAoB,GAiCtB,SAASN,EAAYO,OACd9D,EAAoB8D,EAAM9F,GFtDG,IEwDlCgC,EAAMC,GFvD2B,IEwDjCD,EAAMC,EAEND,EAAM+D,IACF/D,EAAMgE,GAAW,WC7DPC,EAAcC,EAAanB,GAC1CA,EAAMc,EAAqBd,EAAMO,EAAQ5F,WACnCyG,EAAYpB,EAAMO,EAAS,GAC3Bc,OAAwBC,IAAXH,GAAwBA,IAAWC,SACjDpB,EAAMY,EAAOW,GACjBjC,EAAU,OAAOkC,EAAiBxB,EAAOmB,EAAQE,GAC9CA,GACCD,EAAUnG,GAAawG,IAC1BpB,EAAYL,GACZ7F,EAAI,IAEDe,EAAYiG,KAEfA,EAASO,EAAS1B,EAAOmB,GACpBnB,EAAMS,GAASkB,EAAY3B,EAAOmB,IAEpCnB,EAAME,GACTZ,EAAU,WAAWsC,EACpBR,EAAUnG,GACVkG,EACAnB,EAAME,EACNF,EAAMG,IAKRgB,EAASO,EAAS1B,EAAOoB,EAAW,IAErCf,EAAYL,GACRA,EAAME,GACTF,EAAMI,EAAgBJ,EAAME,EAAUF,EAAMG,GAEtCgB,IAAWU,EAAUV,OAASG,EAGtC,SAASI,EAASI,EAAuB9G,EAAY+G,MAEhD5C,EAASnE,GAAQ,OAAOA,MAEtBiC,EAAoBjC,EAAMC,OAE3BgC,SACJZ,EACCrB,GACA,SAAC6B,EAAKmF,UACLC,EAAiBH,EAAW7E,EAAOjC,EAAO6B,EAAKmF,EAAYD,MAC5D,GAEM/G,KAGJiC,EAAMiF,IAAWJ,EAAW,OAAO9G,MAElCiC,EAAMwE,SACVE,EAAYG,EAAW7E,EAAMb,GAAO,GAC7Ba,EAAMb,MAGTa,EAAMkF,EAAY,CACtBlF,EAAMkF,GAAa,EACnBlF,EAAMiF,EAAOpB,QACPK,EH1D0B,IG4D/BlE,EAAMC,GH3DwB,IG2DQD,EAAMC,EACxCD,EAAMoB,EAAQC,EAAYrB,EAAMmF,GACjCnF,EAAMoB,EAKVhC,EHhE0B,IGiEzBY,EAAMC,EAAyB,IAAIiB,IAAIgD,GAAUA,GACjD,SAACtE,EAAKmF,UACLC,EAAiBH,EAAW7E,EAAOkE,EAAQtE,EAAKmF,EAAYD,MAG9DJ,EAAYG,EAAWX,GAAQ,GAE3BY,GAAQD,EAAU5B,GACrBZ,EAAU,WAAW+C,EACpBpF,EACA8E,EACAD,EAAU5B,EACV4B,EAAU3B,UAINlD,EAAMoB,EAGd,SAAS4D,EACRH,EACAQ,EACAC,EACAnF,EACA4E,EACAQ,WAEI3C,EAAWmC,IAAeO,GAAcpI,EAAI,GAC5CY,EAAQiH,GAAa,KASlBS,EAAMf,EAASI,EAAWE,EAP/BQ,GACAF,GHhGyB,IGiGzBA,EAAapF,IACZC,EAAKmF,EAA8CI,EAAYtF,GAC7DoF,EAAUG,OAAOvF,QACjBkE,MAGJ/D,EAAIgF,EAAcnF,EAAMqF,IAGpB1H,EAAQ0H,GAEL,OADNX,EAAUjB,GAAiB,KAIzB3F,EAAY8G,KAAgB7C,EAAS6C,GAAa,KAChDF,EAAUlB,EAAOgC,GAAed,EAAUhB,EAAqB,SAQpEY,EAASI,EAAWE,GAEfM,GAAgBA,EAAYJ,EAAOzB,GACvCkB,EAAYG,EAAWE,IAI1B,SAASL,EAAY3B,EAAmBhF,EAAYkE,mBAAO,GACtDc,EAAMY,EAAOgC,GAAe5C,EAAMa,GACrC5B,EAAOjE,EAAOkE,GCqEhB,SAAS2D,EAAK9B,EAAgB3D,OACvBH,EAAQ8D,EAAM9F,UACLgC,EAAQmB,EAAOnB,GAAS8D,GACzB3D,GAcf,SAAS0F,EACRC,EACA3F,MAGMA,KAAQ2F,UACV5H,EAAQC,OAAOC,eAAe0H,GAC3B5H,GAAO,KACPyD,EAAOxD,OAAO4H,yBAAyB7H,EAAOiC,MAChDwB,EAAM,OAAOA,EACjBzD,EAAQC,OAAOC,eAAeF,aAKhB8H,EAAYhG,GACtBA,EAAMwE,IACVxE,EAAMwE,GAAY,EACdxE,EAAMwD,GACTwC,EAAYhG,EAAMwD,aAKLyC,EAAYjG,GACtBA,EAAMoB,IACVpB,EAAMoB,EAAQC,EAAYrB,EAAMb,IC3DlC,SAAgB+G,EACfxC,EACA3F,EACAoI,OAGMrC,EAAiB9E,EAAMjB,GAC1BsE,EAAU,UAAU+D,EAAUrI,EAAOoI,GACrClH,EAAMlB,GACNsE,EAAU,UAAUgE,EAAUtI,EAAOoI,GACrCzC,EAAMY,WD1KThD,EACA6E,OAEMrH,EAAUD,MAAMC,QAAQwC,GACxBtB,EAAoB,CACzBC,EAAOnB,EJ/B0B,EADC,EIkClCmG,EAAQkB,EAASA,EAAOlB,EAAStC,IAEjC6B,GAAW,EAEXU,GAAY,EAEZO,EAAW,GAEXjC,EAAS2C,EAEThH,EAAOmC,EAEP6D,EAAQ,KAER/D,EAAO,KAEP2C,EAAS,KACTuC,GAAW,GASRxF,EAAYd,EACZuG,EAA2CC,GAC3C1H,IACHgC,EAAS,CAACd,GACVuG,EAAQE,UAGeC,MAAMC,UAAU7F,EAAQyF,GAAzCK,WAAQC,iBACf7G,EAAMmF,EAAS0B,EACf7G,EAAM+D,EAAU6C,EACTC,ECgIJC,CAAiB/I,EAAOoI,GACxB9D,EAAU,OAAO0E,EAAgBhJ,EAAOoI,UAE7BA,EAASA,EAAOlB,EAAStC,KACjCW,EAAQ0D,KAAKlD,GACZA,WCjNQmD,EAAQlJ,UAClBD,EAAQC,IAAQb,EAAI,GAAIa,GAI9B,SAASmJ,EAAYnJ,OACfE,EAAYF,GAAQ,OAAOA,MAE5BoJ,EADEnH,EAAgCjC,EAAMC,GAEtCoJ,EAAW5H,EAAYzB,MACzBiC,EAAO,KAERA,EAAMwE,IACNxE,EAAMC,EAAQ,IAAMoC,EAAU,OAAOgF,EAAYrH,IAElD,OAAOA,EAAMb,EAEda,EAAMkF,GAAa,EACnBiC,EAAOG,EAAWvJ,EAAOqJ,GACzBpH,EAAMkF,GAAa,OAEnBiC,EAAOG,EAAWvJ,EAAOqJ,UAG1BhI,EAAK+H,GAAM,SAACvH,EAAKmF,GACZ/E,GAASK,EAAIL,EAAMb,EAAOS,KAASmF,GACvCzE,EAAI6G,EAAMvH,EAAKsH,EAAYnC,ONtBF,IMyBnBqC,EAA2B,IAAIlG,IAAIiG,GAAQA,EA3B3CD,CAAYnJ,GA8BpB,SAASuJ,EAAWvJ,EAAYqJ,UAEvBA,QN/BkB,SMiCjB,IAAIpG,IAAIjD,QNhCS,SMmCjBc,MAAM0I,KAAKxJ,UAEbsD,EAAYtD,YClCJyJ,aA8ENC,EACRtH,EACA2B,OAEIH,EAAOH,EAAYrB,UACnBwB,EACHA,EAAKG,WAAaA,EAElBN,EAAYrB,GAAQwB,EAAO,CAC1BE,cAAc,EACdC,aACAzB,mBACOL,EAAQ0H,KAAK1J,gBACN2J,EAAgB3H,GAEtBwG,GAAYnG,IAAIL,EAAOG,IAE/BG,aAAevC,OACRiC,EAAQ0H,KAAK1J,UACN2J,EAAgB3H,GAE7BwG,GAAYlG,IAAIN,EAAOG,EAAMpC,KAIzB4D,WAICiG,EAAiBC,OAKpB,IAAInG,EAAImG,EAAOnK,OAAS,EAAGgE,GAAK,EAAGA,IAAK,KACtC1B,EAAkB6H,EAAOnG,GAAG1D,OAC7BgC,EAAMwE,SACFxE,EAAMC,QPjHe,EOmHvB6H,EAAgB9H,IAAQgG,EAAYhG,cPpHZ,EOuHxB+H,EAAiB/H,IAAQgG,EAAYhG,cA0DrC+H,EAAiB/H,WAClBb,EAAiBa,EAAjBb,EAAOgG,EAAUnF,EAAVmF,EAIR1F,EAAOC,GAAQyF,GACZzD,EAAIjC,EAAK/B,OAAS,EAAGgE,GAAK,EAAGA,IAAK,KACpC9B,EAAWH,EAAKiC,MAClB9B,IAAQ5B,OACNgK,EAAY7I,EAAMS,WAENyE,IAAd2D,IAA4B9H,EAAIf,EAAOS,UACnC,MAKD7B,EAAQoH,EAAOvF,GACfI,EAAoBjC,GAASA,EAAMC,MACrCgC,EAAQA,EAAMb,IAAU6I,GAAarH,EAAG5C,EAAOiK,UAC3C,OAOJC,IAAgB9I,EAAMnB,UACrByB,EAAK/B,SAAWgC,GAAQP,GAAOzB,QAAUuK,EAAc,EAAI,YAG1DH,EAAgB9H,OACjBmF,EAAUnF,EAAVmF,KACHA,EAAOzH,SAAWsC,EAAMb,EAAMzB,OAAQ,OAAO,MAQ3CwK,EAAa/J,OAAO4H,yBACzBZ,EACAA,EAAOzH,OAAS,YAGbwK,GAAeA,EAAW7H,cAWtBsH,EAAgB3H,GACpBA,EAAMgE,GAAU9G,EAAI,EAAGiL,KAAKC,UAAUjH,EAAOnB,SAhK5CwB,EAAoD,GAmK1DiB,EAAW,MAAO,CACjBsE,WApMAzF,EACA6E,OAEMrH,EAAUD,MAAMC,QAAQwC,GACxBwC,WA1BiBhF,EAAkBwC,MACrCxC,EAAS,SACNgF,EAAYjF,MAAMyC,EAAK5D,QACpBgE,EAAI,EAAGA,EAAIJ,EAAK5D,OAAQgE,IAChCvD,OAAOkK,eAAevE,EAAO,GAAKpC,EAAG+F,EAAc/F,GAAG,WAChDoC,MAEDtC,EAAcC,GAA0BH,UACvCE,EAAYxD,WACbyB,EAAOC,GAAQ8B,GACZE,EAAI,EAAGA,EAAIjC,EAAK/B,OAAQgE,IAAK,KAC/B9B,EAAWH,EAAKiC,GACtBF,EAAY5B,GAAO6H,EAClB7H,EACAd,KAAa0C,EAAY5B,GAAKkC,mBAGzB3D,OAAO4D,OAAO5D,OAAOC,eAAekD,GAAOE,GASrC8G,CAAexJ,EAASwC,GAEhCtB,EAAwC,CAC7CC,EAAOnB,EPjDuB,EADC,EOmD/BmG,EAAQkB,EAASA,EAAOlB,EAAStC,IACjC6B,GAAW,EACXU,GAAY,EACZO,EAAW,GACXjC,EAAS2C,EAEThH,EAAOmC,EAEP6D,EAAQrB,EACR1C,EAAO,KACP4C,GAAU,EACVsC,GAAW,UAGZnI,OAAOkK,eAAevE,EAAO9F,EAAa,CACzCD,MAAOiC,EAEP4B,UAAU,IAEJkC,GA0KPS,WA/OAxB,EACAmB,EACAE,GAEKA,EASJtG,EAAQoG,IACPA,EAAOlG,GAA0BiH,IAAWlC,GAE7C6E,EAAiB7E,EAAMO,IAXnBP,EAAME,YAwHHsF,EAAuBC,MAC1BA,GAA4B,iBAAXA,OAChBxI,EAA8BwI,EAAOxK,MACtCgC,OACEb,EAAmCa,EAAnCb,EAAOgG,EAA4BnF,EAA5BmF,EAAQM,EAAoBzF,EAApByF,EAAWxF,EAASD,EAATC,KPlID,IOmI5BA,EAKHb,EAAK+F,GAAQ,SAAAvF,GACPA,IAAgB5B,SAEOqG,IAAvBlF,EAAcS,IAAuBM,EAAIf,EAAOS,GAGzC6F,EAAU7F,IAErB2I,EAAuBpD,EAAOvF,KAJ9B6F,EAAU7F,IAAO,EACjBoG,EAAYhG,QAOdZ,EAAKD,GAAO,SAAAS,QAESyE,IAAhBc,EAAOvF,IAAuBM,EAAIiF,EAAQvF,KAC7C6F,EAAU7F,IAAO,EACjBoG,EAAYhG,YAGR,GP1JwB,IO0JpBC,EAA6B,IACnC6H,EAAgB9H,KACnBgG,EAAYhG,GACZyF,EAAU/H,QAAS,GAGhByH,EAAOzH,OAASyB,EAAMzB,WACpB,IAAIgE,EAAIyD,EAAOzH,OAAQgE,EAAIvC,EAAMzB,OAAQgE,IAAK+D,EAAU/D,IAAK,WAE7D,IAAIA,EAAIvC,EAAMzB,OAAQgE,EAAIyD,EAAOzH,OAAQgE,IAAK+D,EAAU/D,IAAK,UAI7D+G,EAAMC,KAAKD,IAAItD,EAAOzH,OAAQyB,EAAMzB,QAEjCgE,EAAI,EAAGA,EAAI+G,EAAK/G,SAEH2C,IAAjBoB,EAAU/D,IAAkB6G,EAAuBpD,EAAOzD,OArK9D6G,CAAuBxF,EAAMO,EAAS,IAGvCsE,EAAiB7E,EAAMO,KAuOxB+D,WAboBrH,UPpOY,IOqOzBA,EAAMC,EACV8H,EAAiB/H,GACjB8H,EAAgB9H,eCjOL2I,aAuPNC,EAAoBvJ,OACvBpB,EAAYoB,GAAM,OAAOA,KAC1BR,MAAMC,QAAQO,GAAM,OAAOA,EAAI1B,IAAIiL,MACnC5J,EAAMK,GACT,OAAO,IAAI2B,IACVnC,MAAM0I,KAAKlI,EAAIwJ,WAAWlL,KAAI,kBAAY,MAAIiL,gBAE5C3J,EAAMI,GAAM,OAAO,IAAI6B,IAAIrC,MAAM0I,KAAKlI,GAAK1B,IAAIiL,QAC7CE,EAAS3K,OAAO4D,OAAO5D,OAAOC,eAAeiB,QAC9C,IAAMO,KAAOP,EAAKyJ,EAAOlJ,GAAOgJ,EAAoBvJ,EAAIO,WACtDkJ,WAGCC,EAA2B1J,UAC/BvB,EAAQuB,GACJuJ,EAAoBvJ,GACdA,MArQT2J,EAAM,MAwQZvG,EAAW,UAAW,CACrBwG,WA3FyBnF,EAAUoF,UACnCA,EAAQvJ,SAAQ,SAAAwJ,WACRrE,EAAYqE,EAAZrE,KAAMsE,EAAMD,EAANC,GAET9H,EAAYwC,EACPpC,EAAI,EAAGA,EAAIoD,EAAKpH,OAAS,EAAGgE,IAAK,KACnC2H,EAAa7J,EAAY8B,GACzBgI,EAAIxE,EAAKpD,GRpMW,IQuMxB2H,GRtMuB,IQsMUA,GAC3B,cAANC,GAA2B,gBAANA,GAEtBpM,EAAI,IACe,mBAAToE,GAA6B,cAANgI,GAAmBpM,EAAI,IAErC,iBADpBoE,EAAOjB,EAAIiB,EAAMgI,KACapM,EAAI,GAAI4H,EAAKjH,KAAK,UAG3C0L,EAAO/J,EAAY8B,GACnBvD,EAAQ6K,EAAoBO,EAAMpL,OAClC6B,EAAMkF,EAAKA,EAAKpH,OAAS,UACvB0L,OArMM,iBAuMJG,QRnNc,SQqNbjI,EAAKhB,IAAIV,EAAK7B,QRpND,EQuNpBb,EAAI,mBAMIoE,EAAK1B,GAAO7B,OAElBiL,SACIO,QRlOgB,SQoOfjI,EAAKkI,OAAO5J,EAAY,EAAG7B,QRnOd,SQqObuD,EAAKhB,IAAIV,EAAK7B,QRpOD,SQsObuD,EAAKZ,IAAI3C,kBAERuD,EAAK1B,GAAO7B,MA3NX,gBA8NHwL,QR7OgB,SQ+OfjI,EAAKkI,OAAO5J,EAAY,QR9OX,SQgPb0B,EAAKb,OAAOb,QR/OC,SQiPb0B,EAAKb,OAAO0I,EAAMpL,6BAEXuD,EAAK1B,WAGrB1C,EAAI,GAAIkM,OAIJtF,GA4BPsB,WAtQApF,EACAyJ,EACAP,EACAQ,UAEQ1J,EAAMC,QRnBoB,OAEF,OAEN,kBQ+F1BD,EACAyJ,EACAP,EACAQ,OAEOvK,EAAgBa,EAAhBb,EAAOiC,EAASpB,EAAToB,EACdhC,EAAKY,EAAMyF,GAAY,SAAC7F,EAAK+J,OACtBC,EAAYvJ,EAAIlB,EAAOS,GACvB7B,EAAQsC,EAAIe,EAAQxB,GACpBwJ,EAAMO,EAAyBzJ,EAAIf,EAAOS,GAnGlC,UAmGmDoJ,EAjGpD,YAkGTY,IAAc7L,GApGJ,YAoGaqL,OACrBtE,EAAO2E,EAAS/D,OAAO9F,GAC7BsJ,EAAQlC,KApGK,WAoGAoC,EAAgB,CAACA,KAAItE,QAAQ,CAACsE,KAAItE,OAAM/G,UACrD2L,EAAe1C,KACdoC,IAAOJ,EACJ,CAACI,GAvGQ,SAuGItE,QAvGJ,WAwGTsE,EACA,CAACA,GAAIJ,EAAKlE,OAAM/G,MAAOgL,EAAwBa,IAC/C,CAACR,GA5GS,UA4GItE,OAAM/G,MAAOgL,EAAwBa,SA9F/CC,CACN7J,EACAyJ,EACAP,EACAQ,QRxB4B,OAFE,kBQ0CjC1J,EACAyJ,EACAP,EACAQ,OAEKvK,EAAoBa,EAApBb,EAAOsG,EAAazF,EAAbyF,EACRrE,EAAQpB,EAAMoB,KAGdA,EAAM1D,OAASyB,EAAMzB,OAAQ,OAEd,CAAC0D,EAAOjC,GAAxBA,OAAOiC,aACoB,CAACsI,EAAgBR,GAA5CA,OAASQ,WAIP,IAAIhI,EAAI,EAAGA,EAAIvC,EAAMzB,OAAQgE,OAC7B+D,EAAU/D,IAAMN,EAAMM,KAAOvC,EAAMuC,GAAI,KACpCoD,EAAO2E,EAAS/D,OAAO,CAAChE,IAC9BwH,EAAQlC,KAAK,CACZoC,GAtDY,UAuDZtE,OAGA/G,MAAOgL,EAAwB3H,EAAMM,MAEtCgI,EAAe1C,KAAK,CACnBoC,GA7DY,UA8DZtE,OACA/G,MAAOgL,EAAwB5J,EAAMuC,UAMnC,IAAIA,EAAIvC,EAAMzB,OAAQgE,EAAIN,EAAM1D,OAAQgE,IAAK,KAC3CoD,EAAO2E,EAAS/D,OAAO,CAAChE,IAC9BwH,EAAQlC,KAAK,CACZoC,GAAIJ,EACJlE,OAGA/G,MAAOgL,EAAwB3H,EAAMM,MAGnCvC,EAAMzB,OAAS0D,EAAM1D,QACxBgM,EAAe1C,KAAK,CACnBoC,GAjFa,UAkFbtE,KAAM2E,EAAS/D,OAAO,CAAC,WACvB3H,MAAOoB,EAAMzB,SA7DNoM,CAAqB9J,EAAOyJ,EAAUP,EAASQ,QR1B9B,kBQsH1B1J,EACAyJ,EACAP,EACAQ,OAEKvK,EAAgBa,EAAhBb,EAAOiC,EAASpB,EAAToB,EAERM,EAAI,EACRvC,EAAMQ,SAAQ,SAAC5B,OACTqD,EAAOlB,IAAInC,GAAQ,KACjB+G,EAAO2E,EAAS/D,OAAO,CAAChE,IAC9BwH,EAAQlC,KAAK,CACZoC,GA5HW,SA6HXtE,OACA/G,UAED2L,EAAeK,QAAQ,CACtBX,GAAIJ,EACJlE,OACA/G,UAGF2D,OAEDA,EAAI,EACJN,EAAOzB,SAAQ,SAAC5B,OACVoB,EAAMe,IAAInC,GAAQ,KAChB+G,EAAO2E,EAAS/D,OAAO,CAAChE,IAC9BwH,EAAQlC,KAAK,CACZoC,GAAIJ,EACJlE,OACA/G,UAED2L,EAAeK,QAAQ,CACtBX,GAlJW,SAmJXtE,OACA/G,UAGF2D,OAjIQsI,CACLhK,EACDyJ,EACAP,EACAQ,KAgPH/E,WA9GAsF,EACAC,EACAhB,EACAQ,GAEAR,EAAQlC,KAAK,CACZoC,GApKc,UAqKdtE,KAAM,GACN/G,MAAOmM,IAERR,EAAe1C,KAAK,CACnBoC,GAzKc,UA0KdtE,KAAM,GACN/G,MAAOkM,EAAU9K,OC3MpB,SAoBgBgL,aAgBNC,EAAUC,EAAQC,YAEjBC,SACH/L,YAAc6L,EAFpBG,EAAcH,EAAGC,GAIjBD,EAAEjK,WAECmK,EAAGnK,UAAYkK,EAAElK,UAAY,IAAImK,YA0J5BE,EAAezK,GAClBA,EAAMoB,IACVpB,EAAMyF,EAAY,IAAIzE,IACtBhB,EAAMoB,EAAQ,IAAIJ,IAAIhB,EAAMb,aA0HrBuL,EAAe1K,GAClBA,EAAMoB,IAEVpB,EAAMoB,EAAQ,IAAIF,IAClBlB,EAAMb,EAAMQ,SAAQ,SAAA5B,MACfE,EAAYF,GAAQ,KACjB+F,EAAQoC,EAAYlG,EAAMiF,EAAOtB,EAAQ5F,EAAOiC,GACtDA,EAAMsD,EAAQhD,IAAIvC,EAAO+F,GACzB9D,EAAMoB,EAAOV,IAAIoD,QAEjB9D,EAAMoB,EAAOV,IAAI3C,gBAMZ4J,EAAgB3H,GACpBA,EAAMgE,GAAU9G,EAAI,EAAGiL,KAAKC,UAAUjH,EAAOnB,SA7T9CwK,EAAgB,SAASH,EAAQC,UACpCE,EACCrM,OAAOwM,gBACN,CAACC,UAAW,cAAe/L,OAC3B,SAASwL,EAAGC,GACXD,EAAEO,UAAYN,IAEhB,SAASD,EAAGC,OACN,IAAIhB,KAAKgB,EAAOA,EAAEhM,eAAegL,KAAIe,EAAEf,GAAKgB,EAAEhB,MAEhCe,EAAGC,IAcnBO,EAAY,oBAGRA,EAAoB/J,EAAgBqF,eACvCnI,GAAe,CACnBiC,ETxBwB,ESyBxBuD,EAAS2C,EACTlB,EAAQkB,EAASA,EAAOlB,EAAStC,IACjC6B,GAAW,EACXU,GAAY,EACZ9D,OAAOiD,EACPoB,OAAWpB,EACXlF,EAAO2B,EACPqE,EAAQuC,KACRpB,GAAW,EACXtC,GAAU,GAEJ0D,KAhBR0C,EAAUS,EA+IR7J,SA7HIsI,EAAIuB,EAASzK,iBAEnBjC,OAAOkK,eAAeiB,EAAG,OAAQ,CAChCjJ,IAAK,kBACGc,EAAOuG,KAAK1J,IAAc8M,QAMnCxB,EAAEpJ,IAAM,SAASN,UACTuB,EAAOuG,KAAK1J,IAAckC,IAAIN,IAGtC0J,EAAEhJ,IAAM,SAASV,EAAU7B,OACpBiC,EAAkB0H,KAAK1J,UAC7B2J,EAAgB3H,GACXmB,EAAOnB,GAAOE,IAAIN,IAAQuB,EAAOnB,GAAOK,IAAIT,KAAS7B,IACzD0M,EAAezK,GACfgG,EAAYhG,GACZA,EAAMyF,EAAWnF,IAAIV,GAAK,GAC1BI,EAAMoB,EAAOd,IAAIV,EAAK7B,GACtBiC,EAAMyF,EAAWnF,IAAIV,GAAK,IAEpB8H,MAGR4B,EAAE7I,OAAS,SAASb,OACd8H,KAAKxH,IAAIN,UACN,MAGFI,EAAkB0H,KAAK1J,UAC7B2J,EAAgB3H,GAChByK,EAAezK,GACfgG,EAAYhG,GACZA,EAAMyF,EAAWnF,IAAIV,GAAK,GAC1BI,EAAMoB,EAAOX,OAAOb,IACb,GAGR0J,EAAEnH,MAAQ,eACHnC,EAAkB0H,KAAK1J,GAC7B2J,EAAgB3H,GACZmB,EAAOnB,GAAO8K,OACjBL,EAAezK,GACfgG,EAAYhG,GACZA,EAAMyF,EAAY,IAAIzE,IACtB5B,EAAKY,EAAMb,GAAO,SAAAS,GACjBI,EAAMyF,EAAWnF,IAAIV,GAAK,MAE3BI,EAAMoB,EAAOe,UAIfmH,EAAE3J,QAAU,SACXoL,EACAC,cAGA7J,EADwBuG,KAAK1J,IACf2B,SAAQ,SAACsL,EAAarL,GACnCmL,EAAGxM,KAAKyM,EAASE,EAAK7K,IAAIT,GAAMA,EAAKsL,OAIvC5B,EAAEjJ,IAAM,SAAST,OACVI,EAAkB0H,KAAK1J,GAC7B2J,EAAgB3H,OACVjC,EAAQoD,EAAOnB,GAAOK,IAAIT,MAC5BI,EAAMkF,IAAejH,EAAYF,UAC7BA,KAEJA,IAAUiC,EAAMb,EAAMkB,IAAIT,UACtB7B,MAGF+F,EAAQoC,EAAYlG,EAAMiF,EAAOtB,EAAQ5F,EAAOiC,UACtDyK,EAAezK,GACfA,EAAMoB,EAAOd,IAAIV,EAAKkE,GACfA,GAGRwF,EAAE7J,KAAO,kBACD0B,EAAOuG,KAAK1J,IAAcyB,QAGlC6J,EAAE6B,OAAS,wBACJC,EAAW1D,KAAKjI,oBAEpB4L,GAAiB,kBAAMC,EAAKH,YAC7BI,KAAM,eACCC,EAAIJ,EAASG,cAEfC,EAAEC,KAAaD,EAEZ,CACNC,MAAM,EACN1N,MAHauN,EAAKjL,IAAImL,EAAEzN,YAS5BuL,EAAET,QAAU,wBACLuC,EAAW1D,KAAKjI,oBAEpB4L,GAAiB,kBAAMK,EAAK7C,aAC7B0C,KAAM,eACCC,EAAIJ,EAASG,UAEfC,EAAEC,KAAM,OAAOD,MACbzN,EAAQ2N,EAAKrL,IAAImL,EAAEzN,aAClB,CACN0N,MAAM,EACN1N,MAAO,CAACyN,EAAEzN,MAAOA,QAMrBuL,EAAE+B,GAAkB,kBACZ3D,KAAKmB,WAGNgC,EA/IU,GA8JZc,EAAY,oBAGRA,EAAoB7K,EAAgBqF,eACvCnI,GAAe,CACnBiC,ETrLwB,ESsLxBuD,EAAS2C,EACTlB,EAAQkB,EAASA,EAAOlB,EAAStC,IACjC6B,GAAW,EACXU,GAAY,EACZ9D,OAAOiD,EACPlF,EAAO2B,EACPqE,EAAQuC,KACRpE,EAAS,IAAItC,IACbgD,GAAU,EACVsC,GAAW,GAELoB,KAhBR0C,EAAUuB,EA8GRzK,SA5FIoI,EAAIqC,EAASvL,iBAEnBjC,OAAOkK,eAAeiB,EAAG,OAAQ,CAChCjJ,IAAK,kBACGc,EAAOuG,KAAK1J,IAAc8M,QAKnCxB,EAAEpJ,IAAM,SAASnC,OACViC,EAAkB0H,KAAK1J,UAC7B2J,EAAgB3H,GAEXA,EAAMoB,IAGPpB,EAAMoB,EAAMlB,IAAInC,OAChBiC,EAAMsD,EAAQpD,IAAInC,KAAUiC,EAAMoB,EAAMlB,IAAIF,EAAMsD,EAAQjD,IAAItC,KAH1DiC,EAAMb,EAAMe,IAAInC,IAQzBuL,EAAE5I,IAAM,SAAS3C,OACViC,EAAkB0H,KAAK1J,UAC7B2J,EAAgB3H,GACX0H,KAAKxH,IAAInC,KACb2M,EAAe1K,GACfgG,EAAYhG,GACZA,EAAMoB,EAAOV,IAAI3C,IAEX2J,MAGR4B,EAAE7I,OAAS,SAAS1C,OACd2J,KAAKxH,IAAInC,UACN,MAGFiC,EAAkB0H,KAAK1J,UAC7B2J,EAAgB3H,GAChB0K,EAAe1K,GACfgG,EAAYhG,GAEXA,EAAMoB,EAAOX,OAAO1C,MACnBiC,EAAMsD,EAAQpD,IAAInC,IAChBiC,EAAMoB,EAAOX,OAAOT,EAAMsD,EAAQjD,IAAItC,KAK3CuL,EAAEnH,MAAQ,eACHnC,EAAkB0H,KAAK1J,GAC7B2J,EAAgB3H,GACZmB,EAAOnB,GAAO8K,OACjBJ,EAAe1K,GACfgG,EAAYhG,GACZA,EAAMoB,EAAOe,UAIfmH,EAAE6B,OAAS,eACJnL,EAAkB0H,KAAK1J,UAC7B2J,EAAgB3H,GAChB0K,EAAe1K,GACRA,EAAMoB,EAAO+J,UAGrB7B,EAAET,QAAU,eACL7I,EAAkB0H,KAAK1J,UAC7B2J,EAAgB3H,GAChB0K,EAAe1K,GACRA,EAAMoB,EAAOyH,WAGrBS,EAAE7J,KAAO,kBACDiI,KAAKyD,UAGb7B,EAAE+B,GAAkB,kBACZ3D,KAAKyD,UAGb7B,EAAE3J,QAAU,SAAiBoL,EAASC,WAC/BI,EAAW1D,KAAKyD,SAClBjH,EAASkH,EAASG,QACdrH,EAAOuH,MACdV,EAAGxM,KAAKyM,EAAS9G,EAAOnG,MAAOmG,EAAOnG,MAAO2J,MAC7CxD,EAASkH,EAASG,QAIbI,EA9GU,GA0IlBlJ,EAAW,SAAU,CAAC2D,WAtJetF,EAAWqF,UAExC,IAAI0E,EAAS/J,EAAQqF,IAoJIE,WAzBIvF,EAAWqF,UAExC,IAAIwF,EAAS7K,EAAQqF,eC5TdyF,IACfpE,IACA2C,IACAxB,aC2FekD,EAAa9N,UACrBA,WAQQ+N,EAAiB/N,UACzBA,QTlFJ8E,EUrBEkJ,EACa,oBAAXC,QAAiD,iBAAhBA,OAAO,KACnCjL,EAAwB,oBAARC,IAChBC,EAAwB,oBAARC,IAChB+K,EACK,oBAAVvF,YACoB,IAApBA,MAAMC,WACM,oBAAZuF,QAKKtH,EAAmBmH,EAC7BC,OAAOG,IAAI,yBACR,kBAAkB,KAUXpN,EAA2BgN,EACrCC,OAAOG,IAAI,mBACV,qBAESnO,EAA6B+N,EACvCC,OAAOG,IAAI,eACV,iBAGSd,EACM,oBAAVW,QAAyBA,OAAOZ,UAAc,advCjD9N,EAAS,GACX,kBACA,iDACA,mEACD8O,SAEA,uHACAA,KAGC,sHACA,sCACA,iEACA,oEACA,6FACA,+EACC,0CACA,8DACA,8DACA,gDACA,kFACDtH,SACK,6CAA+CA,MAEnD,kDACDsE,SACK,gCAAkCA,eAEvC7G,4BACwBA,oFAAyFA,gDAEhH,wFACDxC,+JAC2JA,mBAE3JA,4CACwCA,eAExCA,6CACyCA,MAExC,yFCHCpB,EAAmBR,UAAOiC,UAAU5B,YAyB7BkB,GACO,oBAAZwM,SAA2BA,QAAQxM,QACvCwM,QAAQxM,aACgC,IAAjCvB,OAAOkO,sBACd,SAAAhN,UACAlB,OAAOmO,oBAAoBjN,GAAKqG,OAC/BvH,OAAOkO,sBAAsBhN,KAEHlB,OAAOmO,oBAEzB7K,GACZtD,OAAOsD,2BACP,SAAmCX,OAE5B0E,EAAW,UACjB9F,GAAQoB,GAAQnB,SAAQ,SAAAC,GACvB4F,EAAI5F,GAAOzB,OAAO4H,yBAAyBjF,EAAQlB,MAE7C4F,GEhEHhD,GA4BF,GGuDSgE,GAAwC,CACpDnG,aAAIL,EAAOG,MACNA,IAASnC,EAAa,OAAOgC,MAE3B8F,EAAS3E,EAAOnB,OACjBE,EAAI4F,EAAQ3F,UAgInB,SAA2BH,EAAmB8F,EAAa3F,SACpDwB,EAAOkE,EAAuBC,EAAQ3F,UACrCwB,EACJ,UAAWA,EACVA,EAAK5D,gBAGL4D,EAAKtB,wBAALkM,EAAUhO,KAAKyB,EAAMmF,QACtBd,EAtIMmI,CAAkBxM,EAAO8F,EAAQ3F,OAEnCpC,EAAQ+H,EAAO3F,UACjBH,EAAMkF,IAAejH,EAAYF,GAC7BA,EAIJA,IAAU6H,EAAK5F,EAAMb,EAAOgB,IAC/B8F,EAAYjG,GACJA,EAAMoB,EAAOjB,GAAe+F,EACnClG,EAAMiF,EAAOtB,EACb5F,EACAiC,IAGKjC,GAERmC,aAAIF,EAAOG,UACHA,KAAQgB,EAAOnB,IAEvBN,iBAAQM,UACAkM,QAAQxM,QAAQyB,EAAOnB,KAE/BM,aACCN,EACAG,EACApC,OAEM4D,EAAOkE,EAAuB1E,EAAOnB,GAAQG,MAC/CwB,iBAAMrB,WAGTqB,EAAKrB,IAAI/B,KAAKyB,EAAMmF,EAAQpH,IACrB,MAEHiC,EAAMwE,EAAW,KAGfyC,EAAUrB,EAAKzE,EAAOnB,GAAQG,GAE9BsM,EAAiCxF,iBAAUjJ,MAC7CyO,GAAgBA,EAAatN,IAAUpB,SAC1CiC,EAAMoB,EAAOjB,GAAQpC,EACrBiC,EAAMyF,EAAUtF,IAAQ,GACjB,KAEJQ,EAAG5C,EAAOkJ,UAAuB5C,IAAVtG,GAAuBmC,EAAIF,EAAMb,EAAOgB,IAClE,OAAO,EACR8F,EAAYjG,GACZgG,EAAYhG,UAGTA,EAAMoB,EAAOjB,KAAUpC,GAA0B,iBAAVA,IAG3CiC,EAAMoB,EAAOjB,GAAQpC,EACrBiC,EAAMyF,EAAUtF,IAAQ,GACjB,IAERuM,wBAAe1M,EAAOG,eAEWkE,IAA5BuB,EAAK5F,EAAMb,EAAOgB,IAAuBA,KAAQH,EAAMb,GAC1Da,EAAMyF,EAAUtF,IAAQ,EACxB8F,EAAYjG,GACZgG,EAAYhG,WAGLA,EAAMyF,EAAUtF,GAGpBH,EAAMoB,UAAcpB,EAAMoB,EAAMjB,IAC7B,GAIR4F,kCAAyB/F,EAAOG,OACzBwM,EAAQxL,EAAOnB,GACf2B,EAAOuK,QAAQnG,yBAAyB4G,EAAOxM,UAChDwB,EACE,CACNC,UAAU,EACVC,aJpKgC,IIoKlB7B,EAAMC,GAA0C,WAATE,EACrD2B,WAAYH,EAAKG,WACjB/D,MAAO4O,EAAMxM,IALIwB,GAQnB0G,0BACCnL,EAAI,KAELkB,wBAAe4B,UACP7B,OAAOC,eAAe4B,EAAMb,IAEpCwL,0BACCzN,EAAI,MAQAuJ,GAA8C,GACpDrH,EAAKoH,IAAa,SAAC5G,EAAKgN,GAEvBnG,GAAW7G,GAAO,kBACjBiN,UAAU,GAAKA,UAAU,GAAG,GACrBD,EAAGpP,MAAMkK,KAAMmF,eAGxBpG,GAAWiG,eAAiB,SAAS1M,EAAOG,cACvCyC,EAAWkK,MAAMC,SAAS5M,KAAejD,EAAI,IAC1CsJ,GAAYkG,eAAgBnO,KAAKmJ,KAAM1H,EAAM,GAAIG,IAEzDsG,GAAWnG,IAAM,SAASN,EAAOG,EAAMpC,cAClC6E,EAAoB,WAATzC,GAAqB2M,MAAMC,SAAS5M,KAAejD,EAAI,IAC/DsJ,GAAYlG,IAAK/B,KAAKmJ,KAAM1H,EAAM,GAAIG,EAAMpC,EAAOiC,EAAM,SC7LpDgN,GAAb,sBAKaC,qBAJWhB,UAEA,eA4BH,SAAC3K,EAAW4L,EAAclK,MAEzB,mBAAT1B,GAAyC,mBAAX4L,EAAuB,KACzDC,EAAcD,EACpBA,EAAS5L,MAEH8L,EAAOlC,SACN,SAEN5J,6BAAO6L,8BACJ/P,0DAEIgQ,EAAKC,QAAQ/L,GAAM,SAACwC,kBAAmBoJ,GAAO3O,cAAK+M,EAAMxH,UAAU1G,YAQxE8G,KAJkB,mBAAXgJ,GAAuBhQ,EAAI,QAChBmH,IAAlBrB,GAAwD,mBAAlBA,GACzC9F,EAAI,GAKDe,EAAYqD,GAAO,KAChByB,EAAQU,EAAWyH,GACnBrE,EAAQX,EAAYgF,EAAM5J,OAAM+C,GAClCiJ,GAAW,MAEdpJ,EAASgJ,EAAOrG,GAChByG,GAAW,UAGPA,EAAUlK,EAAYL,GACrBM,EAAWN,SAEM,oBAAZwK,SAA2BrJ,aAAkBqJ,QAChDrJ,EAAOsJ,MACb,SAAAtJ,UACCpB,EAAkBC,EAAOC,GAClBiB,EAAcC,EAAQnB,MAE9B,SAAA5F,SACCiG,EAAYL,GACN5F,MAIT2F,EAAkBC,EAAOC,GAClBiB,EAAcC,EAAQnB,IACvB,IAAKzB,GAAwB,iBAATA,EAAmB,KAC7C4C,EAASgJ,EAAO5L,MACDsD,EAAS,mBACTP,IAAXH,IAAsBA,EAAS5C,GAC/B4J,EAAKvF,GAAa3D,EAAOkC,GAAQ,GAC9BA,EACDhH,EAAI,GAAIoE,4BAG0B,SACzCmM,EACAC,SAGoB,mBAATD,EACH,SAACzN,8BAAe5C,0DACtB8N,EAAKyC,mBAAmB3N,GAAO,SAAC8D,UAAe2J,gBAAK3J,UAAU1G,QAQzD,CAJW8N,EAAKmC,QAAQI,EAAMC,GAAM,SAACpE,EAAYsE,GACvD1E,EAAUI,EACVI,EAAiBkE,KAEC1E,EAAUQ,OALzBR,EAAkBQ,GA7FY,kBAAvBuD,iBAAQY,aAClBnG,KAAKoG,cAAcb,EAAQY,YACM,kBAAvBZ,iBAAQc,aAClBrG,KAAKsG,cAAcf,EAAQc,uCAkG7BE,YAAA,SAAiC3M,GAC3BrD,EAAYqD,IAAOpE,EAAI,GACxBY,EAAQwD,KAAOA,EAAO2F,EAAQ3F,QAC5ByB,EAAQU,EAAWiE,MACnBb,EAAQX,EAAYwB,KAAMpG,OAAM+C,UACtCwC,EAAM7I,GAAasI,GAAY,EAC/BjD,EAAWN,GACJ8D,KAGRqH,YAAA,SACCpK,EACAd,OAEMhD,EAAoB8D,GAAUA,EAAc9F,WAE5CgC,GAAUA,EAAMsG,GAAWpJ,EAAI,GAChC8C,EAAMkF,GAAYhI,EAAI,SAEZ6F,EAAS/C,EAAjBiF,SACPnC,EAAkBC,EAAOC,GAClBiB,OAAcI,EAAWtB,MAQjCiL,cAAA,SAAcjQ,QACR4H,EAAc5H,KASpB+P,cAAA,SAAc/P,GACTA,IAAUkO,GACb/O,EAAI,SAEAoH,EAAcvG,KAGpBoQ,aAAA,SAAa7M,EAAiB4H,OAGzBxH,MACCA,EAAIwH,EAAQxL,OAAS,EAAGgE,GAAK,EAAGA,IAAK,KACnCyH,EAAQD,EAAQxH,MACI,IAAtByH,EAAMrE,KAAKpH,QAA6B,YAAbyL,EAAMC,GAAkB,CACtD9H,EAAO6H,EAAMpL,iBAKTqQ,EAAmB/L,EAAU,WAAW4G,SAC1CnL,EAAQwD,GAEJ8M,EAAiB9M,EAAM4H,GAGxBxB,KAAK2F,QAAQ/L,GAAM,SAACwC,UAC1BsK,EAAiBtK,EAAOoF,EAAQ3H,MAAMG,EAAI,UA5K7C,GMZMgC,GAAQ,IAAIsJ,GAqBLK,GAAoB3J,GAAM2J,QAO1BM,GAA0CjK,GAAMiK,mBAAmBU,KAC/E3K,IAQYsK,GAAgBtK,GAAMsK,cAAcK,KAAK3K,IAQzCoK,GAAgBpK,GAAMoK,cAAcO,KAAK3K,IAOzCyK,GAAezK,GAAMyK,aAAaE,KAAK3K,IAMvCuK,GAAcvK,GAAMuK,YAAYI,KAAK3K,IAUrCwK,GAAcxK,GAAMwK,YAAYG,KAAK3K;;;;;;;;;;;;AE1FlD,CCAA,wDACA,iFCDe,SAAC,GAAD,SAAmB,IAAS,EAAM,SAAW,aAAiB,EAAM,uFC4B5E,SAAoB,GACzB,OAAI,aAAS,GACJ,GAGQ,EAAK,eAAiB,GAEvB,aAAe,EAAI,qCAjC9B,IAAI,OAAa,iBAExB,IAAI,OAAM,EAGH,SAAS,EAAM,GAGpB,eAAa,EAGb,IAAM,EAAK,EAAO,SAAS,eAAe,IAGtC,EAAG,gBAAkB,EAAO,UAAmC,mBAAhB,EAAO,MAAuB,EAAO,KAAK,KAAQ,IAEnG,EAAS,EAAO,KAAK,IAGvB,WAAM,aAGc,oBAAX,QAA4B,QACrC,EAAK,wTCpBP,IAIM,EAAS,SAAC,GAAD,QAAqD,GAA0B,WAAjB,EAAO,IAE9E,EAAO,SAAC,GAAD,MAAmE,mBAAV,KA2BvD,CACb,OAlCa,SAAC,GAAD,OAAiC,IAAU,EAAI,SAAU,aAAS,IAmC/E,QAjCc,SAAC,GAAD,OAA2C,EAAO,IAA6B,KAAnB,EAAM,UAkChF,SACA,OACA,OA9Ba,SAAC,GAAD,MAAkD,iBAAV,GA+BrD,KA7BW,SAAC,GAAD,MAAmD,kBAAV,GA8BpD,OA5Ba,SAAC,GAAD,MAAkD,iBAAV,GA6BrD,QA3Bc,SAAC,GACf,IAAK,GAA0B,WAAjB,EAAO,GACnB,OAAO,EAIT,IAAM,EAAU,EAAI,UAAU,IAAU,EAAI,OAE5C,MAAO,kBAAkB,KAAlB,EAA8B,EAAQ,UACzC,aAAiB,EAAQ,QACN,IAAnB,EAAM,UAA4C,iBAAnB,EAAM,UAkBzC,YAfiC,SAAC,GAAD,OACjC,EAAO,MAAY,EAAM,aAAe,oBAAoB,KAAK,EAAM,YAAY,aAenF,MAbY,SAAoB,GAApB,OACZ,EAAO,SAAkC,IAAjB,EAAM,QAA0B,EAAK,EAAM,+BCGrE,SAAS,EAAT,GAAsC,IAAf,EAAe,EAAf,YACrB,GAAkC,SAA9B,EAAY,SAAS,KAAzB,CAEA,IAAM,EAAO,EAAY,SAAS,KAErB,MAAT,GACF,EAAY,OAAO,IAAI,KAAK,EAAI,EAAY,OAAO,MAAM,KAAK,EAC9D,EAAY,OAAO,IAAI,OAAO,EAAI,EAAY,OAAO,MAAM,OAAO,EAElE,EAAY,OAAO,SAAS,OAAO,EAAI,EACvC,EAAY,OAAO,SAAS,KAAK,EAAI,GACnB,MAAT,IACT,EAAY,OAAO,IAAI,KAAK,EAAI,EAAY,OAAO,MAAM,KAAK,EAC9D,EAAY,OAAO,IAAI,OAAO,EAAI,EAAY,OAAO,MAAM,OAAO,EAElE,EAAY,OAAO,SAAS,OAAO,EAAI,EACvC,EAAY,OAAO,SAAS,KAAK,EAAI,IAIzC,SAAS,EAAT,GAAwC,IAAvB,EAAuB,EAAvB,OAAQ,EAAe,EAAf,YACvB,GAAkC,SAA9B,EAAY,SAAS,KAAzB,CAEA,IAAM,EAAO,EAAY,SAAS,KAElC,GAAa,MAAT,GAAyB,MAAT,EAAc,CAChC,IAAM,EAAoB,MAAT,EAAe,IAAM,IAEtC,EAAO,KAAK,GAAY,EAAY,OAAO,MAAM,KAAK,GACtD,EAAO,OAAO,GAAY,EAAY,OAAO,MAAM,OAAO,GAC1D,EAAO,MAAM,GAAY,sEA2C7B,IA4BM,EAAe,CACnB,GAAI,eACJ,QAlHF,SAAkB,GAAc,IACtB,EAAoC,EAApC,QAAS,EAA2B,EAA3B,aAAc,EAAa,EAAb,SAE/B,EAAa,UAAU,UAAY,EAAK,UAExC,EAAQ,IAAI,KAAO,EACnB,EAAQ,WAAW,KAAO,YAE1B,EAAS,QAAQ,KAAO,EAAK,UA2G7B,UAAW,CACT,kCAAmC,EACnC,6BAA8B,EAG9B,2BAA4B,EAC5B,mBAAoB,SAAC,GAAQ,IACnB,EAAuC,EAAvC,YAAa,EAA0B,EAA1B,aAAc,EAAY,EAAZ,QAC7B,EAAc,EAAa,QAAQ,KAEzC,GACI,GAAe,EAAY,WAE5B,EAAY,gBACX,gBAAgB,KAAK,EAAY,cACsB,IAAtD,EAAU,EAAa,QAAQ,KAAK,eAUzC,OALA,EAAI,OAAS,CACX,KAAM,OACN,KAA+B,UAAzB,EAAY,SAAuB,EAAY,UAAY,EAAY,WAGxE,IAGX,UA3DiC,SAEjC,GAEA,OAAI,UAAG,OAAO,IACZ,KAAK,QAAQ,KAAK,SAA8B,IAApB,EAAQ,QACpC,KAAK,aAAa,OAAQ,GAC1B,KAAK,YAAY,OAAQ,GAErB,mBAAmB,KAAK,EAAQ,YAClC,KAAK,QAAQ,KAAK,SAAW,EAAQ,UAEnC,aAAa,KAAK,EAAQ,aAC5B,KAAK,QAAQ,KAAK,UAAY,EAAQ,WAGjC,MAGL,UAAG,KAAK,IACV,KAAK,QAAQ,KAAK,QAAU,EAErB,MAGF,KAAK,QAAQ,MAmCpB,aACA,OACA,SAAU,CACR,UAAW,KACX,SAAU,MAGZ,UAvCmB,WAwCjB,MAAO,WAII,yFCxLf,IAAM,EAYF,CACF,KAiBF,SAAe,GACb,IAAM,EAAM,EAEZ,EAAW,SAAW,EAAI,SAC1B,EAAW,iBAAmB,EAAI,kBAAoB,EACtD,EAAW,WAAa,EAAI,YAAc,EAC1C,EAAW,cAAgB,EAAI,eAAiB,EAChD,EAAW,mBAAqB,EAAI,oBAAsB,EAC1D,EAAW,QAAU,EAAI,SAAW,EACpC,EAAW,YAAc,EAAI,aAAe,EAAW,QAEvD,EAAW,MAAQ,EAAI,MACvB,EAAW,MAAQ,EAAI,OAAS,EAChC,EAAW,aAAe,EAAI,cAAgB,EAAI,gBA7BlD,SAAU,KACV,iBAAkB,KAClB,WAAY,KACZ,cAAe,KACf,mBAAoB,KACpB,QAAS,KACT,YAAa,KACb,MAAO,KACP,MAAO,KACP,aAAc,MAGhB,SAAS,WAEM,yFCzBf,IAAM,EAAU,CACd,KAmBF,SAAe,GACb,IAAM,EAAU,UAAW,QACrB,EAAgC,EAAO,WAAa,GAG1D,EAAQ,cACN,iBAAkB,GACjB,UAAG,KAAK,EAAO,gBAAkB,UAAW,oBAAoB,EAAO,cAG1E,EAAQ,sBAAoD,IAA7B,EAAU,kBAA8B,UAAW,aAElF,EAAQ,MAAQ,iBAAiB,KAAK,EAAU,UAGhD,EAAQ,OAAS,iBAAiB,KAAK,EAAU,WAAa,YAAY,KAAK,EAAU,YAEzF,EAAQ,MAAQ,SAAS,KAAK,EAAU,WAGxC,EAAQ,cACgB,UAAtB,EAAU,SAAuB,EAAQ,eAAiB,SAAS,KAAK,EAAU,WAGpF,EAAQ,wBAA2B,YAAa,EAAQ,UACpD,UACA,0BAA2B,EAAQ,UACjC,wBACA,uBAAwB,EAAQ,UAC9B,qBACA,qBAAsB,EAAQ,UAC5B,mBACA,oBAEV,EAAQ,YAAc,EAAQ,qBAC1B,UAAW,eAAiB,EAAO,eACjC,CACA,GAAI,cACJ,KAAM,gBACN,KAAM,YACN,IAAK,WACL,KAAM,gBACN,OAAQ,mBAER,CACA,GAAI,YACJ,KAAM,cACN,KAAM,cACN,IAAK,aACL,KAAM,cACN,OAAQ,iBAEV,KAGJ,EAAQ,WAAa,UAAW,UAAY,iBAAkB,UAAW,SAAW,aAAe,SAzEnG,cAAe,KACf,qBAAsB,KACtB,OAAQ,KACR,MAAO,KACP,MAAO,KACP,cAAe,KACf,wBAAyB,KACzB,YAAa,KAQb,WAAY,QA6DC,uBC9CR,SAAS,EAAY,GAC1B,IAAI,EAAS,EAAK,WAElB,GAAI,UAAG,QAAQ,GAAS,CAGtB,MAAQ,EAAU,EAAe,OAAS,UAAG,QAAQ,KAIrD,OAAO,EAGT,OAAO,EAGF,SAAS,EAAiB,EAAkB,GAMjD,OAJI,EAAI,SAAW,EAAI,aACrB,EAAW,EAAS,QAAQ,YAAa,MAGpC,EAAQ,UAAQ,yBAAyB,mEAlD3C,SAAuB,EAAc,GAC1C,GAAI,EAAO,SACT,OAAO,EAAO,SAAS,GAGzB,KAAO,GAAO,CACZ,GAAI,IAAU,EACZ,OAAO,EAGT,EAAS,EAAe,WAG1B,OAAO,aAGF,SAAkB,EAAe,GACtC,KAAO,UAAG,QAAQ,IAAU,CAC1B,GAAI,EAAgB,EAAS,GAC3B,OAAO,EAGT,EAAU,EAAW,GAGvB,OAAO,iEA+BF,SAAgC,GAIrC,IAHA,IACI,EADA,EAA6B,GAGxB,EAAI,EAAG,EAAI,EAAS,OAAQ,IAAK,CACxC,IAAM,EAAc,EAAS,GACvB,EAAoB,EAAS,GAGnC,GAAK,GAAe,IAAM,EAI1B,GAAK,EAAL,CAKA,IAAM,EAAoB,EAAU,GAC9B,EAAoB,EAAU,GAIpC,GAAI,IAAsB,EAAY,cAIjC,GAAI,IAAsB,EAAY,cAM3C,GAAI,IAAsB,EAA1B,CASA,EAAqB,EAAmB,OAAS,EAAqB,EAAe,GAErF,IAAI,OAAmB,EAGvB,GACE,aAAuB,UAAW,aAClC,aAAuB,UAAW,cAChC,aAAuB,UAAW,eACpC,CAEA,GAAI,IAAgB,EAClB,SAGF,EAAgB,EAAY,qBAE5B,EAAgB,EAOlB,IAJA,IAAM,EAAqB,EAAe,EAAe,EAAY,eACjE,EAAc,EAIhB,EAAmB,IACnB,EAAmB,KAAiB,EAAmB,IAEvD,IAGF,IAAM,EAAU,CACd,EAAmB,EAAc,GACjC,EAAmB,GACnB,EAAmB,IAGrB,GAAI,EAAQ,GAGV,IAFA,IAAI,EAAQ,EAAQ,GAAG,UAEhB,GAAO,CACZ,GAAI,IAAU,EAAQ,GAAI,CACxB,EAAmB,EACnB,EAAqB,EAErB,MACK,GAAI,IAAU,EAAQ,GAC3B,MAGF,EAAQ,EAAM,sBAqBO,EA/EA,EA+EkB,EA/EL,OAgFlC,OACA,GADc,SAAS,EAAI,UAAU,GAAY,iBAAiB,GAAY,OAAQ,KAAO,KAChF,SAAS,EAAI,UAAU,GAAW,iBAAiB,GAAW,OAAQ,KAAO,KAhF1F,EAAmB,QAPrB,EAAmB,OAdnB,EAAmB,EAmGzB,IAA6B,EAAkB,EAhB7C,OAAO,iBAuBF,SAAsB,EAAkB,EAAkB,GAC/D,KAAO,UAAG,QAAQ,IAAU,CAC1B,GAAI,EAAgB,EAAS,GAC3B,OAAO,EAKT,IAFA,EAAU,EAAW,MAEL,EACd,OAAO,EAAgB,EAAS,GAIpC,OAAO,sBAGF,SAA2B,GAChC,OAAQ,EAAuB,yBAA2B,6DA2BrD,SAAyB,GAC9B,IAAM,EAAa,EAAqB,GAExC,IAAK,UAAQ,QAAU,EAAY,CACjC,IAAM,EAAS,EAAY,EAAI,UAAU,IAEzC,EAAW,MAAQ,EAAO,EAC1B,EAAW,OAAS,EAAO,EAC3B,EAAW,KAAO,EAAO,EACzB,EAAW,QAAU,EAAO,EAG9B,OAAO,aAGF,SAAkB,GAGvB,IAFA,IAAM,EAAO,GAEN,GACL,EAAK,KAAK,GACV,EAAO,EAAW,GAGpB,OAAO,iBAGF,SAAsB,GAC3B,QAAK,UAAG,OAAO,KAKf,UAAW,SAAS,cAAc,IAC3B,IAxMT,IAAM,EAAY,SAAC,GAAD,OAAsC,EAAG,YAAe,EAAkB,MAuG5F,SAAS,EAAgB,EAAY,GAKnC,IAJA,IAEI,EAFE,EAAkB,GACpB,EAAe,GAGX,EAAe,EAAU,KAAY,IAAW,GAAS,IAAiB,EAAO,eACvF,EAAQ,QAAQ,GAChB,EAAS,EAGX,OAAO,EA8BF,SAAS,EAAa,GAE3B,MAAO,CACL,GAFF,EAAiB,GAAkB,EAAI,QAEnB,SAAW,EAAe,SAAS,gBAAgB,WACrE,EAAG,EAAe,SAAW,EAAe,SAAS,gBAAgB,WAIlE,SAAS,EAAsB,GACpC,IAAM,EACJ,aAAmB,UAAW,WAAa,EAAQ,wBAA0B,EAAQ,iBAAiB,GAExG,OACE,GAAc,CACZ,KAAM,EAAW,KACjB,MAAO,EAAW,MAClB,IAAK,EAAW,IAChB,OAAQ,EAAW,OACnB,MAAO,EAAW,OAAS,EAAW,MAAQ,EAAW,KACzD,OAAQ,EAAW,QAAU,EAAW,OAAS,EAAW,yEC9NnD,SAAsC,EAAsB,GACzE,IAAK,IAAM,KAAQ,EACd,EAAuB,GAAQ,EAAO,GAK3C,OAFY,kHCSP,SAAS,EAAuB,EAAY,EAAoB,GACrE,MAAc,WAAV,GACK,gBAAW,GAGN,SAAV,EACK,EAAO,QAAQ,IAGjB,aAAQ,EAAS,gGAGnB,SACL,EACA,EACA,EACA,GAEA,MAAI,EAAmB,EAWvB,OAVI,UAAG,OAAO,GACZ,EAAc,EAAsB,EAAa,EAAQ,GAChD,UAAG,KAAK,KACjB,EAAc,EAAW,WAAX,iDAAe,mjBAG3B,UAAG,QAAQ,KACb,GAAc,oBAAe,IAGxB,cAGF,SAAmB,GACxB,OACE,GAAQ,CACN,EAAG,MAAO,EAAO,EAAK,EAAI,EAAK,KAC/B,EAAG,MAAO,EAAO,EAAK,EAAI,EAAK,mBAK9B,SAAsD,GAU3D,OATI,GAAU,SAAU,GAAQ,QAAS,KACvC,GAAO,aAAO,GAAI,IAEb,KAAO,EAAK,GAAK,EACtB,EAAK,IAAM,EAAK,GAAK,EACrB,EAAK,MAAQ,EAAK,OAAS,EAAK,KAAO,EAAK,MAC5C,EAAK,OAAS,EAAK,QAAU,EAAK,IAAM,EAAK,QAGxC,gBAGF,SAAqB,GAU1B,OATI,GAAU,MAAO,GAAQ,MAAO,KAClC,GAAO,aAAO,GAAI,IAEb,EAAI,EAAK,MAAQ,EACtB,EAAK,EAAI,EAAK,KAAO,EACrB,EAAK,MAAQ,EAAK,QAAU,EAAK,OAAS,GAAK,EAAK,EACpD,EAAK,OAAS,EAAK,SAAW,EAAK,QAAU,GAAK,EAAK,GAGlD,cAGF,SAAmB,EAAoB,EAAY,GACpD,EAAM,OACR,EAAK,MAAQ,EAAM,GAEjB,EAAM,QACR,EAAK,OAAS,EAAM,GAElB,EAAM,MACR,EAAK,KAAO,EAAM,GAEhB,EAAM,SACR,EAAK,QAAU,EAAM,GAGvB,EAAK,MAAQ,EAAK,MAAQ,EAAK,KAC/B,EAAK,OAAS,EAAK,OAAS,EAAK,yEC1FpB,SACb,EACA,EACA,GAEA,IAAM,EAAiB,EAAO,QAAgB,GAExC,EADe,GAAiB,EAAc,QACrB,EAAO,QAAQ,OAExC,GAAa,qBAAgB,EAAQ,EAAQ,EAAS,CAAC,GAAU,IAEvE,OAAO,cAAS,IAAe,CAAE,EAAG,EAAG,EAAG,aC+B5C,SAAS,EAAO,GACd,OAAO,EAAK,OAAO,MAAM,iEAxCZ,SAAS,EACtB,EACA,EACA,GAQA,GANA,EAAS,GAAU,GAEf,UAAG,OAAO,KAA+B,IAAtB,EAAK,OAAO,OACjC,EAAO,EAAM,IAGX,UAAG,MAAM,GACX,OAAO,EAAK,QAA4B,SAAC,EAAK,GAAN,OAAY,aAAO,EAAK,EAAU,EAAG,EAAW,MAAU,GASpG,GALI,UAAG,OAAO,KACZ,EAAY,EACZ,EAAO,IAGL,UAAG,KAAK,GACV,EAAO,GAAQ,EAAO,IAAS,GAC/B,EAAO,GAAM,KAAK,QACb,GAAI,UAAG,MAAM,GAClB,cAAgB,EAAhB,WAA2B,SAAX,EAAW,GACzB,EAAU,EADe,EACN,QAEhB,GAAI,UAAG,OAAO,GACnB,IAAK,IAAM,KAAU,EAAW,CAC9B,IAAM,EAAgB,EAAM,GAAQ,KAAI,SAAC,GAAD,gBAAU,GAAV,OAAiB,MAEzD,EAAU,EAAe,EAAU,GAAS,GAIhD,OAAO,wFC7CM,SAAC,EAAW,GAAZ,OAA0B,KAAK,KAAK,EAAI,EAAI,EAAI,aCA/D,SAAS,EAAkB,EAAkB,GAC3C,IAAK,IAAM,KAAQ,EAAQ,CACzB,IAAM,EAAkB,EAAc,gBAClC,GAAa,EAGjB,IAAK,IAAM,KAAU,EACnB,GAA6B,IAAzB,EAAK,QAAQ,IAAiB,EAAgB,GAAQ,KAAK,GAAO,CACpE,GAAa,EACb,MAIC,GAAsC,mBAAjB,EAAO,KAC/B,EAAK,GAAQ,EAAO,IAGxB,OAAO,oEAGT,EAAc,gBAAkB,CAC9B,OAAQ,iDACR,IAAK,qBAGQ,uBCsBR,SAAS,EAAiB,GAC/B,OAAO,aAAmB,UAAI,OAAS,aAAmB,UAAI,MAIzD,SAAS,EAAO,EAAc,EAAsC,GAOzE,OALA,EAAO,GAAQ,QADf,EAAK,GAAO,IAGT,EAAI,EAAS,EAAO,KACvB,EAAG,EAAI,EAAS,EAAO,KAEhB,EAGF,SAAS,EAAW,EAAsC,GAa/D,OAZA,EAAO,GAAQ,CAAE,EAAG,EAAG,EAAG,GAGtB,UAAQ,eAAiB,EAAgB,IAC3C,EAAM,SAAU,EAAS,GAEzB,EAAK,GAAK,OAAO,QACjB,EAAK,GAAK,OAAO,SAEjB,EAAM,OAAQ,EAAS,GAGlB,EAGF,SAAS,EAAa,EAAsB,GAUjD,OATA,EAAS,GAAW,GAEhB,UAAQ,eAAiB,EAAgB,GAE3C,EAAM,SAAU,EAAS,GAEzB,EAAM,SAAU,EAAS,GAGpB,EAgBF,SAAS,EAAc,GAC5B,IAAM,EAAyB,GAuB/B,OApBI,UAAG,MAAM,IACX,EAAQ,GAAK,EAAM,GACnB,EAAQ,GAAK,EAAM,IAIA,aAAf,EAAM,KACqB,IAAzB,EAAM,QAAQ,QAChB,EAAQ,GAAK,EAAM,QAAQ,GAC3B,EAAQ,GAAK,EAAM,eAAe,IACA,IAAzB,EAAM,QAAQ,SACvB,EAAQ,GAAK,EAAM,eAAe,GAClC,EAAQ,GAAK,EAAM,eAAe,KAGpC,EAAQ,GAAK,EAAM,QAAQ,GAC3B,EAAQ,GAAK,EAAM,QAAQ,IAIxB,EAGF,SAAS,EAAgB,GAY9B,IAXA,IAAM,EAAU,CACd,MAAO,EACP,MAAO,EACP,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,GAKX,MAAsB,EAAtB,WAAgC,KAArB,EAAW,EAAU,GAC9B,IAAK,IAAM,KAAQ,EACjB,EAAQ,IAAsB,EAAQ,GAG1C,IAAK,IAAM,KAAQ,EACjB,EAAQ,IAAsB,EAAS,OAGzC,OAAO,gEA9IF,SAAqB,EAAuB,GACjD,EAAK,KAAO,EAAK,MAAS,GAC1B,EAAK,KAAK,EAAI,EAAI,KAAK,EACvB,EAAK,KAAK,EAAI,EAAI,KAAK,EAEvB,EAAK,OAAS,EAAK,QAAW,GAC9B,EAAK,OAAO,EAAI,EAAI,OAAO,EAC3B,EAAK,OAAO,EAAI,EAAI,OAAO,EAE3B,EAAK,UAAY,EAAI,4BAGhB,SAAyB,EAA4B,EAAuB,GACjF,EAAU,KAAK,EAAI,EAAI,KAAK,EAAI,EAAK,KAAK,EAC1C,EAAU,KAAK,EAAI,EAAI,KAAK,EAAI,EAAK,KAAK,EAC1C,EAAU,OAAO,EAAI,EAAI,OAAO,EAAI,EAAK,OAAO,EAChD,EAAU,OAAO,EAAI,EAAI,OAAO,EAAI,EAAK,OAAO,EAChD,EAAU,UAAY,EAAI,UAAY,EAAK,8BAGtC,SAA2B,EAA4B,GAC5D,IAAM,EAAK,KAAK,IAAI,EAAM,UAAY,IAAM,MAE5C,EAAU,KAAK,EAAI,EAAM,KAAK,EAAI,EAClC,EAAU,KAAK,EAAI,EAAM,KAAK,EAAI,EAClC,EAAU,OAAO,EAAI,EAAM,OAAO,EAAI,EACtC,EAAU,OAAO,EAAI,EAAM,OAAO,EAAI,EACtC,EAAU,UAAY,mBAGjB,SAAwB,GAC7B,EAAU,KAAK,EAAI,EACnB,EAAU,KAAK,EAAI,EACnB,EAAU,OAAO,EAAI,EACrB,EAAU,OAAO,EAAI,8EA+ChB,SAAuB,GAC5B,OAAO,UAAG,OAAO,EAAQ,WAAa,EAAQ,UAAa,EAAQ,wBAG9D,SAAoB,EAAuB,EAAiB,GACjE,IAAM,EAAU,EAAS,OAAS,EAAI,EAAe,GAAY,EAAS,GAE1E,EAAU,EAAS,EAAK,MACxB,EAAY,EAAS,EAAK,QAE1B,EAAK,UAAY,mDAsDZ,SAAoB,GACzB,IAAK,EAAM,OACT,OAAO,KAGT,IAAM,EAAU,EAAa,GACvB,EAAO,KAAK,IAAI,EAAQ,GAAG,MAAO,EAAQ,GAAG,OAC7C,EAAO,KAAK,IAAI,EAAQ,GAAG,MAAO,EAAQ,GAAG,OAC7C,EAAO,KAAK,IAAI,EAAQ,GAAG,MAAO,EAAQ,GAAG,OAC7C,EAAO,KAAK,IAAI,EAAQ,GAAG,MAAO,EAAQ,GAAG,OAEnD,MAAO,CACL,EAAG,EACH,EAAG,EACH,KAAM,EACN,IAAK,EACL,MAAO,EACP,OAAQ,EACR,MAAO,EAAO,EACd,OAAQ,EAAO,oBAIZ,SAAwB,EAAmC,GAChE,IAAM,EAAW,EAAc,IACzB,EAAW,EAAc,IACzB,EAAU,EAAa,GAEvB,EAAK,EAAQ,GAAG,GAAW,EAAQ,GAAG,GACtC,EAAK,EAAQ,GAAG,GAAW,EAAQ,GAAG,GAE5C,OAAO,aAAM,EAAI,iBAGZ,SAAqB,EAAmC,GAC7D,IAAM,EAAW,EAAc,IACzB,EAAW,EAAc,IACzB,EAAU,EAAa,GACvB,EAAK,EAAQ,GAAG,GAAW,EAAQ,GAAG,GACtC,EAAK,EAAQ,GAAG,GAAW,EAAQ,GAAG,GAG5C,OAFe,IAAM,KAAK,MAAM,EAAI,GAAO,KAAK,qBAK3C,SAAyB,GAC9B,OAAO,UAAG,OAAO,EAAQ,aACrB,EAAQ,YACR,UAAG,OAAO,EAAQ,aAChB,MAAC,OAAW,EAAW,QAAS,MAAO,SAAS,EAAQ,aAG1D,QAAQ,KAAK,EAAQ,MAAQ,KAAO,aAAmB,UAAI,MACvD,QACA,2BAIH,SAA0B,GAC/B,IAAM,EAAO,UAAG,KAAK,EAAM,cACtB,EAAM,eACL,EAA0C,KAEhD,MAAO,CACL,EAAS,iBAAiB,EAAO,EAAK,GAAM,EAAM,QAClD,EAAS,iBAAiB,EAAM,6BAI7B,WACL,MAAO,CACL,KAAM,CAAE,EAAG,EAAG,EAAG,GACjB,OAAQ,CAAE,EAAG,EAAG,EAAG,GACnB,UAAW,oBAIR,SAAwB,GA0C7B,MAzCc,CACZ,SACA,WACE,OAAO,KAAK,OAAO,MAErB,aACE,OAAO,KAAK,OAAO,QAErB,gBACE,OAAO,KAAK,OAAO,WAErB,YACE,OAAO,KAAK,OAAO,KAAK,GAE1B,YACE,OAAO,KAAK,OAAO,KAAK,GAE1B,cACE,OAAO,KAAK,OAAO,OAAO,GAE5B,cACE,OAAO,KAAK,OAAO,OAAO,GAE5B,gBACE,OAAO,KAAK,OAAO,WAErB,aACE,OAAO,KAAK,OAAO,QAErB,WACE,OAAO,KAAK,OAAO,MAErB,kBACE,OAAO,KAAK,OAAO,aAErB,cACE,OAAO,KAAK,OAAO,SAErB,eAtCY,wdCrOH,aAUX,WAAa,gGAA6B,mNAHZ,GAGY,6BAFrB,GAGnB,KAAK,aAAe,qDAGtB,2CAKA,WACE,KAAK,oBAAqB,0CAM5B,WACE,KAAK,4BAA8B,KAAK,oBAAqB,0BA3BpD,iBAuCb,OAAO,eAAe,EAAU,UAAW,cAAe,CACxD,IADwD,WAEtD,OAAO,KAAK,aAAa,QAE3B,IAJwD,iJCzClC,SAAI,EAAY,GAAhB,OAAyD,IAA3B,EAAM,QAAQ,aAE9C,SAAI,EAAY,GAAhB,OAA8B,EAAM,OAAO,EAAM,QAAQ,GAAS,IAEjF,IAAM,EAAQ,SAAO,EAAsB,GAChD,cAAmB,EAAnB,WAA2B,KAAhB,EAAQ,EAAQ,GACzB,EAAO,KAAK,GAGd,OAAO,oBAGW,SAAU,GAAV,OAAmC,EAAM,GAAW,IAEjE,IAAM,EAAY,SAAI,EAAY,GACvC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAChC,GAAI,EAAK,EAAM,GAAI,EAAG,GACpB,OAAO,EAIX,OAAQ,wBAGU,SAAU,EAAY,GAAtB,OAA0C,EAAM,EAAU,EAAO,ugCClBxE,8pBAaX,WAAa,EAAsB,EAAkC,GAAc,kHACjF,cAAM,EAAU,eADiE,oMAN9D,GAM8D,wCALrD,GAKqD,MAG1C,cAAT,EAAuB,EAAU,KAAO,EAAU,IAAxE,EAHyE,EAGzE,QAAS,EAHgE,EAGhE,SAHgE,OAKjF,EAAK,KAAO,EACZ,EAAK,OAAS,EACd,EAAK,cAAgB,EACrB,EAAK,SAAW,EAChB,EAAK,UAAY,EACjB,EAAK,cAAgB,EAAU,OAC/B,EAAK,UAAY,EAAU,aAC3B,EAAK,UAAY,EAAU,UAZsD,qCAsBnF,WAAU,WACA,EAAc,KAAK,aAAnB,UAER,GACgB,iBAAd,KAAK,MACH,KAAK,UAAY,EAAU,IAAI,WAAa,KAAK,UAAY,EAAU,IAAI,UAAY,KAAK,OAahG,GARA,EAAU,KAAK,SAAW,KAAK,SAC/B,EAAU,KAAK,QAAU,KAAK,OAE9B,EAAU,UAAW,EACrB,EAAU,OAAO,MAAQ,KAEzB,KAAK,2BAEa,iBAAd,KAAK,KAAyB,CAChC,IAAM,EAAc,EAAU,YACxB,EAAQ,EAAI,UAChB,GACA,gBAAG,EAAH,EAAG,SAAU,EAAb,EAAa,QAAb,OAA2B,IAAa,EAAK,UAAY,IAAY,EAAK,UAG5E,EAAU,YAAY,OAAO,EAAO,GAEpC,IAAM,EAAkB,IAAI,EAAU,EAAW,KAAK,UAAW,kBAEjE,EAAgB,SAAW,KAAK,SAChC,EAAgB,OAAS,KAAK,OAE9B,KAAK,SAAS,KAAK,QAEnB,KAAK,SAAS,KAAK,IAAI,EAAU,EAAW,KAAK,UAAW,4CAIhE,2CAEA,WACE,KAAK,oBAAqB,0CAG5B,WACE,KAAK,4BAA8B,KAAK,oBAAqB,2BAhFpD,CAAkB,uCCsQ/B,SAAS,GAAsB,EAA2B,GAExD,cAAoC,EAAY,QAAhD,WAAyD,OAArB,EAAY,QAAS,GAA5C,EAA4C,EAA5C,SAAU,EAAkC,EAAlC,QACrB,EAAM,SAAW,EAGjB,EAAM,OAAS,EACf,EAAS,KAAK,GACd,EAAM,mBAAqB,EAAM,6BAA8B,GAOnE,SAAS,GAAgB,EAAc,GAIrC,IAFA,IAAM,EA1DR,WAAiD,GAI/C,IAJ0E,IAAnD,EAAmD,EAAnD,cACjB,EAAsB,GAG5B,MAAuB,EAAc,KAArC,WAA2C,KAAhC,EAAY,EAAc,KAAM,GACzC,GAAK,EAAS,QAAQ,KAAK,QAA3B,CAIA,IAAM,EAAS,EAAS,QAAQ,KAAK,OAGrC,KACG,UAAG,QAAQ,IAAW,IAAW,GACjC,UAAG,OAAO,KAAY,EAAS,gBAAgB,EAAkB,IACjE,UAAG,KAAK,KAAY,EAAO,CAAE,WAAU,sBAY1C,IANA,IAAM,EAAgB,UAAG,OAAO,EAAS,QACrC,EAAS,SAAS,iBAAiB,EAAS,QAC5C,UAAG,MAAM,EAAS,QAChB,EAAS,OACT,CAAC,EAAS,QAEhB,MAA8B,EAA9B,WAA4C,KAAjC,EAAmB,EAAc,GACtC,IAAoB,GACtB,EAAM,KAAK,CACT,WACA,QAAS,EACT,KAAM,EAAS,QAAQ,OAM/B,OAAO,EAoBa,CAAa,EAAO,GAExC,MAAyB,EAAzB,WAAsC,KAA3B,EAAc,EAAa,GACpC,EAAW,KAAO,EAAW,SAAS,QAAQ,EAAW,SAG3D,OAAO,EAGT,SAAS,GAAT,EAEE,EACA,GAKA,IAJA,IAHE,EAGF,EAHE,UAAyB,EAG3B,EAHa,aAAkC,EAG/C,EAHsC,QAIhC,EAAa,GAGnB,MAA2D,EAAU,YAArE,WAAkF,OAAvB,EAAU,YAAa,GAArE,EAAqE,EAArE,SAAmB,EAAkD,EAA3D,QAA0B,EAAiC,EAAjC,KAC/C,EAAW,KACT,EAAS,UAAU,EAAW,EAAc,EAAW,EAAa,EAAiB,GACjF,EACA,MAKR,IAAM,EAAY,EAAS,sBAAsB,GAEjD,OAAO,EAAU,YAAY,IAAc,KAG7C,SAAS,GAAe,EAA0B,EAAe,GAAsB,IAC7E,EAAc,EAAd,UACF,EAAa,CACjB,MAAO,KACP,MAAO,KACP,SAAU,KACV,WAAY,KACZ,KAAM,KACN,KAAM,MAgBR,MAbuB,cAAnB,EAAU,OACZ,EAAW,SAAW,IAAI,aAAU,EAAW,EAAW,gBAE1D,EAAW,SAAS,OAAS,KAC7B,EAAW,SAAS,SAAW,MAEV,YAAnB,EAAU,OACZ,EAAW,WAAa,IAAI,aAAU,EAAW,EAAW,kBAE5D,EAAW,WAAW,OAAS,KAC/B,EAAW,WAAW,SAAW,MAG/B,EAAU,WAIV,EAAU,IAAI,UAAY,EAAU,KAAK,UAEvC,EAAU,KAAK,WACjB,EAAW,MAAQ,IAAI,aAAU,EAAW,EAAW,aAEvD,EAAU,UAAY,EAAW,MAAM,OAAS,EAAU,KAAK,QAC/D,EAAU,aAAe,EAAW,MAAM,SAAW,EAAU,KAAK,UAGlE,EAAU,IAAI,WAChB,EAAW,MAAQ,IAAI,aAAU,EAAW,EAAW,aAEvD,EAAU,UAAY,EAAU,IAAI,QACpC,EAAU,SAAW,EAAU,IAAI,WAIhB,YAAnB,EAAU,MAAsB,EAAU,IAAI,WAChD,EAAW,KAAO,IAAI,aAAU,EAAW,EAAW,QAEtD,EAAU,SAAW,EAAU,IAAI,SACnC,EAAU,cAAgB,EAAU,IAAI,SAEnB,aAAnB,EAAU,MAAuB,EAAU,IAAI,WACjD,EAAW,KAAO,IAAI,aAAU,EAAW,EAAW,YAEtD,EAAW,KAAK,SAAW,EAC3B,EAAU,SAAW,EAAU,IAAI,WA9B5B,EAwCX,SAAS,GAAgB,EAA0B,GAAyB,IAClE,EAAc,EAAd,UACA,EAA2B,EAA3B,YAAa,EAAc,EAAd,IAAK,EAAS,EAAT,KAEtB,EAAO,OACT,EAAK,SAAS,KAAK,EAAO,OAExB,EAAO,OACT,EAAI,SAAS,KAAK,EAAO,OAEvB,EAAO,MACT,EAAI,SAAS,KAAK,EAAO,MAEvB,EAAO,MACT,EAAI,SAAS,KAAK,EAAO,MAGvB,EAAO,YACT,GAAqB,EAAa,EAAO,YAG3C,EAAU,KAAK,SAAW,EAAI,SAC9B,EAAU,KAAK,QAAU,EAAI,QAG/B,SAAS,GAAT,EAAyF,GAAc,IAA5E,EAA4E,EAA5E,YAAa,EAA+D,EAA/D,OAAQ,EAAuD,EAAvD,MAC9C,GAAoB,aAAhB,EAAO,MAAuC,YAAhB,EAAO,KAAzC,CADqG,IAK7F,EAAc,EAAd,UAEJ,EAAM,cACR,EAAU,YAAc,GAAe,EAAO,EAAY,UAG5D,IAAM,EAAY,EACZ,EAAa,GAAQ,EAAa,EAAW,GAGnD,EAAU,SACR,EAAU,YACR,GACF,EAAW,WAAa,EAAU,IAAI,UACtC,EAAW,UAAY,EAAU,IAAI,QAEvC,EAAU,IAAI,SAAW,GAAc,EAAW,SAClD,EAAU,IAAI,QAAU,GAAc,EAAW,QAEjD,EAAU,OAAS,GAAc,EAAa,EAAO,wEAoJvD,IAAM,GAAe,CACnB,GAAI,eACJ,QAxdF,SAAkB,GAAc,IAE5B,EAME,EANF,QAEgB,EAId,EAJF,eAEA,EAEE,EAFF,aACA,EACE,EADF,SAGF,EAAM,UAAU,WA0ChB,EAAa,UAAU,SAAW,SAA8B,GAC9D,OAkRJ,SAAyB,EAA4B,GACnD,GAAI,UAAG,OAAO,GAAU,CAGtB,GAFA,EAAa,QAAQ,KAAK,SAA8B,IAApB,EAAQ,QAExC,EAAQ,UAAW,CACrB,IAAM,GAAa,aAAmB,EAAQ,WAExC,EAAY,OAAO,KAAK,GAAY,QAAO,SAAC,EAAK,GASrD,OAFA,EANsB,iBAAiB,KAAK,GAAtB,cACX,GACP,8BAA8B,KAAK,GAAnC,cACS,GACP,GAEe,EAAW,GAEzB,IACN,IAEH,EAAa,IAAI,EAAa,QAAQ,KAAK,WAC3C,EAAa,GAAG,GAChB,EAAa,QAAQ,KAAK,UAAY,EAkCxC,OA/BI,UAAG,KAAK,EAAQ,SAClB,EAAa,GAAG,OAAQ,EAAQ,QAE9B,UAAG,KAAK,EAAQ,iBAClB,EAAa,GAAG,eAAgB,EAAQ,gBAEtC,UAAG,KAAK,EAAQ,mBAClB,EAAa,GAAG,iBAAkB,EAAQ,kBAExC,UAAG,KAAK,EAAQ,cAClB,EAAa,GAAG,YAAa,EAAQ,aAEnC,UAAG,KAAK,EAAQ,cAClB,EAAa,GAAG,YAAa,EAAQ,aAEnC,UAAG,KAAK,EAAQ,aAClB,EAAa,GAAG,WAAY,EAAQ,YAGlC,qBAAqB,KAAK,EAAQ,SACpC,EAAa,QAAQ,KAAK,QAAU,EAAQ,QACnC,UAAG,OAAO,EAAQ,WAC3B,EAAa,QAAQ,KAAK,QAAU,KAAK,IAAI,KAAK,IAAI,EAAG,EAAQ,SAAU,IAEzE,WAAY,IACd,EAAa,QAAQ,KAAK,OAAS,EAAQ,QAEzC,YAAa,IACf,EAAa,QAAQ,KAAK,QAAU,EAAQ,SAGvC,EAGT,OAAI,UAAG,KAAK,IACV,EAAa,QAAQ,KAAK,QAAU,EAE7B,GAGF,EAAa,QAAQ,KAlVnB,CAAe,KAAM,IAkB9B,EAAa,UAAU,UAAY,SAEjC,EACA,EACA,EACA,EACA,EACA,GAEA,OA0TJ,SACE,EACA,EACA,EACA,EACA,EACA,EACA,GAEA,IAAI,GAAU,EAId,KAAM,EAAO,GAAQ,EAAa,QAAQ,IACxC,QAAO,EAAa,QAAQ,KAAK,SAC7B,EAAa,QAAQ,KAAK,QAC1B,EACA,EACA,EACA,EACA,EACA,EACA,GAKN,IAAM,EAAc,EAAa,QAAQ,KAAK,QAE9C,GAAoB,YAAhB,EAA2B,CAC7B,IAAM,GAAS,aAAY,EAAW,EAAkB,QAClD,EAAO,EAAa,UAAU,GAEpC,EAAK,GAAK,EAAO,EACjB,EAAK,GAAK,EAAO,EAEjB,IAAM,EAAa,EAAK,EAAI,EAAK,MAAQ,EAAK,EAAI,EAAK,MACjD,EAAW,EAAK,EAAI,EAAK,KAAO,EAAK,EAAI,EAAK,OAEpD,EAAU,GAAc,EAG1B,IAAM,EAAW,EAAU,QAAQ,GAEnC,GAAI,GAA4B,WAAhB,EAA0B,CACxC,IAAM,EAAK,EAAS,KAAO,EAAS,MAAQ,EACtC,EAAK,EAAS,IAAM,EAAS,OAAS,EAE5C,EAAU,GAAM,EAAK,MAAQ,GAAM,EAAK,OAAS,GAAM,EAAK,KAAO,GAAM,EAAK,OAyBhF,OAtBI,GAAY,UAAG,OAAO,KAOxB,EALE,KAAK,IAAI,EAAG,KAAK,IAAI,EAAK,MAAO,EAAS,OAAS,KAAK,IAAI,EAAK,KAAM,EAAS,OAChF,KAAK,IAAI,EAAG,KAAK,IAAI,EAAK,OAAQ,EAAS,QAAU,KAAK,IAAI,EAAK,IAAK,EAAS,OAE/C,EAAS,MAAQ,EAAS,SAEpC,GAGxB,EAAa,QAAQ,KAAK,UAC5B,EAAU,EAAa,QAAQ,KAAK,QAClC,EACA,EACA,EACA,EACA,EACA,EACA,IAIG,EAnYE,CAAgB,KAAM,EAAW,EAAO,EAAW,EAAkB,EAAa,IAW3F,EAAS,YAAc,SAAU,GAC/B,OAAI,UAAG,KAAK,IAKV,EAAM,YAAc,EAEb,GAEF,EAAM,cAGf,aAAO,EAAQ,eAAgB,CAC7B,WAAW,EACX,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,MAAM,IAER,EAAQ,WAAW,KAAO,WAE1B,EAAM,aAAc,EAEpB,EAAS,QAAQ,KAAO,GAAK,UAqW7B,UAAW,CACT,mCAAoC,YAAqB,IAAlB,EAAkB,EAAlB,YACH,SAA9B,EAAY,SAAS,OAIzB,EAAY,UAAY,CACtB,IAAK,CACH,SAAU,KACV,QAAS,MAEX,KAAM,CACJ,SAAU,KACV,QAAS,MAEX,SAAU,KACV,OAAQ,KACR,YAAa,MAIjB,kCAAmC,WAEjC,GACG,IAFD,EAEC,EAFD,YAA4B,GAE3B,EAFY,MAEZ,EAFmB,QAGtB,GAAkC,SAA9B,EAAY,SAAS,KAAzB,CADG,IAKK,EAAc,EAAd,UAGR,EAAU,YAAc,KACxB,EAAU,OAAS,KACnB,EAAU,YAAc,GAAe,EAAO,EAAY,SAC1D,EAAU,OAAS,GAAc,EAAa,EAAO,GAEjD,EAAU,OAAO,WACnB,GAAqB,EAAU,YAAa,EAAU,OAAO,UAC7D,EAAM,KAAK,qBAAsB,CAAE,cAAa,iBAIpD,2BAA4B,GAE5B,iCAAkC,WAEhC,GACG,IAFD,EAEC,EAFD,YAAqB,EAEpB,EAFY,OAGmB,SAA9B,EAAY,SAAS,OAIzB,GAAe,EAAa,EAAY,UAAU,QAElD,EAAM,KAAK,oBAAqB,CAAE,cAAa,cAC/C,EAAY,UAAU,OAAS,KAGjC,0BAA2B,SAAC,EAAqC,GAC/D,GAAsC,SAAlC,EAAI,YAAY,SAAS,KAA7B,CADyE,IAKjE,EAAmC,EAAnC,YAAqB,EAAc,EAAtB,OAErB,GAAe,EAAK,GACpB,GAAe,EAAa,EAAY,UAAU,QAClD,EAAM,KAAK,mBAAoB,CAAE,cAAa,gBAGhD,oBAAqB,YAAqB,IAAlB,EAAkB,EAAlB,YACtB,GAAkC,SAA9B,EAAY,SAAS,KAAzB,CADwC,IAKhC,EAAc,EAAd,UAEJ,IACF,EAAU,YAAc,KACxB,EAAU,OAAS,KACnB,EAAU,IAAI,SAAW,KACzB,EAAU,IAAI,QAAU,KACxB,EAAU,KAAK,SAAW,KAC1B,EAAU,KAAK,QAAU,KACzB,EAAU,UAAW,MAI3B,kBACA,WACA,iBACA,kBACA,SAAU,CACR,SAAS,EACT,OAAQ,KACR,QAAS,eAIE,2BC/jBf,SAAS,GAAT,GAA+E,IAAhD,EAAgD,EAAhD,YAAa,EAAmC,EAAnC,OAAQ,EAA2B,EAA3B,MAClD,GAAkC,YAA9B,EAAY,SAAS,KAAzB,CAEA,IAAM,EAAW,EAAY,SAAS,KAAI,SAAC,GAAD,OAAO,EAAE,WAC7C,EAAqB,UAAV,EACX,EAAmB,QAAV,EACT,EAAc,EAAY,aAAa,QAAQ,YAIrD,GAFA,EAAO,QAAU,CAAC,EAAS,GAAI,EAAS,IAEpC,EACF,EAAO,SAAW,EAAa,cAAc,EAAU,GACvD,EAAO,IAAM,EAAa,UAAU,GACpC,EAAO,MAAQ,EACf,EAAO,GAAK,EACZ,EAAO,MAAQ,EAAa,WAAW,EAAU,GACjD,EAAO,GAAK,EAEZ,EAAY,QAAQ,cAAgB,EAAO,SAC3C,EAAY,QAAQ,WAAa,EAAO,WACnC,GAAI,EAAQ,CACjB,IAAM,EAAY,EAAY,UAE9B,EAAO,SAAW,EAAU,SAC5B,EAAO,IAAM,EAAU,IACvB,EAAO,MAAQ,EAAU,MACzB,EAAO,GAAK,EACZ,EAAO,MAAQ,EAAU,MACzB,EAAO,GAAK,OAEZ,EAAO,SAAW,EAAa,cAAc,EAAU,GACvD,EAAO,IAAM,EAAa,UAAU,GACpC,EAAO,MAAQ,EAAO,SAAW,EAAY,QAAQ,cACrD,EAAO,MAAQ,EAAa,WAAW,EAAU,GAEjD,EAAO,GAAK,EAAO,MAAQ,EAAY,QAAQ,MAC/C,EAAO,GAAK,EAAO,MAAQ,EAAY,QAAQ,MAGjD,EAAY,QAAQ,SAAW,EAAO,SACtC,EAAY,QAAQ,MAAQ,EAAO,MAE/B,UAAG,OAAO,EAAO,QAAU,EAAO,QAAU,MAAa,MAAM,EAAO,SACxE,EAAY,QAAQ,MAAQ,EAAO,4EAIvC,IAAM,GAAkB,CACtB,GAAI,kBACJ,OAAQ,CAAC,eAAgB,kBACzB,QAvGF,SAAkB,GAAc,IACtB,EAAoC,EAApC,QAAS,EAA2B,EAA3B,aAAc,EAAa,EAAb,SAyB/B,EAAa,UAAU,WAAa,SAElC,GAEA,OAAI,UAAG,OAAO,IACZ,KAAK,QAAQ,QAAQ,SAA8B,IAApB,EAAQ,QACvC,KAAK,aAAa,UAAW,GAC7B,KAAK,YAAY,UAAW,GAErB,MAGL,UAAG,KAAK,IACV,KAAK,QAAQ,QAAQ,QAAU,EAExB,MAGF,KAAK,QAAQ,SAGtB,EAAQ,IAAI,QAAU,GACtB,EAAQ,WAAW,QAAU,aAE7B,EAAS,QAAQ,QAAU,GAAQ,UAsDnC,UAAW,CACT,4BAA6B,GAC7B,2BAA4B,GAC5B,0BAA2B,GAE3B,mBAAoB,YAAqB,EAAlB,YACT,QAAU,CACpB,MAAO,EACP,SAAU,EACV,MAAO,EACP,WAAY,EACZ,cAAe,IAInB,mBAAoB,SAAC,GACnB,KAAI,EAAI,YAAY,SAAS,OAAS,GAAtC,CAIA,IAAM,EAAiB,EAAI,aAAa,QAAQ,QAEhD,GAAM,GAAkB,EAAe,QAMvC,OAFA,EAAI,OAAS,CAAE,KAAM,YAEd,KAIX,SAAU,GAEV,UAtCsB,WAuCpB,MAAO,QAII,2BCcf,SAAS,GACP,EACA,EACA,EACA,EACA,EACA,EACA,GAGA,IAAK,EACH,OAAO,EAIT,IAAc,IAAV,EAAgB,CAElB,IAAM,EAAQ,UAAG,OAAO,EAAK,OAAS,EAAK,MAAQ,EAAK,MAAQ,EAAK,KAC/D,EAAS,UAAG,OAAO,EAAK,QAAU,EAAK,OAAS,EAAK,OAAS,EAAK,IAoBzE,GAjBA,EAAS,KAAK,IAAI,EAAQ,KAAK,KAAc,SAAT,GAA4B,UAAT,EAAmB,EAAQ,GAAU,IAExF,EAAQ,IACG,SAAT,EACF,EAAO,QACW,UAAT,IACT,EAAO,SAGP,EAAS,IACE,QAAT,EACF,EAAO,SACW,WAAT,IACT,EAAO,QAIE,SAAT,EACF,OAAO,EAAK,GAAK,GAAS,EAAI,EAAK,KAAO,EAAK,OAAS,EAE1D,GAAa,QAAT,EACF,OAAO,EAAK,GAAK,GAAU,EAAI,EAAK,IAAM,EAAK,QAAU,EAG3D,GAAa,UAAT,EACF,OAAO,EAAK,GAAK,GAAS,EAAI,EAAK,MAAQ,EAAK,MAAQ,EAE1D,GAAa,WAAT,EACF,OAAO,EAAK,GAAK,GAAU,EAAI,EAAK,OAAS,EAAK,KAAO,EAK7D,QAAK,UAAG,QAAQ,KAIT,UAAG,QAAQ,GAEhB,IAAU,EAEV,EAAI,YAAY,EAAS,EAAO,IA+HpC,SAAS,GAAT,GAMG,IALD,EAKC,EALD,OACA,EAIC,EAJD,YAKA,GAAkC,WAA9B,EAAY,SAAS,MAAsB,EAAY,WAA3D,CAEA,IACM,EAAc,EADJ,EAAY,aAAa,QAG7B,OAAO,QACc,MAA3B,EAAY,WACd,EAAY,MAAM,EAAI,EAAY,MAAM,EAExC,EAAY,MAAM,EAAI,EAAY,MAAM,EAE1C,EAAY,KAAO,OAEnB,EAAY,KAAO,EAAY,WAEA,MAA3B,EAAY,WACd,EAAY,MAAM,EAAI,EACc,MAA3B,EAAY,aACrB,EAAY,MAAM,EAAI,yEAK5B,IAAM,GAAiB,CACrB,GAAI,iBACJ,OAAQ,CAAC,gBACT,QAhYF,SAAkB,GAAc,IAE5B,EAKE,EALF,QACA,EAIE,EAJF,QAEA,EAEE,EAFF,aACA,EACE,EADF,SAKF,GAAO,QA0NT,SAAsB,GACpB,OAAO,EAAQ,MACX,CACA,EAAG,WACH,EAAG,WACH,GAAI,YAEJ,IAAK,WACL,KAAM,WACN,OAAQ,WACR,MAAO,WACP,QAAS,YACT,YAAa,YACb,SAAU,YACV,WAAY,aAEZ,CACA,EAAG,YACH,EAAG,YACH,GAAI,cAEJ,IAAK,YACL,KAAM,YACN,OAAQ,YACR,MAAO,YACP,QAAS,cACT,YAAa,cACb,SAAU,cACV,WAAY,eAtPC,CAAY,GAC7B,GAAO,cAAgB,EAAQ,eAAiB,EAAQ,qBAAuB,GAAK,GA+CpF,EAAa,UAAU,UAAY,SAA8B,GAC/D,OA0EJ,SAAoB,EAA4B,EAAgD,GAC9F,OAAI,UAAG,OAAO,IACZ,EAAa,QAAQ,OAAO,SAA8B,IAApB,EAAQ,QAC9C,EAAa,aAAa,SAAU,GACpC,EAAa,YAAY,SAAU,GAE/B,UAAG,OAAO,EAAQ,OAAS,eAAe,KAAK,EAAQ,MACzD,EAAa,QAAQ,OAAO,KAAO,EAAQ,KACjB,OAAjB,EAAQ,OACjB,EAAa,QAAQ,OAAO,KAAO,EAAM,SAAS,QAAQ,OAAO,MAG/D,UAAG,KAAK,EAAQ,qBAClB,EAAa,QAAQ,OAAO,oBAAsB,EAAQ,oBACjD,UAAG,KAAK,EAAQ,UACzB,EAAa,QAAQ,OAAO,OAAS,EAAQ,QAGxC,GAEL,UAAG,KAAK,IACV,EAAa,QAAQ,OAAO,QAAU,EAE/B,GAEF,EAAa,QAAQ,OAnGnB,CAAU,KAAM,EAAS,IAGlC,EAAQ,IAAI,OAAS,GACrB,EAAQ,WAAW,OAAS,YAE5B,EAAS,QAAQ,OAAS,GAAO,UA+TjC,UAAW,CACT,mBAAoB,YAAqB,EAAlB,YACT,WAAa,MAG3B,4BAA6B,SAAC,IAhIlC,YAAwG,IAAtF,EAAsF,EAAtF,OAAQ,EAA8E,EAA9E,YACxB,GAAkC,WAA9B,EAAY,SAAS,MAAsB,EAAY,SAAS,MAApE,CAIA,IAAM,EAAc,EACd,EAAO,EAAY,KAEzB,EAAY,OAAS,CACnB,OAAO,aAAO,GAAI,GAClB,WAAW,aAAO,GAAI,GACtB,UAAU,aAAO,GAAI,GACrB,MAAO,CACL,KAAM,EACN,MAAO,EACP,MAAO,EACP,IAAK,EACL,OAAQ,EACR,OAAQ,IAIZ,EAAY,MAAQ,EAAY,SAAS,MACzC,EAAY,KAAO,EAAY,OAAO,UACtC,EAAY,UAAY,EAAY,OAAO,OAyGvC,CAAM,GACN,GAAgB,IAElB,2BAA4B,SAAC,IAzGjC,YAAuG,IAAtF,EAAsF,EAAtF,OAAQ,EAA8E,EAA9E,YACvB,GAAkC,WAA9B,EAAY,SAAS,MAAsB,EAAY,SAAS,MAApE,CAEA,IAAM,EAAc,EAEd,EADgB,EAAY,aAAa,QAAQ,OAC1B,OACvB,EAAwB,eAAX,GAAsC,WAAX,EAExC,EAAU,EAAY,KARyE,EASjC,EAAY,OAAjE,EATsF,EAS7F,MAAkB,EAT2E,EAS3E,UAAkB,EATyD,EAShE,MAAkB,EAT8C,EAS9C,SAIvD,IAFA,aAAO,EAAU,GAEb,GAIF,IAFA,aAAO,EAAW,GAEH,eAAX,EAAyB,CAE3B,GAAI,EAAU,IAAM,EAAU,OAAQ,CACpC,IAAM,EAAO,EAAU,IAEvB,EAAU,IAAM,EAAU,OAC1B,EAAU,OAAS,EAErB,GAAI,EAAU,KAAO,EAAU,MAAO,CACpC,IAAM,EAAO,EAAU,KAEvB,EAAU,KAAO,EAAU,MAC3B,EAAU,MAAQ,SAKtB,EAAU,IAAM,KAAK,IAAI,EAAQ,IAAK,EAAU,QAChD,EAAU,OAAS,KAAK,IAAI,EAAQ,OAAQ,EAAU,KACtD,EAAU,KAAO,KAAK,IAAI,EAAQ,KAAM,EAAU,OAClD,EAAU,MAAQ,KAAK,IAAI,EAAQ,MAAO,EAAU,MAMtD,IAAK,IAAM,KAHX,EAAU,MAAQ,EAAU,MAAQ,EAAU,KAC9C,EAAU,OAAS,EAAU,OAAS,EAAU,IAE7B,EACjB,EAAU,GAAQ,EAAU,GAAQ,EAAS,GAG/C,EAAY,MAAQ,EAAY,SAAS,MACzC,EAAY,KAAO,EACnB,EAAY,UAAY,GAyDpB,CAAK,GACL,GAAgB,IAElB,0BAzDJ,YAAsG,IAAtF,EAAsF,EAAtF,OAAQ,EAA8E,EAA9E,YACtB,GAAkC,WAA9B,EAAY,SAAS,MAAsB,EAAY,SAAS,MAApE,CAEA,IAAM,EAAc,EAEpB,EAAY,MAAQ,EAAY,SAAS,MACzC,EAAY,KAAO,EAAY,OAAO,UACtC,EAAY,UAAY,EAAY,OAAO,QAmDzC,mBA1UJ,SAAwB,GAAK,IACnB,EAAsD,EAAtD,YAAa,EAAyC,EAAzC,aAAc,EAA2B,EAA3B,QAAS,EAAkB,EAAlB,KAAM,EAAY,EAAZ,QAElD,GAAK,EAAL,CAIA,IAAM,GAAO,aAAO,GAAI,EAAY,OAAO,IAAI,MACzC,EAAgB,EAAa,QAAQ,OAE3C,GACI,GAAiB,EAAc,WAEhC,EAAY,gBACX,gBAAgB,KAAK,EAAY,cACU,IAA1C,EAAU,EAAc,eAL7B,CAWA,GAAI,UAAG,OAAO,EAAc,OAAQ,CAClC,IAAM,EAAc,CAClB,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,GAGV,IAAK,IAAM,KAAQ,EACjB,EAAY,GAAQ,GAClB,EACA,EAAc,MAAM,GACpB,EACA,EAAY,eAAe,YAC3B,EACA,EACA,EAAc,QAAU,GAAO,eAInC,EAAY,KAAO,EAAY,OAAS,EAAY,MACpD,EAAY,IAAM,EAAY,MAAQ,EAAY,QAE9C,EAAY,MAAQ,EAAY,OAAS,EAAY,KAAO,EAAY,UAC1E,EAAI,OAAS,CACX,KAAM,SACN,MAAO,QAGN,CACL,IAAM,EAA+B,MAAvB,EAAc,MAAgB,EAAK,EAAI,EAAK,MAAQ,GAAO,cACnE,EAAgC,MAAvB,EAAc,MAAgB,EAAK,EAAI,EAAK,OAAS,GAAO,eAEvE,GAAS,KACX,EAAI,OAAS,CACX,KAAM,SACN,MAAO,EAAQ,IAAM,KAAO,EAAS,IAAM,MAKjD,OAAO,EAAI,aAAiB,MA+Q5B,SAAU,CACR,QAAQ,EACR,qBAAqB,EACrB,KAAM,KAGN,OAAQ,IAMR,MAAO,KAMP,OAAQ,QAGV,QAAS,KAET,UA5CqB,YA4C0B,IAAlC,EAAkC,EAAlC,MAAO,EAA2B,EAA3B,KAAM,EAAqB,EAArB,KAClB,EAAU,GAAO,QACnB,EAAiB,KAErB,GAAI,EACF,EAAS,EAAQ,EAAO,QACnB,GAAI,EAAO,CAGhB,IAFA,IAAI,EAAY,GADA,EAGG,CAAC,MAAO,SAAU,OAAQ,SAA7C,mBAAuD,CAAlD,IAAM,EAAI,KACT,EAAM,KACR,GAAa,GAIjB,EAAS,EAAQ,GAGnB,OAAO,GAGT,cAAe,SAGF,sGC5eA,CACb,GAAI,UACJ,QAFa,SAEJ,GACP,EAAM,UAAU,YAChB,EAAM,UAAU,YAChB,EAAM,UAAU,WAChB,EAAM,UAAU,0GCbpB,IACI,GACA,GAFA,GAAW,KAuCA,CACb,QAAS,SAAC,GAAD,OAAoC,GAAQ,IACrD,OAAQ,SAAC,GAAD,OAAmB,GAAO,IAClC,KAtCF,SAAe,GAIb,GAHA,GAAU,EAAO,sBACjB,GAAS,EAAO,sBAEX,GAGH,IAFA,IAAM,EAAU,CAAC,KAAM,MAAO,SAAU,KAExC,MAAqB,EAArB,WAA8B,CAAzB,IAAM,EAAU,EAAJ,GACf,GAAU,EAAM,UAAI,EAAJ,0BAChB,GACE,EAAM,UAAI,EAAJ,0BACN,EAAM,UAAI,EAAJ,gCAIZ,GAAU,IAAW,GAAQ,KAAK,GAClC,GAAS,IAAU,GAAO,KAAK,GAE1B,KACH,GAAU,SAAC,GACT,IAAM,EAAW,KAAK,MAChB,EAAa,KAAK,IAAI,EAAG,IAAM,EAAW,KAC1C,EAAQ,EAAO,YAAW,WAE9B,EAAS,EAAW,KACnB,GAGH,OADA,GAAW,EAAW,EACf,GAGT,GAAS,SAAC,GAAD,OAAW,aAAa,qICyL9B,SAAwB,GAK7B,OAJI,UAAG,OAAO,KACZ,EAAY,OAAO,SAAS,MAGvB,CAAE,EAAG,EAAU,YAAa,EAAG,EAAU,qCAG3C,WAQL,GACA,IAPE,EAOF,EAPE,YACA,EAMF,EANE,QAOI,EAAgB,GAAe,EAAY,aAAa,QAAQ,EAAY,SAAS,MAAM,WAEjG,IAAK,IAAkB,EAAc,QAEnC,OADA,IACO,CAAE,EAAG,EAAG,EAAG,GAGpB,IAAM,EAAkB,GAAa,EAAc,UAAW,EAAY,aAAc,GAElF,EAAW,GAAU,GAC3B,IACA,IAAM,EAAU,GAAU,GAE1B,MAAO,CACL,EAAG,EAAQ,EAAI,EAAS,EACxB,EAAG,EAAQ,EAAI,EAAS,sBA9M5B,IAAM,GAAa,CACjB,SAAU,CACR,SAAS,EACT,OAAQ,GAGR,UAAW,KAGX,MAAO,KAGT,IAAK,KAAK,IAEV,YAAa,KACb,EAAG,EAGH,EAAG,EACH,EAAG,EAEH,aAAa,EACb,SAAU,EACV,OAAQ,EACR,MAAO,EAEP,MA1BiB,SA0BV,GACL,GAAW,aAAc,EACzB,WAAI,OAAO,GAAW,GAEtB,EAAY,WAAa,GACzB,GAAW,YAAc,EACzB,GAAW,SAAW,GAAW,MACjC,GAAW,EAAI,WAAI,QAAQ,GAAW,SAGxC,KApCiB,WAqCf,GAAW,aAAc,EACrB,GAAW,cACb,GAAW,YAAY,WAAa,MAEtC,WAAI,OAAO,GAAW,IAIxB,OA7CiB,WA6CP,IACA,EAAgB,GAAhB,YACA,EAA0B,EAA1B,aAAc,EAAY,EAAZ,QAChB,EAAa,EAAY,SAAS,KAClC,EAAU,EAAa,QAAQ,GAAY,WAC3C,EAAY,GAAa,EAAQ,UAAW,EAAc,GAC1D,EAAM,GAAW,MAEjB,GAAM,EAAM,GAAW,UAAY,IAEnC,EAAI,EAAQ,MAAQ,EAE1B,GAAI,GAAK,EAAG,CACV,IAAM,EAAW,CACf,EAAG,GAAW,EAAI,EAClB,EAAG,GAAW,EAAI,GAGpB,GAAI,EAAS,GAAK,EAAS,EAAG,CAC5B,IAAM,EAAa,GAAU,GAEzB,UAAG,OAAO,GACZ,EAAU,SAAS,EAAS,EAAG,EAAS,GAC/B,IACT,EAAU,YAAc,EAAS,EACjC,EAAU,WAAa,EAAS,GAGlC,IAAM,EAAY,GAAU,GACtB,EAAQ,CACZ,EAAG,EAAU,EAAI,EAAW,EAC5B,EAAG,EAAU,EAAI,EAAW,IAG1B,EAAM,GAAK,EAAM,IACnB,EAAa,KAAK,CAChB,KAAM,aACN,OAAQ,EACR,eACA,QACA,cACA,cAKN,GAAW,SAAW,EAGpB,GAAW,cACb,WAAI,OAAO,GAAW,GACtB,GAAW,EAAI,WAAI,QAAQ,GAAW,UAG1C,MAnGiB,SAmGV,EAA4B,GAAwB,MAGzD,gBAFgB,EAAa,QAEd,GAAY,iBAA3B,EAAO,EAAgC,SAEzC,kBAxGiB,YA8Gd,IALD,EAKC,EALD,YACA,EAIC,EAJD,QAKA,GACI,EAAY,eAAiB,GAAW,MAAM,EAAY,aAAc,EAAY,SAAS,MAKjG,GAAI,EAAY,WACd,GAAW,EAAI,GAAW,EAAI,MADhC,CAKA,IAAI,EACA,EACA,EACA,EAEI,EAA0B,EAA1B,aAAc,EAAY,EAAZ,QAChB,EAAa,EAAY,SAAS,KAClC,EAAU,EAAa,QAAQ,GAAY,WAC3C,EAAY,GAAa,EAAQ,UAAW,EAAc,GAEhE,GAAI,UAAG,OAAO,GACZ,EAAO,EAAQ,QAAU,GAAW,OACpC,EAAM,EAAQ,QAAU,GAAW,OACnC,EAAQ,EAAQ,QAAU,EAAU,WAAa,GAAW,OAC5D,EAAS,EAAQ,QAAU,EAAU,YAAc,GAAW,WACzD,CACL,IAAM,EAAO,EAAS,qBAAqB,GAE3C,EAAO,EAAQ,QAAU,EAAK,KAAO,GAAW,OAChD,EAAM,EAAQ,QAAU,EAAK,IAAM,GAAW,OAC9C,EAAQ,EAAQ,QAAU,EAAK,MAAQ,GAAW,OAClD,EAAS,EAAQ,QAAU,EAAK,OAAS,GAAW,OAGtD,GAAW,EAAI,EAAQ,EAAI,GAAQ,EAAI,EACvC,GAAW,EAAI,EAAS,EAAI,GAAO,EAAI,EAElC,GAAW,cAEd,GAAW,OAAS,EAAQ,OAC5B,GAAW,MAAQ,EAAQ,MAE3B,GAAW,MAAM,OAKhB,SAAS,GAAc,EAAY,EAA4B,GACpE,OACG,UAAG,OAAO,IAAS,2BAAsB,EAAO,EAAc,GAAW,KAAU,eAAU,GAI3F,SAAS,GAAW,GAKzB,OAJI,UAAG,OAAO,KACZ,EAAY,OAAO,SAAS,MAGvB,CAAE,EAAG,EAAU,WAAY,EAAG,EAAU,WAwCjD,OAAiC,CAC/B,GAAI,cACJ,QA9NF,SAAkB,GAAc,IACtB,EAAsB,EAAtB,SAAU,EAAY,EAAZ,QAElB,EAAM,WAAa,GACnB,GAAW,IAAM,kBAAM,EAAM,OAE7B,EAAQ,eAAe,YAAa,EACpC,EAAS,UAAU,WAAa,GAAW,UAwN3C,UAAW,CACT,mBAAoB,YAAqB,EAAlB,YACT,WAAa,MAG3B,uBAAwB,YAAqB,EAAlB,YACb,WAAa,KACzB,GAAW,OACP,GAAW,cACb,GAAW,YAAc,OAI7B,oBAAqB,GAAW,KAEhC,2BAA4B,SAAC,GAAD,OAAc,GAAW,kBAAkB,4FC9QpE,SAA+B,EAAiC,GACrE,IAAI,GAAS,EAEb,OAAO,WAML,OALK,IACD,SAAe,QAAQ,KAAK,GAC9B,GAAS,GAGJ,EAAO,MAAM,KAAM,2BAIvB,SAA2C,EAAwB,GAKxE,OAJA,EAAK,KAAO,EAAI,KAChB,EAAK,KAAO,EAAI,KAChB,EAAK,MAAQ,EAAI,MAEV,0BAGW,SAAC,GAAD,OAAgB,GAAK,EAAI,GAAK,aC4JlD,SAAS,GAAiC,GACxC,OAAI,UAAG,KAAK,IACV,KAAK,QAAQ,YAAc,EAEpB,MAGQ,OAAb,UACK,KAAK,QAAQ,YAEb,MAGF,KAAK,QAAQ,YAGtB,SAAS,GAAmC,GAC1C,OAAI,UAAG,KAAK,IACV,KAAK,QAAQ,cAAgB,EAEtB,MAGO,OAAZ,UACK,KAAK,QAAQ,cAEb,MAGF,KAAK,QAAQ,yFAGP,CACb,GAAI,iCACJ,QA3LF,SAAkB,GAAc,IAG5B,EACE,EADF,aAGF,EAAa,UAAU,UAAY,SAEjC,EACA,EACA,EACA,GAEA,IAAM,EA4GV,SACE,EACA,EACA,EACA,EACA,GAEA,IAAM,EAAO,EAAa,QAAQ,GAS5B,EAAM,CACV,OAAQ,KACR,eACA,cACA,UACA,OACA,QAbC,EAAqB,SACtB,CACE,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,IACF,EAAqB,SAY1B,OAFA,EAAM,KAAK,mBAAoB,GAExB,EAAI,OAvIM,CAAqB,KAAM,EAAO,EAAa,EAAS,GAEvE,OAAI,KAAK,QAAQ,cACR,KAAK,QAAQ,cAAc,EAAS,EAAO,EAAQ,KAAM,EAAS,GAGpE,GA2BT,EAAa,UAAU,YAAa,gBAAS,SAA8B,GACzE,OAAO,KAAK,kBAAkB,aAAc,KAC3C,qGA0BH,EAAa,UAAU,WAAY,gBAAS,SAA8B,GACxE,OAAO,KAAK,kBAAkB,YAAa,KAC1C,mGAiCH,EAAa,UAAU,cAAgB,GASvC,EAAa,UAAU,YAAc,6BCuBvC,SAAS,GACP,EACA,EACA,EACA,EACA,GAEA,OACE,EAAa,gBAAgB,EAAa,QAAQ,EAAO,MAAO,EAAS,IACzE,EAAa,QAAQ,EAAO,MAAM,SAClC,GAAuB,EAAc,EAAS,EAAQ,GAE/C,EAGF,KAGT,SAAS,GACP,EACA,EACA,EACA,EACA,EACA,EACA,GAEA,IAAK,IAAI,EAAI,EAAG,EAAM,EAAQ,OAAQ,EAAI,EAAK,IAAK,CAClD,IAAM,EAAQ,EAAQ,GAChB,EAAe,EAAc,GAC7B,EAAc,EAAM,UAAU,EAAS,EAAO,EAAa,GAEjE,GAAK,EAAL,CAIA,IAAM,EAAS,GAA2B,EAAa,EAAO,EAAc,EAAa,GAEzF,GAAI,EACF,MAAO,CACL,SACA,aAAc,EACd,QAAS,IAKf,MAAO,CAAE,OAAQ,KAAM,aAAc,KAAM,QAAS,MAGtD,SAAS,GACP,EACA,EACA,EACA,EACA,GAEA,IAAI,EAA0B,GAC1B,EAA2B,GAE3B,EAAU,EAEd,SAAS,EAAa,GACpB,EAAQ,KAAK,GACb,EAAc,KAAK,GAGrB,KAAO,UAAG,QAAQ,IAAU,CAC1B,EAAU,GACV,EAAgB,GAEhB,EAAM,cAAc,aAAa,EAAS,GAE1C,IAAM,EAAa,GACjB,EACA,EACA,EACA,EACA,EACA,EACA,GAGF,GAAI,EAAW,SAAW,EAAW,aAAa,QAAQ,EAAW,OAAO,MAAM,YAChF,OAAO,EAGT,EAAU,EAAS,WAAW,GAGhC,MAAO,CAAE,OAAQ,KAAM,aAAc,KAAM,QAAS,MAGtD,SAAS,GACP,EADF,EAWE,GACA,IATE,EASF,EATE,OACA,EAQF,EARE,aACA,EAOF,EAPE,QAQF,EAAS,GAAU,CAAE,KAAM,MAE3B,EAAY,aAAe,EAC3B,EAAY,QAAU,GACtB,iBAAW,EAAY,SAAU,GAEjC,EAAY,KAAO,GAAgB,EAAO,KAAO,EAAa,QAAQ,GAAW,KAEjF,GAAqB,EAAa,GAElC,EAAM,KAAK,qBAAsB,CAAE,gBAGrC,SAAS,GACP,EACA,EACA,EACA,GAEA,IAAM,EAAU,EAAa,QACvB,EAAa,EAAQ,EAAO,MAAM,IAClC,EAAgB,EAAQ,EAAO,MAAM,cACrC,EAAe,EAAM,UAAU,gBACjC,EAAqB,EACrB,EAAoB,EACpB,EAAe,EAGnB,KAAM,GAAc,GAAiB,GACnC,OAAO,EAGT,cAA0B,EAAM,aAAa,KAA7C,WAAmD,KAAxC,EAAe,EAAM,aAAa,KAAM,GAC3C,EAAc,EAAY,SAAS,KAEzC,GAAK,EAAY,cAAjB,CAMA,KAFA,GAE0B,EACxB,OAAO,EAGT,GAAI,EAAY,eAAiB,EAAjC,CAMA,IAFA,GAAqB,IAAgB,EAAO,KAAO,EAAI,IAE9B,EACvB,OAAO,EAGT,GAAI,EAAY,UAAY,IAC1B,IAEI,IAAgB,EAAO,MAAQ,GAAgB,GACjD,OAAO,IAKb,OAAO,EAAe,EAGxB,SAAS,GAAiB,EAAe,GACvC,OAAI,UAAG,OAAO,IACZ,EAAM,UAAU,gBAAkB,EAE3B,MAGF,EAAM,UAAU,gBAGzB,SAAS,GAAW,EAAkB,EAAgB,GAAc,IAC3C,EAAsB,EAAM,UAA3C,cAEJ,GAAqB,IAAsB,IAC7C,EAAkB,MAAM,OAAS,IAGnC,EAAQ,cAAc,gBAAgB,MAAM,OAAS,EACrD,EAAQ,MAAM,OAAS,EACvB,EAAM,UAAU,cAAgB,EAAS,EAAU,KAGrD,SAAS,GAA4C,EAA6B,GAAc,IACtF,EAAoC,EAApC,aAAc,EAAsB,EAAtB,QAAS,EAAa,EAAb,SAE/B,GAAkC,UAA5B,EAAY,aAA2B,GAAgB,EAAa,QAAQ,YAAlF,CASA,IAAI,EAAS,GAEb,GAAI,EAAS,KAAM,CACjB,IAAM,EAAgB,EAAa,QAAQ,EAAS,MAAM,cAGxD,EADE,UAAG,KAAK,GACD,EAAc,EAAU,EAAc,EAAS,EAAY,cAE3D,EAAM,QAAQ,IAAI,EAAS,MAAM,UAAU,GAIxD,GAAU,EAAY,QAAS,GAAU,GAAI,QAnBvC,EAAM,UAAU,eAClB,GAAU,EAAM,UAAU,cAAe,GAAI,uEAqBnD,OAA0B,CACxB,GAAI,kBACJ,OAAQ,CAAC,WACT,QAvUF,SAAkB,GAAc,IACN,EAAuB,EAAvC,eAA0B,EAAa,EAAb,SAElC,EAAM,UAAU,YAEhB,EAAS,KAAK,cAAgB,KAC9B,EAAS,KAAK,aAAc,GAE5B,aAAO,EAAS,UAAW,CACzB,aAAa,EACb,IAAK,IACL,cAAe,EACf,UAAW,KACX,WAAY,KAIZ,aAAc,IAchB,EAAS,gBAAkB,SAAC,GAAD,OAAsB,GAAgB,EAAU,IAE3E,EAAM,UAAY,CAEhB,gBAAiB,IACjB,0BACA,cAAe,OAmSjB,UAAW,CACT,oBAhSJ,WAEE,GACA,IAFE,EAEF,EAFE,YAAa,EAEf,EAFe,QAAS,EAExB,EAFwB,MAAO,EAE/B,EAF+B,YAG3B,EAAY,eAGhB,GAAQ,EADW,GAAc,EAAa,EAAS,EAAO,EAAa,GAC1C,IA0R/B,oBAAqB,SAAC,EAAK,IAvR/B,WAEE,GACA,IAFE,EAEF,EAFE,YAAa,EAEf,EAFe,QAAS,EAExB,EAFwB,MAAO,EAE/B,EAF+B,YAGC,UAA5B,EAAY,aAA2B,EAAY,eAAiB,EAAY,eAGpF,GAAQ,EADW,GAAc,EAAa,EAAS,EAAO,EAAwB,GACrD,GAiR7B,CAAc,EAAK,GA9QzB,SAAsB,EAAsC,GAAc,IAChE,EAAgB,EAAhB,YAER,GACG,EAAY,gBACb,EAAY,eACX,EAAY,iBACZ,EAAY,SAAS,KAJxB,CASA,EAAM,KAAK,yBAA0B,GAZmC,IAchE,EAAiB,EAAjB,aACF,EAAc,EAAwC,SAAS,KAEjE,GAAc,IAGd,EAAa,QAAQ,GAAY,cAChC,GAAuB,EAAc,EAAY,QAAS,EAAY,SAAU,GAEjF,EAAY,QAEZ,EAAY,MAAM,EAAY,SAAU,EAAc,EAAY,SAClE,GAAqB,EAAa,MAqPlC,CAAY,EAAK,IAEnB,oBAlPJ,WAA2E,GAAc,IAA3D,EAA2D,EAA3D,YACpB,EAAiB,EAAjB,aAEJ,GAAgB,EAAa,QAAQ,aACvC,GAAU,EAAY,QAAS,GAAI,KAgPrC,mBACA,0BACA,sHCpUa,CACb,GAAI,sBACJ,UAAW,CAAE,yBA3Ef,WAA6F,GAAc,IAAnF,EAAmF,EAAnF,YAAa,EAAsE,EAAtE,YAAa,EAAyD,EAAzD,GAAI,EAAqD,EAArD,GACpD,GAAkC,SAA9B,EAAY,SAAS,KAAzB,CAGA,IAAM,EAAO,KAAK,IAAI,GAChB,EAAO,KAAK,IAAI,GAChB,EAAgB,EAAY,aAAa,QAAQ,KACjD,EAAY,EAAc,UAC1B,EAAc,EAAO,EAAO,IAAM,EAAO,EAAO,IAAM,KAQ5D,GANA,EAAY,SAAS,KACQ,UAA3B,EAAc,SACT,EAAY,GACb,EAAc,SAGA,OAAhB,GAAsC,OAAd,GAAsB,IAAc,EAAa,CAEzE,EAAwC,SAAS,KAAO,KA8B1D,IA3BA,IAAI,EAAU,EAER,EAAe,SAAU,GAC7B,GAAI,IAAiB,EAAY,aAAjC,CAEA,IAAM,EAAU,EAAY,aAAa,QAAQ,KAEjD,IAAK,EAAQ,aAAe,EAAa,gBAAgB,EAAS,EAAS,GAAc,CACvF,IAAM,EAAS,EAAa,UAC1B,EAAY,YACZ,EAAY,UACZ,EACA,GAGF,GACE,GACgB,SAAhB,EAAO,MAyBjB,SAAyB,EAAmB,GAC1C,IAAK,EACH,OAAO,EAGT,IAAM,EAAW,EAAa,QAAQ,KAAK,UAE3C,MAAqB,OAAd,GAAmC,OAAb,GAAqB,IAAa,EA/BvD,CAAe,EAAa,IAC5B,WAAU,eAAe,EAAQ,EAAc,EAAS,EAAa,GAErE,OAAO,KAMN,UAAG,QAAQ,IAAU,CAC1B,IAAM,EAAe,EAAM,cAAc,aAAa,EAAS,GAE/D,GAAI,EAAc,CACd,EAAwC,SAAS,KAAO,OAC1D,EAAY,aAAe,EAC3B,EAAY,QAAU,EACtB,MAGF,GAAU,gBAAW,iCCxC3B,SAAS,GAAiB,GACxB,IAAM,EAAa,EAAY,UAAY,EAAY,SAAS,KAEhE,IAAK,EACH,OAAO,KAGT,IAAM,EAAU,EAAY,aAAa,QAEzC,OAAO,EAAQ,GAAY,MAAQ,EAAQ,GAAY,0EAGzD,OAAqB,CACnB,GAAI,kBACJ,QAvBF,SAAkB,GAAc,IACtB,EAAa,EAAb,SAER,EAAM,UAAU,YAEhB,EAAS,UAAU,KAAO,EAC1B,EAAS,UAAU,MAAQ,GAkB3B,UAAW,CACT,mBAAoB,YAAqB,EAAlB,YACT,mBAAqB,MAGnC,qBAAsB,YAAqB,IAAlB,EAAkB,EAAlB,YACjB,EAAO,GAAgB,GAEzB,EAAO,IACT,EAAY,mBAAqB,YAAW,WAC1C,EAAY,MAAM,EAAY,SAAU,EAAY,aAAc,EAAY,WAC7E,KAIP,oBAAqB,YAAgC,IAA7B,EAA6B,EAA7B,YAAa,EAAgB,EAAhB,UAC/B,EAAY,oBAAsB,EAAY,kBAAoB,IACpE,aAAa,EAAY,oBACzB,EAAY,mBAAqB,OAKrC,yBAA0B,YAAqB,IAAlB,EAAkB,EAAlB,YACN,GAAgB,GAElB,IACjB,EAAY,SAAS,KAAO,QAIlC,uHCnEa,CACb,GAAI,aACJ,QAFa,SAEJ,GACP,EAAM,UAAU,YAChB,EAAM,UAAU,YAChB,EAAM,UAAU,sCCOpB,SAAS,GAAoC,GAC3C,MAAI,wBAAwB,KAAK,IAC/B,KAAK,QAAQ,eAAiB,EACvB,MAGL,UAAG,KAAK,IACV,KAAK,QAAQ,eAAiB,EAAW,SAAW,QAC7C,MAGF,KAAK,QAAQ,eA2CtB,SAAS,GAAT,GAA4G,IAA7E,EAA6E,EAA7E,YAAa,EAAgE,EAAhE,MACtC,EAAY,cACd,EAAY,aAAa,uBAAuB,GAI7C,SAAS,GAAS,GAAc,IAE7B,EAAiB,EAAjB,aAYR,EAAa,UAAU,eAAiB,GAExC,EAAa,UAAU,uBAAyB,SAAU,GACxD,OA/DJ,SAAiC,EAA4B,EAAc,GACzE,IAAM,EAAU,EAAa,QAAQ,eAErC,GAAgB,UAAZ,EAEJ,GAAgB,WAAZ,EAAJ,CAUA,GAAI,EAAM,OAAO,iBAAmB,sBAAsB,KAAK,EAAM,MAAO,CAC1E,IAAM,GAAM,eAAU,EAAM,QAAQ,SAC9B,EAAa,EAAM,cAAc,GAEvC,IAAM,IAAc,EAAW,SAAyC,IAA9B,EAAW,OAAO,QAC1D,OAKA,uCAAuC,KAAK,EAAM,OAMpD,UAAG,QAAQ,EAAM,UACjB,qBAAgB,EAAM,OAAQ,0EAKhC,EAAM,sBA/BJ,EAAM,iBAyDC,CAAuB,KAAM,EAAO,IAI7C,EAAM,aAAa,UAAU,KAAK,CAChC,KAAM,YACN,SAFgC,SAEtB,GACR,cAA0B,EAAM,aAAa,KAA7C,WAAmD,KAAxC,EAAe,EAAM,aAAa,KAAM,GACjD,GACE,EAAY,UACX,EAAY,UAAY,EAAM,SAAU,kBAAa,EAAY,QAAS,EAAM,SAGjF,YADA,EAAY,aAAa,uBAAuB,gGAQ3C,CACb,GAAI,kCACJ,WACA,UAAW,CAAC,OAAQ,OAAQ,KAAM,UAAU,QAAO,SAAC,EAAK,GAEvD,OADA,EAAG,uBAAiB,IAAe,GAC5B,IACN,4GCzHU,OCmDV,uLAsCK,GAAU,YAWV,GAAU,UAiBV,GAAU,YAiCpB,OAEI,CAAE,GAFK,YAED,QAAS,mGCpJJ,SAAS,EAAyB,GAC/C,IAAM,EAAO,GAEb,IAAK,IAAM,KAAQ,EAAQ,CACzB,IAAM,EAAQ,EAAO,GAEjB,UAAG,YAAY,GACjB,EAAK,GAAQ,EAAM,GACV,UAAG,MAAM,GAClB,EAAK,GAAQ,EAAI,KAAK,GAEtB,EAAK,GAAQ,EAIjB,OAAO,2zCCQY,cASnB,WAAa,gGAA0B,0BARb,IAQa,sBAPnB,CAAE,KAAM,EAAG,MAAO,EAAG,IAAK,EAAG,OAAQ,IAOlB,wIACrC,KAAK,YAAc,EACnB,KAAK,OAAS,+CAGhB,WAAyC,GAAmB,IAAnD,EAAmD,EAAnD,MACC,EAAgB,KAAhB,YACF,EAwUV,SAA0B,GACxB,IAAM,EAAgB,EAAY,aAAa,QAAQ,EAAY,SAAS,MACtE,EAAkB,EAAc,UAEtC,OAAI,GAAmB,EAAgB,OAC9B,EAGF,CAAC,OAAQ,WAAY,YAAa,WAAY,gBAAiB,gBACnE,KAAI,SAAC,GACJ,IAAM,EAAU,EAAc,GAE9B,OACE,GACA,EAAQ,SAAW,CACjB,UACA,QAAS,EAAQ,aAItB,QAAO,SAAC,GAAD,QAAS,KA5VI,CAAgB,GACrC,KAAK,cAAc,GAEnB,KAAK,OAAQ,aAAO,GAAI,EAAY,OACpC,KAAK,YAAc,GAAc,EAAY,KAAM,GACnD,KAAK,WAAa,CAAE,EAAG,EAAG,EAAG,GAE7B,IAAM,EAAM,KAAK,QAAQ,CACvB,QACA,aACA,QAAQ,IAQV,OALA,KAAK,OAAS,KACd,KAAK,SAAS,GAEE,KAAK,OAAS,KAAK,OAAO,0BAK5C,SAAS,GAA2B,IAC1B,EAAgB,KAAhB,YASR,OAPA,EAAI,YAAc,EAClB,EAAI,aAAe,EAAY,aAC/B,EAAI,QAAU,EAAY,QAC1B,EAAI,KAAO,EAAI,MAAQ,EAAY,KACnC,EAAI,MAAQ,KAAK,MACjB,EAAI,YAAc,KAAK,YAEhB,0BAGT,SAAU,GACR,cAAoB,KAAK,OAAzB,WAAiC,KAAtB,EAAS,KAAK,OAAQ,GAC3B,EAAM,QAAQ,QAChB,EAAI,MAAQ,EACZ,EAAM,QAAQ,MAAM,2BAK1B,SAAQ,GAA2D,IACzD,EAAuD,EAAvD,MAAO,EAAgD,EAAhD,OAAQ,EAAwC,EAAxC,cAAqB,EAAmB,EAAzB,KAEtC,EAAI,QAAS,aAAO,GAAI,EAAI,YAC5B,EAAI,MAAO,aAAO,GAAI,GAMtB,IAJA,IAAM,EAAS,EAAgB,KAAK,OAAO,MAAM,GAAiB,KAAK,OAEjE,EAAY,GAAa,EAAI,OAAQ,EAAI,MAE/C,MAAoB,EAApB,WAA4B,OAAjB,EAAS,EAAQ,GAClB,EAAY,EAAZ,QACF,GAAqB,aAAO,GAAI,EAAI,QACtC,EAAc,KAEd,WAAM,UAAN,EAAe,KAAO,KAAK,SAAS,EAAS,EAAQ,KACvD,EAAI,MAAQ,EACZ,EAAc,EAAM,QAAQ,IAAI,GAEhC,EAAU,SAAS,KAAK,YAAY,MAAO,EAAI,KAAM,CACnD,EAAG,EAAI,OAAO,EAAI,EAAmB,EACrC,EAAG,EAAI,OAAO,EAAI,EAAmB,KAIzC,EAAU,WAAW,KAAK,GAG5B,EAAU,MAAM,EAAI,EAAI,OAAO,EAAI,EAAI,WAAW,EAClD,EAAU,MAAM,EAAI,EAAI,OAAO,EAAI,EAAI,WAAW,EAElD,EAAU,UAAU,KAAO,EAAI,KAAK,KAAO,EAAe,KAC1D,EAAU,UAAU,MAAQ,EAAI,KAAK,MAAQ,EAAe,MAC5D,EAAU,UAAU,IAAM,EAAI,KAAK,IAAM,EAAe,IACxD,EAAU,UAAU,OAAS,EAAI,KAAK,OAAS,EAAe,OAE9D,IAAM,EAAa,KAAK,OAAO,OACzB,EAAW,KAAK,OAAO,KAE7B,GAAI,GAAc,EAAU,CAC1B,IAAM,EACJ,EAAU,KAAK,OAAS,EAAS,MACjC,EAAU,KAAK,QAAU,EAAS,OAClC,EAAU,KAAK,MAAQ,EAAS,KAChC,EAAU,KAAK,SAAW,EAAS,OAErC,EAAU,QACR,GAAe,EAAW,IAAM,EAAU,OAAO,GAAK,EAAW,IAAM,EAAU,OAAO,EAG5F,OAAO,oCAGT,SAAoB,GAAyC,IACnD,EAAgB,KAAhB,YACA,EAAU,EAAV,MACF,EAAY,EAAY,OAAO,IAC/B,EAAc,EAAY,OAAO,MAC/B,EAAuB,KAAvB,OAAQ,EAAe,KAAf,WACV,EAAW,EAAO,MAEV,UAAV,IACF,aAAO,KAAK,WAAY,EAAO,OAGjC,cAAiC,CAC/B,CAAC,EAAa,GACd,CAAC,EAAW,IAFd,WAGY,UAHqB,CAC/B,CAAC,EAAa,GACd,CAAC,EAAW,IACF,MAHA,EAGA,KAHW,EAGX,KACV,EAAU,KAAK,GAAK,EAAM,EAC1B,EAAU,KAAK,GAAK,EAAM,EAC1B,EAAU,OAAO,GAAK,EAAM,EAC5B,EAAU,OAAO,GAAK,EAAM,EAnB6B,IAsBnD,EAAc,KAAK,OAAnB,UACF,EAAO,EAAI,MAAQ,EAAY,KAErC,EAAK,MAAQ,EAAU,KACvB,EAAK,OAAS,EAAU,MACxB,EAAK,KAAO,EAAU,IACtB,EAAK,QAAU,EAAU,OAEzB,EAAK,MAAQ,EAAK,MAAQ,EAAK,KAC/B,EAAK,OAAS,EAAK,OAAS,EAAK,+BAGnC,SACE,GAMc,IACN,EAAgB,KAAhB,YACA,EAAiC,EAAjC,MAAO,EAA0B,EAA1B,OAAQ,EAAkB,EAAlB,cAEjB,EAAS,KAAK,OAClB,KAAK,QAAQ,CACX,SACA,QACA,WAAY,EAAI,gBAAkB,EAAY,OAAO,IAAI,QAQ7D,GAJA,KAAK,OAAS,GAKX,EAAO,WACN,GAAiB,EAAgB,KAAK,OAAO,SAC/C,EAAY,cAEZ,OAAO,EAGT,GAAI,EAAI,eAAgB,KACd,EAAS,EAAY,OAAO,IAA5B,KACF,EAAa,CACjB,EAAG,EAAI,eAAe,EAAI,EAAK,EAC/B,EAAG,EAAI,eAAe,EAAI,EAAK,GAGjC,EAAO,OAAO,GAAK,EAAW,EAC9B,EAAO,OAAO,GAAK,EAAW,EAC9B,EAAO,MAAM,GAAK,EAAW,EAC7B,EAAO,MAAM,GAAK,EAAW,EAG/B,KAAK,mBAAmB,4BAG1B,SAAW,GAA8E,IAC/E,EAAuB,EAAvB,YAAa,EAAU,EAAV,MACf,EAAS,KAAK,OAEpB,GAAK,GAAW,EAAO,OAAvB,CAMA,IAFA,IAAI,GAAW,EAEf,MAAoB,EAApB,WAA4B,KAAjB,EAAS,EAAQ,GAC1B,EAAI,MAAQ,EADc,IAElB,EAAqB,EAArB,QAAS,EAAY,EAAZ,QAEX,EAAc,EAAQ,WAAa,EAAQ,UAAW,GAE5D,GAAI,EAEF,OADA,KAAK,UAAY,GACV,EAGT,EAAW,IAAc,GAAY,KAAK,SAAS,GAAS,EAAM,EAAI,OAAO,GAG3E,GAEF,EAAY,KAAK,CAAE,QAAO,QAAQ,yBAItC,SAAM,GAAmC,IAC/B,EAAgB,EAAhB,YAER,GAAK,KAAK,QAAW,KAAK,OAAO,OAAjC,CAIA,IAAM,GAAoC,aACxC,CACE,OAAQ,KAAK,OACb,aAAc,EAAY,aAC1B,QAAS,EAAY,QACrB,KAAM,MAER,GAGF,KAAK,QAAQ,GAEb,cAAoB,KAAK,OAAzB,WAAiC,KAAtB,EAAS,KAAK,OAAQ,GAC/B,EAAY,MAAQ,EAEhB,EAAM,QAAQ,MAChB,EAAM,QAAQ,KAAK,GAIvB,KAAK,OAAS,KACd,KAAK,UAAY,mCAGnB,SAAe,GACb,KAAK,OAAS,GAEd,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAa,OAAQ,IAAS,OACrB,EAAa,GAAxC,EADgD,EAChD,QAAS,EADuC,EACvC,QAAS,EAD8B,EAC9B,KAE1B,KAAK,OAAO,KAAK,CACf,UACA,UACA,QACA,SAIJ,OAAO,KAAK,+CAGd,YAAyG,QAA7E,YAAe,EAA8D,EAA9D,OAAQ,EAAsD,EAAtD,KAAM,EAAgD,EAAhD,aACvD,GAAK,EAAa,OAAlB,CAUA,IAXuG,IAG/F,EAAe,EAAf,WAH+F,EAIhE,EAAa,OAArC,EAJwF,EAI/F,MAAiB,EAJ8E,EAI9E,UAEnB,EAAkB,CACtB,CAAC,EAAO,MAAO,GACf,CAAC,EAAO,IAAK,IAGf,MAAiC,EAAjC,WAAyD,UAAxB,EAAwB,MAA7C,EAA6C,KAAlC,EAAkC,KACvD,EAAU,KAAK,GAAK,EAAM,EAC1B,EAAU,KAAK,GAAK,EAAM,EAC1B,EAAU,OAAO,GAAK,EAAM,EAC5B,EAAU,OAAO,GAAK,EAAM,EAG9B,EAAK,MAAQ,EAAU,KACvB,EAAK,OAAS,EAAU,MACxB,EAAK,KAAO,EAAU,IACtB,EAAK,QAAU,EAAU,gCAG3B,SAAU,EAAS,EAAkB,EAAgB,GACnD,SAEG,IACmB,IAApB,EAAQ,SAEP,IAAmB,EAAQ,SAE3B,EAAQ,UAAY,GAEV,UAAV,IAAsB,EAAQ,kCAQnC,SAAU,GACR,KAAK,YAAc,EAAM,YACzB,KAAK,WAAa,EAAM,WACxB,KAAK,MAAQ,EAAM,MACnB,KAAK,OAAS,EAAM,OAAO,KAAI,SAAC,GAAD,OAAO,cAAM,MAC5C,KAAK,OAAS,IAAa,aAAO,GAAI,EAAM,OAAO,SAAS,aAAO,GAAI,EAAM,OAAO,8BAGtF,WACE,IAAK,IAAM,KAAQ,KACjB,KAAK,GAAQ,8BAnUE,GAwUrB,SAAS,GAAc,EAAgB,GACrC,MAAO,CACL,OACA,SACA,MAAO,CAAE,EAAG,EAAG,EAAG,GAClB,UAAW,CACT,KAAM,EACN,MAAO,EACP,IAAK,EACL,OAAQ,GAEV,WAAY,GACZ,SAAS,GA2BN,SAAS,GAAe,EAAM,GACnC,OAAO,EACH,CACA,KAAM,EAAO,EAAI,EAAK,KACtB,IAAK,EAAO,EAAI,EAAK,IACrB,MAAO,EAAK,MAAQ,EAAO,EAC3B,OAAQ,EAAK,OAAS,EAAO,GAE7B,CACA,KAAM,EACN,IAAK,EACL,MAAO,EACP,OAAQ,2BCtQP,SAAS,GAAT,GAMJ,IALD,EAKC,EALD,OAMM,EADL,EAJD,YAK2B,aAAc,OAErC,IACF,EAAO,UAAY,EAAO,8EA9DvB,SAKJ,EAAiD,GAAa,IACvD,EAAa,EAAb,SACF,EAAU,CACd,MAAO,EAAO,MACd,IAAK,EAAO,IACZ,UAAW,EAAO,UAClB,KAAM,EAAO,MAGT,EAAW,SAAC,GAChB,IAAM,EAAW,GAAY,GAK7B,IAAK,IAAM,KAHX,EAAQ,SAA8B,IAApB,EAAQ,QAGP,EACX,KAAQ,IACV,EAAgB,GAAQ,EAAS,IAIvC,IAAM,EAA6C,CACjD,UACA,UACA,OACA,OAAQ,WAEN,OADA,EAAQ,SAAU,EACX,GAET,QAAS,WAEP,OADA,EAAQ,SAAU,EACX,IAIX,OAAO,GAST,OANI,GAAwB,iBAAT,IAEjB,EAAS,UAAY,EACrB,EAAS,SAAW,GAGf,6CAiBT,OAA8B,CAC5B,GAAI,iBACJ,OAAQ,CAAC,WACT,QAAS,SAAC,GACR,EAAM,SAAS,UAAU,UAAY,IAEvC,UAAW,CACT,mBAAoB,YAAqB,IAAlB,EAAkB,EAAlB,YACrB,EAAY,aAAe,IAAI,WAAa,IAG9C,mCAAoC,SAAC,GACnC,IAAM,EAAe,EAAI,YAAY,aAErC,EAAa,MAAM,EAAK,EAAI,YAAY,OAAO,MAAM,MACrD,EAAI,YAAY,MAAQ,EAAa,MACrC,EAAa,mBAAmB,IAGlC,kCAAmC,SAAC,GAAD,OAAS,EAAI,YAAY,aAAa,YAAY,IAErF,iCAAkC,SAAC,GAAD,OAAS,EAAI,YAAY,aAAa,UAAU,IAElF,4BAA6B,GAC7B,2BAA4B,GAC5B,0BAA2B,GAE3B,kCAAmC,SAAC,GAAD,OAAS,EAAI,YAAY,aAAa,yBAAyB,IAClG,iCAAkC,SAAC,GAAD,OAAS,EAAI,YAAY,aAAa,yBAAyB,IAEjG,oBAAqB,SAAC,GAAD,OAAS,EAAI,YAAY,aAAa,KAAK,+GCzJlC,CAChC,KAAM,CACJ,eAAgB,OAChB,YAAa,QAGf,UAAW,CACT,SAAS,EACT,OAAQ,CAAE,EAAG,EAAG,EAAG,IAGrB,QAAS,0gCCZE,8pBAmCX,WACE,EACA,EACA,EACA,EACA,EACA,EACA,GACA,kHACA,cAAM,IADN,2EArC8B,MAqC9B,moBAGA,EAAU,GAAW,EAAY,QAEjC,IAAM,EAAS,EAAY,aACrB,GAAiB,GAAU,EAAO,SAAY,aAAkB,YAChE,GAAS,aAAY,EAAQ,EAAS,GACtC,EAAqB,UAAV,EACX,EAAmB,QAAV,EACT,EAAY,EAAQ,MAAU,EAAY,UAC1C,EAAS,EACX,EAAY,OAAO,MACnB,EACE,CAAE,KAAM,EAAU,KAAM,OAAQ,EAAU,OAAQ,UAAW,EAAY,OAAO,IAAI,WACpF,EAAY,OAAO,IAfzB,OAiBA,EAAK,MAAO,aAAO,GAAI,EAAO,MAC9B,EAAK,QAAS,aAAO,GAAI,EAAO,QAChC,EAAK,MAAO,aAAO,GAAI,EAAY,MACnC,EAAK,UAAY,EAAO,UAEnB,IACH,EAAK,KAAK,GAAK,EAAO,EACtB,EAAK,KAAK,GAAK,EAAO,EAEtB,EAAK,OAAO,GAAK,EAAO,EACxB,EAAK,OAAO,GAAK,EAAO,GAG1B,EAAK,QAAU,EAAM,QACrB,EAAK,OAAS,EAAM,OACpB,EAAK,SAAW,EAAM,SACtB,EAAK,QAAU,EAAM,QACrB,EAAK,OAAU,EAAqB,OACpC,EAAK,QAAW,EAAqB,QACrC,EAAK,OAAS,EACd,EAAK,cAAgB,EACrB,EAAK,OAAS,EACd,EAAK,KAAO,GAAQ,GAAc,GAAS,IAC3C,EAAK,aAAe,EAEpB,EAAK,GAAK,EAAW,EAAY,SAAS,EAAY,SAAS,OAAS,GAAG,SAAW,EAAU,GAEhG,EAAK,GAAK,EAAY,OAAO,MAAM,KAAK,EAAI,EAAO,EACnD,EAAK,GAAK,EAAY,OAAO,MAAM,KAAK,EAAI,EAAO,EACnD,EAAK,SAAW,EAAY,OAAO,MAAM,OAAO,EAAI,EAAO,EAC3D,EAAK,SAAW,EAAY,OAAO,MAAM,OAAO,EAAI,EAAO,EAGzD,EAAK,MADH,GAAY,EACD,CAAE,EAAG,EAAG,EAAG,GAEX,CACX,EAAG,EAAK,GAAa,EAAI,EAAU,GAAa,EAChD,EAAG,EAAK,GAAa,EAAI,EAAU,GAAa,GAIpD,EAAK,GAAK,EAAY,OAAO,MAAM,UACnC,EAAK,SAAW,EAAK,UAAY,EAAK,GAGtC,EAAK,UAAW,aAAO,GAAI,EAAY,OAAO,SAAS,IACvD,EAAK,OAAQ,aAAM,EAAK,SAAS,EAAG,EAAK,SAAS,GAElD,EAAK,MAAQ,GAAoB,iBAAV,EAA2B,EAAK,WAAa,KAjEpE,uCAoEF,WACE,IAAM,EAAc,KAAK,aAEzB,GAAI,EAAY,UAAU,MAAQ,KAAO,KAAK,UAAY,EAAY,UAAU,UAAY,IAC1F,OAAO,KAGT,IAAI,EAAS,IAAM,KAAK,MAAM,EAAY,UAAU,UAAW,EAAY,UAAU,WAAc,KAAK,GAGpG,EAAQ,IACV,GAAS,KAGX,IAAM,EAAO,OAAiB,GAAS,EAAQ,MACzC,EAAK,OAAiB,GAAS,EAAQ,MAK7C,MAAO,CACL,KACA,MAJY,GAAM,MAAgB,GAAS,EAAQ,MAKnD,OACA,OAPa,IAAS,OAAiB,GAAS,EAAQ,MAQxD,QACA,MAAO,EAAY,UAAU,MAC7B,SAAU,CACR,EAAG,EAAY,UAAU,UACzB,EAAG,EAAY,UAAU,0CAK/B,oDAKA,WACE,KAAK,4BAA8B,KAAK,oBAAqB,iCAM/D,WACE,KAAK,oBAAqB,2BA9JjB,CAGH,iCAiKV,OAAO,iBAAiB,GAAc,UAAW,CAC/C,MAAO,CACL,IADK,WAEH,OAAO,KAAK,KAAK,GAEnB,IAJK,SAIA,GACH,KAAK,KAAK,EAAI,IAGlB,MAAO,CACL,IADK,WAEH,OAAO,KAAK,KAAK,GAEnB,IAJK,SAIA,GACH,KAAK,KAAK,EAAI,IAIlB,QAAS,CACP,IADO,WAEL,OAAO,KAAK,OAAO,GAErB,IAJO,SAIF,GACH,KAAK,OAAO,EAAI,IAGpB,QAAS,CACP,IADO,WAEL,OAAO,KAAK,OAAO,GAErB,IAJO,SAIF,GACH,KAAK,OAAO,EAAI,IAIpB,GAAI,CACF,IADE,WAEA,OAAO,KAAK,MAAM,GAEpB,IAJE,SAIG,GACH,KAAK,MAAM,EAAI,IAGnB,GAAI,CACF,IADE,WAEA,OAAO,KAAK,MAAM,GAEpB,IAJE,SAIG,GACH,KAAK,MAAM,EAAI,IAInB,UAAW,CACT,IADS,WAEP,OAAO,KAAK,SAAS,GAEvB,IAJS,SAIJ,GACH,KAAK,SAAS,EAAI,IAGtB,UAAW,CACT,IADS,WAEP,OAAO,KAAK,SAAS,GAEvB,IAJS,SAIJ,GACH,KAAK,SAAS,EAAI,gOC9PtB,WAAa,EAAY,EAAsB,EAAyB,EAAkB,gGAAkB,wIAC1G,KAAK,GAAK,EACV,KAAK,QAAU,EACf,KAAK,MAAQ,EACb,KAAK,SAAW,EAChB,KAAK,WAAa,OCcV,GASA,uhBATA,+JASA,2FAuEZ,IAAI,GAAY,EAEH,cAmFX,cAA6F,WAA9E,EAA8E,EAA9E,YAAa,EAAiE,EAAjE,uGAAiE,gCAjFhE,MAiFgE,kBA9E1E,MA8E0E,wHAjElE,CACzB,KAAM,KACN,KAAM,KACN,MAAO,OA8DoF,iDAxDnE,IAwDmE,oBArD/D,MAqD+D,sBAnDlE,IAmDkE,yBA7CzF,CACF,QAAS,KACT,MAAO,KACP,YAAa,OA0C8E,oBAtCnD,MAsCmD,yBApC7E,GAoC6E,2BAnC3E,GAmC2E,wBAlC9E,GAkC8E,mBAjCnF,GAiCmF,oBAhClF,GAgCkF,iBA/B/D,MA+B+D,qBA7BhF,MA6BgF,kBApBpF,gBAAS,SAA6B,GAC7C,KAAK,KAAK,KACT,2EAkB0F,iBAhBzE,CAElB,MAAO,EAAa,YAEpB,KAAM,EAAa,YAEnB,IAAK,EAAa,YAElB,MAAO,EAAa,YAEpB,SAAU,EAAa,cAMoE,cAHtE,MAIrB,KAAK,WAAa,EAClB,KAAK,YAAc,EAEnB,IAAM,EAAO,KAEb,KAAK,OAAS,GAN6E,eAQhF,GACT,OAAO,eAAe,EAAK,OAAQ,EAAK,CACtC,IADsC,WAEpC,OAAO,EAAK,OAHlB,IAAK,IAAM,KAAO,GAAc,EAArB,GARgF,eAgBhF,GACT,OAAO,eAAe,EAAK,OAAQ,EAAK,CACtC,MAAO,kBAAoB,EAAK,GAAL,QAAI,eAFnC,IAAK,IAAM,KAAO,GAAe,EAAtB,GAMX,KAAK,WAAW,mBAAoB,CAAE,YAAa,8DAjDpC,WACf,OAAO,6BAmDT,SAAa,EAAsB,EAAyB,GAC1D,IAAM,EAAe,KAAK,cAAc,EAAS,EAAO,GAAa,GAC/D,EAAc,KAAK,SAAS,GAElC,KAAK,WAAW,oBAAqB,CACnC,UACA,QACA,cACA,eACA,cACA,KAAM,OACN,YAAc,4BAmClB,SAA6B,EAAwB,EAA4B,GAC/E,QACE,KAAK,gBACJ,KAAK,eACN,KAAK,SAAS,QAA0B,YAAhB,EAAO,KAAqB,EAAI,KACvD,EAAa,QAAQ,EAAO,MAA8B,YAK7D,iBAAW,KAAK,SAAU,GAE1B,KAAK,aAAe,EACpB,KAAK,QAAU,EACf,KAAK,KAAO,EAAa,QAAQ,GACjC,KAAK,MAAQ,KAAK,SAAS,OACvB,aAAO,GAAI,KAAK,SAAS,OACzB,CAAE,MAAM,EAAM,OAAO,EAAM,KAAK,EAAM,QAAQ,GAClD,KAAK,UAAW,EAChB,KAAK,aACH,KAAK,SAAS,CACZ,YAAa,KACb,MAAO,KAAK,UACZ,MAAO,YACF,KAAK,SAEP,KAAK,yCAGd,SAAa,EAAsB,EAAyB,GACrD,KAAK,YAAgB,KAAK,cAAgB,KAAK,aAAa,WAC/D,KAAK,cAAc,EAAS,EAAO,GAAa,GAGlD,IAMI,EACA,EAPE,EACJ,KAAK,OAAO,IAAI,KAAK,IAAM,KAAK,OAAO,KAAK,KAAK,GACjD,KAAK,OAAO,IAAI,KAAK,IAAM,KAAK,OAAO,KAAK,KAAK,GACjD,KAAK,OAAO,IAAI,OAAO,IAAM,KAAK,OAAO,KAAK,OAAO,GACrD,KAAK,OAAO,IAAI,OAAO,IAAM,KAAK,OAAO,KAAK,OAAO,EAMnD,KAAK,gBAAkB,KAAK,kBAC9B,EAAK,KAAK,OAAO,IAAI,OAAO,EAAI,KAAK,OAAO,MAAM,OAAO,EACzD,EAAK,KAAK,OAAO,IAAI,OAAO,EAAI,KAAK,OAAO,MAAM,OAAO,EAEzD,KAAK,iBAAkB,aAAM,EAAI,GAAM,KAAK,sBAG9C,IAAM,EAAe,KAAK,gBAAgB,GACpC,EAAY,CAChB,UACA,eACA,YAAa,KAAK,SAAS,GAC3B,QACA,KAAM,OACN,cACA,KACA,KACA,UAAW,EACX,YAAc,MAGX,GAEH,EAAa,iBAAiB,KAAK,OAAO,SAAU,KAAK,OAAO,OAGlE,KAAK,WAAW,oBAAqB,GAEhC,GAAkB,KAAK,aAEtB,KAAK,gBACP,EAAU,KAAO,KACjB,KAAK,KAAK,IAGR,KAAK,iBACP,EAAa,WAAW,KAAK,OAAO,KAAM,KAAK,OAAO,0BAuB5D,SAAM,GACC,GAAc,EAAU,OAC3B,EAAa,cAAc,KAAK,OAAO,QAGzC,GAAY,aACV,CACE,QAAS,KAAK,eAAe,QAC7B,MAAO,KAAK,eAAe,MAC3B,YAAa,KAAK,eAAe,YACjC,YAAa,MAEf,GAAa,KAGL,MAAQ,OAElB,KAAK,SAAS,4BAIhB,SAAW,EAAsB,EAAyB,EAAmB,GAC3E,IAAI,EAAe,KAAK,gBAAgB,IAElB,IAAlB,IACF,EAAe,KAAK,cAAc,EAAS,EAAO,GAAa,IAGjE,IAAM,EAAO,WAAW,KAAK,EAAM,MAAQ,SAAW,KAEtD,KAAK,WAAL,uBAAgC,GAAqD,CACnF,UACA,eACA,YAAa,KAAK,SAAS,GAC3B,QACA,cACA,KAAM,EACN,iBACA,YAAc,OAGX,KAAK,YACR,KAAK,IAAI,GAGX,KAAK,cAAc,EAAS,+BAG9B,SAAc,GACZ,KAAK,IAAI,GACT,KAAK,WAAW,oBAAqB,CACnC,QACA,KAAM,OACN,YAAc,0BAoBlB,SAAK,GAGH,IAAI,EAFJ,KAAK,SAAU,EACf,EAAQ,GAAS,KAAK,eAAe,MAGjC,KAAK,gBACP,EAAiB,KAAK,SAAS,CAC7B,QACA,YAAa,KACb,MAAO,SAIX,KAAK,SAAU,GAEQ,IAAnB,GACF,KAAK,oCAIT,WACE,OAAO,KAAK,aAAe,KAAK,SAAS,KAAO,gCAGlD,WACE,OAAO,KAAK,iCAId,WACE,KAAK,WAAW,oBAAqB,CAAE,YAAa,OAEpD,KAAK,aAAe,KAAK,QAAU,KAEnC,KAAK,cAAe,EACpB,KAAK,UAAW,EAChB,KAAK,SAAS,KAAO,KAAK,UAAY,oCAGxC,SAAiB,GACf,IAAM,EAAY,EAAa,aAAa,GAG5C,MAA4B,UAArB,KAAK,aAAgD,QAArB,KAAK,YACxC,KAAK,SAAS,OAAS,EACvB,EAAI,UAAU,KAAK,UAAU,SAAC,GAAD,OAAgB,EAAW,KAAO,mCAGrE,SAAgB,GACd,OAAO,KAAK,SAAS,KAAK,gBAAgB,iCAG5C,SAAe,EAAsB,EAAyB,EAAmB,GAC/E,IAAM,EAAK,EAAa,aAAa,GACjC,EAAe,KAAK,gBAAgB,GACpC,EAAc,KAAK,SAAS,GAgDhC,OA9CA,GAAgB,IAAT,IAAyB,GAAQ,iBAAiB,KAAK,EAAM,OAE/D,EAMH,EAAY,QAAU,GALtB,EAAc,IAAI,eAAY,EAAI,EAAS,EAAO,KAAM,MAExD,EAAe,KAAK,SAAS,OAC7B,KAAK,SAAS,KAAK,IAKrB,EAAa,UACX,KAAK,OAAO,IACZ,KAAK,SAAS,KAAI,SAAC,GAAD,OAAO,EAAE,WAC3B,KAAK,QAEP,EAAa,eAAe,KAAK,OAAO,MAAO,KAAK,OAAO,KAAM,KAAK,OAAO,KAEzE,IACF,KAAK,eAAgB,EAErB,EAAY,SAAW,KAAK,OAAO,IAAI,UACvC,EAAY,WAAa,EACzB,EAAa,cAAc,KAAK,YAAa,GAExC,KAAK,gBACR,EAAa,WAAW,KAAK,OAAO,MAAO,KAAK,OAAO,KACvD,EAAa,WAAW,KAAK,OAAO,KAAM,KAAK,OAAO,KAEtD,KAAK,UAAY,EACjB,KAAK,iBAAkB,IAI3B,KAAK,qBAAqB,EAAS,EAAO,GAE1C,KAAK,WAAW,8BAA+B,CAC7C,UACA,QACA,cACA,OACA,cACA,eACA,YAAc,OAGT,+BAGT,SAAe,EAAsB,GACnC,IAAM,EAAe,KAAK,gBAAgB,GAE1C,IAAsB,IAAlB,EAAJ,CAEA,IAAM,EAAc,KAAK,SAAS,GAElC,KAAK,WAAW,8BAA+B,CAC7C,UACA,QACA,YAAa,KACb,eACA,cACA,YAAc,OAGhB,KAAK,SAAS,OAAO,EAAc,GACnC,KAAK,eAAgB,uCAGvB,SAAsB,EAAsB,EAAyB,GACnE,KAAK,eAAe,QAAU,EAC9B,KAAK,eAAe,MAAQ,EAC5B,KAAK,eAAe,YAAc,yBAGpC,WACE,KAAK,eAAe,QAAU,KAC9B,KAAK,eAAe,MAAQ,KAC5B,KAAK,eAAe,YAAc,yCAGpC,SACE,EACA,EACA,EACA,GAEA,OAAO,IAAI,iBAAoB,KAAM,EAAO,KAAK,SAAS,KAAM,EAAO,KAAK,QAAS,EAAQ,6BAG/F,SAAkC,GAChC,KAAK,aAAa,KAAK,KAElB,KAAK,WAAa,EAAO,WAAa,KAAK,UAAU,aACxD,KAAK,UAAY,2BAIrB,SACE,GACA,IACQ,EAA+B,EAA/B,MAAO,EAAwB,EAAxB,MAAO,EAAiB,EAAjB,OAAQ,EAAS,EAAT,KACtB,EAAS,KAAT,KAYR,GAVI,GAAkB,SAAV,IAEV,EAAU,SAAS,KAAK,MAAO,EAAM,KAAK,OAAO,MAAM,KAAK,aAAa,QAAQ,cAEjF,EAAK,MAAQ,EAAK,MAAQ,EAAK,KAC/B,EAAK,OAAS,EAAK,OAAS,EAAK,MAKd,IAFA,KAAK,WAAL,qCAA8C,GAAgB,GAGjF,OAAO,EAGT,IAAM,EAAU,EAAU,OAAS,KAAK,qBAAqB,EAAO,EAAO,EAAQ,GAYnF,OAVA,KAAK,WAAL,8BAAuC,GAAgB,GAEzC,UAAV,IACF,KAAK,UAAY,GAGnB,KAAK,WAAW,GAEhB,KAAK,WAAL,oCAA6C,GAAgB,IAEtD,sBAGT,WACE,OAAO,KAAK,+BAzgBH,4BA6gBE,2BCrmBR,SAAS,GAAU,GACnB,EAAY,gBAIjB,GAAY,EAAY,OAAO,IAAK,EAAY,OAAO,OAEvD,EAAY,OAAO,QAAQ,EAAI,EAC/B,EAAY,OAAO,QAAQ,EAAI,GAGjC,SAAS,GAAT,GACE,GADoE,EAA7C,aAsBlB,SAAS,GAAc,GAC5B,IA+BF,SAAqB,GACnB,SAAU,EAAY,OAAO,QAAQ,IAAK,EAAY,OAAO,QAAQ,GAhChE,CAAW,GACd,OAAO,EAF6C,IAK9C,EAAY,EAAY,OAAxB,QASR,OAPA,GAAY,EAAY,OAAO,IAAK,GACpC,GAAY,EAAY,OAAO,MAAO,GACtC,EAAU,SAAS,EAAY,MAAO,EAAY,KAAM,GAExD,EAAQ,EAAI,EACZ,EAAQ,EAAI,GAEL,EAGT,SAAS,GAAT,GAAuD,IAAf,EAAe,EAAf,EAAG,EAAY,EAAZ,EACzC,KAAK,OAAO,QAAQ,GAAK,EACzB,KAAK,OAAO,QAAQ,GAAK,EAEzB,KAAK,OAAO,MAAM,GAAK,EACvB,KAAK,OAAO,MAAM,GAAK,EAGzB,SAAS,GAAT,KAAyD,IAAjC,EAAiC,EAAjC,KAAM,EAA2B,EAA3B,OAAY,EAAe,EAAf,EAAG,EAAY,EAAZ,EAC3C,EAAK,GAAK,EACV,EAAK,GAAK,EACV,EAAO,GAAK,EACZ,EAAO,GAAK,wGAhEZ,iBAAsB,SAAW,GAuEnC,OAAuB,CACrB,GAAI,SACJ,OAAQ,CAAC,YAAa,iBAAkB,UAAW,WACnD,QAHqB,SAGZ,GACP,EAAM,YAAY,UAAU,SAAW,IAEzC,UAAW,CACT,mBAAoB,YAAqB,EAAlB,YACT,OAAS,CACnB,MAAO,CAAE,EAAG,EAAG,EAAG,GAClB,QAAS,CAAE,EAAG,EAAG,EAAG,KAGxB,8BAA+B,mBAAqB,GAArB,EAAG,cAClC,mCAAoC,GACpC,kCAAmC,GACnC,iCAtEJ,YAAmF,IAA7D,EAA6D,EAA7D,YAGpB,GAFmB,GAAa,GAOhC,OAHA,EAAY,KAAK,CAAE,QAAQ,IAC3B,EAAY,OAEL,GA+DL,oBA5DJ,YAA6D,IAA7C,EAA6C,EAA7C,YACd,EAAY,OAAO,MAAM,EAAI,EAC7B,EAAY,OAAO,MAAM,EAAI,EAC7B,EAAY,OAAO,QAAQ,EAAI,EAC/B,EAAY,OAAO,QAAQ,EAAI,qZCepB,cAwBX,WAAa,gGAA0B,2BAvB9B,GAuB8B,sBAtB1B,GAsB0B,qBArB3B,GAqB2B,uBApBzB,GAoByB,uDAjBvB,GAiBuB,yEAblC,GAakC,aAZlC,GAYkC,aAVlC,GAUkC,oHAL1B,GAK0B,oBAJ1B,GAI0B,wDACrC,KAAK,YAAc,4CAGrB,SAAO,GAAyB,IACtB,EAAgB,KAAhB,YACF,EAAU,GAAW,GAE3B,IAAK,IAAY,EAAQ,QACvB,OAAO,EALqB,IAQd,EAAmB,EAAY,OAAO,SAA9C,OACF,GAAe,aAAM,EAAe,EAAG,EAAe,GACtD,EAAe,KAAK,eAAiB,KAAK,aAAe,IAAI,WAAa,IAqBhF,GAnBA,EAAa,SAAS,EAAY,cAElC,KAAK,GAAK,EAAY,OACtB,KAAK,YAAc,EAAQ,YAC3B,KAAK,GAAK,EACV,KAAK,cAAgB,CAAE,EAAG,EAAG,EAAG,GAChC,KAAK,YAAc,EAAY,OAAO,IAAI,KAE1C,KAAK,YAAc,EAAa,QAAQ,CACtC,WAAY,KAAK,YACjB,QAAQ,EACR,MAAO,iBAIP,KAAK,GAAK,EAAY,OAAO,IAAI,UAAY,IAC7C,EAAe,EAAQ,UACvB,EAAe,EAAQ,SAGvB,KAAK,mBACA,CAGL,GAFA,EAAa,OAAS,EAAa,OAAO,KAAK,cAE1C,EAAa,OAAO,QACvB,OAAO,EAGT,KAAK,iBAoBP,OAhBA,EAAY,aAAa,OAAO,KAAO,KAGvC,EAAY,SAAS,KAAK,cAC1B,EAAY,SAAS,CACnB,cACA,QACA,MAAO,iBAET,EAAY,SAAS,CAAE,GAAI,KAAK,aAAa,EAAG,GAAI,KAAK,aAAa,IAEtE,EAAY,aAAa,OAAO,KAAO,KAEvC,KAAK,QAAS,EACd,EAAY,WAAa,MAElB,8BAGT,WAAgB,WACR,EAAgB,KAAK,YAAY,OAAO,SAAS,OACjD,EAAU,GAAW,KAAK,aAC1B,EAAS,EAAQ,WACjB,GAAc,KAAK,IAAI,EAAQ,SAAW,KAAK,IAAM,EAE3D,KAAK,aAAe,CAClB,GAAI,EAAc,EAAI,GAAc,EACpC,GAAI,EAAc,EAAI,GAAc,GAGtC,KAAK,GAAK,EACV,KAAK,UAAY,EAAS,KAAK,GAC/B,KAAK,UAAY,EAAI,EAAQ,SAAW,KAAK,GAb/B,IAeN,EAA8B,KAA9B,aAAc,EAAgB,KAAhB,YAEtB,EAAY,WAAa,CACvB,EAAG,KAAK,YAAY,EAAI,KAAK,aAAa,EAC1C,EAAG,KAAK,YAAY,EAAI,KAAK,aAAa,GAG5C,EAAa,OAAS,EAAa,OAAO,GAEtC,EAAa,OAAO,UACtB,KAAK,YAAa,EAClB,KAAK,eAAiB,CACpB,EAAG,KAAK,aAAa,EAAI,EAAa,OAAO,MAAM,EACnD,EAAG,KAAK,aAAa,EAAI,EAAa,OAAO,MAAM,IAIvD,KAAK,aAAY,kBAAM,EAAK,+CAG9B,WAAkB,WAChB,KAAK,WAAY,EACjB,KAAK,YAAa,EAClB,KAAK,aAAe,CAClB,EAAG,KAAK,aAAa,OAAO,MAAM,EAClC,EAAG,KAAK,aAAa,OAAO,MAAM,GAGpC,KAAK,aAAY,kBAAM,EAAK,8CAG9B,SAAa,GAAoB,WAC/B,KAAK,QAAU,WAAI,SAAQ,WACrB,EAAK,QACP,kCAKN,WAAe,IAsMf,EACA,EACA,EACA,EACA,EA1Me,OACL,EAAgB,KAAhB,YAEF,EADU,GAAW,GACJ,WACjB,GAAK,EAAY,OAAS,KAAK,IAAM,IAE3C,GAAI,EAAI,KAAK,GAAI,CACf,IACI,EADE,EAAW,GAAK,KAAK,KAAK,EAAS,GAAK,KAAK,WAAa,KAAK,UAGjE,KAAK,YAEL,EACA,EAyLR,EAxLQ,KAAK,aAAa,EAyL1B,EAxLQ,KAAK,aAAa,EAyL1B,EAxLQ,KAAK,eAAe,EAyL5B,EAxLQ,KAAK,eAAe,EANtB,EAiMC,CACL,EAAG,GAHL,EAxLQ,EANA,EAiMgC,EAAK,GAC3C,EAAG,GAAiB,EAjMd,EAiMgC,EAAK,KAzLvC,EAAY,CACV,EAAG,KAAK,aAAa,EAAI,EACzB,EAAG,KAAK,aAAa,EAAI,GAI7B,IAAM,EAAQ,CAAE,EAAG,EAAU,EAAI,KAAK,cAAc,EAAG,EAAG,EAAU,EAAI,KAAK,cAAc,GAE3F,KAAK,cAAc,GAAK,EAAM,EAC9B,KAAK,cAAc,GAAK,EAAM,EAE9B,EAAY,SAAS,GACrB,EAAY,OAEZ,KAAK,aAAY,kBAAM,EAAK,sBAE5B,EAAY,SAAS,CACnB,EAAG,KAAK,eAAe,EAAI,KAAK,cAAc,EAC9C,EAAG,KAAK,eAAe,EAAI,KAAK,cAAc,IAGhD,KAAK,mCAIT,WAAiB,WACP,EAAgB,KAAhB,YACF,EAAI,EAAY,OAAS,KAAK,GACT,EAAa,GAAW,GAA3C,kBAER,GAAI,EAAI,EAAU,CAChB,IAAM,EAAY,CAChB,EAAG,GAAY,EAAG,EAAG,KAAK,aAAa,EAAG,GAC1C,EAAG,GAAY,EAAG,EAAG,KAAK,aAAa,EAAG,IAEtC,EAAQ,CACZ,EAAG,EAAU,EAAI,KAAK,cAAc,EACpC,EAAG,EAAU,EAAI,KAAK,cAAc,GAGtC,KAAK,cAAc,GAAK,EAAM,EAC9B,KAAK,cAAc,GAAK,EAAM,EAE9B,EAAY,SAAS,GACrB,EAAY,KAAK,CAAE,cAAe,KAAK,gBAEvC,KAAK,aAAY,kBAAM,EAAK,wBAE5B,EAAY,SAAS,CACnB,EAAG,KAAK,aAAa,EAAI,KAAK,cAAc,EAC5C,EAAG,KAAK,aAAa,EAAI,KAAK,cAAc,IAG9C,KAAK,4BAIT,YAA0E,IAAhE,EAAgE,EAAhE,QAAS,EAAuD,EAAvD,MAAO,EAAgD,EAAhD,YAChB,EAAgB,KAAhB,YAGR,EAAY,SAAS,CACnB,GAAI,KAAK,cAAc,EACvB,GAAI,KAAK,cAAc,IAIzB,EAAY,cAAc,EAAS,EAAO,GAAa,GAGvD,EAAY,SAAS,CACnB,cACA,QACA,MAAO,YAET,gBAAW,EAAY,OAAO,KAAM,EAAY,OAAO,KAEvD,KAAK,0BAGP,WACE,KAAK,YAAY,OACjB,KAAK,YAAY,MACjB,KAAK,2BAGP,WACE,KAAK,OAAS,KAAK,WAAY,EAC/B,KAAK,YAAY,WAAa,KAC9B,WAAI,OAAO,KAAK,kCA/PP,GA4Sb,SAAS,GAAT,GAA8D,IAAvC,EAAuC,EAAvC,aAAc,EAAyB,EAAzB,SACnC,OAAO,GAAgB,EAAa,SAAW,EAAS,MAAQ,EAAa,QAAQ,EAAS,MAAM,QAkCtG,SAAS,GAAkB,EAAW,EAAY,EAAY,GAC5D,IAAM,EAAK,EAAI,EACf,OAAO,EAAK,EAAK,EAAK,EAAI,EAAK,EAAI,EAAK,EAAI,EAAI,EAmBlD,SAAS,GAAa,EAAW,EAAW,EAAW,GAErD,OAAQ,GADR,GAAK,IACY,EAAI,GAAK,4BAtDJ,CACtB,GAAI,UACJ,OAAQ,CAAC,YAAa,WACtB,QArUF,SAAkB,GAAc,IACtB,EAAa,EAAb,SAER,EAAM,UAAU,YAChB,EAAM,UAAU,GAAU,SAC1B,EAAM,QAAQ,OAAO,cAAe,EACpC,EAAM,QAAQ,OAAO,QAAS,EAE9B,EAAS,UAAU,QAAU,CAC3B,SAAS,EACT,WAAY,GACZ,SAAU,IACV,SAAU,GACV,aAAa,EACb,kBAAmB,MAwTrB,UAAW,CACT,mBAAoB,YAAqB,IAAlB,EAAkB,EAAlB,YACrB,EAAY,QAAU,IAAI,GAAa,IAGzC,iCAtDJ,YAAuE,IAArD,EAAqD,EAArD,YAAa,EAAwC,EAAxC,MAC7B,QAAK,EAAY,cAAgB,EAAY,aAI7B,EAAY,QAAQ,MAAM,KAHjC,MAqDP,oBA1CJ,SAAiB,GAAsC,IAC7C,EAA6B,EAA7B,YAAa,EAAgB,EAAhB,YACf,EAAQ,EAAY,QAE1B,GAAK,EAAM,OAKX,IAHA,IAAI,EAAU,EAGP,UAAG,QAAQ,IAAU,CAE1B,GAAI,IAAY,EAAY,QAAS,CACnC,EAAM,OAAO,GACb,MAGF,EAAU,EAAI,WAAW,KA2BzB,oBAvBJ,YAA8D,IACtD,EADsD,EAA7C,YACW,QAEtB,EAAM,QACR,EAAM,QAqBN,oCAAqC,SAAC,GAAQ,IACpC,EAAiB,EAAI,YAArB,aAER,EAAa,KAAK,GAClB,EAAa,MAAM,EAAK,EAAI,YAAY,OAAO,IAAI,MACnD,EAAa,mBAAmB,IAGlC,0CAA2C,SAAC,GAAD,OAAS,EAAI,YAAY,aAAa,YAAY,IAC7F,6BAA8B,GAAU,kBACxC,mCAAoC,GAAU,kBAC9C,yCAA0C,SAAC,GAAD,OACxC,EAAI,YAAY,aAAa,yBAAyB,IACxD,mCAAoC,SAAC,GAAD,OAAS,EAAI,YAAY,aAAa,yBAAyB,8TCvYvG,SAAS,GAA2B,EAAY,GAC9C,cAAuB,EAAvB,WAAkC,KAAvB,EAAY,EAAW,GAChC,GAAI,EAAM,4BACR,MAGF,EAAS,8EAIA,cAOX,WAAa,gGAAoC,mDALpB,IAKoB,8BAJ5B,GAI4B,uCAHnB,GAGmB,yBAC/C,KAAK,SAAU,aAAO,GAAI,GAAW,6CAGvC,SAAgE,GAC9D,IAAI,EACE,EAAS,KAAK,QAIf,EAAY,KAAK,MAAM,EAAM,QAChC,GAA0B,EAAO,IAI9B,EAAM,oBAAsB,IAAW,EAAY,EAAO,EAAM,QACnE,GAA0B,EAAO,qBAIrC,SAAI,EAAc,GAChB,IAAM,GAAY,aAAU,EAAM,GAElC,IAAK,KAAQ,EACX,KAAK,MAAM,GAAQ,EAAI,MAAM,KAAK,MAAM,IAAS,GAAI,EAAU,uBAInE,SAAK,EAAc,GACjB,IAAM,GAAY,aAAU,EAAM,GAElC,IAAK,KAAQ,EAAW,CACtB,IAAM,EAAY,KAAK,MAAM,GAE7B,GAAK,GAAc,EAAU,OAI7B,cAA0B,EAAU,GAApC,WAA2C,KAAhC,EAAe,EAAU,GAAO,GACnC,EAAQ,EAAU,QAAQ,IAEjB,IAAX,GACF,EAAU,OAAO,EAAO,4BAMhC,SAAS,GACP,OAAO,8BAxDE,0FCdE,SAA2B,EAAc,GACtD,GAAI,EAAQ,eAAe,GACzB,OAAO,EAGT,IAAK,IAAM,KAAQ,EAAQ,IACzB,GAA2B,IAAvB,EAAK,QAAQ,IAAe,EAAK,OAAO,EAAK,UAAW,EAAQ,OAClE,OAAO,EAIX,OAAO,uFCoCF,SAA+B,GA0BpC,IAAM,EAAY,SAAZ,EAAa,EAAgB,GACjC,IAAI,EAAe,EAAM,cAAc,IAAI,EAAQ,GAOnD,OALK,KACH,EAAe,EAAM,cAAc,IAAI,EAAQ,IAClC,OAAO,OAAS,EAAS,cAGjC,GA+MT,OA3MA,EAAS,kBAAoB,EAAa,eAC1C,EAAS,aAAe,EAAa,UACrC,EAAS,iBAAmB,EAAa,cACzC,EAAS,cAAgB,EAAa,WAEtC,EAAS,eAAiB,EAAS,eACnC,EAAS,qBAAuB,EAAS,qBACzC,EAAS,gBAAkB,EAAS,gBACpC,EAAS,QAAU,EAAS,QAE5B,EAAS,aAAe,GAGxB,EAAS,QAAU,UACnB,EAAS,MAAQ,EAOjB,EAAS,IAAM,SAAU,EAAQ,GAG/B,OAFA,KAAK,MAAM,UAAU,EAAQ,GAEtB,MAcT,EAAS,MAAQ,SAAU,EAAgB,GACzC,QAAS,KAAK,MAAM,cAAc,IAAI,EAAQ,GAAW,EAAQ,UAenE,EAAS,IAAK,gBAAS,SAAa,EAA2B,EAAwB,GAKrF,GAJI,UAAG,OAAO,KAA+B,IAAtB,EAAK,OAAO,OACjC,EAAO,EAAK,OAAO,MAAM,OAGvB,UAAG,MAAM,GAAO,CAClB,cAAwB,EAAxB,WAAuC,KAA5B,EAAa,EAAe,GACrC,KAAK,GAAG,EAAW,EAAU,GAG/B,OAAO,KAGT,GAAI,UAAG,OAAO,GAAO,CACnB,IAAK,IAAM,KAAQ,EACjB,KAAK,GAAG,EAAO,EAAa,GAAO,GAGrC,OAAO,KAiBT,OAbI,cAAiB,EAAM,KAAK,MAAM,SAE/B,KAAK,aAAa,GAGrB,KAAK,aAAa,GAAM,KAAK,GAF7B,KAAK,aAAa,GAAQ,CAAC,GAO7B,KAAK,MAAM,OAAO,IAAI,KAAK,MAAM,SAAU,EAAM,EAAsB,CAAE,YAGpE,OACN,gDAeH,EAAS,KAAM,gBAAS,SAAc,EAAkB,EAAe,GAKrE,GAJI,UAAG,OAAO,KAA+B,IAAtB,EAAK,OAAO,OACjC,EAAO,EAAK,OAAO,MAAM,OAGvB,UAAG,MAAM,GAAO,CAClB,cAAwB,EAAxB,WAA8B,KAAnB,EAAa,EAAM,GAC5B,KAAK,IAAI,EAAW,EAAU,GAGhC,OAAO,KAGT,GAAI,UAAG,OAAO,GAAO,CACnB,IAAK,IAAM,KAAQ,EACjB,KAAK,IAAI,EAAM,EAAK,GAAO,GAG7B,OAAO,KAIP,IAAI,EASN,OAVI,cAAiB,EAAM,KAAK,MAAM,SAGhC,KAAQ,KAAK,eAAyE,KAAxD,EAAQ,KAAK,aAAa,GAAM,QAAQ,KACxE,KAAK,aAAa,GAAM,OAAO,EAAO,GAGxC,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,SAAU,EAAM,EAAU,GAGzD,OACN,iDAEH,EAAS,MAAQ,WACf,OAAO,KAAK,OAQd,EAAS,cAAgB,WACvB,OAAO,UAAQ,eAQjB,EAAS,qBAAuB,WAC9B,OAAO,UAAQ,sBAUjB,EAAS,KAAO,WACd,cAA0B,KAAK,MAAM,aAAa,KAAlD,WAA0B,KAAK,MAAM,aAAa,KAAM,GAC1C,OAGd,OAAO,MAYT,EAAS,qBAAuB,SAAU,GACxC,OAAI,UAAG,OAAO,IACZ,KAAK,MAAM,aAAa,qBAAuB,EAExC,MAGF,KAAK,MAAM,aAAa,sBAGjC,EAAS,YAAc,SAAU,EAAe,GAC9C,KAAK,MAAM,YAAY,EAAK,IAG9B,EAAS,eAAiB,SAAU,GAClC,KAAK,MAAM,eAAe,IAGrB,0XCpQI,cAqBX,WACE,EACA,EACA,EACA,gGACA,wGAdgB,IAAI,cAcpB,uIACA,KAAK,SAAW,EAAQ,QACxB,KAAK,OAAS,EACd,KAAK,SAAW,EAAQ,SAAW,EACnC,KAAK,MAAO,gBAAU,iBAAY,GAAU,KAAK,SAAW,GAC5D,KAAK,KAAO,KAAK,KAAK,SACtB,KAAK,aAAe,EAEpB,KAAK,IAAI,+CAjCM,WACf,MAAO,CACL,KAAM,GACN,UAAW,GACX,QAAS,+BAgCb,SAAa,EAAwB,GAcnC,OAbI,UAAG,KAAK,EAAO,UACjB,KAAK,GAAL,UAAW,EAAX,SAA8B,EAAO,SAEnC,UAAG,KAAK,EAAO,SACjB,KAAK,GAAL,UAAW,EAAX,QAA6B,EAAO,QAElC,UAAG,KAAK,EAAO,QACjB,KAAK,GAAL,UAAW,EAAX,OAA4B,EAAO,OAEjC,UAAG,KAAK,EAAO,iBACjB,KAAK,GAAL,UAAW,EAAX,gBAAqC,EAAO,gBAGvC,6CAGT,SAA0B,EAAwB,EAAiB,IAC7D,UAAG,MAAM,IAAS,UAAG,OAAO,KAC9B,KAAK,IAAI,EAAY,IAGnB,UAAG,MAAM,IAAQ,UAAG,OAAO,KAC7B,KAAK,GAAG,EAAY,+BAIxB,SAAc,EAAwB,GACpC,IAAM,EAAW,KAAK,UAGtB,IAAK,IAAM,KAAe,EAAS,CACjC,IAAM,EAAa,EACb,EAAgB,KAAK,QAAQ,GAC7B,EAAmB,EAAQ,GAGd,cAAf,GACF,KAAK,yBAAyB,EAAY,EAAc,UAAW,GAIjE,UAAG,MAAM,GACT,EAAc,GAAsB,EAAI,KAAK,GAGxC,UAAG,YAAY,IAEpB,EAAc,IAAsB,aACpC,EAAc,IAAgB,IAC9B,cAAM,IAKN,UAAG,OAAO,EAAS,UAAU,KAC7B,YAAc,EAAS,UAAU,KAE/B,EAAc,GAAoB,SAAkC,IAAxB,EAAY,UAIrD,UAAG,KAAK,IAAgB,UAAG,OAAO,EAAS,UAAU,IAC1D,EAAc,GAAoB,QAAU,EAI5C,EAAc,GAAsB,0BAY5C,SAAS,GAOP,OANA,EAAU,IAAY,UAAG,QAAQ,KAAK,QAAU,KAAK,OAAS,MAE1D,UAAG,OAAO,KAAK,UACjB,EAAU,GAAW,KAAK,SAAS,cAAc,KAAK,UAGjD,oBAAe,8BAaxB,SAAa,GAAqC,WAChD,OAAI,UAAG,KAAK,IACV,KAAK,aAAe,EAEpB,KAAK,QAAU,SAAC,GACd,IAAM,GAAO,aAAO,GAAI,EAAK,aAAa,IAO1C,MALO,UAAW,IAChB,EAAK,MAAQ,EAAK,MAAQ,EAAK,KAC/B,EAAK,OAAS,EAAK,OAAS,EAAK,KAG5B,GAGF,MAGO,OAAZ,UACK,KAAK,eACL,KAAK,aAEL,MAGF,KAAK,yCAGd,SAAmB,EAA2B,GAC5C,IAAI,iBAAY,IAAa,UAAG,OAAO,GAAW,CAGhD,IAAK,IAAM,KAFT,KAAK,QAAQ,GAAsB,EAEhB,KAAK,SAAS,IAC/B,KAAK,QAAQ,GAAmC,GAAc,EAGlE,OAAO,KAGT,OAAO,KAAK,QAAQ,yBAatB,SAAQ,GACN,OAAO,KAAK,kBAAkB,SAAU,8BAa1C,SAAa,GACX,MAAiB,SAAb,GAAoC,WAAb,GACzB,KAAK,QAAQ,YAAc,EAEpB,MAGF,KAAK,QAAQ,mCAStB,WACE,OAAO,KAAK,kCAGd,SAAW,GACT,OAAO,KAAK,WAAa,EAAQ,gBAAiB,kBAAa,KAAK,SAAU,kCAGhF,SAEE,EACA,EACA,GAEA,OACG,KAAK,WAAW,EAAQ,WAAY,EAAY,IACjD,KAAK,UAAU,EAAQ,UAAW,EAAY,4BAIlD,SAA+B,EAAwB,EAAkB,GACvE,OAAK,KAIA,UAAG,QAAQ,KAIZ,UAAG,OAAO,IACL,iBAAY,EAAS,EAAW,KAC9B,UAAG,QAAQ,KACb,kBAAa,EAAW,8BAMnC,SAAgC,EAAyB,EAAkB,GACzE,SAAK,IAAe,UAAG,QAAQ,MAI3B,UAAG,OAAO,IACL,iBAAY,EAAS,EAAY,KAC/B,UAAG,QAAQ,KACb,kBAAa,EAAY,wBAcpC,SAAkC,GAGhC,OAFA,KAAK,OAAO,KAAK,GAEV,2BAGT,SAAQ,EAAsB,EAAqB,EAAmC,GAChF,UAAG,OAAO,KAAa,UAAG,MAAM,KAClC,EAAU,EACV,EAAc,MAGhB,IAAM,EAAuB,OAAX,EAAkB,MAAQ,SACtC,GAAY,aAAmB,EAAS,GAE9C,IAAK,IAAI,KAAQ,EAAW,CACb,UAAT,IACF,EAAO,UAAQ,YAGjB,cAAuB,EAAU,GAAjC,WAAwC,KAA7B,EAAY,EAAU,GAAO,IAElC,cAAiB,EAAM,KAAK,UAC9B,KAAK,OAAO,GAAQ,EAAM,GAGnB,UAAG,OAAO,KAAK,QACtB,KAAK,aAAL,UAAqB,EAArB,aACE,KAAK,OACL,KAAK,SACL,EACA,EACA,GAKF,KAAK,aAAa,GAAW,KAAK,OAAQ,EAAM,EAAU,IAKhE,OAAO,uBAaT,SAAI,EAAmB,EAAyB,GAC9C,OAAO,KAAK,OAAO,KAAM,EAAO,EAAU,sBAa5C,SAAK,EAAuC,EAAyB,GACnE,OAAO,KAAK,OAAO,MAAO,EAAO,EAAU,sBAS7C,SAAK,GACH,IAAM,EAAW,KAAK,UAQtB,IAAK,IAAM,KANN,UAAG,OAAO,KACb,EAAU,IAGV,KAAK,SAAgC,cAAM,EAAS,MAE5B,KAAK,SAAS,WAAY,CAClD,IAAM,EAAa,EACb,EAAa,KAAK,SAAS,WAAW,GAE5C,KAAK,QAAQ,GAAc,GAC3B,KAAK,aAAa,GAAY,cAAO,aAAO,GAAI,EAAS,WAAY,EAAS,QAAQ,KACpF,KAAK,GAAsC,EAAQ,IAGvD,IAAK,IAAM,KAAW,EAChB,UAAG,KAAM,KAAa,KACtB,KAAa,GAAS,EAAQ,IAIpC,OAAO,0BAOT,WACE,GAAI,UAAG,OAAO,KAAK,QAEjB,IAAK,IAAM,KAAQ,KAAK,aAAa,gBAGnC,IAFA,IAAM,EAAY,KAAK,aAAa,gBAAgB,GAE3C,EAAI,EAAU,OAAS,EAAG,GAAK,EAAG,IAAK,OACL,EAAU,GAA3C,EADsC,EACtC,SAAU,EAD4B,EAC5B,QAAS,EADmB,EACnB,UAEvB,IAAa,KAAK,QAAU,IAAY,KAAK,UAC/C,EAAU,OAAO,EAAG,GAGtB,IAAK,IAAI,EAAI,EAAU,OAAS,EAAG,GAAK,EAAG,IACzC,KAAK,aAAa,eAChB,KAAK,OACL,KAAK,SACL,EACA,EAAU,GAAG,GACb,EAAU,GAAG,SAMrB,KAAK,aAAa,OAAO,KAAK,OAAgB,gCA7ZvC,gZCLA,cAUX,WAAa,GAAc,gIARJ,IAQI,sBAJvB,IAIuB,wBACzB,KAAK,MAAQ,EACb,EAAM,aAAa,CACjB,qBAAsB,YAAsB,IAAnB,EAAmB,EAAnB,aACf,EAA8B,EAA9B,OAAkB,EAAY,EAAtB,SACV,EAA0C,UAAG,OAAO,GACtD,EAAK,YAAY,GAChB,EAAe,EAAK,MAAM,IAEzB,EAAc,EAAI,UAAU,GAAgB,SAAC,GAAD,OAAO,EAAE,UAAY,KACnE,EAAe,KAEjB,EAAe,GAAa,QAAU,KACtC,EAAe,GAAa,aAAe,MAE7C,EAAe,OAAO,EAAa,8CAKzC,SAAK,EAAgB,GACnB,GAAU,aAAO,GAAW,GAAI,CAC9B,QAAS,KAAK,MAAM,UAEtB,IAAM,EAAe,IAAI,KAAK,MAAM,aAAa,EAAQ,EAAS,KAAK,MAAM,SAAU,KAAK,MAAM,QAC5F,EAAc,CAAE,QAAS,EAAa,SAAU,gBA4BtD,OA1BA,KAAK,MAAM,YAAY,EAAa,MACpC,KAAK,KAAK,KAAK,GAEX,UAAG,OAAO,IACP,KAAK,YAAY,KACpB,KAAK,YAAY,GAAU,IAE7B,KAAK,YAAY,GAAQ,KAAK,KAExB,EAAa,OAAe,KAAK,MAAM,KAC3C,OAAO,eAAe,EAAQ,KAAK,MAAM,GAAI,CAC3C,MAAO,GACP,cAAc,IAIhB,EAAe,KAAK,MAAM,IAAI,KAAK,IAGvC,KAAK,MAAM,KAAK,mBAAoB,CAClC,SACA,UACA,eACA,IAAK,KAAK,MAAM,OAGX,qBAGT,SAAK,EAAgB,GACnB,IAAM,EAAW,GAAW,EAAQ,SAAY,KAAK,MAAM,SACrD,EAAa,UAAG,OAAO,GACvB,EAA0C,EAC5C,KAAK,YAAY,GAChB,EAAe,KAAK,MAAM,IAE/B,IAAK,EACH,OAAO,KAGT,IAAM,EAAQ,EAAI,KAChB,GACA,SAAC,GAAD,OAAO,EAAE,UAAY,IAAY,GAAc,EAAE,aAAa,UAAU,OAG1E,OAAO,GAAS,EAAM,yCAGxB,SAAiB,EAAY,GAC3B,cAA2B,KAAK,KAAhC,WAAsC,KAA3B,EAAgB,KAAK,KAAM,GAChC,OAAa,EAcjB,IAXG,UAAG,OAAO,EAAa,QAEtB,UAAG,QAAQ,IAAS,EAAS,gBAAgB,EAAM,EAAa,QAEhE,IAAS,EAAa,SAExB,EAAa,UAAU,KAEvB,EAAM,EAAS,SAGL,IAAR,EACF,OAAO,4BAtGF,6zCCkPP,cAKJ,WAAa,gGAAsB,gGACjC,KAAK,cAAgB,GAErB,aAAQ,KAAM,8DAGhB,WACE,KAAK,cAAc,gDAGrB,WACE,KAAK,cAAc,0DAGrB,WACE,KAAK,cAAc,oDApBjB,GAwBN,SAAS,GAAY,GACnB,IAAK,UAAG,OAAO,GACb,MAAO,CAAE,UAAW,EAAO,SAAS,GAGtC,IAAM,GAAU,aAAO,GAAI,GAK3B,OAHA,EAAQ,UAAY,EAAM,QAC1B,EAAQ,UAAY,EAAM,QAEnB,SAGM,CACb,GAAI,SACJ,QAjSF,SAAkB,GAAc,MACxB,EAGD,GAEC,EAMF,GACE,EAAwB,GAExB,EAAgB,CACpB,MACA,SAEA,YA+GF,SAAsB,EAAkB,EAAe,EAAc,EAAoB,GACvF,IAAM,EAAU,GAAW,GAC3B,IAAK,EAAgB,GAAO,CAC1B,EAAgB,GAAQ,GAGxB,cAAkB,EAAlB,WAA6B,KAAlB,EAAO,EAAW,GAC3B,EAAI,EAAK,EAAM,GACf,EAAI,EAAK,EAAM,GAAoB,IAIvC,IAAM,EAAY,EAAgB,GAC9B,EAAW,EAAI,KAAK,GAAW,SAAC,GAAD,OAAO,EAAE,WAAa,GAAY,EAAE,UAAY,KAE9E,IACH,EAAW,CAAE,WAAU,UAAS,UAAW,IAC3C,EAAU,KAAK,IAGjB,EAAS,UAAU,KAAK,CAAC,EAAU,KAlInC,eAqIF,SACE,EACA,EACA,EACA,EACA,GAEA,IAGI,EAHE,EAAU,GAAW,GACrB,EAAY,EAAgB,GAC9B,GAAa,EAGjB,GAAK,EAGL,IAAK,EAAQ,EAAU,OAAS,EAAG,GAAS,EAAG,IAAS,CACtD,IAAM,EAAM,EAAU,GAEtB,GAAI,EAAI,WAAa,GAAY,EAAI,UAAY,EAAS,CAIxD,IAJwD,IAChD,EAAc,EAAd,UAGC,EAAI,EAAU,OAAS,EAAG,GAAK,EAAG,IAAK,UACX,EAAU,GADC,GACvC,EADuC,YACjC,EADiC,EACjC,QAAS,EADwB,EACxB,QAGtB,GAAI,IAAO,GAAY,IAAY,EAAQ,SAAW,IAAY,EAAQ,QAAS,CAEjF,EAAU,OAAO,EAAG,GAIf,EAAU,SACb,EAAU,OAAO,EAAO,GAGxB,EAAO,EAAS,EAAM,GACtB,EAAO,EAAS,EAAM,GAAoB,IAI5C,GAAa,EACb,OAIJ,GAAI,EACF,SAlLN,mBACA,qBACA,kBACA,YAEA,UAEA,iBAAiB,EACjB,iBAAiB,GAenB,SAAS,EAAK,EAA0B,EAAc,EAAoB,GACxE,IAAM,EAAU,GAAW,GACvB,EAAS,EAAI,KAAK,GAAS,SAAC,GAAD,OAAO,EAAE,cAAgB,KAEnD,IACH,EAAS,CACP,cACA,OAAQ,IAGV,EAAQ,KAAK,IAGV,EAAO,OAAO,KACjB,EAAO,OAAO,GAAQ,IAGpB,EAAY,mBAAqB,EAAI,SAAS,EAAO,OAAO,GAAO,KACrE,EAAY,iBACV,EACA,EACA,EAAc,gBAAkB,EAAU,EAAQ,SAEpD,EAAO,OAAO,GAAM,KAAK,IAI7B,SAAS,EACP,EACA,EACA,EACA,GAEA,IAAM,EAAU,GAAW,GACrB,EAAc,EAAI,UAAU,GAAS,SAAC,GAAD,OAAO,EAAE,cAAgB,KAC9D,EAAS,EAAQ,GAEvB,GAAK,GAAW,EAAO,OAIvB,GAAa,QAAT,EAAJ,CASA,IAAI,GAAc,EACZ,EAAgB,EAAO,OAAO,GAEpC,GAAI,EAAe,CACjB,GAAiB,QAAb,EAAoB,CACtB,IAAK,IAAI,EAAI,EAAc,OAAS,EAAG,GAAK,EAAG,IAC7C,EAAO,EAAa,EAAM,EAAc,GAAI,GAE9C,OAEA,IAAK,IAAI,EAAI,EAAG,EAAI,EAAc,OAAQ,IACxC,GAAI,EAAc,KAAO,EAAU,CACjC,EAAY,oBACV,EACA,EACA,EAAc,gBAAkB,EAAU,EAAQ,SAEpD,EAAc,OAAO,EAAG,GAEK,IAAzB,EAAc,gBACT,EAAO,OAAO,GACrB,GAAc,GAGhB,OAMJ,IAAgB,OAAO,KAAK,EAAO,QAAQ,QAC7C,EAAQ,OAAO,EAAa,QAvC5B,IAAK,KAAQ,EAAO,OACd,EAAO,OAAO,eAAe,IAC/B,EAAO,EAAa,EAAM,OAuHlC,SAAS,EAAkB,EAA0B,GAQnD,IAPA,IAAM,EAAU,GAAW,GACrB,EAAY,IAAI,GAAU,GAC1B,EAAY,EAAgB,EAAM,MACjC,EAJ+D,GAIhD,EAAa,gBAAgB,GAJmB,MAKlE,EAAgB,EAGb,UAAG,QAAQ,IAAU,CAC1B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAU,OAAQ,IAAK,CACzC,IAAM,EAAM,EAAU,GACd,EAAsB,EAAtB,SAAU,EAAY,EAAZ,QAElB,GACE,EAAS,gBAAgB,EAAS,IAClC,EAAS,aAAa,EAAS,IAC/B,EAAS,aAAa,EAAS,GAC/B,KACQ,EAAc,EAAd,UAER,EAAU,cAAgB,EAE1B,cAAyC,EAAzC,WAAoD,UAAX,EAAW,MAAxC,EAAwC,YAAlC,EAAkC,EAAlC,QAAS,EAAyB,EAAzB,QACrB,IAAY,EAAQ,SAAW,IAAY,EAAQ,SACrD,EAAG,KAMX,EAAU,EAAS,WAAW,IAIlC,SAAS,EAAmC,GAC1C,OAAO,EAA4B,GAAO,GAI5C,OArNA,WAAM,WAAN,EAAgB,cAAc,OAAO,iBAAiB,OAAQ,KAAM,CAClE,cACE,OAAQ,EAAc,iBAAkB,GAE1C,cACE,OAAQ,EAAc,iBAAkB,KAI5C,EAAM,OAAS,EA4MR,gGCzPT,IAAM,GAAS,CACb,YAAa,CAAC,mBAAoB,aAAc,aAAc,QAE9D,OAHa,SAGL,GACN,cAAqB,GAAO,YAA5B,WAAyC,SAApB,GAAO,YAAa,OACjC,EAAc,GADmB,GACJ,GAEnC,GAAI,EACF,OAAO,EAIX,OAAO,MAIT,iBAhBa,YAgBoE,IAA7D,EAA6D,EAA7D,YAAa,EAAgD,EAAhD,UAAW,EAAqC,EAArC,YAAa,EAAwB,EAAxB,MACvD,IAAK,cAAc,KAAK,GACtB,OAAO,KAGT,cAA0B,EAAM,aAAa,KAA7C,WAAmD,KAAxC,EAAe,EAAM,aAAa,KAAM,GAC7C,EAAU,EAEd,GACE,EAAY,YACZ,EAAY,WAAW,aACvB,EAAY,cAAgB,EAE5B,KAAO,GAAS,CAEd,GAAI,IAAY,EAAY,QAC1B,OAAO,EAET,EAAU,EAAI,WAAW,IAK/B,OAAO,MAIT,WA3Ca,YA2C4D,IAKnE,EALQ,EAA2D,EAA3D,UAAW,EAAgD,EAAhD,YAAa,EAAmC,EAAnC,UAAW,EAAwB,EAAxB,MAC/C,GAAoB,UAAhB,GAA2C,QAAhB,EAC7B,OAAO,KAKT,cAA0B,EAAM,aAAa,KAA7C,WAAmD,KAAxC,EAAe,EAAM,aAAa,KAAM,GACjD,GAAI,EAAY,cAAgB,EAAa,CAE3C,GAAI,EAAY,aAAe,GAAa,EAAa,GACvD,SAIF,GAAI,EAAY,cACd,OAAO,EAGC,IACR,EAAiB,IAOvB,GAAI,EACF,OAAO,EAMT,cAA0B,EAAM,aAAa,KAA7C,WAAmD,KAAxC,EAAe,EAAM,aAAa,KAAM,GACjD,KAAI,EAAY,cAAgB,GAAiB,QAAQ,KAAK,IAAc,EAAY,YACtF,OAAO,EAIX,OAAO,MAIT,WAvFa,YAwFX,IAD+C,IAAnC,EAAmC,EAAnC,UAAW,EAAwB,EAAxB,MACvB,MAA0B,EAAM,aAAa,KAA7C,WAAmD,KAAxC,EAAe,EAAM,aAAa,KAAM,GACjD,GAAI,GAAa,EAAa,GAC5B,OAAO,EAIX,OAAO,MAIT,KAlGa,YAmGX,IAD2C,IAArC,EAAqC,EAArC,YAAa,EAAwB,EAAxB,MACnB,MAA0B,EAAM,aAAa,KAA7C,WAAmD,KAAxC,EAAe,EAAM,aAAa,KAAM,GAEjD,GAAoC,IAAhC,EAAY,SAAS,OAAc,CACrC,IAAM,EAAS,EAAY,aAG3B,GAAI,KAAY,EAAO,QAAQ,UAAW,EAAO,QAAQ,QAAQ,SAC/D,cAIC,GAAI,EAAY,SAAS,QAAU,EACtC,SAGF,IAAK,EAAY,eAAiB,IAAgB,EAAY,YAC5D,OAAO,EAIX,OAAO,OAIX,SAAS,GAAc,EAA0B,GAC/C,OAAO,EAAY,SAAS,MAAK,qBAAG,KAAgB,YAGvC,g6DC3Gf,IAAM,GAAc,CAClB,cACA,cACA,YACA,gBACA,gBACA,cAiGF,SAAS,GAAkB,EAAgB,GACzC,OAAO,SAAU,GACf,IAAM,EAAe,EAAM,aAAa,KAElC,EAAc,EAAa,eAAe,GAHnB,KAIS,EAAa,gBAAgB,GAJtC,GAItB,EAJsB,KAIT,EAJS,KAKvB,EAAiB,GAEvB,GAAI,SAAS,KAAK,EAAM,MAAO,CAC7B,EAAM,cAAgB,EAAM,MAG5B,cAA2B,EAAM,eAAjC,WAAiD,KACzC,EADmB,EAAM,eAAgB,GAGzC,EAA+B,CACnC,UACA,UAHgB,EAAa,aAAa,GAI1C,cACA,UAAW,EAAM,KACjB,cACA,iBACA,SAEI,EAAc,GAAe,GAEnC,EAAQ,KAAK,CACX,EAAc,QACd,EAAc,YACd,EAAc,eACd,SAGC,CACL,IAAI,GAAiB,EAErB,IAAK,UAAQ,sBAAwB,QAAQ,KAAK,EAAM,MAAO,CAE7D,IAAK,IAAI,EAAI,EAAG,EAAI,EAAa,SAAW,EAAgB,IAC1D,EAAiD,UAAhC,EAAa,GAAG,aAA2B,EAAa,GAAG,cAK9E,EACE,GACA,EAAM,MAAQ,EAAM,cAAgB,KAEhB,IAApB,EAAM,UAGV,IAAK,EAAgB,CACnB,IAAM,EAAgB,CACpB,QAAS,EACT,UAAW,EAAa,aAAa,GACrC,cACA,UAAW,EAAM,KACjB,iBACA,cACA,SAGI,EAAc,GAAe,GAEnC,EAAQ,KAAK,CACX,EAAc,QACd,EAAc,YACd,EAAc,eACd,KAMN,cAAkE,EAAlE,WAA2E,UAAT,EAAS,MAA/D,EAA+D,KAAtD,EAAsD,KAAzC,EAAyC,UAC7D,GAAQ,EAAS,EAAO,EAAa,KAKvD,SAAS,GAAgB,GAA8B,IAC7C,EAAuB,EAAvB,YAAa,EAAU,EAAV,MAGf,EAAY,CAAE,YADK,WAAO,OAAO,GACY,iBAInD,OAFA,EAAM,KAAK,oBAAqB,GAEzB,EAAU,aAAe,EAAM,aAAa,IAAI,CAAE,gBAG3D,SAAS,GAAT,EAEE,GACA,IAFE,EAEF,EAFE,IAAK,EAEP,EAFO,MAAO,EAEd,EAFc,QAII,EAEd,EAFF,aAAgB,UAChB,EACE,EADF,OAEI,EAAc,EAAO,GAO3B,IAAK,IAAM,KALP,EAAM,QAAQ,QAAU,EAAQ,SAClC,EAAQ,OAAS,CAAE,SAAS,IAIN,EAAO,gBAC7B,EAAY,EAAK,EAAW,EAAO,kBACnC,EAAY,EAAK,EAAW,EAAO,oBAAoB,GAKzD,IAFA,IAAM,EAAe,GAAW,EAAQ,OAExC,MAAiC,EAAjC,WAA4C,OAAX,EAAW,GAC1C,EAAY,EAD8B,EAA/B,KAA+B,EAAzB,SACgB,IAIrC,OAA6B,CAC3B,GAAI,oBACJ,QAtNF,SAAkB,GAGhB,IAFA,IAAM,EAAY,GAElB,MAAqB,GAArB,WAAkC,KAAvB,EAAU,GAAa,GAChC,EAAU,GAAU,GAAiB,EAAQ,GAG/C,IACI,EADE,EAAc,UAAQ,YAmE5B,SAAS,IAEP,cAA0B,EAAM,aAAa,KAA7C,WAAmD,KAAxC,EAAe,EAAM,aAAa,KAAM,GACjD,GAAK,EAAY,eAA6C,UAA5B,EAAY,cAA2B,EAAY,aAKrF,IANiD,qBAMtC,EAAW,EAAY,SANe,GAO1C,EAAM,UAAU,MAAK,gBAAG,EAAH,EAAG,IAAH,OAAa,kBAAa,EAAK,EAAQ,gBAE/D,EAAY,cAAc,EAAQ,QAAS,EAAQ,QAHvD,MAAsB,EAAY,SAAlC,WAA4C,MAvE9C,EADE,UAAW,aACD,CACV,CAAE,KAAM,EAAY,KAAM,SAAU,GACpC,CAAE,KAAM,EAAY,KAAM,SAAU,EAAU,aAC9C,CAAE,KAAM,EAAY,KAAM,SAAU,EAAU,aAC9C,CAAE,KAAM,EAAY,GAAI,SAAU,EAAU,WAC5C,CAAE,KAAM,EAAY,OAAQ,SAAU,EAAU,YAGtC,CACV,CAAE,KAAM,YAAa,SAAU,EAAU,aACzC,CAAE,KAAM,YAAa,SAAU,EAAU,aACzC,CAAE,KAAM,UAAW,SAAU,EAAU,WAEvC,CAAE,KAAM,aAAc,SAAU,GAChC,CAAE,KAAM,aAAc,SAAU,EAAU,aAC1C,CAAE,KAAM,YAAa,SAAU,EAAU,aACzC,CAAE,KAAM,WAAY,SAAU,EAAU,WACxC,CAAE,KAAM,cAAe,SAAU,EAAU,aAIrC,KAAK,CACb,KAAM,OACN,SAFa,SAEH,GACR,cAA0B,EAAM,aAAa,KAA7C,WAA0B,EAAM,aAAa,KAAM,GACrC,aAAa,MAM/B,EAAM,cAAgB,EAEtB,EAAM,YAAN,iwBACE,WACE,OAAO,EAAM,aAAa,sBAF9B,IAKE,SAA0B,GACxB,EAAM,aAAa,qBAAuB,IAN9C,kBASE,WACE,OAAO,EAAM,6BAVjB,GAAyD,YAczD,EAAM,aAAe,CAEnB,KAAM,GACN,IAHmB,SAGQ,GACzB,EAAQ,UAAY,SAAC,EAAM,GAAP,OAAe,EAAM,KAAK,EAAM,IAEpD,IAAM,EAAc,IAAI,EAAM,YAAe,GAG7C,OADA,EAAM,aAAa,KAAK,KAAK,GACtB,GAET,YACA,YACA,qBAAsB,GAoBxB,EAAM,UAAU,aA4HhB,UAAW,CACT,qBAAsB,SAAC,GAAD,OAAS,GAAY,EAAK,QAChD,wBAAyB,SAAC,GAAD,OAAS,GAAY,EAAK,WACnD,qBAAsB,WAAmB,GAEvC,IAFiD,IAA1B,EAA0B,EAA1B,aAEd,EAAI,EAAM,aAAa,KAAK,OAAS,EAAG,GAAK,EAAG,IAAK,CAC5D,IAAM,EAAc,EAAM,aAAa,KAAK,GAExC,EAAY,eAAiB,IAIjC,EAAY,OACZ,EAAM,KAAK,uBAAwB,CAAE,gBACrC,EAAY,UAER,EAAM,aAAa,KAAK,OAAS,GACnC,EAAM,aAAa,KAAK,OAAO,EAAG,OAK1C,eACA,oBACA,4+CC9NW,cA+CX,aAAe,8DA9CU,KAAK,MAAsB,IAAhB,KAAK,YA8C1B,yBA7CC,GA6CD,uBAzCV,IAyCU,kBAvCL,WAuCK,oBAtCJ,cAAM,cAsCF,oBArCH,cAqCG,kBApCI,CACjB,IAAK,GACL,OAAQ,CACN,OAAO,EACP,MAAM,EACN,KAAK,GAEP,WAAY,GACZ,eAAgB,KA4BH,0BAzBE,2BAAqB,OAyBvB,wBAxBC,kBAwBD,uDAtBC,IAAI,mBAAgB,OAsBrB,+FAVqC,IAUrC,mBALX,CACF,KAAM,GACN,IAAK,KAGQ,0BA0CE,SAAC,GAAD,OAA8B,EAAK,eAAe,EAAM,WAzCvE,IAAM,EAAQ,KAEd,KAAK,aAAL,gvBACE,WACE,OAAO,EAAM,WAFjB,iBAKE,SAA0C,GAQxC,OAPA,yCAAU,GAEV,EAAM,KAAK,mBAAoB,CAC7B,UACA,aAAc,OAGT,OAbX,mBAgBE,WACE,4CACA,EAAM,cAAc,KAAK,OAAO,EAAM,cAAc,KAAK,QAAQ,MAAO,GAExE,EAAM,KAAK,qBAAsB,CAAE,aAAc,WApBrD,GAAkC,wDAyBpC,SAAc,EAAkB,GAC9B,KAAK,aAAa,KAAK,CAAE,KAAI,4BAG/B,SAA8B,EAAS,GACrC,cAEK,KAAK,aAFV,WAEwB,KADP,EACZ,KAAK,aAAc,GADtB,IAAQ,GAER,GAAM,IAA0D,IAA9C,EAAS,EAAY,KAAM,GAC3C,OAAO,uBAOb,SAAM,GACJ,OAAO,KAAK,cAAgB,KAAO,GAAU,KAAM,oCAGrD,SAAmB,GACjB,OAAO,KAAK,SAAS,IAAI,EAAO,MAA+C,IAAxC,KAAK,SAAS,KAAK,QAAQ,4BAGpE,SAAW,EAAgB,GACzB,IAAK,KAAK,cACR,OAAO,KAGT,GAAI,KAAK,kBAAkB,GACzB,OAAO,KAYT,GATI,EAAO,KACT,KAAK,SAAS,IAAI,EAAO,IAAM,GAEjC,KAAK,SAAS,KAAK,KAAK,GAEpB,EAAO,SACT,EAAO,QAAQ,KAAM,GAGnB,EAAO,WAAa,EAAO,OAAQ,CASrC,IARA,IAAI,EAAQ,EACN,EAAM,KAAK,aAAa,OACxB,EAAS,EAAO,OAAO,QAAO,SAAC,EAAK,GAGxC,OAFA,EAAI,IAAM,EACV,EAAI,GAAa,KAAO,EACjB,IACN,IAEI,EAAQ,EAAK,IAAS,CAC3B,IAAM,EAAU,KAAK,aAAa,GAAO,GAEzC,GAAI,EAAO,IAAY,EAAO,GAAa,IACzC,MAIJ,KAAK,aAAa,OAAO,EAAO,EAAG,CAAE,GAAI,EAAO,GAAI,IAAK,EAAO,iBACvD,EAAO,WAChB,KAAK,aAAa,KAAK,CAAE,GAAI,EAAO,GAAI,IAAK,EAAO,YAGtD,OAAO,gCAGT,SAAa,EAAe,GAE1B,IAA+B,IAA3B,KAAK,YAAY,GACnB,OAAO,EAGT,IAAM,EAAS,EAAI,UAAU,GAE7B,EAAU,GAAU,aAAO,GAAI,GAAW,GAE1C,KAAK,UAAU,KAAK,CAAE,MAAK,YAC3B,KAAK,OAAO,UAAU,KAAK,GAIvB,IAAQ,KAAK,UACf,KAAK,OAAO,IAAI,EAAQ,SAAU,KAAK,gBAGzC,KAAK,KAAK,qBAAsB,CAAE,MAAK,SAAQ,MAAO,KAAM,0CAG9D,SAAgB,GACd,IAAM,EAAQ,KAAK,YAAY,GAEzB,EAAS,EAAI,UAAU,GACvB,EAAU,KAAK,UAAU,GAAO,QAEtC,KAAK,OAAO,OAAO,EAAQ,SAAU,KAAK,gBAE1C,KAAK,UAAU,OAAO,EAAO,GAC7B,KAAK,OAAO,UAAU,OAAO,EAAO,GAEpC,KAAK,KAAK,wBAAyB,CAAE,MAAK,SAAQ,MAAO,KAAM,uCAGjE,SAAa,GACX,IAAK,IAAI,EAAI,EAAG,EAAI,KAAK,UAAU,OAAQ,IACzC,GAAI,KAAK,UAAU,GAAG,MAAQ,EAC5B,OAAO,EAIX,OAAQ,+BAGV,SAAe,GACb,IAAM,EAAW,KAAK,YAAY,GAElC,OAAqB,IAAd,EAAkB,KAAO,KAAK,UAAU,GAAU,2BAG3D,WACE,OAAU,KAAK,OAAe,MAAwB,MAAM,YAnMnD,GAuMN,SAAS,GAAW,EAAc,GAkBvC,OAjBA,EAAM,eAAgB,EAElB,UAAG,OAAO,IACZ,EAAI,KAAK,GAGX,UAAW,KAAK,GAChB,UAAQ,KAAK,GACb,WAAI,KAAK,GAGT,EAAM,OAAS,EACf,EAAM,SAAW,EAAO,SAExB,EAAM,UAAU,YAChB,EAAM,UAAU,YAET,EAGT,SAAS,GAAc,GACrB,OAAO,GAAM,EAAG,QAAQ,QAAS,8FCxRnC,IAAM,GAAQ,IAAI,YAED,GAAM,6BAIvB,IAAM,GAAgC,oBAAf,WAA6B,WAA+B,oBAAX,OAAyB,YAAhC,EACjE,GAAM,KAAK,6FCTI,sGCAA,whCCSA,SAAC,GACd,IAAM,EAAe,CACnB,CAAC,IAAK,KACN,CAAC,OAAQ,OACT,CAAC,QAAS,UACV,CAAC,QAAS,WACA,QAAO,0BAAE,EAAF,KAAU,EAAV,YAAsB,KAAU,GAAQ,KAAU,KAE/D,EAGF,SAAC,EAAG,GAgBN,IAhBY,IAEV,EAQE,EARF,MAFU,EAUR,EAPF,cAHU,MAGD,CACP,MAAM,IACN,MAAO,IACP,KAAK,IACL,OAAQ,KAPA,IAUR,EADF,cATU,MASD,CAAE,EAAG,EAAG,EAAG,GATV,EAYN,EAEF,CAAE,QAAO,OAAM,EAAG,KAAgB,EAAG,MAEzC,MAA+B,EAA/B,WAA4C,UAAb,EAAa,MAAhC,EAAgC,KAAxB,EAAwB,KACpC,EAAQ,KAAK,OAAO,EAAI,EAAO,GAAM,EAAa,IAClD,EAAQ,KAAK,OAAO,EAAI,EAAO,GAAM,EAAa,IAExD,EAAO,GAAU,KAAK,IAAI,EAAO,KAAM,KAAK,IAAI,EAAO,MAAO,EAAS,EAAa,GAAU,EAAO,IACrG,EAAO,GAAU,KAAK,IAAI,EAAO,IAAK,KAAK,IAAI,EAAO,OAAQ,EAAS,EAAa,GAAU,EAAO,IAGvG,OAAO,GAMT,OAHA,EAAS,KAAO,EAChB,EAAS,YAAc,EAEhB,gZCtCT,OAA+B,CAC7B,GAAI,WACJ,QAF6B,SAEpB,GAAO,IACU,EAAa,EAA7B,eAER,EAAS,UAAW,aAAO,EAAS,UAAY,GAAI,IACpD,EAAS,eAAiB,EAAS,SAAS,+yBC6BhD,IAAM,GAAoE,CACxE,MADwE,SACjE,GAAK,IACF,EAA0D,EAA1D,MAAO,EAAmD,EAAnD,KAAa,EAAsC,EAA7C,MAAkC,EAAW,EAAvB,WACrC,EAAU,EAAM,QAAhB,MAFI,EAGwB,EAAM,QAAhC,EAHE,EAGF,WAAY,EAHV,EAGU,UAEN,aAAV,IACF,EAAQ,EAAK,MAAQ,EAAK,QAG5B,EAAM,aAAc,aAAO,GAAI,GAC/B,EAAM,WAAY,aAAO,GAAI,GAC7B,EAAM,MAAQ,EACd,EAAM,WAAa,EAEnB,IAAM,EAAe,EAAM,YAAc,CACvC,IAAK,EAAc,KAAQ,EAAc,OAAS,EAAc,OAChE,KAAM,EAAc,MAAS,EAAc,MAAQ,EAAc,MACjE,OAAQ,EAAc,QAAW,EAAc,QAAU,EAAc,IACvE,MAAO,EAAc,OAAU,EAAc,SAAW,EAAc,MAKxE,GAFA,EAAM,kBAAoB,EAAc,OAAQ,EAAc,OAE1D,EAAM,WACR,EAAM,UAAa,EAAY,KAAO,GAAK,IAAM,EAAY,IAAM,GAAK,OACnE,CACL,IAAM,EAAwB,EAAM,eAAiB,EAAY,IAAM,EAAY,KACnF,EAAM,SAAW,GAAyB,EAAI,EAKhD,IAFA,aAAO,EAAI,MAAO,GAEb,GAAc,EAAU,OAA7B,CAEA,IAAM,EAAkB,IAAI,WAAa,EAAI,aAE7C,EAAgB,SAAS,EAAI,YAAY,cACzC,EAAgB,cAAc,GAE9B,EAAM,gBAAkB,EACxB,EAAgB,SAAhB,MAA8B,MAGhC,IA5CwE,SA4CnE,GAAK,IACA,EAAwB,EAAxB,MAAO,EAAiB,EAAjB,KAAM,EAAW,EAAX,OACf,GAAgB,aAAO,GAAI,GAC3B,EAAe,EAAM,WAAa,GAAgB,GAIxD,GAFA,EAAa,EAAO,EAAM,eAAgB,EAAQ,IAE7C,EAAM,gBACT,OAAO,KAGT,IAAM,GAAgB,aAAO,GAAI,IAEjC,cAAS,EAAM,YAAa,EAAe,CACzC,EAAG,EAAO,EAAI,EAAc,EAC5B,EAAG,EAAO,EAAI,EAAc,IAG9B,IAAM,EAAS,EAAM,gBAAgB,OAAtB,SACV,GADU,IAEb,KAAM,EACN,MAAO,EAAM,YACb,WAAY,EACZ,WAAY,EACZ,SAAU,KAGJ,EAAU,EAAV,MAUR,OARI,EAAO,UAIT,EAAa,EAHW,KAAK,IAAI,EAAM,GAAK,KAAK,IAAI,EAAM,GAGtB,EAAO,OAAQ,EAAO,OAC3D,aAAO,EAAQ,EAAO,SAGjB,EAAO,YAGhB,SAAU,CACR,MAAO,WACP,YAAY,EACZ,UAAW,GACX,SAAS,IAIb,SAAS,GAAT,EAAqE,EAAyB,GAAe,IAAnF,EAAmF,EAAnF,YAAa,EAAsE,EAAtE,SACjC,EACF,EAAO,EAAI,EAAY,GAAK,EAAO,EAAI,EAAY,GAAK,EAExD,EAAO,EAAI,EAAY,GAAK,EAAO,EAAI,EAAY,GAAK,EAI5D,SAAS,GAAT,EAEE,EACA,EACA,GACA,IAJE,EAIF,EAJE,UAAW,EAIb,EAJa,YAAa,EAI1B,EAJ0B,MAAO,EAIjC,EAJiC,SAKjC,GAAI,EAAgB,CAClB,IAAM,EAAY,EAAK,MAAQ,EAE/B,EAAO,EAAI,EAAY,GAAK,EAAY,EAAU,QAAU,MACvD,CACL,IAAM,EAAW,EAAK,OAAS,EAE/B,EAAO,EAAI,EAAY,GAAK,EAAW,EAAU,OAAS,6BAI/C,mBAAa,GAAa,2GClKzC,IAAM,GAAS,aAEf,GAAK,UAAY,UAEF,6KC0ER,SAAS,GACd,EACA,EACA,GAEA,OAAI,UAAG,KAAK,GACH,EAAU,gBAAgB,EAAO,EAAY,aAAc,EAAY,QAAS,CACrF,EAAO,EACP,EAAO,EACP,IAGK,EAAU,gBAAgB,EAAO,EAAY,aAAc,EAAY,kHAIlF,IAQM,GAA2D,CAC/D,MA9EF,YAAmG,IAAjF,EAAiF,EAAjF,KAAM,EAA2E,EAA3E,YAAa,EAA8D,EAA9D,MAAO,EAAuD,EAAvD,YAAa,EAA0C,EAA1C,WAC/C,EAAY,EAAZ,QACA,EAAgB,EAAhB,YACF,GAAe,aACnB,CACE,KAAM,EACN,IAAK,EACL,MAAO,EACP,OAAQ,GAEV,EAAQ,QAAU,IAGpB,GAAI,GAAQ,EAAa,CACvB,IAAM,EAAc,GAAmB,EAAQ,YAAa,EAAa,GAEzE,GAAI,EAAa,CACf,IAAM,EAAY,EAAY,MAAQ,EAAY,KAAO,EAAK,MACxD,EAAa,EAAY,OAAS,EAAY,IAAM,EAAK,OAE3D,EAAY,IACd,EAAO,MAAQ,EACf,EAAO,OAAS,GAEd,EAAa,IACf,EAAO,KAAO,EACd,EAAO,QAAU,GAIrB,EAAO,MAAQ,EAAY,KAAO,EAAK,MAAQ,EAAY,KAC3D,EAAO,KAAO,EAAY,IAAM,EAAK,OAAS,EAAY,IAE1D,EAAO,OAAS,EAAY,MAAQ,EAAK,OAAS,EAAI,EAAY,OAClE,EAAO,QAAU,EAAY,OAAS,EAAK,QAAU,EAAI,EAAY,QAGvE,EAAM,OAAS,GA0Cf,IAvCF,YAA0E,IAA1D,EAA0D,EAA1D,OAAQ,EAAkD,EAAlD,YAAa,EAAqC,EAArC,MAC3B,EAAoB,EAApB,QAAS,EAAW,EAAX,OAEX,EAAc,GAAmB,EAAQ,YAAa,EAAa,GAEzE,GAAK,EAAL,CAEA,IAAM,EAAO,EAAU,WAAW,GAElC,EAAO,EAAI,KAAK,IAAI,KAAK,IAAI,EAAK,MAAQ,EAAO,MAAO,EAAO,GAAI,EAAK,KAAO,EAAO,MACtF,EAAO,EAAI,KAAK,IAAI,KAAK,IAAI,EAAK,OAAS,EAAO,OAAQ,EAAO,GAAI,EAAK,IAAM,EAAO,OA8BvF,SAXgC,CAChC,YAAa,KACb,YAAa,KACb,OAAQ,KACR,SAAS,EACT,SAAS,2BASI,mBAAa,GAAU,yHCxEtC,IAAM,GAAU,CAAE,IAAK,IAAW,KAAM,IAAW,QAAQ,IAAW,OAAO,KACvE,GAAU,CAAE,KAAK,IAAW,MAAM,IAAW,OAAQ,IAAW,MAAO,KAgD7E,SAAS,GAAS,EAAY,GAC5B,IAD4C,MACzB,CAAC,MAAO,OAAQ,SAAU,SAA7C,mBAAuD,CAAlD,IAAM,EAAI,KACP,KAAQ,IACZ,EAAK,GAAQ,EAAS,IAI1B,OAAO,EAGT,IAQM,GAAgB,CACpB,WACA,WACA,MAnEF,YAAsF,IAEhF,EAFY,EAAoE,EAApE,YAAa,EAAuD,EAAvD,YAAa,EAA0C,EAA1C,MAClC,EAAY,EAAZ,QAGR,GAAI,EAAS,CACX,IAAM,GAAa,yBAAmB,EAAQ,OAAQ,EAAa,EAAY,OAAO,MAAM,MAE5F,EAAS,EAAU,SAAS,GAG9B,EAAS,GAAU,CAAE,EAAG,EAAG,EAAG,GAE9B,EAAM,OAAS,CACb,IAAK,EAAO,EAAI,EAAY,IAC5B,KAAM,EAAO,EAAI,EAAY,KAC7B,OAAQ,EAAO,EAAI,EAAY,OAC/B,MAAO,EAAO,EAAI,EAAY,QAoDhC,IAhDF,YAAsF,IAAtE,EAAsE,EAAtE,OAAQ,EAA8D,EAA9D,MAAO,EAAuD,EAAvD,YAAa,EAA0C,EAA1C,MAClC,EAAoB,EAApB,OAAQ,EAAY,EAAZ,QAEhB,GAAK,EAAL,CAIA,IAAM,GAAO,aAAO,GAAI,GAClB,GAAQ,yBAAmB,EAAQ,MAAO,EAAa,IAAU,GACjE,GAAQ,yBAAmB,EAAQ,MAAO,EAAa,IAAU,GAEvE,GAAQ,EAAO,IACf,GAAQ,EAAO,IAEX,EAAM,IACR,EAAO,EAAI,KAAK,IAAI,KAAK,IAAI,EAAM,IAAM,EAAO,IAAK,EAAK,GAAI,EAAM,IAAM,EAAO,KACxE,EAAM,SACf,EAAO,EAAI,KAAK,IAAI,KAAK,IAAI,EAAM,OAAS,EAAO,OAAQ,EAAK,GAAI,EAAM,OAAS,EAAO,SAExF,EAAM,KACR,EAAO,EAAI,KAAK,IAAI,KAAK,IAAI,EAAM,KAAO,EAAO,KAAM,EAAK,GAAI,EAAM,KAAO,EAAO,MAC3E,EAAM,QACf,EAAO,EAAI,KAAK,IAAI,KAAK,IAAI,EAAM,MAAQ,EAAO,MAAO,EAAK,GAAI,EAAM,MAAQ,EAAO,UA2BzF,SAbqC,CACrC,MAAO,KACP,MAAO,KACP,OAAQ,KACR,SAAS,EACT,SAAS,gCAWI,mBAAa,GAAe,6HC3G3C,IAAM,IAAW,aACf,CACE,kBACE,MAAO,CAAE,IAAK,EAAG,KAAM,EAAG,OAAQ,EAAG,MAAO,IAE9C,gBAAiB,MAEnB,YAAS,UAGL,GAAe,CACnB,MAAO,YAAS,MAChB,IAAK,YAAS,IACd,wCAGa,mBAAa,GAAc,4HCV1C,IAAM,GAAQ,CAAE,OAAO,IAAW,QAAQ,KACpC,GAAQ,CAAE,MAAO,IAAW,OAAQ,KAoEpC,GAAe,CACnB,MA5DF,SAAgB,GACd,OAAO,iBAAc,MAAM,IA4D3B,IAhDF,SAAc,GAAqC,IACzC,EAAoC,EAApC,YAAa,EAAuB,EAAvB,MAAO,EAAgB,EAAhB,KAAM,EAAU,EAAV,MAC1B,EAAY,EAAZ,QAER,GAAK,EAAL,CAIA,IAAM,EACJ,EAAU,YAAW,yBAAmB,EAAQ,IAAY,EAAa,EAAI,UAAY,GACrF,EACJ,EAAU,YAAW,yBAAmB,EAAQ,IAAY,EAAa,EAAI,UAAY,GAE3F,EAAM,QAAU,CACd,QAAS,EAAQ,QACjB,OAAO,aAAO,GAAI,iBAAc,SAChC,OAAO,aAAO,GAAI,iBAAc,UAG9B,EAAM,KACR,EAAM,QAAQ,MAAM,IAAM,EAAK,OAAS,EAAQ,OAChD,EAAM,QAAQ,MAAM,IAAM,EAAK,OAAS,EAAQ,QACvC,EAAM,SACf,EAAM,QAAQ,MAAM,OAAS,EAAK,IAAM,EAAQ,OAChD,EAAM,QAAQ,MAAM,OAAS,EAAK,IAAM,EAAQ,QAE9C,EAAM,MACR,EAAM,QAAQ,MAAM,KAAO,EAAK,MAAQ,EAAQ,MAChD,EAAM,QAAQ,MAAM,KAAO,EAAK,MAAQ,EAAQ,OACvC,EAAM,QACf,EAAM,QAAQ,MAAM,MAAQ,EAAK,KAAO,EAAQ,MAChD,EAAM,QAAQ,MAAM,MAAQ,EAAK,KAAO,EAAQ,OAGlD,iBAAc,IAAI,GAElB,EAAM,QAAU,IAahB,SAVoC,CACpC,IAAK,KACL,IAAK,KACL,SAAS,EACT,SAAS,+BASI,mBAAa,GAAc,sQCmH1C,IAUM,GAAO,CACX,MA3JF,SAAgB,GAA6B,IAKvC,EAJI,EAAiE,EAAjE,YAAa,EAAoD,EAApD,aAAc,EAAsC,EAAtC,QAAS,EAA6B,EAA7B,KAAM,EAAuB,EAAvB,MAAO,EAAgB,EAAhB,YACjD,EAAY,EAAZ,QACF,EAAS,EAAQ,iBAqIzB,SAAoB,GAAsC,IAChD,EAAY,EAAI,YAAhB,QAIR,OAHsB,eAAS,qBAAgB,EAAI,MAAM,QAAQ,OAAe,KAAM,KAAM,CAAC,OAC7D,aAAY,EAAI,aAAc,EAAS,EAAI,YAAY,SAAS,MAxItD,CAAU,GAAO,CAAE,EAAG,EAAG,EAAG,GAItE,GAAuB,gBAAnB,EAAQ,OACV,EAAa,CACX,EAAG,EAAY,OAAO,MAAM,KAAK,EACjC,EAAG,EAAY,OAAO,MAAM,KAAK,OAE9B,CACL,IAAM,GAAa,qBAAgB,EAAQ,OAAe,EAAc,EAAS,CAAC,KAElF,GAAa,cAAS,IAAe,CAAE,EAAG,EAAG,EAAG,IACrC,GAAK,EAAO,EACvB,EAAW,GAAK,EAAO,EAjBkB,IAoBnC,EAAmB,EAAnB,eAER,EAAM,QACJ,GAAQ,GAAkB,EAAe,OACrC,EAAe,KAAI,SAAC,EAAe,GAAhB,MAA2B,CAC9C,QACA,gBACA,EAAG,EAAY,KAAO,EAAK,MAAQ,EAAc,EAAI,EAAW,EAChE,EAAG,EAAY,IAAM,EAAK,OAAS,EAAc,EAAI,EAAW,MAEhE,CACA,CACE,MAAO,EACP,cAAe,KACf,EAAG,EAAW,EACd,EAAG,EAAW,KAyHtB,IApHF,SAAc,GAA6B,IACjC,EAA+B,EAA/B,YAAa,EAAkB,EAAlB,OAAQ,EAAU,EAAV,MACrB,EAAqB,EAArB,QAAS,EAAY,EAAZ,QAEX,GAAS,aAAY,EAAY,aAAc,EAAY,QAAS,EAAY,SAAS,MACzF,GAAO,aAAO,GAAI,GAClB,EAAU,GAEX,EAAQ,mBACX,EAAK,GAAK,EAAO,EACjB,EAAK,GAAK,EAAO,GAGnB,cAAqB,EAArB,WAIE,IAJ4B,IAAnB,EAAU,EAAS,GACtB,EAAY,EAAK,EAAI,EAAO,EAC5B,EAAY,EAAK,EAAI,EAAO,EAEzB,EAAQ,EAAG,EAAM,EAAQ,QAAQ,OAAQ,EAAQ,EAAK,IAAS,CACtE,IACI,EADE,EAAa,EAAQ,QAAQ,IAIjC,EADE,UAAG,KAAK,GACD,EAAW,EAAW,EAAW,EAAY,OAAQ,EAAQ,GAE7D,IAOX,EAAQ,KAAK,CACX,GAAI,UAAG,OAAO,EAAO,GAAK,EAAO,EAAI,GAAa,EAAO,EACzD,GAAI,UAAG,OAAO,EAAO,GAAK,EAAO,EAAI,GAAa,EAAO,EAEzD,MAAO,UAAG,OAAO,EAAO,OAAS,EAAO,MAAQ,EAAQ,MACxD,OAAQ,EACR,QACA,WAaN,IARA,IAAM,EAAU,CACd,OAAQ,KACR,SAAS,EACT,SAAU,EACV,MAAO,EACP,MAAO,CAAE,EAAG,EAAG,EAAG,IAGpB,MAAqB,EAArB,WAA8B,CAAzB,IAAM,EAAU,EAAJ,GACT,EAAQ,EAAO,MACf,EAAK,EAAO,EAAI,EAAK,EACrB,EAAK,EAAO,EAAI,EAAK,EACrB,GAAW,aAAM,EAAI,GACvB,EAAU,GAAY,EAItB,IAAU,KAAY,EAAQ,SAAW,EAAQ,QAAU,MAC7D,GAAU,GAIT,EAAQ,UACR,EAEC,EAAQ,SAAW,IAAU,IAE3B,EAAW,EAAQ,EAAQ,SAAW,EAAQ,MAE7C,IAAU,KAAY,EAAQ,QAAU,KAEvC,EAAW,EAAQ,UAEtB,EAAQ,SAAW,EAAW,EAAQ,YAEzC,EAAQ,OAAS,EACjB,EAAQ,SAAW,EACnB,EAAQ,MAAQ,EAChB,EAAQ,QAAU,EAClB,EAAQ,MAAM,EAAI,EAClB,EAAQ,MAAM,EAAI,GAUtB,OANI,EAAQ,UACV,EAAO,EAAI,EAAQ,OAAO,EAC1B,EAAO,EAAI,EAAQ,OAAO,GAG5B,EAAM,QAAU,EACT,GAwBP,SAb4B,CAC5B,MAAO,IACP,QAAS,KACT,OAAQ,KACR,kBAAkB,EAClB,OAAQ,KACR,eAAgB,KAChB,SAAS,EACT,SAAS,uBAQI,mBAAa,GAAM,uNC/HlC,IAQM,GAAW,CACf,MAtFF,SAAgB,GAA6B,IACnC,EAAiB,EAAjB,MAAO,EAAU,EAAV,MACP,EAAY,EAAZ,QAER,IAAK,EACH,OAAO,KAGT,EAAI,MAAQ,CACV,QAAS,CACP,QAAS,KACT,eAAgB,CACd,CACE,EAAG,EAAM,KAAO,EAAI,EACpB,EAAG,EAAM,IAAM,EAAI,IAGvB,OAAQ,EAAQ,QAAU,OAC1B,OAAQ,CAAE,EAAG,EAAG,EAAG,GACnB,MAAO,EAAQ,QAInB,EAAM,aAAe,EAAM,cAAgB,CACzC,CAAC,QAAS,UACV,CAAC,IAAK,MAGR,QAAK,MAAM,GACX,EAAM,QAAU,EAAI,MAAM,QAE1B,EAAI,MAAQ,GAwDZ,IArDF,SAAc,GAAK,QACT,EAA+B,EAA/B,YAAa,EAAkB,EAAlB,MAAO,EAAW,EAAX,OACpB,EAAqB,EAArB,QAAS,EAAY,EAAZ,QACX,EAAW,CACf,EAAG,EAAO,EAAI,EAAQ,GAAG,EACzB,EAAG,EAAO,EAAI,EAAQ,GAAG,GAG3B,EAAM,SAAU,aAAO,GAAI,GAC3B,EAAM,QAAQ,QAAU,GAExB,eAAyB,EAAQ,SAAW,IAA5C,WAAgD,KAArC,GAAc,EAAQ,SAAW,IAAI,GAC1C,OAAM,EAQV,GALE,EADE,UAAG,KAAK,GACD,EAAW,EAAS,EAAG,EAAS,EAAG,GAEnC,EAGX,CAIA,cAA+B,EAAM,aAArC,WAAmD,UAApB,EAAM,aAAc,2zBAAvC,EAAuC,KAA/B,EAA+B,KACjD,GAAI,KAAU,GAAU,KAAU,EAAQ,CACxC,EAAO,EAAI,EAAO,GAClB,EAAO,EAAI,EAAO,GAElB,OAIJ,EAAM,QAAQ,QAAQ,KAAK,IAG7B,IAAM,EAAc,QAAK,IAAI,GAI7B,OAFA,EAAM,QAAU,EAET,GAcP,SAXgC,CAChC,MAAO,IACP,QAAS,KACT,OAAQ,KACR,SAAS,EACT,SAAS,2BASI,mBAAa,GAAU,qHCnDtC,IAAM,GAA0F,CAC9F,MAfF,SAAgB,GAA6B,IACnC,EAAU,EAAV,MAER,OAAK,GAIL,EAAI,MAAM,aAAe,EAAI,MAAM,cAAgB,CACjD,CAAC,EAAM,KAAO,OAAS,QAAS,EAAM,IAAM,MAAQ,WAG/C,YAAS,MAAM,IAPb,MAYT,IAAK,YAAS,IACd,UAAU,cAAO,cAAM,YAAS,UAAW,CACzC,QAAS,KACT,MAAO,KACP,OAAQ,CAAE,EAAG,EAAG,EAAG,8BAIR,mBAAa,GAAW,oZClDxB,CACb,uBACA,yBACA,oBACA,wBACA,wBACA,qBACA,gBACA,oBAEA,kBACA,iBACA,qBACA,mHCfF,OAA0B,CACxB,GAAI,YACJ,QAFwB,SAEf,GAAO,IACU,EAAa,EAA7B,eAQR,IAAK,IAAM,KANX,EAAM,UAAU,YAChB,EAAM,UAAU,YAEhB,EAAS,UAAY,WAGF,WAAK,OACU,WAAI,GAA5B,EADc,EACd,UAAW,EADG,EACH,SAEjB,EAAkB,SAAW,EAC7B,EAAM,SAAS,UAAkB,GAAQ,miCCtB5B,8pBAenB,WACE,EACA,EACA,EACA,EACA,EACA,GACA,MAgBA,+FAhBA,eACA,cAAM,IADN,iSAEA,EAAa,cAAb,MAAiC,GAE7B,IAAU,GACZ,EAAa,cAAb,MAAiC,GAGnC,EAAK,UAAY,EACjB,EAAK,cAAgB,EACrB,EAAK,KAAO,EACZ,EAAK,UAAY,EAAa,aAAa,GAC3C,EAAK,YAAc,EAAa,eAAe,GAC/C,EAAK,OAAS,EACd,EAAK,cAAgB,KAER,QAAT,EAAgB,CAClB,IAAM,EAAe,EAAY,gBAAgB,GACjD,EAAK,GAAK,EAAK,UAAY,EAAY,SAAS,GAAc,SAE9D,IAAM,EAAW,EAAK,UAAY,EAAY,QAE9C,EAAK,UACH,EAAY,SACiB,cAA7B,EAAY,QAAQ,MACpB,EAAY,QAAQ,SAAW,EAAK,QACpC,EAAW,SAEK,cAAT,IACT,EAAK,GAAM,EAAgC,UAAY,EAAY,SA7BrE,qDAiCF,YAAoD,IAA9B,EAA8B,EAAjC,EAAe,EAAkB,EAArB,EAM7B,OALA,KAAK,OAAS,EACd,KAAK,OAAS,EACd,KAAK,SAAW,EAChB,KAAK,SAAW,EAET,+BAGT,YAA+C,IAA9B,EAA8B,EAAjC,EAAe,EAAkB,EAArB,EAMxB,OALA,KAAK,OAAS,EACd,KAAK,OAAS,EACd,KAAK,SAAW,EAChB,KAAK,SAAW,EAET,mCAMT,WACE,KAAK,cAAc,0CA7EF,CAA6C,yHCyElE,IAOM,GAAwB,CAC5B,GAAI,sBACJ,OAAQ,CAAC,UAAW,YAAa,aAAc,WAC/C,QA+QF,SAAkB,GAChB,EAAM,cAAgB,GACtB,EAAM,SAAS,QAAQ,cAAgB,GAAc,UACrD,aAAO,EAAM,QAAQ,eAAgB,GAAc,QAjRnD,UAAW,CACT,mBAuKJ,YAA+C,IAAf,EAAe,EAAf,YAC9B,EAAY,QAAU,KACtB,EAAY,QAAU,GAxKpB,8BA2KJ,YAAwF,IAAhE,EAAgE,EAAhE,KAAM,EAA0D,EAA1D,aACvB,GAAQ,EAAY,OAIzB,EAAY,KAAO,CAAE,SAAU,IAAU,QAAS,QA/KhD,oBA2LJ,SAA2B,EAAsC,GAAc,IACrE,EAAwD,EAAxD,YAAa,EAA2C,EAA3C,QAAS,EAAkC,EAAlC,MAAO,EAA2B,EAA3B,YAA2B,EAAd,WAE9B,EAAY,gBAAiB,EAAY,kBACvD,EAAY,eACd,GAAU,GAGZ,GACE,CACE,cACA,UACA,QACA,YAAa,EACb,KAAM,QAER,KA1MF,oBAAqB,SAAC,EAAK,IA+M/B,WAEE,GAeA,IAdA,IAFE,EAEF,EAFE,YAAa,EAEf,EAFe,QAAS,EAExB,EAFwB,MAAO,EAE/B,EAF+B,YAAa,EAE5C,EAF4C,aAGtC,EAAQ,EAAY,SAAS,GAAc,KAC3C,EAAO,EAAS,QAAQ,GACxB,EAAY,CAChB,cACA,UACA,QACA,cACA,KAAM,OACN,QAAS,GACT,OACA,KAAM,MAGR,MAAmB,EAAnB,WAAyB,KAAd,EAAQ,EAAM,GACvB,EAAU,KAAO,EAEjB,EAAM,KAAK,gCAAiC,GAG9C,GAAK,EAAU,QAAQ,OAAvB,CAIA,IAFA,IAAI,EAAc,IAElB,MAAqB,EAAU,QAA/B,WAAwC,KAChC,EADa,EAAU,QAAS,GACV,UAAU,QAAQ,aAE1C,EAAe,IACjB,EAAc,GAIlB,EAAM,SAAW,EACjB,EAAM,QAAU,YAAW,WACzB,GACE,CACE,cACA,cACA,UACA,QACA,KAAM,QAER,KAED,IA7PC,CAAiB,EAAK,GACtB,GAAK,EAAK,IAEZ,kBAAmB,SAAC,EAAK,GACvB,GAAU,GACV,GAAK,EAAK,GA2PhB,WAEE,GACA,IAFE,EAEF,EAFE,YAAa,EAEf,EAFe,QAAS,EAExB,EAFwB,MAAO,EAE/B,EAF+B,YAG1B,EAAY,iBACf,GAAK,CAAE,cAAa,cAAa,UAAS,QAAO,KAAM,OAAS,GA/P9D,CAAW,EAAK,IAElB,sBAAuB,SAAC,EAAK,GAC3B,GAAU,GACV,GAAK,EAAK,KAGd,6BACA,QACA,uBACA,SAhCoC,CACpC,aAAc,IACd,WAAY,KACZ,UAAW,KACX,OAAQ,CAAE,EAAG,EAAG,EAAG,IA6BnB,MAAO,CACL,MAAM,EACN,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,WAAW,EACX,MAAM,IAIV,SAAS,GACP,EAQA,GACA,IACQ,EAA8F,EAA9F,YAAa,EAAiF,EAAjF,QAAS,EAAwE,EAAxE,MAAO,EAAiE,EAAjE,YAAa,EAAoD,EAApD,KADlD,EACsG,EAA9C,eADxD,MACkE,GAAoB,EAAK,GAD3F,EAGM,EAAe,IAAI,gBAAa,EAAM,EAAS,EAAO,EAAa,EAAa,EAAM,OAE5F,EAAM,KAAK,oBAAqB,CAAE,iBAYlC,IAVA,IAAM,EAAY,CAChB,cACA,UACA,QACA,cACA,UACA,OACA,gBAGO,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,CACvC,IAAM,EAAS,EAAQ,GAEvB,IAAK,IAAM,KAAQ,EAAO,OAAS,GAC/B,EAAqB,GAAQ,EAAO,MAAM,GAG9C,IAAM,GAAS,aAAY,EAAO,UAAW,EAAO,MAUpD,GARA,EAAa,gBAAgB,GAC7B,EAAa,UAAY,EAAO,UAChC,EAAa,cAAgB,EAAO,KAEpC,EAAO,UAAU,KAAK,GAEtB,EAAa,WAAW,GAGtB,EAAa,6BACZ,EAAa,oBACZ,EAAI,EAAI,EAAQ,QAChB,EAAQ,EAAI,GAAG,OAAS,EAAa,cAEvC,MAMJ,GAFA,EAAM,KAAK,sBAAuB,GAErB,QAAT,EAAgB,CAGlB,IAAM,EAAU,EAAa,OACzB,GACA,CACE,cACA,UACA,QACA,cACA,KAAM,aAER,GAEA,EAEJ,EAAY,QAAU,EACtB,EAAY,QAAU,EAAQ,UAGhC,OAAO,EAGT,SAAS,GAAT,EAcE,GACA,IAbE,EAaF,EAbE,YACA,EAYF,EAZE,QACA,EAWF,EAXE,MACA,EAUF,EAVE,YACA,EASF,EATE,KAUI,EAAe,EAAY,gBAAgB,GAC3C,EAAc,EAAY,SAAS,GAGzC,GACW,QAAT,IACC,EAAY,kBAET,GAAe,EAAY,aAAe,GAE9C,MAAO,GAeT,IAZA,IAAM,EAAO,EAAS,QAAQ,GACxB,EAAY,CAChB,cACA,UACA,QACA,cACA,OACA,OACA,QAAS,GACT,KAAM,MAGR,MAAmB,EAAnB,WAAyB,KAAd,EAAQ,EAAM,GACvB,EAAU,KAAO,EAEjB,EAAM,KAAK,gCAAiC,GAS9C,MANa,SAAT,IACF,EAAU,QAAU,EAAU,QAAQ,QACpC,SAAC,GAAD,aAAY,EAAO,UAAU,QAAQ,gBAAzB,SAA0C,EAAY,SAAS,SAA/D,EAA0C,EAAoC,KAAK,cAI5F,EAAU,QAgBnB,SAAS,GAAT,GAAmD,IAA7B,EAA6B,EAA7B,YAAa,EAAgB,EAAhB,aAC3B,EAAO,EAAY,SAAS,GAAc,KAE5C,GAAQ,EAAK,UACf,aAAa,EAAK,SAClB,EAAK,QAAU,aA0FJ,2BC1Sf,SAAS,GAAT,GAAuE,IAA7C,EAA6C,EAA7C,YAGpB,EAAY,qBACd,cAAc,EAAY,oBAC1B,EAAY,mBAAqB,0EAIrC,OAA2B,CACzB,GAAI,4BACJ,QAtDF,SAAkB,GAChB,EAAM,UAAU,YADc,IAGtB,EAAkB,EAAlB,cAGR,EAAc,SAAS,mBAAqB,EAC5C,EAAc,MAAM,WAAa,EAAM,QAAQ,eAAe,YAAa,GAgD3E,UAAW,CAAC,OAAQ,KAAM,SAAU,UAAU,QAC5C,SAAC,EAAK,GAEJ,OADE,EAAD,wBAA8B,IAAgB,GACxC,IAET,CACE,oBAnDN,YAAuE,IAArD,EAAqD,EAArD,aACU,SAAtB,EAAa,OAEjB,EAAa,OAAS,EAAa,OAAS,GAAK,IAiD7C,sBA9CN,WAEE,GACA,IAFE,EAEF,EAFE,YAAa,EAEf,EAFe,aAAc,EAE7B,EAF6B,YAAa,EAE1C,EAF0C,QAG1C,GAA0B,SAAtB,EAAa,MAAoB,EAAQ,OAA7C,CAGA,IAAM,EAAW,EAAQ,GAAG,UAAU,QAAQ,mBAG1C,GAAY,IAGhB,EAAY,mBAAqB,YAAW,WAC1C,EAAM,cAAc,KAClB,CACE,cACA,cACA,KAAM,OACN,QAAS,EACT,MAAO,GAET,KAED,iCClCL,SAAS,GAAyC,GAGhD,OAFA,aAAO,KAAK,OAAO,QAAS,GAErB,yEAGT,OAAuB,CACrB,GAAI,qCACJ,QA1BF,SAAkB,GAAc,IACtB,EAAiB,EAAjB,aAER,EAAa,UAAU,cAAgB,GAEvC,IAAM,EAAqB,EAAa,UAAU,kBAElD,EAAa,UAAU,kBAAoB,SAAU,EAAY,GAC/D,IAAM,EAAM,EAAmB,KAAK,KAAM,EAAY,GAMtD,OAJI,IAAQ,OACV,KAAK,OAAO,QAAQ,GAAc,GAG7B,IAaT,UAAW,CACT,gCAAiC,WAAuC,GAAU,IAA9C,EAA8C,EAA9C,QAAS,EAAqC,EAArC,KAAM,EAA+B,EAA/B,KAAM,EAAyB,EAAzB,YACvD,EAAM,cAAc,aAAa,GAAM,SAAC,GACtC,IAAM,EAAY,EAAa,OACzB,EAAU,EAAU,QAGxB,EAAU,MAAM,IAChB,EAAU,MAAM,GAAM,QACtB,EAAa,gBAAgB,EAAS,EAAM,IAE5C,EAAQ,KAAK,CACX,OACA,YACA,MAAO,CAAE,sBAMjB,mBAAoB,YAAsB,IAAnB,EAAmB,EAAnB,aACrB,EAAa,OAAO,QAAU,SAAU,GACtC,OAAO,EAAa,QAAQ,KAIhC,mBAAoB,WAA4B,GAAU,IAAnC,EAAmC,EAAnC,aAAc,EAAqB,EAArB,SACnC,aAAO,EAAa,OAAO,QAAS,EAAM,cAAc,WACxD,aAAO,EAAa,OAAO,QAAS,EAAQ,eAAiB,mGC7DnE,OAAuB,CACrB,GAAI,iBACJ,QAFqB,SAEZ,GACP,EAAM,UAAU,IAChB,EAAM,UAAU,YAChB,EAAM,UAAU,sCC0Bb,SAAS,GAAS,GAAc,IAGnC,EACE,EADF,aAGF,EAAM,QAAQ,OAAO,QAAS,EAkB9B,EAAa,UAAU,OAAS,SAAU,GACxC,OAIJ,SACE,EACA,EACA,GAUA,IARA,IAAM,EAAY,UAAG,OAAO,EAAa,QACrC,EAAI,KAAK,EAAa,SAAS,iBAAiB,EAAa,SAC7D,CAAC,EAAa,QAGZ,EAAW,EAAM,OAAe,QAChC,EAAwC,EAAU,GAAK,KAPtC,iBASZ,EAAW,EATC,GAUf,EAAO,EAAa,QAAQ,GAElC,IAAK,EACH,cAGF,IAAM,EAAqB,EAAI,KAAK,EAAM,aAAa,MAAM,SAAC,GAC5D,OACE,EAAY,eACZ,EAAY,eAAiB,GAC7B,EAAY,UAAY,GACxB,EAAY,SAAS,OAAS,EAAO,QAGrC,OAA4B,EAEhC,GAAI,EACF,EAAmB,OAEf,IACF,EACE,EAAmB,gBACnB,IAAI,GAAQ,SAAC,GACX,EAAmB,eAAiB,UAGrC,CACL,IAAM,GAAO,gBAAW,GAClB,EAAS,CACb,KAAM,CAAE,EAAG,EAAK,EAAG,EAAG,EAAK,GAC3B,OAAQ,CAAE,EAAG,EAAK,EAAG,EAAG,EAAK,GAC7B,UAAW,EAAM,OAGb,EAAQ,EAAa,cAAc,GACzC,EAWN,SACE,EACA,EACA,EACA,EACA,GAEA,IAAM,EAAc,EAAM,aAAa,IAAI,CAAE,YAAa,WACpD,EAAY,CAChB,cACA,QACA,QAAS,EACT,YAAa,EACb,MAAO,UAGT,EAAY,aAAe,EAC3B,EAAY,QAAU,EACtB,EAAY,UAAY,EACxB,EAAY,cAAc,EAAO,EAAO,GAAS,GACjD,EAAa,cAAc,EAAY,OAAO,QAE9C,iBAAW,EAAY,SAAU,GACjC,EAAY,SAAS,GAjBrB,IAmBQ,EAAa,EAAM,OAAnB,QACF,EAAgB,EAClB,IAAI,GAAmB,SAAC,GACxB,EAAY,eAAiB,UAE7B,EAeJ,OAbA,EAAY,eAAiB,EAC7B,EAAY,MAAM,EAAQ,EAAc,GAEpC,EAAY,cACd,EAAY,KAAK,GACjB,EAAY,IAAI,KAEhB,EAAY,OACZ,EAAY,kBAGd,EAAY,cAAc,EAAO,GAE1B,EAxDa,CAAe,EAAO,EAAc,EAAS,EAAQ,GAGnE,GACF,EAAS,KAAK,IAxClB,MAAsB,EAAtB,QAAgC,cAAhC,KA4CA,OAAO,GAAY,EAAQ,IAAI,GAAU,MAAK,kBAAM,KA7D3C,CAAS,KAAM,EAAQ,sFAgHlC,OAAuB,CACrB,GAAI,SACJ,WACA,UAAW,CAET,oBAAqB,WAAkB,GAAU,IAAzB,EAAyB,EAAzB,YACU,WAA5B,EAAY,cACV,EAAY,gBACd,EAAY,iBAGd,EAAI,OAAO,EAAM,aAAa,KAAM,oWC7K5C,WAAS,IAAI,YAEb,WAAS,IAAI,YAGb,WAAS,IAAI,YAGb,WAAS,IAAI,YAGb,WAAS,IAAI,YAGb,WAAS,IAAI,YAGb,WAAS,IAAI,YAGb,WAAS,IAAI,YAGb,WAAS,IAAI,mBAOE,WAEf,yBAAsB,WAAlB,GAAO,KAAyB,GAClC,IACE,WAAiB,WACjB,UAGF,WAAiB,QAAU,+WC/Cd,WAEf,yBAAsB,WAAlB,GAAO,KAAyB,GAClC,IACE,WAAiB,WACjB,UCPJ,ODUE,WAAiB,QAAU,WCX7B;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,MAAM,KAA0B;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;;AAGA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,YAAY;;AAEpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF,oBAAoB;;AAEpB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF,6CAA6C;AAC7C;AACA;AACA,kBAAkB,kCAAkC;AACpD,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,SAAS;AAClB;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,YAAY;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,YAAY;AACtB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,kCAAkC,IAAI;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,0BAA0B;AAC1B;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA,gBAAgB,IAAI;;AAEpB;AACA;;AAEA;;AAEA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS;;AAET;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,yBAAyB;AACtC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ,6BAA6B;AAChD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;;AAEA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,eAAe;;AAEf,SAAS;;AAET;AACA,QAAQ,iCAAiC;AACzC,QAAQ,oBAAoB;AAC5B,QAAQ,sCAAsC;AAC9C,QAAQ;AACR,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,6DAA6D;;AAE7D;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA,8DAA8D;;AAE9D;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA,8CAA8C;;AAE9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,iEAAiE,UAAU;AAC3E,sCAAsC,2BAA2B;AACjE;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,UAAU;AACpB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,cAAc;AACxB;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA,YAAY,uEAAuE;AACnF;AACA;AACA,YAAY,4BAA4B;AACxC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,4DAA4D;;AAE5D;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH,QAAQ,SAAS;AACjB;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iDAAiD;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA,iDAAiD;AACjD,UAAU,4CAA4C;AACtD;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA,CAAC;;;;AAID;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,QAAQ,GAAG;AACX;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;;;AAIA;;AAEA;;AAEA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA,cAAc,SAAS;AACvB;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,OAAO;AACjB,0BAA0B,wBAAwB;;AAElD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA,0CAA0C;AAC1C,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;;;;AAIA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU,cAAc;AACxB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA,OAAO;AACP,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wCAAwC,sCAAsC;AAC9E,oCAAoC,uCAAuC;AAC3E,oCAAoC,sCAAsC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,OAAO;AACP;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;;AAEX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oCAAoC;AACpC,qCAAqC;AACrC,oCAAoC;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA,EAAE;AACF;;;;;AAKA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uBAAuB,aAAa;AACpC,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;;;AAGA;;AAEA;;;;AAIA;AACA;AACA,GAAG;AACH,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;;AAEA;;AAEA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,EAAE;AACF;;AAEA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;AACf;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,gBAAgB;AAClB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA,WAAW;;AAEX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,sBAAsB;AACpC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+DAA+D;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,cAAc;;AAExB;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uCAAuC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,uDAAuD;AAC9E;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,+CAA+C;AACpD;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;AACtC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,cAAc,qCAAqC;AACnD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,OAAO;AACjB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,+BAA+B;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,SAAS,qCAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;;AAEA,SAAS,8BAA8B;AACvC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,WAAW;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;;;AAIA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+CAA+C,cAAc,WAAW;AACxE,mBAAmB,UAAU;AAC7B;AACA,sBAAsB,cAAc,sBAAsB,gBAAgB;AAC1E,gBAAgB,WAAW,YAAY;AACvC,cAAc;AACd;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,cAAc;AAC3D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,+DAA+D;AAC3E;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;;AAEf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA,UAAU,OAAO;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;;AAEA,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,QAAQ,OAAO;AACf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,iDAAiD,0BAA0B;AAC3E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,gBAAgB;AAC1B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;;AAEA,6CAA6C;AAC7C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,gBAAgB;AACzB;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;AACF;AACA;AACA;;AAEA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,SAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B,WAAW,kBAAkB;AAC7B,cAAc;AACd,CAAC;AACD;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,mBAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;AAKD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA,iCAAiC;AACjC;AACA;;AAEA,IAAI;AACJ;;AAEA,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA;AACA,WAAW,SAAS;AACpB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;;;AAGA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;;AAEA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;;AAEA;AACA;AACA;AACA;AACA,UAAU,KAAK;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAqC;;AAEpD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA,aAAa;;AAEb;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb,KAAK;AACL;;AAEA,WAAW;AACX,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB,gDAAgD;AAChD;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC;;AAElC;AACA,sBAAsB;AACtB,2BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;AACJ;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,aAAa,uCAAuC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ,GAAG;AACH;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA,EAAE;AACF;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA,cAAc,sDAAsD;AACpE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA,cAAc,mCAAmC;AACjD;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,EAAE;AACF,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK,IAA0C;AAC/C,CAAC,iCAAkB,EAAE,mCAAE;AACvB;AACA,EAAE;AAAA,kGAAE;AACJ;;;;;AAKA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChoVD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEyhI;;;;;;;;;;;;AC9W5gI;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe,mBAAO,CAAC,oDAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB;;;;;;;;;;;;AC/IJ;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,kBAAkB,mBAAO,CAAC,0DAAa;AACvC,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,gBAAgB,mBAAO,CAAC,sDAAW;AACnC,eAAe,mBAAO,CAAC,oDAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB;AACjB;AACA;AACA;AACA;;;;;;;;;;;;ACjMa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,gBAAgB,mBAAO,CAAC,sDAAW;AACnC,eAAe,mBAAO,CAAC,oDAAU;AACjC,gBAAgB,mBAAO,CAAC,sDAAW;AACnC,mBAAmB,mBAAO,CAAC,4DAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,cAAc;AACd;AACA;AACA;AACA;AACA,gCAAgC,WAAW,uBAAuB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mBAAmB;AACnB;AACA;AACA;AACA,gCAAgC,WAAW,uBAAuB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB;;;;;;;;;;;;ACnIJ;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,gBAAgB,mBAAO,CAAC,sDAAW;AACnC,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,oBAAoB,mBAAO,CAAC,8DAAe;AAC3C,mBAAmB,mBAAO,CAAC,4DAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1Va;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,eAAe,mBAAO,CAAC,oDAAU;AACjC,2HAA2H;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,eAAe;AACf;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB;;;;;;;;;;;;ACxgBL;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,0DAAa;AACvC,eAAe,mBAAO,CAAC,oDAAU;AACjC,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9Fa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,mBAAmB,mBAAO,CAAC,4DAAc;AACzC;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;ACtHa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,kBAAkB,mBAAO,CAAC,0DAAa;AACvC,kBAAkB,mBAAO,CAAC,0DAAa;AACvC,eAAe,mBAAO,CAAC,oDAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB;AACjB;AACA;AACA;;;;;;;;;;;;ACtDa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D;AACA;AACA;AACA,WAAW;AACX,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU,qBAAM;AAC5B,MAAM,qBAAM;AACZ;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,QAAQ,kBAAkB;AAC1B,KAAK;AACL;AACA;AACA,uBAAuB;AACvB,qBAAqB;AACrB;AACA;AACA;;;;;;;;;;;;AClFa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,kBAAkB,mBAAO,CAAC,0DAAa;AACvC,eAAe,mBAAO,CAAC,oDAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,aAAa;AACb;AACA;AACA;;;;;;;;;;;;AClCa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,kBAAkB,mBAAO,CAAC,0DAAa;AACvC,gBAAgB,mBAAO,CAAC,sDAAW;AACnC,kBAAkB,mBAAO,CAAC,0DAAa;AACvC,eAAe,mBAAO,CAAC,oDAAU;AACjC,cAAc,mBAAO,CAAC,kDAAS;AAC/B,mBAAmB,mBAAO,CAAC,4DAAc;AACzC,eAAe,mBAAO,CAAC,oDAAU;AACjC;AACA,KAAK,aAAa;AAClB,KAAK,eAAe;AACpB,KAAK,cAAc;AACnB,KAAK,aAAa;AAClB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,+BAA+B;AAC5E;AACA;AACA;AACA;AACA,CAAC;AACD,aAAa;AACb;AACA;AACA;AACA;;;;;;;;;;;;AC3Ka;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,gBAAgB,mBAAO,CAAC,sDAAW;AACnC,eAAe,mBAAO,CAAC,oDAAU;AACjC,eAAe,mBAAO,CAAC,oDAAU;AACjC,oBAAoB,mBAAO,CAAC,8DAAe;AAC3C,mBAAmB,mBAAO,CAAC,4DAAc;AACzC,WAAW;AACX,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,uBAAuB;AACpC,aAAa,oCAAoC;AACjD,aAAa,kDAAkD;AAC/D,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;AC3wCa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;;;;;;;;;;;ACtCT;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,gBAAgB,mBAAO,CAAC,sDAAW;AACnC,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,mBAAmB,mBAAO,CAAC,4DAAc;AACzC,eAAe,mBAAO,CAAC,oDAAU;AACjC,oBAAoB,mBAAO,CAAC,kEAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;ACvgBa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,gBAAgB,mBAAO,CAAC,sDAAW;AACnC,kBAAkB,mBAAO,CAAC,0DAAa;AACvC,eAAe,mBAAO,CAAC,oDAAU;AACjC,eAAe,mBAAO,CAAC,oDAAU;AACjC,oBAAoB,mBAAO,CAAC,8DAAe;AAC3C,eAAe,mBAAO,CAAC,oDAAU;AACjC,oBAAoB,mBAAO,CAAC,kEAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,+MAA+M;AAC/M,cAAc;AACd;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA,+BAA+B,+BAA+B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA,gCAAgC,8CAA8C;AAC9E;AACA;AACA;AACA,uCAAuC,WAAW;AAClD,+BAA+B,8CAA8C;AAC7E;AACA;AACA;AACA;AACA;AACA,kDAAkD,WAAW;AAC7D,oDAAoD,WAAW;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,sCAAsC,WAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,WAAW;AAC9E,qEAAqE,WAAW;AAChF;AACA,qDAAqD,WAAW;AAChE,sDAAsD,WAAW;AACjE;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA,+DAA+D,WAAW;AAC1E,iEAAiE,WAAW;AAC5E;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,2CAA2C,WAAW;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,WAAW;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2CAA2C,WAAW;AACtD;AACA;AACA;AACA,6CAA6C,WAAW;AACxD;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA,iCAAiC,8CAA8C;AAC/E;AACA,mCAAmC,8CAA8C;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qCAAqC,WAAW;AAChD;AACA,uCAAuC,WAAW;AAClD;AACA,+CAA+C,WAAW;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,WAAW;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,WAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA;AACA,2CAA2C,WAAW;AACtD;AACA,mDAAmD,WAAW;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8CAA8C;AAChF;AACA,iCAAiC,8CAA8C;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,sCAAsC,WAAW;AACjD;AACA,qCAAqC,WAAW;AAChD;AACA,6CAA6C,WAAW;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,WAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,2CAA2C,WAAW;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gBAAgB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACD,aAAa;AACb;AACA;AACA;;;;;;;;;;;;ACloBa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,kBAAkB,mBAAO,CAAC,0DAAa;AACvC,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,eAAe,mBAAO,CAAC,oDAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;AClgBa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe,mBAAO,CAAC,oDAAU;AACjC;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB;AAClB;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wBAAwB,IAAI,MAAM,IAAI,MAAM,IAAI;AACjD,YAAY;AACZ;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA,aAAa;AACb;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClsBa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe,mBAAO,CAAC,oDAAU;AACjC,aAAa,mBAAO,CAAC,gDAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;;;;;;;;;;;;ACpJhB;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,eAAe,mBAAO,CAAC,oDAAU;AACjC,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,kBAAkB,mBAAO,CAAC,0DAAa;AACvC,cAAc,mBAAO,CAAC,kDAAS;AAC/B,cAAc,mBAAO,CAAC,kDAAS;AAC/B,kBAAkB,mBAAO,CAAC,0DAAa;AACvC,cAAc,mBAAO,CAAC,kDAAS;AAC/B,oBAAoB,mBAAO,CAAC,8DAAe;AAC3C,cAAc,mBAAO,CAAC,kDAAS;AAC/B,kBAAkB,mBAAO,CAAC,0DAAa;AACvC,cAAc,mBAAO,CAAC,kDAAS;AAC/B,gBAAgB,mBAAO,CAAC,sDAAW;AACnC,eAAe,mBAAO,CAAC,oDAAU;AACjC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACpCY;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,uBAAuB,mBAAO,CAAC,oEAAkB;AACjD,YAAY,mBAAO,CAAC,4DAAc;AAClC,cAAc,mBAAO,CAAC,gEAAgB;AACtC,eAAe,mBAAO,CAAC,kEAAiB;AACxC,gBAAgB,mBAAO,CAAC,oEAAkB;AAC1C,cAAc,mBAAO,CAAC,gEAAgB;AACtC,cAAc,mBAAO,CAAC,gEAAgB;AACtC,aAAa,mBAAO,CAAC,8DAAe;AACpC,aAAa,mBAAO,CAAC,8DAAe;AACpC,aAAa,mBAAO,CAAC,8DAAe;AACpC,uBAAuB,mBAAO,CAAC,kFAAyB;AACxD,aAAa,mBAAO,CAAC,8DAAe;AACpC,eAAe,mBAAO,CAAC,kEAAiB;AACxC,aAAa,mBAAO,CAAC,8DAAe;AACpC,aAAa,mBAAO,CAAC,8DAAe;AACpC,iBAAiB,mBAAO,CAAC,sEAAmB;AAC5C,oBAAoB,mBAAO,CAAC,4EAAsB;AAClD,cAAc,mBAAO,CAAC,gEAAgB;AACtC,aAAa,mBAAO,CAAC,gEAAgB;AACrC,iBAAiB,mBAAO,CAAC,wEAAoB;AAC7C,iBAAiB,mBAAO,CAAC,wEAAoB;AAC7C,eAAe,mBAAO,CAAC,oEAAkB;AACzC,gBAAgB,mBAAO,CAAC,sEAAmB;AAC3C,kBAAkB,mBAAO,CAAC,0EAAqB;AAC/C,YAAY,mBAAO,CAAC,8DAAe;AACnC,YAAY,mBAAO,CAAC,8DAAe;AACnC,eAAe,mBAAO,CAAC,oEAAkB;AACzC,qBAAqB,mBAAO,CAAC,gFAAwB;AACrD,aAAa,mBAAO,CAAC,gEAAgB;AACrC,cAAc,mBAAO,CAAC,kEAAiB;AACvC,iBAAiB,mBAAO,CAAC,wEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,0EAAqB;AAC/C,YAAY,mBAAO,CAAC,8DAAe;AACnC,aAAa,mBAAO,CAAC,gEAAgB;AACrC,cAAc,mBAAO,CAAC,kEAAiB;AACvC,iBAAiB,mBAAO,CAAC,wEAAoB;AAC7C,kBAAkB,mBAAO,CAAC,0EAAqB;AAC/C,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC/EY;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,iDAAS;AAC9B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1rBa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,iDAAS;AAC9B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,gBAAgB;AAChB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACba;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,iDAAS;AAC9B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,gBAAgB;AAChB;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnCa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,iDAAS;AAC9B,aAAa,mBAAO,CAAC,iDAAS;AAC9B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvGa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,iDAAS;AAC9B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpFa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,iBAAiB;AACjB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACVa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,iDAAS;AAC9B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzBa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,iDAAS;AAC9B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzBa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,cAAc;AACd;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACTa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,iDAAS;AAC9B,aAAa,mBAAO,CAAC,iDAAS;AAC9B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA,mBAAmB,WAAW;AAC9B,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAmB;AAC1D;AACA;AACA;;;;;;;;;;;;ACrIa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,iDAAS;AAC9B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gCAAgC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,uBAAuB,QAAQ;AAC/B;AACA;AACA,4BAA4B,WAAW;AACvC,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,uBAAuB,QAAQ;AAC/B;AACA;AACA,4BAA4B,WAAW;AACvC,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,uBAAuB,QAAQ;AAC/B;AACA;AACA,4BAA4B,WAAW;AACvC,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7Ia;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,iDAAS;AAC9B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,aAAa;AACb;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACba;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,iDAAS;AAC9B,aAAa,mBAAO,CAAC,iDAAS;AAC9B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,aAAa;AAC5C;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,aAAa;AAC5C;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7Da;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,iDAAS;AAC9B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,iBAAiB;AACjB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;ACXa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,iDAAS;AAC9B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,WAAW;AACX;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;ACxCa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,iDAAS;AAC9B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,YAAY;AACZ;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AClDY;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa;AACb;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACZa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;AC1Ba;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,iDAAS;AAC9B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,iBAAiB;AACjB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;ACXA,YAAY,+FAAiC;AAC7C;AACA,eAAkB;AAClB;;;;;;;;;;;;ACHa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,cAAc,mBAAO,CAAC,mDAAU;AAChC,eAAe,mBAAO,CAAC,qDAAW;AAClC,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzDa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,uDAAQ;AAC7B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC5Fa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,cAAc,mBAAO,CAAC,mDAAU;AAChC,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvDa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,cAAc,mBAAO,CAAC,mDAAU;AAChC,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3Da;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,cAAc,mBAAO,CAAC,mDAAU;AAChC,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnGa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,cAAc,mBAAO,CAAC,mDAAU;AAChC,cAAc,mBAAO,CAAC,mDAAU;AAChC,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;AACD,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzMa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,cAAc,mBAAO,CAAC,mDAAU;AAChC,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7Ia;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,cAAc,mBAAO,CAAC,mDAAU;AAChC,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,UAAU;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,UAAU;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,YAAY;AACZ;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClmBa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,cAAc,mBAAO,CAAC,mDAAU;AAChC,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,YAAY;AACZ;AACA;AACA;AACA;;;;;;;;;;;;AC/Da;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,cAAc,mBAAO,CAAC,mDAAU;AAChC,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1Da;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,cAAc,mBAAO,CAAC,mDAAU;AAChC,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvDa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,cAAc,mBAAO,CAAC,mDAAU;AAChC,kBAAkB,mBAAO,CAAC,2DAAc;AACxC,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;AChIa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,cAAc,mBAAO,CAAC,mDAAU;AAChC,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC5Da;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,cAAc,mBAAO,CAAC,mDAAU;AAChC,eAAe,mBAAO,CAAC,qDAAW;AAClC,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClVa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,cAAc,mBAAO,CAAC,mDAAU;AAChC,aAAa,mBAAO,CAAC,uDAAQ;AAC7B,aAAa,mBAAO,CAAC,uDAAQ;AAC7B,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qBAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrWa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,aAAa,mBAAO,CAAC,iDAAS;AAC9B,cAAc,mBAAO,CAAC,mDAAU;AAChC,aAAa,mBAAO,CAAC,uDAAQ;AAC7B,cAAc,mBAAO,CAAC,mDAAU;AAChC,eAAe,mBAAO,CAAC,qDAAW;AAClC,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2BAA2B,EAAE;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qCAAqC,EAAE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,iCAAiC,WAAW;AAC5C,2CAA2C,WAAW;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;ACjrBa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA6C,CAAC,cAAc,EAAC;AAC7D,aAAa,mBAAO,CAAC,iDAAS;AAC9B,gBAAgB,mBAAO,CAAC,uDAAY;AACpC,cAAc,mBAAO,CAAC,mDAAU;AAChC,eAAe,mBAAO,CAAC,qDAAW;AAClC,mBAAmB,mBAAO,CAAC,6DAAe;AAC1C,eAAe,mBAAO,CAAC,qDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;AC5DA,sHAAsD;;;;;;;;;;;;ACAzC;;AAEb,kBAAkB;AAClB,eAAe;;AAEf,2BAA2B,mBAAO,CAAC,sFAAyB;;AAE5D;;AAEA,eAAe,mBAAO,CAAC,0DAAW;;AAElC;;AAEA,uCAAuC,6BAA6B,YAAY,EAAE,OAAO,iBAAiB,mBAAmB,uBAAuB,4EAA4E,EAAE,EAAE,sBAAsB,eAAe,EAAE;;AAE3Q,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,YAAY,mBAAmB;AAC/B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,mBAAmB;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH,gBAAgB,uCAAuC;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,eAAe,gCAAgC;AAC/C,eAAe,iCAAiC;AAChD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC;AAClC;;AAEA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA,C;;;;;;;;;;;AC3Na;;AAEb,kBAAkB;AAClB,gBAAgB,GAAG,YAAY,GAAG,eAAe,GAAG,cAAc,GAAG,eAAe,GAAG,gBAAgB,GAAG,YAAY;;AAEtH,aAAa,mBAAO,CAAC,kFAAuB;;AAE5C,eAAe,mBAAO,CAAC,sFAAyB;;AAEhD;;AAEA,eAAe,mBAAO,CAAC,oFAAwB;;AAE/C;;AAEA,cAAc,mBAAO,CAAC,kFAAuB;;AAE7C;;AAEA,uCAAuC,6BAA6B,YAAY,EAAE,OAAO,iBAAiB,mBAAmB,uBAAuB,4EAA4E,EAAE,EAAE,sBAAsB,eAAe,EAAE;;AAE3Q;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,OAAO;AAChB,UAAU,MAAM;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ,gBAAgB;AAChB,eAAe;AACf,cAAc;AACd,eAAe;AACf,YAAY;AACZ,gBAAgB,Y;;;;;;;;;;;ACpFH;;AAEb,kBAAkB;AAClB,aAAa,GAAG,WAAW,GAAG,cAAc,GAAG,aAAa;;AAE5D,aAAa,mBAAO,CAAC,mEAAS;;AAE9B,aAAa,mBAAO,CAAC,iFAAgB;;AAErC;;AAEA,YAAY,mBAAO,CAAC,+EAAe;;AAEnC,uCAAuC,6BAA6B,YAAY,EAAE,OAAO,iBAAiB,mBAAmB,uBAAuB,4EAA4E,EAAE,EAAE,sBAAsB,eAAe,EAAE;;AAE3Q;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B,2BAA2B;AAC3B,mCAAmC;AACnC,yCAAyC;AACzC,2BAA2B;AAC3B,+BAA+B;AAC/B,kCAAkC;AAClC,8BAA8B;AAC9B,uCAAuC;AACvC,kCAAkC;AAClC,sCAAsC;AACtC,kCAAkC;AAClC,oCAAoC;AACpC,yCAAyC;AACzC,kCAAkC;AAClC,8CAA8C,qBAAqB;AACnE,gDAAgD;AAChD,qDAAqD;AACrD,8CAA8C;AAC9C,uCAAuC;AACvC,yCAAyC;AACzC,8CAA8C;AAC9C,uCAAuC;AACvC,iCAAiC;AACjC,qCAAqC;AACrC,sCAAsC;AACtC,gCAAgC;AAChC,2CAA2C;AAC3C,mDAAmD;AACnD,+CAA+C;AAC/C,8BAA8B;AAC9B,iCAAiC;AACjC,kCAAkC;AAClC,gCAAgC;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qCAAqC,YAAY;AACjD;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,aAAa;AACb,cAAc;AACd,WAAW;AACX,aAAa,W;;;;;;;;;;;AC9RA;;AAEb,kBAAkB;AAClB,aAAa,GAAG,WAAW,GAAG,cAAc,GAAG,aAAa;;AAE5D,aAAa,mBAAO,CAAC,mEAAS;;AAE9B,YAAY,mBAAO,CAAC,+EAAe;;AAEnC;;AAEA,uCAAuC,6BAA6B,YAAY,EAAE,OAAO,iBAAiB,mBAAmB,uBAAuB,4EAA4E,EAAE,EAAE,sBAAsB,eAAe,EAAE;;AAE3Q,onUAAonU;;AAEpnU;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2EAA2E;;AAE3E,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;;AAEA;AACA,4QAA4Q,yJAAyJ,uMAAuM;;AAE5mB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,4CAA4C;;AAE5C;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yEAAyE;;AAEzE;;AAEA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS,OAAO;AAChB,UAAU,MAAM;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,iBAAiB;;AAEjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,qCAAqC;;AAErC;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;AACb,cAAc;AACd,WAAW;AACX,aAAa,S;;;;;;;;;;;ACnLA;;AAEb,kBAAkB;AAClB,gBAAgB,GAAG,kBAAkB,GAAG,sBAAsB;;AAE9D,aAAa,mBAAO,CAAC,2EAAgB;;AAErC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,MAAM;AAChB;AACA;;AAEA;AACA;AACA;AACA,UAAU,YAAY;AACtB,UAAU,UAAU;AACpB;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA,UAAU,MAAM;AAChB;AACA,WAAW,MAAM;AACjB;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA,wBAAwB;AACxB,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA,UAAU,MAAM;AAChB,UAAU,MAAM;AAChB,WAAW;AACX;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB,UAAU,cAAc;AACxB,WAAW;AACX;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;;AAEA,uCAAuC;AACvC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA,UAAU,UAAU;AACpB,UAAU,MAAM;AAChB,WAAW;AACX;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,SAAS,OAAO;AAChB,SAAS,eAAe;AACxB,SAAS,MAAM;AACf;AACA,SAAS,MAAM;AACf;AACA,UAAU,MAAM;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB;AACtB,kBAAkB;AAClB,gBAAgB,Y;;;;;;;;;;;AChPH;;AAEb,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,oB;;;;;;;;;;;ACXX;;AAEb,kBAAkB;AAClB,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,mBAAmB,GAAG,YAAY;;AAE5F,wBAAwB,mBAAO,CAAC,oGAAsB;;AAEtD,aAAa,mBAAO,CAAC,8EAAmB;;AAExC,YAAY,mBAAO,CAAC,wEAAQ;;AAE5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,wFAAwF,eAAe;;AAEvG;AACA;AACA;AACA;AACA;AACA,sFAAsF,aAAa;;AAEnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,mBAAmB;AAC3B;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA,CAAC;;AAED,YAAY;AACZ,mBAAmB;AACnB,aAAa;AACb,UAAU;AACV,YAAY;AACZ,WAAW,O;;;;;;;;;;;AC3ME;;AAEb,kBAAkB;AAClB,iBAAiB,GAAG,kBAAkB,GAAG,yBAAyB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,kBAAkB,GAAG,aAAa,GAAG,cAAc,GAAG,gBAAgB,GAAG,aAAa,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,WAAW,GAAG,aAAa,GAAG,UAAU,GAAG,cAAc,GAAG,YAAY;;AAExf,wBAAwB,mBAAO,CAAC,oGAAsB;;AAEtD,aAAa,mBAAO,CAAC,8EAAmB;;AAExC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,WAAW;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gCAAgC;AAChC;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA;;AAEA,YAAY;AACZ,cAAc;AACd,UAAU;AACV,aAAa;AACb,WAAW;AACX,mBAAmB;AACnB,iBAAiB;AACjB,UAAU;AACV,WAAW;AACX,YAAY;AACZ,aAAa;AACb,aAAa;AACb,gBAAgB;AAChB,cAAc;AACd,aAAa;AACb,kBAAkB;AAClB,WAAW;AACX,WAAW;AACX,UAAU;AACV,iBAAiB;AACjB,mBAAmB;AACnB,wBAAwB;AACxB,iBAAiB;AACjB,kBAAkB;AAClB,oBAAoB;AACpB,yBAAyB;AACzB,kBAAkB;AAClB,iBAAiB,a;;;;;;;;;;;AC3MJ;;AAEb,kBAAkB;AAClB,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;ACda;;AAEb,kBAAkB;;AAElB,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB,eAAe;AACf,gBAAgB;;;AAGhB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;AC9Ha;;AAEb,kBAAkB;;AAElB,0BAA0B,mBAAO,CAAC,kIAA+C;;AAEjF;;AAEA,oBAAoB,mBAAO,CAAC,kHAAuC;;AAEnE;;AAEA,wBAAwB,mBAAO,CAAC,0HAA2C;;AAE3E;;AAEA,iBAAiB,mBAAO,CAAC,0GAAmC;;AAE5D;;AAEA,gBAAgB,mBAAO,CAAC,wGAAkC;;AAE1D;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,kB;;;;;;;;;;;AClCF;;AAEb,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;;AAEA,eAAe,gB;;;;;;;;;;;AC7BF;;AAEb,kBAAkB;;AAElB,aAAa,mBAAO,CAAC,4EAAS;;AAE9B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,oB;;;;;;;;;;;ACrbF;;AAEb,kBAAkB;AAClB;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA,eAAe,sB;;;;;;;;;;;ACVF;;AAEb,kBAAkB;AAClB,eAAe;;AAEf,iBAAiB,mBAAO,CAAC,oFAAa;;AAEtC;;AAEA,oBAAoB,mBAAO,CAAC,4FAAiB;;AAE7C;;AAEA,0BAA0B,mBAAO,CAAC,4GAAyB;;AAE3D;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA,C;;;;;;;;;;;ACtBa;;AAEb,kBAAkB;;AAElB,wBAAwB,mBAAO,CAAC,oGAAqB;;AAErD;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,eAAe,a;;;;;;;;;;;ACzJF;;AAEb,kBAAkB;AAClB,eAAe;AACf,eAAe;AACf,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;;;;;;;;;;ACpBqE;;AAErE;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA,6CAA6C;AAC7C;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,IAAI;AACf,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA,WAAW,IAAI;AACf;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,MAAqC,GAAG,CAAyB;AACrF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,MAAqC,GAAG,CAAyB;AACvF;;AAEA;AACA;;AAEA;AACA,oBAAoB,MAAqC,GAAG,CAAyB;AACrF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;;;AAGA;AACA;AACA,sBAAsB,MAAqC,GAAG,CAAyB;AACvF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;;;AAGA;AACA;AACA,sBAAsB,MAAqC,GAAG,CAAyB;AACvF;;AAEA;AACA,sBAAsB,MAAqC,GAAG,CAAyB;AACvF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,MAAqC,GAAG,CAAyB;AACzF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;;;AAGA;AACA;AACA,sBAAsB,MAAqC,GAAG,CAAyB;AACvF;;AAEA;AACA,sBAAsB,MAAqC,GAAG,CAAyB;AACvF;;AAEA;AACA,sBAAsB,MAAqC,GAAG,CAAyB;AACvF;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;;;AAGA;AACA;AACA,sBAAsB,MAAqC,GAAG,CAA0B;AACxF;;AAEA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA,0BAA0B,MAAqC,GAAG,CAA0B;AAC5F;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;AACA;;;AAGA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,GAAG,aAAa;;AAEhB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,sBAAsB,MAAqC,GAAG,CAA0B;AACxF;;AAEA;AACA;AACA,KAAK;AACL,sBAAsB,MAAqC,GAAG,CAA0B;AACxF;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;;;AAGA;AACA;AACA;;AAEA,iBAAiB,wBAAwB;AACzC;;AAEA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oDAAoD;AACpD;;AAEA;;AAEA,MAAM,IAAqC;AAC3C;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,QAAQ,IAAqC;AAC7C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,MAAqC,GAAG,CAA0B;AAC1F;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,MAAqC,GAAG,CAA0B;AACtF;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,sEAAsE,aAAa;AACnF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,SAAS;AACtB;;AAEA;AACA,4EAA4E,aAAa;AACzF;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,MAAqC,GAAG,CAA0B;AAC1F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,aAAa,iFAAa,CAAC,iFAAa,GAAG,YAAY;AACvD;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,IAAI,KAAqC;AACzC;AACA;;AAEgI;;;;;;;;;;;AC3qBhI,wGAAwC,KAAqC,CAAC,iCAAO,CAAC,yEAAQ,CAAC,mCAAC,YAAY,YAAY;AAAA,kGAAC,CAAC,CAAsE,CAAC,kBAAkB,cAAc,qEAAqE,gBAAgB,SAAS,8BAA8B,mDAAmD,IAAI,cAAc,gEAAgE,0DAA0D,aAAa,eAAe,+GAA+G,kCAAkC,wCAAwC,YAAY,WAAW,2CAA2C,SAAS,OAAO,gcAAgc,qEAAqE,cAAc,4CAA4C,yCAAyC,6CAA6C,qLAAqL,cAAc,2BAA2B,4BAA4B,gDAAgD,cAAc,aAAa,yBAAyB,UAAU,mBAAmB,cAAc,YAAY,6CAA6C,wJAAwJ,4DAA4D,kBAAkB,SAAS,YAAY,yBAAyB,uBAAuB,uBAAuB,gBAAgB,iBAAiB,4GAA4G,gBAAgB,2GAA2G,iBAAiB,4GAA4G,qBAAqB,WAAW,uBAAuB,eAAe,0EAA0E,yEAAyE,IAAI,uEAAuE,sEAAsE,qBAAqB,6CAA6C,oCAAoC,UAAU,mIAAmI,uBAAuB,+BAA+B,4BAA4B,yCAAyC,0BAA0B,kBAAkB,EAAE,IAAI,4BAA4B,iCAAiC,gBAAgB,0GAA0G,eAAe,yGAAyG,gBAAgB,0GAA0G,qBAAqB,iBAAiB,uCAAuC,yBAAyB,0BAA0B,2BAA2B,sHAAsH,iDAAiD,kBAAkB,iBAAiB,oGAAoG,4BAA4B,iRAAiR,mBAAmB,yFAAyF,0BAA0B,qBAAqB,WAAW,6CAA6C,0DAA0D,WAAW,wNAAwN,KAAK,gDAAgD,gEAAgE,sIAAsI,WAAW,2GAA2G,uBAAuB,6BAA6B,qBAAqB,iCAAiC,4BAA4B,EAAE,6BAA6B,4BAA4B,kFAAkF,KAAK,mBAAmB,2CAA2C,sEAAsE,qBAAqB,6FAA6F,0BAA0B,sGAAsG,yBAAyB,OAAO,2BAA2B,wFAAwF,uBAAuB,gDAAgD,MAAM,uCAAuC,4BAA4B,+EAA+E,WAAW,0BAA0B,WAAW,MAAM,mCAAmC,SAAS,QAAQ,sIAAsI,OAAO,mCAAmC,SAAS,yBAAyB,OAAO,2CAA2C,uCAAuC,uDAAuD,MAAM,2DAA2D,4CAA4C,iBAAiB,0BAA0B,kDAAkD,6HAA6H,MAAM,2CAA2C,4GAA4G,MAAM,gDAAgD,WAAW,KAAK,WAAW,oGAAoG,6GAA6G,kBAAkB,6HAA6H,gBAAgB,iCAAiC,qHAAqH,qbAAqb,QAAQ,iFAAiF,OAAO,yDAAyD,QAAQ,gFAAgF,MAAM,wDAAwD,qBAAqB,QAAQ,2GAA2G,OAAO,yEAAyE,QAAQ,0GAA0G,MAAM,yEAAyE,mCAAmC,EAAE,+BAA+B,yBAAyB,MAAM,aAAa,SAAS,4BAA4B,gsBAAgsB,4BAA4B,8BAA8B,2CAA2C,gEAAgE,gBAAgB,8BAA8B,gBAAgB,gCAAgC,wBAAwB,WAAW,+EAA+E,2BAA2B,qDAAqD,oBAAoB,oCAAoC,YAAY,EAAE,4CAA4C,4BAA4B,WAAW,gOAAgO,uBAAuB,oFAAoF,SAAS,wMAAwM,yCAAyC,EAAE,iGAAiG,SAAS,2NAA2N,qGAAqG,EAAE,mGAAmG,SAAS,qQAAqQ,2DAA2D,EAAE,SAAS,6BAA6B,+CAA+C,iDAAiD,6CAA6C,0CAA0C,2BAA2B,yCAAyC,wBAAwB,qDAAqD,6BAA6B,WAAW,+CAA+C,uCAAuC,WAAW,kHAAkH,KAAK,iBAAiB,SAAS,8EAA8E,uDAAuD,+BAA+B,gCAAgC,yGAAyG,yGAAyG,2CAA2C,2CAA2C,+FAA+F,KAAK,gHAAgH,iBAAiB,oEAAoE,GAAG,YAAY,4BAA4B,EAAE,SAAS,wBAAwB,qCAAqC,qBAAqB,OAAO,4BAA4B,+GAA+G,gBAAgB,gCAAgC,2BAA2B,sDAAsD,kHAAkH,kCAAkC,4BAA4B,0BAA0B,yQAAyQ,6BAA6B,mCAAmC,qGAAqG,gBAAgB,gCAAgC,wBAAwB,gBAAgB,eAAe,qCAAqC,MAAM,QAAQ,yEAAyE,iBAAiB,yCAAyC,YAAY,6BAA6B,EAAE,0BAA0B,wBAAwB,uEAAuE,+FAA+F,0EAA0E,iBAAiB,uCAAuC,uBAAuB,+KAA+K,kDAAkD,sMAAsM,qBAAqB,iEAAiE,6BAA6B,OAAO,mCAAmC,uXAAuX,uQAAuQ,SAAS,SAAS,iBAAiB,4GAA4G,gBAAgB,2GAA2G,iBAAiB,4GAA4G,qBAAqB,WAAW,gDAAgD,SAAS,qCAAqC,sCAAsC,MAAM,yEAAyE,6BAA6B,gCAAgC,yEAAyE,mBAAmB,oFAAoF,YAAY,4CAA4C,EAAE,yBAAyB,gWAAgW,KAAK,yNAAyN,uXAAuX,wBAAwB,gNAAgN,wKAAwK,gCAAgC,oFAAoF,yDAAyD,qBAAqB,gFAAgF,4DAA4D,qBAAqB,EAAE,kGAAkG,gCAAgC,+CAA+C,kBAAkB,kEAAkE,EAAE,kCAAkC,8YAA8Y,yDAAyD,oEAAoE,YAAY,qDAAqD,GAAG,mBAAmB,kEAAkE,0CAA0C,EAAE,EAAE,uGAAuG,iEAAiE,8GAA8G,wBAAwB,qCAAqC,mMAAmM,iIAAiI,mHAAmH,uBAAuB,GAAG,uFAAuF,4CAA4C,EAAE,wBAAwB,4BAA4B,WAAW,sBAAsB,6BAA6B,SAAS,0BAA0B,gBAAgB,iFAAiF,qCAAqC,MAAM,MAAM,0EAA0E,6CAA6C,2IAA2I,2CAA2C,SAAS,+BAA+B,2BAA2B,qBAAqB,eAAe,wBAAwB,qBAAqB,qBAAqB,0BAA0B,wJAAwJ,IAAI,mBAAmB,+BAA+B,2DAA2D,uEAAuE,mCAAmC,kEAAkE,KAAK,KAAK,4BAA4B,yBAAyB,4BAA4B,SAAS,qCAAqC,6HAA6H,gCAAgC,kCAAkC,+BAA+B,iGAAiG,0BAA0B,2CAA2C,KAAK,KAAK,4BAA4B,wBAAwB,KAAK,MAAM,4CAA4C,SAAS,qBAAqB,6CAA6C,oCAAoC,UAAU,uSAAuS,qBAAqB,WAAW,SAAS,+BAA+B,4CAA4C,uCAAuC,+CAA+C,SAAS,mBAAmB,uEAAuE,qBAAqB,WAAW,iCAAiC,oCAAoC,8CAA8C,+GAA+G,kCAAkC,oEAAoE,sEAAsE,MAAM,0CAA0C,+CAA+C,EAAE,gBAAgB,SAAS,oBAAoB,WAAW,oCAAoC,KAAK,+QAA+Q,wCAAwC,sBAAsB,WAAW,oWAAoW,8BAA8B,yBAAyB,sCAAsC,+PAA+P,aAAa,sCAAsC,SAAS,oBAAoB,4FAA4F,0BAA0B,oEAAoE,2BAA2B,6CAA6C,mBAAmB,8BAA8B,kBAAkB,qBAAqB,qBAAqB,YAAY,gBAAgB,4HAA4H,eAAe,gJAAgJ,gBAAgB,iJAAiJ,kBAAkB,sEAAsE,sBAAsB,0PAA0P,0BAA0B,WAAW,kKAAkK,kCAAkC,kBAAkB,KAAK,kBAAkB,oBAAoB,mBAAmB,OAAO,mGAAmG,2BAA2B,6JAA6J,6BAA6B,kLAAkL,+BAA+B,0BAA0B,cAAc,4BAA4B,iEAAiE,iGAAiG,2EAA2E,oKAAoK,yBAAyB,gDAAgD,qBAAqB,sCAAsC,kRAAkR,2HAA2H,qDAAqD,8TAA8T,YAAY,iEAAiE,OAAO,cAAc,mBAAmB,uCAAuC,mDAAmD,0KAA0K,0BAA0B,+BAA+B,qDAAqD,yBAAyB,yBAAyB,iBAAiB,sBAAsB,kDAAkD,OAAO,oBAAoB,2DAA2D,uBAAuB,2BAA2B,iBAAiB,kDAAkD,iDAAiD,OAAO,oBAAoB,qBAAqB,oDAAoD,MAAM,gEAAgE,qBAAqB,qHAAqH,sGAAsG,yBAAyB,kIAAkI,wCAAwC,2NAA2N,4BAA4B,8BAA8B,iBAAiB,sBAAsB,OAAO,iIAAiI,oBAAoB,WAAW,iMAAiM,wHAAwH,uDAAuD,oBAAoB,2DAA2D,iCAAiC,EAAE,oBAAoB,4IAA4I,qBAAqB,8TAA8T;AAC7j+B,gEAAgE,sBAAsB,2CAA2C,4BAA4B,WAAW,ogBAAogB,sHAAsH,oCAAoC,OAAO,qDAAqD,8LAA8L,0EAA0E,4BAA4B,sCAAsC,gCAAgC,0GAA0G,qFAAqF,WAAW,0BAA0B,sDAAsD,IAAI,+BAA+B,yEAAyE,0BAA0B,KAAK,OAAO,wBAAwB,uBAAuB,iKAAiK,iCAAiC,sFAAsF,IAAI,qBAAqB,oBAAoB,OAAO,+FAA+F,qIAAqI,8BAA8B,gEAAgE,ohBAAohB,yFAAyF,GAAG,yBAAyB,iBAAiB,IAAI,kDAAkD,uBAAuB,8BAA8B,8BAA8B,qBAAqB,0EAA0E,2CAA2C,4BAA4B,4BAA4B,mBAAmB,0EAA0E,2CAA2C,wEAAwE,mBAAmB,SAAS,wEAAwE,MAAM,wEAAwE,eAAe,yEAAyE,MAAM,+EAA+E,MAAM,uEAAuE,MAAM,8EAA8E,45CAA45C,oBAAoB,IAAI,0BAA0B,iBAAiB,IAAI,6CAA6C,gCAAgC,4DAA4D,SAAS,YAAY,QAAQ,oCAAoC,sCAAsC,oDAAoD,oCAAoC,8IAA8I,MAAM,uDAAuD,uHAAuH,UAAU,gHAAgH,8LAA8L,0EAA0E,kCAAkC,eAAe,0GAA0G,uCAAuC,EAAE,4BAA4B,+JAA+J,0BAA0B,QAAQ,gDAAgD,eAAe,8CAA8C,6IAA6I,mMAAmM,KAAK,WAAW,2SAA2S,WAAW,IAAI,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDjqP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;;AAEO;AACP;AACA,mBAAmB,sBAAsB;AACzC;AACA;;AAEO;AACP;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,4DAA4D,cAAc;AAC1E;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;;AAEO;AACP,mCAAmC,oCAAoC;AACvE;;AAEO;AACP;AACA;;AAEO;AACP,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;;AAEO;AACP,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAM,gBAAgB;AACzC;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;;AAEO;AACP,4BAA4B,sBAAsB;AAClD;AACA;AACA;;AAEO;AACP,iDAAiD,QAAQ;AACzD,wCAAwC,QAAQ;AAChD,wDAAwD,QAAQ;AAChE;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA,iBAAiB,sFAAsF,aAAa,EAAE;AACtH,sBAAsB,gCAAgC,qCAAqC,0CAA0C,EAAE,EAAE,GAAG;AAC5I,2BAA2B,MAAM,eAAe,EAAE,YAAY,oBAAoB,EAAE;AACpF,sBAAsB,oGAAoG;AAC1H,6BAA6B,uBAAuB;AACpD,4BAA4B,wBAAwB;AACpD,2BAA2B,yDAAyD;AACpF;;AAEO;AACP;AACA,iBAAiB,4CAA4C,SAAS,EAAE,qDAAqD,aAAa,EAAE;AAC5I,yBAAyB,6BAA6B,oBAAoB,gDAAgD,gBAAgB,EAAE,KAAK;AACjJ;;AAEO;AACP;AACA;AACA,2GAA2G,sFAAsF,aAAa,EAAE;AAChN,sBAAsB,8BAA8B,gDAAgD,uDAAuD,EAAE,EAAE,GAAG;AAClK,4CAA4C,sCAAsC,UAAU,oBAAoB,EAAE,EAAE,UAAU;AAC9H;;AAEO;AACP,gCAAgC,uCAAuC,aAAa,EAAE,EAAE,OAAO,kBAAkB;AACjH;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,4CAA4C;AAC5C;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1Me,MAAM,UAAU;IAK7B,YAAY,IAAY,EAAE,KAAc;QAHxC,cAAS,GAAuB,EAAE,CAAC;QAIjC,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,GAAU;QACf,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC1B;IACH,CAAC;IAED,OAAO,CAAC,GAAe;QACrB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC3B;IACH,CAAC;IAED,SAAS,CAAC,GAAiB;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE;YACzC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,GAAG,EAAE,cAAc,CAAC,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAClB;YACD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;SAC9B;aAAM;YACL,OAAO,CAAC,KAAK,CACX,8CAA8C,EAC9C,OAAO,EACP,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACpB,CAAC;SACH;IACH,CAAC;IAED,OAAO,CAAC,GAAU;QAChB,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,KAAK,SAAS,EAAE;YAC5C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;SACjC;IACH,CAAC;IAGD,EAAE,CAAC,IAAY,EAAE,QAA4B;QAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAc;QAClC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE;YACzC,OAAO;SACR;QACD,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,GAAG,EAAE,eAAe,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;CACF;AAED,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;AACF,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;AAChE,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,IAAa,EAAE,EAAE,CACrD,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;ACxF1C,MAAM,OAAO,GAAG;IACd,aAAa;IACb,cAAc;IACd,sBAAsB;IACtB,uBAAuB;IACvB,OAAO;IACP,UAAU;IACV,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,eAAe;IACf,QAAQ;IACR,aAAa;IACb,oBAAoB;IACpB,sBAAsB;IACtB,kBAAkB;IAClB,2BAA2B;IAC3B,gBAAgB;IAChB,uBAAuB;IACvB,yBAAyB;IACzB,qBAAqB;IACrB,8BAA8B;IAC9B,OAAO;IACP,UAAU;IACV,WAAW;IACX,GAAG;IACH,QAAQ;CACT,CAAC;AAEa,MAAM,MAAM;IAQzB;QAPA,gBAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxC,cAAS,GAAG,CAAC,CAAC;QACd,aAAQ,GAAG,KAAK,CAAC;QACjB,aAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;QAC/C,qBAAgB,GAA4B,IAAI,CAAC;QACjD,qBAAgB,GAA4B,IAAI,CAAC;QAI/C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,MAAM,MAAM,CAAC,CAAC;SAC3D;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC;QAEjE,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,KAAK;QACH,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE;YACjD,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;gBAChB,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;gBACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;oBAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE;wBAClC,IAAI,CAAC,gBAAgB,EAAE,CAAC;qBACzB;iBACF;YACH,CAAC,CAAC;YACF,GAAG,CAAC,GAAG,GAAG,QAAQ,CAAC;YAEnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SAChC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC9D;IACH,CAAC;IAED,GAAG,CAAC,IAAY;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,+BAA+B,CAAC,CAAC;SACtE;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrFqC;AACG;AACG;AACS;AACX;AACwB;AAClC;AACU;AACJ;AACH;AAInC,MAAM,sBAAsB,GAAG;IAE7B,MAAM;IACN,UAAU;IACV,GAAG;IACH,SAAS;IACT,OAAO;IACP,YAAY;IACZ,KAAK;IACL,UAAU;IACV,WAAW;IACX,OAAO;IACP,KAAK;IACL,KAAK;IACL,UAAU;IACV,WAAW;IACX,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IAGV,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,SAAS;IACT,MAAM;IACN,UAAU;IAGV,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,qBAAqB;IACrB,uBAAuB;IACvB,aAAa;IACb,cAAc;IACd,eAAe;IACf,gBAAgB;IAGhB,OAAO;IACP,SAAS;IAGT,SAAS;IACT,MAAM;IACN,SAAS;CACV,CAAC;AAGF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC3C,MAAM,SAAS,GAAa,EAAE,CAAC;AAC/B,MAAM,SAAS,GAAa,EAAE,CAAC;AAC/B,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,IAAI,qBAAqB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACjD,IAAI,gBAAgB,GAAa,EAAE,CAAC;AACpC,IAAI,qBAAqB,GAAkB,IAAI,CAAC;AAChD,IAAI,sBAAsB,GAAG,EAAE,CAAC;AAChC,IAAI,wBAAwB,GAAkB,IAAI,CAAC;AACnD,IAAI,mBAAmB,GAAa,EAAE,CAAC;AACvC,IAAI,uBAAuB,GAAG,EAAE,CAAC;AAE1B,SAAS,IAAI;IAClB,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAG7C,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,8CAAM,CAAC,EAAE;QACvD,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC;SACxD;QACD,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC/B,SAAS,CAAC,IAAI,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC;KAElC;IAGD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;IAC3B,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,8CAAe,CAAC,EAAE;QACrD,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE;YAChC,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;gBAC3B,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC;aACxD;YACD,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC3B;KACF;IAGD,MAAM,sBAAsB,GAAG,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxE,IACE,sBAAsB,KAAK,IAAI;QAC/B,sBAAsB,KAAK,EAAE;QAC7B,sBAAsB,KAAK,IAAI,EAC/B;QACA,IAAI,cAAuB,CAAC;QAC5B,IAAI;YACF,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAY,CAAC;SAChE;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO;SACR;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;YACjC,gBAAgB,GAAG,cAA0B,CAAC;SAC/C;KACF;AACH,CAAC;AAED,SAAS,KAAK,CAAoB,KAAmB;IACnD,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;KACtE;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;KACH;IAID,IAAI,IAAI,CAAC,EAAE,KAAK,kBAAkB,EAAE;QAClC,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACzC,IAAI,WAAW,GAAG,qBAAqB,IAAI,IAAI,EAAE;YAC/C,qBAAqB,GAAG,WAAW,CAAC;YACpC,uDAAkB,CAAC,YAAY,EAAE;gBAC/B,OAAO,EAAE,qDAAe;aACzB,CAAC,CAAC;SACJ;KACF;IAGD,IAAI,IAAI,KAAK,KAAK,IAAI,MAAM,KAAK,EAAE,EAAE;QACnC,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,GAAG,CAAC,CAAC;QAC9B,OAAO;KACR;IAGD,IAAI,IAAI,KAAK,QAAQ,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO;KACR;IAID,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;YAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAErC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,OAAO;aACR;SACF;KACF;AACH,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAChC,SAAS,gBAAgB,CAAoB,KAAmB;IAC9D,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;KACzE;IAGD,mBAAmB,GAAG,EAAE,CAAC;IACzB,wBAAwB,GAAG,IAAI,CAAC;IAChC,qBAAqB,GAAG,IAAI,CAAC;IAE7B,IAAI,KAAK,CAAC,KAAK,KAAK,kDAAkB,EAAE;QACtC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACrB;AACH,CAAC,CAAC;AAEJ,SAAS,IAAI,CAAC,IAAY,EAAE,OAA4B;IACtD,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACxB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;KAC9D;IACD,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAGjB,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QACzB,gDAAkB,CAChB,iEAAiE,CAClE,CAAC;QACF,OAAO;KACR;IAGD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACtB,CAAC;AAEM,SAAS,QAAQ,CAAC,IAAY,EAAE,MAAc;IAEnD,IAAI,MAAM,KAAK,EAAE,EAAE;QACjB,OAAO;KACR;IAED,IAAI,mDAAa,EAAE;QACjB,gDAAkB,CAAC,0CAA0C,CAAC,CAAC;QAC/D,OAAO;KACR;IAMD,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAI/B,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC9B,MAAM,GAAG,QAAQ,qDAAe,EAAE,CAAC;KACpC;IAID,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/C,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;QACd,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACnC;IACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAGhD,IAAI,SAAS,GAAG,gEAAwB,EAAE;QAExC,gBAAgB,CAAC,GAAG,EAAE,CAAC;KACxB;IAGD,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAG3E,sBAAsB,GAAG,EAAE,CAAC;IAC5B,qBAAqB,GAAG,IAAI,CAAC;IAK7B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QAC3B,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;SACvE;QACD,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAEhC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC7C,MAAM,mBAAmB,GAAG,sDAAgB,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,mBAAmB,KAAK,SAAS,EAAE;gBACrC,gDAAkB,CAAC,wBAAwB,OAAO,iBAAiB,CAAC,CAAC;aACtE;iBAAM;gBACL,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;aACnC;YACD,OAAO;SACR;KACF;IAGD,uDAAkB,CAAC,MAAM,EAAE;QACzB,GAAG;QACH,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAoB,KAAmB;;IACrD,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;KACxE;IAKD,IAAI,KAAK,CAAC,KAAK,KAAK,8CAAc,EAAE;QAClC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,OAAO,CAAC,OAAO,CAAC,CAAC;KAClB;SAAM,IAAI,KAAK,CAAC,KAAK,KAAK,gDAAgB,EAAE;QAC3C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,SAAS,CAAC,OAAO,CAAC,CAAC;KACpB;SAAM,IAAI,KAAK,CAAC,KAAK,KAAK,+CAAe,EAAE;QAC1C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KACrB;SAAM,IACL,CAAC,sDAAsB,EAAE,kDAAkB,CAAC,CAAC,OAAO,CAAC,WAAK,CAAC,KAAK,mCAAI,CAAC,CAAC;QACtE,CAAC,CAAC,EACF;QACA,qBAAqB,GAAG,IAAI,CAAC;KAC9B;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe,EAAE,SAAiB;IAC1D,IAAI,qBAAqB,KAAK,IAAI,EAAE;QAClC,IAAI,SAAS,GAAG,CAAC,EAAE;YACjB,OAAO,IAAI,CAAC;SACb;QACD,qBAAqB,GAAG,CAAC,CAAC,CAAC;QAC3B,sBAAsB,GAAG,OAAO,CAAC;KAClC;IACD,MAAM,QAAQ,GAAG,qBAAqB,CAAC;IACvC,GAAG;QACD,qBAAqB,IAAI,SAAS,CAAC;QAEnC,IAAI,qBAAqB,IAAI,gBAAgB,CAAC,MAAM,EAAE;YACpD,qBAAqB,GAAG,QAAQ,CAAC;YACjC,OAAO,OAAO,CAAC;SAChB;QACD,IAAI,qBAAqB,GAAG,CAAC,EAAE;YAC7B,qBAAqB,GAAG,CAAC,CAAC,CAAC;YAC3B,OAAO,sBAAsB,CAAC;SAC/B;KACF,QAEC,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAC3E;IACF,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,OAAO,CAAC,OAA4B;;IAC3C,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,aAAO,CAAC,GAAG,EAAE,mCAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1E,OAAO,CAAC,GAAG,CAAC,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,SAAS,CAAC,OAA4B;;IAC7C,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,aAAO,CAAC,GAAG,EAAE,mCAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE3E,OAAO,CAAC,GAAG,CAAC,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,GAAG,CAAC,OAA4B,EAAE,KAAmB;IAE5D,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC5B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,OAAO,GAAG,EAAE,CAAC;KACd;IACD,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAGxD,IAAI,wBAAwB,KAAK,IAAI,EAAE;QACrC,uBAAuB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC3C;SAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE;QAElC,wBAAwB,IAAI,CAAC,CAAC;QAC9B,IAAI,wBAAwB,KAAK,CAAC,CAAC,EAAE;YACnC,wBAAwB,GAAG,IAAI,CAAC;SACjC;KACF;SAAM;QAEL,wBAAwB,IAAI,CAAC,CAAC;QAC9B,IAAI,wBAAwB,KAAK,mBAAmB,CAAC,MAAM,EAAE;YAC3D,wBAAwB,GAAG,IAAI,CAAC;SACjC;KACF;IAED,IAAI,wBAAwB,KAAK,IAAI,EAAE;QAIrC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,uBAAuB,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,OAAO;KACR;IAGD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;IACvE,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,CAAC;AAGD,SAAS,uBAAuB,CAAC,KAAmB,EAAE,SAAiB;IAErE,uBAAuB,GAAG,SAAS,CAAC;IAGpC,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,IAAI,IAAI,4DAAsB,EAAE,EAAE;QAC3C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;IAGD,MAAM,2BAA2B,GAAG,QAAQ;SACzC,MAAM,CAAC,SAAS,CAAC;SACjB,MAAM,CAAC,SAAS,CAAC,CAAC;IACrB,2BAA2B,CAAC,IAAI,CAE9B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CACzD,CAAC;IACF,sBAAsB,CAAC,2BAA2B,CAAC,CAAC;IAGpD,mBAAmB,GAAG,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,2BAA2B,EAAE;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,WAAW,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,EAAE;YACzD,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChC;KACF;IAGD,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE;QACpC,OAAO;KACR;IAGD,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE;QAE3B,wBAAwB,GAAG,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;KAC3D;SAAM;QAEL,wBAAwB,GAAG,CAAC,CAAC;KAC9B;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,kBAA4B;IAE1D,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACnE,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACrE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC;IACtD,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,aAAa,CAAC;IAGtD,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,kBAAkB,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;IACzC,kBAAkB,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;IAGzC,IAAI,UAAU,CAAC;IAGf,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7D,UAAU,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC/C,kBAAkB,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;IAC/C,KAAK,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;QAClD,MAAM,UAAU,GAAG,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;QACvC,UAAU,GAAG,UAAU,CAAC;KACzB;IAGD,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/D,UAAU,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAChD,kBAAkB,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC;IAC9C,KAAK,IAAI,CAAC,GAAG,cAAc,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;QACjD,MAAM,UAAU,GAAG,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;QACvC,UAAU,GAAG,UAAU,CAAC;KACzB;AACH,CAAC;AAEM,SAAS,GAAG,CAAC,IAAiB,EAAE,IAAa;IAElD,IAAI,IAAqC,CAAC;IAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;QACzB,IAAI,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC;KAC9B;SAAM,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QACxC,IAAI,2DAAqB,KAAK,gEAAc,EAAE;YAC5C,IAAI,GAAG,CAAC,CAAC,0BAA0B,CAAC,CAAC;SACtC;aAAM,IAAI,2DAAqB,KAAK,6DAAW,EAAE;YAChD,IAAI,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC;SAC7B;aAAM;YAEL,OAAO;SACR;KACF;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE;QAI3B,IAAI,IAAI,CAAC,SAAS,KAAK,sDAAgB,EAAE;YAGvC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;SACnB;QAED,IAAI,2DAAqB,KAAK,gEAAc,EAAE;YAC5C,IAAI,GAAG,CAAC,CAAC,0BAA0B,CAAC,CAAC;SACtC;aAAM,IAAI,2DAAqB,KAAK,6DAAW,EAAE;YAChD,IAAI,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC;SAC7B;aAAM;YACL,IAAI,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC;SAC9B;KACF;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;KACnD;IACD,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;KACH;IAKD,IAAI,CAAC,GAAG,GAAG,qDAAW,CAAC,IAAI,CAAC,GAAG,EAAE;QAC/B,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE;YACV,GAAG,EAAE,qBAAqB;SAC3B;KACF,CAAC,CAAC;IAGH,IAAI,CAAC,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAItC,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAChE,CAAC,CAAC,CACH,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5D,IAAI,IAAI,GAAG,uBAAuB,WAAW,YAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QACd,IAAI,CAAC;IACL,IAAI,IAAI,IAAI,QAAQ,UAAU,CAAC;IAC/B,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;QACzB,IAAI,IAAI,CAAC,SAAS,KAAK,sDAAgB,EAAE;YACvC,IAAI,IAAI,sCAAsC,IAAI,CAAC,GAAG,0BAA0B,CAAC;SAClF;aAAM;YACL,IAAI,IAAI,oCAAoC,IAAI,CAAC,SAAS,0BAA0B,CAAC;SACtF;KACF;IACD,IACE,IAAI,CAAC,MAAM,KAAK,IAAI;QACpB,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,EACvD;QACA,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC;KAClB;SAAM,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,EAAE;QAC1B,IAAI,IAAI,eAAe,IAAI,CAAC,GAAG,sBAAsB,CAAC;QACtD,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC;KAClB;SAAM;QACL,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC;KAClB;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;QAC5D,IAAI,GAAG,IAAI,CAAC,OAAO,CACjB,iBAAiB,EACjB,0CAA0C,CAC3C,CAAC;KACH;IAED,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,EAAE;QAC1C,MAAM,KAAK,GAAG,oBAAoB,CAAC;QACnC,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,KAAK,KAAK,IAAI,EAAE;YACrB,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,kCAAkC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1B;KACF;IACD,IAAI,IAAI,eAAe,CAAC;IAOxB,MAAM,SAAS,GAAG,CAAC,CAAC;IACpB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IAGzG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC,CAAC,cAAc,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;IACjD,CAAC,CAAC,cAAc,WAAW,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC;QAC1B,MAAM,SAAS,GAAG,CAAC,CAAC,2BAA2B,CAAC,CAAC;QACjD,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,WAAW,IAAI,CAAC,CAAC;IAGjB,IAAI,UAAU,EAAE;QAGd,UAAU,CACR,CAAC,OAAoB,EAAE,EAAE;YACvB,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;QAC3C,CAAC,EACD,CAAC,EACD,IAAI,CAAC,CAAC,CAAC,CACR,CAAC;KACH;IAGD,MAAM,KAAK,GAAG,kEAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;QAChB,iEAA2B,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtC,kBAAkB,EAAE,CAAC;KACtB;IAGD,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,mDAAY,CAAC,aAAa,CAAC,CAAC;QAC5C,IACE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;YACtB,2DAAqB,KAAK,6DAAW;YACrC,gDAAU,KAAK,IAAI,EACnB;YACA,4DAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACtD;KACF;AACH,CAAC;AAGM,SAAS,OAAO,CAAC,GAAW,EAAE,IAAY;IAC/C,GAAG,CACD;QACE,GAAG;QACH,GAAG,EAAE,EAAE;QACP,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE;QAC/B,IAAI;QACJ,SAAS,EAAE,EAAE;KACd,EACD,KAAK,CACN,CAAC;AACJ,CAAC;AAID,SAAS,iBAAiB,CAAC,OAAe;IACxC,IAAI,YAAY,GAAG,OAAO,CAAC;IAC3B,OAAO,IAAI,EAAE;QACX,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,MAAM;SACP;QACD,MAAM,QAAQ,GAAG,+CAA+C,KAAK,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACjH,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;KACzD;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IACjC,IAAI,aAAa,GAAG,OAAO,CAAC;IAG5B,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,8CAAM,CAAC,EAAE;QACvD,MAAM,QAAQ,GAAG,IAAI,SAAS,GAAG,CAAC;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SACxD;KACF;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,IAAI,aAAa,GAAG,OAAO,CAAC;IAG5B,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,8CAAe,CAAC,EAAE;QAChE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAG1B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE;gBACzD,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC7C,MAAM,QAAQ,GAAG,mDAAmD,QAAQ,IAAI,KAAK,gBAAgB,KAAK,MAAM,CAAC;gBACjH,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;aACrD;SACF;KACF;IAGD,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;QAEzC,MAAM,QAAQ,GACZ,+EAA+E,CAAC;QAClF,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;KACrD;IACD,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;QAEtC,MAAM,QAAQ,GACZ,4EAA4E,CAAC;QAE/E,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;QAC7C,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,QAAQ,GAAG,CAAC,CAAC;KAC5D;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAEM,SAAS,kBAAkB;IAChC,MAAM,KAAK,GAAG,CAAC,CAAC,8BAA8B,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAEvC,IAAI,iEAA2B,KAAK,CAAC,EAAE;QACrC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO;KACR;IAED,IAAI,GAAG,CAAC;IACR,IAAI,iEAA2B,KAAK,CAAC,EAAE;QACrC,GAAG,GAAG,WAAW,6DAAuB,wBAAwB,CAAC;KAClE;SAAM,IAAI,iEAA2B,KAAK,CAAC,EAAE;QAC5C,GAAG,GAAG,WAAW,6DAAuB,gBAAgB,CAAC;QACzD,GAAG,IAAI,WAAW,6DAAuB,yBAAyB,CAAC;KACpE;SAAM,IAAI,iEAA2B,KAAK,CAAC,EAAE;QAC5C,GAAG,GAAG,WAAW,6DAAuB,aAAa,CAAC;QACtD,GAAG,IAAI,WAAW,6DAAuB,aAAa,CAAC;QACvD,GAAG,IAAI,eAAe,6DAAuB,yBAAyB,CAAC;KACxE;SAAM;QACL,GAAG,GAAG,8BAA8B,CAAC;KACtC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC;;;;;;;;;;;;;;;;;;;;;ACtvB8B;AACiB;AAChB;AACiB;AACd;AAKnC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;AACjD,iEAAe,YAAY,EAAC;AAG5B,SAAS,MAAM,CAAC,KAAa,EAAE,IAAc;IAE3C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACnB,gDAAkB,CAChB,kEAAkE,CACnE,CAAC;QACF,OAAO;KACR;IAGD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,kEAA4B,EAAE,EAAE;QACzD,gDAAkB,CAAC,6BAA6B,CAAC,CAAC;KACnD;IAED,uDAAkB,CAAC,YAAY,EAAE;QAC/B,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AACD,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACnC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAGtC,SAAS,OAAO,CAAC,IAAY;IAC3B,IAAI,GAAG,CAAC;IACR,IAAI,4DAAsB,KAAK,CAAC,EAAE;QAChC,GAAG,GAAG,8DAA8D,CAAC;KACtE;SAAM;QACL,GAAG,GAAG,oBAAoB,0DAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;KACxD;IACD,0CAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC1B,CAAC;AACD,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACrC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AACxC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAGzC,SAAS,EAAE,CAAC,IAAY,EAAE,IAAc;IAEtC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACnB,gDAAkB,CAChB,iEAAiE,CAClE,CAAC;QACF,OAAO;KACR;IAED,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,KAAK,EAAE,CAAC;IAGb,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,kEAA4B,EAAE,EAAE;QAC9D,gDAAkB,CAAC,gDAAgD,CAAC,CAAC;QACrE,OAAO;KACR;IAGD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,4DAAsB,EAAE,EAAE;QAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,EAAE;YACvD,QAAQ,GAAG,IAAI,CAAC;YAGhB,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;YAEtB,MAAM;SACP;KACF;IACD,IAAI,CAAC,QAAQ,EAAE;QACb,gDAAkB,CAAC,SAAS,SAAS,4BAA4B,CAAC,CAAC;QACnE,OAAO;KACR;IAED,uDAAkB,CAAC,QAAQ,EAAE;QAC3B,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACnB,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AACD,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC3B,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC1B,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAChC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC5B,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC7B,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAG1B,SAAS,SAAS,CAAC,KAAa,EAAE,IAAc;IAC9C,IAAI,qDAAe,KAAK,CAAC,CAAC,EAAE;QAC1B,gDAAkB,CAChB,mEAAmE,CACpE,CAAC;QACF,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,uDAAkB,CAAC,gBAAgB,EAAE;QACnC,OAAO,EAAE,qDAAe;QACxB,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;AACL,CAAC;AACD,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACzC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACvC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACxC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;AAC5C,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAC1C,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AAG3C,SAAS,UAAU,CAAC,KAAa,EAAE,IAAc;IAC/C,IAAI,qDAAe,KAAK,CAAC,CAAC,EAAE;QAC1B,gDAAkB,CAChB,mEAAmE,CACpE,CAAC;QACF,OAAO;KACR;IAGD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,6DAAY,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE;QAC3C,gDAAkB,CAAC,mBAAmB,WAAW,iBAAiB,CAAC,CAAC;QACpE,OAAO;KACR;IAED,uDAAkB,CAAC,iBAAiB,EAAE;QACpC,OAAO,EAAE,qDAAe;QACxB,OAAO,EAAE;YACP,WAAW;SACZ;KACF,CAAC,CAAC;IAGH,2DAAuB,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;AAC7D,CAAC;AACD,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAC3C,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;AAG9C,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAa,EAAE,IAAc,EAAE,EAAE;IACxD,IAAI,qDAAe,KAAK,CAAC,CAAC,EAAE;QAC1B,gDAAkB,CAChB,mEAAmE,CACpE,CAAC;QACF,OAAO;KACR;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,uDAAkB,CAAC,KAAK,EAAE;QACxB,OAAO,EAAE,qDAAe;QACxB,GAAG,EAAE,GAAG;KACT,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAGH,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAa,EAAE,IAAc,EAAE,EAAE;IAC9D,IAAI,qDAAe,KAAK,CAAC,CAAC,EAAE;QAC1B,gDAAkB,CAChB,mEAAmE,CACpE,CAAC;QACF,OAAO;KACR;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,uDAAkB,CAAC,WAAW,EAAE;QAC9B,OAAO,EAAE,qDAAe;QACxB,GAAG,EAAE,GAAG;KACT,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAGH,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAY,EAAE,IAAc,EAAE,EAAE;IAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE3B,uDAAkB,CAAC,WAAW,EAAE;QAC9B,GAAG,EAAE,GAAG;QACR,IAAI;KACL,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAGH,SAAS,UAAU,CAAC,KAAa,EAAE,IAAc;IAC/C,IAAI,SAAS,GAAa,EAAE,CAAC;IAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAGrB,IAAI,qDAAe,KAAK,CAAC,CAAC,IAAI,gDAAU,KAAK,IAAI,EAAE;YACjD,SAAS,GAAG,6EAAuC,CAAC;SACrD;aAAM;YAEL,SAAS,GAAG,CAAC,sDAAgB,CAAC,CAAC;SAChC;KACF;SAAM;QAGL,SAAS,GAAG,IAAI,CAAC;KAClB;IACD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;QAC5B,uDAAkB,CAAC,gBAAgB,EAAE;YACnC,IAAI;SACL,CAAC,CAAC;KACJ;AACH,CAAC;AACD,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAC3C,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACtC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAGtC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,KAAa,EAAE,IAAc,EAAE,EAAE;IAE7D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACnB,gDAAkB,CAChB,sEAAsE,CACvE,CAAC;QACF,OAAO;KACR;IAGD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,kEAA4B,EAAE,EAAE;QACzD,gDAAkB,CAAC,+BAA+B,CAAC,CAAC;KACrD;IAED,uDAAkB,CAAC,cAAc,EAAE;QACjC,IAAI;KACL,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAGH,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE;IAC3C,MAAM,GAAG,GAAG,mCAAmC,qDAAe,0BAA0B,CAAC;IACzF,0CAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAGH,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,KAAa,EAAE,IAAc,EAAE,EAAE;IAC5D,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,OAAO,KAAK,EAAE,EAAE;QAClB,OAAO,GAAG,oBAAoB,CAAC;KAChC;IACD,gDAAkB,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;AC1P4B;AACS;AACR;AACW;AACD;AACP;AAMnC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;AACpD,iEAAe,QAAQ,EAAC;AAKxB,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAiB,EAAE,EAAE;IAC5C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,gDAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAGjC,CAAC,CAAC,gCAAgC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC5D,IAAI,2DAAqB,KAAK,gEAAc,EAAE;QAC5C,iEAA6B,EAAE,CAAC;KACjC;AACH,CAAC,CAAC,CAAC;AAKH,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAe,EAAE,EAAE;IACxC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,8CAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAG7B,IAAI,kDAAY,KAAK,IAAI,EAAE;QAEzB,wDAAkB,EAAE,CAAC;KACtB;AACH,CAAC,CAAC,CAAC;AAGH,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAiB,EAAE,EAAE;IACzC,sCAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEtB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAClC,OAAO;KACR;IACD,IAAI,2DAAqB,KAAK,gEAAc,EAAE;QAE5C,uDAAkB,CAAC,UAAU,EAAE;YAC7B,OAAO,EAAE,qDAAe;SACzB,CAAC,CAAC;KACJ;SAAM,IAAI,2DAAqB,KAAK,6DAAW,IAAI,gDAAU,KAAK,IAAI,EAAE;QACvE,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;YAGxC,uDAAkB,CAAC,UAAU,EAAE;gBAC7B,OAAO,EAAE,qDAAe;aACzB,CAAC,CAAC;YACH,OAAO;SACR;QAED,IAAI,8DAAwB,KAAK,IAAI,EAAE;YACrC,OAAO;SACR;QAED,MAAM,OAAO,GAAG,8DAAwB,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAEzC,8CAAe,EAAE,CAAC;YAClB,uDAAkB,CAAC,UAAU,EAAE;gBAC7B,OAAO,EAAE,qDAAe;aACzB,CAAC,CAAC;SACJ;aAAM;YAIL,wDAAkB,IAAI,CAAC,CAAC;YACxB,gEAA0B,EAAE,CAAC;SAC9B;KACF;AACH,CAAC,CAAC,CAAC;AAOH,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAuB,EAAE,EAAE;IACrD,IAAI,IAAI,CAAC,MAAM,EAAE;QACf,IAAI,CAAC,mEAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC7C,+DAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtC;KACF;SAAM;QACL,MAAM,KAAK,GAAG,kEAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,iEAA2B,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACvC;KACF;IACD,qDAAuB,EAAE,CAAC;AAC5B,CAAC,CAAC,CAAC;AASH,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAkB,EAAE,EAAE;IAC9C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;QAC5B,sCAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACtB;IACD,IAAI,gDAAU,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;QAEhE,wDAAkB,IAAI,IAAI,CAAC,MAAM,CAAC;QAClC,gEAA0B,EAAE,CAAC;KAC9B;AACH,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;ACzHI,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B,MAAM,wBAAwB,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;ACFrC,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAW,EAAE,CACtD,QAAQ,KAAK,MAAM;IACnB,QAAQ,KAAK,OAAO;IACpB,QAAQ,KAAK,OAAO;IACpB,QAAQ,KAAK,OAAO;IACpB,QAAQ,KAAK,OAAO;IACpB,QAAQ,KAAK,OAAO;IACpB,QAAQ,KAAK,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACPW;AACO;AACR;AACM;AAEhC,SAAS,IAAI;IAElB,iDAAQ,CAAC,YAAY,CAAC;SACnB,SAAS,CAAC;QACT,SAAS,EAAE,yBAAyB;QAIpC,SAAS,EAAE;YACT,wEAA+B,CAAC;gBAC9B,WAAW,EAAE,QAAQ;aACtB,CAAC;SACH;QAGD,MAAM,EAAE,CAAC,KAA6B,EAAE,EAAE;YAGxC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;YACxE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;YAGxE,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACzC,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC;SAED,SAAS,CAAC;QAET,KAAK,EAAE;YAGL,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;SACb;QAED,UAAU,EAAE,yBAAyB;QAErC,SAAS,EAAE;YAGT,yEAAgC,CAAC;gBAC/B,KAAK,EAAE,QAAQ;aAChB,CAAC;YAGF,wEAA+B,CAAC;gBAC9B,GAAG,EAAE;oBACH,KAAK,EAAE,GAAG;oBACV,MAAM,EAAE,GAAG;iBACZ;aACF,CAAC;SACH;KACF,CAAC;SAED,EAAE,CAAC,YAAY,EAAE,CAAC,KAA2B,EAAE,EAAE;QAGhD,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;QAGzD,CAAC,IAAI,KAAK,CAAC,SAAU,CAAC,IAAI,CAAC;QAC3B,CAAC,IAAI,KAAK,CAAC,SAAU,CAAC,GAAG,CAAC;QAG1B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAG3B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;QACnD,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC;IACvD,CAAC,CAAC;SAED,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAA6B,EAAE,EAAE;;QAGzD,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClE,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,iBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,mCAAI,GAAG,CAAC,CAAC;YACvE,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,iBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,mCAAI,GAAG,CAAC,CAAC;SACxE;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC;SACpE;IACH,CAAC,CAAC,CAAC;IAEL,CAAC,CAAC,+BAA+B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAC5C,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,SAAS,MAAM;IACpB,MAAM,KAAK,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;QACxB,IAAI,EAAE,CAAC;KACR;SAAM;QACL,IAAI,EAAE,CAAC;KACR;AACH,CAAC;AAEM,SAAS,IAAI;IAClB,MAAM,KAAK,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACpC,KAAK,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;IAGxB,IAAI,wDAAkB,KAAK,CAAC,EAAE;QAE5B,wDAAkB,GAAG,CAAC,CAAC;QAGvB,IAAI,kDAAY,KAAK,IAAI,EAAE;YACzB,uDAAiB,CAAC,UAAU,EAAE;gBAC5B,OAAO,EAAE,qDAAe;aACzB,CAAC,CAAC;SACJ;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;SAClE;QAGD,IAAI,gDAAU,KAAK,IAAI,EAAE;YACvB,gEAA0B,EAAE,CAAC;SAC9B;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAChE;KACF;IAGD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1B,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACvB,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAGzB,IAAI,aAAa,GAAG,IAAI,CAAC;IACzB,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxD,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,IACE,KAAK,KAAK,IAAI;QACd,KAAK,KAAK,EAAE;QACZ,MAAM,KAAK,IAAI;QACf,MAAM,KAAK,EAAE;QACb,CAAC,KAAK,IAAI;QACV,CAAC,KAAK,EAAE;QACR,CAAC,KAAK,IAAI;QACV,CAAC,KAAK,EAAE,EACR;QACA,aAAa,GAAG,KAAK,CAAC;QACtB,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1B,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5B,WAAW,CAAC,KAAK,EAAE,mDAAY,CAAC,CAAC,CAAC,EAAE,mDAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAKrD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;YACtB,aAAa,GAAG,IAAI,CAAC;SACtB;KACF;IAED,IAAI,aAAa,EAAE;QACjB,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1B,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC3B,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;QACpD,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;KACzB;IAGD,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACvD,IAAI,IAAI,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;KACpC;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;KAChE;IAED,CAAC,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,IAAI;IAClB,CAAC,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,iDAAS,CAAC,CAAC;AAC3C,CAAC;AAGD,SAAS,WAAW,CAAC,OAAe,EAAE,CAAS,EAAE,CAAS;IAExD,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAGpC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC5B,CAAC;AAGD,SAAS,WAAW,CAAC,OAA4B;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC;IAChD,OAAO,CACL,IAAI,CAAC,GAAG,GAAG,CAAC;QACZ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW;QAChC,IAAI,CAAC,IAAI,GAAG,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAC/B,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;ACzN6D;AAG/C,SAAS,cAAc;IACpC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;IAEhD,KAAK,MAAM,SAAS,IAAI,kDAA6B,EAAE;QAErD,IAAI,SAAS,CAAC,IAAI,KAAK,EAAE,EAAE;YACzB,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;SACH;QAGD,IAAI,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE;YAEpB,MAAM,IAAI,KAAK,CAAC,QAAQ,SAAS,CAAC,IAAI,gCAAgC,CAAC,CAAC;SACzE;QAGD,IAAI,SAAS,CAAC,WAAW,KAAK,EAAE,EAAE;YAChC,MAAM,IAAI,KAAK,CACb,QAAQ,SAAS,CAAC,IAAI,0CAA0C,CACjE,CAAC;SACH;QAGD,IAAI,SAAS,CAAC,KAAK,KAAK,EAAE,EAAE;YAC1B,MAAM,IAAI,KAAK,CACb,QAAQ,SAAS,CAAC,IAAI,qCAAqC,CAC5D,CAAC;SACH;QAGD,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;KACzC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;;;;;;;;;;;;;;;;;ACvCqD;AAavC,SAAS,UAAU;;IAChC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;IAExC,KAAK,MAAM,SAAS,IAAI,8CAAyB,EAAE;QAEjD,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;QAC3B,IAAI,IAAI,KAAK,EAAE,EAAE;YACf,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;SACH;QAID,MAAM,YAAY,GAAW,eAAS,CAAC,YAAY,mCAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CACb,QAAQ,SAAS,CAAC,IAAI,0DAA0D,CACjF,CAAC;SACH;QAGD,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;QAC3B,IAAI,SAAS,CAAC,IAAI,KAAK,EAAE,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,QAAQ,SAAS,CAAC,IAAI,4BAA4B,CAAC,CAAC;SACrE;QAID,MAAM,cAAc,GAAW,eAAS,CAAC,cAAc,mCAAI,IAAI,CAAC;QAGhE,MAAM,KAAK,GAAU;YACnB,IAAI;YACJ,YAAY;YACZ,IAAI;YACJ,cAAc;SACf,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACnC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACtDoD;AAGP;AACR;AACF;AACM;AAG1C,MAAM,MAAM,GAAG,oDAAU,EAAE,CAAC;AAC5B,MAAM,KAAK,GAAG,mDAAS,CAAC,MAAM,CAAC,CAAC;AACzB,MAAM,QAAQ,GAAG,sDAAY,CAAC,MAAM,EAAE,KAAK,EAAE,6DAAe,CAAC,CAAC;AACrE,MAAM,UAAU,GAAG,wDAAc,EAAE,CAAC;AAE7B,SAAS,OAAO,CAAC,QAAgB;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,MAAM,IAAI,KAAK,CACb,uBAAuB,QAAQ,4BAA4B,CAC5D,CAAC;KACH;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,SAAS,UAAU,CAAC,WAAmB;IAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1C,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CACb,uBAAuB,WAAW,kCAAkC,CACrE,CAAC;KACH;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAEM,SAAS,YAAY,CAAC,WAAmB;IAC9C,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,MAAM,IAAI,KAAK,CACb,oDAAoD,WAAW,2BAA2B,CAC3F,CAAC;KACH;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;;;;;;;;;;;;;;;;;AC3CmD;AAIpD,MAAM,oBAAoB,GAAG,WAAW,CAAC;AAuB1B,SAAS,SAAS,CAC/B,MAA0B;;IAE1B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;IAEtC,KAAK,MAAM,QAAQ,IAAI,6CAAuB,EAAE;QAE9C,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;QAC1B,IAAI,IAAI,KAAK,EAAE,EAAE;YACf,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;SACH;QAKD,IAAI,YAAY,GAAW,cAAQ,CAAC,YAAY,mCAAI,EAAE,CAAC;QACvD,IAAI,YAAY,KAAK,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;aACnC;iBAAM;gBACL,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC/B;SACF;QACD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CACb,QAAQ,QAAQ,CAAC,IAAI,yDAAyD,CAC/E,CAAC;SACH;QAKD,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC;YACrD,QAAQ,CAAC,aAAa,KAAK,IAAI,EAC/B;YACA,MAAM,IAAI,KAAK,CACb,8CAA8C,QAAQ,CAAC,IAAI,wBAAwB,CACpF,CAAC;SACH;QACD,MAAM,aAAa,GAAY,cAAQ,CAAC,aAAa,mCAAI,KAAK,CAAC;QAC/D,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC;YACpD,QAAQ,CAAC,YAAY,KAAK,IAAI,EAC9B;YACA,MAAM,IAAI,KAAK,CACb,6CAA6C,QAAQ,CAAC,IAAI,wBAAwB,CACnF,CAAC;SACH;QACD,MAAM,YAAY,GAAY,cAAQ,CAAC,YAAY,mCAAI,KAAK,CAAC;QAC7D,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC;YACpD,QAAQ,CAAC,YAAY,KAAK,IAAI,EAC9B;YACA,MAAM,IAAI,KAAK,CACb,6CAA6C,QAAQ,CAAC,IAAI,wBAAwB,CACnF,CAAC;SACH;QACD,MAAM,YAAY,GAAY,cAAQ,CAAC,YAAY,mCAAI,KAAK,CAAC;QAC7D,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC;YACnD,QAAQ,CAAC,WAAW,KAAK,IAAI,EAC7B;YACA,MAAM,IAAI,KAAK,CACb,4CAA4C,QAAQ,CAAC,IAAI,wBAAwB,CAClF,CAAC;SACH;QACD,MAAM,WAAW,GAAY,cAAQ,CAAC,WAAW,mCAAI,KAAK,CAAC;QAC3D,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;YAC7C,QAAQ,CAAC,KAAK,KAAK,IAAI,EACvB;YACA,MAAM,IAAI,KAAK,CACb,sCAAsC,QAAQ,CAAC,IAAI,wBAAwB,CAC5E,CAAC;SACH;QACD,MAAM,KAAK,GAAY,cAAQ,CAAC,KAAK,mCAAI,KAAK,CAAC;QAI/C,MAAM,UAAU,GAAY,EAAE,CAAC;QAC/B,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE;YACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBACvC,MAAM,IAAI,KAAK,CACb,iCAAiC,QAAQ,CAAC,IAAI,kCAAkC,CACjF,CAAC;aACH;YAID,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,UAAU,EAAE;gBAC7C,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;oBACnC,MAAM,IAAI,KAAK,CACb,wCAAwC,QAAQ,CAAC,IAAI,kCAAkC,CACxF,CAAC;iBACH;gBAED,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC5C,IAAI,WAAW,KAAK,SAAS,EAAE;oBAC7B,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBAC9B;qBAAM;oBACL,MAAM,IAAI,KAAK,CACb,cAAc,WAAW,kBAAkB,QAAQ,CAAC,IAAI,mBAAmB,CAC5E,CAAC;iBACH;aACF;SACF;aAAM,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,EAAE;YAEpD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACxB;iBAAM,IAAI,IAAI,KAAK,SAAS,EAAE;gBAE7B,IAAI,GAAG,GAAG,2CAA2C,QAAQ,CAAC,IAAI,UAAU,CAAC;gBAC7E,GAAG,IAAI,2CAA2C,QAAQ,CAAC,IAAI,KAAK,CAAC;gBACrE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;aACtB;SACF;QAGD,MAAM,WAAW,GAAW,cAAQ,CAAC,WAAW,mCAAI,QAAQ,CAAC,IAAI,CAAC;QAKlE,IAAI,IAAI,GAAW,cAAQ,CAAC,IAAI,mCAAI,EAAE,CAAC;QACvC,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,IAAI,KAAK,EAAE,EAAE;YACf,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACtC,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gBAClB,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;aACvC;iBAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChC,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;aAC3B;iBAAM;gBACL,IAAI,GAAG,GAAG,oCAAoC,QAAQ,CAAC,IAAI,UAAU,CAAC;gBACtE,GAAG,IAAI,2CAA2C,QAAQ,CAAC,IAAI,gDAAgD,CAAC;gBAChH,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;aACtB;SACF;QACD,IAAI,cAAc,KAAK,EAAE,EAAE;YACzB,cAAc,GAAG,IAAI,CAAC;SACvB;QAGD,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC;YAClD,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;YAClC,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAChC;YACA,MAAM,IAAI,KAAK,CACb,uCAAuC,QAAQ,CAAC,IAAI,aAAa,CAClE,CAAC;SACH;QACD,MAAM,UAAU,GAAa,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;QAIvD,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;YACjD,QAAQ,CAAC,SAAS,KAAK,IAAI,EAC3B;YACA,MAAM,IAAI,KAAK,CACb,0CAA0C,QAAQ,CAAC,IAAI,wBAAwB,CAChF,CAAC;SACH;QACD,MAAM,SAAS,GAAY,cAAQ,CAAC,SAAS,mCAAI,KAAK,CAAC;QAGvD,MAAM,GAAG,GAAW,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC;QACvC,IAAI,GAAG,KAAK,EAAE,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE;YAC7C,MAAM,IAAI,KAAK,CACb,mCAAmC,QAAQ,CAAC,IAAI,SAAS,CAC1D,CAAC;SACH;QAGD,MAAM,IAAI,GAAS;YACjB,IAAI;YACJ,YAAY;YACZ,UAAU;YACV,WAAW;YACX,IAAI;YACJ,cAAc;YACd,UAAU;YACV,SAAS;YACT,GAAG;YACH,KAAK;YACL,QAAQ,EAAE,KAAK;YAEf,aAAa;YACb,YAAY;YACZ,YAAY;YACZ,WAAW;SACZ,CAAC;QACF,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAG/B,MAAM,YAAY,GAAS;YACzB,GAAG,IAAI;YACP,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,oBAAoB,EAAE,YAAY,CAAC,CAAC;KAC/D;IAED,OAAO,KAAK,CAAC;AACf,CAAC;;;;;;;;;;;;;;;;;;;;AC5OyD;AACW;AACT;AACV;AA2BnC,SAAS,YAAY,CAClC,MAA0B,EAC1B,KAAwB,EACxB,eAAuB;;IAEvB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAE5C,KAAK,MAAM,WAAW,IAAI,gDAA6B,EAAE;QAEvD,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;QAC7B,IAAI,IAAI,KAAK,EAAE,EAAE;YACf,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;SACH;QAGD,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC;QAC3B,IAAI,EAAE,GAAG,CAAC,EAAE;YAEV,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,8BAA8B,CAAC,CAAC;SAC7D;QAGD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE;YACrD,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,gCAAgC,CAAC,CAAC;SAC/D;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;YACrC,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,mCAAmC,CACtE,CAAC;SACH;QACD,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,aAAa,CAAC,CAAC;SAClE;QAID,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,KAAK,EAAE;YAC1C,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;gBAClC,MAAM,IAAI,KAAK,CACb,qCAAqC,IAAI,kCAAkC,CAC5E,CAAC;aACH;YAED,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC5B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACxB;iBAAM;gBACL,MAAM,IAAI,KAAK,CACb,aAAa,UAAU,qBAAqB,IAAI,mBAAmB,CACpE,CAAC;aACH;SACF;QAID,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;YAEjC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAC7B;QAGD,MAAM,UAAU,GAAY,EAAE,CAAC;QAC/B,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE;YACzD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;gBAC1C,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,mCAAmC,CAC5E,CAAC;aACH;YAID,KAAK,MAAM,WAAW,IAAI,WAAW,CAAC,UAAU,EAAE;gBAChD,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;oBACnC,MAAM,IAAI,KAAK,CACb,2CAA2C,IAAI,kCAAkC,CAClF,CAAC;iBACH;gBAED,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC5C,IAAI,WAAW,KAAK,SAAS,EAAE;oBAC7B,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBAC9B;qBAAM;oBACL,MAAM,IAAI,KAAK,CACb,cAAc,WAAW,qBAAqB,IAAI,mBAAmB,CACtE,CAAC;iBACH;aACF;SACF;aAAM;YAEL,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,IAAI,IAAI,CAAC,aAAa,EAAE;oBAGtB,SAAS;iBACV;gBACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;wBAC/B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBACxB;iBACF;aACF;SACF;QAID,MAAM,SAAS,GAAa,WAAW,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAIrE,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,wBAAwB,CAAC;YACjE,WAAW,CAAC,sBAAsB,KAAK,IAAI,EAC3C;YACA,MAAM,IAAI,KAAK,CACb,0DAA0D,WAAW,CAAC,IAAI,wBAAwB,CACnG,CAAC;SACH;QACD,MAAM,sBAAsB,GAC1B,iBAAW,CAAC,sBAAsB,mCAAI,KAAK,CAAC;QAI9C,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC;YAChE,WAAW,CAAC,qBAAqB,KAAK,IAAI,EAC1C;YACA,MAAM,IAAI,KAAK,CACb,yDAAyD,WAAW,CAAC,IAAI,wBAAwB,CAClG,CAAC;SACH;QACD,MAAM,qBAAqB,GACzB,iBAAW,CAAC,qBAAqB,mCAAI,KAAK,CAAC;QAI7C,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC;YACtD,CAAC,WAAW,CAAC,WAAY,GAAG,CAAC,IAAI,WAAW,CAAC,WAAY,GAAG,CAAC,CAAC,EAC9D;YACA,MAAM,IAAI,KAAK,CACb,+CAA+C,WAAW,CAAC,IAAI,wBAAwB,CACxF,CAAC;SACH;QACD,MAAM,WAAW,GAAW,iBAAW,CAAC,WAAW,mCAAI,CAAC,CAAC,CAAC;QAI1D,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC;YAC/D,WAAW,CAAC,oBAAoB,KAAK,IAAI,EACzC;YACA,MAAM,IAAI,KAAK,CACb,wDAAwD,WAAW,CAAC,IAAI,wBAAwB,CACjG,CAAC;SACH;QACD,MAAM,oBAAoB,GACxB,iBAAW,CAAC,oBAAoB,mCAAI,KAAK,CAAC;QAI5C,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC;YAC9D,WAAW,CAAC,mBAAmB,KAAK,IAAI,EACxC;YACA,MAAM,IAAI,KAAK,CACb,uDAAuD,WAAW,CAAC,IAAI,wBAAwB,CAChG,CAAC;SACH;QACD,MAAM,mBAAmB,GACvB,iBAAW,CAAC,mBAAmB,mCAAI,KAAK,CAAC;QAI3C,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC;YAC9D,WAAW,CAAC,mBAAmB,KAAK,IAAI,EACxC;YACA,MAAM,IAAI,KAAK,CACb,uDAAuD,WAAW,CAAC,IAAI,wBAAwB,CAChG,CAAC;SACH;QACD,MAAM,mBAAmB,GACvB,iBAAW,CAAC,mBAAmB,mCAAI,KAAK,CAAC;QAI3C,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC;YAC7D,WAAW,CAAC,kBAAkB,KAAK,IAAI,EACvC;YACA,MAAM,IAAI,KAAK,CACb,sDAAsD,WAAW,CAAC,IAAI,wBAAwB,CAC/F,CAAC;SACH;QACD,MAAM,kBAAkB,GAAY,iBAAW,CAAC,kBAAkB,mCAAI,KAAK,CAAC;QAI5E,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC;YAC3D,WAAW,CAAC,gBAAgB,KAAK,IAAI,EACrC;YACA,MAAM,IAAI,KAAK,CACb,oDAAoD,WAAW,CAAC,IAAI,wBAAwB,CAC7F,CAAC;SACH;QACD,MAAM,gBAAgB,GAAY,iBAAW,CAAC,gBAAgB,mCAAI,KAAK,CAAC;QAIxE,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC;YACxD,WAAW,CAAC,aAAa,KAAK,IAAI,EAClC;YACA,MAAM,IAAI,KAAK,CACb,iDAAiD,WAAW,CAAC,IAAI,wBAAwB,CAC1F,CAAC;SACH;QACD,IAAI,aAAa,GAAY,iBAAW,CAAC,aAAa,mCAAI,KAAK,CAAC;QAGhE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,aAAa,GAAG,IAAI,CAAC;gBACrB,MAAM;aACP;SACF;QAID,IACE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;YAClD,WAAW,CAAC,OAAO,KAAK,IAAI,EAC5B;YACA,MAAM,IAAI,KAAK,CACb,2CAA2C,WAAW,CAAC,IAAI,wBAAwB,CACpF,CAAC;SACH;QACD,MAAM,OAAO,GAAY,iBAAW,CAAC,OAAO,mCAAI,KAAK,CAAC;QAGtD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAKlC,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CACrC,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAC3C,CAAC;QAGF,MAAM,aAAa,GAAG,wDAA0B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAG9D,MAAM,mBAAmB,GAAG,iFAAyB,CACnD,KAAK,EACL,KAAK,EACL,aAAa,EACb,8DAAc,CAAC,IAAI,CAAC,CACrB,CAAC;QAGF,MAAM,OAAO,GAAY;YACvB,IAAI;YACJ,EAAE;YACF,KAAK;YACL,KAAK;YACL,UAAU;YACV,SAAS;YACT,sBAAsB;YACtB,qBAAqB;YACrB,WAAW;YACX,oBAAoB;YACpB,mBAAmB;YACnB,mBAAmB;YACnB,kBAAkB;YAClB,gBAAgB;YAChB,aAAa;YACb,OAAO;YACP,QAAQ;YACR,oBAAoB;YACpB,aAAa;YACb,mBAAmB;SACpB,CAAC;QACF,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACzC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AChUwC;AACR;AACY;AACF;AACK;AACL;AACP;AACL;AACM;AAE9B,SAAS,IAAI;IAClB,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC1C,IAAI,2DAAqB,KAAK,6DAAW,IAAI,gDAAU,KAAK,IAAI,EAAE;YAChE,0DAAoB,EAAE,CAAC;SACxB;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,SAAS,IAAI;IAClB,2DAAqB,GAAG,6DAAW,CAAC;IACpC,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;IAG7B,gDAAU,GAAG,IAAI,iDAAQ,CAAC,6CAAO,EAAE,WAAW,CAAC,CAAC;IAChD,wDAAkB,GAAG,CAAC,CAAC;IAKvB,uDAAkB,CAAC,cAAc,EAAE;QACjC,OAAO,EAAE,qDAAe;KACzB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,IAAI;IACX,2DAAqB,GAAG,8DAAY,CAAC;IACrC,0DAAU,EAAE,CAAC;IACb,kDAAc,EAAE,CAAC;IAEjB,IAAI,gDAAU,KAAK,IAAI,EAAE;QACvB,wDAAkB,EAAE,CAAC;QACrB,gDAAU,GAAG,IAAI,CAAC;KACnB;IAED,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAClB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC7B,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,iDAAS,EAAE,GAAG,EAAE;QAGxC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;YACtC,2DAAqB,GAAG,gEAAc,CAAC;SACxC;aAAM,IAAI,CAAC,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;YAC1D,2DAAqB,GAAG,2EAAyB,CAAC;SACnD;IACH,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC;IAG7B,uDAAgB,EAAE,CAAC;IAGnB,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAC/D,IAAI,WAAW,KAAK,IAAI,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;KACjE;IACD,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC;AACnD,CAAC;AASD,MAAM,WAAW,GAAgB;IAC/B,IAAI;IACJ,IAAI;IACJ,MAAM;CACP,CAAC;;;;;;;;;;;;;;;;;ACpFwC;AAE3B,SAAS,SAAS,CAAC,KAAc,EAAE,MAAgB;IAChE,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,WAAW,CAAC,CAAC;YAChB,IAAI,MAAM,CAAC,IAAI,YAAY,mDAAU,EAAE;gBACrC,OAAO;oBACL,GAAG,KAAK;oBAGR,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBACrD,CAAC;aACH;YACD,OAAO,KAAK,CAAC;SACd;QACD,KAAK,WAAW,CAAC,CAAC;YAChB,IACE,KAAK,CAAC,WAAW,KAAK,IAAI;gBAC1B,KAAK,CAAC,WAAW,YAAY,mDAAU,EACvC;gBACA,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;aACrC;YACD,OAAO;gBACL,GAAG,KAAK;gBACR,WAAW,EAAE,IAAI;aAClB,CAAC;SACH;QACD;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC;;;;;;;;;;;;;;;;;;AChC6C;AACH;AAM5B,SAAS,oBAAoB,CAC1C,IAA0B,EAC1B,OAA6B,EAC7B,MAAkB,EAClB,KAAuC,EACvC,QAAsB;IAEtB,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,cAAc,CAAC;QACpB,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC,CAAC;YACX,OAAO,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SACvD;QACD,OAAO,CAAC,CAAC;YACP,OAAO,IAAI,CAAC;SACb;KACF;AACH,CAAC;AAED,SAAS,cAAc,CACrB,IAA0B,EAC1B,OAA6B,EAC7B,KAAuC,EACvC,QAAsB;IAEtB,MAAM,OAAO,GAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,0DAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAI9C,4BAA4B,CAC1B,QAAQ,CAAC,cAAc,EACvB,QAAQ,CAAC,cAAc,EACvB,KAAK,EACL,OAAO,EACP,OAAO,EACP,YAAY,CACb,CAAC;IACF,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QACnE,IAAI,WAAW,KAAK,QAAQ,CAAC,cAAc,EAAE;YAC3C,4BAA4B,CAC1B,WAAW,EACX,QAAQ,CAAC,cAAc,EACvB,KAAK,EACL,OAAO,EACP,OAAO,EACP,YAAY,CACb,CAAC;SACH;KACF;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,4BAA4B,CACnC,WAAmB,EACnB,cAAsB,EACtB,KAAuC,EACvC,IAAiB,EACjB,OAA6B,EAC7B,YAAiC;IAEjC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IACE,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,EACrE;gBACA,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;aACtE;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CACpB,IAAe,EACf,WAAmB,EACnB,cAAsB,EACtB,IAAiB,EACjB,YAAiC;IAEjC,MAAM,iBAAiB,GAAG,yBAAyB,CACjD,IAAI,CAAC,KAAK,EACV,IAAI,EACJ,WAAW,EACX,cAAc,CACf,CAAC;IACF,IAAI,EAAE,aAAa,EAAE,uBAAuB,EAAE,GAAG,IAAI,CAAC;IACtD,IAAI,WAAW,KAAK,cAAc,EAAE;QAClC,aAAa,GAAG,uBAAuB,CACrC,IAAI,CAAC,aAAa,EAClB,iBAAiB,EACjB,YAAY,CACb,CAAC;KACH;IACD,IAAI,WAAW,KAAK,IAAI,CAAC,QAAQ,EAAE;QACjC,uBAAuB,GAAG,uBAAuB,CAC/C,IAAI,CAAC,uBAAuB,EAC5B,iBAAiB,EACjB,YAAY,CACb,CAAC;KACH;IACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;QACjB,GAAG,IAAI;QACP,aAAa;QACb,uBAAuB;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAe,EACf,WAAmB,EACnB,cAAsB,EACtB,IAAiB,EACjB,OAA6B;IAE7B,IAAI,WAAW,KAAK,cAAc,IAAI,WAAW,KAAK,IAAI,CAAC,QAAQ,EAAE;QAGnE,OAAO,KAAK,CAAC;KACd;IACD,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE;QAEtC,OAAO,KAAK,CAAC;KACd;IAED,MAAM,0BAA0B,GAAG,6BAA6B,CAC9D,IAAI,EACJ,WAAW,EACX,cAAc,CACf,CAAC;IAEF,IAAI,0BAA0B,CAAC,MAAM,KAAK,CAAC,EAAE;QAE3C,OAAO,KAAK,CAAC;KACd;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEpC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE;QAEjE,OAAO,IAAI,CAAC;KACb;IAKD,OAAO,0BAA0B,CAC/B,IAAI,CAAC,KAAK,EACV,IAAI,EACJ,OAAO,EACP,WAAW,EACX,cAAc,CACf,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CACpC,IAAe,EACf,WAAmB,EACnB,cAAsB;IAEtB,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;QAEjC,OAAO,IAAI,CAAC,uBAAuB,CAAC;KACrC;IACD,IAAI,WAAW,KAAK,cAAc,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE;QAExE,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;IAMD,OAAO,IAAI,CAAC,sBAAsB,CAAC;AACrC,CAAC;AAED,SAAS,yBAAyB,CAChC,gBAAwB,EACxB,IAA0B,EAC1B,WAAmB,EACnB,cAAsB;IAEtB,MAAM,iBAAiB,GAAoD,EAAE,CAAC;IAC9E,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;QACvB,IAAI,8BAA8B,CAAC,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE;YACvE,iBAAiB,CAAC,IAAI,CACpB,6BAA6B,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CACjE,CAAC;SACH;KACF;IAqBD,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IACtD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,8BAA8B,CACrC,IAAe,EACf,gBAAwB,EACxB,WAAmB;IAEnB,OAAO,CACL,OAAO,IAAI,KAAK,WAAW;QAC3B,IAAI,CAAC,KAAK,KAAK,gBAAgB;QAG/B,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAC5D,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CACjC,gBAAwB,EACxB,IAA0B,EAC1B,OAA6B,EAC7B,WAAmB,EACnB,cAAsB;IAEtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,MAAM,cAAc,GAAG,8BAA8B,CACnD,OAAO,EACP,gBAAgB,EAChB,WAAW,CACZ,CAAC;QACF,MAAM,aAAa,GAAG,8BAA8B,CAClD,IAAI,EACJ,gBAAgB,EAChB,WAAW,CACZ,CAAC;QACF,IAAI,cAAc,KAAK,aAAa,EAAE;YACpC,OAAO,IAAI,CAAC;SACb;QACD,IAAI,aAAa,EAAE;YACjB,MAAM,qBAAqB,GAAG,6BAA6B,CACzD,OAAO,EACP,WAAW,EACX,cAAc,CACf,CAAC;YACF,MAAM,oBAAoB,GAAG,6BAA6B,CACxD,IAAI,EACJ,WAAW,EACX,cAAc,CACf,CAAC;YACF,IAAI,qBAAqB,CAAC,MAAM,KAAK,oBAAoB,CAAC,MAAM,EAAE;gBAChE,OAAO,IAAI,CAAC;aACb;SACF;KACF;IAWD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAC9B,iBAA2D,EAC3D,iBAA0E,EAC1E,YAAiC;IAQjC,IAAI,uBAAuB,GAAqC,EAAE,CAAC;IACnE,uBAAuB,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACxD,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE;QAG9C,IAAI,CAAC,cAAc,CAAC,uBAAuB,EAAE,WAAW,CAAC,EAAE;YACzD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,gBAAgB,CACrB,WAAW,EACX,iBAAiB,EACjB,CAAC,EACD,YAAY,EACZ,uBAAuB,CACxB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CACrB,uBAAiE,EACjE,CAAC,IAAI,EAAE,IAAI,CAA4B;IAEvC,OAAO,uBAAuB,CAAC,IAAI,CACjC,CAAC,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,EAAE,CACjC,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,IAAI,CACnD,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,CAAC,IAAI,EAAE,IAAI,CAA4B,EACvC,iBAA0E,EAC1E,KAAa,EACb,YAAiC,EACjC,uBAAyD;IAEzD,IAAI,iBAAiB,CAAC,MAAM,KAAK,KAAK,EAAE;QACtC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAChC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,6BAA6B,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;YACrE,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;KACd;IAED,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC;YACnE,IACE,gBAAgB,CACd,WAAW,EACX,iBAAiB,EACjB,KAAK,GAAG,CAAC,EACT,YAAY,EACZ,uBAAuB,CACxB,EACD;gBACA,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9B,OAAO,IAAI,CAAC;aACb;SACF;KACF;IACD,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,6BAA6B,CACpC,YAAiC,EACjC,uBAAyD;IAEzD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAClC,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC,IAAI,CAAC,CAAC;SACR;KACF;IACD,uBAAuB,CAAC,MAAM,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,IAAI,eAAe,GAAkB,IAAI,CAAC;AAC1C,IAAI,kBAAkB,GAAe,EAAE,CAAC;AAExC,SAAS,eAAe,CAAC,OAAgB;IACvC,IAAI,OAAO,CAAC,EAAE,KAAK,eAAe,EAAE;QAClC,OAAO,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;KACjE;IAED,MAAM,aAAa,GAAa,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,aAAa,GAAa,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACtD,MAAM,eAAe,GAAe,EAAE,CAAC;IACvC,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAClC,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7B,eAAe,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,wDAAyB,CAC1D,IAAI,EACJ,IAAI,EACJ,OAAO,CACR,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,eAAe,GAAG,OAAO,CAAC,EAAE,CAAC;IAC7B,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE3E,OAAO,eAAe,CAAC;AACzB,CAAC;;;;;;;;;;;;;;;;;;;ACzZ6C;AACR;AAGG;AAI1B,SAAS,wBAAwB,CAC9C,KAAgB,EAChB,IAAU,EACV,QAAiB,EACjB,QAAsB;IAEtB,IAAI,KAAK,CAAC,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE;QAE7C,OAAO,KAAK,CAAC;KACd;IAED,MAAM,OAAO,GAAY,0DAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAGlE,MAAM,sBAAsB,GAAG,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAChE,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CACpB,0DAAsB,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,QAAQ,CACtE,CAAC;IACF,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAC9C,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CACpB,0DAAsB,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,QAAQ,CACtE,CAAC;IACF,MAAM,uBAAuB,GAAG,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAClE,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CACpB,0DAAsB,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,QAAQ,CACtE,CAAC;IAEF,IAAI,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAC;IACnC,IACE,QAAQ;QACR,IAAI,CAAC,IAAI,KAAK,0DAAc;QAC5B,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EACxC;QACA,kBAAkB,GAAG,CAAC,GAAG,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1D;IAED,IAAI,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAC;IAClC,IACE,QAAQ;QACR,IAAI,CAAC,IAAI,KAAK,yDAAa;QAC3B,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EACvC;QACA,iBAAiB,GAAG,CAAC,GAAG,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KACxD;IAED,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,GACzE,cAAc,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAc;QAC1B,GAAG,KAAK;QACR,SAAS;QACT,IAAI;QACJ,cAAc;QACd,cAAc;QACd,sBAAsB;QACtB,aAAa;QACb,uBAAuB;QACvB,kBAAkB;QAClB,iBAAiB;QACjB,gBAAgB;KACjB,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAGD,SAAS,cAAc,CACrB,KAAgB,EAChB,sBAAgE;IAEhE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAEhC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvE,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,KAAK,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,KAAK,CAAC,CAAC;IAEhD,IAAI,cAAc,EAAE;QAElB,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC;KAC7B;IAED,IAAI,cAAc,EAAE;QAElB,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;KACxB;IAED,OAAO;QACL,SAAS;QACT,IAAI;QACJ,cAAc;QACd,cAAc;QACd,gBAAgB,EACd,cAAc,IAAI,cAAc;YAC9B,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,CAAC,CAAC,KAAK,CAAC,gBAAgB;KAC7B,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AC1G2D;AACd;AACc;AACG;AAGX;AACX;AAGiB;AACQ;AACF;AACH;AAE9C,SAAS,YAAY,CAClC,IAA0B,EAC1B,MAAkB,EAClB,IAAe,EACf,QAAsB;;IAEtB,MAAM,OAAO,GAAG,0DAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE/D,QAAQ,MAAM,CAAC,IAAI,EAAE;QAInB,KAAK,cAAc,CAAC,CAAC;YACnB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;YACzB,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAChC,IAAI,GAAG;gBACL,GAAG,IAAI;gBACP,gBAAgB,EAAE,4BAA4B,CAC5C,IAAI,EACJ,QAAQ,CAAC,oBAAoB,CAC9B;aACF,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YACtB,IAAI,kFAAyC,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE;gBACjE,MAAM;aACP;YAED,IACE,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,cAAc;gBAC9C,MAAM,CAAC,SAAS,KAAK,CAAC,CAAC;gBACvB,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,EAClB;gBAGA,MAAM;aACP;YAED,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;gBAEjD,MAAM;aACP;YAED,OAAO,CAAC,KAAK,CAAC,GAAG;gBACf,GAAG,IAAI;gBACP,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;aACjD,CAAC;YAEF,MAAM;SACP;QAED,KAAK,MAAM,CAAC,CAAC;YACX,MAAM,IAAI,GACR,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,0DAAc;gBACjC,CAAC,CAAC,sDAAS,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClD,CAAC,CAAC,qDAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAElC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,QAAiB,EAAE,EAAE;gBAErD,IAAI,CAAC,8DAA0B,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE;oBAChE,OAAO;iBACR;gBAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACrC,MAAM,OAAO,GAAG,kEAAwB,CACtC,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,QAAQ,CACT,CAAC;gBACF,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;YAC3B,CAAC,CAAC;YAGF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACvC,OAAO,CAAC,KAAK,CAAC,GAAG;oBACf,GAAG,IAAI;oBACP,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC;oBAC3C,iBAAiB,EACf,IAAI,CAAC,iBAAiB,KAAK,IAAI;wBAC7B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAQ;wBACpB,CAAC,CAAC,IAAI,CAAC,iBAAiB;oBAC5B,cAAc,EAAE,IAAI;oBACpB,qBAAqB,EACnB,IAAI,CAAC,qBAAqB,KAAK,IAAI;wBACjC,CAAC,CAAC,0DAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;wBAC1C,CAAC,CAAC,IAAI,CAAC,qBAAqB;iBACjC,CAAC;gBACF,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YAGH,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;iBACjB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAC/C,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACrC,OAAO,CAAC,KAAK,CAAC,GAAG;oBACf,GAAG,IAAI;oBACP,cAAc,EAAE,IAAI;iBACrB,CAAC;gBACF,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEL,MAAM;SACP;QAED,KAAK,SAAS,CAAC;QACf,KAAK,MAAM,CAAC,CAAC;YACX,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;YACzB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAGlC,MAAM,SAAS,GAAG,2DAAc,CAAC,MAAM,CAAC,SAAS,CAAC,mCAAI,IAAI,CAAC,SAAS,CAAC;YACrE,MAAM,IAAI,GAAG,2DAAc,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAI,IAAI,CAAC,IAAI,CAAC;YAEtD,MAAM,kBAAkB,GAAG,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAE7D,IAAI,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;YAC7B,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;YAChC,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YACxB,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;YAE3B,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;gBAC1B,QAAQ,GAAG,WAAW,CAAC;gBACvB,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;aACnC;iBAAM;gBACL,QAAQ,GAAG,SAAS,CAAC;gBACrB,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;gBACrC,IAAI,MAAM,CAAC,MAAM,EAAE;oBACjB,WAAW,GAAG,IAAI,CAAC;iBACpB;aACF;YAED,OAAO,CAAC,KAAK,CAAC,GAAG;gBACf,GAAG,IAAI;gBACP,SAAS;gBACT,IAAI;gBACJ,aAAa;gBACb,gBAAgB;gBAChB,QAAQ;gBACR,WAAW;gBACX,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,kBAAkB;gBACzD,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,kBAAkB;gBACzD,gBAAgB,EACd,MAAM,CAAC,SAAS,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC;oBACvC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBACzB,CAAC,CAAC,IAAI,CAAC,gBAAgB;gBAC3B,aAAa,EACX,MAAM,CAAC,SAAS,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC;oBACvC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBACnC,CAAC,CAAC,IAAI,CAAC,aAAa;aACzB,CAAC;YACF,MAAM;SACP;QAED,KAAK,MAAM,CAAC,CAAC;YAEX,IACE,IAAI,CAAC,IAAI,CAAC,kBAAkB,KAAK,MAAM,CAAC,WAAW;gBAGnD,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EACrB;gBACA,OAAO,CAAC,IAAI,CACV,wFAAwF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAC5G,CAAC;gBACF,OAAO,CAAC,IAAI,CAEV,YAAY,IAAI,CAAC,IAAI,CAAC,kBAAkB,cAAc,MAAM,CAAC,WAAW,EAAE,CAC3E,CAAC;aACH;YAED,MAAM,OAAO,GAAG,wEAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAExD,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;YAEhC,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE;gBAC7C,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;aACnD;YAED,MAAM,SAAS,GAAG;gBAChB,GAAG,OAAO;gBACV,QAAQ,EAAE,MAAM,CAAC,WAAW;gBAC5B,SAAS,EAAE,qDAAc,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC3C,IAAI,EAAE,qDAAc,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;gBAC/B,gBAAgB,EAAE,yBAAyB,CACzC,MAAM,CAAC,WAAW,EAClB,QAAQ,CAAC,oBAAoB,CAC9B;gBACD,aAAa;gBAEb,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI;aAChD,CAAC;YAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;YAElC,MAAM;SACP;QAGD,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,gBAAgB,CAAC;QACtB,KAAK,aAAa,CAAC;QACnB,KAAK,UAAU,CAAC;QAChB,KAAK,aAAa,CAAC;QACnB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC,CAAC;YACX,MAAM;SACP;QAED,OAAO,CAAC,CAAC;YACP,qDAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM;SACP;KACF;IAED,IACE,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC;QACvB,MAAM,CAAC,IAAI,KAAK,MAAM;QACtB,CAAC,mEAA+B,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC1D;QAEA,OAAO,OAAO,CAAC;KAChB;IAED,OAAO,8DAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACtE,CAAC;AAMD,SAAS,4BAA4B,CACnC,IAAe,EACf,oBAAoD;IAEpD,MAAM,gBAAgB,GAAc,EAAE,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpD,MAAM,aAAa,GAAG,0EAAyB,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,aAAa,KAAK,aAAa,EAAE;YAC1D,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC7B;aAAM;YACL,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;SACjD;KACF;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,yBAAyB,CAChC,YAAoB,EACpB,oBAAoD;IAEpD,MAAM,gBAAgB,GAAc,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC;IAC/C,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,UAAU,EAAE,WAAW,EAAE,EAAE;QACjE,gBAAgB,CAAC,IAAI,CACnB,qBAAqB,CACnB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,oBAAoB,CACrB,CACF,CAAC;KACH;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,qBAAqB,CAC5B,WAAmB,EACnB,YAAoB,EACpB,UAAkB,EAClB,oBAAoD;IAEpD,IAAI,WAAW,KAAK,YAAY,EAAE;QAChC,OAAO,KAAK,CAAC;KACd;IACD,MAAM,aAAa,GAAG,0EAAyB,CAC7C,WAAW,EACX,oBAAoB,CACrB,CAAC;IACF,QAAQ,aAAa,EAAE;QACrB,KAAK,aAAa;YAChB,OAAO,KAAK,CAAC;QACf,KAAK,WAAW;YACd,OAAO,YAAY,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;QACzD,KAAK,YAAY;YACf,OAAO,YAAY,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;QACzD;YACE,OAAO,IAAI,CAAC;KACf;AACH,CAAC;AAED,SAAS,OAAO,CAAC,IAA0B,EAAE,KAAa;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;KAC/D;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CACjB,SAAwB,EACxB,IAAmB,EACnB,IAAe;IAIf,IAAI,SAAS,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;QACvC,OAAO,KAAK,CAAC;KACd;IAID,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE;QAC9C,OAAO,IAAI,CAAC;KACb;IAED,OAAO,IAAI,CAAC;AACd,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACvVM,MAAM,gBAAgB,GAAG;IAC9B,IAAI;IACJ,WAAW;IACX,YAAY;IACZ,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;CACR,CAAC;AACK,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC1D,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACtD,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AACtD,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,CAAC;AAC9B,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACvC,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,CAAC;AAC9B,MAAM,kBAAkB,GAAc,EAAG,CAAC,MAAM,CACrD,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,WAAW,EACX,WAAW,EACX,aAAa,CACd,CAAC;;;;;;;;;;;;;;;;;AC9BmC;AAGtB,SAAS,UAAU,CAChC,IAA0B,EAC1B,GAAkB,EAClB,kBAAiC;IAEjC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,IAAI,IAAI,kBAAkB,KAAK,IAAI,EAAE;QAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG;gBACf,GAAG,IAAI;gBACP,eAAe,EAAE,KAAK;aACvB,CAAC;SACH;KACF;SAAM;QACL,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG;gBACf,GAAG,IAAI;gBACP,eAAe,EACb,IAAI,CAAC,QAAQ,KAAK,kBAAkB;oBACpC,2DAAuB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;aACjD,CAAC;SACH;KACF;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AC5B2D;AACW;AACzB;AAS5B;AAI+B;AACmB;AAG1B;AACJ;AACI;AACF;AAExC,MAAM,gBAAgB,GAAG,8CAAO,CAAC,wBAAwB,EAAE,EAAe,CAAC,CAAC;AAC5E,iEAAe,gBAAgB,EAAC;AAEhC,SAAS,wBAAwB,CAC/B,KAAuB,EACvB,MAAkB,EAClB,OAAgB,EAChB,QAAsB,EACtB,QAAqB;IAErB,MAAM,OAAO,GAAG,0DAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzD,QAAQ,MAAM,CAAC,IAAI,EAAE;QAGnB,KAAK,MAAM,CAAC,CAAC;YACX,KAAK,CAAC,UAAU,IAAI,+DAA2B,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAE5D,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;gBAC/B,MAAM,IAAI,KAAK,CACb,MAAM,MAAM,CAAC,IAAI,+DAA+D,CACjF,CAAC;aACH;YAED,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;gBACtB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;gBACxB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;gBAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAChC;aACF,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,kDAAc,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC1D,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC;gBAC5B,IAAI;aACL,CAAC,CAAC;YAGH,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5C,SAAS,CAAC,SAAS,EAAE,gDAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;YAEtD,MAAM;SACP;QAID,KAAK,SAAS,CAAC,CAAC;YAEd,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;gBAEpB,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;aAC3B;YAED,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;gBACrE,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE;oBAChE,MAAM,IAAI,KAAK,CACb,8CAA8C,MAAM,CAAC,SAAS,EAAE,CACjE,CAAC;iBACH;gBAGD,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAGzD,KAAK,CAAC,UAAU,GAAG,wDAAoB,CACrC,MAAM,EACN,KAAK,CAAC,UAAU,EAChB,OAAO,CACR,CAAC;aACH;YAED,MAAM,OAAO,GAAG,qDAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,qDAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YACzE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC;gBAC5B,IAAI;aACL,CAAC,CAAC;YAEH,MAAM;SACP;QAID,KAAK,MAAM,CAAC,CAAC;YACX,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,IAAI,KAAK,SAAS,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACzB;YAED,IACE,mEAA+B,CAAC,KAAK,CAAC,uBAAuB,EAAE,QAAQ,CAAC,EACxE;gBACA,MAAM,IAAI,GAAG,GACX,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAmB,CACrD,aAAa,CAAC;gBACd,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC;oBAC5B,IAAI;iBACL,CAAC,CAAC;aACJ;YAED,MAAM;SACP;QAKD,KAAK,UAAU,CAAC,CAAC;YACf,IAAI,MAAM,CAAC,YAAY,KAAK,+DAAmB,EAAE;gBAC/C,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;aACjB;YAED,MAAM,IAAI,GAAG,sDAAkB,CAC7B,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,WAAW,EAClB,KAAK,CAAC,KAAK,EACX,QAAQ,CACT,CAAC;YACF,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC;gBAC5B,IAAI;aACL,CAAC,CAAC;YAEH,MAAM;SACP;QAID,KAAK,MAAM,CAAC,CAAC;YAEX,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;gBACpB,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;aAC3B;YAGD,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;gBACrE,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE;oBAChE,MAAM,IAAI,KAAK,CACb,2CAA2C,MAAM,CAAC,SAAS,EAAE,CAC9D,CAAC;iBACH;gBAED,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACrD,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAG7B,KAAK,CAAC,UAAU,GAAG,wDAAoB,CACrC,MAAM,EACN,KAAK,CAAC,UAAU,EAChB,OAAO,EACP,SAAS,CAAC,MAAM,KAAK,CAAC,CACvB,CAAC;aACH;YAGD,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;YAEjB,MAAM,OAAO,GAAG,qDAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,kDAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YACtE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC;gBAC5B,IAAI;aACL,CAAC,CAAC;YAEH,MAAM;SACP;QAED,KAAK,aAAa,CAAC,CAAC;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAElD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;gBACtD,MAAM,cAAc,GAAG,gEAAyB,CAAC,YAAY,CAAC,CAAC;gBAC/D,MAAM,UAAU,GAAG,kEAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAE9C,IAAI,IAAI,CAAC;gBACT,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;oBAC1B,IAAI,GAAG,GAAG,UAAU,QAAQ,cAAc,OAAO,CAAC;iBACnD;qBAAM;oBACL,IAAI,GAAG,GAAG,UAAU,UAAU,cAAc,EAAE,CAAC;iBAChD;gBACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC;oBAC5B,IAAI;iBACL,CAAC,CAAC;aACJ;YAED,MAAM,WAAW,GAAG,gEAAyB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,gCAAgC,WAAW,EAAE,CAAC;YAC3D,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC;gBAC5B,IAAI;aACL,CAAC,CAAC;YACH,MAAM;SACP;QAKD,KAAK,QAAQ,CAAC,CAAC;YACb,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAQ;aAC7B,CAAC,CAAC;YACH,MAAM;SACP;QAGD,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,gBAAgB,CAAC;QACtB,KAAK,aAAa,CAAC;QACnB,KAAK,MAAM,CAAC;QACZ,KAAK,cAAc,CAAC,CAAC;YACnB,MAAM;SACP;QAED,OAAO,CAAC,CAAC;YACP,qDAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM;SACP;KACF;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;QAE/D,OAAO;KACR;IAGD,KAAK,CAAC,IAAI,GAAG,gDAAS,CACpB,sDAAY,CAAC,+CAAQ,CAAC,KAAK,CAAC,IAAI,CAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAC7D,CAAC;IAGF,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,iEAA6B,CAAC,OAAO,CAAC,EAAE;QAGpE,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,6DAAyB,CACzC,MAAM,CAAC,SAAS,EAChB,SAAS,EACT,KAAK,CAAC,IAAI,EACV,OAAO,CACR,CAAC;QACF,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;KACzD;IAID,IACE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;QACrD,MAAM,CAAC,SAAS,IAAI,CAAC;QACrB,MAAM,CAAC,IAAI,IAAI,CAAC,EAChB;QACA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7B,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,oDAAgB,CACzD,MAAM,CAAC,SAAS,EAChB,IAAI,EACJ,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,mBAAmB,EACzB,OAAO,CACR,CAAC;QACJ,CAAC,CAAC,CAAC;KACJ;IAGD,KAAK,CAAC,IAAI,GAAG,qDAAW,CAAC,+CAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAGxE,KAAK,CAAC,KAAK,GAAG,sDAAY,CACxB,+CAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EACrB,MAAM,EACN,+CAAQ,CAAC,KAAK,CAAE,EAChB,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,IAAI,CACjB,CAAC;IAGF,KAAK,CAAC,IAAI,GAAG,gDAAS,CACpB,oDAAU,CACR,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,KAAK,CAAC,aAAa,EACzB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAC9B,CACF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,IAAc,EACd,IAA0B,EAC1B,QAAsB;IAEtB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE;QAC/B,OAAO;KACR;IAGD,MAAM,SAAS,GAAG,uDAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACjC,OAAO;KACR;IAGD,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAGtD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,+BAA+B,CACtC,KAAuB,EACvB,MAAkC,EAClC,OAAgB,EAChB,OAAgB;IAEhB,IAAI,CAAC,iEAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;QACvD,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;QAG1E,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAG9B,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC;QAEnC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC;;;;;;;;;;;;;;;;;;;;;;ACvX6C;AACgB;AAGrB;AACQ;AAGN;AAEkB;AAE9C,SAAS,YAAY,CAClC,KAAwB,EACxB,cAA0B,EAC1B,aAAwB,EACxB,YAAuB,EACvB,QAAsB;IAEtB,MAAM,OAAO,GAAG,0DAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAGzD,IAAI,MAAM,GAAG,cAAc,CAAC;IAC5B,IACE,MAAM,CAAC,IAAI,KAAK,SAAS;QACzB,MAAM,CAAC,MAAM;QACb,iEAA6B,CAAC,OAAO,CAAC,EACtC;QACA,MAAM,GAAG;YACP,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC;KACH;IAED,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,MAAM,CAAC,CAAC;YACX,IAAI,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE;gBAC1C,MAAM,kBAAkB,GAAG,0EAAyB,CAClD,MAAM,CAAC,KAAK,EACZ,QAAQ,CAAC,oBAAoB,CAC9B,CAAC;gBAEF,IAAI,kBAAkB,KAAK,SAAS,EAAE;oBACpC,OAAO,2DAAe,CAAC;iBACxB;aACF;YAED,IAAI,4DAAwB,CAAC,OAAO,CAAC,EAAE;gBACrC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,0DAAc,EAAE;oBACvC,OAAO,yDAAa,CAAC;iBACtB;gBAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,yDAAa,EAAE;oBACtC,OAAO,0DAAc,CAAC;iBACvB;gBAED,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;aACvC;YAED,IAAI,uDAAmB,CAAC,OAAO,CAAC,EAAE;gBAChC,OAAO,2DAAe,CAAC;aACxB;YAED,OAAO,8DAAkB,CAAC;SAC3B;QAED,KAAK,SAAS,CAAC,CAAC;YACd,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,IAAI,KAAK,CAAC,sBAAsB,KAAK,2DAAe,EAAE;oBACpD,OAAO,2DAAe,CAAC;iBACxB;gBAED,OAAO,2DAAe,CAAC;aACxB;YAED,IACE,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ;gBAC7C,CAAC,iEAA6B,CAAC,OAAO,CAAC,EACvC;gBACA,OAAO,yDAAa,CAAC;aACtB;YAED,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,qDAAiB,CAAC,aAAa,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE;gBACX,OAAO,kEAAsB,CAAC;aAC/B;YAED,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC;YAC3C,IAAI,wBAAwB,GAAG,IAAI,CAAC;YACpC,IACE,UAAU,KAAK,IAAI;gBACnB,UAAU,CAAC,IAAI,KAAK,SAAS;gBAC7B,UAAU,CAAC,SAAS,KAAK,IAAI;gBAC7B,UAAU,CAAC,IAAI,KAAK,IAAI,EACxB;gBACA,wBAAwB,GAAG,aAAa,CAAC,sBAAsB,CAAC,IAAI,CAClE,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CACpB,SAAS,KAAK,UAAU,CAAC,SAAS,IAAI,IAAI,KAAK,UAAU,CAAC,IAAI,CACjE,CAAC;aACH;YACD,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC9D,IACE,aAAa,CAAC,KAAK,CAAC,aAAa,KAAK,IAAI;gBAC1C,wBAAwB;gBACxB,CAAC,QAAQ,CAAC,WAAW;gBACrB,CAAC,sDAAkB,CAAC,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC,EACtD;gBAEA,OAAO,mEAAuB,CAAC;aAChC;YAED,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;gBAEzD,OAAO,wEAA4B,CAAC;aACrC;YAED,OAAO,8DAAkB,CAAC;SAC3B;QAED,KAAK,UAAU,CAAC,CAAC;YACf,IAAI,MAAM,CAAC,YAAY,GAAG,+DAAmB,EAAE;gBAC7C,OAAO,kEAAsB,CAAC;aAC/B;YAED,IAAI,YAAY,CAAC,KAAK,KAAK,OAAO,CAAC,QAAQ,EAAE;gBAC3C,OAAO,qEAAyB,CAAC;aAClC;YAED,OAAO,qEAAyB,CAAC;SAClC;QAED,KAAK,MAAM,CAAC,CAAC;YACX,IACE,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ;gBAC7C,CAAC,iEAA6B,CAAC,OAAO,CAAC,EACvC;gBACA,OAAO,yDAAa,CAAC;aACtB;YAED,MAAM,OAAO,GAAG,qDAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,EAAE;gBACZ,IAAI,KAAK,CAAC,sBAAsB,KAAK,4DAAgB,EAAE;oBACrD,OAAO,4DAAgB,CAAC;iBACzB;gBACD,IAAI,KAAK,CAAC,sBAAsB,KAAK,4DAAgB,EAAE;oBACrD,OAAO,4DAAgB,CAAC;iBACzB;gBACD,IAAI,KAAK,CAAC,sBAAsB,KAAK,4DAAgB,EAAE;oBACrD,OAAO,4DAAgB,CAAC;iBACzB;gBACD,IAAI,KAAK,CAAC,sBAAsB,KAAK,4DAAgB,EAAE;oBACrD,OAAO,4DAAgB,CAAC;iBACzB;gBACD,IAAI,KAAK,CAAC,sBAAsB,KAAK,4DAAgB,EAAE;oBACrD,OAAO,4DAAgB,CAAC;iBACzB;gBAED,OAAO,4DAAgB,CAAC;aACzB;YAED,IAAI,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE;gBAClE,OAAO,mEAAuB,CAAC;aAChC;YAED,OAAO,8DAAkB,CAAC;SAC3B;QAED,OAAO,CAAC,CAAC;YAEP,OAAO,KAAK,CAAC,sBAAsB,CAAC;SACrC;KACF;AACH,CAAC;AAMD,SAAS,eAAe,CACtB,MAAkB,EAClB,aAAwB,EACxB,YAAuB,EACvB,QAAsB;IAEtB,MAAM,OAAO,GAAG,0DAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAIzD,IAAI,2DAAuB,CAAC,OAAO,CAAC,EAAE;QACpC,OAAO,KAAK,CAAC;KACd;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE;QACrC,OAAO,KAAK,CAAC;KACd;IAGD,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,SAAS;SACV;QACD,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,iBAAiB,IAAI,CAAC,CAAC;SACxB;KACF;IAGD,IAAI,iBAAiB,KAAK,CAAC,IAAI,iBAAiB,KAAK,CAAC,EAAE;QACtD,OAAO,KAAK,CAAC;KACd;IAGD,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAgB,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE;QAC9B,IAAI,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE;YAE1B,SAAS;SACV;QAED,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;YAC9B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3B;KACF;IAGD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAC/B,OAAO,KAAK,CAAC;KACd;IAGD,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAIhC,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QAEzB,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;YAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,cAAc,EAAE;gBAC/B,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;aAC7B;SACF;QAID,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACrD,MAAM,iBAAiB,GAAG,cAAc,CAAC,MAAM,CAC7C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CACnC,CAAC;QACF,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE;YAChD,IACE,gBAAgB,CAAC,iBAAiB,KAAK,SAAS,CAAC,iBAAiB;gBAClE,gBAAgB,CAAC,qBAAqB,KAAK,IAAI,EAC/C;gBAIA,OAAO,gBAAgB,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;aAChD;SACF;QAGD,OAAO,cAAc,KAAK,MAAM,CAAC,KAAK,CAAC;KACxC;IAGD,IAAI,WAAW,GAAG,GAAG,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;QACjC,IAAI,IAAI,CAAC,KAAK,GAAG,WAAW,EAAE;YAC5B,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;SAC1B;KACF;IACD,OAAO,WAAW,KAAK,MAAM,CAAC,KAAK,CAAC;AACtC,CAAC;AAED,MAAM,oBAAoB,GAAG,CAAC,IAAe,EAAE,EAAE,CAG/C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAElC,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC;IAGnC,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;ACvSE;AAI1B,SAAS,gBAAgB,CACtC,KAAa,EACb,OAAgB;IAIhB,MAAM,aAAa,GAAa,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,aAAa,GAAa,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAEtD,MAAM,aAAa,GAA4B,EAAE,CAAC;IAClD,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1B,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACzD,CAAC;IAEF,MAAM,KAAK,GAAG,mDAAe,CAAC,OAAO,CAAC,CAAC;IAEvC,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW;QAC9C,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,IAAI;QACV,sBAAsB,EAAE,aAAa;QACrC,aAAa;QACb,uBAAuB,EAAE,aAAa;QACtC,gBAAgB,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1C,kBAAkB,EAAE,EAAE;QACtB,iBAAiB,EAAE,EAAE;QACrB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,CAAC;QACnB,YAAY,EAAE,IAAI;QAClB,iBAAiB,EAAE,IAAI;QACvB,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE,IAAI;QACtB,WAAW,EAAE,KAAK;QAClB,mBAAmB,EAAE,KAAK;QAC1B,qBAAqB,EAAE,IAAI;QAC3B,eAAe,EAAE,KAAK;KACvB,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;AC5CyC;AACO;AAS5B;AAEgC;AAGP;AACI;AAEnC,SAAS,gBAAgB,CAAC,QAAsB;IAC7D,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAC7B,MAAM,OAAO,GAAG,0DAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,0DAAgB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,+DAA2B,CAAC,0DAAY,EAAE,OAAO,CAAC,CAAC;IACtE,MAAM,YAAY,GAAG,0DAAsB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,2DAAuB,CAC3C,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,oBAAoB,CAC9B,CAAC;IACF,MAAM,gBAAgB,GAAG,+DAA2B,CAClD,OAAO,CAAC,UAAU,EAClB,YAAY,EACZ,OAAO,CACR,CAAC;IACF,MAAM,YAAY,GAAG,2DAAuB,CAC1C,gBAAgB,EAChB,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EACxB,aAAa,CACd,CAAC;IACF,MAAM,KAAK,GAAe,gDAAS,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACrD,6DAAyB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAC9C,CAAC;IACF,MAAM,UAAU,GAAe,gDAAS,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,aAAa,GAAe,gDAAS,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEtE,MAAM,UAAU,GAAmB,EAAE,CAAC;IACtC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE;QACrC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7B,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,oDAAgB,CAC5C,SAAS,EACT,IAAI,EACJ,EAAE,EACF,UAAU,EACV,mBAAmB,EACnB,OAAO,CACR,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAa,KAAK,CAAC,IAAI,CACxC,UAAU,EACV,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAChC,CAAC;IACF,MAAM,gBAAgB,GAAa,gDAAS,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,gBAAgB,GAAG,gEAA4B,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,6DAAyB,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG,+DAA2B,CAClD,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EACxC,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iEAA6B,CAAC,UAAU,EAAE,OAAO,CAAC,CACnD,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,EAAE;QACR,uBAAuB,EAAE,wDAAoB,CAAC,OAAO,CAAC;QACtD,UAAU;QACV,KAAK,EAAE,CAAC;QACR,uBAAuB,EAAE,CAAC;QAC1B,UAAU;QACV,OAAO,EAAE,EAAE;QACX,KAAK;QACL,UAAU;QACV,mBAAmB;QACnB,IAAI,EAAE,EAAE;QACR,aAAa;QACb,KAAK,EAAE,EAAE;QACT,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,gBAAgB,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAa;YAErE,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,uDAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC;YAC/D,4BAA4B,EAAE,KAAK;YAEnC,WAAW,EAAE,CAAC;YACd,kBAAkB,EAAE,CAAC;YACrB,kBAAkB,EAAE,CAAC;YAErB,gBAAgB;YAEhB,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,IAAI;YAChB,sBAAsB,EAAE,8DAAkB;SAC3C;KACF,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;ACjHyC;AACO;AACT;AAGU;AAEnC,SAAS,YAAY,CAAC,QAAsB;IACzD,MAAM,IAAI,GAAG,0DAAgB,CAAC,QAAQ,CAAC,CAAC;IAExC,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAC7B,MAAM,OAAO,GAAG,0DAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,wDAAoB,CAAC,OAAO,CAAC,CAAC;IAEjD,OAAO;QACL,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE;YACN,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YAEX,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,IAAI;SACnB;QAED,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,KAAK;QAEf,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QAItB,KAAK,EAAE;YACL,QAAQ,EAAE,gDAAS,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzD,aAAa,EAAE,EAAE;gBACjB,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,EAAE;aACT,CAAC;YACF,QAAQ,EAAE,gDAAS,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC;YAC9D,kBAAkB,EAAE,CAAC;SACtB;QAED,QAAQ;QACR,cAAc,EAAE,gDAAS,CAAC,UAAU,EAAE;YACpC,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,IAAI;SACX,CAAC;QACF,OAAO,EAAE,IAAI;QACb,KAAK,EAAE;YACL,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,KAAK;SACd;QACD,UAAU,EAAE,EAAE;QACd,EAAE,EAAE;YACF,WAAW,EAAE,IAAI;SAClB;KACF,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;AClEc,SAAS,gBAAgB,CAAC,cAAc,GAAG,CAAC;IACzD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC;QACV,kBAAkB,EAAE,cAAc;QAClC,iBAAiB,EAAE,KAAK;QACxB,UAAU,EAAE,IAAI;QAChB,8BAA8B,EAAE,CAAC;QACjC,sBAAsB,EAAE,CAAC;QACzB,kBAAkB,EAAE,CAAC;KACtB,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;ACbyC;AAEqB;AAGd;AAOjD,SAAS,SAAS,CAAC,OAAgB,EAAE,QAAgB;IACnD,MAAM,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,SAAS,CAC3D,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,QAAQ,CAC1D,CAAC;IACF,IAAI,qBAAqB,KAAK,CAAC,CAAC,EAAE;QAChC,OAAO,qBAAqB,CAAC;KAC9B;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAC3C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,QAAQ,CACtD,CAAC;IACF,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;QACxB,OAAO,aAAa,CAAC;KACtB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,QAAgB;IACjC,MAAM,IAAI,GAAG,mDAAY,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QACpC,OAAO,6DAAe,CAAC;KACxB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,SAAS,aAAa,CAAC,OAAgB,EAAE,OAAe;IAC7D,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,aAAa,KAAK,IAAI,EAAE;QAC1B,MAAM,QAAQ,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,QAAQ,KAAK,IAAI,EAAE;YACrB,SAAS,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;SAC1C;QACD,MAAM,QAAQ,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,QAAQ,KAAK,IAAI,EAAE;YACrB,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;SAC5B;KACF;IAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB,EAAE,OAAe;IACxD,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,aAAa,KAAK,IAAI,EAAE;QAC1B,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACpD,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,UAAU,KAAK,IAAI,EAAE;YACvB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;gBACjC,SAAS,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACvC,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;gBACzB,IAAI,SAAS,KAAK,IAAI,EAAE;oBACtB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC7B;qBAAM,IAAI,IAAI,KAAK,IAAI,EAAE;oBACxB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAClB;YACH,CAAC,CAAC,CAAC;YACH,IAAI,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;aAC/B;SACF;QACD,MAAM,QAAQ,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,QAAQ,KAAK,IAAI,EAAE;YACrB,SAAS,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;SAC1C;QACD,MAAM,QAAQ,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,QAAQ,KAAK,IAAI,EAAE;YACrB,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;SAC5B;KACF;IAED,OAAO;QACL,WAAW,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClD,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CACZ,MAAc,EACd,QAAuB,IAAI,EAC3B,IAAI,GAAG,CAAC;IAER,MAAM,KAAK,GAAW,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAClD,MAAM,IAAI,GAAW,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACrD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE;QACvC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACb;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAmB;IAC7C,MAAM,aAAa,GAA4B,EAAE,CAAC;IAClD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACjD,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;YAClE,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;gBAChC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;aACvC;SACF;KACF;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAUD,SAAS,2BAA2B,CAClC,OAAgB,EAChB,cAAsB;IAEtB,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,KAAK,MAAM,SAAS,IAAI,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACjD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,eAAe,CAC9B,OAAO,EACP,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CACnD,CAAC;QACF,IAAI,QAAQ,EAAE;YACZ,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC9B;aAAM;YACL,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC9B;KACF;IAED,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7E,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,sDAAQ,EAAE,IAAI,EAAE,EAAE;QAC3C,WAAW,CAAC,IAAI,CACd,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAClE,CAAC;KACH;IAED,KAAK,MAAM,UAAU,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE;QACvD,MAAM,QAAQ,GAAG,UAAU,KAAK,aAAa,CAAC;QAC9C,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;YACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YACzE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,WAAW,GACf,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;oBAC7B,CAAC,CAAC,QAAQ,CAAC,WAAW;oBACtB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClC,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE;oBACnC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACrD;aACF;SACF;KACF;IACD,OAAO,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACzC,CAAC;AAGM,SAAS,4BAA4B,CAC1C,OAAgB,EAChB,QAAkB;IAElB,IAAI,aAAa,GAA4B,EAAE,CAAC;IAGhD,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAC3D,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACvE,IAAI,gBAAgB,KAAK,IAAI,EAAE;YAC7B,SAAS;SACV;QACD,MAAM,gBAAgB,GAAG,aAAa,CAAC;QACvC,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,EAAE,CACvE,gBAAgB,CAAC,IAAI,CACnB,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,EAAE,CAC1B,YAAY,KAAK,YAAY,IAAI,OAAO,KAAK,OAAO,CACvD,CACF,CAAC;QAGF,aAAa,GAAG,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC;KAC7E;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa,EAAE,aAAuB;IAC/D,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,IAAI,CAAC,KAAK,CAAC,EAAE;YACX,WAAW,IAAI,GAAG,CAAC;SACpB;QAED,WAAW,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,WAAW,IAAI,GAAG,CAAC;QACnB,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,WAAW,GAAG,CAAC;AAC5B,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAe,EAAE,UAAmB;IAC7D,IAAI,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,IAAI,UAAU,EAAE;QACd,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;KACrD;IAED,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACtC,CAAC;AAED,SAAS,mBAAmB,CAC1B,aAAuB,EACvB,KAAe,EACf,UAAmB;IAEnB,IAAI,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,IAAI,UAAU,EAAE;QACd,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KAC5C;IACD,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACzD,OAAO,KAAK,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC;AACzD,CAAC;AAEM,SAAS,yBAAyB,CACvC,KAAa,EACb,KAAe,EACf,aAAuB,EACvB,UAAmB;IAEnB,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,mBAAmB,CAAC,aAAa,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC5E,OAAO,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,KAAK,WAAW,IAAI,WAAW,IAAI,WAAW,IAAI,aAAa,IAAI,CAAC;AAC9H,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,KAAuB,EAAE,EAAE,mBAClD,8BAAK,CAAC,CAAC,CAAC,mCAAI,KAAK,CAAC,CAAC,CAAC,mCAAI,KAAK,CAAC,CAAC,CAAC,mCAAI,IAAI,IAAC;AAE3C,MAAM,eAAe,GAAG,CAAC,KAAuB,EAAE,EAAE,mBAClD,8BAAK,CAAC,CAAC,CAAC,mCAAI,KAAK,CAAC,CAAC,CAAC,mCAAI,KAAK,CAAC,CAAC,CAAC,mCAAI,IAAI,IAAC;AAE3C,MAAM,iBAAiB,GAAG,CAAC,KAAuB,EAAE,EAAE;;IACpD,MAAM,IAAI,GAAG,WAAK,CAAC,CAAC,CAAC,0CAAE,IAAI,EAAE,CAAC;IAC9B,IAAI,kEAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;QAC3C,OAAO,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC;KACrB;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACtQkC;AACG;AACK;AACE;AAczB;AAC0B;AAE/C,MAAM,YAAY,GAAG,8CAAO,CAAC,oBAAoB,EAAE,EAAgB,CAAC,CAAC;AACrE,MAAM,UAAU,GAA0B,IAAI,GAAG,EAAoB,CAAC;AACtE,iEAAe,YAAY,EAAC;AAE5B,SAAS,oBAAoB,CAC3B,KAAwB,EACxB,MAAkB,EAClB,QAAsB,EACtB,OAAgB,EAChB,QAAiB;IAEjB,MAAM,OAAO,GAAG,0DAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,WAAW,CAAC,CAAC;YAChB,KAAK,CAAC,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxB,MAAM;SACP;QAED,KAAK,UAAU,CAAC,CAAC;YACf,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAE/D,IAAI,CAAC,OAAO,EAAE;gBACZ,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBACnD,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,WAAW,EAAE;wBAC1C,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;qBAC7B;iBACF;aACF;YAED,MAAM;SACP;QAED,KAAK,gBAAgB,CAAC,CAAC;YACrB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC/B,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YACH,MAAM;SACP;QAED,KAAK,aAAa,CAAC,CAAC;YAElB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;YAC5C,MAAM;SACP;QAED,KAAK,UAAU,CAAC,CAAC;YAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;aACxB;YAGD,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE;gBAE/C,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,WAAW,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE;oBACrE,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;wBACnC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;iBACJ;gBAED,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBACnC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;wBACzB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wBACrB,IAAI;qBACL,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,MAAM;SACP;QAED,OAAO,CAAC,CAAC;YACP,qDAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM;SACP;KACF;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IAQnC,MAAM,MAAM,GAAG,mCAAmC,CAAC;IACnD,MAAM,QAAQ,GAAG,EAAE,CAAC;IAEpB,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,KAAK,KAAK,IAAI,EAAE;QACrB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YAC1B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAChC;aAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YACjC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAChC;aAAM;YACL,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAChC;QACD,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,yBAAyB,GAAG,CAAC,QAAkB,EAAE,QAAkB,EAAE,EAAE,CAC3E,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;AAElE,SAAS,YAAY,CAAC,OAAgB;;IACpC,MAAM,IAAI,GAAa,gBAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC9E,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,IAAc;IAYrC,MAAM,OAAO,GAAuB,IAAI,CAAC;IACzC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;IAClB,OAAO,OAAO,CAAC;AACjB,CAAC;AAEM,SAAS,SAAS,CAAC,KAAe,EAAE,KAAe;IACxD,OAAO,sDAAK,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,CAAC;AAEM,SAAS,cAAc,CAAC,OAAgB,EAAE,IAAc;IAC7D,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAClE,CAAC;AAEM,SAAS,SAAS,CAAC,OAAgB,EAAE,IAAY;IAGtD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,uEAAyC,CAC7D,OAAO,EACP,QAAQ,CACT,CAAC;IACF,MAAM,SAAS,GAAG,yBAAyB,CAAC,wDAAgB,EAAE,QAAQ,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,yBAAyB,CAAC,sDAAc,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,yBAAyB,CAAC,yDAAiB,EAAE,QAAQ,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,yBAAyB,CAAC,uDAAe,EAAE,QAAQ,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,yBAAyB,CAAC,mDAAW,EAAE,QAAQ,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,yBAAyB,CAAC,qDAAa,EAAE,QAAQ,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,yBAAyB,CAAC,mDAAW,EAAE,QAAQ,CAAC,CAAC;IAE/D,OAAO;QACL,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,KAAK;QACL,OAAO;QACP,KAAK;QACL,IAAI;KACL,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;AC1L+C;AACV;AAG/B,SAAS,aAAa,CAAC,KAAgB;IAC5C,OAAO,yDAAqB,CAC1B,KAAK,CAAC,KAAK,CAAC,WAAW,EACvB,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAC/B,CAAC;AACJ,CAAC;AAEM,SAAS,mBAAmB,CAAC,KAAgB;IAClD,IAAI,KAAK,CAAC,KAAK,CAAC,gBAAgB,KAAK,IAAI,EAAE;QACzC,OAAO,IAAI,CAAC;KACb;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;IACtE,OAAO,yDAAqB,CAAC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC7E,CAAC;AAEM,SAAS,yBAAyB,CACvC,WAA0B,EAC1B,oBAAoD;IAEpD,MAAM,WAAW,GAAG,uBAAuB,CACzC,WAAW,EACX,oBAAoB,CACrB,CAAC;IAEF,OAAO,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,4DAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;AACpE,CAAC;AAED,SAAS,uBAAuB,CAC9B,WAA0B,EAC1B,oBAAoD;IAEpD,IAAI,WAAW,KAAK,IAAI,EAAE;QACxB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,WAAW,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACtD,IAAI,WAAW,KAAK,SAAS,EAAE;QAC7B,MAAM,IAAI,KAAK,CACb,+BAA+B,WAAW,iBAAiB,CAC5D,CAAC;KACH;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;;;;;;;;;;;;;;;;;;;AChDgD;AACW;AAIV;AAElD,MAAM,aAAa,GAAG,8CAAO,CAAC,qBAAqB,EAAE,EAAiB,CAAC,CAAC;AACxE,iEAAe,aAAa,EAAC;AAE7B,SAAS,qBAAqB,CAC5B,KAAyB,EACzB,MAAoB,EACpB,QAAsB;IAGtB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;QAClD,MAAM,IAAI,KAAK,CACb,MAAM,MAAM,CAAC,IAAI,sDAAsD,CACxE,CAAC;KACH;IAED,QAAQ,MAAM,CAAC,IAAI,EAAE;QAKnB,KAAK,aAAa,CAAC,CAAC;YAClB,IAAI,KAAK,CAAC,MAAM,EAAE;gBAChB,MAAM,IAAI,KAAK,CACb,MAAM,MAAM,CAAC,IAAI,0DAA0D,CAC5E,CAAC;aACH;YACD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YAEpB,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE;gBACtC,MAAM,IAAI,KAAK,CACb,QAAQ,MAAM,CAAC,IAAI,oCAAoC,CACxD,CAAC;aACH;YACD,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,CAAC,IAAI,mCAAmC,CAAC,CAAC;aACzE;YACD,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAE/B,MAAM;SACP;QAED,KAAK,YAAY,CAAC,CAAC;YACjB,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;YACrB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;YAElB,MAAM;SACP;QAED,KAAK,eAAe,CAAC,CAAC;YACpB,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE;gBACtC,MAAM,IAAI,KAAK,CACb,QAAQ,MAAM,CAAC,IAAI,oCAAoC,CACxD,CAAC;aACH;YACD,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,CAAC,IAAI,mCAAmC,CAAC,CAAC;aACzE;YACD,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAE/B,MAAM;SACP;QAED,KAAK,qBAAqB,CAAC,CAAC;YAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;gBACzB,MAAM,IAAI,KAAK,CACb,MAAM,MAAM,CAAC,IAAI,6DAA6D,CAC/E,CAAC;aACH;YACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE;gBACtC,MAAM,IAAI,KAAK,CACb,QAAQ,MAAM,CAAC,IAAI,oCAAoC,CACxD,CAAC;aACH;YACD,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,CAAC,IAAI,mCAAmC,CAAC,CAAC;aACzE;YACD,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAEtC,IAAI,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE;gBAClC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;aAChC;YAED,MAAM;SACP;QAED,KAAK,yBAAyB,CAAC,CAAC;YAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;gBACzB,MAAM,IAAI,KAAK,CACb,MAAM,MAAM,CAAC,IAAI,6DAA6D,CAC/E,CAAC;aACH;YACD,KAAK,CAAC,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;YAI1D,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE;gBAC3D,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;aACtC;YAED,MAAM;SACP;QAED,KAAK,cAAc,CAAC,CAAC;YACnB,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;gBACzB,MAAM,IAAI,KAAK,CACb,MAAM,MAAM,CAAC,IAAI,6DAA6D,CAC/E,CAAC;aACH;YACD,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;YAClC,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,WAAW,CAAC;YAC7D,MAAM;SACP;QAMD,KAAK,WAAW,CAAC,CAAC;YAChB,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE;gBAC/B,MAAM,IAAI,KAAK,CACb,MAAM,MAAM,CAAC,IAAI,6DAA6D,CAC/E,CAAC;aACH;YACD,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;gBAEzB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;gBACrC,KAAK,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;aACvC;YAED,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5C,KAAK,CAAC,YAAY,GAAG;gBACnB,OAAO;gBACP,MAAM,EAAE,CAAC,OAAO,CAAC;gBACjB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,wBAAwB,EAAE,EAAE;gBAC5B,iBAAiB,EAAE,EAAE;aACtB,CAAC;YAEF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE;gBAC9B,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;aAChC;YAED,MAAM;SACP;QAED,KAAK,SAAS,CAAC,CAAC;YACd,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE;gBAC/B,MAAM,IAAI,KAAK,CACb,MAAM,MAAM,CAAC,IAAI,yDAAyD,CAC3E,CAAC;aACH;YAED,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;YAC1B,MAAM;SACP;QAED,KAAK,UAAU,CAAC,CAAC;YACf,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE;gBAC/B,MAAM,IAAI,KAAK,CACb,MAAM,MAAM,CAAC,IAAI,yDAAyD,CAC3E,CAAC;aACH;YAED,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;YAC7C,UAAU,CAAC,GAAG,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACpD,KAAK,CAAC,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC;YACvC,MAAM;SACP;QAED,KAAK,oBAAoB,CAAC,CAAC;YACzB,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE;gBAC/B,MAAM,IAAI,KAAK,CACb,MAAM,MAAM,CAAC,IAAI,yDAAyD,CAC3E,CAAC;aACH;YAED,KAAK,CAAC,YAAY,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;YAC1D,IAAI,MAAM,CAAC,cAAc,EAAE;gBAEzB,MAAM,OAAO,GAAG,+CAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAE,CAAC;gBAChE,KAAK,CAAC,YAAY,CAAC,iBAAiB,GAAG,EAAE,CAAC;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAGvC,IACE,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS;wBACxB,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI;wBACxB,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,EAC7B;wBACA,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;qBACtD;iBACF;aACF;iBAAM;gBAEL,+CAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,wBAAwB,CAAE,CAAC,OAAO,CAC5D,CAAC,KAAK,EAAE,EAAE;oBACR,KAAK,CAAC,YAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG;wBAC7C,IAAI,EAAE,IAAI;wBACV,SAAS,EAAE,IAAI;qBAChB,CAAC;gBACJ,CAAC,CACF,CAAC;aACH;YAED,MAAM;SACP;QAED,KAAK,YAAY,CAAC,CAAC;YACjB,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE;gBAC/B,MAAM,IAAI,KAAK,CACb,MAAM,MAAM,CAAC,IAAI,yDAAyD,CAC3E,CAAC;aACH;YAED,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3C,MAAM;SACP;QAED,OAAO,CAAC,CAAC;YACP,qDAAc,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM;SACP;KACF;AACH,CAAC;AAED,SAAS,UAAU,CACjB,KAAyB,EACzB,MAAmC,EACnC,QAAsB;IAEtB,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE;QAC/B,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;KACH;IAID,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;QACrD,IAAI,SAAS,GAAG,qDAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,IAAI,GAAG,qDAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;YAE1B,KAAK,CAAC,YAAY,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/D,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE;gBAEtC,SAAS,GAAG,IAAI,CAAC;gBACjB,IAAI,GAAG,IAAI,CAAC;aACb;SACF;QAGD,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;YACnD,SAAS;YACT,IAAI;SACL,CAAC;KACH;IAGD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;QAC3B,OAAO;KACR;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3D,MAAM,QAAQ,GAAG,0DAAgB,CAC/B,KAAK,CAAC,YAAY,CAAC,OAAO,EAC1B,MAAM,EACN,IAAI,EACJ,QAAQ,CACT,CAAC;IACF,KAAK,CAAC,YAAY,CAAC,OAAO,GAAG,QAAQ,CAAC;IAEtC,IAAI,UAAU,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE;QAExC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC1C;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;AC7R2D;AACX;AAMC;AACc;AACtB;AACE;AACR;AAEpC,MAAM,YAAY,GAAG,8CAAO,CAAC,oBAAoB,EAAE,EAAW,CAAC,CAAC;AAChE,iEAAe,YAAY,EAAC;AAE5B,SAAS,oBAAoB,CAAC,KAAmB,EAAE,MAAc;IAC/D,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,gBAAgB,CAAC,CAAC;YAErB,MAAM,YAAY,GAAG,wEAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEtD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,iBAAiB,CACxC,MAAM,CAAC,OAAO,EACd,YAAY,EACZ,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,QAAQ,CACf,CAAC;YAEF,KAAK,CAAC,WAAW,GAAG,gDAAS,CAAC,IAAI,CAAC,CAAC;YAGpC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;YAGvC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAE5B,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,gDAAS,CAAC,MAAM,CAAC,CAAC;YACxC,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YACtC,MAAM;SACP;QAED,KAAK,gBAAgB,CAAC,CAAC;YAGrB,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;YAG7C,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,gDAAS,CAC9B,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,CACvD,CAAC;YAEF,MAAM;SACP;QAED,KAAK,mBAAmB,CAAC,CAAC;YACxB,IAAI,KAAK,CAAC,OAAO,EAAE;gBAGjB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;gBAEtB,MAAM,YAAY,GAAG,wEAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACtD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,iBAAiB,CACxC,KAAK,CAAC,MAAM,CAAC,OAAO,EACpB,YAAY,EACZ,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,QAAQ,CACf,CAAC;gBAEF,KAAK,CAAC,WAAW,GAAG,gDAAS,CAAC,IAAI,CAAC,CAAC;gBACpC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;gBACvC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,gDAAS,CAAC,MAAM,CAAC,CAAC;aACzC;YAID,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;YAGjD,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YAQ5C,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YAC3C,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;gBAC3C,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;aACH;YACD,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;gBACtC,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;aACH;YACD,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YAC9D,IAAI,CAAC,cAAc,EAAE;gBACnB,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC3B,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,kBAAkB,CAAC;aAC3C;YAGD,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG;gBACpB,OAAO,EAAE,kBAAkB;gBAC3B,iBAAiB,EAAE,CAAC,cAAc;gBAClC,MAAM,EAAE,MAAM,CAAC,kBAAkB;gBACjC,QAAQ,EAAE,MAAM,CAAC,kBAAkB,KAAK,KAAK,CAAC,QAAQ,CAAC,WAAW;aACnE,CAAC;YAEF,MAAM;SACP;QAED,KAAK,MAAM,CAAC,CAAC;YACX,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;YAC/C,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;YAEjD,IAAI,MAAM,CAAC,UAAU,EAAE;gBACrB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;aACvB;YAED,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;gBACtB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACtB,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC3B,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;gBACzB,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;gBAE5C,IAAI,MAAM,CAAC,YAAY,EAAE;oBAEvB,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC;oBAClD,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG;wBACpB,OAAO,EAAE,MAAM,CAAC,mBAAmB;wBACnC,iBAAiB,EAAE,IAAI;wBACvB,MAAM,EAAE,MAAM,CAAC,kBAAkB;wBACjC,QAAQ,EAAE,MAAM,CAAC,kBAAkB,KAAK,KAAK,CAAC,QAAQ,CAAC,WAAW;qBACnE,CAAC;iBACH;aACF;YAED,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC1B,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC;aACnD;YAED,MAAM;SACP;QAED,KAAK,aAAa,CAAC;QACnB,KAAK,YAAY,CAAC;QAClB,KAAK,eAAe,CAAC;QACrB,KAAK,qBAAqB,CAAC;QAC3B,KAAK,yBAAyB,CAAC;QAC/B,KAAK,cAAc,CAAC;QACpB,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS,CAAC;QACf,KAAK,YAAY,CAAC;QAClB,KAAK,oBAAoB,CAAC,CAAC;YACzB,KAAK,CAAC,MAAM,GAAG,uDAAa,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnE,MAAM;SACP;QAED,KAAK,WAAW,CAAC,CAAC;YAChB,KAAK,CAAC,EAAE,GAAG,mDAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACvC,MAAM;SACP;QACD,KAAK,WAAW,CAAC,CAAC;YAChB,KAAK,CAAC,EAAE,GAAG,mDAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACvC,MAAM;SACP;QAED,KAAK,SAAS,CAAC,CAAC;YACd,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE;gBAI3B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;aACtB;iBAAM,IAEL,CAAC,KAAK,CAAC,QAAQ;gBAEf,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB;oBACvC,KAAK,CAAC,QAAQ,CAAC,cAAc,EAC/B;gBACA,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;aAChC;YAED,MAAM;SACP;QAED,KAAK,OAAO,CAAC,CAAC;YACZ,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACnC,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YAG7C,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;aAC5B;YAED,MAAM;SACP;QAED,KAAK,YAAY,CAAC,CAAC;YACjB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACnC,MAAM;SACP;QAED,KAAK,YAAY,CAAC,CAAC;YACjB,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YACrC,MAAM;SACP;QAED,KAAK,UAAU,CAAC;QAChB,KAAK,aAAa,CAAC,CAAC;YAClB,KAAK,CAAC,KAAK,GAAG,sDAAY,CACxB,+CAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EACrB,MAAM,EACN,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,QAAQ,CACf,CAAC;YACF,MAAM;SACP;QAED,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,gBAAgB,CAAC,CAAC;YACrB,KAAK,CAAC,KAAK,GAAG,sDAAY,CACxB,+CAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EACrB,MAAM,EACN,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,QAAQ,CACf,CAAC;YAEF,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAEpC,KAAK,CAAC,WAAW,GAAG,0DAAgB,CAClC,+CAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,EAC3B,MAAM,EACN,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,KAAK,CAAC,QAAQ,CACrB,CAAC;aACH;YACD,MAAM;SACP;QAED,OAAO,CAAC,CAAC;YAEP,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;YACvD,KAAK,CAAC,WAAW,GAAG,0DAAgB,CAClC,+CAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,EAC3B,MAAM,EACN,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,KAAK,CAAC,QAAQ,CACrB,CAAC;YAGF,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAE5B,IACE,uDAAwB,CACtB,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAC9B,eAAe,EACf,MAAM,CACP,EACD;gBACA,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,OAAQ,CAAC;oBAClD,KAAK,CAAC,WAAW,CAAC;aACrB;YAGD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAElC,MAAM;SACP;KACF;IAGD,KAAK,CAAC,YAAY,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AAID,SAAS,iBAAiB,CACxB,OAAqB,EACrB,YAAuB,EACvB,OAAgB,EAChB,QAAsB;IAEtB,MAAM,MAAM,GAAgB,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAY,EAAE,CAAa,EAAE,EAAE;QAC1D,MAAM,SAAS,GAAG,0DAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE5D,IAAI,uDAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE;YACvE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAQ,CAAC,GAAG,SAAS,CAAC;SAC7C;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,YAAY,CAAC,CAAC;IACjB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAOD,SAAS,oBAAoB,CAAC,KAAmB;IAC/C,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE;QACpD,IAAI,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE;YAEpC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG;gBACxB,SAAS,EAAE,eAAe,CAAC,SAAS;gBACpC,IAAI,EAAE,eAAe,CAAC,IAAI;aAC3B,CAAC;SACH;aAAM;YAEL,MAAM,oBAAoB,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACrD,IAAI,oBAAoB,CAAC,SAAS,KAAK,IAAI,EAAE;gBAC3C,oBAAoB,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC;aAC5D;YACD,IAAI,oBAAoB,CAAC,IAAI,KAAK,IAAI,EAAE;gBACtC,oBAAoB,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;aAClD;SACF;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAmB,EAAE,MAAc;IAC5D,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE;QAE/B,OAAO,IAAI,CAAC;KACb;IAED,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;QACvB,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI,EAAE;YAEtC,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrE,IAAI,kBAAkB,KAAK,SAAS,EAAE;gBACpC,MAAM,IAAI,KAAK,CACb,gDAAgD,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CACvE,CAAC;aACH;YACD,OAAO,kBAAkB,CAAC;SAC3B;QAGD,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,KAAK,SAAS,EAAE;YACnD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACjE;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC;KAC1C;IAID,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;QACjC,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAC5D;IAGD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE;QACnC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;KACpD;IACD,OAAO,KAAK,CAAC,WAAW,CAAC;AAC3B,CAAC;AAED,MAAM,wBAAwB,GAAG,CAC/B,KAAY,EACZ,cAAuC,EACvC,EAAE,CACF,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IAC7B,IACE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;QAChE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EACrC;QACA,OAAO;YACL,GAAG,CAAC;YACJ,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAU;YAC7C,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAK;SACpC,CAAC;KACH;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;ACpYkC;AACO;AACsB;AACvB;AAMH;AAE1C,MAAM,YAAY,GAAG,8CAAO,CAAC,oBAAoB,EAAE,EAAgB,CAAC,CAAC;AACrE,iEAAe,YAAY,EAAC;AAE5B,SAAS,oBAAoB,CAC3B,KAAwB,EACxB,MAAkB,EAClB,aAAwB,EACxB,YAAuB,EACvB,OAAgB,EAChB,QAAsB,EACtB,QAA2B;IAE3B,MAAM,OAAO,GAAG,0DAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzD,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,MAAM,CAAC,CAAC;YAEX,KAAK,CAAC,kBAAkB,IAAI,CAAC,CAAC;YAE9B,MAAM;SACP;QAED,KAAK,QAAQ,CAAC,CAAC;YAKb,IAAI,CAAC,iEAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;gBACvD,KAAK,CAAC,kBAAkB,IAAI,gEAA4B,CAAC,OAAO,CAAC,CAAC;aACnE;YAED,MAAM;SACP;QAED,KAAK,MAAM,CAAC,CAAC;YACX,IACE,CAAC,iEAA6B,CAAC,OAAO,CAAC;gBACvC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC;gBACtD,aAAa,CAAC,UAAU,KAAK,YAAY,CAAC,UAAU,EACpD;gBAGA,KAAK,CAAC,kBAAkB,IAAI,gEAA4B,CAAC,OAAO,CAAC,CAAC;aACnE;YAED,MAAM;SACP;QAED,OAAO,CAAC,CAAC;YACP,MAAM;SACP;KACF;IAED,MAAM,eAAe,GAAG,2DAAuB,CAC7C,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,oBAAoB,CAC9B,CAAC;IAGF,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;QACvD,KAAK,CAAC,gBAAgB,GAAG,6DAA8B,CACrD,YAAY,CAAC,IAAI,EACjB,YAAY,CAAC,mBAAmB,EAChC,OAAO,CACR,CAAC;QACF,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KACpE;IAGD,MAAM,KAAK,GACT,iEAA6B,CAAC,OAAO,CAAC,IAAI,OAAO;QAC/C,CAAC,CAAC,YAAY,CAAC,uBAAuB;QACtC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC;IACzB,KAAK,CAAC,IAAI,GAAG,8CAAe,CAC1B,KAAK,EACL,YAAY,CAAC,uBAAuB,EACpC,KAAK,CAAC,QAAQ,EACd,eAAe,EAEf,YAAY,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI,CAC9C,CAAC;IACF,KAAK,CAAC,QAAQ,GAAG,kDAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAG9E,KAAK,CAAC,WAAW,GAAG,qDAAsB,CACxC,YAAY,CAAC,IAAI,EACjB,YAAY,CAAC,UAAU,EACvB,YAAY,CAAC,mBAAmB,EAChC,OAAO,EACP,KAAK,CAAC,QAAQ,EACd,OAAO,CACR,CAAC;IACF,IAAI,QAAQ,KAAK,IAAI,EAAE;QACrB,KAAK,CAAC,kBAAkB,GAAG,4DAA6B,CACtD,YAAY,CAAC,IAAI,EACjB,YAAY,CAAC,UAAU,EACvB,YAAY,CAAC,mBAAmB,EAChC,OAAO,EACP,QAAQ,CACT,CAAC;KACH;SAAM;QACL,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC;KACjC;IAGD,MAAM,aAAa,GAAa,KAAK,CAAC,IAAI,CACxC,YAAY,CAAC,UAAU,EACvB,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAChC,CAAC;IACF,KAAK,CAAC,gBAAgB,GAAG,0DAA2B,CAClD,KAAK,EACL,aAAa,EACb,KAAK,CAAC,gBAAgB,EACtB,YAAY,CAAC,uBAAuB,EACpC,eAAe,EACf,gEAA4B,CAAC,OAAO,CAAC,EACrC,6DAAyB,CAAC,OAAO,CAAC,EAClC,iEAA6B,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAChE,CAAC;IAGF,KAAK,CAAC,4BAA4B;QAChC,YAAY,CAAC,uBAAuB,IAAI,CAAC;YACzC,KAAK,CAAC,gBAAgB,KAAK,IAAI;YAC/B,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC;IAG7B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;QAC7B,KAAK,CAAC,aAAa,GAAG,uDAAwB,CAC5C,MAAM,CAAC,KAAK,EACZ,YAAY,EACZ,OAAO,CACR,CAAC;KACH;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;QAC3D,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;KAC5B;IAGD,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;IAG1B,KAAK,CAAC,sBAAsB,GAAG,sDAAY,CACzC,KAAK,EACL,MAAM,EACN,aAAa,EACb,YAAY,EACZ,QAAQ,CACT,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;AClKsC;AACO;AACT;AACM;AAEM;AAIY;AAE7D,MAAM,WAAW,GAAG,8CAAO,CAAC,mBAAmB,EAAE,EAAe,CAAC,CAAC;AAClE,iEAAe,WAAW,EAAC;AAE3B,SAAS,mBAAmB,CAC1B,IAAsB,EACtB,MAAkB,EAClB,YAAuB,EACvB,QAAsB;IAEtB,MAAM,OAAO,GAAG,0DAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,0EAAyB,CAC7C,IAAI,CAAC,kBAAkB,EACvB,QAAQ,CAAC,oBAAoB,CAC9B,CAAC;IAEF,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,MAAM,CAAC,CAAC;YACX,IAAI,CAAC,8BAA8B,IAAI,CAAC,CAAC;YAEzC,IAAI,YAAY,CAAC,uBAAuB,KAAK,CAAC,EAAE;gBAC9C,IAAI,CAAC,OAAQ,IAAI,CAAC,CAAC;gBACnB,QAAQ,CACN,IAAI,EACJ,YAAY,CAAC,uBAAuB,EACpC,aAAa,EACb,QAAQ,CACT,CAAC;aACH;YAED,MAAM;SACP;QAED,KAAK,SAAS,CAAC,CAAC;YACd,IAAI,CAAC,8BAA8B,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAClB,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC;aAClC;YAED,IAAI,YAAY,CAAC,uBAAuB,KAAK,CAAC,EAAE;gBAC9C,IAAI,CAAC,OAAQ,IAAI,CAAC,CAAC;gBACnB,IACE,+DAAgC,CAC9B,IAAI,CAAC,8BAA8B,EACnC,IAAI,CAAC,sBAAsB,EAC3B,aAAa,EACb,YAAY,CAAC,UAAU,EACvB,OAAO,CACR,EACD;oBACA,QAAQ,CACN,IAAI,EACJ,YAAY,CAAC,uBAAuB,EACpC,aAAa,EACb,QAAQ,CACT,CAAC;iBACH;aACF;YAED,MAAM;SACP;QAED,KAAK,MAAM,CAAC,CAAC;YACX,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC;YAE7B,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;gBACzB,MAAM,IAAI,KAAK,CACb,MAAM,MAAM,CAAC,IAAI,+DAA+D,CACjF,CAAC;aACH;YACD,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;YAElB,IACE,+DAAgC,CAAC,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,EACxE;gBACA,QAAQ,CACN,IAAI,EACJ,YAAY,CAAC,uBAAuB,EACpC,aAAa,EACb,QAAQ,CACT,CAAC;aACH;YACD,MAAM;SACP;QAED,KAAK,MAAM,CAAC,CAAC;YACX,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;gBAEzB,IACE,mEAA+B,CAC7B,YAAY,CAAC,uBAAuB,EACpC,QAAQ,CACT,EACD;oBACA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;iBAClB;aACF;iBAAM;gBAGL,IAAI,IAAI,CAAC,8BAA8B,GAAG,CAAC,EAAE;oBAC3C,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;iBACnB;gBAED,IACE,+DAAgC,CAC9B,IAAI,CAAC,8BAA8B,EACnC,IAAI,CAAC,sBAAsB,EAC3B,aAAa,EACb,YAAY,CAAC,UAAU,EACvB,OAAO,CACR,EACD;oBACA,QAAQ,CACN,IAAI,EACJ,YAAY,CAAC,uBAAuB,EACpC,aAAa,EACb,QAAQ,CACT,CAAC;iBACH;aACF;YAED,MAAM;SACP;QAED,KAAK,UAAU,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;gBACzB,MAAM,IAAI,KAAK,CACb,MAAM,MAAM,CAAC,IAAI,+DAA+D,CACjF,CAAC;aACH;YAID,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAS/B,IACE,MAAM,CAAC,YAAY,KAAK,gEAAoB;gBAC5C,MAAM,CAAC,YAAY,KAAK,mEAAuB;gBAC/C,MAAM,CAAC,YAAY,KAAK,oEAAwB,EAChD;gBACA,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;aACnB;YAED,MAAM;SACP;QAED,KAAK,aAAa,CAAC,CAAC;YAClB,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;gBACzB,MAAM,IAAI,KAAK,CACb,MAAM,MAAM,CAAC,IAAI,+DAA+D,CACjF,CAAC;aACH;YAKD,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;YAClB,MAAM;SACP;QAED,OAAO,CAAC,CAAC;YACP,MAAM;SACP;KACF;AACH,CAAC;AAED,SAAS,QAAQ,CACf,KAAuB,EACvB,QAAgB,EAChB,aAAqB,EACrB,QAAsB;IAEtB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAEnB,IAAI,8DAA+B,CAAC,aAAa,CAAC,EAAE;QAClD,KAAK,CAAC,iBAAiB,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;KACpD;IAED,KAAK,CAAC,kBAAkB,GAAG,2DAA4B,CACrD,KAAK,CAAC,kBAAkB,EACxB,QAAQ,CAAC,OAAO,CAAC,UAAU,EAC3B,KAAK,CAAC,iBAAiB,CACxB,CAAC;IAEF,IAAI,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE;QAC/C,KAAK,CAAC,UAAU,GAAG,mDAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;KAClE;IAED,KAAK,CAAC,8BAA8B,GAAG,CAAC,CAAC;IACzC,KAAK,CAAC,sBAAsB,GAAG,CAAC,CAAC;IACjC,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC;AAC/B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/MyD;AAA7B;AACa;AAArB;AACuB;AAAtB;AACgC;AAA3B;AACe;AAArB;AACqB;AAArB;AACiC;AAA3B;AAC2B;AAA3B;AACqB;AAAxB;AACoB;AAAtB;AACoB;AAArB;AACqB;AAArB;AAC2B;AAAxB;AACuC;AAApC;;;;;;;;;;;;;;;;;;ACdgC;AASpD,SAAS,OAAO,CAAC,WAAmB,EAAE,KAAa;IACxD,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,iBAAqC,CAAC;QAC1C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC9C,IAAI,2EAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE;gBACxD,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,CAAC,IAAI,wBAAwB,WAAW,mCAAmC,CAC1G,CAAC;aACH;YAED,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC;SACvC;aAAM;YAEL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAChD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBACrD,IACE,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACnC,2EAA0B,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAC7C;oBACA,iBAAiB,GAAG,UAAU,CAAC;oBAC/B,MAAM;iBACP;aACF;SACF;QACD,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACnC,MAAM,IAAI,KAAK,CACb,2CAA2C,IAAI,CAAC,IAAI,wBAAwB,WAAW,IAAI,CAC5F,CAAC;SACH;QACD,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KACvC;IAGD,MAAM,mBAAmB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IACxD,IAAI,mBAAmB,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE;QACvD,MAAM,IAAI,KAAK,CACb,gBAAgB,WAAW,+CAA+C,aAAa,CAAC,QAAQ,EAAE,EAAE,CACrG,CAAC;KACH;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAEM,SAAS,GAAG,CAAC,QAAgB,EAAE,OAAgB;IACpD,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;QACZ,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;KACjC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5D0C;AAEE;AACQ;AAGjB;AACM;AACe;AAElD,SAAS,IAAI,CAClB,SAAiB,EACjB,IAAY,EACZ,OAAgB;IAEhB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC;IACtD,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/B,IAAI,IAAI,KAAK,6DAAe,EAAE;QAC5B,QAAQ,GAAG,OAAO,CAAC;KACpB;IACD,OAAO,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;AACnC,CAAC;AAEM,MAAM,OAAO,GAAG,CAAC,IAAe,EAAW,EAAE,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAExE,MAAM,QAAQ,GAAG,CAAC,IAAe,EAAW,EAAE,CACnD,IAAI,CAAC,QAAQ,KAAK,WAAW,CAAC;AAEzB,MAAM,WAAW,GAAG,CAAC,IAAe,EAAW,EAAE,CACtD,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;AAEvB,MAAM,cAAc,GAAG,CAAC,IAAe,EAAW,EAAE,CACzD,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC;AAK7B,SAAS,eAAe,CAC7B,SAAiB,EACjB,IAAY,EACZ,IAA0B,EAC1B,UAA4C,EAC5C,mBAA8C,EAC9C,OAAgB;IAGhB,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;QACpE,OAAO,KAAK,CAAC;KACd;IAGD,IAAI,sDAA6B,CAAC,OAAO,CAAC,EAAE;QAC1C,OAAO,iEAA+B,CACpC,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,mBAAmB,EACnB,OAAO,CACR,CAAC;KACH;IAED,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CACrC,kDAAyB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CACzC,kDAAyB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAC9C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAIlC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;QAC7B,IAAI,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE;YAEhC,OAAO,KAAK,CAAC;SACd;KACF;IAGD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,SAAS,MAAM,CACpB,SAAiB,EACjB,IAAY,EACZ,IAA0B,EAC1B,UAA4C,EAC5C,mBAA8C,EAC9C,OAAgB;IAEhB,MAAM,mBAAmB,GAAG,eAAe,CACzC,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,mBAAmB,EACnB,OAAO,CACR,CAAC;IAEF,IAAI,mBAAmB,EAAE;QACvB,IAAI,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE;YACnE,OAAO,+DAAmB,CAAC;SAC5B;QACD,OAAO,sEAA0B,CAAC;KACnC;IACD,OAAO,4DAAgB,CAAC;AAC1B,CAAC;AAGM,SAAS,UAAU,CACxB,SAAiB,EACjB,IAAY,EACZ,IAA0B,EAC1B,mBAA8C,EAC9C,OAAgB;IAGhB,IAAI,sDAA6B,CAAC,OAAO,CAAC,EAAE;QAC1C,OAAO,4DAA0B,CAC/B,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,mBAAmB,EACnB,OAAO,CACR,CAAC;KACH;IAED,MAAM,KAAK,GAAG,kDAAyB,CACrC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EACxB,IAAI,EACJ,OAAO,CACR,CAAC;IACF,MAAM,SAAS,GAAG,kDAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACnE,OAAO,KAAK,KAAK,SAAS,GAAG,CAAC,CAAC;AACjC,CAAC;AAIM,SAAS,qBAAqB,CACnC,IAAe,EACf,IAA0B,EAC1B,UAA4C,EAC5C,mBAA8C;IAE9C,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE;QAClD,MAAM,cAAc,GAAG,6DAAyB,CAC9C,UAAU,CAAC,SAAS,CAAC,EACrB,mBAAmB,CAAC,SAAS,CAAC,EAC9B,IAAI,CACL,CAAC;QACF,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAEM,SAAS,aAAa,CAC3B,IAAe,EACf,SAAwB,EACxB,IAAmB;IAEnB,IAAI,SAAS,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;QAEvC,OAAO,IAAI,CAAC;KACb;IACD,OAAO,IAAI,CAAC,uBAAuB,CAAC,IAAI,CACtC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CACT,CAAC,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,CAC3E,CAAC;AACJ,CAAC;AAEM,SAAS,qBAAqB,CACnC,IAAe,EACf,IAA0B,EAC1B,UAA4C,EAC5C,mBAA8C,EAC9C,OAAgB;IAGhB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;QACjD,OAAO,CAAC,eAAe,CACrB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,IAAI,EACT,IAAI,EACJ,UAAU,EACV,mBAAmB,EACnB,OAAO,CACR,CAAC;KACH;IAGD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CACpD,eAAe,CACb,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,mBAAmB,EACnB,OAAO,CACR,CACF,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACzM0C;AAEO;AAER;AAGnC,SAAS,IAAI,CAClB,MAAkC,EAClC,UAAkB,EAClB,OAAgB,EAChB,iBAAiB,GAAG,KAAK;IAEzB,IAAI,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE;QACtE,OAAO,UAAU,GAAG,CAAC,CAAC;KACvB;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAkC,EAClC,UAAkB,EAClB,OAAgB,EAChB,iBAA0B;IAE1B,IAAI,yDAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;QAC9C,OAAO,KAAK,CAAC;KACd;IAED,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,MAAM,CAAC,CAAC;YAGX,OAAO,iBAAiB,IAAI,CAAC,sDAA6B,CAAC,OAAO,CAAC,CAAC;SACrE;QAED,KAAK,SAAS,CAAC,CAAC;YAGd,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;SACvB;QAED,OAAO,CAAC,CAAC;YACP,OAAO,KAAK,CAAC;SACd;KACF;AACH,CAAC;AAEM,MAAM,WAAW,GAAG,CAAC,UAAkB,EAAE,OAAgB,EAAU,EAAE,CAI1E,mDAA0B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAE7D,MAAM,aAAa,GAAG,CAC3B,kBAA0B,EAC1B,OAAgB,EACR,EAAE,CACV,mDAA0B,CAAC,OAAO,CAAC;IACjC,CAAC,CAAC,kBAAkB,GAAG,CAAC;IACxB,CAAC,CAAC,kBAAkB,CAAC;AAElB,MAAM,KAAK,GAAG,CAAC,UAAkB,EAAE,OAAgB,EAAW,EAAE,CACrE,UAAU,IAAI,WAAW,CAAC,0DAAY,EAAE,OAAO,CAAC,CAAC;AAI5C,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAU,EAAE,CAEvD,mDAA0B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAIzC,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAU,EAAE;IACpD,IAAI,sDAA6B,CAAC,OAAO,CAAC,EAAE;QAC1C,OAAO,CAAC,CAAC;KACV;IACD,OAAO,mDAA0B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC9EqE;AACb;AACjB;AACY;AAIX;AAEnC,SAAS,WAAW,CACzB,QAAkB,EAClB,SAAiB,EACjB,OAAgB,EAChB,aAAqB;IAErB,IAAI,QAAgB,CAAC;IACrB,IAAI,QAAQ,KAAK,0DAAc,EAAE;QAC/B,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;KAC/C;SAAM,IAAI,QAAQ,KAAK,yDAAa,EAAE;QACrC,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;KACjC;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;KACvC;IACD,IAAI,iDAAwB,CAAC,OAAO,CAAC,EAAE;QACrC,IAAI,QAAQ,KAAK,0DAAc,EAAE;YAC/B,QAAQ,GAAG,KAAK,CAAC;SAClB;aAAM,IAAI,QAAQ,KAAK,yDAAa,EAAE;YACrC,QAAQ,GAAG,MAAM,CAAC;SACnB;KACF;SAAM,IAAI,4CAAmB,CAAC,OAAO,CAAC,IAAI,aAAa,KAAK,SAAS,EAAE;QACtE,QAAQ,GAAG,OAAO,CAAC;KACpB;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAKM,SAAS,aAAa,CAAC,OAAgB,EAAE,OAAgB;IAC9D,IAAI,SAAS,CAAC;IACd,IAAI,OAAO,CAAC,IAAI,KAAK,0DAAc,EAAE;QACnC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,sDAAS,CAAC,SAAS,CAAC,CAAC;KAC7B;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,yDAAa,EAAE;QAClC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;QAC1B,OAAO,qDAAQ,CAAC,SAAS,CAAC,CAAC;KAC5B;IACD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;AAChF,CAAC;AAGM,SAAS,WAAW,CACzB,OAAgB,EAChB,IAAU,EACV,SAAiB,EACjB,IAAY;IAEZ,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEtC,IAAI,IAAI,CAAC,IAAI,KAAK,0DAAc,EAAE;QAChC,IAAI,OAAO,CAAC,sBAAsB,EAAE;YAClC,OAAO,KAAK,CAAC;SACd;QAED,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO,KAAK,CAAC;SACd;QAED,IAAI,IAAI,KAAK,OAAO,CAAC,WAAW,EAAE;YAChC,IAAI,OAAO,CAAC,oBAAoB,EAAE;gBAChC,OAAO,IAAI,CAAC;aACb;YACD,IAAI,OAAO,CAAC,mBAAmB,EAAE;gBAC/B,OAAO,KAAK,CAAC;aACd;SACF;QAED,IAAI,IAAI,CAAC,KAAK,EAAE;YAEd,IAAI,eAAe,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;YAC7D,IAAI,IAAI,KAAK,6DAAe,EAAE;gBAE5B,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;aACjD;YACD,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;YAChE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC;SAC3C;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACrE;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,yDAAa,EAAE;QAC/B,IAAI,OAAO,CAAC,qBAAqB,EAAE;YACjC,OAAO,KAAK,CAAC;SACd;QAED,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO,KAAK,CAAC;SACd;QAED,IAAI,IAAI,KAAK,OAAO,CAAC,WAAW,EAAE;YAChC,IAAI,OAAO,CAAC,mBAAmB,EAAE;gBAC/B,OAAO,IAAI,CAAC;aACb;YACD,IAAI,OAAO,CAAC,kBAAkB,EAAE;gBAC9B,OAAO,KAAK,CAAC;aACd;YACD,IAAI,OAAO,CAAC,gBAAgB,EAAE;gBAE5B,MAAM,aAAa,GACjB,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC1D,OAAO,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC;aACrC;SACF;QAED,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;KAC5B;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAEM,SAAS,eAAe,CAC7B,UAAkB,EAClB,QAAsB,EACtB,OAAgB;IAEhB,MAAM,kBAAkB,GAAG,mFAAyB,CAClD,UAAU,EACV,QAAQ,CAAC,oBAAoB,CAC9B,CAAC;IAEF,OAAO,CACL,CAAC,iDAAwB,CAAC,OAAO,CAAC;QAClC,CAAC,4CAAmB,CAAC,OAAO,CAAC;QAC7B,kBAAkB,KAAK,SAAS,CACjC,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC/I6C;AAEO;AAIjB;AACA;AACM;AAEnC,SAAS,UAAU,CAAC,OAAgB;IACzC,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;QAChC,mBAAmB,IAAI,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,mBAAmB,IAAI,CAAC,CAAC;SAC1B;aAAM,IAAI,gDAAuB,CAAC,OAAO,CAAC,EAAE;YAC3C,mBAAmB,IAAI,CAAC,CAAC;SAC1B;KACF;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAIM,SAAS,eAAe,CAC7B,IAAU,EACV,IAAY,EACZ,OAAgB;IAIhB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,IAAI,KAAK,CAAC,EAAE;QACd,WAAW,GAAG,CAAC,CAAC;QAChB,IAAI,gDAAuB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACrD,WAAW,GAAG,CAAC,CAAC;SACjB;KACF;SAAM,IAAI,IAAI,KAAK,CAAC,EAAE;QACrB,WAAW,GAAG,CAAC,CAAC;QAChB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,WAAW,GAAG,CAAC,CAAC;SACjB;KACF;SAAM,IAAI,IAAI,KAAK,6DAAe,EAAE;QACnC,IAAI,gDAAuB,CAAC,OAAO,CAAC,EAAE;YACpC,WAAW,GAAG,CAAC,CAAC;SACjB;aAAM;YACL,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;SACH;KACF;IAED,IAAI,IAAI,CAAC,SAAS,EAAE;QAClB,WAAW,GAAG,CAAC,CAAC;KACjB;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAGM,MAAM,eAAe,GAAG,CAC7B,IAA0B,EAC1B,SAAiB,EACjB,IAAY,EACJ,EAAE,CACV,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;IAC3B,IACE,CAAC,CAAC,SAAS,KAAK,SAAS;QACzB,CAAC,CAAC,IAAI,KAAK,IAAI;QACf,8CAAqB,CAAC,CAAC,CAAC,EACxB;QACA,OAAO,SAAS,GAAG,CAAC,CAAC;KACtB;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,EAAE,CAAC,CAAC,CAAC;AAED,SAAS,qBAAqB,CACnC,eAAuB,EACvB,QAAsB;IAEtB,MAAM,OAAO,GAAG,0DAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,+CAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjE,OAAO,CACL,eAAe;QACf,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,eAAe,CACpE,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;ACtFoC;AAG9B,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAU,EAAE,CACvD,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC;IACvC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzB,SAAS,mBAAmB,CAAC,UAAkB;IACpD,QAAQ,UAAU,EAAE;QAClB,KAAK,CAAC,CAAC;QACP,KAAK,CAAC,CAAC,CAAC;YACN,OAAO,CAAC,CAAC;SACV;QACD,KAAK,CAAC,CAAC;QACP,KAAK,CAAC,CAAC,CAAC;YACN,OAAO,CAAC,CAAC;SACV;QACD,KAAK,CAAC,CAAC,CAAC;YACN,OAAO,CAAC,CAAC;SACV;QACD,OAAO,CAAC,CAAC;YAEP,OAAO,CAAC,CAAC;SACV;KACF;AACH,CAAC;AAGM,SAAS,QAAQ,CAAC,WAAmB,EAAE,IAAc;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACxC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAEM,SAAS,QAAQ,CACtB,IAAuB,EACvB,IAA0B;IAE1B,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,qDAAiB,CAAC,IAAI,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,SAAS,SAAS,CACvB,IAAuB,EACvB,IAA0B;IAG1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,qDAAiB,CAAC,IAAI,CAAC,EAAE;YAC5B,OAAO,CAAC,CAAC;SACV;KACF;IAID,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzB,CAAC;AAEM,SAAS,YAAY,CAC1B,IAAuB,EACvB,IAA0B,EAC1B,IAAe;IAEf,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,OAAO,eAAe,KAAK,aAAa,CAAC;AAC3C,CAAC;;;;;;;;;;;;;;;;;AC3EuC;AAKjC,SAAS,WAAW,CAAC,OAAgB,EAAE,aAAqB;IAEjE,IAGE,OAAO,CAAC,KAAK,CAAC,IAAI,CAChB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAC5D;QACD,sDAAkB,CAAC,OAAO,CAAC;QAC3B,4DAAwB,CAAC,OAAO,CAAC;QACjC,6DAAyB,CAAC,OAAO,CAAC;QAClC,iEAA6B,CAAC,OAAO,CAAC;QACtC,4DAAwB,CAAC,OAAO,CAAC;QACjC,uDAAmB,CAAC,OAAO,CAAC,EAC5B;QACA,OAAO,IAAI,CAAC;KACb;IAED,OAAO,aAAa,IAAI,IAAI,CAAC;AAC/B,CAAC;;;;;;;;;;;;;;;;;;;;;;AC1B2C;AACJ;AAMZ;AACyB;AAG9C,SAAS,cAAc,CAC5B,SAA4B,EAC5B,IAA0B;;IAE1B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,OAAO,6DAAe,CAAC;KACxB;IAED,MAAM,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvD,OAAO,UAAI,CAAC,cAAc,CAAC,CAAC,IAAI,mCAAI,+DAAiB,CAAC;AACxD,CAAC;AAEM,SAAS,SAAS,CACvB,SAA4B,EAC5B,kBAAkC,EAClC,IAA0B;IAE1B,MAAM,mBAAmB,GAAG,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,mBAAmB,KAAK,+DAAiB,EAAE;QAC7C,OAAO,EAAE,CAAC;KACX;IAED,QAAQ,kBAAkB,EAAE;QAC1B,KAAK,oEAAwB,CAAC,CAAC;YAC7B,IAAI,mBAAmB,KAAK,6DAAe,EAAE;gBAC3C,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACf;YACD,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,6DAAe,CAAC,CAAC;SAChC;QAED,KAAK,6DAAiB,CAAC,CAAC;YACtB,IAAI,mBAAmB,KAAK,6DAAe,EAAE;gBAC3C,OAAO,CAAC,CAAC,CAAC,CAAC;aACZ;YACD,OAAO,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;SAClC;QAED,KAAK,+DAAmB,CAAC,CAAC;YACxB,IAAI,mBAAmB,KAAK,6DAAe,EAAE;gBAC3C,OAAO,CAAC,CAAC,CAAC,CAAC;aACZ;YACD,OAAO,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;SAClC;QAED,KAAK,mEAAuB,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC;SACX;QAED,OAAO,CAAC,CAAC;YACP,qDAAc,CAAC,kBAAkB,CAAC,CAAC;SACpC;KACF;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAEM,SAAS,SAAS,CACvB,SAAiB,EACjB,SAA4B,EAC5B,IAA0B,EAC1B,OAAgB;IAEhB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,OAAO,mEAAuB,CAAC;KAChC;IAED,IAAI,CAAC,iEAA6B,CAAC,OAAO,CAAC,EAAE;QAC3C,OAAO,6DAAiB,CAAC;KAC1B;IAED,IAAI,CAAC,2DAAuB,CAAC,OAAO,CAAC,EAAE;QACrC,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ;YACtC,CAAC,CAAC,+DAAmB;YACrB,CAAC,CAAC,6DAAiB,CAAC;KACvB;IAED,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,GAAG,KAAK,+DAAiB,EAAE;QAC7B,MAAM,IAAI,KAAK,CACb,uCAAuC,SAAS,eAAe,CAChE,CAAC;KACH;IACD,IAAI,GAAG,KAAK,6DAAe,IAAI,GAAG,KAAK,6DAAe,EAAE;QACtD,OAAO,oEAAwB,CAAC;KACjC;IAGD,IAAI,GAAG,KAAK,SAAS,CAAC,MAAM,EAAE;QAC5B,OAAO,+DAAmB,CAAC;KAC5B;IAED,IAAI,GAAG,KAAK,CAAC,EAAE;QACb,OAAO,6DAAiB,CAAC;KAC1B;IAGD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,OAAO,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,+DAAmB,CAAC,CAAC,CAAC,6DAAiB,CAAC;AACpE,CAAC;;;;;;;;;;;;;;;;;AC1GgD;AAI1C,SAAS,WAAW,CACzB,OAAsB,EACtB,eAA8B,EAC9B,MAAkB;IAElB,IAAI,OAAO,KAAK,IAAI,EAAE;QAEpB,OAAO,KAAK,CAAC;KACd;IAKD,IACE,MAAM,CAAC,IAAI,KAAK,UAAU;QAC1B,MAAM,CAAC,YAAY,KAAK,gEAAoB;QAC5C,MAAM,CAAC,YAAY,KAAK,mEAAuB;QAC/C,MAAM,CAAC,YAAY,KAAK,oEAAwB,EAChD;QACA,OAAO,IAAI,CAAC;KACb;IAGD,OAAO,OAAO,KAAK,eAAe,CAAC;AACrC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7B8E;AAG7B;AAIO;AAElD,SAAS,mBAAmB,CACjC,IAA0B,EAC1B,mBAA8C,EAC9C,OAAgB;IAIhB,OAAO,qEAAmC,CACxC,IAAI,EACJ,mBAAmB,EACnB,OAAO,CACR,CAAC;AACJ,CAAC;AAEM,SAAS,wBAAwB,CACtC,WAAmB,EACnB,QAAgB,EAChB,aAAqB;IAErB,IAAI,WAAW,IAAI,aAAa,GAAG,CAAC,EAAE;QACpC,OAAO,QAAQ,GAAG,CAAC,CAAC;KACrB;IACD,IAAI,WAAW,IAAI,aAAa,GAAG,QAAQ,EAAE;QAC3C,OAAO,aAAa,GAAG,QAAQ,GAAG,WAAW,CAAC;KAC/C;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAEM,SAAS,wBAAwB,CACtC,WAAmB,EACnB,aAAqB;IAErB,IAAI,WAAW,GAAG,aAAa,GAAG,CAAC,EAAE;QACnC,OAAO,WAAW,CAAC;KACpB;IACD,OAAO,aAAa,GAAG,CAAC,CAAC;AAC3B,CAAC;AAEM,SAAS,QAAQ,CACtB,WAAmB,EACnB,QAAgB,EAChB,aAAqB;IAErB,IAAI,WAAW,IAAI,aAAa,GAAG,QAAQ,EAAE;QAC3C,OAAO,WAAW,CAAC;KACpB;IACD,OAAO,aAAa,GAAG,QAAQ,CAAC;AAClC,CAAC;AAGM,SAAS,IAAI,CAClB,KAAa,EACb,QAAgB,EAChB,QAAgB,EAChB,aAAqB,EACrB,QAAiB;IAEjB,IAAI,QAAQ,EAAE;QACZ,OAAO,IAAI,CAAC;KACb;IAED,IAAI,QAAQ,IAAI,CAAC,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IAGD,MAAM,qBAAqB,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1D,OAAO,qBAAqB,GAAG,aAAa,CAAC;AAC/C,CAAC;AAGM,SAAS,QAAQ,CACtB,WAA0B,EAC1B,UAAkB;IAElB,IAAI,WAAW,KAAK,IAAI,EAAE;QACxB,OAAO,MAAM,CAAC;KACf;IAED,IAAI,WAAW,IAAI,CAAC,EAAE;QACpB,OAAO,MAAM,CAAC;KACf;IAID,IAAI,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE;QAC7D,OAAO,UAAU,CAAC;KACnB;IAID,IAAI,WAAW,GAAG,UAAU,GAAG,CAAC,EAAE;QAChC,OAAO,YAAY,CAAC;KACrB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAEM,SAAS,gBAAgB,CAC9B,UAAkB,EAClB,YAAoB,EACpB,OAAgB;IAEhB,MAAM,UAAU,GAAG,wDAAoB,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,iBAAiB,GAAG,YAAY,GAAG,UAAU,CAAC;IACpD,OAAO,UAAU,GAAG,iBAAiB,CAAC;AACxC,CAAC;AAQM,SAAS,YAAY,CAC1B,QAAgB,EAChB,QAAgB,EAChB,aAAqB;IAErB,OAAO,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC7C,CAAC;AAEM,SAAS,WAAW,CACzB,IAA0B,EAC1B,UAA4C,EAC5C,mBAA8C,EAC9C,OAAgB,EAChB,QAAgB,EAChB,OAAgB;IAEhB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAG3B,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;QACvB,IACE,IAAI,CAAC,QAAQ,KAAK,WAAW;YAC7B,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAC1B,IAAI,CAAC,WAAW;gBAChB,iEAA6B,CAAC,OAAO,CAAC;gBACtC,OAAO,CAAC,EACV;YAGA,kBAAkB,IAAI,CAAC,CAAC;SACzB;aAAM,IACL,4DAAwB,CAAC,IAAI,CAAC;YAC9B,qDAAiB,CAAC,IAAI,CAAC;YACvB,CAAC,mEAA+B,CAC9B,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,mBAAmB,EACnB,OAAO,CACR,EACD;YAIA,kBAAkB,IAAI,CAAC,CAAC;SACzB;KACF;IAED,IAAI,kBAAkB,GAAG,QAAQ,EAAE;QACjC,kBAAkB,GAAG,QAAQ,CAAC;KAC/B;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAEM,SAAS,kBAAkB,CAChC,IAA0B,EAC1B,UAA4C,EAC5C,mBAA8C,EAC9C,OAAgB,EAChB,KAAiB;IAEjB,IAAI,yBAAyB,GAAG,CAAC,CAAC;IAElC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC3B,IACE,4DAAwB,CAAC,IAAI,CAAC;YAC9B,CAAC,mEAA+B,CAC9B,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,mBAAmB,EACnB,OAAO,CACR,EACD;YAEA,MAAM,CAAC,GAAG,qDAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YAG1B,MAAM,CAAC,GACL,CAAC,IAAI,CAAC,UAAU;gBAChB,CAAC,IAAI,CAAC,QAAQ;oBACZ,IAAI,CAAC,KAAK;oBACV,CAAC,qDAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,CAAC,CAAC;YAER,yBAAyB,IAAI,CAAC,GAAG,CAAC,CAAC;SACpC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,yBAAyB,CAAC;AACnC,CAAC;AAGM,SAAS,aAAa,CAC3B,UAAkB,EAClB,aAAqB,EACrB,OAAgB,EAChB,YAAoB;IAGpB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAMrE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEzE,OAAO,QAAQ,GAAG,UAAU,CAAC;AAC/B,CAAC;AAIM,SAAS,gBAAgB,CAC9B,KAAa,EACb,aAAgC,EAChC,gBAAmC,EACnC,QAAgB,EAChB,aAAqB,EACrB,YAAoB,EACpB,SAAiB,EACjB,YAAoB;IAEpB,IAAI,aAAa,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM,EAAE;QACpD,MAAM,KAAK,CACT,8FAA8F,CAC/F,CAAC;KACH;IAGD,IAAI,YAAY,GAAG,SAAS,EAAE;QAC5B,MAAM,KAAK,CACT,mGAAmG,CACpG,CAAC;KACH;IACD,IAAI,QAAQ,IAAI,CAAC,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7D,MAAM,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC;IAEtC,MAAM,2BAA2B,GAAG,wBAAwB,CAC1D,YAAY,EACZ,QAAQ,EACR,aAAa,CACd,CAAC;IAEF,MAAM,iBAAiB,GAAG,2BAA2B,GAAG,YAAY,CAAC;IAErE,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,SAAS,GAAG,CAAC,EAAE;QAEjB,MAAM,qBAAqB,GAAG,wBAAwB,CACpD,YAAY,EACZ,aAAa,CACd,CAAC;QACF,MAAM,wBAAwB,GAC5B,QAAQ,CAAC,YAAY,EAAE,QAAQ,EAAE,aAAa,CAAC,GAAG,qBAAqB,CAAC;QAC1E,MAAM,8BAA8B,GAAG,EAAE,CAAC;QAC1C,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;YACrE,IAAI,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACrE,8BAA8B,CAAC,IAAI,CACjC,gBAAgB,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,CACvD,CAAC;aACH;SACF;QACD,8BAA8B,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,8BAA8B,GAAG,CAAC,CAAC;QACvC,KAAK,MAAM,kBAAkB,IAAI,8BAA8B,EAAE;YAC/D,IAAI,WAAW,GAAG,kBAAkB,GAAG,wBAAwB,EAAE;gBAC/D,MAAM;aACP;YACD,WAAW,IAAI,kBAAkB,CAAC;YAClC,8BAA8B,IAAI,CAAC,CAAC;SACrC;QACD,cAAc,GAAG,8BAA8B,GAAG,SAAS,CAAC;KAC7D;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,cAAc,GAAG,YAAY,CAAC,CAAC;AACvE,CAAC;AAKM,SAAS,mBAAmB,CACjC,aAAqB,EACrB,QAAgB,EAChB,OAAgB;IAEhB,MAAM,KAAK,GAAG,CAAC,CAAC;IAChB,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,gBAAgB,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,gEAA4B,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,6DAAyB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,gBAAgB,CACpC,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,SAAS,EACT,0DAAY,CACb,CAAC;IACF,IAAI,aAAa,KAAK,IAAI,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACxD;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAEM,SAAS,UAAU,CACxB,cAAsB,EACtB,kBAA0B;IAE1B,OAAO,cAAc,GAAG,kBAAkB,CAAC;AAC7C,CAAC;AAEM,SAAS,gBAAgB,CAAC,KAAgB;IAC/C,IAAI,KAAK,CAAC,KAAK,CAAC,gBAAgB,KAAK,IAAI,EAAE;QACzC,OAAO,IAAI,CAAC;KACb;IACD,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;IACtE,OAAO,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC;AACvD,CAAC;AAIM,SAAS,aAAa,CAC3B,oBAA4B,EAC5B,KAAgB,EAChB,OAAgB;IAGhB,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE;QAC1C,OAAO,IAAI,CAAC;KACb;IAID,MAAM,IAAI,GACR,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxE,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,KAAK,MAAM,iBAAiB,IAAI,IAAI,EAAE;QACpC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjD,IAAI,CAAC,qDAAiB,CAAC,UAAU,CAAC,EAAE;YAClC,QAAQ,GAAG,KAAK,CAAC;YACjB,MAAM;SACP;KACF;IACD,IAAI,QAAQ,EAAE;QACZ,OAAO,IAAI,CAAC;KACb;IAID,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACvD,IAAI,aAAa,CAAC,SAAS,KAAK,IAAI,IAAI,aAAa,CAAC,IAAI,KAAK,IAAI,EAAE;QACnE,OAAO,IAAI,CAAC;KACb;IAGD,MAAM,eAAe,GAAG,6DAAyB,CAC/C,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,IAAI,EAClB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,mBAAmB,EACzB,OAAO,CACR,CAAC;IACF,IAAI,CAAC,eAAe,EAAE;QACpB,OAAO,IAAI,CAAC;KACb;IAID,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,IAAI,EAAE;QACnC,IACE,UAAU,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK;YACxC,UAAU,CAAC,SAAS,KAAK,aAAa,CAAC,SAAS;YAChD,UAAU,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI;YACtC,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ;YACvC,UAAU,CAAC,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAC9C;YACA,OAAO,IAAI,CAAC;SACb;KACF;IAGD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,6DAAyB,CAC9C,IAAI,EACJ,aAAa,CAAC,IAAI,EAClB,OAAO,CACR,CAAC;IACF,MAAM,YAAY,GAAG,6DAAyB,CAC5C,KAAK,CAAC,IAAI,EACV,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,IAAI,CACnB,CAAC;IACF,OAAO,cAAc,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3E,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AC/a2C;AACE;AACyB;AACG;AAEjC;AACQ;AACmB;AAE7D,SAAS,IAAI,CAClB,MAAkB,EAClB,UAAoB,EACpB,QAAsB;IAEtB,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,0DAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAGzD,MAAM,aAAa,GAAG,mFAAyB,CAC7C,MAAM,CAAC,KAAK,EACZ,QAAQ,CAAC,oBAAoB,CAC9B,CAAC;IACF,IACE,4DAAwB,CAAC,OAAO,CAAC;QACjC,uDAAmB,CAAC,OAAO,CAAC;QAC5B,aAAa,KAAK,SAAS,EAC3B;QACA,IAAI,UAAU,GAAG,OAAO,CAAC;QACzB,IAAI,4DAAwB,CAAC,OAAO,CAAC,EAAE;YACrC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,0DAAc,EAAE;gBACvC,UAAU,GAAG,MAAM,CAAC;aACrB;iBAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,yDAAa,EAAE;gBAC7C,UAAU,GAAG,OAAO,CAAC;aACtB;SACF;aAAM,IAAI,uDAAmB,CAAC,OAAO,CAAC,IAAI,aAAa,KAAK,SAAS,EAAE;YACtE,UAAU,GAAG,QAAQ,CAAC;SACvB;QAED,MAAM,IAAI,GAAG,CAAC;QACd,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACzB,MAAM,IAAI,GAAG,CAAC;SACf;QAGD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE;YAC/B,MAAM,IAAI,GAAG,sDAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACnD,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;aAC9D;YACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClB;QACD,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,IAAI,QAAQ,GAAG,MAAM,CAAC;QACtB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,QAAQ,IAAI,GAAG,CAAC;SACjB;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAElC,OAAO,GAAG,KAAK,IAAI,UAAU,OAAO,MAAM,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;KACvE;IAGD,IAAI,QAAQ,GAAG,0DAAsB,CACnC,MAAM,CAAC,IAAI,CAAC,IAAI,EAChB,MAAM,CAAC,IAAI,CAAC,KAAK,EACjB,OAAO,EACP,aAAa,CACd,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,QAAQ,IAAI,GAAG,CAAC;KACjB;IAED,OAAO,GAAG,KAAK,UAAU,MAAM,UAAU,IAAI,IAAI,QAAQ,EAAE,CAAC;AAC9D,CAAC;AAEM,SAAS,QAAQ,CACtB,YAA0B,EAC1B,WAAmB,EACnB,KAAa,EACb,QAAsB;IAEtB,MAAM,UAAU,GAAG,kEAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAExD,QAAQ,YAAY,EAAE;QACpB,KAAK,mEAAuB,CAAC;QAC7B,KAAK,+DAAmB,CAAC,CAAC;YACxB,OAAO,iBAAiB,KAAK,UAAU,CAAC;SACzC;QAED,KAAK,kEAAsB,CAAC,CAAC;YAC3B,MAAM;SACP;QAED,KAAK,gEAAoB,CAAC,CAAC;YACzB,OAAO,GAAG,UAAU,mBAAmB,CAAC;SACzC;QAED,KAAK,mEAAuB,CAAC,CAAC;YAC5B,OAAO,GAAG,UAAU,uBAAuB,CAAC;SAC7C;QAED,KAAK,qEAAyB,CAAC,CAAC;YAC9B,MAAM;SACP;QAED,KAAK,oEAAwB,CAAC,CAAC;YAC7B,OAAO,iCAAiC,CAAC;SAC1C;QAED,KAAK,0EAA8B,CAAC,CAAC;YACnC,OAAO,GAAG,UAAU,yBAAyB,CAAC;SAC/C;QAED,KAAK,yEAA6B,CAAC,CAAC;YAClC,MAAM;SACP;QAED,KAAK,6EAAiC,CAAC,CAAC;YACtC,OAAO,GAAG,UAAU,qCAAqC,CAAC;SAC3D;QAED,OAAO,CAAC,CAAC;YACP,qDAAc,CAAC,YAAY,CAAC,CAAC;YAC7B,MAAM;SACP;KACF;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAEM,SAAS,IAAI,CAClB,MAAkB,EAClB,IAAmB,EACnB,OAAgB,EAChB,OAAgB,EAChB,QAAsB;IAEtB,MAAM,OAAO,GAAG,0DAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,kEAAa,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAE/D,IAAI,IAAI,CAAC;IACT,IAAI,iEAA6B,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE;QACrD,IAAI,GAAG,QAAQ,CAAC;KACjB;SAAM;QACL,IAAI,GAAG,kDAAc,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC/D;IAED,IAAI,QAAQ,CAAC;IACb,IAAI,IAAI,KAAK,IAAI,EAAE;QACjB,QAAQ,GAAG,UAAU,CAAC;KACvB;SAAM;QACL,QAAQ,GAAG,SAAS,IAAI,EAAE,CAAC;KAC5B;IAED,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,GAAG,UAAU,CAAC;KACrB;IAED,OAAO,GAAG,UAAU,UAAU,IAAI,SAAS,QAAQ,GAAG,MAAM,EAAE,CAAC;AACjE,CAAC;AAEM,SAAS,OAAO,CACrB,MAAqB,EACrB,IAAmB,EACnB,OAAgB,EAChB,OAAgB,EAChB,QAAsB;IAEtB,MAAM,OAAO,GAAG,0DAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,kEAAa,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAE/D,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,IAAI,GAAG,eAAe,CAAC;QACvB,IAAI,iEAA6B,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE;YACrD,IAAI,GAAG,OAAO,CAAC;SAChB;KACF;IAED,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE;QACjD,IAAI,GAAG,QAAQ,CAAC;KACjB;SAAM;QACL,IAAI,GAAG,kDAAc,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC/D;IAED,IAAI,QAAQ,CAAC;IACb,IAAI,IAAI,KAAK,IAAI,EAAE;QACjB,QAAQ,GAAG,UAAU,CAAC;KACvB;SAAM;QACL,QAAQ,GAAG,SAAS,IAAI,EAAE,CAAC;KAC5B;IAED,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,CAAC,MAAM,IAAI,OAAO,EAAE;QAC5B,MAAM,GAAG,UAAU,CAAC;KACrB;IACD,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;QAC9C,MAAM,GAAG,UAAU,CAAC;KACrB;IAED,OAAO,GAAG,UAAU,IAAI,IAAI,IAAI,IAAI,SAAS,QAAQ,GAAG,MAAM,EAAE,CAAC;AACnE,CAAC;;;;;;;;;;;;;;;;;;;;;;;AChN+C;AACL;AAIpC,SAAS,sBAAsB,CACpC,8BAAsC,EACtC,sBAA8B,EAC9B,aAAqB,EACrB,UAAkB,EAClB,OAAgB;IAIhB,MAAM,mBAAmB,GACvB,sBAAsB,KAAK,CAAC;QAC5B,UAAU,IAAI,+DAA2B,CAAC,CAAC,EAAE,OAAO,CAAC;QACrD,aAAa,KAAK,SAAS,CAAC;IAK9B,OAAO,CAAC,mBAAmB,IAAI,8BAA8B,IAAI,CAAC,CAAC;AACrE,CAAC;AAEM,SAAS,sBAAsB,CACpC,kBAA0B,EAC1B,aAAqB;IAIrB,OAAO,aAAa,KAAK,QAAQ,IAAI,kBAAkB,KAAK,CAAC,CAAC;AAChE,CAAC;AAEM,SAAS,qBAAqB,CAAC,aAAqB;IAEzD,OAAO,aAAa,KAAK,YAAY,CAAC;AACxC,CAAC;AAEM,SAAS,kBAAkB,CAChC,kBAAiC,EACjC,UAAkB,EAClB,aAAsB;IAEtB,IAAI,kBAAkB,KAAK,IAAI,EAAE;QAE/B,OAAO,IAAI,CAAC;KACb;IAED,IAAI,eAAe,CAAC;IACpB,IAAI,CAAC,aAAa,EAAE;QAClB,eAAe,GAAG,kBAAkB,GAAG,CAAC,CAAC;QACzC,IAAI,eAAe,KAAK,UAAU,EAAE;YAClC,eAAe,GAAG,CAAC,CAAC;SACrB;KACF;SAAM;QACL,eAAe,GAAG,kBAAkB,GAAG,CAAC,CAAC;QACzC,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;YAC1B,eAAe,GAAG,UAAU,GAAG,CAAC,CAAC;SAClC;KACF;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAEM,SAAS,aAAa,CAC3B,OAAgB,EAChB,oBAAoD;IAGpD,IAAI,OAAO,CAAC,qBAAqB,EAAE;QACjC,KAAK,MAAM,WAAW,IAAI,oBAAoB,EAAE;YAC9C,IAAI,WAAW,KAAK,IAAI,EAAE;gBACxB,MAAM,SAAS,GAAG,4DAAY,CAAC,WAAW,CAAC,CAAC;gBAC5C,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY,EAAE;oBACnC,OAAO,CAAC,CAAC;iBACV;aACF;SACF;KACF;IAGD,OAAO,OAAO,CAAC,UAAU,CAAC;AAC5B,CAAC;AAEM,SAAS,UAAU,CAAC,IAAY,EAAE,QAAsB;IAC7D,OAAO,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AAC/E,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpFM,MAAM,WAAW,GAAG,CAAC,OAAgB,EAAW,EAAE,CACvD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAEjC,MAAM,KAAK,GAAG,CAAC,OAAgB,EAAW,EAAE,CACjD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAExB,MAAM,WAAW,GAAG,CAAC,OAAgB,EAAW,EAAE,CACvD,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;AAE3B,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAW,EAAE,CACxD,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;AAE1B,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAW,EAAE,CAC9D,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;AAExC,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAW,EAAE,CACzD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEnC,MAAM,WAAW,GAAG,CAAC,OAAgB,EAAW,EAAE,CACvD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAEhC,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAW,EAAE,CAClD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAE3B,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAAW,EAAE,CAC5D,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAEzC,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAW,EAAE,CACtD,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAExB,MAAM,cAAc,GAAG,CAAC,WAAmB,EAAW,EAAE,CAC7D,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAEhC,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAAW,EAAE,CAC5D,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;;;;;;;;;;;;;;;;;ACpCF;AAGnE,SAAS,0BAA0B,CAAC,QAAsB;IAC/D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE;QAC3C,OAAO,KAAK,CAAC;KACd;IACD,MAAM,aAAa,GAAG,mFAAyB,CAC7C,QAAQ,CAAC,cAAc,EACvB,QAAQ,CAAC,oBAAoB,CAC9B,CAAC;IACF,OAAO,aAAa,KAAK,aAAa,CAAC;AACzC,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACVuD;AACA;AAEnB;AACY;AACN;AAMpC,SAAS,eAAe,CAC7B,SAAiB,EACjB,IAAY,EACZ,IAA0B,EAC1B,UAA4C,EAC5C,mBAA8C,EAC9C,OAAgB;IAEhB,MAAM,SAAS,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAEjD,IAAI,SAAS,KAAK,mEAAuB,EAAE;QACzC,OAAO,KAAK,CAAC;KACd;IAID,IAAI,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE;QAC3E,OAAO,KAAK,CAAC;KACd;IAGD,IAAI,gDAAuB,CAAC,OAAO,CAAC,EAAE;QAEpC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;YAC1C,OAAO,IAAI,CAAC;SACb;QAED,IAAI,IAAI,KAAK,CAAC,EAAE;YAEd,IAAI,SAAS,KAAK,6DAAiB,EAAE;gBACnC,OAAO,KAAK,CAAC;aACd;SACF;aAAM,IAAI,IAAI,KAAK,CAAC,EAAE;YAErB,IAAI,SAAS,KAAK,+DAAmB,EAAE;gBACrC,OAAO,KAAK,CAAC;aACd;SACF;aAAM,IAAI,IAAI,KAAK,6DAAe,EAAE;YAEnC,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,OAAO,KAAK,CAAC;aACd;SACF;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAKD,SAAS,MAAM,CACb,SAAiB,EACjB,IAAY,EACZ,IAA0B,EAC1B,UAA4C,EAC5C,mBAA8C,EAC9C,OAAgB;IAEhB,MAAM,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAG3D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;IAC/B,KAAK,MAAM,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE;QAC/C,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;KACvE;IAGD,IAAI,mBAAmB,CAAC,SAAS,CAAC,KAAK,6DAAiB,EAAE;QACxD,IAAI,QAAQ,GAAG,gDAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,KAAK,QAAQ,EAAE,QAAQ,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC1C,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAC9B,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;KACd;IACD,IAAI,mBAAmB,CAAC,SAAS,CAAC,KAAK,+DAAmB,EAAE;QAC1D,IAAI,QAAQ,GAAG,gDAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,KAAK,QAAQ,EAAE,QAAQ,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC1C,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAC9B,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAC,gDAAuB,CAAC,OAAO,CAAC,EAAE;QACrC,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;KACH;IAMD,IACE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACnB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACnB,YAAY,CAAC,GAAG,CAAC,6DAAe,CAAC,EACjC;QACA,OAAO,IAAI,CAAC;KACb;IAKD,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,uDAA8B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACvE,IAAI,cAAc,KAAK,6DAAe,IAAI,IAAI,KAAK,CAAC,EAAE;QACpD,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC9C,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAOM,SAAS,mBAAmB,CACjC,IAA0B,EAC1B,mBAA8C,EAC9C,OAAgB;IAEhB,MAAM,gBAAgB,GAAa,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CACrE,CAAC,CACU,CAAC;IAEd,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;QACrE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAGtC,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAI,gDAAuB,CAAC,OAAO,CAAC,EAAE;YACpC,KAAK,CAAC,IAAI,CAAC,6DAAe,CAAC,CAAC;SAC7B;QAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAmB,CAAC;QAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,MAAM,KAAK,GAAG,kDAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAC7D,MAAM,SAAS,GAAG,kDAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YACnE,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC;SAC7C;QAED,IAAI,mBAAmB,CAAC,SAAS,CAAC,KAAK,oEAAwB,EAAE;YAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACjD,gBAAgB,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SAC3D;aAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,KAAK,6DAAiB,EAAE;YAC/D,gBAAgB,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;SAC9D;aAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,KAAK,+DAAmB,EAAE;YACjE,gBAAgB,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;SAChE;aAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,KAAK,mEAAuB,EAAE;YACrE,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAClC;KACF;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAGD,SAAS,MAAM,CAAC,YAAkC,EAAE,OAAgB;IAClE,IAAI,yBAAyB,GAAG,CAAC,CAAC;IAGlC,IAAI,gDAAuB,CAAC,OAAO,CAAC,EAAE;QACpC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAE,IAAI,YAAY,CAAC,GAAG,CAAC,6DAAe,CAAE,EAAE;YAE9D,OAAO,CAAC,CAAC;SACV;KACF;SAAM,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE;QAE/B,OAAO,CAAC,CAAC;KACV;IACD,yBAAyB,IAAI,CAAC,CAAC;IAG/B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE;QACpC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE;YAC3B,MAAM;SACP;QACD,yBAAyB,IAAI,CAAC,CAAC;KAChC;IAED,OAAO,yBAAyB,CAAC;AACnC,CAAC;AAGD,SAAS,QAAQ,CAAC,YAAkC,EAAE,OAAgB;IACpE,IAAI,yBAAyB,GAAG,CAAC,CAAC;IAGlC,IAAI,gDAAuB,CAAC,OAAO,CAAC,EAAE;QACpC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAE,IAAI,YAAY,CAAC,GAAG,CAAC,6DAAe,CAAE,EAAE;YAE9D,OAAO,CAAC,CAAC;SACV;KACF;SAAM,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE;QAE/B,OAAO,CAAC,CAAC;KACV;IACD,yBAAyB,IAAI,CAAC,CAAC;IAG/B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE;QACpC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE;YAC3B,MAAM;SACP;QACD,yBAAyB,IAAI,CAAC,CAAC;KAChC;IAED,OAAO,yBAAyB,CAAC;AACnC,CAAC;AAGM,SAAS,UAAU,CACxB,SAAiB,EACjB,IAAY,EACZ,IAA0B,EAC1B,mBAA8C,EAC9C,OAAgB;IAEhB,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAEvE,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,gDAAuB,CAAC,OAAO,CAAC,EAAE;QACrC,OAAO,QAAQ,CAAC;KACjB;IAED,IAAI,CAAC,QAAQ,EAAE;QAEb,OAAO,KAAK,CAAC;KACd;IAED,MAAM,SAAS,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAGjD,IAAI,IAAI,KAAK,6DAAe,EAAE;QAC5B,OAAO,CACL,SAAS,KAAK,oEAAwB;YACtC,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAC/D,CAAC;KACH;IAGD,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,SAAS,KAAK,oEAAwB,EAAE;QACxE,OAAO,cAAc,CAAC,SAAS,EAAE,6DAAe,CAAC,CAAC;KACnD;IAGD,IAAI,IAAI,KAAK,CAAC,EAAE;QACd,OAAO,SAAS,KAAK,+DAAmB,CAAC;KAC1C;IAED,IAAI,IAAI,KAAK,CAAC,EAAE;QACd,OAAO,SAAS,KAAK,6DAAiB,CAAC;KACxC;IAGD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB,EAAE,IAA0B;IACpE,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CACrC,kDAAyB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CACzC,kDAAyB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAC1C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAC9C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACxC,CAAC;;;;;;;;;;;;;;;;ACrSD,IAAK,UAMJ;AAND,WAAK,UAAU;IACb,2CAAI;IACJ,iDAAO;IACP,qDAAS;IACT,mDAAQ;IACR,mDAAQ;AACV,CAAC,EANI,UAAU,KAAV,UAAU,QAMd;AACD,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;ACP1B,IAAK,UAUJ;AAVD,WAAK,UAAU;IAGb,iEAAe;IAGf,mDAAQ;IAGR,6CAAK;AACP,CAAC,EAVI,UAAU,KAAV,UAAU,QAUd;AACD,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;ACXQ;AAgB3B,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAY,EAAE,CAAC,CAAC;IACnD,IAAI,EAAE,mDAAa;IACnB,KAAK,EAAE,IAAI;CACZ,CAAC,CAAC;AAEI,MAAM,SAAS,GAAG,CAAC,KAAY,EAAa,EAAE,CAAC,CAAC;IACrD,IAAI,EAAE,oDAAc;IACpB,KAAK,EAAE,KAAK;CACb,CAAC,CAAC;;;;;;;;;;;;;;;;ACxBH,IAAK,QAGJ;AAHD,WAAK,QAAQ;IACX,yCAAK;IACL,uCAAI;AACN,CAAC,EAHI,QAAQ,KAAR,QAAQ,QAGZ;AACD,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;ACJxB,IAAK,YAWJ;AAXD,WAAK,YAAY;IACf,2DAAU;IACV,mDAAM;IACN,yDAAS;IACT,qDAAO;IACP,2DAAU;IACV,+DAAY;IACZ,6DAAW;IACX,yEAAiB;IACjB,uEAAgB;IAChB,+EAAoB;AACtB,CAAC,EAXI,YAAY,KAAZ,YAAY,QAWhB;AACD,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;ACQrB,MAAM,aAAa,GAAG,CAC3B,WAAmB,EACnB,QAAsB,EACd,EAAE,WAAC,qBAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,mCAAI,aAAa,IAAC;;;;;;;;;;;;;;;;ACvBhE,IAAK,gBAUJ;AAVD,WAAK,gBAAgB;IACnB,6DAAO;IACP,yDAAK;IACL,yDAAK;IACL,iEAAS;IACT,6DAAO;IACP,mEAAU;IACV,+DAAQ;IACR,mFAAkB;IAClB,yEAAa;AACf,CAAC,EAVI,gBAAgB,KAAhB,gBAAgB,QAUpB;AACD,iEAAe,gBAAgB,EAAC;;;;;;;;;;;;;;;;ACRhC,IAAK,gBAaJ;AAbD,WAAK,gBAAgB;IACnB,8DAAY;IACZ,wDAAS;IACT,wDAAS;IACT,0DAAU;IACV,gEAAa;IACb,0DAAU;IACV,8DAAY;IACZ,8DAAY;IACZ,8DAAY;IACZ,yDAAU;IACV,qEAAgB;IAChB,2EAAmB;AACrB,CAAC,EAbI,gBAAgB,KAAhB,gBAAgB,QAapB;AACD,iEAAe,gBAAgB,EAAC;;;;;;;;;;;;;;;;ACfhC,IAAK,SAkCJ;AAlCD,WAAK,SAAS;IAEZ,iDAAQ;IAGR,2CAAK;IACL,2CAAK;IACL,6CAAM;IACN,6CAAM;IACN,6CAAM;IACN,6CAAM;IACN,6CAAM;IACN,6CAAM;IACN,2DAAa;IAGb,0DAAY;IACZ,4DAAa;IACb,sEAAkB;IAGlB,wCAAG;IAKH,wCAAG;IACH,0CAAI;IACJ,4CAAK;IAGL,gEAAe;IACf,0DAAY;IACZ,gEAAe;AACjB,CAAC,EAlCI,SAAS,KAAT,SAAS,QAkCb;AACD,iEAAe,SAAS,EAAC;;;;;;;;;;;;;;;;ACrCzB,IAAK,cAKJ;AALD,WAAK,cAAc;IACjB,6DAAS;IACT,+CAAE;IACF,mDAAI;IACJ,2DAAQ;AACV,CAAC,EALI,cAAc,KAAd,cAAc,QAKlB;AACD,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;;;;;;;ACLvB,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,oBAAoB,GAAG,YAAY,CAAC;;;;;;;;;;;;;;;;;;ACPvB;AAOX,MAAM,WAAY,SAAQ,oDAAW;IAGlD,YAAY,MAA6B;QACvC,KAAK,CAAC,MAAM,CAAC,CAAC;QAHhB,SAAI,GAAiB,EAAE,CAAC;QAMtB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,MAAkB;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtB,MAAqB,CAAC,EAAE,CACvB,WAAW,EACX,SAAS,WAAW;YACjB,IAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;oBACjD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;iBAChC;aACF;YAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC,CACF,CAAC;IACJ,CAAC;IAED,UAAU;QACR,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;YAC9B,IAAI,MAAM,CAAC,OAAO,EAAE;gBAClB,OAAO,MAAM,CAAC;aACf;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;gBACxB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aAChC;SACF;IACH,CAAC;IAGD,gBAAgB;QACd,IAAI,WAAW,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;gBACxB,WAAW,GAAG,CAAC,CAAC;gBAChB,MAAM;aACP;SACF;QAGD,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,WAAW,GAAG,CAAC,CAAC,CAAC;SAClB;QAKD,IAAI,MAAgC,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,WAAW,IAAI,CAAC,CAAC;YACjB,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtC,WAAW,GAAG,CAAC,CAAC;aACjB;YAED,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAiB,CAAC;YAChD,IAAI,MAAM,CAAC,OAAO,EAAE;gBAClB,MAAM;aACP;SACF;QAED,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,MAAM,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;SAC/C;IACH,CAAC;CACF;;;;;;;;;;;;;;;;;;;;;ACxFyB;AAC0B;AACpB;AAES;AAG1B,MAAM,UAAW,SAAQ,oDAAW;IAMjD,YAAY,MAA6B;;QACvC,KAAK,CAAC,MAAM,CAAC,CAAC;QAGd,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAW,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,CAAY,CAAC;QACpD,IAAI,CAAC,YAAY,GAAG,YAAM,CAAC,QAAQ,mCAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;SAC9D;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC/D;IAeH,CAAC;IAMD,QAAQ,CAAC,KAAkB;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,KAA+B,CAAC,CAAC;QAC1C,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,mBAAmB;QACjB,qFAA8C,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,QAAQ;QAEN,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAEtC,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAA2B,CAAC;YAE/D,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAC7B,SAAS;aACV;YAED,MAAM,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;YAChD,EAAE,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;SACnC;QAED,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAC5B,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,mBAAmB,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;SACzD;QACD,IAAI,sBAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;QACvC,IAAI,uEAAiC,EAAE;YACrC,sBAAsB,GAAG,KAAK,GAAG,EAAE,CAAC;SACrC;QACD,IAAI,mBAAmB,GAAG,sBAAsB,EAAE;YAChD,mBAAmB,GAAG,sBAAsB,CAAC;SAC9C;QACD,EAAE,IAAI,mBAAmB,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAE3C,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,EAAE,GAAG,SAAS,EAAE;YAC7C,CAAC,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;SAC1B;QACD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;SACnB;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAA2B,CAAC;YAG/D,WAAW,CAAC,IAAI,EAAE,CAAC;YAEnB,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAC7B,SAAS;aACV;YAED,MAAM,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;YAEhD,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,EAAE;gBAC9B,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC5B,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;aAC1B;YAED,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,IAAI,yDAAmB,EAAE;gBAEvB,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACpB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjB,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1B,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1B,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACxB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvB,WAAW,CAAC,iBAAiB,EAAE,CAAC;gBAChC,WAAW,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC3C,WAAW,CAAC,kBAAkB,GAAG,KAAK,CAAC;aACxC;iBAAM;gBAKL,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACnC,WAAW,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC3C,MAAM,eAAe,GAAG,GAAG,EAAE;oBAC3B,sDAAO,CACL,WAAW,EACX;wBACE,QAAQ,EAAE,6DAAqB;wBAC/B,CAAC,EAAE,IAAI;wBACP,CAAC,EAAE,CAAC;wBACJ,KAAK;wBACL,QAAQ,EAAE,CAAC;wBACX,OAAO,EAAE,CAAC;wBAEV,MAAM,EAAE,8DAAqB;wBAC7B,QAAQ,EAAE,GAAG,EAAE;4BACb,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;4BACpC,WAAW,CAAC,iBAAiB,EAAE,CAAC;wBAClC,CAAC;qBACF,EACD,CAAC,8DAAwB,CAC1B,CAAC;gBACJ,CAAC,CAAC;gBAEF,IAAI,WAAW,CAAC,kBAAkB,EAAE;oBAElC,WAAW,CAAC,kBAAkB,GAAG,KAAK,CAAC;oBAEvC,MAAM,IAAI,GAAG,2DAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,SAAU,CAAC,CAAC;oBACtE,MAAM,SAAS,GAAG,qEAA+B,CAAC,IAAI,CAAE,CAAC;oBACzD,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBACvC,MAAM,YAAY,GAAG,SAAS,CAAC,mBAAmB,EAAE,CAAC;oBAErD,sDAAO,CACL,WAAW,EACX;wBACE,QAAQ,EAAE,6DAAqB;wBAC/B,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;wBACzB,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;wBACzB,KAAK,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,UAAU;wBAChD,QAAQ,EAAE,CAAC;wBACX,OAAO,EAAE,CAAC;wBAEV,MAAM,EAAE,8DAAqB;wBAC7B,QAAQ,EAAE,GAAG,EAAE;4BACb,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;4BAC1B,eAAe,EAAE,CAAC;wBACpB,CAAC;qBACF,EACD,CAAC,8DAAwB,CAC1B,CAAC;iBACH;qBAAM;oBACL,eAAe,EAAE,CAAC;iBACnB;aACF;YAED,CAAC;gBACC,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,mBAAmB,CAAC;oBACnD,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B;IACH,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;YAChC,WAAsC,CAAC,iBAAiB,EAAE,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEvC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAIxB,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QAEjD,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;YAE5B,OAAO;SACR;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;YACjC,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAe,CAAC;YAInD,IAAI,IAAI,KAAK,SAAS,EAAE;gBACtB,OAAO;aACR;YAED,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;;;;;;;;;;;;;;;;;;;;;;;ACjPyB;AAC6C;AACjC;AAEG;AACT;AACW;AACR;AAEpB,MAAM,SAAU,SAAQ,oDAAW;IAMhD,YAAY,IAAe,EAAE,MAA6B;QACxD,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAGjB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,KAAK,SAAS,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACjE;QACD,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACxB,IAAI,CAAC,KAAK,SAAS,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACjE;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,mDAAU,CAAC;YAC/B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE1B,MAAM,KAAK,GAAG,IAAI,sDAAO,CAAC;YACxB,CAAC,EAAE,IAAI,GAAG,CAAC;YACX,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,GAAG,GAAG,CAAC;YACd,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,GAAG,GAAG,CAAC;YACjB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,kEAA4B,CAAC,IAAI,CAAC,KAAK,CAAC;YAC9C,aAAa,EAAE,QAAQ;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEhB,MAAM,MAAM,GAAG,IAAI,sDAAO,CAAC;YACzB,CAAC,EAAE,GAAG,GAAG,CAAC;YACV,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,GAAG,GAAG,CAAC;YACd,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,GAAG,GAAG,CAAC;YACjB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,kEAA4B,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/C,aAAa,EAAE,QAAQ;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEjB,MAAM,aAAa,GAAG,mFAAyB,CAC7C,IAAI,CAAC,KAAK,EACV,2EAAqC,CACtC,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,mDAAU,CAAC;YAC1B,CAAC,EAAE,IAAI,GAAG,CAAC;YACX,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,GAAG,GAAG,CAAC;YACd,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,GAAG,GAAG,CAAC;YACjB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,0DAAsB,CAC1B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,qDAAe,EACf,aAAa,CACd;YACD,aAAa,EAAE,QAAQ;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC,cAAc,GAAG,IAAI,mDAAU,CAAC;YACnC,CAAC,EAAE,IAAI,GAAG,CAAC;YACX,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,GAAG,GAAG,CAAC;YACd,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,GAAG,GAAG,CAAC;YACjB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAG9B,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YACnC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,wDAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,wDAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAGH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YACnC,gDAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,SAAS,CAAC,eAA8B;QACtC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAE3B,IAAI,eAAe,KAAK,IAAI,EAAE;YAC5B,OAAO;SACR;QAED,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACtC,IAAI,SAAS,KAAK,eAAe,EAAE;gBACjC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAE7B,OAAO;aACR;SACF;QAED,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC9C,IAAI,SAAS,KAAK,eAAe,EAAE;gBACjC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChC,IAAI,2EAAqC,EAAE;oBACzC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;iBAC5B;gBACD,OAAO;aACR;SACF;IACH,CAAC;CACF;;;;;;;;;;;;;;;;;;;ACzJyB;AAEM;AAEjB,MAAM,OAAQ,SAAQ,oDAAW;IAAhD;;QACW,cAAS,GAAG,EAAE,CAAC;IA6C1B,CAAC;IA3CC,OAAO,CAAC,IAAe;QACrB,IAAI,CAAC,GAAG,CAAC,IAA8B,CAAC,CAAC;IAC3C,CAAC;IAED,UAAU,CAAC,KAAa,EAAE,IAAe;QACvC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACxC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,mBAAmB;QACjB,qFAA8C,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAEO,QAAQ;QACd,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACV,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,0DAAoB,EAAE,CAAC;SACrD;IACH,CAAC;IAKO,yBAAyB;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE;YACjD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAC3B;IACH,CAAC;IAID,WAAW,CAAC,eAA8B;QACxC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAiB,EAAE;YAC1D,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;SAClC;IACH,CAAC;CACF;;;;;;;;;;;;;;;;;;;;;;ACpDyB;AAEuB;AAGjB;AACA;AACW;AAE5B,MAAM,WAAY,SAAQ,oDAAW;IAMlD,YAAY,MAA6B,EAAE,IAAU;QACnD,KAAK,CAAC,MAAM,CAAC,CAAC;QANhB,YAAO,GAAG,KAAK,CAAC;QAOd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAErB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAY,CAAC;QAGhC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAExB,IAAI,CAAC,UAAU,GAAG,IAAI,mDAAU,CAAC;YAC/B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,YAAY,EAAE,IAAI,GAAG,CAAC;YACtB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE1B,MAAM,eAAe,GAAG,IAAI,mDAAU,CAAC;YACrC,CAAC,EAAE,GAAG,GAAG,CAAC;YACV,CAAC,EAAE,GAAG,GAAG,CAAC;YACV,KAAK,EAAE,GAAG,GAAG,CAAC;YACd,MAAM,EAAE,GAAG,GAAG,CAAC;YACf,YAAY,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;YAC5B,IAAI,EAAE,MAAM,CAAC,KAA2B;YACxC,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAE1B,IAAI,2EAAqC,EAAE;YACzC,IAAI,uDAAwB,CAAC,qDAAe,CAAC,EAAE;gBAE7C,MAAM,IAAI,GAAG,IAAI,mDAAU,CAAC;oBAC1B,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,KAAK,GAAG,CAAC;oBACZ,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,GAAG,GAAG,CAAC;oBACf,QAAQ,EAAE,GAAG,GAAG,CAAC;oBACjB,UAAU,EAAE,SAAS;oBACrB,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE,OAAO;oBACf,WAAW,EAAE,OAAO,GAAG,CAAC;oBACxB,KAAK,EAAE,QAAQ;oBACf,IAAI,EAAE,MAAM,CAAC,IAA0B;oBACvC,SAAS,EAAE,KAAK;iBACjB,CAAC,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAChB;iBAAM;gBAEL,MAAM,OAAO,GAAG,IAAI,oDAAW,CAAC;oBAC9B,KAAK,EAAE;wBACL,CAAC,EAAE,IAAI;wBACP,CAAC,EAAE,IAAI;qBACR;oBACD,MAAM,EAAE;wBACN,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;wBACT,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;qBACV;oBACD,SAAS,EAAE,CAAC,GAAyB,EAAE,EAAE;wBACvC,iDAAO,CAAC,GAA0C,EAAE,IAAI,CAAC,CAAC;oBAC5D,CAAC;oBACD,SAAS,EAAE,KAAK;iBACjB,CAAC,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;aACnB;SACF;QAED,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,wDAAS,CAAC,IAAI,CAAC,CAAC;YAEhB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,wDAAS,CAAC,IAAI,CAAC,CAAC;YAEhB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;gBAClC,WAAW,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACjC,WAAW,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpD,wDAAS,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChHyB;AAKN;AACiB;AACQ;AACY;AACtB;AACgC;AAChC;AACH;AACI;AACG;AACR;AAEhB,MAAM,IAAK,SAAQ,oDAAW;IAO3C,YAAY,MAA6B;QACvC,KAAK,CAAC,MAAM,CAAC,CAAC;QAJhB,gBAAW,GAAG,MAAM,CAAC;QACrB,mBAAc,GAAG,EAAE,CAAC;QAIlB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAErB,IAAI,CAAC,QAAQ,GAAG,IAAI,oDAAW,CAAC;YAC9B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,KAAK,EAAE,4DAAsB,CAAC,WAAW,CAAE;YAC3C,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAG1C,IAAI,CAAC,OAAO,GAAG,wDAAoB,CAAC,qDAAe,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,IAAI,mDAAU,CAAC;YAChC,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,SAAS;YACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;YACnC,KAAK,EAAE,QAAQ;YACf,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;YACtB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;YACnB,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;YAC3B,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;YAC7B,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,MAAM;YACjB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC7B,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAG3B,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,KAAyC,EAAE,EAAE;YACjE,0CAAY,CAAC,KAAK,EAAE,iEAAqB,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAID,OAAO;QACL,MAAM,SAAS,GAAG,2DAA6B,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,SAAS,KAAK,IAAI,EAAE;YAEtB,IAAI,CAAC,EAAE,CAAC;gBAEN,QAAQ,EAAE,6DAAqB;gBAC/B,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBAEJ,MAAM,EAAE,8DAAqB;gBAC7B,QAAQ,EAAE,GAAG,EAAE;oBACb,MAAM,KAAK,GAAG,uDAAiB,CAAC;oBAChC,IAAI,KAAK,KAAK,SAAS,EAAE;wBACvB,KAAK,CAAC,SAAS,EAAE,CAAC;qBACnB;gBACH,CAAC;aACF,CAAC,CAAC;SACJ;aAAM,IAAI,SAAS,KAAK,UAAU,EAAE;YACnC,uCAAQ,CAAC;gBACP,IAAI,EAAE,2DAAe;gBAErB,MAAM,EAAE,wDAAoB,CAAC,qDAAe,CAAC,GAAG,CAAC;aAClD,CAAC,CAAC;SACJ;IACH,CAAC;IAGD,WAAW;QAIT,IAAI,CAAC,EAAE,CAAC,sBAAsB,EAAE,SAAS,SAAS;YAEhD,IAAI,uFAAkD,EAAE,EAAE;gBACxD,OAAO;aACR;YAED,wDAAyB,EAAE,CAAC;YAC5B,yDAAmB,GAAG,IAAI,CAAC;YAC3B,UAAU,CAAC,GAAG,EAAE;gBACd,4CAAa,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC,EAAE,qDAAa,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAChC,yDAAmB,GAAG,IAAI,CAAC;YAC3B,CAAC,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAKH,IAAI,CAAC,cAAc,GAAG,iBAAiB,EAAE,CAAC;QAC1C,CAAC,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1E,CAAC;IAID,WAAW;QACT,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YACzB,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;gBACtB,wCAAU,CAAC,MAAM,CAAC,CAAC;aACpB;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YACzB,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;gBACtB,wCAAU,CAAC,SAAS,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,KAAyC,EAAE,EAAE;YACjE,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,EAAE;gBAEjD,wCAAU,CAAC,UAAU,CAAC,CAAC;aACxB;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACtB,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;gBACtB,wCAAU,CAAC,MAAM,CAAC,CAAC;aACpB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,OAAO,+DAAyB,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,mDAAS,EAAE,CAAC;IACxE,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAIxC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,GAAG,CAAC;QACZ,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,CAAC,GAAG,IAAI,CAAC;SACV;QACD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACtC,uFAAkD,CAChD,KAAK,KAAK,CAAC,IAAI,CAAC,kEAA4B,CAC7C,CAAC;QACF,uFAAkD,CAChD,KAAK,KAAK,CAAC,IAAI,CAAC,kEAA4B,CAC7C,CAAC;QAIF,IAAI,KAAK,KAAK,CAAC,IAAI,4EAAuC,EAAE,EAAE;YAC5D,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B;IACH,CAAC;IAED,mBAAmB;QACjB,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC;IACzD,CAAC;IAED,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACrB,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL,CAAC,CAAC;QACH,mEAA6B,EAAE,CAAC;IAClC,CAAC;CACF;AAED,SAAS,iBAAiB;IAExB,IAAI,OAAO,GAAG,6BAA6B,CAAC;IAC5C,OAAO,IAAI,+BAA+B,CAAC;IAG3C,IACE,4DAAsB;QAEtB,qEAA+B,KAAK,CAAC;QACrC,mEAA6B,KAAK,IAAI;QACtC,oEAA8B,KAAK,IAAI,EACvC;QACA,MAAM,yBAAyB,GAAG,2DAAwB,CACxD,IAAI,IAAI,CAAC,oEAA8B,CAAC,CACzC,CAAC;QACF,OAAO;YACL,6EAA6E,CAAC;QAChF,OAAO,IAAI,qCAAqC,yBAAyB,gBAAgB,CAAC;QAE1F,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,mEAA6B,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,oEAA8B,CAAC,CAAC;QAC9D,MAAM,mBAAmB,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;QAC3E,MAAM,WAAW,GAAG,gEAAyB,CAAC,mBAAmB,CAAC,CAAC;QACnE,OAAO;YACL,8EAA8E,CAAC;QACjF,OAAO,IAAI,qCAAqC,WAAW,gBAAgB,CAAC;KAC7E;IAED,IAAI,4DAAsB,IAAI,oEAA8B,EAAE;QAC5D,OAAO;YACL,6EAA6E,CAAC;QAChF,MAAM,IAAI,GACR,2DAAqB,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,2DAAqB,CAAC;QACnE,OAAO,IAAI,8BAA8B,IAAI,WAAW,CAAC;QACzD,IAAI,2DAAqB,KAAK,MAAM,EAAE;YACpC,OAAO,IAAI,cAAc,CAAC;SAC3B;QACD,OAAO,IAAI,OAAO,CAAC;KACpB;IAED,OAAO;QACL,4EAA4E,CAAC;IAC/E,OAAO,IAAI,iCAAiC,0DAAoB,gBAAgB,CAAC;IAEjF,IAAI,2DAAqB,EAAE;QACzB,OAAO;YACL,0EAA0E,CAAC;QAC7E,OAAO,IAAI,gBAAgB,CAAC;QAC5B,OAAO,IAAI,qDAAc,CAAC,8DAAwB,CAAC,CAAC;QACpD,OAAO,IAAI,KAAK,CAAC;QACjB,OAAO,IAAI,qDAAc,CAAC,iEAA2B,CAAC,CAAC;QACvD,OAAO,IAAI,OAAO,CAAC;KACpB;IAED,IAAI,8DAAwB,EAAE;QAC5B,OAAO;YACL,4EAA4E,CAAC;QAC/E,OAAO,IAAI,sBAAsB,CAAC;KACnC;IAED,IAAI,+DAAyB,EAAE;QAC7B,OAAO,IAAI,uCAAuC,CAAC;QACnD,OAAO,IAAI,wCAAwC,CAAC;QACpD,OAAO,IAAI,0BAA0B,CAAC;KACvC;IAED,IAAI,+DAAyB,EAAE;QAC7B,OAAO,IAAI,uCAAuC,CAAC;QACnD,OAAO;YACL,8EAA8E,CAAC;QACjF,OAAO,IAAI,qCAAqC,CAAC;KAClD;IAED,IAAI,gEAA0B,EAAE;QAC9B,OAAO;YACL,2EAA2E,CAAC;QAC9E,OAAO,IAAI,yBAAyB,CAAC;KACtC;IAED,IAAI,kEAA4B,EAAE;QAChC,OAAO;YACL,gFAAgF,CAAC;QACnF,OAAO,IAAI,4BAA4B,CAAC;KACzC;IAED,IAAI,iEAA2B,EAAE;QAC/B,OAAO;YACL,iFAAiF,CAAC;QACpF,OAAO,IAAI,2BAA2B,CAAC;KACxC;IAED,IAAI,kEAA4B,EAAE;QAChC,OAAO;YACL,gFAAgF,CAAC;QACnF,OAAO,IAAI,4BAA4B,CAAC;KACzC;IAED,IAAI,2EAAqC,EAAE;QACzC,OAAO,IAAI,uCAAuC,CAAC;QACnD,OAAO;YACL,kEAAkE,CAAC;QACrE,OAAO,IAAI,oCAAoC,CAAC;KACjD;IAED,OAAO,IAAI,OAAO,CAAC;IAEnB,OAAO,OAAO,CAAC;AACjB,CAAC;;;;;;;;;;;;;;;;ACvRc,MAAM,QAAQ;IAA7B;QAEE,cAAS,GAAsB,IAAI,CAAC;QACpC,aAAQ,GAAsB,IAAI,CAAC;QAEnC,eAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;QAEjD,mBAAc,GAAc,EAAE,CAAC;QAC/B,gBAAW,GAAsB,IAAI,CAAC;QACtC,kBAAa,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC5C,gBAAW,GAAiB,EAAE,CAAC;QAC/B,wBAAmB,GAAiB,EAAE,CAAC;QACvC,yBAAoB,GAAiB,EAAE,CAAC;QACxC,eAAU,GAAgB,EAAE,CAAC;QAC7B,cAAS,GAAwB,IAAI,CAAC;QACtC,iBAAY,GAAkB,IAAI,CAAC;QACnC,eAAU,GAAkB,IAAI,CAAC;QACjC,gBAAW,GAAkB,IAAI,CAAC;QAClC,kBAAa,GAAkB,IAAI,CAAC;QACpC,SAAI,GAAgB,IAAI,CAAC;QACzB,gBAAW,GAAmB,IAAI,CAAC;QACnC,kBAAa,GAAuB,IAAI,CAAC;QACzC,6BAAwB,GAAsB,IAAI,CAAC;QACnD,6BAAwB,GAAsB,IAAI,CAAC;QACnD,2BAAsB,GAAsB,IAAI,CAAC;QACjD,iBAAY,GAAmB,IAAI,CAAC;QACpC,qBAAgB,GAAsB,IAAI,CAAC;QAG3C,YAAO,GAAmB,IAAI,CAAC;QAC/B,oBAAe,GAAsB,IAAI,CAAC;QAC1C,0BAAqB,GAA2B,IAAI,CAAC;QACrD,wBAAmB,GAAsB,IAAI,CAAC;QAC9C,6BAAwB,GAAsB,IAAI,CAAC;QACnD,oBAAe,GAAsB,IAAI,CAAC;QAC1C,0BAAqB,GAAsB,IAAI,CAAC;QAGhD,cAAS,GAAuB,IAAI,CAAC;QACrC,oBAAe,GAAsB,IAAI,CAAC;QAC1C,oBAAe,GAA2B,IAAI,CAAC;QAC/C,mBAAc,GAAsB,IAAI,CAAC;QACzC,qBAAgB,GAAsB,IAAI,CAAC;QAC3C,wBAAmB,GAAsB,IAAI,CAAC;QAC9C,mBAAc,GAAsB,IAAI,CAAC;QACzC,qBAAgB,GAAsB,IAAI,CAAC;QAC3C,qBAAgB,GAAsB,IAAI,CAAC;QAC3C,0BAAqB,GAAuB,IAAI,CAAC;QACjD,kBAAa,GAAmB,EAAE,CAAC;QACnC,aAAQ,GAAc,EAAE,CAAC;QACzB,uBAAkB,GAAiB,EAAE,CAAC;QACtC,oBAAe,GAAkB,IAAI,CAAC;QAGtC,oBAAe,GAAuB,IAAI,CAAC;QAC3C,uBAAkB,GAAsB,IAAI,CAAC;QAC7C,4BAAuB,GAAuB,IAAI,CAAC;QACnD,6BAAwB,GAAwB,IAAI,CAAC;QACrD,iCAA4B,GAAuB,IAAI,CAAC;QACxD,aAAQ,GAAuB,IAAI,CAAC;QAGpC,aAAQ,GAAuB,IAAI,CAAC;QACpC,0BAAqB,GAAuB,IAAI,CAAC;QACjD,2BAAsB,GAAuB,IAAI,CAAC;QAClD,kBAAa,GAAyB,IAAI,CAAC;QAC3C,wBAAmB,GAAuB,IAAI,CAAC;QAC/C,oBAAe,GAAiB,EAAE,CAAC;QACnC,qBAAgB,GAAkB,EAAE,CAAC;QACrC,mBAAc,GAAkB,IAAI,CAAC;QACrC,qBAAgB,GAAyB,IAAI,CAAC;QAG9C,sBAAiB,GAA6B,IAAI,CAAC;QAGnD,eAAU,GAAuB,IAAI,CAAC;QACtC,cAAS,GAAsB,IAAI,CAAC;QACpC,wBAAmB,GAAmB,IAAI,CAAC;QAC3C,kBAAa,GAAmB,IAAI,CAAC;QACrC,yBAAoB,GAAkB,IAAI,CAAC;QAC3C,qBAAgB,GAAkB,IAAI,CAAC;QACvC,wBAAmB,GAAkB,IAAI,CAAC;QAC1C,4BAAuB,GAAkB,IAAI,CAAC;QAC9C,qBAAgB,GAAkB,IAAI,CAAC;QACvC,2BAAsB,GAA6B,IAAI,CAAC;QACxD,yBAAoB,GAA6B,IAAI,CAAC;QACtD,oBAAe,GAA2B,IAAI,CAAC;QAC/C,eAAU,GAAuB,IAAI,CAAC;QACtC,oBAAe,GAAuB,IAAI,CAAC;QAC3C,oBAAe,GAAuB,IAAI,CAAC;QAC3C,mBAAc,GAAkB,IAAI,CAAC;QACrC,2BAAsB,GAAuB,IAAI,CAAC;QAClD,0BAAqB,GAAkB,IAAI,CAAC;QAG5C,cAAS,GAAuB,IAAI,CAAC;QACrC,cAAS,GAAsB,IAAI,CAAC;QACpC,gBAAW,GAAkB,IAAI,CAAC;QAGlC,kBAAa,GAAyB,IAAI,CAAC;QAG3C,WAAM,GAAY,EAAE,CAAC;QACrB,iBAAY,GAAyB,IAAI,CAAC;QAC1C,WAAM,GAAwB,IAAI,CAAC;QACnC,WAAM,GAAwB,IAAI,CAAC;QACnC,wBAAmB,GAAkB,IAAI,CAAC;QAC1C,wBAAmB,GAAuB,IAAI,CAAC;QAC/C,6BAAwB,GAAuB,IAAI,CAAC;QACpD,yBAAoB,GAAuB,IAAI,CAAC;QAChD,8BAAyB,GAAuB,IAAI,CAAC;IACvD,CAAC;CAAA;;;;;;;;;;;;;;;;;;;;;AC3IyB;AAEe;AACT;AACU;AAE3B,MAAM,aAAc,SAAQ,oDAAW;IAYpD,YAAY,IAAY,EAAE,IAAY;QACpC,KAAK,CAAC;YACJ,CAAC,EAAE,GAAG,GAAG,IAAI;YACb,CAAC,EAAE,IAAI,GAAG,IAAI;YACd,KAAK,EAAE,GAAG,GAAG,IAAI;YACjB,MAAM,EAAE,IAAI,GAAG,IAAI;YACnB,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,GAAG,GAAG,IAAI;YACrB,UAAU,EAAE,IAAI,GAAG,IAAI;YACvB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAvBL,WAAM,GAA6C,EAAE,CAAC;QACtD,YAAO,GAAwB,IAAI,CAAC;QACpC,eAAU,GAAwB,IAAI,CAAC;QAE/B,eAAU,GAA+B,EAAE,CAAC;QAC5C,qBAAgB,GAA+B,EAAE,CAAC;QAClD,iBAAY,GAAG,KAAK,CAAC;QAErB,aAAQ,GAAG,EAAE,CAAC;QAkBpB,MAAM,IAAI,GAAG,IAAI,mDAAU,CAAC;YAC1B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,GAAG,GAAG,IAAI;YACjB,MAAM,EAAE,IAAI,GAAG,IAAI;YACnB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,GAAG;YACZ,YAAY,EAAE,IAAI,GAAG,IAAI;YACzB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,qEAA8B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAG3C,IAAI,CAAC,WAAW,GAAG;YACjB,QAAQ,EAAE,KAAK,GAAG,IAAI;YACtB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,OAAO;YACb,CAAC,EAAE,IAAI,GAAG,IAAI;YACd,CAAC,EAAE,IAAI,GAAG,IAAI;YACd,KAAK,EAAE,IAAI,GAAG,IAAI;YAClB,MAAM,EAAE,IAAI,GAAG,IAAI;YACnB,SAAS,EAAE,KAAK;SACjB,CAAC;QAGF,IAAI,CAAC,cAAc,GAAG;YACpB,QAAQ,EAAE,KAAK,GAAG,IAAI;YACtB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,SAAS;YACf,CAAC,EAAE,IAAI,GAAG,IAAI;YACd,CAAC,EAAE,IAAI,GAAG,IAAI;YACd,KAAK,EAAE,IAAI,GAAG,IAAI;YAClB,MAAM,EAAE,IAAI,GAAG,IAAI;YACnB,SAAS,EAAE,KAAK;SACjB,CAAC;QAGF,MAAM,mBAAmB,GAAG;YAC1B,QAAQ,EAAE,KAAK,GAAG,IAAI;YACtB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,OAAO;YACb,CAAC,EAAE,IAAI,GAAG,IAAI;YACd,CAAC,EAAE,IAAI,GAAG,IAAI;YACd,KAAK,EAAE,IAAI,GAAG,IAAI;YAClB,MAAM,EAAE,IAAI,GAAG,IAAI;YACnB,SAAS,EAAE,KAAK;SACjB,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,IAAI,sDAAO,CAAC,mBAAmB,CAAC,CAAC;QAC9D,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAChC,4CAA4C,CAC7C,CAAC;QACF,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAA8C,CAAC,CAAC;QAE9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gEAA0B,EAAE,CAAC,EAAE,EAAE;YACnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClC;IACH,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,GAAW;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAGzB,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;IACH,CAAC;IAGD,IAAI;QAEF,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,iBAAiB,CAAC,UAAkB;QAClC,MAAM,WAAW,GAAG,4EAAsC,CACxD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,CAC9B,CAAC;QACF,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CACb,0BAA0B,UAAU,wBAAwB,CAC7D,CAAC;SACH;QAED,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QAED,IAAI,CAAC,OAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,UAAW,CAAC,IAAI,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;YACzC,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;SACnC;aAAM;YACL,IAAI,CAAC,UAAU,CAAC,WAAW,CAAE,CAAC,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAE,CAAC,IAAI,EAAE,CAAC;SAC5C;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,IAAI,gEAA0B,KAAK,IAAI,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACjE;QACD,qEAA+B,EAAE,CAAC;QAClC,kEAA4B,EAAE,CAAC;QAE/B,mEAA6B,CAAC,WAAW,EAAE,GAAG,EAAE;;YAC9C,IAAI,gEAA0B,KAAK,IAAI,EAAE;gBACvC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;aACjE;YACD,oEAA8B,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;YAClC,UAAI,CAAC,UAAU,CAAC,WAAW,CAAC,0CAAE,IAAI,EAAE,CAAC;YACrC,UAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,0CAAE,IAAI,EAAE,CAAC;YAE3C,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;gBACrD,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;YAED,IAAI,CAAC,OAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,UAAW,CAAC,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,qEAA+B,EAAE,CAAC;YAElC,kEAA4B,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,OAAO,GAAG,IAAI,kDAAY,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAiC,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,IAAI,kDAAY,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAoC,CAAC,CAAC;IACtD,CAAC;IAEO,aAAa,CAAC,CAAS;QAC7B,MAAM,SAAS,GAAG,IAAI,kDAAY,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpE,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,SAAmC,CAAC,CAAC;QAE9C,MAAM,eAAe,GAAG,IAAI,kDAAY,CACtC,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,QAAQ,CACd,CAAC;QACF,eAAe,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,eAAyC,CAAC,CAAC;IACtD,CAAC;IAEO,WAAW;;QACjB,MAAM,UAAU,GAAG,CACjB,GAAiB,EACjB,OAAqB,EACrB,IAAY,EACZ,IAAY,EACZ,EAAE;YACF,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACvB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;YACrD,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC/B,UAAU,CACR,IAAI,CAAC,OAAQ,EACb,IAAI,CAAC,UAAW,EAChB,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,IAAI,CACd,CAAC;YACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gEAA0B,EAAE,CAAC,EAAE,EAAE;gBACnD,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,kEAA4B,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC7D,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;wBAC/B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;qBACvB;oBACD,UAAU,CACR,IAAI,CAAC,UAAU,CAAC,CAAC,CAAE,EACnB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAE,EACzB,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,IAAI,CACd,CAAC;oBACF,MAAM;iBACP;aACF;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAQ,CAAC,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAW,CAAC,WAAW,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gEAA0B,EAAE,CAAC,EAAE,EAAE;YACnD,UAAI,CAAC,UAAU,CAAC,CAAC,CAAC,0CAAE,WAAW,EAAE,CAAC;YAClC,UAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,0CAAE,WAAW,EAAE,CAAC;SACzC;QACD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,KAAK;;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,UAAI,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;QACtB,UAAI,CAAC,UAAU,0CAAE,KAAK,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gEAA0B,EAAE,CAAC,EAAE,EAAE;YACnD,UAAI,CAAC,UAAU,CAAC,CAAC,CAAC,0CAAE,KAAK,EAAE,CAAC;YAC5B,UAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,0CAAE,KAAK,EAAE,CAAC;SACnC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnPyB;AACiB;AAC+B;AACM;AACrB;AAChB;AACM;AAIJ;AAE2B;AACnB;AAI0B;AAGtC;AACG;AAEZ;AACmB;AACE;AACZ;AACD;AAMN;AACD;AAEjC,MAAM,eAAe,GAAG,WAAW,CAAC;AAErB,MAAM,UACnB,SAAQ,oDAAW;IA2FnB,YACE,KAAa,EACb,SAAwB,EACxB,IAAmB,EACnB,OAAgB;QAEhB,KAAK,EAAE,CAAC;QAxFV,UAAK,GAAuB,IAAI,CAAC;QACzB,mBAAc,GAAsB,EAAE,CAAC;QAC/C,WAAM,GAAe,SAAS,CAAC;QACvB,YAAO,GAAG,KAAK,CAAC;QACxB,aAAQ,GAAG,KAAK,CAAC;QACjB,sBAAiB,GAAG,KAAK,CAAC;QAC1B,sBAAiB,GAAyC,IAAI,CAAC;QAGvD,aAAQ,GAAG,EAAE,CAAC;QAad,UAAK,GAAuB,IAAI,CAAC;QACjC,cAAS,GAAuB,IAAI,CAAC;QAoCrC,cAAS,GAAG,KAAK,CAAC;QASlB,sBAAiB,GAAkB,IAAI,CAAC;QAKxC,iBAAY,GAAkB,IAAI,CAAC;QAuG3C,0BAAqB,GAAG,oEAAqC,CAAC;QAC9D,cAAS,GAAG,wDAAyB,CAAC;QA+hB9B,wBAAmB,GAAG,GAAG,EAAE;YACjC,IAAI,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,GAAG,+CAAM,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEM,wBAAmB,GAAG,GAAG,EAAE;YACjC,IAAI,CAAC,KAAM,CAAC,CAAC,CAAC,IAAI,GAAG,+CAAM,CAAC,CAAC;QAC/B,CAAC,CAAC;QA7nBA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAGvB,IAAI,CAAC,KAAK,CAAC,+CAAM,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,+CAAM,CAAC,CAAC;QACpB,IAAI,CAAC,CAAC,CAAC,+CAAM,GAAG,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,CAAC,CAAC,+CAAM,GAAG,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC;YACV,CAAC,EAAE,GAAG,GAAG,+CAAM;YACf,CAAC,EAAE,GAAG,GAAG,+CAAM;SAChB,CAAC,CAAC;QAIH,MAAM,YAAY,GAAG,iFAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,YAAY;YACf,SAAS;YACT,IAAI;SACL,CAAC;QAMF,IAAI,CAAC,IAAI,GAAG,mDAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpB,IAAI,CAAC,WAAW,GAAG,yDAA0B,EAAE,CAAC;QAChD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,2DAA4B,EAAE,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,4DAA6B,EAAE,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE9B,MAAM,IAAI,GAAG,kDAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExB,IAAI,CAAC,iBAAiB,GAAG,+DAAgC,CACvD,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAClC,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEjC,MAAM,aAAa,GAAG,4DAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,aAAa,KAAK,IAAI,EAAE;YAC1B,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACtB;QAED,IAAI,CAAC,aAAa,GAAG,kDAAmB,CACtC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EACjC,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,CACrC,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE7B,IAAI,CAAC,QAAQ,GAAG,sDAAuB,EAAE,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,oDAAqB,EAAE,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,6DAA8B,EAAE,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/B,IAAI,CAAC,kBAAkB,GAAG,gEAAiC,CACzD,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAClC,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAGlC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAG7B,IAAI,CAAC,OAAO,GAAG,IAAI,kDAAW,CAAC,IAAI,CAAC,CAAC;QAGrC,IAAI,SAAS,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;YACvC,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;IACH,CAAC;IA1ID,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAMD,IAAI,KAAK;;QACP,OAAO,CACL,uEAAa,0CAAE,QAAQ,EAAE,0CAAE,YAAY,0CAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAChE,IAAI,CAAC,MAAM,CACZ,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,KAAgB;QACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,mEAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAGD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAGD,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAGD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IA2GD,eAAe;QACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YAGvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC5B;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YAGtB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAC3B;QAED,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACvC,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,eAAe,CAAC,QAAoB;QAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,QAAQ,EAAE,CAAC;YACX,OAAO;SACR;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IASD,YAAY;QACV,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAG5C,MAAM,WAAW,GAAG,uDAAO,CAAC,SAAS,CAAC,CAAC;QAEvC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAGpD,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC;QACjC,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAC5B;QAID,IAAI,UAAU,KAAK,WAAW,EAAE;YAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;SAC/B;aAAM;YACL,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACjE;QACD,IAAI,UAAU,KAAK,+DAAiB,EAAE;YACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC1B;aAAM;YACL,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;SAChC;QAID,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAC9B,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,CACZ,CAAC;QAGF,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAGzE,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,oEAA6B,EAAE,CAAC;IAClC,CAAC;IAED,eAAe;QAOb,IAAI,wEAAiC,KAAK,IAAI,EAAE;YAC9C,MAAM,eAAe,GACnB,0FAAmD,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxE,IAAI,eAAe,KAAK,SAAS,EAAE;gBACjC,OAAO,eAAe,CAAC;aACxB;SACF;QAID,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,6DAAe,EAAE;YACvC,OAAO;gBACL,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;gBAC/B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;aACtB,CAAC;SACH;QAGD,MAAM,YAAY,GAAG,mEAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,YAAY,KAAK,SAAS,EAAE;YAC9B,MAAM,IAAI,KAAK,CACb,8DAA8D,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CACjF,CAAC;SACH;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,aAAa,CAAC,YAA0B,EAAE,WAAiB;;QAEzD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;gBAC9D,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aACjD;YAED,OAAO,WAAW,CAAC;SACpB;QAGD,IAAI,YAAY,CAAC,SAAS,KAAK,IAAI,EAAE;YACnC,OAAO,CACL,gEAAe,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,mCAAI,WAAW,CACrE,CAAC;SACH;QAID,MAAM,iBAAiB,GAAG,8EAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,iBAAiB,KAAK,IAAI,EAAE;YAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;SAC9C;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,aAAa,CAAC,YAA0B;QAEtC,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;gBACzD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aACxB;YAED,OAAO,+DAAiB,CAAC;SAC1B;QAMD,MAAM,QAAQ,GAAG,yEAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAExD,IACE,QAAQ,KAAK,IAAI;YACjB,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,6DAAe;YACnC,CAAC,6DAAsB,EACvB;YACA,OAAO,QAAQ,CAAC;SACjB;QAGD,IAAI,YAAY,CAAC,IAAI,KAAK,IAAI,EAAE;YAC9B,OAAO,YAAY,CAAC,IAAI,CAAC;SAC1B;QAGD,IAAI,QAAQ,KAAK,IAAI,EAAE;YACrB,OAAO,QAAQ,CAAC;SACjB;QAED,OAAO,+DAAiB,CAAC;IAC3B,CAAC;IAED,kBAAkB;QAChB,IAAI,wEAAiC,KAAK,IAAI,EAAE;YAC9C,MAAM,eAAe,GACnB,0FAAmD,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxE,IAAI,eAAe,KAAK,SAAS,EAAE;gBACjC,OAAO,eAAe,CAAC;aACxB;YAED,IAAI,4DAAqB,EAAE;gBACzB,MAAM,aAAa,GAAG,uFAA6B,CACjD,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,CACX,CAAC;gBACF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9B,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;oBAC3C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;iBAC5B;aACF;SACF;QAID,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,6DAAe,EAAE;YACvC,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;QAED,OAAO,mEAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,uBAAuB;QACrB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACtD,IAAI,SAAS,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;YACvC,OAAO,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;SAC5B;QAED,MAAM,+BAA+B,GACnC,wEAAiC,KAAK,IAAI,IAAI,4DAAqB;YACjE,CAAC,CAAC,uFAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;YACtD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC;QACxC,OAAO,+BAA+B,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,CACpE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAC3B,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,UAAU,KAAK,UAAU,IAAI,KAAK,KAAK,KAAK,CACtE,CACF,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,IAAI,wEAAiC,KAAK,IAAI,EAAE;YAC9C,OAAO,KAAK,CAAC;SACd;QAED,MAAM,eAAe,GACnB,0FAAmD,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO,CACL,eAAe,KAAK,SAAS;YAC7B,eAAe,CAAC,IAAI,KAAK,IAAI;YAC7B,eAAe,CAAC,SAAS,KAAK,IAAI,CACnC,CAAC;IACJ,CAAC;IAED,WAAW,CACT,YAAqB,EACrB,UAAgB,EAChB,UAAkB,EAClB,WAAiB;QAGjB,IAAI,YAAY,EAAE;YAChB,OAAO,eAAe,CAAC;SACxB;QAGD,IACE,IAAI,CAAC,IAAI,CAAC,KAAK;YACf,CAAC,IAAI,CAAC,OAAO;YACb,CAAC,iDAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/B,CAAC,oDAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,4DAAqB,EACrB;YACA,OAAO,eAAe,CAAC;SACxB;QAID,IACE,CAAC,0EAAmC;YAClC,uDAAwB,CAAC,IAAI,CAAC,OAAO,CAAC;YACtC,kDAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,+DAAiB,CAAC,EAChE;YACA,OAAO,eAAe,CAAC;SACxB;QAED,OAAO,QAAQ,UAAU,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;IACjD,CAAC;IAMD,SAAS;QACP,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC7D,CAAC;IAEO,mBAAmB;QACzB,OAAO,CACL,CAAC,iDAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,oDAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CACtE,CAAC;IACJ,CAAC;IAEO,oBAAoB;QAC1B,OAAO,CACL,IAAI,CAAC,mBAAmB,EAAE;YAC1B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,4DAAqB,CAAC;YAC7C,CAAC,gDAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CACnD,CAAC;IACJ,CAAC;IAEO,wBAAwB;QAC9B,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,SAAS;YACnB,IAAI,CAAC,mBAAmB,EAAE;YAE1B,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC5B,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAC/B,4DAAqB,CACtB,CAAC;IACJ,CAAC;IAEO,uBAAuB;QAC7B,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,QAAQ;YAClB,IAAI,CAAC,mBAAmB,EAAE;YAE1B,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC5B,4DAAqB,CACtB,CAAC;IACJ,CAAC;IAMD,UAAU;QACR,IAAK,QAIJ;QAJD,WAAK,QAAQ;YACX,2CAAM;YACN,mDAAU;YACV,6CAAO;QACT,CAAC,EAJI,QAAQ,KAAR,QAAQ,QAIZ;QAED,MAAM,SAAS,GAAG,CAChB,QAAkB,EAClB,gBAAyB,EACzB,GAA0B,EAC1B,CAAc,EACd,EAAE;YACF,QAAQ,QAAQ,EAAE;gBAChB,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACrB,GAAG,CAAC,IAAI,EAAE,CAAC;oBACX,CAAC,CAAC,IAAI,EAAE,CAAC;oBACT,MAAM;iBACP;gBACD,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACpB,GAAG,CAAC,IAAI,EAAE,CAAC;oBACX,CAAC,CAAC,IAAI,EAAE,CAAC;oBACT,MAAM;iBACP;gBACD,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC;oBACxB,GAAG,CAAC,IAAI,EAAE,CAAC;oBACX,CAAC,CAAC,IAAI,EAAE,CAAC;oBACT,MAAM;iBACP;gBACD;oBACE,MAAM;aACT;YAGD,IAAI,GAAG,YAAY,uDAAO,EAAE;gBAC1B,IAAI,gBAAgB,IAAI,QAAQ,KAAK,QAAQ,CAAC,MAAM,EAAE;oBACpD,GAAG,CAAC,gBAAgB,EAAE,CAAC;iBACxB;qBAAM;oBACL,GAAG,CAAC,gBAAgB,EAAE,CAAC;iBACxB;aACF;QACH,CAAC,CAAC;QAEF,MAAM,aAAa,GAAe,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CACtD,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CACtB,CAAC;QACF,MAAM,aAAa,GAAe,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK;YACnC,aAAa,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;QAExC,MAAM,aAAa,GAAG,uFAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,MAAM,sBAAsB,GAAG,UAAU;YACvC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB;YACnC,CAAC,CAAC,aAAa,CAAC;QAClB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO;YAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB;YACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QAG7B,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,sBAAsB,EAAE;YAEtD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CACjC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAC1C;gBACC,CAAC,CAAC,QAAQ,CAAC,OAAO;gBAClB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;YAGxB,aAAa,CAAC,SAAS,CAAC;gBACtB,aAAa,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,OAAO;oBAC3C,CAAC,CAAC,QAAQ,CAAC,OAAO;oBAClB,CAAC,CAAC,QAAQ,CAAC;YACf,aAAa,CAAC,IAAI,CAAC;gBACjB,aAAa,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;SAC1E;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE;YACtD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE;gBAExC,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;aACpC;SACF;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE;YACtD,IAAI,IAAI,GAAG,CAAC,EAAE;gBAEZ,SAAS;aACV;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxE,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE;gBACxC,SAAS,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;aAClD;SACF;IACH,CAAC;IAMD,gBAAgB,CACd,YAAqB,EACrB,UAAgB,EAChB,UAAkB,EAClB,WAAiB;QAGjB,IACE,0EAAmC;YACnC,uDAAwB,CAAC,IAAI,CAAC,OAAO,CAAC;YACtC,kDAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;YACjC,YAAY,EACZ;YACA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACtB;aAAM;YACL,MAAM,WAAW,GAAG,UAAU,KAAK,WAAW,CAAC;YAC/C,MAAM,WAAW,GAAG,UAAU,KAAK,+DAAiB,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SACpC;QAGD,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB,IAAI,CAAC,IAAI,CAAC,UAAU;YAClB,CAAC,IAAI,CAAC,OAAO;YACb,CAAC,iDAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/B,CAAC,oDAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,4DAAqB,CACxB,CAAC;QAGF,IAAI,CAAC,MAAM,CAAC,OAAO,CACjB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAChB,CAAC,IAAI,CAAC,OAAO;YACb,CAAC,iDAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/B,CAAC,oDAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,4DAAqB,CACxB,CAAC;QAGF,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,iEAA0B,KAAK,IAAI,EAAE;YAC9D,IACE,IAAI,CAAC,gBAAgB,KAAK,IAAI;gBAC9B,IAAI,CAAC,WAAW,KAAK,6DAAe,EACpC;gBACA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aACnB;iBAAM;gBACL,IAAI,CAAC,iBAAiB,CACpB,IAAI,CAAC,gBAAgB,EACrB,qFAA8C,CAAC,IAAI,CAAC,gBAAgB,CAAC,CACtE,CAAC;aACH;SACF;QAGD,IAAI,CAAC,IAAI,CAAC,aAAa,CACrB,IAAI,CAAC,WAAW,KAAK,6DAAe,IAAI,CAAC,+DAAwB,CAClE,CAAC;IACJ,CAAC;IAGD,iBAAiB,CAAC,SAAiB,EAAE,SAAyB;QAC5D,IAAI,CAAC,4DAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAChD,OAAO;SACR;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAE3C,IAAI,eAAe,CAAC;QACpB,IAAI,sDAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAGzC,eAAe;gBACb,SAAS,KAAK,6DAAiB,IAAI,SAAS,KAAK,+DAAmB,CAAC;SACxE;aAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YAExB,eAAe,GAAG,IAAI,CAAC;SACxB;aAAM;YACL,eAAe,GAAG,KAAK,CAAC;SACzB;QAED,IAAI,CAAC,KAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACrC,IAAI,CAAC,eAAe,EAAE;YACpB,OAAO;SACR;QAED,IAAI,CAAC,KAAM,CAAC,QAAQ,CAAC,SAAS,KAAK,6DAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,SAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YAIzB,IAAI,CAAC,SAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5C;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;YAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B;IACH,CAAC;IAUD,SAAS;QACP,MAAM,EAAE,YAAY,EAAE,GAAG,oDAAa,CAAC;QACvC,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB,OAAO;SACR;QAED,IAAI,MAAM,CAAC;QACX,IACE,IAAI,CAAC,gBAAgB,KAAK,IAAI;YAC9B,IAAI,CAAC,WAAW,KAAK,IAAI;YACzB,IAAI,CAAC,WAAW,KAAK,6DAAe,EACpC;YACA,MAAM,GAAG,sEAA0B,CAAC;SACrC;aAAM;YACL,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC3E;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,4DAAgB,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,+DAAmB,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,MAAM,KAAK,+DAAmB,CAAC,CAAC;IAC5E,CAAC;IAEO,MAAM,CAAC,GAAY;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC;QAC1E,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACxC;aAAM;YACL,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACxC;IACH,CAAC;IAEO,YAAY,CAAC,GAAY;QAC/B,OAAO,CACL,GAAG;YACH,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC5B,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC1B,mFAA4C;YAC5C,CAAC,0EAAmC;YACpC,CAAC,mEAA4B,CAC9B,CAAC;IACJ,CAAC;IAEO,OAAO,CAAC,OAAgB;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kDAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAEO,aAAa,CAAC,OAAgB;QAEpC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,KAAK,CAAC,EAAE;YAClE,OAAO,IAAI,CAAC;SACb;QAED,OAAO,CACL,OAAO;YACP,CAAC,gDAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;YAC9B,CAAC,iDAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/B,CAAC,oDAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,CAAC,CAAC,4DAAqB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3C,CAAC,CAAC,4DAAqB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YAC/C,CAAC,4DAA6B,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5C,CAAC,+DAAwB;YACzB,CAAC,0EAAmC,CACrC,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,QAAiB;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAEO,iBAAiB,CAAC,QAAiB;QACzC,OAAO,CACL,QAAQ;YACR,CAAC,iDAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/B,CAAC,oDAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,CAAC,0EAAmC,CACrC,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,QAAQ,GAAG,IAAI;QAE7B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ;YAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,+CAAM,CAAC;YAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,+CAAM,CAAC,CAAC;QAC9B,IAAI,0DAAmB,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;SACvC;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAEX,aAAa,EAAE,YAAY;gBAC3B,aAAa,EAAE,YAAY;gBAC3B,QAAQ;aACT,CAAC,CAAC;SACJ;IACH,CAAC;IAED,uBAAuB;QAErB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE;YAC/B,OAAO;SACR;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAK/B,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,EAAE;YAChD,CAAC,CAAC,GAAG,GAAG,+CAAM;YACd,CAAC,CAAC,GAAG,GAAG,+CAAM,CAAC;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,+CAAM,CAAC,CAAC,CAAC,GAAG,GAAG,+CAAM,CAAC;QAC7D,MAAM,OAAO,GAAG,WAAW,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,+CAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,0DAAmB,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACvB;aAAM;YACL,uDAAO,CACL,IAAI,EACJ;gBACE,OAAO;gBACP,OAAO;gBACP,QAAQ;aACT,EACD,KAAK,CACN,CAAC;SACH;IACH,CAAC;IAEO,uBAAuB;QAE7B,MAAM,sBAAsB,GAC1B,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,sEAA+B;YACvD,CAAC,6DAAsB,CAAC;QAE1B,OAAO,CACL,IAAI,CAAC,oBAAoB,EAAE;YAC3B,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YACzB,CAAC,CAAC,wEAAiC,IAAI,sBAAsB,CAAC,CAC/D,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAGpC,IACE,OAAO;YACP,CAAC,4DAAqB;YACtB,CAAC,6DAAsB;YACvB,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAC3B;YACA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;SACnC;QAED,oEAA6B,EAAE,CAAC;IAClC,CAAC;IAED,uBAAuB;;QAGrB,IAAI,4DAAqB,EAAE;YACzB,MAAM,OAAO,GAAG,yEAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,mCAAI,EAAE,CAAC;YAC1E,OAAO,OAAO,KAAK,EAAE,CAAC;SACvB;QAGD,IAAI,wEAAiC,KAAK,IAAI,EAAE;YAC9C,MAAM,EAAE,iBAAiB,EAAE,GAAG,wEAAiC,CAAC;YAChE,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,eAAe,KAAK,SAAS,EAAE;gBACjC,OAAO,KAAK,CAAC;aACd;SACF;QAID,MAAM,IAAI,GAAG,mEAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,OAAO,KAAK,CAAC;SACd;QACD,KAAK,MAAM,UAAU,IAAI,IAAI,EAAE;YAC7B,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAMD,mBAAmB,CAAC,MAAc;QAChC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAInC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,mEAA4B,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAGvB,mEAA4B,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,mEAA4B,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;QAGjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,aAAa;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,IACE,WAAW,KAAK,SAAS;YACzB,WAAW,CAAC,MAAM,KAAK,IAAI;YAC3B,WAAW,CAAC,MAAM,KAAK,SAAS;YAChC,4DAAqB,KAAK,IAAI,EAC9B;YAEA,OAAO;SACR;QACD,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnC,MAAM,KAAK,GAAG,2EAAoC,EAAE,GAAG,+CAAM,CAAC;QAC9D,IAAI,0DAAmB,EAAE;YACvB,WAAW,CAAC,iBAAiB,EAAE,CAAC;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,WAAW,CAAC,IAAI,EAAE,CAAC;SACpB;aAAM;YACL,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,GAAG,GAAG,WAAW,CAAC,mBAAmB,EAAE,CAAC;YAC9C,gEAAyB,CAAC,WAAqC,CAAC,CAAC;YACjE,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAGrC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,uDAAO,CACL,WAAW,EACX;gBACE,QAAQ,EAAE,8DAAqB;gBAC/B,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,KAAK;gBACL,QAAQ,EAAE,CAAC;gBAEX,MAAM,EAAE,8DAAqB;gBAC7B,QAAQ,EAAE,GAAG,EAAE;oBACb,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACxB,WAAW,CAAC,iBAAiB,EAAE,CAAC;oBAChC,WAAW,CAAC,IAAI,EAAE,CAAC;oBACnB,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACrC,CAAC;aACF,EACD,IAAI,CACL,CAAC;SACH;IACH,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAGnC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE;YACjC,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,CAAC,KAAK,CAAC,KAAK,qDAAqD,CAChG,CAAC;SACH;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,sEAA+B,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,CAAC,KAAK,CAAC,KAAK,2DAA2D,IAAI,CAAC,KAAK,CAAC,SAAS,gBAAgB,CAC9I,CAAC;SACH;QACD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAIhC,SAAS,CAAC,SAAS,EAAE,CAAC;QAGtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAGnC,MAAM,IAAI,GAAG,sEAA+B,CAAC,MAAM,CAAE,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAG3B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAGnC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE;YACjC,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,CAAC,KAAK,CAAC,KAAK,sDAAsD,CACjG,CAAC;SACH;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,yEAAkC,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,YAAY,KAAK,SAAS,EAAE;YAC9B,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,CAAC,KAAK,CAAC,KAAK,+DAA+D,IAAI,CAAC,KAAK,CAAC,SAAS,gBAAgB,CAClJ,CAAC;SACH;QACD,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QASnC,KAAK,MAAM,KAAK,IAAI,qEAA8B,EAAE;YAGlD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;gBAC1B,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;aACtB;SACF;QAGD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAMD,2BAA2B;QAEzB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAIvB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE;YAI/B,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;gBAClD,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;YACD,OAAO;SACR;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,kBAAkB;QAChB,MAAM,OAAO,GAAG,yFAAmD,EAAE,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,2EAAqC,EAAE,GAAG,+CAAM,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAChB,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,KAAK;SACT,CAAC,CAAC;IACL,CAAC;IAMD,OAAO,CAAC,IAAY;QAClB,wCAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClC,2CAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,IAAI,KAAK,EAAE,EAAE;YACf,yCAAU,CAAC,IAAI,CAAC,CAAC;SAClB;IACH,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,MAAM,YAAY,GAAG,mEAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;QACzE,MAAM,QAAQ,GAAG,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,QAAQ,KAAK,EAAE,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;SAC3B;aAAM;YACL,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,MAAM,WAAW,GAAG,iEAAS,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACtD,MAAM,aAAa,GACjB,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,GAAG,CAAC;YACxD,MAAM,YAAY,GAAG,GAAG,aAAa,KAAK,IAAI,GAAG,CAAC;YAElD,IAAI,iEAAS,CAAC,WAAW,EAAE,iEAAS,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE;gBACjE,OAAO;aACR;YACD,IAAI,CAAC,sEAAc,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE;gBAC9C,IAAI,CAAC,OAAO,CAAC,GAAG,QAAQ,OAAO,IAAI,GAAG,CAAC,CAAC;aACzC;iBAAM;gBACL,IAAI,CAAC,OAAO,CAAC,GAAG,QAAQ,MAAM,YAAY,EAAE,CAAC,CAAC;aAC/C;SACF;IACH,CAAC;IAED,gBAAgB;QACd,MAAM,IAAI,GAAG,mEAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5D,gFAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAIvD,IAAI,CAAC,YAAY,EAAE,CAAC;QAGpB,IAAI,CAAC,UAAU,EAAE,CAAC;QAGlB,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,oEAA6B,EAAE,CAAC;IAClC,CAAC;IAED,kBAAkB;QAIhB,IACE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAC3B,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CACpB,CAAC,sDAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CACxD,EACD;YAEA,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;IACH,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;YAE5B,OAAO;SACR;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,mBAAmB;;QACjB,MAAM,KAAK,GAAG,UAAI,CAAC,KAAK,CAAC,SAAS,mCAAI,CAAC,CAAC;QACxC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,SAAS,SAAS,CAAC,KAAY;YAC7B,OAAO,uBAAuB,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,IAAI,SAAS,CAAC;QAC7E,CAAC;QACD,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;SACrC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;aAC/B;YACD,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC3D;QACD,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,sDAAuB,CAAC,OAAO,CAAC,EAAE;gBACpC,KAAK,CAAC,IAAI,CACR,YAAY,SAAS,CACnB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAClD,EAAE,CACJ,CAAC;aACH;YACD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE;gBACpC,MAAM,eAAe,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC/D,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,OAAO,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,CAC/D,CAAC;aACH;YACD,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC3C;QACD,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;SAC5C;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;SAC9C;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;SAC7C;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;SAC/C;QACD,IAAI,OAAO,CAAC,gBAAgB,EAAE;YAC5B,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1E,KAAK,CAAC,IAAI,CACR,cAAc,OAAO,CAAC,WAAW,yBAAyB,aAAa,QAAQ,CAChF,CAAC;SACH;QACD,MAAM,YAAY,GAAG,oDAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/D,OAAO,mEACL,IAAI,CAAC,WACP,KAAK,YAAY,UAAU,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IACxD,CAAC;CACF;;;;;;;;;;;;;;;;;;;;;;;;;ACvwCsC;AACkB;AACd;AACU;AAClB;AACH;AAEe;AACd;AACE;AAEpB,SAAS,eAAe,CAErC,KAAyC;IAIzC,IACE,CAAC,8DAAwB,IAAI,yEAAmC,CAAC;QACjE,2DAAqB,EACrB;QACA,OAAO;KACR;IAGD,IAAI,IAAI,CAAC,QAAQ,EAAE;QACjB,OAAO;KACR;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC;IAC7B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAE3B,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;KAC7B;SAAM,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAElC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;KAC/B;SAAM,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAElC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;KAC9B;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAgB,EAAE,KAAiB;IAIpD,IACE,sEAAgC,KAAK,IAAI;QACzC,8EAAwC;QACxC,uEAAiC,KAAK,IAAI,EAC1C;QACA,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO;KACR;IAED,IACE,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,OAAO;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,6DAAe;QAEnC,uEAAiC,KAAK,IAAI,EAC1C;QACA,OAAO;KACR;IAED,IAAI,KAAK,CAAC,MAAM,EAAE;QAIhB,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE;YAEpC,+DAAiC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACxD;aAAM;YAKL,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YACpC,gDAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACvC,+DAAiC,CAAC,YAAY,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACvE;KACF;SAAM,IACL,iDAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,IAAI,EACjC;QAEA,+DAAiC,CAC/B,IAAI,CAAC,KAAK,CAAC,aAAa,EACxB,IAAI,CAAC,KAAK,CAAC,KAAK,CACjB,CAAC;KACH;SAAM,IACL,oDAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,gBAAgB,KAAK,IAAI,EACpC;QAEA,+DAAiC,CAC/B,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,CACjB,CAAC;KACH;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAgB,EAAE,KAAiB;IAEtD,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;QACpE,OAAO;KACR;IAGD,IACE,IAAI,CAAC,KAAK,CAAC,iBAAiB,KAAK,IAAI;QACrC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,6DAAe,EACnC;QAGA,gDAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;KAC5D;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAgB,EAAE,KAAiB;IAErD,IACE,uEAAiC,KAAK,IAAI;QAC1C,CAAC,iEAA2B,KAAK,IAAI;YACnC,0EAAoC,CAAC;QACvC,CAAC,KAAK,CAAC,OAAO;QACd,CAAC,KAAK,CAAC,QAAQ;QACf,KAAK,CAAC,MAAM;QACZ,CAAC,KAAK,CAAC,OAAO,EACd;QACA,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO;KACR;IAMD,IACE,4DAAsB;QACtB,iEAA2B,KAAK,IAAI;QACpC,0EAAoC;QACpC,mFAA6C,EAC7C;QACA,2CAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO;KACR;IAGD,IAAI,4DAAsB,IAAI,iEAA2B,KAAK,IAAI,EAAE;QAClE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACzD,OAAO;KACR;IAID,IACE,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,QAAQ;QACd,CAAC,KAAK,CAAC,MAAM;QACb,CAAC,KAAK,CAAC,OAAO;QACd,2DAAqB,EACrB;QACA,IAAI,CAAC,OAAO,CAAC,sDAAgB,CAAC,CAAC;QAC/B,OAAO;KACR;IAID,IACE,CAAC,KAAK,CAAC,OAAO;QACd,KAAK,CAAC,QAAQ;QACd,CAAC,KAAK,CAAC,MAAM;QACb,CAAC,KAAK,CAAC,OAAO;QACd,2DAAqB,EACrB;QACA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO;KACR;IAID,IACE,CAAC,KAAK,CAAC,OAAO;QACd,CAAC,KAAK,CAAC,QAAQ;QACf,KAAK,CAAC,MAAM;QACZ,CAAC,KAAK,CAAC,OAAO;QACd,2DAAqB,EACrB;QACA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO;KACR;IAOD,IACE,KAAK,CAAC,OAAO;QACb,CAAC,KAAK,CAAC,QAAQ;QACf,CAAC,KAAK,CAAC,MAAM;QACb,CAAC,KAAK,CAAC,OAAO;QACd,iEAA2B,KAAK,IAAI,EACpC;QACA,2CAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO;KACR;IAGD,IACE,CAAC,KAAK,CAAC,OAAO;QACd,CAAC,KAAK,CAAC,QAAQ;QACf,CAAC,KAAK,CAAC,MAAM;QACb,CAAC,KAAK,CAAC,OAAO;QACd,CAAC,4DAAsB,EACvB;QACA,mDAAqB,CAAC,IAAI,CAAC,CAAC;KAC7B;AACH,CAAC;AAGD,SAAS,UAAU,CAAC,IAAgB;IAClC,MAAM,QAAQ,GAAG,MAAM,CACrB,yEAAyE,CAC1E,CAAC;IACF,IAAI,QAAQ,KAAK,IAAI,EAAE;QACrB,OAAO;KACR;IAED,IAAI,QAAQ,KAAK,OAAO,EAAE;QAExB,yDAA2B,CAAC;YAC1B,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACvB,SAAS,EAAE,CAAC,CAAC;YACb,IAAI,EAAE,CAAC,CAAC;SACT,CAAC,CAAC;QACH,OAAO;KACR;IAED,MAAM,YAAY,GAAG,iEAA0B,CAAC,qDAAe,EAAE,QAAQ,CAAC,CAAC;IAC3E,IAAI,YAAY,CAAC,SAAS,KAAK,IAAI,IAAI,YAAY,CAAC,IAAI,KAAK,IAAI,EAAE;QACjE,gDAAkB,CAAC,8BAA8B,CAAC,CAAC;QACnD,OAAO;KACR;IAGD,yDAA2B,CAAC;QAC1B,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;QACvB,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,IAAI,EAAE,YAAY,CAAC,IAAI;KACxB,CAAC,CAAC;AACL,CAAC;;;;;;;;;;;;;;;;;;;;;;;AChQqD;AACT;AAEQ;AAEP;AACd;AAEC;AACF;AAEhB,SAAS,uBAAuB,CAC7C,IAAgB,EAChB,KAAiB;IAEjB,IAGE,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAIvC,CAAC,IAAI,CAAC,QAAQ;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAC/D;QACA,OAAO;KACR;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QAEtB,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACxB;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QAE7B,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACzB;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAgB,EAAE,KAAiB;IAEpD,IACE,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,qEAA+B;QACvD,CAAC,KAAK,CAAC,OAAO;QACd,CAAC,KAAK,CAAC,QAAQ;QACf,CAAC,KAAK,CAAC,MAAM;QACb,CAAC,KAAK,CAAC,OAAO,EACd;QACA,sCAAQ,CAAC;YACP,IAAI,EAAE,2DAAe;YACrB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;SACzB,CAAC,CAAC;QACH,OAAO;KACR;IAID,IACE,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,qEAA+B;QACvD,4DAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI;QAE7B,0EAAoC;YAClC,+DAA2B,CAAC,CAAC,EAAE,qDAAe,CAAC;QACjD,CAAC,KAAK,CAAC,OAAO;QACd,CAAC,KAAK,CAAC,QAAQ;QACf,CAAC,KAAK,CAAC,MAAM;QACb,CAAC,KAAK,CAAC,OAAO,EACd;QAIA,MAAM,UAAU,GACd,qFAAgD,EAAiB,CAAC;QACpE,IAAI,SAAgB,CAAC;QACrB,MAAM,IAAI,GAAG,2DAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,UAAU,KAAK,IAAI,EAAE;YAGvB,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SAChC;aAAM,IAAI,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;YAGpD,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SAChC;aAAM;YAEL,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;YAGlC,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAC9C,CAAC,SAAgB,EAAE,EAAE,CAAC,SAAS,KAAK,SAAS,CAC9C,CAAC;YAEF,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;gBAGvD,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aAChC;SACF;QAED,IAAI,UAAU,GAAG,2DAAiB,CAAC,SAAS,EAAE,qDAAe,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAEhC,UAAU,GAAG,CAAC,CAAC,CAAC;aACjB;iBAAM,IAAI,SAAS,KAAK,SAAS,EAAE;gBAElC,UAAU,GAAG,CAAC,CAAC;aAChB;SACF;QAED,sCAAQ,CAAC;YACP,IAAI,EAAE,gEAAoB;YAC1B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,QAAkB;YACrC,KAAK,EAAE,UAAU;SAClB,CAAC,CAAC;KACJ;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAgB,EAAE,KAAiB;IAErD,IACE,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,qEAA+B;QACvD,CAAC,KAAK,CAAC,OAAO;QACd,CAAC,KAAK,CAAC,QAAQ;QACf,CAAC,KAAK,CAAC,MAAM;QACb,CAAC,KAAK,CAAC,OAAO,EACd;QAEA,IACE,yDAAqB,CACnB,0EAAoC,EACpC,qDAAe,CAChB,EACD;YACA,OAAO;SACR;QAED,sCAAQ,CAAC;YACP,IAAI,EAAE,8DAAkB;YACxB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;SACzB,CAAC,CAAC;QACH,OAAO;KACR;IAGD,IACE,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,qEAA+B;QACvD,4DAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI;QAExB,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,6DAAe;QAEnC,0EAAoC;YAClC,+DAA2B,CAAC,CAAC,EAAE,qDAAe,CAAC;QACjD,CAAC,KAAK,CAAC,OAAO;QACd,CAAC,KAAK,CAAC,QAAQ;QACf,CAAC,KAAK,CAAC,MAAM;QACb,CAAC,KAAK,CAAC,OAAO,EACd;QACA,sCAAQ,CAAC;YACP,IAAI,EAAE,+DAAmB;YACzB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,QAAkB;YACrC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;SACvB,CAAC,CAAC;QACH,OAAO;KACR;IAGD,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QACvE,mDAAqB,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO;KACR;IAID,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QACvE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO;KACR;IAID,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QACvE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KACvB;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzLyB;AAKuB;AACI;AAUhC;AACgC;AACZ;AACT;AACA;AAEzB,SAAS,KAAK,CAAC,WAAyB;IAI7C,MAAM,IAAI,GAAG,IAAI,oDAAW,CAAC;QAC3B,KAAK,EAAE,8CAAM;QACb,MAAM,EAAE,8CAAM;QACd,KAAK,EAAE,IAAoC;QAC3C,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,OAAO;QACpB,YAAY,EAAE;YACZ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,8CAAM,CAAC;YAC5B,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,8CAAM,CAAC;SAC7B;QACD,aAAa,EAAE,GAAG;QAClB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACF,IAAoB,CAAC,SAAS,CAAC,CAAC,GAAyB,EAAE,EAAE;QAC5D,cAAc,CACZ,GAAG,CAAC,QAAQ,EACZ,WAAW,EAAE,EACb,IAAI,CAAC,KAAK,EAAE,EACZ,IAAI,CAAC,MAAM,EAAE,EACb,IAAI,CAAC,oBAAoB,EAAE,CAC5B,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,uBAAuB,GAAG,iBAAiB,GAAG,GAAG,CAAC;AACxD,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,kBAAkB,GAAG,iDAAS,CAAC;AAErC,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,MAAM,GAAG,IAAI,oDAAW,CAAC;QAC7B,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,WAAmB,EAAE,MAAc,EAAc,EAAE,CAAC,CAAC;QACzE,KAAK,EAAE,8CAAM,GAAG,YAAY;QAC5B,MAAM,EAAE,8CAAM,GAAG,YAAY;QAC7B,YAAY,EAAE,kBAAkB;QAChC,WAAW;QACX,MAAM;QACN,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAI,mDAAU,CAClC,YAAY,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CACpD,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,mDAAU,CACjC,YAAY,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAC7C,CAAC;IAEF,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEzB,OAAO,MAAM,CAAC;AAChB,CAAC;AAEM,MAAM,WAAW,GAAG,GAAgB,EAAE,CAAC,UAAU,CAAC,mDAAW,CAAC,CAAC;AAC/D,MAAM,cAAc,GAAG,GAAgB,EAAE,CAAC,UAAU,CAAC,uDAAe,CAAC,CAAC;AACtE,MAAM,aAAa,GAAG,GAAgB,EAAE,CAAC,UAAU,CAAC,qDAAa,CAAC,CAAC;AAEnE,SAAS,cAAc,CAC5B,OAAgB;IAEhB,IAAI,CAAC,4DAA6B,CAAC,OAAO,CAAC,EAAE;QAC3C,OAAO,IAAI,CAAC;KACb;IAED,MAAM,KAAK,GAAG,IAAI,oDAAW,CAAC;QAC5B,CAAC,EAAE,KAAK,GAAG,8CAAM;QACjB,OAAO,EAAE,KAAK;QACd,MAAM,EAAE;YACN,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,IAAI,GAAG,8CAAM;SACjB;QACD,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,aAAa,GAAG,IAAI,GAAG,8CAAM,CAAC;IAEpC,MAAM,MAAM,GAAG,IAAI,oDAAW,CAAC;QAC7B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,8CAAM,CAAC;QACvC,aAAa;QACb,YAAY,EAAE,aAAa,GAAG,GAAG;QACjC,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,aAAa,GAAG,CAAC;QAC9B,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAElB,MAAM,IAAI,GAAG,IAAI,mDAAU,CAAC;QAC1B,MAAM,EAAE,CAAC,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,CAAC;QACpD,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,aAAa,GAAG,IAAI;QACjC,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEhB,MAAM,SAAS,GAAG,IAAI,oDAAW,CAAC;QAChC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,8CAAM,CAAC;QACvC,aAAa;QACb,YAAY,EAAE,aAAa,GAAG,GAAG;QACjC,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,aAAa,GAAG,IAAI;QACjC,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAErB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,CAAC;AAGD,IAAI,aAAa,GAAmB,IAAI,CAAC;AACzC,IAAI,UAKH,CAAC;AAEF,SAAS,cAAc,CAAC,OAAgB;IAItC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;IACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAG9B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,8CAAM,GAAG,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,8CAAM,GAAG,GAAG,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG;YAEZ,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;SACP,CAAC;QAEF,MAAM,UAAU,GAAG,8CAAM,GAAG,GAAG,CAAC;QAChC,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG;YACb,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChD,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SACjD,CAAC;QACF,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YACzB,IAAI,GAAG,EAAE,CAAC;SACX;QAED,MAAM,OAAO,GAAG,IAAI,oDAAW,CAAC;YAC9B,CAAC;YACD,CAAC;YACD,KAAK;YACL,MAAM;YACN,IAAI;YACJ,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC,8DAAwB;YACxC,WAAW,EAAE,OAAO;YACpB,aAAa,EAAE,EAAE;YACjB,aAAa,EAAE,EAAE;YACjB,aAAa,EAAE,GAAG;YAClB,sBAAsB,EAAE,IAAI;YAC5B,SAAS,EAAE,CAAC,GAAyB,EAAE,EAAE;gBACvC,iDAAO,CAAC,GAA0C,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACnE,CAAC;YACD,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAGH,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YACzB,OAAO,CAAC,4BAA4B,CAAC;gBACnC,GAAG;gBACH,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBAClB,KAAK;gBACL,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBAClB,IAAI;gBACJ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBAClB,KAAK;gBACL,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;aACnB,CAAC,CAAC;YACH,OAAO,CAAC,4BAA4B,CAAC;gBACnC,CAAC,EAAE,EAAE;gBACL,CAAC,EAAE,GAAG;aACP,CAAC,CAAC;YACH,OAAO,CAAC,0BAA0B,CAAC;gBACjC,CAAC,EAAE,EAAE;gBACL,CAAC,EAAE,GAAG;aACP,CAAC,CAAC;YACH,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC;YACzC,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,8CAAM,GAAG,IAAI,CAAC,CAAC,CAAC;SAChE;QACD,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAG5B,MAAM,QAAQ,GAAG,IAAI,oDAAW,CAAC;YAC/B,CAAC;YACD,CAAC;YACD,KAAK;YACL,MAAM;YACN,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,CAAC;YACd,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,KAAK,GAAG,EAAE,CAAC;gBACjB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,8CAAM,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;gBACnD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,8CAAM,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;gBACpD,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;gBACxC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACvC,CAAC;YACD,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;KAC/B;IAGD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC/C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;IACpD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;QAChC,IAAI,IAAI,KAAK,6DAAe,EAAE;YAE5B,SAAS;SACV;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,8CAAM,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC,CAAC;QACZ,MAAM,OAAO,GAAG,IAAI,sDAAO,CAAC;YAC1B,CAAC;YACD,CAAC;YACD,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,MAAM;YACjB,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,8CAAM,GAAG,GAAG,CAAC;YAC/B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,8CAAM,GAAG,GAAG,CAAC;YAChC,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC,8DAAwB;YACxC,WAAW,EAAE,OAAO;YACpB,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,GAAG;YAClB,sBAAsB,EAAE,IAAI;YAC5B,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAG/B,MAAM,QAAQ,GAAG,IAAI,oDAAW,CAAC;YAC/B,CAAC;YACD,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,8CAAM,GAAG,IAAI,CAAC;YAC5B,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,CAAC;YACd,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,KAAK,GAAG,EAAE,CAAC;gBACjB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,8CAAM,GAAG,IAAI,CAAC,CAAC;gBACrC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,8CAAM,GAAG,KAAK,CAAC,CAAC;gBACtC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACvC,CAAC;YACD,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KAClC;IAGD,UAAU,GAAG;QACX,WAAW;QACX,YAAY;QACZ,WAAW;QACX,YAAY;KACb,CAAC;IAEF,aAAa,GAAG,OAAO,CAAC;AAC1B,CAAC;AAEM,SAAS,IAAI,CAAC,OAAgB;IACnC,IAAI,aAAa,KAAK,OAAO,EAAE;QAC7B,cAAc,CAAC,OAAO,CAAC,CAAC;KACzB;IAED,MAAM,QAAQ,GAAG,IAAI,oDAAW,CAAC;QAC/B,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,8CAAM,CAAC;QACzB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,8CAAM,CAAC;QAC1B,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEpD,MAAM,QAAQ,GAAG,IAAI,oDAAW,CAAC;QAC/B,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,8CAAM,GAAG,IAAI,CAAC;QAC5B,KAAK,EAAE,8CAAM;QACb,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,8CAAM,GAAG,IAAI,CAAC;QACjC,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC/C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,KAAK,EAAiB,CAAC;QACtE,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,KAAK,EAAiB,CAAC;QACxE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvB,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5B,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;KAC/B;IAED,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;QAChC,IAAI,IAAI,KAAK,6DAAe,EAAE;YAE5B,SAAS;SACV;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,KAAK,EAAa,CAAC;QACrE,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,KAAK,EAAiB,CAAC;QAC3E,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvB,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/B,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACjC,SAAS;KACV;IAED,OAAO;QACL,QAAQ;QACR,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,WAAW;QACX,YAAY;KACb,CAAC;AACJ,CAAC;AAEM,SAAS,IAAI,CAClB,oBAA6B,EAC7B,mBAAkC;IAGlC,MAAM,KAAK,GAAG,IAAI,CAAC;IACnB,MAAM,KAAK,GAAG,IAAI,CAAC;IACnB,MAAM,IAAI,GAAG,GAAG,GAAG,8CAAM,CAAC;IAC1B,MAAM,aAAa,GAAG,IAAI,4DAAa,CAAC;QAItC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,8CAAM;QACzD,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,8CAAM;QACzD,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,6DAAwB,CAAC,MAAM,CAAE;QACxC,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,GAAG;QACb,aAAa,EAAE,CAAC,8DAAwB;QACxC,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL;QACD,aAAa,EAAE,GAAG;QAClB,OAAO,EAAE,mBAAmB,EAAE;QAC9B,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,aAAa,CAAC,KAAK,CAAC;QAClB,CAAC,EAAE,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,CAAC;KACN,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACvB,CAAC;AAEM,SAAS,iBAAiB,CAAC,oBAA6B;IAE7D,MAAM,KAAK,GAAG,IAAI,CAAC;IACnB,MAAM,KAAK,GAAG,IAAI,CAAC;IACnB,MAAM,IAAI,GAAG,GAAG,GAAG,8CAAM,CAAC;IAC1B,MAAM,SAAS,GAAG,IAAI,oDAAW,CAAC;QAIhC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,8CAAM;QACzD,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,8CAAM;QACzD,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,6DAAwB,CAAC,UAAU,CAAE;QAC5C,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,GAAG;QACb,aAAa,EAAE,CAAC,8DAAwB;QACxC,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL;QACD,aAAa,EAAE,GAAG;QAClB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,SAAS,CAAC,KAAK,CAAC;QACd,CAAC,EAAE,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,CAAC;KACN,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC;AAEM,MAAM,QAAQ,GAAG,GAAgB,EAAE,CACxC,IAAI,oDAAW,CAAC;IACd,CAAC,EAAE,IAAI,GAAG,8CAAM;IAChB,CAAC,EAAE,GAAG,GAAG,8CAAM;IACf,KAAK,EAAE,GAAG,GAAG,8CAAM;IACnB,MAAM,EAAE,GAAG,GAAG,8CAAM;IACpB,KAAK,EAAE,6DAAwB,CAAC,WAAW,CAAE;IAC7C,OAAO,EAAE,KAAK;CACf,CAAC,CAAC;AAEE,MAAM,MAAM,GAAG,GAAgB,EAAE,CACtC,IAAI,oDAAW,CAAC;IACd,CAAC,EAAE,GAAG,GAAG,8CAAM;IACf,CAAC,EAAE,IAAI,GAAG,8CAAM;IAChB,KAAK,EAAE,GAAG,GAAG,8CAAM;IACnB,KAAK,EAAE,6DAAwB,CAAC,QAAQ,CAAE;IAC1C,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,KAAK;CACjB,CAAC,CAAC;AAEE,MAAM,eAAe,GAAG,GAAgB,EAAE,CAC/C,IAAI,oDAAW,CAAC;IACd,CAAC,EAAE,IAAI,GAAG,8CAAM;IAChB,CAAC,EAAE,IAAI,GAAG,8CAAM;IAChB,KAAK,EAAE,IAAI,GAAG,8CAAM;IACpB,MAAM,EAAE,IAAI,GAAG,8CAAM;IACrB,KAAK,EAAE,6DAAwB,CAAC,KAAK,CAAE;IACvC,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,KAAK;CACjB,CAAC,CAAC;AAEE,SAAS,kBAAkB,CAAC,oBAA6B;IAC9D,MAAM,IAAI,GAAG,IAAI,CAAC;IAClB,MAAM,IAAI,GAAG,IAAI,CAAC;IAClB,MAAM,IAAI,GAAG,GAAG,GAAG,8CAAM,CAAC;IAC1B,MAAM,SAAS,GAAG,IAAI,oDAAW,CAAC;QAIhC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,8CAAM;QACvD,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,8CAAM;QACvD,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,6DAAwB,CAAC,KAAK,CAAE;QACvC,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CACrB,GAA6B,EAC7B,IAAY,EACZ,KAAa,EACb,MAAc,EACd,EAAuB;IAEvB,IAAI,GAAG,GAAG,4DAAsB,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,GAAG,KAAK,SAAS,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,sBAAsB,CAAC,CAAC;KAC3D;IAED,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACpE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IAErE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;QACpB,OAAO;KACR;IAED,IAAI,EAAE,GAAG,KAAK,CAAC;IACf,IAAI,EAAE,GAAG,MAAM,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,IAAI,gBAAgB,GAAG,kEAA4B,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,gBAAgB,KAAK,SAAS,EAAE;QAClC,gBAAgB,GAAG,EAAE,CAAC;QACtB,kEAA4B,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;KACtD;IAID,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;QAClB,IAAI,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAE9C,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACxB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAExB,IAAI,eAAe,KAAK,SAAS,EAAE;YACjC,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACnD,eAAe,CAAC,KAAK,GAAG,EAAE,CAAC;YAC3B,eAAe,CAAC,MAAM,GAAG,EAAE,CAAC;YAE5B,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,YAAY,KAAK,IAAI,EAAE;gBACzB,MAAM,IAAI,KAAK,CACb,wDAAwD,CACzD,CAAC;aACH;YACD,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAE1C,gBAAgB,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC;SAC3C;QAED,GAAG,GAAG,eAAe,CAAC;QACtB,KAAK,IAAI,CAAC,CAAC;KACZ;IAED,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,KAAK,CACZ,GAAyB,EACzB,KAAkB,EAClB,SAAiB,EACjB,SAAiB,EACjB,IAAY,EACZ,KAAa;IAEb,IAAI,CAAC,GAAG,SAAS,CAAC;IAClB,IAAI,CAAC,GAAG,SAAS,CAAC;IAElB,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,CAAC,IAAI,IAAI,CAAC;IACV,CAAC,IAAI,IAAI,CAAC;IACV,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IACf,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IACf,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC,IAAI,IAAI,CAAC;IACV,CAAC,IAAI,IAAI,CAAC;IACV,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC,IAAI,IAAI,CAAC;IACV,CAAC,IAAI,IAAI,CAAC;IACV,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IACf,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IACf,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC,IAAI,IAAI,CAAC;IACV,CAAC,IAAI,IAAI,CAAC;IACV,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC,IAAI,IAAI,CAAC;IACV,CAAC,IAAI,IAAI,CAAC;IACV,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IACf,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IACf,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC,IAAI,IAAI,CAAC;IACV,CAAC,IAAI,IAAI,CAAC;IACV,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC,IAAI,IAAI,CAAC;IACV,CAAC,IAAI,IAAI,CAAC;IACV,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IACf,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IACf,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC,IAAI,IAAI,CAAC;IACV,CAAC,IAAI,IAAI,CAAC;IACV,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC,IAAI,IAAI,CAAC;IACV,CAAC,IAAI,IAAI,CAAC;IACV,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,GAAG,CAAC,MAAM,EAAE,CAAC;IACb,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzmBoC;AACgB;AAClB;AAEY;AACZ;AACH;AAEgB;AACgB;AACW;AAE1C;AACM;AAEhC,SAAS,qBAAqB;IAEnC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,qDAAe,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,kEAAa,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,qEAAgB,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC;AAMD,SAAS,UAAU;IAEjB,wDAAyB,EAAE,CAAC;IAC5B,yDAAmB,GAAG,IAAI,CAAC;IAG3B,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAI3B,0EAAqC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxD,iEAA2B,EAAE,CAAC;IAG9B,IAAI,CAAC,SAAS,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,UAAU;IACjB,yDAAmB,GAAG,IAAI,CAAC;IAG3B,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAG3B,0EAAqC,CAAC,IAAI,CAAC,CAAC;IAC5C,iEAA2B,EAAE,CAAC;IAG9B,wCAAU,CAAC,SAAS,CAAC,CAAC;IAGtB,IAAI,CAAC,kEAA4B,EAAE;QACjC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KAC/B;AACH,CAAC;AAED,SAAS,UAAU,CAEjB,KAAyC;IAGzC,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,GAAG,EAAE;QAIvC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,yDAAmB,KAAK,IAAI,EAAE;YAC3D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;SAC/B;IACH,CAAC,EAAE,wDAAgB,CAAC,CAAC;IAGrB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAGtB,IAAI,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;QAClC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC9B;AACH,CAAC;AAED,SAAS,SAAS,CAEhB,KAAyC;IAGzC,IAAI,wBAAwB,EAAE,EAAE;QAC9B,iEAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO;KACR;IAED,MAAM,QAAQ,GACZ,sEAAgC,KAAK,IAAI;QACzC,8EAAwC;QACxC,uEAAiC,KAAK,IAAI,CAAC;IAE7C,IACE,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC;QACvB,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC;QAC9B,CAAC,QAAQ,EACT;QACA,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC9B;IAGD,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,EAAE;QAE3B,SAAS,CAAC,IAAI,CAAC,CAAC;KACjB;AACH,CAAC;AAED,SAAS,OAAO;IAEd,IAAI,wBAAwB,EAAE,EAAE;QAC9B,OAAO;KACR;IAGD,IAAI,CAAC,kEAA4B,EAAE;QACjC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KAC/B;IAED,OAAO,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAMD,SAAS,oBAAoB,CAAC,IAAgB;IAC5C,IAAI,yDAAmB,KAAK,IAAI,EAAE;QAEhC,OAAO;KACR;IAED,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,WAAW,EAAE;QAE1E,OAAO;KACR;IAGD,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;QAC9B,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/B,mEAA6B,EAAE,CAAC;KACjC;IAED,wCAAU,CAAC,IAAI,CAAC,CAAC;AACnB,CAAC;AAEM,SAAS,SAAS;IACvB,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACvC,wCAAU,CAAC,UAAU,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,aAAa,CAAC,IAAgB;IACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;QACjB,OAAO,UAAU,CAAC;KACnB;IAED,IACE,sEAAgC,KAAK,IAAI;QACzC,8EAAwC;QACxC,uEAAiC,KAAK,IAAI,EAC1C;QACA,OAAO,MAAM,CAAC;KACf;IAED,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QAC7C,OAAO,MAAM,CAAC;KACf;IAED,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;QAC9B,OAAO,MAAM,CAAC;KACf;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAGD,SAAS,oBAAoB,CAAC,IAAgB;IAE5C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,6DAAe,EAAE;QACvC,OAAO,KAAK,CAAC;KACd;IAID,IAAI,iEAA2B,IAAI,CAAC,2DAAqB,EAAE;QACzD,OAAO,IAAI,CAAC;KACb;IAGD,IACE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ;QACvC,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,qEAA+B,EACvD;QACA,OAAO,IAAI,CAAC;KACb;IAKD,MAAM,wBAAwB,GAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,CACpC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,CACtB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAC3B,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,UAAU,KAAK,UAAU,IAAI,KAAK,KAAK,KAAK,CACtE,CACJ,CAAC;IACJ,IAAI,wBAAwB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QACpE,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAgB;IAE5C,IAAI,yDAAmB,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;QAC5C,OAAO;KACR;IAED,MAAM,cAAc,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACzD,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,wBAAwB,GAAG,GAAG,EAAE,CACpC,CAAC,8DAAwB,IAAI,yEAAmC,CAAC;IACjE,2DAAqB,CAAC;AAExB,MAAM,iBAAiB,GAAG,CACxB,IAAgB,EAChB,KAAsD,EACtD,EAAE,CAEF,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ;IACnB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;IACjB,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO;IAElB,CAAC,IAAI,CAAC,QAAQ;IAEd,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,6DAAe;IAEnC,CAAC,sDAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;IAE/B,CAAC,yDAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAMrC,SAAS,gBAAgB,CAAC,IAAgB,EAAE,OAAgB;IAE1D,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;QAC3C,OAAO;KACR;IAGD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAA+B,CAAC;IACzD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACrE,OAAO;KACR;IAED,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAOD,SAAS,SAAS,CAAC,IAAgB;IACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE;QAC5B,OAAO;KACR;IAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrB,4DAAuB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAGrD,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAG/B,IAAI,CAAC,SAAS,EAAE,CAAC;IAKjB,IACE,uEAAiC,KAAK,IAAI;QAC1C,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,EAC3B;QACA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;KAC1D;IAGD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAChC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;QACvC,OAAO;KACR;IACD,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAmB,EAAE;QAClE,KAAK,MAAM,KAAK,IAAI,6DAAuB,EAAE;YAC3C,IAAI,KAAK,CAAC,UAAU,KAAK,WAAW,CAAC,IAAI,EAAE;gBACzC,UAAU,GAAG,IAAI,CAAC;gBAClB,MAAM;aACP;SACF;QACD,IAAI,UAAU,EAAE;YACd,MAAM;SACP;KACF;IACD,IAAI,UAAU,EAAE;QACd,4CAAc,EAAE,CAAC;KAClB;IAID,IAAI,CAAC,SAAS,EAAE,CAAC;AACnB,CAAC;AAKD,SAAS,OAAO,CAAC,IAAgB;IAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE;QAC5B,OAAO;KACR;IAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAGtB,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAG/B,IAAI,CAAC,SAAS,EAAE,CAAC;AACnB,CAAC;;;;;;;;;;;;;;;;;;;;;AC1VoC;AACU;AAEd;AACE;AAE5B,SAAS,aAAa;IAE3B,IAAI,IAAI,CAAC,iBAAiB,EAAE;QAE1B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,OAAO;KACR;IACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAE9B,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE;QAEnC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KACtC;IAED,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChC;QACD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACjC,CAAC,EAAE,wDAAgB,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,mBAAmB;IAE1B,IAAI,IAAI,CAAC,QAAQ,EAAE;QACjB,OAAO;KACR;IAED,IAAI,sDAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,IAAI,EAAE;QAEvE,+DAAiC,CAC/B,IAAI,CAAC,KAAK,CAAC,aAAa,EACxB,IAAI,CAAC,KAAK,CAAC,KAAK,CACjB,CAAC;KACH;SAAM,IACL,yDAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,gBAAgB,KAAK,IAAI,EACpC;QAEA,+DAAiC,CAC/B,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC3B,IAAI,CAAC,KAAK,CAAC,KAAK,CACjB,CAAC;KACH;AACH,CAAC;AAEM,SAAS,gBAAgB;IAE9B,IAAI,IAAI,CAAC,QAAQ,EAAE;QACjB,OAAO;KACR;IAED,mDAAqB,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;;;;;;;;;;;;;;;;;;;;;;;AC1DoC;AAGF;AACU;AACN;AACJ;AACe;AACjB;AAElB,MAAM,QAAQ;IAG3B,YAAY,KAAmB,EAAE,IAAiB;QAIhD,mDAAa,EAAE,CAAC;QAGhB,IAAI,CAAC,OAAO,GAAG,6CAAO,CAAC;QAGvB,mDAAa,GAAG,KAAK,CAAC;QAGtB,kDAAY,GAAG,IAAI,CAAC;QAGpB,aAAa,EAAE,CAAC;QAChB,wCAAU,CAAC,SAAS,CAAC,CAAC;IAMxB,CAAC;IAKD,eAAe;QACb,IAAI,iEAA2B,KAAK,IAAI,EAAE;YACxC,OAAO;SACR;QAED,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,8DAAwB,GAAG,CAAC,EAAE;YAChC,IAAI,IAAI,KAAK,8DAAwB,GAAG,CAAC;SAC1C;QACD,sEAAgC,CAAC,IAAI,CAAC,CAAC;QACvC,iEAA2B,EAAE,CAAC;IAChC,CAAC;IAGD,WAAW,CAAC,GAAW,EAAE,IAAY,EAAE,OAAe;QAEpD,MAAM,eAAe,GAAG,OAAO,GAAG,CAAC,CAAC;QACpC,IACE,4DAAsB;YACtB,iEAA2B,KAAK,IAAI;YACpC,0EAAoC;YACpC,uEAAiC,KAAK,IAAI,EAC1C;YACA,MAAM,eAAe,GAAG,GAAG,KAAK,kEAA4B,CAAC;YAC7D,IACE,eAAe;gBACf,eAAe,KAAK,yEAAmC;gBACvD,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,gCAAgC,OAAO,UAAU,CAAC,EACvE;gBACA,gDAAkB,CAAC,eAAe,CAAC,CAAC;aACrC;YACD,IAAI,eAAe,EAAE;gBACnB,8CAAO,CACL,kIAAkI,EAClI,IAAI,CACL,CAAC;aACH;SACF;IACH,CAAC;IAGD,SAAS;QACP,0DAAgB,CAAC,KAAK,CAAC,CAAC;QACxB,wCAAU,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IAGD,OAAO;QACL,8CAAgB,EAAE,CAAC;QACnB,wCAAU,EAAE,CAAC;QACb,2DAAqB,EAAE,CAAC;IAC1B,CAAC;CACF;AAGD,SAAS,aAAa;IACpB,MAAM,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;IAErB,IAAI,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;IAC3B,IAAI,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;IAE5B,IAAI,EAAE,GAAG,GAAG,EAAE;QAEZ,EAAE,GAAG,GAAG,CAAC;KACV;IACD,IAAI,EAAE,GAAG,GAAG,EAAE;QACZ,EAAE,GAAG,GAAG,CAAC;KACV;IAED,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE;QACnB,EAAE,GAAG,EAAE,CAAC;QACR,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;KACjB;SAAM;QACL,EAAE,GAAG,EAAE,CAAC;QACR,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;KACjB;IAED,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEpB,IAAI,EAAE,GAAG,IAAI,GAAG,EAAE,EAAE;QAClB,EAAE,GAAG,EAAE,CAAC;KACT;IACD,IAAI,EAAE,GAAG,IAAI,GAAG,EAAE,EAAE;QAClB,EAAE,GAAG,EAAE,CAAC;KACT;IACD,yDAAmB,CAAC,EAAE,CAAC,CAAC;IACxB,0DAAoB,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC;;;;;;;;;;;;;;;;;;ACvIyB;AAE1B,MAAM,oBAAoB,GAAG;IAK3B,SAAS,EAAE,KAAK;CACjB,CAAC;AAIa,MAAM,MAAM;IAA3B;QACE,OAAE,GAAgB,IAAI,oDAAW,CAAC,oBAAoB,CAAC,CAAC;QAExD,UAAK,GAAgB,IAAI,oDAAW,CAAC,oBAAoB,CAAC,CAAC;QAC3D,SAAI,GAAgB,IAAI,oDAAW,CAAC,oBAAoB,CAAC,CAAC;QAC1D,UAAK,GAAgB,IAAI,oDAAW,CAAC,oBAAoB,CAAC,CAAC;QAE3D,QAAG,GAAgB,IAAI,oDAAW,CAAC,oBAAoB,CAAC,CAAC;IAC3D,CAAC;CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjByB;AACa;AACA;AACkB;AACH;AACL;AACJ;AAEV;AACH;AAEe;AACX;AAEL;AAEhB,MAAM,WAAY,SAAQ,oDAAW;IAUlD,YAAY,KAAiB,EAAE,MAA0C;QACvE,KAAK,CAAC,MAAM,CAAC,CAAC;QAVhB,UAAK,GAAuB,IAAI,CAAC;QACjC,uBAAkB,GAAG,KAAK,CAAC;QAC3B,UAAK,GAAG,KAAK,CAAC;QASZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IATD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IASO,OAAO,CAAC,KAAiB;QAC/B,IAAI,CAAC,GAAG,CAAC,KAA+B,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAE5B,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,EAAE;YAChC,MAAM,WAAW,GAAG,KAA2C,CAAC;YAChE,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE;gBAC7C,OAAO;aACR;YACD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;gBACvB,IAAI,CAAC,MAA4C,CAAC,QAAQ,EAAE,CAAC;aAC/D;QACH,CAAC,CAAC;QAEF,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAChC,KAAK,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAID,iBAAiB;QACf,IAAI,gEAA0B,KAAK,IAAI,EAAE;YACvC,OAAO;SACR;QAED,IACE,IAAI,CAAC,iBAAiB,CAAC,wFAAkD,CAAC,EAC1E;YACA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAErB,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAClC;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SACrB;QAED,IAAI,oDAAsB,CAAC,IAAI,CAAC,EAAE;YAChC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;SACvB;IACH,CAAC;IAED,iBAAiB,CAAC,kBAAiC;QAGjD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YACjD,OAAO,KAAK,CAAC;SACd;QAGD,IAAI,uEAAiC,KAAK,IAAI,EAAE;YAC9C,OAAO,CACL,CAAC,iEAA2B,KAAK,IAAI;gBACnC,0EAAoC,CAAC;gBACvC,kBAAkB,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAC/C,CAAC,IAAI,CAAC,KAAK,CACZ,CAAC;SACH;QAED,OAAO,CAGL,CAAC,oDAAS,EAAE,IAAI,4EAAsC,CAAC;YAEvD,2DAAqB,KAAK,IAAI;YAC9B,CAAC,8DAAwB;YACzB,CAAC,yEAAmC;YAEpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,qEAA+B;YAG5D,2DAAqB;YAGrB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CACpB,CAAC;IACJ,CAAC;IAED,OAAO;QAEL,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;QAEtD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAGtB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEpB,MAAM,gBAAgB,GACpB,uEAAiC,KAAK,IAAI;YACxC,CAAC,CAAC,+DAAyB;YAC3B,CAAC,CAAC,+EAAyC,CAAC;QAEhD,IAAI,SAAS,GAAG,2DAA6B,CAAC,IAAI,CAAC,CAAC;QACpD,IACE,SAAS,KAAK,aAAa;YAC3B,yDAAqB,CAAC,gBAAgB,CAAC,UAAU,EAAE,qDAAe,CAAC,EACnE;YACA,yCAAW,CAAC,OAAO,CAAC,CAAC;YACrB,iFAA4C,EAAE,CAAC;YAC/C,SAAS,GAAG,IAAI,CAAC;SAClB;QACD,IACE,uEAAiC,KAAK,IAAI;YAC1C,CAAC,CAAC,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC1D,CAAC,SAAS,KAAK,aAAa,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EACpE;YACA,SAAS,GAAG,IAAI,CAAC;SAClB;QACD,IAAI,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACnD,SAAS,GAAG,IAAI,CAAC;SAClB;QAED,IAAI,SAAS,KAAK,IAAI,EAAE;YAErB,IAAI,CAAC,MAA4C,CAAC,QAAQ,EAAE,CAAC;YAC9D,OAAO;SACR;QAED,IAAI,IAAI,CAAC;QACT,IAAI,SAAS,KAAK,UAAU,EAAE;YAC5B,IAAI,GAAG,2DAAe,CAAC;SACxB;aAAM,IAAI,SAAS,KAAK,aAAa,EAAE;YACtC,IAAI,GAAG,8DAAkB,CAAC;SAC3B;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3C;QAED,uCAAQ,CAAC;YACP,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;SAC9B,CAAC,CAAC;IACL,CAAC;IAKD,YAAY;QACV,MAAM,EAAE,kBAAkB,EAAE,GAAG,oEAA8B,CAAC;QAC9D,MAAM,EAAE,cAAc,EAAE,GAAG,sDAAgB,CAAC;QAC5C,IAAI,EAAE,WAAW,EAAE,GAAG,mDAAa,CAAC;QACpC,IAAI,uEAAiC,KAAK,IAAI,EAAE;YAC9C,WAAW,GAAG,+EAAyC,CAAC;SACzD;QAED,IACE,CAAC,8DAAwB;YACzB,CAAC,4DAA6B,CAAC,qDAAe,CAAC;YAE/C,CAAC,kBAAkB,KAAK,cAAc;gBACpC,WAAW,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;YACnC,CAAC,mEAA+B,CAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,EACf,WAAW,CAAC,IAAI,EAChB,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,mBAAmB,CAChC,EACD;YACA,IAAI,IAAI,GAAG,4CAA4C,CAAC;YACxD,IAAI,IAAI,iEAAiE,CAAC;YAC1E,IAAI;gBACF,2EAA2E,CAAC;YAC9E,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC9B;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gBAAgB,CAAC,MAAc;QAC7B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC3D,IAAI,SAAS,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;YACvC,OAAO,KAAK,CAAC;SACd;QAED,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CACnC,qBAAqB,MAAM,qBAAqB;YAC9C,8FAA8F,CACjG,CAAC;QACF,IAAI,eAAe,KAAK,IAAI,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;QACD,MAAM,WAAW,GAAG,iEAA0B,CAC5C,qDAAe,EACf,eAAe,CAChB,CAAC;QAEF,MAAM,YAAY,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,WAAW,CAAC,SAAS,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,WAAW,CAAC,IAAI,CAAC;QACzC,IACE,CAAC,WAAW,CAAC,SAAS,KAAK,IAAI,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC;YAC7D,YAAY,KAAK,IAAI;YACrB,OAAO,KAAK,IAAI,EAChB;YACA,gDAAkB,CAAC,8BAA8B,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;SACb;QAED,yDAA2B,CAAC;YAC1B,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;YAC5B,SAAS,EAAE,YAAY;YACvB,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;CACF;;;;;;;;;;;;;;;;;;;;;ACnPyB;AACe;AACT;AAEjB,MAAM,YAAa,SAAQ,oDAAW;IAInD,YAAY,MAA6B,EAAE,QAAgB;QACzD,KAAK,CAAC,MAAM,CAAC,CAAC;QAHhB,iBAAY,GAAa,EAAE,CAAC;QAK1B,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;YAC/B,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;SACH;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAEvC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;YAC5B,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjD,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;YAChB,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;YAEnC,MAAM,SAAS,GAAG,IAAI,sDAAO,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SACrB;IACH,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC7C,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;SAC3B;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAK7B,IAAI,CAAC,iEAA2B,IAAI,CAAC,yDAAmB,EAAE;YACxD,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;IACH,CAAC;IAED,WAAW;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,GAAG,KAAK,SAAS,EAAE;gBACrB,GAAG,GAAG,EAAE,CAAC;aACV;YACA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC5C;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAC3C;IACH,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC;IACxC,CAAC;CACF;;;;;;;;;;;;;;;;;;;;;;;;AClEyB;AACa;AACC;AACE;AACV;AACO;AAExB,MAAM,SAAU,SAAQ,oDAAW;IAUhD,YAAY,MAA6B;QACvC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAErB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACjE;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;SAClE;QAGD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAqB,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;QAEhD,IAAI,CAAC,UAAU,GAAG,IAAI,mDAAU,CAAC;YAC/B,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC;YACnB,CAAC,EAAE,CAAC;YACJ,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,MAAM,CAAC,MAAM;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,mDAAW;YACjB,WAAW,EAAE,OAAO;YACpB,UAAU,EAAE,CAAC;YACb,YAAY,EAAE;gBACZ,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;aACL;YACD,aAAa,EAAE,GAAG;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;YAChE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC;YAC3D,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SAC7B;QACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,EAAE,CAChB,WAAW,EACX,CAAC,KAAyC,EAAE,EAAE;YAE5C,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;gBAE1B,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;iBAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;gBAEjC,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;QACH,CAAC,CACF,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE1B,CAAC,IAAI,GAAG,CAAC;QAET,IAAI,CAAC,kBAAkB,GAAG,QAAQ,GAAG,0DAAoB,EAAE,CAAC;QAE5D,IAAI,CAAC,QAAQ,GAAG,IAAI,mDAAU,CAAC;YAC7B,MAAM,EAAE;gBACN,CAAC;gBACD,CAAC;gBACD,CAAC;gBACD,MAAM,CAAC,MAAM,GAAG,CAAC;gBACjB,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;gBACxB,MAAM,CAAC,MAAM,GAAG,CAAC;aAClB;YACD,MAAM,EAAE,mDAAW;YACnB,WAAW,EAAE,IAAI,CAAC,kBAAkB;YACpC,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,OAAO;YACpB,UAAU,EAAE,CAAC;YACb,YAAY,EAAE;gBACZ,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;aACL;YACD,aAAa,EAAE,CAAC;YAChB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExB,IAAI,CAAC,SAAS,GAAG,IAAI,mDAAU,CAAC;YAC9B,MAAM,EAAE;gBACN,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;gBACxB,MAAM,CAAC,MAAM,GAAG,CAAC;gBACjB,MAAM,CAAC,KAAK;gBACZ,MAAM,CAAC,MAAM,GAAG,CAAC;gBACjB,MAAM,CAAC,KAAK;gBACZ,CAAC;aACF;YACD,MAAM,EAAE,mDAAW;YACnB,WAAW,EAAE,IAAI,CAAC,kBAAkB;YACpC,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,OAAO;YACpB,UAAU,EAAE,CAAC;YACb,YAAY,EAAE;gBACZ,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;aACL;YACD,aAAa,EAAE,CAAC;YAChB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAKzB,IAAI,CAAC,EAAE,CAAC,sBAAsB,EAAE,SAAS,SAAS;YAChD,uDAAyB,EAAE,CAAC;YAC5B,yDAAmB,GAAG,IAAI,CAAC;YAG3B,IAAI,4DAAsB,EAAE;gBAC1B,OAAO;aACR;YAED,2CAAa,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAChC,yDAAmB,GAAG,IAAI,CAAC;YAG3B,IAAI,4DAAsB,EAAE;gBAC1B,OAAO;aACR;YAED,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,MAAe;QACvB,IAAI,CAAC,QAAQ,CAAC,WAAW,CACvB,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CACnE,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,WAAW,CACxB,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CACnE,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,YAAY,CAAC,SAAkB;QAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,mDAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAElD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAGD,SAAS;QACP,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACxC,sFAAiD,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAMD,UAAU;QAER,MAAM,oBAAoB,GAAG,0EAAoC,CAC/D,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CACvB,CAAC;QACF,IAAI,oBAAoB,KAAK,CAAC,CAAC,EAAE;YAC/B,MAAM,IAAI,KAAK,CACb,qDAAqD,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAChF,CAAC;SACH;QAED,IAAI,CAAC,2DAAqB,IAAI,CAAC,4DAAsB,EAAE;YAMrD,IAAI,uBAAuB,CAAC;YAC5B,KAAK,MAAM,SAAS,IAAI,8DAAwB,EAAE;gBAChD,IAAI,SAAS,CAAC,IAAI,KAAK,kEAA4B,EAAE;oBACnD,IAAI,SAAS,CAAC,oBAAoB,KAAK,CAAC,CAAC,EAAE;wBACzC,uBAAuB,GAAG,SAAS,CAAC,oBAAoB,CAAC;qBAC1D;oBACD,MAAM;iBACP;aACF;YACD,IAAI,oBAAoB,KAAK,uBAAuB,EAAE;gBACpD,gDAAkB,CAChB,kEAAkE,CACnE,CAAC;gBACF,OAAO;aACR;YAED,UAAU,CAAC,GAAG,EAAE;gBACd,qDAAW,EAAE,CAAC;gBACd,6DAAwB,CAAC,eAAe,EAAE;oBACxC,OAAO,EAAE,2DAAqB;oBAC9B,oBAAoB;iBACrB,CAAC,CAAC;YACL,CAAC,EAAE,CAAC,CAAC,CAAC;SACP;aAAM,IAAI,4DAAsB,EAAE;YAKjC,IAAI,oBAAoB,KAAK,qEAA+B,EAAE;gBAC5D,gDAAkB,CAChB,kEAAkE,CACnE,CAAC;gBACF,OAAO;aACR;YAED,IAAI,qEAA+B,KAAK,CAAC,EAAE;gBACzC,IAAI,qEAA+B,KAAK,IAAI,EAAE;oBAC5C,UAAU,CAAC,GAAG,EAAE;wBACd,MAAM,GAAG,GACP,8GAA8G,CAAC;wBACjH,gDAAkB,CAAC,GAAG,CAAC,CAAC;oBAC1B,CAAC,EAAE,CAAC,CAAC,CAAC;oBACN,OAAO;iBACR;gBAMD,UAAU,CAAC,GAAG,EAAE;oBACd,qDAAW,EAAE,CAAC;oBACd,6DAAwB,CAAC,cAAc,EAAE;wBACvC,MAAM,EAAE,IAAI;wBACZ,UAAU,EAAE,qEAA+B;wBAC3C,UAAU,EACR,iEAA2B,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;wBAC1D,oBAAoB;qBACrB,CAAC,CAAC;gBACL,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEN,OAAO;aACR;YAMD,UAAU,CAAC,GAAG,EAAE;gBACd,qDAAW,EAAE,CAAC;gBACd,6DAAwB,CAAC,eAAe,EAAE;oBACxC,OAAO,EAAE,2DAAqB;oBAC9B,oBAAoB;iBACrB,CAAC,CAAC;YACL,CAAC,EAAE,CAAC,CAAC,CAAC;SACP;IACH,CAAC;CACF;;;;;;;;;;;;;;;;;;;;;;AChRyB;AACuB;AACI;AACrB;AACS;AAG1B,MAAM,SAAU,SAAQ,oDAAW;IAChD,QAAQ,CAAC,WAAwB;QAC/B,MAAM,GAAG,GAAG,WAAW,CAAC,mBAAmB,EAAE,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,WAAqC,CAAC,CAAC;QAChD,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,QAAQ;QACN,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAEzB,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAmB,CAAC;QAChE,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,6DAAe,CAAC;QAGlE,MAAM,OAAO,GACX,4DAA6B,CAAC,qDAAe,CAAC;YAC9C,2DAAqB;YACrB,CAAC,4DAAsB;YACvB,CAAC,SAAS;YACR,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,CAAC,CAAC;QAIR,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACnC,WAAW,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC3C,sDAAO,CACL,WAAW,EACX;YACE,QAAQ,EAAE,GAAG;YACb,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,KAAK;YACL,QAAQ,EAAE,CAAC;YACX,OAAO;YAEP,MAAM,EAAE,8DAAqB;YAC7B,QAAQ,EAAE,GAAG,EAAE;gBACb,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,EAAE;oBAC9B,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBAC5B,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;iBAC1B;gBACD,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpC,WAAW,CAAC,iBAAiB,EAAE,CAAC;gBAChC,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACvC,CAAC;SACF,EACD,IAAI,CACL,CAAC;IACJ,CAAC;IAED,6BAA6B;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAA2B,CAAC;YAC/D,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,EAAE;gBAE9B,OAAO;aACR;SACF;QAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACzB;QAGD,IAAI,WAAW,GAAG,CAAC,EAAE;YACnB,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACvC;QAED,mEAA6B,EAAE,CAAC;IAClC,CAAC;CACF;;;;;;;;;;;;;;;;;;;ACvFyB;AAEiB;AAE5B,MAAM,UAAW,SAAQ,oDAAW;IAKjD,YAAY,MAA6B;QACvC,KAAK,CAAC,MAAM,CAAC,CAAC;QALhB,YAAO,GAAG,KAAK,CAAC;QAMd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAGrB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAY,CAAC;QAGhC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAExB,IAAI,CAAC,UAAU,GAAG,IAAI,mDAAU,CAAC;YAC/B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,YAAY,EAAE,IAAI,GAAG,CAAC;YACtB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE1B,MAAM,IAAI,GAAG,IAAI,mDAAU,CAAC;YAC1B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,KAAK,GAAG,CAAC;YACZ,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,GAAG,GAAG,CAAC;YACf,QAAQ,EAAE,GAAG,GAAG,CAAC;YACjB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,QAAQ;YACf,IAAI,EAAG,MAAM,CAAC,MAAiB,CAAC,QAAQ,EAAE;YAC1C,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEf,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,wDAAS,CAAC,IAAI,CAAC,CAAC;YAEhB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,wDAAS,CAAC,IAAI,CAAC,CAAC;YAEhB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;gBAClC,WAAW,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACjC,WAAW,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpD,wDAAS,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpEyB;AAGkB;AAC2B;AACpB;AAEV;AACY;AACI;AACA;AAEnB;AAC2B;AAGd;AACnB;AACsB;AACtB;AACM;AACS;AAExC,SAAS,OAAO;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,KAAK,IAAI,8DAAuB,EAAE;QAC3C,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE;YAC7B,OAAO,GAAG,IAAI,CAAC;YACf,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;YACxB,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE;gBACxB,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACtB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;aACpB;SACF;KACF;IACD,IAAI,OAAO,EAAE;QACX,qEAA8B,EAAE,CAAC;KAClC;AACH,CAAC;AAEM,SAAS,GAAG,CACjB,CAAS,EACT,OAA0B,EAC1B,KAAoB,EACpB,IAAiB;IAGjB,MAAM,KAAK,GAAG,8DAAuB,CAAC,CAAC,CAAC,CAAC;IACzC,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC;IAC3B,KAAK,CAAC,IAAI,EAAE,CAAC;IACb,KAAK,CAAC,SAAS,EAAE,CAAC;IAGlB,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IACE,OAAO,YAAY,iDAAU;QAC7B,CAAC,sDAAkB,CAAC,OAAO,CAAC,KAAK,CAAC;QAClC,CAAC,yDAAqB,CAAC,OAAO,CAAC,KAAK,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,6DAAe,EACtC;QACA,IACE,OAAO,CAAC,MAAM,KAAK,IAAI;YACvB,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;YAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,YAAY,gDAAU,EAC3C;YACA,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;SAC1C;QACD,IACE,CAAC,CAAC,wEAAiC;YACjC,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,sEAA+B,CAAC;YAC7D,CAAC,wEAAiC;gBAChC,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,sEAA+B;gBAC1D,4DAAwB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAC1C;YAIA,GAAG,IAAI,GAAG,CAAC;SACZ;KACF;IACD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAGpB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAG/B,IAAI,IAAI,KAAK,IAAI,EAAE;QAEjB,MAAM,KAAK,GAAG,6DAAqB,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAGvB,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KACnB;SAAM;QAEL,IAAI,KAAK,CAAC;QACV,IAAI,OAAO,YAAY,iDAAU,IAAI,OAAO,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE;YAExE,KAAK,GAAG,6DAAqB,CAAC;SAC/B;aAAM;YAEL,KAAK,GAAG,2DAAmB,CAAC;SAC7B;QACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAGvB,MAAM,kBAAkB,GAAG,mFAAyB,CAClD,KAAK,EACL,4EAAqC,CACtC,CAAC;QACF,IACE,uDAAmB,CAAC,sDAAe,CAAC;YACpC,CAAC,kBAAkB,KAAK,SAAS,IAAI,CAAC,6DAAsB,CAAC,EAC7D;YAEA,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACnB;aAAM;YACL,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,IAAI,KAAK,0DAAc,EAAE;gBAChC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAGlB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC7B,IAAI,4DAAwB,CAAC,sDAAe,CAAC,EAAE;oBAE7C,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC5B;qBAAM;oBACL,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC7B,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;wBACjC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;qBAClE;oBACD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAGlC,IAAI,4EAAqC,EAAE;wBACzC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;4BAClC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;yBAClE;wBACD,MAAM,aAAa,GAAG,mEAA4B,CAAC,CAAC,IAAU,EAAE,EAAE,CAChE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CACpC,CAAC;wBACF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC9B,KAAK,CAAC,OAAQ,CAAC,SAAS,CAAC,CAAC,GAAyB,EAAE,EAAE;gCACrD,kDAAO,CACL,GAA0C,EAC1C,aAAa,CAAC,CAAC,CAAC,CACjB,CAAC;4BACJ,CAAC,CAAC,CAAC;4BACH,KAAK,CAAC,OAAQ,CAAC,IAAI,EAAE,CAAC;yBACvB;6BAAM;4BACL,KAAK,CAAC,OAAQ,CAAC,IAAI,EAAE,CAAC;yBACvB;qBACF;iBACF;aACF;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,yDAAa,EAAE;gBACtC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACjC,IAAI,4DAAwB,CAAC,sDAAe,CAAC,EAAE;oBAC7C,IAAI,GAAG,GAAG,CAAC;iBACZ;gBACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAGlB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC7B,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAE3B,IAAI,4EAAqC,EAAE;oBACzC,KAAK,CAAC,OAAQ,CAAC,IAAI,EAAE,CAAC;iBACvB;aACF;SACF;KACF;IAED,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE;QACxB,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;KACpB;IACD,IAAI,0DAAmB,IAAI,KAAK,KAAK,IAAI,EAAE;QACzC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAQ,EAAE,GAAG,CAAC,CAAC;QAClC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;KAChC;SAAM;QACL,MAAM,cAAc,GAAG,8EAAyC,CAAC;QACjE,OAAO,CAAC,KAAK,EAAE,OAAqB,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;KACnE;IACD,IAAI,CAAC,0DAAmB,EAAE;QACxB,qEAA8B,EAAE,CAAC;KAClC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,OAAmB,EAAE,GAAW;IAE9C,MAAM,GAAG,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAE1C,IAAI,OAAO,YAAY,iDAAU,EAAE;QAIjC,MAAM,IAAI,GAAG,2DAAoB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;QAC/B,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzC,GAAG,CAAC,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAC3C;SAAM,IAAI,OAAO,KAAK,4DAAqB,EAAE;QAE5C,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC;QAC/B,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;KACjC;SAAM,IAEL,OAAO,KAAK,uEAAgC;QAE5C,OAAO,KAAK,wEAAiC;QAE7C,OAAO,KAAK,wEAAiC;QAE7C,OAAO,KAAK,wEAAiC,EAC7C;QACA,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC;KACjC;SAAM,IAAI,OAAO,KAAK,2EAAoC,EAAE;QAE3D,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC;KAChC;SAAM,IAAI,OAAO,YAAY,4DAAY,EAAE;QAI1C,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC;KAChC;SAAM;QAKL,MAAM,WAAW,GAAG,OAAqB,CAAC;QAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,KAAe,CAAC;QAC1E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC/D;QACD,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;KACpB;IAED,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC9C,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;KACH;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAGD,SAAS,OAAO,CACd,KAAY,EACZ,IAAgB,EAChB,GAAW,EACX,KAAa,EACb,OAAe;IAIf,MAAM,cAAc,GAAG,8EAAyC,CAAC;IACjE,IAAI,cAAc,KAAK,OAAO,EAAE;QAC9B,OAAO;KACR;IAID,IACE,IAAI,KAAK,SAAS;QAClB,IAAI,CAAC,MAAM,KAAK,SAAS;QACzB,IAAI,CAAC,MAAM,KAAK,IAAI;QACpB,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS;QAChC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,EAC3B;QACA,OAAO;KACR;IAID,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE;QAC7B,OAAO;KACR;IAGD,IAAI,IAAI,CAAC,QAAQ,EAAE;QACjB,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE;YACxB,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,OAAO;KACR;IACD,KAAK,CAAC,IAAI,EAAE,CAAC;IAGb,MAAM,SAAS,GAAG,mEAA4B,CAAC,KAAK,CAAC,CAAC,oBAAoB,EAAE,CAAC;IAC7E,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAIrC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAE9B,mDAAoB,CAAC,KAAK,EAAE;QAC1B,QAAQ,EAAE,6DAAqB;QAC/B,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,MAAM,EAAE,8DAAqB;KAC9B,CAAC,CAAC;AACL,CAAC;AAEM,SAAS,KAAK,CACnB,KAAmC,EACnC,KAAa;IAGb,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QAE1B,OAAO;KACR;IAID,IACE,kEAA2B,KAAK,IAAI;QACpC,CAAC,2EAAoC,EACrC;QACA,OAAO;KACR;IAID,IACE,kEAA2B,KAAK,IAAI;QACpC,CAAC,oFAA6C,EAC9C;QACA,OAAO;KACR;IAED,MAAM,CAAC,KAAK,CAAC,CAAC;AAChB,CAAC;AAGM,SAAS,MAAM,CAAC,KAAa,EAAE,UAAU,GAAG,KAAK;IAEtD,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAI3C,IAAI,OAAO,YAAY,iDAAU,IAAI,OAAO,CAAC,QAAQ,EAAE;QACrD,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;QACzD,OAAO;KACR;IAGD,MAAM,KAAK,GAAG,iEAA0B,CAAC;IACzC,MAAM,IAAI,GACR,UAAU;QACV,KAAK,CAAC,UAAU,KAAK,OAAO;QAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,6DAAqB,CAAC;IAE9C,OAAO,EAAE,CAAC;IACV,IAAI,IAAI,EAAE;QACR,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAG5B,IACE,OAAO,KAAK,IAAI;YAChB,OAAO,CAAC,WAAW,KAAK,SAAS;YACjC,OAAO,CAAC,WAAW,KAAK,EAAE,EAC1B;YACA,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YACrD,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SAC9B;KACF;IAED,IACE,kEAA2B,KAAK,IAAI;QACpC,2EAAoC;QACpC,oFAA6C,EAC7C;QACA,8DAAwB,CAAC,cAAc,EAAE;YACvC,OAAO,EAAE,4DAAqB;YAC9B,IAAI,EAAE,kEAAsB;YAC5B,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,oEAAwB;SAC/C,CAAC,CAAC;KACJ;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,KAAK,IAAI,CAAC,EAAE;QAGd,OAAO,6DAAkB,CAAC,KAAK,CAAC,CAAC;KAClC;IAED,OAAO,2BAA2B,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAuB;IAC1D,QAAQ,KAAK,EAAE;QACb,KAAK,oEAAwB,CAAC,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,eAAe,oEAAwB,qCAAqC,CAC7E,CAAC;SACH;QACD,KAAK,iEAAqB,CAAC,CAAC;YAC1B,OAAO,4DAAsB,CAAC;SAC/B;QACD,KAAK,iEAAqB,CAAC,CAAC;YAC1B,OAAO,uEAAiC,CAAC;SAC1C;QACD,KAAK,kEAAsB,CAAC,CAAC;YAC3B,OAAO,wEAAkC,CAAC;SAC3C;QACD,KAAK,qEAAyB,CAAC,CAAC;YAC9B,OAAO,2EAAqC,CAAC;SAC9C;QACD,KAAK,kEAAsB,CAAC,CAAC;YAC3B,OAAO,wEAAkC,CAAC;SAC3C;QACD,KAAK,oEAAwB,CAAC,CAAC;YAC7B,OAAO,wEAAkC,CAAC;SAC3C;QACD,KAAK,oEAAwB,CAAC,CAAC;YAC7B,OAAO,wEAAkC,CAAC;SAC3C;QACD,KAAK,oEAAwB,CAAC,CAAC;YAC7B,OAAO,wEAAkC,CAAC;SAC3C;QACD,KAAK,iEAAqB,CAAC,CAAC;YAC1B,OAAO,uEAAiC,CAAC;SAC1C;QACD,KAAK,uEAA2B,CAAC,CAAC;YAChC,OAAO,6EAAuC,CAAC;SAChD;QACD,KAAK,0EAA8B,CAAC,CAAC;YACnC,OAAO,gFAA0C,CAAC;SACnD;QACD,OAAO,CAAC,CAAC;YACP,qDAAc,CAAC,KAAK,CAAC,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;SACH;KACF;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;AClckC;AACmB;AACtB;AACC;AACM;AAExB,SAAS,WAAW;IAEjC,uDAAyB,EAAE,CAAC;IAG5B,wCAAU,EAAE,CAAC;IAGb,gEAA0B,GAAG,EAAE,CAAC;IAChC,qDAAuB,EAAE,CAAC;IAG1B,+DAAwB,CAAC,QAAQ,CAAC,CAAC;IAEnC,6DAAwB,CAAC,eAAe,EAAE;QACxC,OAAO,EAAE,2DAAqB;KAC/B,CAAC,CAAC;IACH,uDAAkB,EAAE,CAAC;AACvB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBsE;AAChB;AACV;AAEJ;AAEN;AAGW;AACd;AAGD;AAExB,SAAS,UAAU;IACxB,IAAI,qBAAqB,CAAC;IAC1B,IAAI,uEAAiC,KAAK,IAAI,EAAE;QAC9C,qBAAqB,GAAG,4EAAsC,CAAC;KAChE;SAAM;QACL,qBAAqB,GAAG,6EAAuC,CAAC;KACjE;IACD,MAAM,MAAM,GAAG,qBAAsB,CAAC,UAAU,EAAkB,CAAC;IACnE,MAAM,EAAE,mBAAmB,EAAE,GAAG,sDAAgB,CAAC;IACjD,MAAM,UAAU,GAAG,mBAAoB,CAAC,UAAU,EAEpC,CAAC;IAEf,IACE,MAAM,KAAK,SAAS;QACpB,MAAM,KAAK,IAAI;QACf,UAAU,KAAK,SAAS;QACxB,UAAU,KAAK,IAAI,EACnB;QACA,gFAA2C,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO;KACR;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC;IAC/B,MAAM,EAAE,kBAAkB,EAAE,GAAG,qEAAgC,CAAC;IAChE,IAAI,kBAAkB,KAAK,IAAI,EAAE;QAC/B,OAAO;KACR;IACD,IAAI,GAAG,KAAK,kBAAkB,EAAE;QAE9B,gFAA2C,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO;KACR;IAED,MAAM,qBAAqB,GAAG,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAElE,MAAM,gBAAgB,GAAG,mFAAyB,CAChD,qEAA+B,EAC/B,2EAAqC,CACtC,CAAC;IAIF,MAAM,OAAO,GACX,qBAAqB;QAErB,gEAA0B;QAE1B,CAAC,4EAAsC;YACrC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,0DAAc,CAAC;QAE1C,CAAC,2EAAqC;YACpC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,yDAAa,CAAC;QAEzC,CAAC,gBAAgB,KAAK,YAAY;YAChC,GAAG;gBACD,CAAC,qEAA+B,GAAG,CAAC,CAAC,GAAG,gEAA0B,CAAC;QACvE,CAAC,gBAAgB,KAAK,WAAW;YAC/B,GAAG;gBACD,CAAC,qEAA+B,GAAG,CAAC,GAAG,gEAA0B,CAAC;oBAChE,gEAA0B,CAAC,CAAC;IAEpC,gFAA2C,CAAC,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,aAAa,CAAC,MAAc,EAAE,IAAU;IAC/C,4CAAc,EAAE,CAAC;IAEjB,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,MAAM,IAAI,GAAG,kEAA4B,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;IAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,KAAK,GAAG,kEAA4B,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAe,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAe,CAAC;QACzD,IACE,IAAI;aACD,uBAAuB,EAAE;aACzB,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAC3B,0DAAsB,CAAC,qDAAe,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAC/D,EACH;YACA,qBAAqB,GAAG,IAAI,CAAC;YAC7B,wCAAU,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SACjC;KACF;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAEM,SAAS,uBAAuB,CACrC,MAAc,EACd,IAAa;IAEb,MAAM,IAAI,GAAG,kEAA4B,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAe,CAAC;QAC7C,IACE,IAAI;aACD,uBAAuB,EAAE;aACzB,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,CAC7B,0DAAsB,CACpB,qDAAe,EACf,4DAAwB,CAAC,IAAI,EAAE,qDAAe,CAAC,EAC/C,UAAU,EACV,KAAK,CACN,CACF,EACH;YACA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACrC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACtB,CAAC;AAEM,SAAS,IAAI;IAClB,IAAI,qBAAqB,CAAC;IAC1B,IAAI,uEAAiC,KAAK,IAAI,EAAE;QAC9C,qBAAqB,GAAG,4EAAsC,CAAC;KAChE;SAAM;QACL,qBAAqB,GAAG,6EAAuC,CAAC;KACjE;IACD,MAAM,MAAM,GAAG,qBAAsB,CAAC,UAAU,EAAkB,CAAC;IACnE,MAAM,EAAE,mBAAmB,EAAE,GAAG,sDAAgB,CAAC;IACjD,MAAM,UAAU,GAAG,mBAAoB,CAAC,UAAU,EAEpC,CAAC;IAEf,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;QACvC,OAAO;KACR;IAED,IAAI,IAAgB,CAAC;IACrB,IAAI,KAAe,CAAC;IACpB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,0DAAc,EAAE;QAC3C,IAAI,GAAG,gEAAoB,CAAC;QAC5B,KAAK,GAAG,2DAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,qDAAe,CAAC,CAAC;KACnE;SAAM,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,yDAAa,EAAE;QACjD,IAAI,GAAG,+DAAmB,CAAC;QAC3B,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;KAC/B;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;KAC9D;IAGD,sCAAQ,CAAC;QACP,IAAI;QACJ,MAAM,EAAE,MAAM,CAAC,WAAW;QAC1B,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CACrB,MAAoB,EACpB,UAAoC;IAEpC,MAAM,EAAE,kBAAkB,EAAE,GAAG,oEAA8B,CAAC;IAC9D,MAAM,EAAE,cAAc,EAAE,GAAG,sDAAgB,CAAC;IAC5C,MAAM,gBAAgB,GACpB,uEAAiC,KAAK,IAAI;QACxC,CAAC,CAAC,+DAAyB;QAC3B,CAAC,CAAC,+EAAyC,CAAC;IAEhD,OAAO,CAEL,CAAC,kBAAkB,KAAK,cAAc;QACpC,uEAAiC,KAAK,IAAI,CAAC;QAE7C,gBAAgB,CAAC,UAAU;YACzB,+DAA2B,CAAC,CAAC,EAAE,qDAAe,CAAC;QACjD,MAAM,KAAK,SAAS;QACpB,MAAM,KAAK,IAAI;QACf,UAAU,KAAK,SAAS;QACxB,UAAU,KAAK,IAAI;QAEnB,6EAAwC;QACxC,IAAI,CAAC,GAAG,EAAE,GAAG,yDAAmB,GAAG,IAAI,CACxC,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChMM,MAAM,MAAM,GAAG,GAAG,CAAC;AACnB,MAAM,MAAM,GAAG,GAAG,CAAC;AACnB,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,WAAW,GAAG,KAAK,CAAC;AAG1B,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;CACrB,CAAC;AACK,MAAM,WAAW,GAAG,QAAQ,CAAC;AAC7B,MAAM,eAAe,GAAG,SAAS,CAAC;AAClC,MAAM,aAAa,GAAG,MAAM,CAAC;AAC7B,MAAM,SAAS,GAAG,SAAS,CAAC;AAG5B,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,gBAAgB,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;;;ACtBV;AAIX,MAAM,KAAM,SAAQ,oDAAW;IAS5C,YAAY,IAAY,EAAE,IAAY,EAAE,cAAuB;QAC7D,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC;YACJ,CAAC;YACD,CAAC;YACD,MAAM,EAAE;gBACN,CAAC;gBACD,CAAC;aACF;YACD,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAIH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,MAAM,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC;QAInC,MAAM,MAAM,GAAG,IAAI,oDAAW,CAAC;YAC7B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YAC1B,aAAa;YACb,YAAY,EAAE,aAAa;YAC3B,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,aAAa,GAAG,CAAC;YAC9B,UAAU,EAAE,aAAa,GAAG,CAAC;YAC7B,aAAa,EAAE,CAAC;YAChB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAIjB,MAAM,IAAI,GAAG,IAAI,mDAAU,CAAC;YAC1B,MAAM,EAAE,CAAC,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,CAAC;YACpD,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,aAAa,GAAG,IAAI;YACjC,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAGf,IAAI,CAAC,IAAI,GAAG,IAAI,oDAAW,CAAC;YAC1B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YAC1B,aAAa;YACb,YAAY,EAAE,aAAa;YAC3B,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,aAAa,GAAG,IAAI;YACjC,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAGpB,IAAI,CAAC,MAAM,GAAG,IAAI,qDAAY,CAAC;YAC7B,CAAC;YACD,CAAC,EAAE,CAAC,GAAG,GAAG;YACV,MAAM,EAAE,aAAa,GAAG,IAAI;YAC5B,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,aAAa,GAAG,IAAI;YACjC,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAGtB,IAAI,CAAC,IAAI,GAAG,IAAI,mDAAU,CAAC;YACzB,CAAC;YACD,CAAC,EAAE,CAAC,GAAG,GAAG;YACV,MAAM,EAAE;gBACN,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;gBAC1B,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;aAC5B;YACD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YAG1B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI;YACnC,QAAQ,EAAE,CAAC,GAAG,IAAI;YAClB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,QAAQ;YACf,aAAa,EAAE,QAAQ;YACvB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAGpB,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,oDAAW,CAAC;gBAC7B,CAAC;gBACD,CAAC,EAAE,CAAC,GAAG,GAAG;gBACV,KAAK,EAAE;oBACL,CAAC,EAAE,GAAG;oBACN,CAAC,EAAE,GAAG;iBACP;gBACD,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;CACF;;;;;;;;;;;;;;;;;;;;AC5HyB;AACkB;AACZ;AAEjB,MAAM,MAAO,SAAQ,oDAAW;IAa7C,YAAY,MAA6B,EAAE,MAA2B;;QACpE,KAAK,CAAC,MAAM,CAAC,CAAC;QAbhB,YAAO,GAAG,IAAI,CAAC;QACf,YAAO,GAAG,KAAK,CAAC;QAChB,qBAAgB,GAAG,KAAK,CAAC;QAGzB,gBAAW,GAAmB,IAAI,CAAC;QACnC,iBAAY,GAAuB,IAAI,CAAC;QACxC,yBAAoB,GAAuB,IAAI,CAAC;QAEhD,gBAAW,GAAG,EAAE,CAAC;QACjB,mBAAc,GAAG,EAAE,CAAC;QAIlB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAGrB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,MAAC,MAAM,CAAC,QAAmB,mCAAI,GAAG,GAAG,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAC9B;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,mDAAU,CAAC;YAC/B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,YAAY,EAAE,IAAI,GAAG,CAAC;YACtB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,IAAI,CAAC,WAAW,GAAG,IAAI,6CAAO,CAAC;gBAC7B,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;gBACjC,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,GAAG,GAAG,CAAC;gBACf,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,MAAM,CAAC,IAAc;gBAC3B,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC5B;aAAM,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACpD,IAAI,CAAC,YAAY,GAAG,IAAI,oDAAW,CAAC;gBAClC,CAAC,EAAE,GAAG,GAAG,CAAC;gBACV,CAAC,EAAE,GAAG,GAAG,CAAC;gBACV,KAAK,EAAE,GAAG,GAAG,CAAC;gBACd,MAAM,EAAE,GAAG,GAAG,CAAC;gBACf,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAChB,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE5B,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gBACtB,IAAI,CAAC,oBAAoB,GAAG,IAAI,oDAAW,CAAC;oBAC1C,CAAC,EAAE,GAAG,GAAG,CAAC;oBACV,CAAC,EAAE,GAAG,GAAG,CAAC;oBACV,KAAK,EAAE,GAAG,GAAG,CAAC;oBACd,MAAM,EAAE,GAAG,GAAG,CAAC;oBACf,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;oBAChB,OAAO,EAAE,KAAK;oBACd,SAAS,EAAE,KAAK;iBACjB,CAAC,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;aACrC;SACF;QAED,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,wDAAS,CAAC,IAAI,CAAC,CAAC;YAEhB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,wDAAS,CAAC,IAAI,CAAC,CAAC;YAEhB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;gBAClC,WAAW,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACjC,WAAW,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;YAC5B,OAAO;SACR;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SACtD;QAED,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,EAAE;YACpE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;SAC7C;QAED,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnC,wDAAS,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpD,wDAAS,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YAC7B,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAChC;iBAAM;gBAEL,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aACnC;SACF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;SACzE;IACH,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAChC;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;SACzE;IACH,CAAC;CACF;;;;;;;;;;;;;;;;;;;;ACpJyB;AACO;AACW;AAE7B,MAAM,WAAY,SAAQ,oDAAW;IAclD,YAAY,MAA6B;;QACvC,KAAK,CAAC,MAAM,CAAC,CAAC;QAdhB,YAAO,GAAG,IAAI,CAAC;QACf,YAAO,GAAG,KAAK,CAAC;QAGhB,iBAAY,GAAuB,IAAI,CAAC;QACxC,kBAAa,GAAuB,IAAI,CAAC;QACzC,yBAAoB,GAAuB,IAAI,CAAC;QAChD,0BAAqB,GAAuB,IAAI,CAAC;QACjD,gBAAW,GAAsB,IAAI,CAAC;QAEtC,gBAAW,GAAG,EAAE,CAAC;QACjB,mBAAc,GAAG,EAAE,CAAC;QAIlB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAGrB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,MAAC,MAAM,CAAC,QAAmB,mCAAI,GAAG,GAAG,CAAC,CAAC;QAExD,IAAI,CAAC,UAAU,GAAG,IAAI,mDAAU,CAAC;YAC/B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,YAAY,EAAE,IAAI,GAAG,CAAC;YACtB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE1B,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC;QAEtB,IAAI,CAAC,YAAY,GAAG,IAAI,oDAAW,CAAC;YAClC,CAAC,EAAE,MAAM;YACT,CAAC,EAAE,MAAM;YACT,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,6DAAwB,CAAC,aAAa,CAAE;YAC/C,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE5B,IAAI,CAAC,aAAa,GAAG,IAAI,oDAAW,CAAC;YACnC,CAAC,EAAE,MAAM;YACT,CAAC,EAAE,MAAM;YACT,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,6DAAwB,CAAC,cAAc,CAAE;YAChD,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE7B,IAAI,CAAC,oBAAoB,GAAG,IAAI,oDAAW,CAAC;YAC1C,CAAC,EAAE,MAAM;YACT,CAAC,EAAE,MAAM;YACT,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,6DAAwB,CAAC,sBAAsB,CAAE;YACxD,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAEpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,oDAAW,CAAC;YAC3C,CAAC,EAAE,MAAM;YACT,CAAC,EAAE,MAAM;YACT,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,6DAAwB,CAAC,uBAAuB,CAAE;YACzD,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAErC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,IAAI,CAAC,WAAW,GAAG,IAAI,mDAAU,CAAC;gBAChC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG;gBACxB,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;gBACjC,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,GAAG,GAAG,CAAC;gBACf,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,MAAM,CAAC,IAAc;gBAC3B,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC5B;QAED,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,wDAAS,CAAC,IAAI,CAAC,CAAC;YAEhB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,wDAAS,CAAC,IAAI,CAAC,CAAC;YAEhB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;gBAClC,WAAW,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACjC,WAAW,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;YAC5B,OAAO;SACR;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SACtD;QAED,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,wDAAS,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,wDAAS,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,qBAAqB;;QACnB,UAAI,CAAC,YAAY,0CAAE,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,UAAI,CAAC,aAAa,0CAAE,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,UAAI,CAAC,oBAAoB,0CAAE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAClE,UAAI,CAAC,qBAAqB,0CAAE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAChC;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;SACzE;IACH,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAChC;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;SACzE;IACH,CAAC;CACF;;;;;;;;;;;;;;;;;;;;;AC3KyB;AACiB;AACV;AACD;AAiBjB,MAAM,iBAAkB,SAAQ,oDAAW;IAUxD,YAAY,MAAqB,EAAE,IAAY,EAAE,IAAY;QAC3D,KAAK,CAAC;YACJ,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI;YAClB,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI;YAClB,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI;YACtB,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI;YACvB,OAAO,EAAE,CAAC,4DAAsB;YAChC,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAVL,UAAK,GAAuB,IAAI,CAAC;QAY/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAGrB,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;QAChC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,mDAAU,CAAC;YAC1B,KAAK,EAAE,SAAS,GAAG,IAAI;YACvB,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI;YACvB,YAAY,EAAE,IAAI,GAAG,IAAI;YACzB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErB,MAAM,UAAU,GAAG;YACjB,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC;YACjC,EAAE,EAAE,SAAS,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC;YAClC,CAAC,EAAE,CAAC;YACJ,EAAE,EAAE,CAAC;SACN,CAAC;QACF,UAAU,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;QAChD,UAAU,CAAC,EAAE,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;QAElD,IAAI,CAAC,KAAK,GAAG,IAAI,6CAAO,CAAC;YACvB,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;YACtB,KAAK,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;YAC1B,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,IAAI,GAAG,IAAI;YACrB,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,mDAAW;YACjB,WAAW,EAAE,OAAO;YACpB,UAAU,EAAE,EAAE;YACd,YAAY,EAAE;gBACZ,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;aACL;YACD,aAAa,EAAE,GAAG;YAClB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErB,IAAI,CAAC,KAAK,GAAG,IAAI,6CAAO,CAAC;YACvB,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;YACtB,KAAK,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;YAC1B,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,IAAI,GAAG,IAAI;YACrB,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,OAAO;YACpB,UAAU,EAAE,EAAE;YACd,YAAY,EAAE;gBACZ,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;aACL;YACD,aAAa,EAAE,GAAG;YAClB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErB,IAAI,CAAC,KAAK,GAAG,IAAI,6CAAO,CAAC;YACvB,CAAC,EAAE,UAAU,CAAC,EAAE,GAAG,IAAI;YACvB,KAAK,EAAE,UAAU,CAAC,EAAE,GAAG,IAAI;YAC3B,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,IAAI,GAAG,IAAI;YACrB,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,OAAO;YACpB,UAAU,EAAE,EAAE;YACd,YAAY,EAAE;gBACZ,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;aACL;YACD,aAAa,EAAE,GAAG;YAClB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAGrB,MAAM,WAAW,GAAG;YAClB,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,OAAO;YACnC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,OAAO;YACnC,CAAC,EAAE,MAAM,CAAC,CAAC;YACX,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,mDAAU,CAAC;YAC3B,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,IAAI;YACvB,KAAK,EAAE,WAAW,CAAC,CAAC,GAAG,IAAI;YAC3B,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI;YACvB,YAAY,EAAE,IAAI,GAAG,IAAI;YACzB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEhB,MAAM,eAAe,GAAG,OAAO,GAAG,IAAI,CAAC;QAEvC,IAAI,CAAC,KAAK,GAAG,IAAI,oDAAW,CAAC;YAC3B,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;YAC7C,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;YACxB,MAAM,EAAE;gBACN,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;gBAC7B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;aACzB;YACD,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErB,MAAM,WAAW,GAAG,IAAI,oDAAW,CAAC;YAClC,MAAM,EAAE;gBACN,WAAW,CAAC,OAAO,GAAG,IAAI;gBAC1B,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;gBAC1B,CAAC,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;gBAC5C,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;aAC3B;YACD,aAAa,EAAE,eAAe,GAAG,CAAC;YAClC,YAAY,EAAE,eAAe,GAAG,CAAC;YACjC,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,eAAe,GAAG,CAAC;YAChC,UAAU,EAAE,EAAE;YACd,aAAa,EAAE,CAAC;YAChB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE5B,MAAM,eAAe,GAAG,IAAI,mDAAU,CAAC;YACrC,MAAM,EAAE;gBACN,WAAW,CAAC,OAAO,GAAG,IAAI;gBAC1B,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI;gBAClC,WAAW,CAAC,OAAO,GAAG,IAAI;gBAC1B,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI;aACnC;YACD,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,eAAe;YAC5B,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAEhC,MAAM,SAAS,GAAG,IAAI,oDAAW,CAAC;YAChC,MAAM,EAAE;gBACN,WAAW,CAAC,OAAO,GAAG,IAAI;gBAC1B,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;gBAC1B,CAAC,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;gBAC5C,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;aAC3B;YACD,aAAa,EAAE,eAAe,GAAG,CAAC;YAClC,YAAY,EAAE,eAAe,GAAG,CAAC;YACjC,IAAI,EAAE,mDAAW;YACjB,MAAM,EAAE,mDAAW;YACnB,WAAW,EAAE,eAAe;YAC5B,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;;;;;;;;;;;;;;;;;AC3M6B;AAEf,MAAM,eAAgB,SAAQ,4CAAM;IAAnD;;QACE,YAAO,GAAoC,GAAG,EAAE,GAAE,CAAC,CAAC;QACpD,cAAS,GAAoC,GAAG,EAAE,GAAE,CAAC,CAAC;QACtD,aAAQ,GAAoC,GAAG,EAAE,GAAE,CAAC,CAAC;IACvD,CAAC;CAAA;;;;;;;;;;;;;;;;;;ACNyB;AAGX,MAAM,OAAQ,SAAQ,mDAAU;IAI7C,YAAY,MAAwB;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;QAGd,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAGtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,CAAC,SAAS,CAAC,SAAS,SAAS,CAE/B,OAA6B;YAE7B,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;YACD,2EAAoC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7D,CAAC,CAAC;QAEF,MAAM,eAAe,GAAG,CAAC,CAAC;QAE1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,eAAe,EAAE;YAEvE,IAAI,GAAG,GAAG,eAAe,CAAC;YAC1B,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7B,MAAM,SAAS,GAAG,GAAG,CAAC;YACtB,OAAO,IAAI,GAAG,GAAG,GAAG,SAAS,EAAE;gBAC7B,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACjB,GAAG,GAAG,GAAG,CAAC;iBACX;qBAAM;oBACL,IAAI,GAAG,GAAG,CAAC;iBACZ;aACF;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SACpB;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;CACF;;;;;;;;;;;;;;;;;;AC3DyB;AAGX,MAAM,gBACnB,SAAQ,oDAAW;IADrB;;QAIE,gBAAW,GAAG,EAAE,CAAC;QACjB,mBAAc,GAAG,EAAE,CAAC;IACtB,CAAC;CAAA;;;;;;;;;;;;;;;;;;ACTyB;AAEX,MAAM,aAAc,SAAQ,oDAAW;IAAtD;;QAEE,YAAO,GAAG,KAAK,CAAC;IAClB,CAAC;CAAA;;;;;;;;;;;;;;;;;ACJ6B;AAEf,MAAM,YAAa,SAAQ,4CAAM;IAG9C,YAAY,MAA6B,EAAE,WAAmB;QAC5D,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;;;;;;;;;;;;;;;;;;;ACVyB;AACiB;AAE5B,MAAM,OAAQ,SAAQ,mDAAU;IAI7C,YAAY,MAAyB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QAHR,aAAQ,GAAG,KAAK,CAAC;QAIvB,IAAI,CAAC,SAAS,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;YAC3B,OAAO;SACR;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;aAAM;YACL,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,mDAAW,CAAC,CAAC;IACzB,CAAC;IAED,gBAAgB;;QACd,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,UAAI,CAAC,SAAS,mCAAI,OAAO,CAAC,CAAC;IACvC,CAAC;CACF;;;;;;;;;;;;;;;;;;AClCyB;AAGX,MAAM,eACnB,SAAQ,mDAAU;IADpB;;QAIE,gBAAW,GAAG,EAAE,CAAC;QACjB,mBAAc,GAAG,EAAE,CAAC;IACtB,CAAC;CAAA;;;;;;;;;;;;;;;;;ACT6B;AAEf,MAAM,iBAAkB,SAAQ,4CAAM;IAArD;;QACE,YAAO,GAAsC,GAAG,EAAE,GAAE,CAAC,CAAC;QACtD,cAAS,GAAsC,GAAG,EAAE,GAAE,CAAC,CAAC;IAC1D,CAAC;CAAA;;;;;;;;;;;;;;;;;;ACLyB;AAEX,MAAM,OAAQ,SAAQ,mDAAU;IAA/C;;QACE,UAAK,GAAuB,IAAI,CAAC;IACnC,CAAC;CAAA;;;;;;;;;;;;;;;;;;ACJyB;AAEX,MAAM,aAAc,SAAQ,oDAAW;IAAtD;;QACE,YAAO,GAAkC,GAAG,EAAE,GAAE,CAAC,CAAC;QAClD,cAAS,GAAkC,GAAG,EAAE,GAAE,CAAC,CAAC;IACtD,CAAC;CAAA;;;;;;;;;;;;;;;;;;ACLyB;AAEX,MAAM,YAAa,SAAQ,mDAAU;IAMlD,YAAY,MAAyB,EAAE,GAAW;QAChD,KAAK,CAAC,MAAM,CAAC,CAAC;QAJhB,gBAAW,GAAG,EAAE,CAAC;QACjB,mBAAc,GAAG,EAAE,CAAC;QAIlB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;CACF;;;;;;;;;;;;;;;;;;ACZyB;AAEX,MAAM,OAAQ,SAAQ,oDAAW;IAO9C,YAAY,MAAyB,EAAE,GAAW;QAChD,KAAK,CAAC,MAAM,CAAC,CAAC;QANhB,UAAK,GAAuB,IAAI,CAAC;QAEjC,gBAAW,GAAG,EAAE,CAAC;QACjB,mBAAc,GAAG,EAAE,CAAC;QAIlB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;CACF;;;;;;;;;;;;;;;;;;ACbyB;AAGX,MAAM,eACnB,SAAQ,mDAAU;IADpB;;QAIE,gBAAW,GAAG,EAAE,CAAC;QACjB,mBAAc,GAAG,EAAE,CAAC;QAEpB,UAAK,GAAG,KAAK,CAAC;IAChB,CAAC;CAAA;;;;;;;;;;;;;;;;;;;;ACXyB;AACiB;AACX;AAEjB,MAAM,YAAa,SAAQ,oDAAW;IAOnD,YAAY,MAA6B;QACvC,KAAK,CAAC,MAAM,CAAC,CAAC;QAJhB,gBAAW,GAAG,EAAE,CAAC;QACjB,mBAAc,GAAG,EAAE,CAAC;QAKlB,MAAM,IAAI,GAAG,IAAI,mDAAU,CAAC;YAC1B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,OAAO;YACb,YAAY,EAAE,MAAM,CAAC,YAA6C;YAClE,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC,SAAS,GAAG,IAAI,6CAAO,CAAC;YAC3B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,MAAM,CAAC,MAA4B;YACtC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAA8B;YAC/C,UAAU,EAAE,SAAS;YACrB,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,mDAAW;YACjB,WAAW,EAAE,OAAO;YACpB,UAAU,EAAE,EAAE;YACd,YAAY,EAAE;gBACZ,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;aACL;YACD,aAAa,EAAE,GAAG;YAClB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEzB,IAAI,CAAC,SAAS,GAAG,IAAI,6CAAO,CAAC;YAC3B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM;YACpB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,QAAQ,CAAuB;YACzE,UAAU,EAAE,SAAS;YACrB,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,MAAM,CAAC,KAA2B;YACxC,IAAI,EAAE,mDAAW;YACjB,WAAW,EAAE,OAAO;YACpB,UAAU,EAAE,EAAE;YACd,YAAY,EAAE;gBACZ,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;aACL;YACD,aAAa,EAAE,GAAG;YAClB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF;;;;;;;;;;;;;;;;;ACrEM,SAAS,eAAe,CAC7B,SAAwB,EACxB,OAAgB;IAEhB,IACE,SAAS,KAAK,IAAI;QAClB,SAAS,GAAG,CAAC;QACb,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EACjC;QACA,OAAO,IAAI,CAAC;KACb;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAEM,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,OAAgB,EAAU,EAAE,CAC1E,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;ACrBzC;AAOhC,IAAI,iBAAiB,GAAG,SAAS,CAAC;AAE3B,SAAS,GAAG,CAAC,UAAsB;IAExC,IAAI,mDAAa,KAAK,IAAI,EAAE;QAC1B,OAAO;KACR;IAED,IAAI,UAAU,KAAK,iBAAiB,EAAE;QACpC,OAAO;KACR;IAGD,IACE,CAAC,8DAAwB,IAAI,yEAAmC,CAAC;QACjE,2DAAqB,EACrB;QACA,OAAO;KACR;IAED,iBAAiB,GAAG,UAAU,CAAC;IAE/B,IAAI,WAAW,GAAG,MAAM,CAAC;IACzB,QAAQ,UAAU,EAAE;QAClB,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC,CAAC;YACX,MAAM,GAAG,GAAG,uBAAuB,UAAU,MAAM,CAAC;YACpD,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;YACpC,MAAM;SACP;QAED,KAAK,MAAM,CAAC,CAAC;YACX,WAAW,GAAG,MAAM,CAAC;YACrB,MAAM;SACP;QAED,KAAK,UAAU,CAAC,CAAC;YACf,WAAW,GAAG,UAAU,CAAC;YACzB,MAAM;SACP;QAED,OAAO,CAAC,CAAC;YACP,WAAW,GAAG,MAAM,CAAC;YACrB,MAAM;SACP;KACF;IAED,6DAAuB,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;AAIvD,CAAC;AAEM,SAAS,sBAAsB,CACpC,OAA2B;IAE3B,MAAM,GAAG,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAC1C,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;IAClD,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;IAEnD,IACE,+DAAyB,KAAK,IAAI;QAClC,WAAW,CAAC,GAAG,EAAE,+DAAyB,CAAC,EAC3C;QACA,OAAO,UAAU,CAAC;KACnB;IACD,IACE,kEAA4B,KAAK,IAAI;QACrC,WAAW,CAAC,GAAG,EAAE,kEAA4B,CAAC,EAC9C;QACA,OAAO,aAAa,CAAC;KACtB;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,SAAS,eAAe,CAAC,OAAoB;IAClD,IAAI,qDAAe,EAAE;QACnB,OAAO,KAAK,CAAC;KACd;IAED,MAAM,GAAG,GAAG,sEAAgC,EAAE,CAAC;IAC/C,IAAI,GAAG,KAAK,SAAS,EAAE;QAErB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,WAAW,CAAC,GAAmB,EAAE,OAAiC;IACzE,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACjD,OAAO,CACL,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC;QACrB,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC;QACrB,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE;QACvC,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CACzC,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACzG0C;AACE;AACI;AAMrB;AAGiB;AACb;AACkB;AAGnC,SAAS,SAAS,CAC/B,OAAgB,EAChB,cAAuB,EACvB,YAAqB,EACrB,aAAsB,EACtB,UAAyE,EACzE,WAGsB,EACtB,UAGsB;IAEtB,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;IAIxD,MAAM,WAAW,GAAG,uDAAO,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QAKxB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE;YAEpC,IACE,IAAI,CAAC,IAAI,KAAK,SAAS;gBACvB,CAAC,IAAI,KAAK,6DAAe,IAAI,IAAI,KAAK,+DAAiB,CAAC,EACxD;gBACA,SAAS;aACV;YAED,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,UAAU,EAAE,CAAC;YAGhC,IAAI,IAAI,KAAK,6DAAe,EAAE;gBAC5B,kBAAkB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;aACxC;YAGD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;aAC1D;YAGD,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;YAEtE,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;YACpB,GAAG,CAAC,SAAS,GAAG,YAAY,CAC1B,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,OAAO,EACP,cAAc,CACf,CAAC;YACF,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;YAC1B,GAAG,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;YAEvB,IAAI,IAAI,KAAK,6DAAe,IAAI,IAAI,KAAK,+DAAiB,EAAE;gBAC1D,IAAI,QAAQ,CAAC;gBACb,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,IAAI,KAAK,6DAAe,EAAE;oBAC5B,SAAS,GAAG,GAAG,CAAC;iBACjB;gBACD,IAAI,QAAQ,CAAC;gBACb,IAAI,cAAc,EAAE;oBAClB,SAAS,IAAI,yDAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBACvD,QAAQ,GAAG,EAAE,CAAC;oBACd,QAAQ,GAAG,EAAE,CAAC;iBACf;qBAAM;oBACL,QAAQ,GAAG,EAAE,CAAC;oBACd,QAAQ,GAAG,GAAG,CAAC;iBAChB;gBAED,GAAG,CAAC,IAAI,GAAG,QAAQ,QAAQ,UAAU,CAAC;gBAGtC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACX,IAAI,YAAY,IAAI,CAAC,cAAc,EAAE;oBACnC,0DAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC5B,GAAG,CAAC,IAAI,EAAE,CAAC;oBACX,GAAG,CAAC,MAAM,EAAE,CAAC;iBACd;qBAAM;oBACL,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;iBACnD;gBACD,GAAG,CAAC,OAAO,EAAE,CAAC;gBAId,MAAM,eAAe,GAAG,SAAS,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;gBACrD,UAAU,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;gBAGvD,IAAI,CAAC,sDAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACvD,GAAG,CAAC,IAAI,EAAE,CAAC;oBACX,GAAG,CAAC,SAAS,CAAC,8CAAM,EAAE,8CAAM,CAAC,CAAC;oBAC9B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACpB,IAAI,YAAY,IAAI,CAAC,cAAc,EAAE;wBACnC,0DAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;wBAC5B,GAAG,CAAC,SAAS,CAAC,8CAAM,EAAE,8CAAM,CAAC,CAAC;wBAC9B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACpB,GAAG,CAAC,IAAI,EAAE,CAAC;wBACX,GAAG,CAAC,MAAM,EAAE,CAAC;wBACb,GAAG,CAAC,SAAS,CAAC,8CAAM,EAAE,8CAAM,CAAC,CAAC;wBAC9B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBACrB;yBAAM;wBACL,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;qBACnD;oBACD,GAAG,CAAC,OAAO,EAAE,CAAC;iBACf;aACF;YAID,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC3B,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;aAC9D;YAED,MAAM,eAAe,GAAG,QAAQ,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YACpD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvC,UAAU,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;SAC5C;KACF;IAKD;QACE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,eAAe,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACzC,UAAU,CAAC,GAAG,CAAC,gBAAgB,+DAAiB,EAAE,EAAE,WAAW,CAAC,CAAC;KAClE;IAID;QACE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;KACvC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CACnB,GAA6B,EAC7B,IAAY,EACZ,IAAU,EACV,cAAuB,EACvB,aAAsB;IAEtB,MAAM,KAAK,GAAG,GAAG,CAAC;IAGlB,IAAI,IAAI,KAAK,CAAC,EAAE;QACd,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,SAAS,CAAC,8CAAM,GAAG,CAAC,EAAE,8CAAM,GAAG,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;QACpC,iDAAO,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAClC,GAAG,CAAC,OAAO,EAAE,CAAC;KACf;IAGD,IAAI,IAAI,KAAK,CAAC,EAAE;QACd,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,SAAS,CAAC,8CAAM,GAAG,CAAC,EAAE,8CAAM,GAAG,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QAC9B,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;QACpC,iDAAO,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAClC,GAAG,CAAC,OAAO,EAAE,CAAC;QAEd,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,SAAS,CAAC,8CAAM,GAAG,CAAC,EAAE,8CAAM,GAAG,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAC7B,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;QACpC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,iDAAO,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAClC,GAAG,CAAC,OAAO,EAAE,CAAC;KACf;IAGD,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;QAC1B,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7C,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,SAAS,CAAC,8CAAM,GAAG,CAAC,EAAE,8CAAM,GAAG,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QAC9B,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxB,iDAAO,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAClC,GAAG,CAAC,OAAO,EAAE,CAAC;QAEd,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,SAAS,CAAC,8CAAM,GAAG,CAAC,EAAE,8CAAM,GAAG,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAC7B,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,iDAAO,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAClC,GAAG,CAAC,OAAO,EAAE,CAAC;KACf;IAGD,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;QAC5B,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,SAAS,CAAC,8CAAM,GAAG,CAAC,EAAE,8CAAM,GAAG,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxB,iDAAO,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAClC,GAAG,CAAC,OAAO,EAAE,CAAC;QAEd,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,SAAS,CAAC,8CAAM,GAAG,CAAC,EAAE,8CAAM,GAAG,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACrB,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,iDAAO,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAClC,GAAG,CAAC,OAAO,EAAE,CAAC;KACf;IAGD,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;QAC5B,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;QACpB,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,SAAS,CAAC,8CAAM,GAAG,CAAC,EAAE,8CAAM,GAAG,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;QACpC,iDAAO,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAClC,GAAG,CAAC,OAAO,EAAE,CAAC;KACf;IAGD,IAAI,IAAI,KAAK,6DAAe,EAAE;QAC5B,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;QACpB,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,SAAS,CAAC,8CAAM,GAAG,CAAC,EAAE,8CAAM,GAAG,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;QACpC,iDAAO,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAClC,GAAG,CAAC,OAAO,EAAE,CAAC;KACf;IAGD,IAAI,IAAI,KAAK,+DAAiB,IAAI,IAAI,KAAK,6DAAe,EAAE;QAC1D,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,IAAI,SAAS,CAAC;QACd,IAAI,IAAI,KAAK,6DAAe,EAAE;YAC5B,SAAS,GAAG,CAAC,CAAC;SACf;aAAM;YAEL,GAAG,CAAC,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;SAC9C;QACD,GAAG,CAAC,SAAS,CAAC,8CAAM,GAAG,CAAC,EAAE,8CAAM,GAAG,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAChC,iDAAO,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACxD,GAAG,CAAC,OAAO,EAAE,CAAC;KACf;AACH,CAAC;AAED,SAAS,eAAe,CACtB,UAAyE,EACzE,aAAsB;IAEtB,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,UAAU,EAAE,CAAC;IAEhC,kBAAkB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACvC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;IACxB,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;IAEtC,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC;IACtB,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC;IACtB,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;IAClB,GAAG,CAAC,MAAM,EAAE,CAAC;IACb,GAAG,CAAC,OAAO,EAAE,CAAC;IAEd,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1B,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;IAClB,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;IAEvB,GAAG,CAAC,SAAS,CAAC,8CAAM,GAAG,CAAC,EAAE,8CAAM,GAAG,CAAC,CAAC,CAAC;IAEtC,MAAM,UAAU,GAA4D;QAC1E,GAAG;QACH,GAAG;KACJ,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CACnB,OAAgB,EAChB,UAAyE,EACzE,aAAsB;IAEtB,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,eAAe,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAE9D,MAAM,EAAE,GAAG,GAAG,CAAC;IACf,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;IACpC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAG9B,MAAM,CAAC,GACL,CAAC,IAAI;YACL,IAAI,CAAC,KAAK,CAAC,8CAAM,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,GACL,CAAC,IAAI;YACL,IAAI,CAAC,KAAK,CAAC,8CAAM,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAE1E,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,iDAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACpC,GAAG,CAAC,OAAO,EAAE,CAAC;KACf;IACD,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAE1B,MAAM,UAAU,GAA4D;QAC1E,GAAG;QACH,GAAG;KACJ,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CACnB,GAA6B,EAC7B,IAAU,EACV,IAAY,EACZ,OAAgB,EAChB,cAAuB,EACvB,aAAsB;IAGtB,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,GAAG,CAAC,SAAS,GAAG,YAAY,CAC1B,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,YAAY,EACZ,OAAO,EACP,cAAc,CACf,CAAC;IACF,GAAG,CAAC,WAAW,GAAG,YAAY,CAC5B,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,YAAY,EACZ,OAAO,EACP,cAAc,CACf,CAAC;IACF,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;IAGtC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC;IACtB,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC;IACtB,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;IAElB,IAAI,IAAI,KAAK,CAAC,EAAE;QACd,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;KACrB;IACD,GAAG,CAAC,MAAM,EAAE,CAAC;IACb,GAAG,CAAC,OAAO,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CACrB,GAA6B,EAC7B,OAAe,EACf,aAAsB;IAEtB,MAAM,qBAAqB,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,MAAM,QAAQ,GAAG,8CAAM,GAAG,qBAAqB,CAAC;IAChD,MAAM,QAAQ,GAAG,8CAAM,GAAG,qBAAqB,CAAC;IAEhD,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC;IACxC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,8CAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC;IACjD,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,8CAAM,EAAE,QAAQ,GAAG,OAAO,EAAE,8CAAM,GAAG,OAAO,CAAC,CAAC;IACtE,GAAG,CAAC,MAAM,CAAC,8CAAM,GAAG,QAAQ,GAAG,OAAO,EAAE,8CAAM,GAAG,OAAO,CAAC,CAAC;IAC1D,GAAG,CAAC,gBAAgB,CAClB,8CAAM,EACN,8CAAM,EACN,8CAAM,GAAG,OAAO,EAChB,8CAAM,GAAG,QAAQ,GAAG,OAAO,CAC5B,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,8CAAM,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC;IACjD,GAAG,CAAC,gBAAgB,CAAC,8CAAM,EAAE,CAAC,EAAE,8CAAM,GAAG,QAAQ,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC;IACtE,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC;IACxC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,SAAS,CAAC,GAA6B,EAAE,aAAsB;IACtE,IAAI,aAAa,EAAE;QACjB,GAAG,CAAC,WAAW,GAAG,oBAAoB,CAAC;KACxC;IACD,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,IAAI,aAAa,EAAE;QACjB,GAAG,CAAC,WAAW,GAAG,kBAAkB,CAAC;KACtC;IACD,GAAG,CAAC,MAAM,EAAE,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CACf,GAA6B,EAC7B,QAAgB,EAChB,UAAkB,EAClB,aAAsB;IAEtB,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,IAAI,aAAa,EAAE;QACjB,GAAG,CAAC,WAAW,GAAG,oBAAoB,CAAC;QACvC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACvC,GAAG,CAAC,WAAW,GAAG,kBAAkB,CAAC;QACrC,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;KAC1C;SAAM;QACL,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACzC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;KACxC;IACD,GAAG,CAAC,OAAO,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAA6B,EAC7B,UAAmB,EACnB,aAAsB;IAEtB,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC;IAE5C,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,MAAM,UAAU,GAAG,CAAC,CAAC;IAGrB,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,8CAAM,GAAG,UAAU,EAAE,UAAU,CAAC,CAAC;IAC5C,GAAG,CAAC,MAAM,CAAC,8CAAM,GAAG,UAAU,GAAG,YAAY,EAAE,UAAU,CAAC,CAAC;IAE3D,GAAG,CAAC,MAAM,CACR,8CAAM,GAAG,UAAU,GAAG,YAAY,GAAG,CAAC,EACtC,UAAU,GAAG,YAAY,GAAG,CAAC,CAC9B,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,8CAAM,GAAG,UAAU,EAAE,UAAU,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;IAChC,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAG9B,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,8CAAM,GAAG,UAAU,EAAE,UAAU,CAAC,CAAC;IAC5C,GAAG,CAAC,MAAM,CAAC,8CAAM,GAAG,UAAU,EAAE,UAAU,GAAG,YAAY,CAAC,CAAC;IAE3D,GAAG,CAAC,MAAM,CACR,8CAAM,GAAG,UAAU,GAAG,YAAY,GAAG,CAAC,EACtC,UAAU,GAAG,YAAY,GAAG,CAAC,CAC9B,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,8CAAM,GAAG,UAAU,EAAE,UAAU,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;IAChC,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAG9B,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,8CAAM,GAAG,UAAU,CAAC,CAAC;IAC5C,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,8CAAM,GAAG,UAAU,GAAG,YAAY,CAAC,CAAC;IAE3D,GAAG,CAAC,MAAM,CACR,UAAU,GAAG,YAAY,GAAG,CAAC,EAC7B,8CAAM,GAAG,UAAU,GAAG,YAAY,GAAG,CAAC,CACvC,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,8CAAM,GAAG,UAAU,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;IAChC,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAG9B,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,8CAAM,GAAG,UAAU,CAAC,CAAC;IAC5C,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,YAAY,EAAE,8CAAM,GAAG,UAAU,CAAC,CAAC;IAE3D,GAAG,CAAC,MAAM,CACR,UAAU,GAAG,YAAY,GAAG,CAAC,EAC7B,8CAAM,GAAG,UAAU,GAAG,YAAY,GAAG,CAAC,CACvC,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,8CAAM,GAAG,UAAU,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;IAChC,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAE9B,GAAG,CAAC,OAAO,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CACzB,GAA6B,EAC7B,aAAsB;IAEtB,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;IAEtC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;IACxB,GAAG,CAAC,IAAI,EAAE,CAAC;IAEX,GAAG,CAAC,OAAO,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CACnB,IAAU,EACV,IAAY,EACZ,GAA6B,EAC7B,QAAgB,EAChB,OAAgB,EAChB,cAAuB;IAEvB,IAAI,IAAI,CAAC,KAAK,EAAE;QAEd,IAAI,IAAI,KAAK,CAAC,EAAE;YACd,OAAO,IAAI,CAAC,IAAI,CAAC;SAClB;QAED,IAAI,eAAe,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QAC7D,IAAI,IAAI,KAAK,6DAAe,EAAE;YAE5B,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;SACjD;QACD,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;QAC9D,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB,OAAO,IAAI,CAAC,IAAI,CAAC;SAClB;QACD,MAAM,cAAc,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAC7B;QAED,OAAO,UAAU,CAAC,cAAc,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC;KACzD;IAGD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;QACzB,OAAO,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;KACzD;IAID,IAAI,QAAQ,KAAK,QAAQ,EAAE;QACzB,OAAO,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;KAClE;IACD,IAAI,QAAQ,KAAK,YAAY,EAAE;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;YACrD,OAAO,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,8CAAM,GAAG,EAAE,CAAC,CAAC,CAAC;SAC3E;QACD,OAAO,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,8CAAM,EAAE,8CAAM,CAAC,CAAC,CAAC;KACzE;IACD,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,gDAAgD,CAC9E,CAAC;AACJ,CAAC;AAGD,SAAS,kBAAkB,CACzB,GAA6B,EAC7B,MAAgB,EAChB,IAAc;IAEd,MAAM,IAAI,GAAG,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACtC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KACvD;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAKD,SAAS,iBAAiB,CACxB,aAAqB,EACrB,aAAqB,EACrB,WAAmB;IAEnB,MAAM,QAAQ,GAAG,aAAa,GAAG,WAAW,CAAC;IAC7C,MAAM,QAAQ,GAAG,aAAa,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;IACnD,OAAO,QAAQ,GAAG,QAAQ,CAAC;AAC7B,CAAC;AAKD,SAAS,UAAU,CAAC,IAAc,EAAE,IAAc,EAAE,WAAmB;IACrE,MAAM,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC3D,MAAM,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC3D,MAAM,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC3D,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/B,CAAC;AAGD,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,MAAM,GAAG,2CAA2C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,OAAO,MAAM,KAAK,IAAI;QACpB,CAAC,CAAC;YACE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC1B,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC1B,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SAC3B;QACH,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;;;;;;;;;;;;;;;;;;;AC9mB4C;AAEtC,SAAS,UAAU;IAIxB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC7C,GAAG,CAAC,KAAK,GAAG,8CAAM,CAAC;IACnB,GAAG,CAAC,MAAM,GAAG,8CAAM,CAAC;IAEpB,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,IAAI,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;KACxE;IAED,MAAM,UAAU,GAA4D;QAC1E,GAAG;QACH,GAAG;KACJ,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC;AAEM,SAAS,WAAW,CACzB,MAAyB,EACzB,MAAgC;IAGhC,IAAI,MAAM,EAAE,GAAE;IAEd,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAE9B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,GAAG,KAAK,IAAI,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;KACxE;IACD,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,OAAO,MAAM,CAAC;AAChB,CAAC;AAEM,SAAS,UAAU,CACxB,GAAsB,EACtB,GAA6B;IAG7B,IAAI,GAAG,EAAE,GAAE;IAEX,OAAO,GAAG,CAAC;AACb,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AClDyB;AACsB;AACV;AAEA;AACkB;AACC;AACzB;AACI;AACG;AAWvC,MAAM,OAAO,GAAmB,EAAE,CAAC;AACnC,MAAM,OAAO,GAAmB,EAAE,CAAC;AACnC,MAAM,UAAU,GAAmB,EAAE,CAAC;AAEvB,SAAS,SAAS,CAAC,IAAY,EAAE,IAAY;IAE1D,MAAM,EAAE,UAAU,EAAE,GAAG,qDAAe,CAAC;IACvC,MAAM,eAAe,GAAG,qDAAiB,CAAC,qDAAe,CAAC,CAAC;IAI3D,MAAM,SAAS,GAAG,KAAK,CAAC;IACxB,MAAM,aAAa,GAAG,IAAI,GAAG,KAAK,CAAC;IACnC,MAAM,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,CAAC;IACnD,OAAO,CAAC,CAAC,CAAC,GAAG;QACX,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;QAC/C,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;KAChD,CAAC;IACF,OAAO,CAAC,CAAC,CAAC,GAAG;QACX,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;QAC/C,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;QAClD,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;KACnD,CAAC;IACF,OAAO,CAAC,CAAC,CAAC,GAAG;QACX,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;QAC/C,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;QAClD,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;QAC/C,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;KACnD,CAAC;IACF,OAAO,CAAC,CAAC,CAAC,GAAG;QACX,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;QAC/C,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;QAClD,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;QAClD,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;QAChD,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;KAClD,CAAC;IACF,OAAO,CAAC,CAAC,CAAC,GAAG;QACX,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;QACvD,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;QACvD,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;QAC3D,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;QAC1D,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;QAC3D,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;KACxD,CAAC;IACF,IAAI,kEAA4B,EAAE;QAChC,MAAM,QAAQ,GAAG,KAAK,CAAC;QACvB,MAAM,WAAW,GAAG,KAAK,CAAC;QAC1B,MAAM,cAAc,GAAG,KAAK,CAAC;QAG7B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAC/B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC;QAGlC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAG/B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAC/B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC;QAGlC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAG/B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC;KACnC;IAID,MAAM,UAAU,GAAmB,EAAE,CAAC;IACtC,IAAI,CAAC,uEAAiC,EAAE;QACtC,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC;QACrB,IAAI,WAAW,GAAG,GAAG,CAAC;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC;QAEzB,IAAI,UAAU,IAAI,CAAC,EAAE;YAGnB,KAAK,GAAG,IAAI,CAAC;SACd;QACD,IAAI,UAAU,IAAI,CAAC,EAAE;YAEnB,IAAI,IAAI,KAAK,CAAC;SACf;QAED,IAAI,eAAe,IAAI,CAAC,EAAE;YAExB,WAAW,GAAG,GAAG,CAAC;SACnB;QAGD,MAAM,UAAU,GAAG,eAAe,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,WAAW,CAAC;QACrE,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC;QAEnD,MAAM,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,WAAW,CAAC;QACjE,MAAM,aAAa,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,WAAW,CAAC;QAGrD,MAAM,iBAAiB,GAAG,8CAAM,GAAG,IAAI,GAAG,CAAC,8CAAM,GAAG,IAAI,CAAC,CAAC;QAE1D,IAAI,KAAK,CAAC;QACV,IAAI,KAAK,CAAC;QACV,IAAI,KAAK,CAAC;QACV,IAAI,KAAK,CAAC;QACV,IAAI,YAAY,GAAG,aAAa,IAAI,iBAAiB,EAAE;YAGrD,KAAK,GAAG,KAAK,CAAC;YACd,KAAK,GAAG,IAAI,CAAC;YACb,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;YACvB,KAAK,GAAG,YAAY,GAAG,iBAAiB,CAAC;SAC1C;aAAM;YACL,KAAK,GAAG,aAAa,GAAG,iBAAiB,GAAG,UAAU,CAAC;YACvD,KAAK,GAAG,aAAa,CAAC;YACtB,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,KAAK,GAAG,IAAI,CAAC;SACd;QAED,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACnC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;gBAC1B,CAAC,EAAE,KAAK;gBACR,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC;gBACxC,CAAC,EAAE,KAAK;gBACR,CAAC,EAAE,KAAK;gBACR,GAAG,EAAE,CAAC;aACP,CAAC,CAAC;SACJ;KACF;IAID,MAAM,aAAa,GAAG;QACpB,CAAC,EAAE,IAAI;KACR,CAAC;IACF,OAAO,CAAC,CAAC,CAAC,GAAG;QACX,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE;QAClD,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE;KACnD,CAAC;IACF,OAAO,CAAC,CAAC,CAAC,GAAG;QACX,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE;QACjD,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE;QACpD,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE;KACpD,CAAC;IACF,OAAO,CAAC,CAAC,CAAC,GAAG;QACX,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE;QACjD,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE;QACjD,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE;QACjD,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE;KAClD,CAAC;IACF,OAAO,CAAC,CAAC,CAAC,GAAG;QACX;YACE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;YAC1B,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YAC3C,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YACzB,CAAC,EAAE,aAAa,CAAC,CAAC;SACnB;QACD;YACE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM;YAC3B,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;YAC1B,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,aAAa,CAAC,CAAC;SACnB;QACD;YACE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;YAC1B,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;YAC5C,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YACzB,CAAC,EAAE,aAAa,CAAC,CAAC;SACnB;QACD;YACE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;YAC1B,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;YAC5C,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YACzB,CAAC,EAAE,aAAa,CAAC,CAAC;SACnB;QACD;YACE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK;YAClC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;YAC1B,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,aAAa,CAAC,CAAC;SACnB;KACF,CAAC;IACF,OAAO,CAAC,CAAC,CAAC,GAAG;QACX;YACE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;YAC1B,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YAC3C,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YACzB,CAAC,EAAE,aAAa,CAAC,CAAC;SACnB;QACD;YACE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;YAC1B,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YACzB,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,aAAa,CAAC,CAAC;SACnB;QACD;YACE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;YAC1B,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YAC3C,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YACzB,CAAC,EAAE,aAAa,CAAC,CAAC;SACnB;QACD;YACE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;YAC1B,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YAC3C,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YACzB,CAAC,EAAE,aAAa,CAAC,CAAC;SACnB;QACD;YACE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;YAC1B,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YAC3C,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YACzB,CAAC,EAAE,aAAa,CAAC,CAAC;SACnB;QACD;YACE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK;YAClC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YACzB,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,aAAa,CAAC,CAAC;SACnB;KACF,CAAC;IAEF,IAAI,CAAC,uEAAiC,EAAE;QACtC,MAAM,CAAC,GAAG,UAAU,CAAC;QACrB,MAAM,aAAa,GAAG;YACpB,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,IAAI;SACR,CAAC;QACF,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACjB,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;gBACvC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;gBAC5D,CAAC,EAAE,aAAa,CAAC,CAAC;gBAClB,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC;aAC5C,CAAC,CAAC;SACJ;KACF;IAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;QACnC,IAAI,CAAC,GAAG,CAAC,GAAG,qEAA+B,CAAC;QAE5C,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,CAAC,IAAI,UAAU,CAAC;SACjB;QAED,IAAI,aAAa,GAAG,OAAO,CAAC;QAC5B,IAAI,aAAa,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,uEAAiC,EAAE;YACtC,aAAa,GAAG,UAAU,CAAC;YAC3B,aAAa,GAAG,UAAU,CAAC;SAC5B;QAED,MAAM,UAAU,GAAG;YACjB,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;SACtC,CAAC;QACF,kEAA4B,CAAC,CAAC,CAAC,GAAG,IAAI,gDAAU,CAAC;YAC/C,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;YACtB,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;YACtB,KAAK,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;YAC1B,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;YAC3B,QAAQ,EAAE,UAAU,CAAC,GAAG;YACxB,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;YAE1B,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,6DAAuB,CACrB,kEAA4B,CAAC,CAAC,CAA2B,CAC1D,CAAC;QAEF,IAAI,uEAAiC,EAAE;YAGrC,MAAM,cAAc,GAAG,IAAI,oDAAW,CAAC;gBACrC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;gBACtB,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;gBACtB,KAAK,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;gBAC1B,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;gBAC3B,QAAQ,EAAE,UAAU,CAAC,GAAG;gBACxB,KAAK,EAAE,QAAQ;gBACf,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YACH,2DAAqB,CAAC,cAAc,CAAC,CAAC;YAItC,IAAI,UAAU,CAAC;YACf,IAAI,UAAU,KAAK,CAAC,EAAE;gBACpB,UAAU,GAAG,CAAC,MAAM,CAAC;aACtB;iBAAM,IAAI,UAAU,KAAK,CAAC,EAAE;gBAC3B,UAAU,GAAG,CAAC,MAAM,CAAC;aACtB;iBAAM,IAAI,UAAU,KAAK,CAAC,EAAE;gBAC3B,UAAU,GAAG,CAAC,KAAK,CAAC;aACrB;iBAAM,IAAI,UAAU,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gBACnD,UAAU,GAAG,CAAC,IAAI,CAAC;aACpB;iBAAM,IAAI,UAAU,KAAK,CAAC,EAAE;gBAC3B,UAAU,GAAG,CAAC,KAAK,CAAC;aACrB;iBAAM,IAAI,UAAU,KAAK,CAAC,EAAE;gBAC3B,UAAU,GAAG,CAAC,MAAM,CAAC;aACtB;iBAAM;gBACL,UAAU,GAAG,CAAC,CAAC;aAChB;YACD,MAAM,UAAU,GAAG,CAAC,CAAC;YACrB,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE;gBACrB,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,EAAE;oBACxC,UAAU,GAAG,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC;iBACnC;qBAAM,IAAI,UAAU,KAAK,CAAC,EAAE;oBAC3B,UAAU,GAAG,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC;iBACnC;qBAAM,IAAI,UAAU,KAAK,CAAC,EAAE;oBAC3B,UAAU,GAAG,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC;iBACnC;qBAAM;oBACL,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC;iBAC3B;aACF;YACD,MAAM,SAAS,GAAG,IAAI,mDAAU,CAAC;gBAC/B,CAAC,EAAE,UAAU,GAAG,IAAI;gBACpB,CAAC,EAAE,UAAU,GAAG,IAAI;gBACpB,KAAK,EAAE,MAAM,GAAG,IAAI;gBACpB,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;gBAC3B,IAAI,EAAE,iDAAS;gBACf,MAAM,EAAE,iDAAS;gBACjB,WAAW,EAAE,KAAK,GAAG,IAAI;gBACzB,YAAY,EAAE,KAAK,GAAG,IAAI;gBAC1B,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YACH,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9B,gFAA0C,CAAC,SAAS,CAAC,CAAC;SACvD;aAAM;YAEL,MAAM,cAAc,GAAG;gBAErB,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjC,CAAC,EAAE,UAAU,CAAC,CAAC;gBACf,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;gBACxC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;gBACtB,OAAO,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;gBAC5B,OAAO,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;aAC7B,CAAC;YACF,IAAI,uEAAiC,EAAE;gBACrC,cAAc,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;gBAChC,cAAc,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC;gBACxC,cAAc,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC;gBACxC,cAAc,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC;gBAC/C,cAAc,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC;gBAC/C,IAAI,UAAU,KAAK,CAAC,EAAE;oBACpB,cAAc,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC;oBACxC,cAAc,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC;iBAChD;aACF;iBAAM,IAAI,UAAU,KAAK,CAAC,EAAE;gBAC3B,cAAc,CAAC,CAAC,IAAI,KAAK,CAAC;aAC3B;YACD,MAAM,QAAQ,GAAG,IAAI,mDAAU,CAAC;gBAC9B,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI;gBAC1B,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI;gBAC1B,KAAK,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI;gBAC9B,MAAM,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI;gBAC/B,MAAM,EAAE;oBACN,CAAC,EAAE,cAAc,CAAC,OAAO,GAAG,IAAI;oBAChC,CAAC,EAAE,cAAc,CAAC,OAAO,GAAG,IAAI;iBACjC;gBACD,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,cAAc,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI;gBAC3C,QAAQ,EAAE,UAAU,CAAC,GAAG;gBACxB,OAAO,EAAE,GAAG;gBACZ,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YACH,2DAAqB,CAAC,QAAQ,CAAC,CAAC;YAChC,+EAAyC,CAAC,QAAQ,CAAC,CAAC;SACrD;QAED,iEAA2B,CAAC,CAAC,CAAC,GAAG,IAAI,+CAAS,CAAC;YAC7C,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YACxC,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YACxC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YAC5C,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YAC7C,IAAI,EAAE,kEAA4B,CAAC,CAAC,CAAC;YACrC,WAAW,EAAE,CAAC;SACf,CAAC,CAAC;QACH,2DAAqB,CACnB,iEAA2B,CAAC,CAAC,CAA2B,CACzD,CAAC;QAEF,yBAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KACzD;AACH,CAAC;AAGD,SAAS,yBAAyB,CAChC,IAAY,EACZ,IAAY,EACZ,UAAkB,EAClB,CAAS,EACT,CAAS;IAET,IAAI,aAAa,GAAG,OAAO,CAAC;IAC5B,IAAI,CAAC,uEAAiC,EAAE;QACtC,aAAa,GAAG,UAAU,CAAC;KAC5B;IAED,IAAI,CAAC,2EAAqC,EAAE;QAC1C,OAAO;KACR;IAED,MAAM,WAAW,GAAG,2EAAqC,CAAC,CAAC,CAAC,CAAC;IAC7D,IAAI,SAAgC,CAAC;IACrC,IAAI,WAAW,KAAK,IAAI,EAAE;QAExB,SAAS,GAAG;YACV,EAAE,EAAE,CAAC,CAAC;YACN,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,EAAE;YACf,KAAK,EAAE,EAAE;SACV,CAAC;KACH;SAAM;QACL,SAAS,GAAG,4DAAY,CAAC,WAAW,CAAC,CAAC;KACvC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,8DAAe,CAAC;QACnC,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,OAAO;QACf,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,CAAC;QACrD,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,OAAO,GAAG,CAAC;QACtD,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,SAAS,CAAC,KAAK;QACrB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL;QACD,aAAa,EAAE,GAAG;QAClB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,2DAAqB,CAAC,QAAQ,CAAC,CAAC;IAEhC,QAAQ,CAAC,WAAW,GAAG,wBAAwB,CAAC,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,wEAAkC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,cAAc,GAAG,YAAY,SAAS,CAAC,EAAE,MAAM,SAAS,CAAC,IAAI,kBAAkB,SAAS,CAAC,WAAW,EAAE,CAAC;IAC3G,IAAI,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAE7C,cAAc,GAAG,cAAc,CAAC,OAAO,CACrC,gBAAgB,EAChB,gEAA0B,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CACxD,CAAC;KACH;SAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;QAErD,cAAc,GAAG,cAAc,CAAC,OAAO,CACrC,iBAAiB,EACjB,QAAQ,CAAC,QAAQ,EAAE,CACpB,CAAC;KACH;SAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;QAEnD,cAAc,GAAG,cAAc,CAAC,OAAO,CACrC,eAAe,EACf,2DAAqB,CAAC,QAAQ,CAAC,CAAC,WAAW,CAC5C,CAAC;KACH;IACD,QAAQ,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,2CAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,cAAc,CAAC,CAAS;IAE/B,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,IAAI,CAAC,KAAK,CAAC,EAAE;QAGX,OAAO,GAAG,IAAI,CAAC;KAChB;IACD,IAAI,CAAC,uEAAiC,EAAE;QAEtC,OAAO,GAAG,IAAI,CAAC;KAChB;IACD,IAAI,yEAAmC,EAAE;QAGvC,OAAO,GAAG,CAAC,OAAO,CAAC;KACpB;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;;;;;;;;;;;;;;;;ACvhBD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAwB,CAAC;AACvD,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAA6B,EAAE,EAAE;IAChE,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACtC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,GAA6B,EAAE,EAAE;IACnE,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACtC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,OAAO,CACR,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAA6B,EAAE,EAAE;IAClE,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;IACrC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,GAA6B,EAAE,EAAE;IACjE,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACtC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAA6B,EAAE,EAAE;IAClE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtB,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACtC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,GAA6B,EAAE,EAAE;IACrE,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;IACrC,GAAG,CAAC,SAAS,CACX,CAAC,QAAQ,EACT,QAAQ,EACR,CAAC,QAAQ,EACT,CAAC,QAAQ,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9D,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9B,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,QAAQ,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,MAAM,CACP,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,GAA6B,EAAE,EAAE;IACpE,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACtC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,OAAO,EACP,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAA6B,EAAE,EAAE;IAC3D,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtB,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACtC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAA6B,EAAE,EAAE;IAC9D,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACnC,GAAG,CAAC,aAAa,CACf,CAAC,OAAO,EACR,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,QAAQ,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACnC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACnC,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,CAAC,OAAO,EACR,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,QAAQ,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,QAAQ,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACnC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;IAClC,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,CAAC,QAAQ,EACT,CAAC,SAAS,EACV,QAAQ,EACR,CAAC,SAAS,EACV,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,QAAQ,EACR,CAAC,SAAS,EACV,OAAO,EACP,CAAC,SAAS,EACV,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,QAAQ,EACT,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAChC,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChC,GAAG,CAAC,aAAa,CACf,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,MAAM,EACN,SAAS,EACT,SAAS,EACT,SAAS,EACT,OAAO,EACP,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,OAAO,EACP,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,EACT,CAAC,QAAQ,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,aAAa,CACf,CAAC,OAAO,EACR,CAAC,SAAS,EACV,CAAC,QAAQ,EACT,CAAC,SAAS,EACV,CAAC,QAAQ,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,QAAQ,EACT,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,QAAQ,EACR,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,QAAQ,EACR,CAAC,SAAS,EACV,QAAQ,EACR,CAAC,SAAS,EACV,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,QAAQ,EACR,CAAC,SAAS,EACV,QAAQ,EACR,CAAC,SAAS,EACV,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACnC,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,QAAQ,EACT,CAAC,SAAS,EACV,CAAC,QAAQ,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAA6B,EAAE,EAAE;IAC5D,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;IACxD,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACxB,GAAG,CAAC,aAAa,CACf,CAAC,QAAQ,EACT,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,QAAQ,EACT,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,QAAQ,EACT,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,CAAC,MAAM,EACP,SAAS,EACT,CAAC,MAAM,EACP,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,QAAQ,EACT,SAAS,EACT,CAAC,OAAO,EACR,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,QAAQ,EACT,SAAS,EACT,CAAC,OAAO,EACR,QAAQ,EACR,CAAC,SAAS,EACV,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,QAAQ,EACT,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,EACT,CAAC,OAAO,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,OAAO,EACP,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAA6B,EAAE,EAAE;IAC/D,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,QAAQ,EACR,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,QAAQ,EACT,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,MAAM,EACP,CAAC,SAAS,EACV,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,QAAQ,EACR,CAAC,SAAS,EACV,QAAQ,EACR,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,QAAQ,EACT,QAAQ,EACR,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;IAChC,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,QAAQ,EACR,CAAC,OAAO,EACR,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,QAAQ,EACT,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,CAAC,QAAQ,EACT,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,QAAQ,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,EACV,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,CAAC,SAAS,EACV,OAAO,EACP,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,CACX,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,OAAO,EACR,SAAS,EACT,CAAC,QAAQ,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,CAAC,QAAQ,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,EACT,CAAC,SAAS,EACV,SAAS,CACV,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAChB,UAAU,EACV,CAAC,GAA6B,EAAE,MAAiB,EAAE,EAAE;IACnD,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpB,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACtC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACpE,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;IAC5C,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,MAAM,KAAK,SAAS,EAAE;QAExB,MAAM,QAAQ,GAAG,GAAG,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACtC,QAAQ,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3D;QACD,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;QACzB,GAAG,CAAC,IAAI,EAAE,CAAC;KACZ;AACH,CAAC,CACF,CAAC;AAEF,cAAc,CAAC,GAAG,CAChB,SAAS,EACT,CAAC,GAA6B,EAAE,MAAiB,EAAE,EAAE;IACnD,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IAGtC,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,GAAG,CAAC,IAAI,EAAE,CAAC;KACZ;IACD,GAAG,CAAC,SAAS,EAAE,CAAC;IAGhB,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9B,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChC,GAAG,CAAC,aAAa,CACf,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,GAAG,CAAC,IAAI,EAAE,CAAC;KACZ;IACD,GAAG,CAAC,SAAS,EAAE,CAAC;IAGhB,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,GAAG,CAAC,IAAI,EAAE,CAAC;KACZ;IACD,GAAG,CAAC,SAAS,EAAE,CAAC;IAGhB,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,GAAG,CAAC,IAAI,EAAE,CAAC;KACZ;IACD,GAAG,CAAC,SAAS,EAAE,CAAC;IAGhB,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,OAAO,CACR,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,OAAO,EACP,SAAS,CACV,CAAC;IACF,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,GAAG,CAAC,IAAI,EAAE,CAAC;KACZ;IACD,GAAG,CAAC,SAAS,EAAE,CAAC;IAGhB,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/B,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;QAC1B,GAAG,CAAC,IAAI,EAAE,CAAC;KACZ;IACD,GAAG,CAAC,SAAS,EAAE,CAAC;IAGhB,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,OAAO,EACP,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,MAAM,CACP,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,OAAO,EACP,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;AAC9C,CAAC,CACF,CAAC;AAEF,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAA6B,EAAE,EAAE;IAC/D,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IAC9B,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;IACrD,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAChC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClC,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEY,SAAS,OAAO,CAC7B,GAA6B,EAC7B,IAAU,EACV,MAAgB,EAChB,UAAmB,EACnB,SAAkB;IAGlB,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC7E;IAGD,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,GAAG,CAAC,WAAW,GAAG,oBAAoB,CAAC;KACxC;IAED,MAAM,aAAa,GAAG,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,CAAC;IACpE,IAAI,aAAa,EAAE;QAEjB,GAAG,CAAC,SAAS,GAAG,UAAW,CAAC;QAC5B,aAAa,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,IAAI,EAAE,CAAC;KACZ;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;QAGhC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACrC;SAAM;QAEL,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,aAAa,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,IAAI,EAAE,CAAC;KACZ;IAGD,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,GAAG,CAAC,SAAS,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,GAAG,CAAC,WAAW,GAAG,kBAAkB,CAAC;KACtC;SAAM;QACL,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;KACnB;IACD,GAAG,CAAC,MAAM,EAAE,CAAC;AACf,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACv0GyB;AACa;AACkB;AACI;AACpB;AACT;AACe;AACZ;AAEpB,SAAS,cAAc,CAAC,IAAY,EAAE,IAAY;IAC/D,MAAM,gBAAgB,GAAG;QACvB,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,GAAG;KACP,CAAC;IACF,IAAI,CAAC,uEAAiC,EAAE;QACtC,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC;QAC1B,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC;QAC1B,gBAAgB,CAAC,CAAC,GAAG,GAAG,CAAC;KAC1B;IAED,iEAA2B,GAAG,IAAI,oDAAW,CAAC;QAC5C,CAAC,EAAE,gBAAgB,CAAC,CAAC,GAAG,IAAI;QAC5B,CAAC,EAAE,gBAAgB,CAAC,CAAC,GAAG,IAAI;QAC5B,KAAK,EAAE,gBAAgB,CAAC,CAAC,GAAG,IAAI;QAChC,MAAM,EAAE,IAAI,GAAG,IAAI;QACnB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAGH,MAAM,eAAe,GAAG;QACtB,CAAC,EAAE,uEAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,EAAE,MAAM;QACT,CAAC,EAAE,uEAAiC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QACjE,CAAC,EAAE,IAAI;KACR,CAAC;IACF,gEAA0B,GAAG,IAAI,mDAAU,CAAC;QAC1C,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;QAC3B,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;QAC3B,KAAK,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;QAC/B,MAAM,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;QAChC,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,KAAK,GAAG,IAAI;QAC1B,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,qEAA+B,CAAC,gEAA0B,CAAC,CAAC;IAI5D,MAAM,kBAAkB,GAAG,IAAI,mDAAU,CAAC;QACxC,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;QAC3B,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;QAC/B,MAAM,EAAE,IAAI,GAAG,IAAI;QACnB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,6CAAe,CAAC,CAAC;IACpD,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,8CAAgB,CAAC,CAAC;IACjD,qEAA+B,CAAC,kBAAkB,CAAC,CAAC;IAEpD,MAAM,aAAa,GAAG;QACpB,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,QAAQ;QACrB,KAAK,EAAE,IAAI;KACZ,CAAC;IAIF,0EAAoC,GAAG,IAAI,sDAAO,CAAC;QACjD,KAAK,EAAE,aAAa,CAAC,CAAC,GAAG,IAAI;QAC7B,MAAM,EAAE,aAAa,CAAC,CAAC,GAAG,IAAI;QAC9B,MAAM,EAAE;YACN,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;YAC/B,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;SAChC;QACD,YAAY,EAAE,aAAa,CAAC,YAAY,GAAG,IAAI;QAC/C,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,WAAW,EAAE,aAAa,CAAC,WAAW,GAAG,IAAI;QAC7C,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,6EAAuC,CAAC,WAAW,EAAE,GAAG,EAAE;QACxD,IAAI,iEAA2B,KAAK,IAAI,EAAE;YACxC,gDAAkB,CAAC,yEAAmC,EAAE,IAAI,CAAC,CAAC;SAC/D;IACH,CAAC,CAAC,CAAC;IACH,qEAA+B,CAAC,0EAAoC,CAAC,CAAC;IAGtE,oEAA8B,GAAG,IAAI,sDAAO,CAAC;QAC3C,KAAK,EAAE,aAAa,CAAC,CAAC,GAAG,IAAI;QAC7B,MAAM,EAAE,aAAa,CAAC,CAAC,GAAG,IAAI;QAC9B,MAAM,EAAE;YACN,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;YAC/B,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;SAChC;QACD,YAAY,EAAE,aAAa,CAAC,YAAY,GAAG,IAAI;QAC/C,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,qDAAuB;QACtC,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,WAAW,EAAE,aAAa,CAAC,WAAW,GAAG,IAAI;QAC7C,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,uEAAiC,CAAC,UAAU,EAAE,oDAAsB,CAAC,CAAC;IACtE,uEAAiC,CAAC,OAAO,EAAE,8CAAgB,CAAC,CAAC;IAC7D,qEAA+B,CAAC,oEAA8B,CAAC,CAAC;IAEhE,MAAM,kBAAkB,GAAG;QACzB,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,OAAO,EAAE,IAAI;KACd,CAAC;IACF,IAAI,uEAAiC,EAAE;QACrC,kBAAkB,CAAC,CAAC,GAAG,GAAG,CAAC;KAC5B;IAED;QACE,IAAI,EAAE,CAAC,EAAE,GAAG,kBAAkB,CAAC;QAG/B,2EAAqC,GAAG,IAAI,qDAAM,CAChD;YACE,CAAC,EAAE,CAAC,GAAG,IAAI;YACX,CAAC,EAAE,IAAI,GAAG,IAAI;YACd,KAAK,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;YAClC,MAAM,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;YACnC,SAAS,EAAE,IAAI;SAChB,EACD;YACE,6DAAwB,CAAC,kBAAkB,CAAE;YAC7C,6DAAwB,CAAC,2BAA2B,CAAE;SACvD,CACF,CAAC;QACF,8EAAwC,CAAC,WAAW,EAAE,6CAAe,CAAC,CAAC;QACvE,qEAA+B,CAC7B,2EAA+D,CAChE,CAAC;QAGF,CAAC,IAAI,kBAAkB,CAAC,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;QACvD,uEAAiC,GAAG,IAAI,qDAAM,CAC5C;YACE,CAAC,EAAE,CAAC,GAAG,IAAI;YACX,CAAC,EAAE,IAAI,GAAG,IAAI;YACd,KAAK,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;YAClC,MAAM,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;SACpC,EACD;YACE,6DAAwB,CAAC,aAAa,CAAE;YACxC,6DAAwB,CAAC,sBAAsB,CAAE;SAClD,CACF,CAAC;QACF,0EAAoC,CAAC,WAAW,EAAE,GAAG,EAAE;YAErD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,yDAAmB,GAAG,EAAE,EAAE;gBACzC,OAAO;aACR;YACD,yDAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEjC,yCAAW,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,qEAA+B,CAC7B,uEAA2D,CAC5D,CAAC;QAGF,CAAC,IAAI,kBAAkB,CAAC,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;QACvD,0EAAoC,GAAG,IAAI,qDAAM,CAC/C;YACE,CAAC,EAAE,CAAC,GAAG,IAAI;YACX,CAAC,EAAE,IAAI,GAAG,IAAI;YACd,KAAK,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;YAClC,MAAM,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;SACpC,EACD;YACE,6DAAwB,CAAC,gBAAgB,CAAE;YAC3C,6DAAwB,CAAC,yBAAyB,CAAE;SACrD,CACF,CAAC;QACF,6EAAuC,CAAC,WAAW,EAAE,GAAG,EAAE;YAExD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,yDAAmB,GAAG,EAAE,EAAE;gBACzC,OAAO;aACR;YACD,yDAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEjC,4CAAc,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,qEAA+B,CAC7B,0EAA8D,CAC/D,CAAC;QAGF,CAAC,IAAI,kBAAkB,CAAC,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;QACvD,8EAAwC,GAAG,IAAI,qDAAM,CACnD;YACE,CAAC,EAAE,CAAC,GAAG,IAAI;YACX,CAAC,EAAE,IAAI,GAAG,IAAI;YACd,KAAK,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;YAClC,MAAM,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;SACpC,EACD;YACE,6DAAwB,CAAC,qBAAqB,CAAE;YAChD,6DAAwB,CAAC,8BAA8B,CAAE;SAC1D,CACF,CAAC;QACF,iFAA2C,CACzC,WAAW,EACX,gDAAkB,CACnB,CAAC;QACF,qEAA+B,CAC7B,8EAAkE,CACnE,CAAC;KACH;IAED,MAAM,KAAK,GAAG,IAAI,CAAC;IACnB,MAAM,UAAU,GAAG,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,OAAO,GAAG,CAAC,CAAC;IAC7E,MAAM,kBAAkB,GAAG;QACzB,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,OAAO,GAAG,KAAK;QAChE,CAAC,EAAE,IAAI;KACR,CAAC;IACF,MAAM,uBAAuB,GAAG,kBAAkB,CAAC,CAAC,GAAG,KAAK,CAAC;IAC7D,MAAM,yBAAyB,GAC7B,kBAAkB,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,wBAAwB,GAC5B,kBAAkB,CAAC,CAAC;QACpB,kBAAkB,CAAC,CAAC,GAAG,CAAC;QACxB,kBAAkB,CAAC,OAAO,GAAG,CAAC,CAAC;IAEjC,uEAAiC,GAAG,IAAI,qDAAM,CAAC;QAC7C,CAAC,EAAE,wBAAwB,GAAG,IAAI;QAClC,CAAC,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;QAC9B,KAAK,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;QAClC,MAAM,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;QACnC,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,CAAC,4DAAsB;KACjC,CAAC,CAAC;IACH,0EAAoC,CAAC,WAAW,EAAE,+CAAiB,CAAC,CAAC;IACrE,qEAA+B,CAC7B,uEAA2D,CAC5D,CAAC;IAIF,SAAS,SAAS;QAChB,IAAI,CAAC,CAAC,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,SAAS,OAAO;QACd,IAAI,CAAC,CAAC,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;IACzC,CAAC;IAID,6EAAuC,GAAG,IAAI,gEAAiB,CAAC;QAC9D,CAAC,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;QAC9B,KAAK,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;QAClC,MAAM,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;QACnC,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IACH,gFAA0C,CACxC,WAAW,EACX,yDAA2B,CAC5B,CAAC;IACF,uFAAiD,GAAG,SAAS,CAAC;IAC9D,uFAAiD,EAAE,CAAC;IACpD,qFAA+C,GAAG,OAAO,CAAC;IAC1D,qEAA+B,CAC7B,6EAAiE,CAClE,CAAC;IAIF,2EAAqC,GAAG,IAAI,gEAAiB,CAAC;QAC5D,CAAC,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;QAC9B,KAAK,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;QAClC,MAAM,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;QACnC,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IACH,8EAAwC,CACtC,WAAW,EACX,yDAA2B,CAC5B,CAAC;IACF,qFAA+C,GAAG,SAAS,CAAC;IAC5D,qFAA+C,EAAE,CAAC;IAClD,mFAA6C,GAAG,OAAO,CAAC;IACxD,qEAA+B,CAC7B,2EAA+D,CAChE,CAAC;IAGF,sEAAgC,GAAG,IAAI,8DAAe,CAAC;QACrD,CAAC,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;QAC9B,KAAK,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;QAClC,MAAM,EAAE,kBAAkB,CAAC,CAAC,GAAG,IAAI;QACnC,IAAI,EAAE,oBAAoB;KAC3B,CAAC,CAAC;IACH,yEAAmC,CAAC,WAAW,EAAE,gDAAkB,CAAC,CAAC;IACrE,qEAA+B,CAC7B,sEAA0D,CAC3D,CAAC;IAKF,SAAS,gBAAgB;QACvB,IAAI,CAAC,CAAC,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,SAAS,kBAAkB;QACzB,IAAI,CAAC,CAAC,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,SAAS,iBAAiB;QACxB,IAAI,CAAC,CAAC,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,8EAAwC,GAAG,gBAAgB,CAAC;IAC5D,gFAA0C,GAAG,kBAAkB,CAAC;IAChE,+EAAyC,GAAG,iBAAiB,CAAC;IAG9D,2DAAqB,CAAC,iEAA2B,CAAC,CAAC;IACnD,mDAAqB,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;;;;;;;;;;;;;;;;AC3UD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAwB,CAAC;AACvD,MAAM,EAAE,GAAG,GAAG,CAAC;AAEf,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAA6B,EAAE,EAAE;IACtD,GAAG,CAAC,SAAS,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAA6B,EAAE,EAAE;IACtD,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAClB,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;IACrC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,GAAG,CAAC,SAAS,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAA6B,EAAE,EAAE;IACtD,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAClB,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACtC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,GAAG,CAAC,SAAS,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAA6B,EAAE,EAAE;IACtD,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAClB,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACtC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,SAAS,EACT,MAAM,EACN,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,GAAG,CAAC,SAAS,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAA6B,EAAE,EAAE;IACtD,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAClB,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACtC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,GAAG,CAAC,SAAS,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAA6B,EAAE,EAAE;IACtD,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAClB,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;IACrC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,GAAG,CAAC,SAAS,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAA6B,EAAE,EAAE;IACtD,GAAG,CAAC,SAAS,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAA6B,EAAE,EAAE;IACtD,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAClB,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;IACtC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,OAAO,EACP,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChC,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,CACT,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACF,GAAG,CAAC,aAAa,CACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,GAAG,CAAC,SAAS,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEY,SAAS,gBAAgB,CACtC,GAA6B,EAC7B,IAAY;IAGZ,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,IAAI,CAAC,CAAC;KAC1E;IAGD,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAGvB,aAAa,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjyCyB;AACW;AACK;AACH;AACD;AACW;AACG;AACC;AACI;AACtB;AACK;AACA;AACF;AACN;AACC;AACO;AACyB;AAC5B;AACE;AACU;AACY;AACpB;AACkB;AACR;AACM;AACJ;AACF;AACV;AAEU;AAChB;AACT;AACU;AACU;AACF;AACU;AACtB;AACM;AACS;AACL;AACN;AACE;AACH;AACF;AACA;AACM;AAUvC,IAAI,IAAY,CAAC;AACjB,IAAI,IAAY,CAAC;AACjB,IAAI,cAA0B,CAAC;AAC/B,IAAI,gBAA4B,CAAC;AACjC,IAAI,eAAuB,CAAC;AAC5B,IAAI,cAAsB,CAAC;AAC3B,IAAI,SAAS,CAAC;AACd,IAAI,UAAU,CAAC;AACf,IAAI,sBAA8B,CAAC;AACnC,IAAI,UAAkB,CAAC;AACvB,IAAI,eAAuB,CAAC;AAC5B,IAAI,cAAsB,CAAC;AAC3B,IAAI,mBAA2B,CAAC;AAChC,IAAI,aAAqB,CAAC;AAC1B,IAAI,cAAsB,CAAC;AAC3B,IAAI,qBAA6B,CAAC;AAEnB,SAAS,MAAM;IAE5B,IAAI,GAAG,0DAAmB,EAAE,CAAC;IAC7B,IAAI,GAAG,2DAAoB,EAAE,CAAC;IAG9B,cAAc,EAAE,CAAC;IAGjB,mBAAmB,EAAE,CAAC;IAGtB,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;IAGjB,qBAAqB,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC;IACX,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;IACjB,gBAAgB,EAAE,CAAC;IACnB,YAAY,EAAE,CAAC;IAGf,oDAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAGtB,WAAW,EAAE,CAAC;IACd,cAAc,EAAE,CAAC;IACjB,eAAe,EAAE,CAAC;IAClB,iBAAiB,EAAE,CAAC;IAGpB,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,CAAC;IACf,qBAAqB,EAAE,CAAC;IACxB,eAAe,EAAE,CAAC;IAClB,yDAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3B,oBAAoB,EAAE,CAAC;IACvB,aAAa,EAAE,CAAC;IAChB,mBAAmB,EAAE,CAAC;IAGtB,8DAAuB,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACvC,KAAK,CAAC,MAAM,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,qDAAc,CAAC,EAAE;QACjD,wDAAiB,CAAC,KAAK,CAAC,CAAC;KAC1B;AACH,CAAC;AAED,SAAS,cAAc;IAErB,MAAM,UAAU,GAAG,IAAI,oDAAW,CAAC;QACjC,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,8DAAwB,CAAC,YAAY,CAAE;QAC9C,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QAC9B,yCAAU,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,4DAAqB,CAAC,UAAU,CAAC,CAAC;IAIlC,iEAA0B,GAAG,IAAI,mDAAU,CAAC;QAC1C,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,6DAAsB,CAAC,iEAA0B,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,mBAAmB;IAE1B,cAAc,GAAG,IAAI,mDAAU,CAAC;QAC9B,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,KAAK,EAAE,IAAI,GAAG,IAAI;QAClB,MAAM,EAAE,IAAI,GAAG,IAAI;QACnB,QAAQ,EAAE,KAAK,GAAG,IAAI;QACtB,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,oDAAW;QACjB,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL;QACD,aAAa,EAAE,GAAG;QAClB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,gBAAgB,GAAG,cAAc,CAAC,KAAK,EAAgB,CAAC;IACxD,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,gBAAgB,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,CAAC,wEAAiC,EAAE;QACtC,eAAe,GAAG;YAChB,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI;SACR,CAAC;KACH;SAAM;QACL,eAAe,GAAG;YAChB,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,KAAK;SACT,CAAC;KACH;IAED,MAAM,cAAc,GAAG,IAAI,oDAAW,CAAC;QACrC,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;QAC3B,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;QAC3B,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4DAAqB,CAAC,cAAc,CAAC,CAAC;IAGtC,MAAM,aAAa,GAAG,IAAI,mDAAU,CAAC;QACnC,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,eAAe,CAAC,CAAE,GAAG,IAAI;QAChC,MAAM,EAAE,eAAe,CAAC,CAAE,GAAG,IAAI;QACjC,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,YAAY,EAAE,IAAI,GAAG,IAAI;QACzB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClC,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QACjC,0EAAoC,EAAE,CAAC;QACvC,sEAAgC,EAAE,CAAC;QACnC,mEAA4B,EAAE,CAAC;QAE/B,oEAA8B,CAAC,WAAW,EAAE,GAAG,EAAE;YAC/C,qEAA+B,CAAC,WAAW,CAAC,CAAC;YAC7C,0EAAoC,EAAE,CAAC;YACvC,sEAAgC,EAAE,CAAC;YACnC,mEAA4B,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAGH,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,wEAAiC,EAAE;QACrC,QAAQ,GAAG,CAAC,CAAC;KACd;IACD,iEAA0B,GAAG,IAAI,mDAAY,CAC3C;QACE,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,KAAK,GAAG,IAAI;QACtB,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,oDAAW;QACjB,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL;QACD,aAAa,EAAE,GAAG;QAClB,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,CAAC,EAAE,KAAK,GAAG,IAAI;QACf,KAAK,EAAE,CAAC,eAAe,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI;QACzC,MAAM,EAAE,CAAC,eAAe,CAAC,CAAE,GAAG,KAAK,CAAC,GAAG,IAAI;QAC3C,SAAS,EAAE,KAAK;KACjB,EACD,QAAQ,CACT,CAAC;IACF,cAAc,CAAC,GAAG,CAAC,iEAAoD,CAAC,CAAC;IAGzE,qEAA8B,GAAG,IAAI,oDAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/D,6DAAsB,CACpB,qEAAwD,CACzD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc;IAErB,IAAI,OAAO,CAAC;IAEZ,IAAI,mEAA4B,KAAK,CAAC,IAAI,oEAA6B,EAAE;QACvE,SAAS,GAAG,IAAI,CAAC;QACjB,UAAU,GAAG,KAAK,CAAC;QACnB,OAAO,GAAG,KAAK,CAAC;KACjB;SAAM;QAEL,SAAS,GAAG,KAAK,CAAC;QAClB,UAAU,GAAG,KAAK,CAAC;QACnB,OAAO,GAAG,CAAC,CAAC;KACb;IACD,MAAM,eAAe,GAAG;QACtB,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,KAAK,GAAG,OAAO;QAClB,CAAC,EAAE,CAAC;QACJ,OAAO,EAAE,KAAK;KACf,CAAC;IACF,IAAI,oEAA6B,EAAE;QACjC,eAAe,CAAC,CAAC,IAAI,KAAK,CAAC;KAC5B;IACD,IAAI,CAAC,wEAAiC,EAAE;QACtC,eAAe,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;QACtC,eAAe,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,GAAG,eAAe,CAAC,CAAE,GAAG,IAAI,CAAC;QAClE,IAAI,mEAA4B,GAAG,CAAC,EAAE;YACpC,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,CAAE,CAAC;YAC7C,eAAe,CAAC,OAAO,IAAI,SAAS,GAAG,mEAA4B,CAAC;YACpE,eAAe,CAAC,OAAO,IAAI,mEAA4B,GAAG,CAAC,CAAC;SAC7D;aAAM;YACL,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;SACjC;KACF;IACD,eAAe,CAAC,CAAC,GAAG,SAAS,GAAG,mEAA4B,CAAC;IAC7D,eAAe,CAAC,CAAC;QACf,eAAe,CAAC,OAAO,GAAG,CAAC,mEAA4B,GAAG,CAAC,CAAC,CAAC;IAI/D,IACE,CAAC,mEAA4B,KAAK,CAAC,IAAI,CAAC,oEAA6B,CAAC;QACtE,CAAC,mEAA4B,KAAK,CAAC;YACjC,oEAA6B;YAC7B,wEAAiC,CAAC,EACpC;QACA,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAChE;SAAM,IACL,mEAA4B,KAAK,CAAC;QAClC,oEAA6B,EAC7B;QACA,eAAe,CAAC,CAAC,IAAI,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC;KAC1D;SAAM,IACL,mEAA4B,KAAK,CAAC;QAClC,CAAC,oEAA6B,EAC9B;QACA,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACtE;SAAM,IACL,mEAA4B,KAAK,CAAC;QAClC,oEAA6B,EAC7B;QACA,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;KAClE;IAID,IAAI,4DAA6B,CAAC,sDAAe,CAAC,IAAI,4DAAqB,EAAE;QAC3E,MAAM,UAAU,GACd,eAAe,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,gDAAS,CAAC;YAC9B,CAAC,EAAE,UAAU,GAAG,IAAI;YACpB,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;YAC3B,KAAK,EAAE,SAAS,GAAG,IAAI;YACvB,MAAM,EAAE,UAAU,GAAG,IAAI;YACzB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,sEAA+B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACnD,8DAAuB,CAAC,SAAmC,CAAC,CAAC;KAC9D;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mEAA4B,EAAE,CAAC,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,4DAAqB,CAAC,CAAC,CAAC,CAAC;QAGtC,MAAM,UAAU,GACd,eAAe,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,gDAAS,CAAC;YAC9B,CAAC,EAAE,UAAU,GAAG,IAAI;YACpB,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;YAC3B,KAAK,EAAE,SAAS,GAAG,IAAI;YACvB,MAAM,EAAE,UAAU,GAAG,IAAI;YACzB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,sEAA+B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACjD,8DAAuB,CAAC,SAAmC,CAAC,CAAC;QAG7D,MAAM,KAAK,GAAG,mDAAe,CAAC,sDAAe,CAAC,GAAG,CAAC,CAAC;QAEnD,MAAM,SAAS,GAAG,IAAI,iDAAU,CAC9B,KAAK,EACL,CAAC,EACD,6DAAe,EACf,sDAAe,CAChB,CAAC;QACF,8DAAuB,CAAC,SAAS,CAAC,CAAC;QAEnC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAIrC,IAAI,oEAA6B,EAAE;YACjC,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;YAC5B,IACE,4EAAqC;gBACrC,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAC5B;gBACA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU;qBAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;qBAClC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,IAAI,KAAK,SAAS,GAAG,CAAC;aAC3B;YACD,IAAI,sDAAuB,CAAC,sDAAe,CAAC,EAAE;gBAC5C,IAAI,GAAG,EAAE,CAAC;aACX;YAED,MAAM,aAAa,GAAG,IAAI,uDAAO,CAAC;gBAChC,CAAC,EACC,CAAC,eAAe,CAAC,CAAC;oBAChB,IAAI;oBACJ,CAAC,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC5C,IAAI;gBACN,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI;gBACrC,KAAK,EAAE,IAAI,GAAG,IAAI;gBAClB,MAAM,EAAE,KAAK,GAAG,IAAI;gBACpB,QAAQ,EAAE,IAAI,GAAG,IAAI;gBACrB,UAAU,EAAE,SAAS;gBACrB,KAAK,EAAE,QAAQ;gBACf,IAAI;gBACJ,IAAI,EAAE,oDAAW;gBACjB,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YACH,4DAAqB,CAAC,aAAa,CAAC,CAAC;YACrC,2EAAoC,CAAC,aAAa,CAAC,CAAC;SACrD;KACF;IAID,MAAM,OAAO,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,GAAG,SAAS,GAAG,mEAA4B,CAAC;IACjD,CAAC,IAAI,eAAe,CAAC,OAAO,GAAG,CAAC,mEAA4B,GAAG,CAAC,CAAC,CAAC;IAClE,cAAc,GAAG;QACf,CAAC,EAAE,eAAe,CAAC,CAAC;QACpB,CAAC,EAAE,eAAe,CAAC,CAAC;QACpB,CAAC;QACD,CAAC,EAAE,UAAU;KACd,CAAC;IACF,gEAAyB,GAAG,IAAI,mDAAU,CAAC;QACzC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI;QACtC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI;QACtC,KAAK,EAAE,CAAC,cAAc,CAAC,CAAE,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI;QAC/C,MAAM,EAAE,CAAC,cAAc,CAAC,CAAE,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI;QAChD,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB;IAExB,IAAI,mBAAmB,CAAC;IACxB,IAAI,mEAA4B,KAAK,CAAC,EAAE;QACtC,mBAAmB,GAAG,KAAK,CAAC;KAC7B;SAAM;QAEL,mBAAmB,GAAG,KAAK,CAAC;KAC7B;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mEAA4B,EAAE,CAAC,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,4DAAqB,CAAC,CAAC,CAAC,CAAC;QAGtC,MAAM,YAAY,GAAG,IAAI,iDAAU,CAAC;YAClC,CAAC,EAAE,IAAI,GAAG,IAAI;YACd,CAAC,EAAE,CAAC,IAAI,GAAG,mBAAmB,GAAG,CAAC,CAAC,GAAG,IAAI;YAC1C,KAAK,EAAE,IAAI,GAAG,IAAI;YAClB,MAAM,EAAE,IAAI,GAAG,IAAI;YACnB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,yEAAkC,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACvD,8DAAuB,CAAC,YAAsC,CAAC,CAAC;KACjE;AACH,CAAC;AAED,SAAS,qBAAqB;IAC5B,sBAAsB,GAAG;QACvB,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,MAAM;KACV,CAAC;IAGF,MAAM,YAAY,GAAG,IAAI,sDAAM,CAC7B;QACE,CAAC,EAAE,sBAAsB,CAAC,CAAC,GAAG,IAAI;QAClC,CAAC,EAAE,sBAAsB,CAAC,CAAC,GAAG,IAAI;QAClC,KAAK,EAAE,sBAAsB,CAAC,CAAE,GAAG,IAAI;QACvC,MAAM,EAAE,sBAAsB,CAAC,CAAE,GAAG,IAAI;QACxC,OAAO,EAAE,CAAC,6DAAsB;KACjC,EACD,CAAC,8DAAwB,CAAC,QAAQ,CAAE,CAAC,CACtC,CAAC;IACF,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QAChC,IAAI,kEAA2B,EAAE;YAC/B,0CAAW,EAAE,CAAC;SACf;aAAM;YACL,2CAAY,EAAE,CAAC;SAChB;IACH,CAAC,CAAC,CAAC;IACH,4DAAqB,CAAC,YAAsC,CAAC,CAAC;IAC9D,YAAY,CAAC,WAAW,GAAG,QAAQ,CAAC;IACpC,YAAY,CAAC,cAAc;QACzB,mGAAmG,CAAC;IACtG,4CAAa,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,oEAA6B,GAAG,YAAY,CAAC;IAI7C,MAAM,aAAa,GAAG,IAAI,sDAAM,CAAC;QAC/B,CAAC,EAAE,sBAAsB,CAAC,CAAC,GAAG,IAAI;QAClC,CAAC,EAAE,sBAAsB,CAAC,CAAC,GAAG,IAAI;QAClC,KAAK,EAAE,sBAAsB,CAAC,CAAE,GAAG,IAAI;QACvC,MAAM,EAAE,sBAAsB,CAAC,CAAE,GAAG,IAAI;QACxC,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IACH,4DAAqB,CAAC,aAAuC,CAAC,CAAC;IAC/D,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QACjC,IACE,+DAAwB;YACxB,8CAAgB,CAAC,mEAA4B,CAAC;YAC9C,+DAAwB,IAAI,IAAI;YAChC,MAAM,CAAC,OAAO,CAAC,4CAA4C,CAAC,EAC5D;YACA,8DAAwB,CAAC,cAAc,EAAE;gBACvC,OAAO,EAAE,4DAAqB;aAC/B,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,WAAW,GAAG,SAAS,CAAC;IACtC,aAAa,CAAC,cAAc;QAC1B,4HAA4H,CAAC;IAC/H,4CAAa,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,qEAA8B,GAAG,aAAa,CAAC;IAG/C,MAAM,UAAU,GAAG,IAAI,sDAAM,CAAC;QAC5B,CAAC,EAAE,sBAAsB,CAAC,CAAC,GAAG,IAAI;QAClC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI;QACvE,KAAK,EAAE,sBAAsB,CAAC,CAAE,GAAG,IAAI;QACvC,MAAM,EAAE,sBAAsB,CAAC,CAAE,GAAG,IAAI;QACxC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,CAAC,6DAAsB,IAAI,kEAA2B,KAAK,IAAI;KACzE,CAAC,CAAC;IACH,4DAAqB,CAAC,UAAoC,CAAC,CAAC;IAC5D,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QAC9B,+DAAyB,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC;IAChC,UAAU,CAAC,cAAc,GAAG,0BAA0B,CAAC;IACvD,4CAAa,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,kEAA2B,GAAG,UAAU,CAAC;IAGzC,MAAM,iBAAiB,GAAG;QACxB,CAAC,EAAE,sBAAsB,CAAC,CAAC;QAC3B,CAAC,EAAE,sBAAsB,CAAC,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,CAAE,GAAG,IAAI;QAClE,CAAC,EAAE,sBAAsB,CAAC,CAAC;KAC5B,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,sDAAM,CAAC;QAC7B,CAAC,EAAE,iBAAiB,CAAC,CAAC,GAAG,IAAI;QAC7B,CAAC,EAAE,iBAAiB,CAAC,CAAC,GAAG,IAAI;QAC7B,KAAK,EAAE,sBAAsB,CAAC,CAAE,GAAG,IAAI;QACvC,MAAM,EAAE,iBAAiB,CAAC,CAAE,GAAG,IAAI;QACnC,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IACH,4DAAqB,CAAC,WAAqC,CAAC,CAAC;IAC7D,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC9C,WAAW,CAAC,WAAW,GAAG,OAAO,CAAC;IAClC,WAAW,CAAC,cAAc,GAAG,sBAAsB,CAAC;IACpD,4CAAa,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,mEAA4B,GAAG,WAAW,CAAC;AAC7C,CAAC;AAED,SAAS,QAAQ;;IACf,UAAU,GAAG;QACX,CAAC,EAAE,sBAAsB,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAE,GAAG,IAAI;QAC9D,CAAC,EAAE,sBAAsB,CAAC,CAAC;QAC3B,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,KAAK;KACT,CAAC;IAIF,MAAM,QAAQ,GAAG,IAAI,+DAAe,CAAC;QACnC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;QACtB,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;QACtB,KAAK,EAAE,UAAU,CAAC,CAAE,GAAG,IAAI;QAC3B,MAAM,EAAE,UAAU,CAAC,CAAE,GAAG,IAAI;QAC5B,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,YAAY,EAAE,KAAK,GAAG,IAAI;QAC1B,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,4DAAqB,CAAC,QAAQ,CAAC,CAAC;IAIhC,mEAA4B,GAAG,IAAI,uDAAO,CAAC;QACzC,IAAI,EAAE,OAAO,4EAA+B,mCAAI,CAAC,EAAE;QACnD,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;QACtB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;QAC/B,KAAK,EAAE,UAAU,CAAC,CAAE,GAAG,IAAI;QAC3B,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,KAAK,GAAG,IAAI;QACtB,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL;QACD,aAAa,EAAE,GAAG;QAClB,OAAO,EAAE,6DAAsB,IAAI,sEAA+B,KAAK,IAAI;QAC3E,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAGH,+DAAwB,CAAC,mEAA4B,CAAC,CAAC;IAIvD,qEAA8B,GAAG,IAAI,oDAAW,CAAC;QAC/C,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI;QAChC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI;QAChC,KAAK,EAAE,UAAU,CAAC,CAAE,GAAG,IAAI,GAAG,IAAI;QAClC,MAAM,EAAE,UAAU,CAAC,CAAE,GAAG,IAAI,GAAG,IAAI;QACnC,KAAK,EAAE,8DAAwB,CAAC,eAAe,CAAE;QACjD,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,CAAC;QACb,YAAY,EAAE;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL;QACD,aAAa,EAAE,GAAG;KACnB,CAAC,CAAC;IAEH,+DAAwB,CAAC,qEAA8B,CAAC,CAAC;IAEzD,4DAAqB,GAAG,IAAI,2CAAI,CAAC;QAC/B,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;QACtB,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;QACtB,KAAK,EAAE,UAAU,CAAC,CAAE,GAAG,IAAI;QAC3B,MAAM,EAAE,UAAU,CAAC,CAAE,GAAG,IAAI;QAC5B,QAAQ,EAAE,WAAW;QACrB,KAAK,EAAE,4DAAqB;QAC5B,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,8DAAuB,CAAC,4DAA+C,CAAC,CAAC;IAGzE,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,GAAG,2EAAoC,CAAC;IAC/D,4CAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAIpC,MAAM,OAAO,GAAG,KAAK,CAAC;IACtB,MAAM,QAAQ,GAAG,KAAK,CAAC;IACvB,gFAAyC,GAAG,cAAc,CAAC,KAAK,CAAC;QAC/D,IAAI,EAAE,OAAO;QACb,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI;QAClC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI;QAC/C,QAAQ,EAAE,QAAQ,GAAG,IAAI;QACzB,OAAO,EAAE,KAAK;KACf,CAAe,CAAC;IACjB,4DAAqB,CAAC,gFAAyC,CAAC,CAAC;IACjE,gFAAyC,GAAG,cAAc,CAAC,KAAK,CAAC;QAC/D,IAAI,EAAE,SAAS;QACf,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI;QAClC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI;QAC/C,QAAQ,EAAE,QAAQ,GAAG,IAAI;QACzB,OAAO,EAAE,KAAK;KACf,CAAe,CAAC;IACjB,4DAAqB,CAAC,gFAAyC,CAAC,CAAC;IAIjE,8EAAuC,GAAG,IAAI,mDAAU,CAAC;QACvD,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;QACtB,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;QACtB,KAAK,EAAE,UAAU,CAAC,CAAE,GAAG,IAAI;QAC3B,MAAM,EAAE,UAAU,CAAC,CAAE,GAAG,IAAI;QAC5B,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,IAAI,GAAG,IAAI;QACzB,WAAW,EAAE,OAAO,GAAG,IAAI;QAC3B,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IACH,4DAAqB,CAAC,8EAAuC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,aAAa;IAEpB,MAAM,eAAe,GAAG,IAAI,CAAC;IAC7B,eAAe,GAAG;QAChB,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAE,GAAG,eAAe,CAAC,GAAG,CAAC;QACvD,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,eAAe;KACnB,CAAC;IACF,IAAI,CAAC,wEAAiC,EAAE;QACtC,eAAe,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAE,GAAG,IAAI,CAAC;QACxD,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC;KAC1B;IACD,iEAA0B,GAAG,IAAI,oDAAW,CAAC;QAC3C,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;QAC3B,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;QAC3B,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4DAAqB,CAAC,iEAA0B,CAAC,CAAC;IAGlD,uEAAgC,GAAG,IAAI,mDAAU,CAAC;QAChD,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;QAC3B,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;QAC3B,KAAK,EAAE,eAAe,CAAC,CAAE,GAAG,IAAI;QAChC,MAAM,EAAE,eAAe,CAAC,CAAE,GAAG,IAAI;QACjC,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,KAAK,GAAG,IAAI;QACzB,YAAY,EAAE,IAAI,GAAG,IAAI;QACzB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4DAAqB,CAAC,uEAAgC,CAAC,CAAC;IAGxD,MAAM,aAAa,GAAG,IAAI,mDAAU,CAAC;QACnC,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,eAAe,CAAC,CAAE,GAAG,IAAI;QAChC,MAAM,EAAE,eAAe,CAAC,CAAE,GAAG,IAAI;QACjC,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,YAAY,EAAE,IAAI,GAAG,IAAI;QACzB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,qEAA8B,CAAC,aAAa,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,YAAY,GAAG,IAAI,CAAC;IAE1B,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC;QACzC,IAAI,EAAE,MAAM;QACZ,CAAC,EAAE,MAAM,GAAG,IAAI;QAChB,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,SAAS,EAAE,IAAI;KAChB,CAAe,CAAC;IACjB,qEAA8B,CAAC,aAAa,CAAC,CAAC;IAC9C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAyC,EAAE,EAAE;QAEtE,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YAG1B,gDAAiB,EAAE,CAAC;SACrB;aAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YAEjC,0CAAY,CAAC,KAAK,EAAE,kEAAsB,CAAC,CAAC;SAC7C;IACH,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,gDAAiB,CAAC,CAAC;IAE9C,uEAAgC,GAAG,gBAAgB,CAAC,KAAK,CAAC;QACxD,IAAI,EAAE,GAAG;QACT,CAAC,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,IAAI;QACjC,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,SAAS,EAAE,IAAI;KAChB,CAAoB,CAAC;IACtB,qEAA8B,CAAC,uEAAgC,CAAC,CAAC;IACjE,mFAA4C,GAAG,aAAa,CAAC;IAC7D,0EAAmC,CACjC,OAAO,EACP,CAAC,KAAyC,EAAE,EAAE;QAE5C,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YAG1B,gDAAiB,EAAE,CAAC;SACrB;aAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YAEjC,0CAAY,CAAC,KAAK,EAAE,kEAAsB,CAAC,CAAC;SAC7C;IACH,CAAC,CACF,CAAC;IACF,0EAAmC,CAAC,KAAK,EAAE,gDAAiB,CAAC,CAAC;IAE9D,sEAA+B,GAAG,cAAc,CAAC,KAAK,CAAC;QACrD,IAAI,EAAE,OAAO;QACb,CAAC,EAAE,MAAM,GAAG,IAAI;QAChB,CAAC,EAAE,KAAK,GAAG,IAAI;QACf,SAAS,EAAE,IAAI;QACf,OAAO,EACL,CAAC,4DAA6B,CAAC,sDAAe,CAAC,IAAI,CAAC,4DAAqB;KAC5E,CAAe,CAAC;IACjB,qEAA8B,CAAC,sEAA+B,CAAC,CAAC;IAChE,yEAAkC,CAChC,WAAW,EACX,CAAC,KAAyC,EAAE,EAAE;QAC5C,0CAAY,CAAC,KAAK,EAAE,kEAAsB,CAAC,CAAC;IAC9C,CAAC,CACF,CAAC;IAEF,wEAAiC,GAAG,gBAAgB,CAAC,KAAK,CAAC;QACzD,IAAI,EAAE,GAAG;QACT,CAAC,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,IAAI;QACjC,CAAC,EAAE,KAAK,GAAG,IAAI;QACf,SAAS,EAAE,IAAI;QACf,OAAO,EACL,CAAC,4DAA6B,CAAC,sDAAe,CAAC,IAAI,CAAC,4DAAqB;KAC5E,CAAe,CAAC;IACjB,qEAA8B,CAAC,wEAAiC,CAAC,CAAC;IAClE,2EAAoC,CAClC,WAAW,EACX,CAAC,KAAyC,EAAE,EAAE;QAC5C,0CAAY,CAAC,KAAK,EAAE,kEAAsB,CAAC,CAAC;IAC9C,CAAC,CACF,CAAC;IAEF,2EAAoC,GAAG,gBAAgB,CAAC,KAAK,CAAC;QAC5D,IAAI,EAAE,EAAE;QACR,CAAC,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,IAAI;QACjC,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,QAAQ,EAAE,KAAK,GAAG,IAAI;QACtB,SAAS,EAAE,IAAI;QACf,OAAO,EACL,CAAC,4DAA6B,CAAC,sDAAe,CAAC,IAAI,CAAC,4DAAqB;KAC5E,CAAe,CAAC;IACjB,qEAA8B,CAAC,2EAAoC,CAAC,CAAC;IACrE,8EAAuC,CACrC,WAAW,EACX,CAAC,KAAyC,EAAE,EAAE;QAC5C,0CAAY,CAAC,KAAK,EAAE,qEAAyB,CAAC,CAAC;IACjD,CAAC,CACF,CAAC;IAEF,IAAI,4DAA6B,CAAC,sDAAe,CAAC,IAAI,4DAAqB,EAAE;QAC3E,sEAA+B,GAAG,cAAc,CAAC,KAAK,CAAC;YACrD,IAAI,EAAE,OAAO;YACb,CAAC,EAAE,MAAM,GAAG,IAAI;YAChB,CAAC,EAAE,KAAK,GAAG,IAAI;YACf,SAAS,EAAE,IAAI;SAChB,CAAe,CAAC;QACjB,qEAA8B,CAAC,sEAA+B,CAAC,CAAC;QAChE,yEAAkC,CAChC,WAAW,EACX,CAAC,KAAyC,EAAE,EAAE;YAC5C,0CAAY,CAAC,KAAK,EAAE,kEAAsB,CAAC,CAAC;QAC9C,CAAC,CACF,CAAC;QAEF,wEAAiC,GAAG,gBAAgB,CAAC,KAAK,CAAC;YACzD,IAAI,EAAE,GAAG;YACT,CAAC,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,IAAI;YACjC,CAAC,EAAE,KAAK,GAAG,IAAI;YACf,SAAS,EAAE,IAAI;SAChB,CAAe,CAAC;QACjB,qEAA8B,CAAC,wEAAiC,CAAC,CAAC;QAClE,2EAAoC,CAClC,WAAW,EACX,CAAC,KAAyC,EAAE,EAAE;YAC5C,0CAAY,CAAC,KAAK,EAAE,kEAAsB,CAAC,CAAC;QAC9C,CAAC,CACF,CAAC;KACH;IAED,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC;QAC1C,IAAI,EAAE,OAAO;QACb,CAAC,EAAE,MAAM,GAAG,IAAI;QAChB,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,SAAS,EAAE,IAAI;KAChB,CAAe,CAAC;IACjB,qEAA8B,CAAC,cAAc,CAAC,CAAC;IAC/C,cAAc,CAAC,EAAE,CACf,WAAW,EACX,CAAC,KAAyC,EAAE,EAAE;QAC5C,0CAAY,CAAC,KAAK,EAAE,kEAAsB,CAAC,CAAC;IAC9C,CAAC,CACF,CAAC;IAEF,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC;QAC9C,IAAI,EAAE,GAAG;QACT,CAAC,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,IAAI;QACjC,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,SAAS,EAAE,IAAI;KAChB,CAAe,CAAC;IACjB,qEAA8B,CAAC,gBAAgB,CAAC,CAAC;IACjD,wEAAiC,GAAG,gBAAgB,CAAC;IACrD,gBAAgB,CAAC,EAAE,CACjB,WAAW,EACX,CAAC,KAAyC,EAAE,EAAE;QAC5C,0CAAY,CAAC,KAAK,EAAE,kEAAsB,CAAC,CAAC;IAC9C,CAAC,CACF,CAAC;IAGF,6EAAsC,GAAG,IAAI,oDAAW,CAAC;QACvD,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK,GAAG,IAAI;QACrB,OAAO,EAAE,IAAI,GAAG,IAAI;QACpB,QAAQ,EAAE,8DAAqB;QAE/B,MAAM,EAAE,gEAAuB;QAC/B,QAAQ,EAAE,GAAG,EAAE;YACb,IACE,6EAAsC,KAAK,SAAS;gBACpD,6EAAsC,KAAK,IAAI,EAC/C;gBACA,qFAA8C,EAAE,CAAC;aAClD;QACH,CAAC;KACF,CAAC,CAAC;IACH,2FAAoD,CAAC,wDAAiB,CAAC,CAAC;IAGxE,SAAS,WAAW,CAElB,KAAyC;QAEzC,IAAI,4DAA6B,CAAC,sDAAe,CAAC,EAAE;YAClD,OAAO;SACR;QAED,QAAQ,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;YACxB,KAAK,CAAC,CAAC,CAAC;gBAGN,MAAM,EAAE,OAAO,EAAE,GAAG,gEAAyB,CAAC;gBAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,MAAM,KAAK,SAAS,EAAE;oBAExB,OAAO;iBACR;gBAED,iDAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAGzC,MAAM,IAAI,GAAG,6DAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9C,2CAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAEtC,MAAM;aACP;YAED,KAAK,CAAC,CAAC,CAAC;gBAGN,IAAI,KAAK,CAAC;gBACV,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;oBAClB,KAAK,GAAG,oEAAwB,CAAC;iBAClC;qBAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;oBACzB,KAAK,GAAG,oEAAwB,CAAC;iBAClC;qBAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;oBACzB,KAAK,GAAG,oEAAwB,CAAC;iBAClC;qBAAM;oBACL,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;iBAC3D;gBAED,0CAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAE3B,MAAM;aACP;YAED,OAAO,CAAC,CAAC;gBACP,MAAM;aACP;SACF;IACH,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAE1B,MAAM,YAAY,GAAG,IAAI,4DAAY,CACnC;YACE,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI;YAC3B,CAAC,EAAE,KAAK,GAAG,IAAI;YACf,KAAK,EAAE,IAAI,GAAG,IAAI;YAClB,MAAM,EAAE,KAAK,GAAG,IAAI;YACpB,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,OAAO,GAAG,IAAI;YAC3B,YAAY,EAAE,KAAK,GAAG,IAAI;YAC1B,SAAS,EAAE,IAAI;SAChB,EACD,CAAC,CACF,CAAC;QACF,qEAA8B,CAAC,YAAY,CAAC,CAAC;QAC7C,0EAAmC,CAAC,YAAY,CAAC,CAAC;QAGlD,MAAM,OAAO,GAAG,IAAI,uDAAO,CACzB;YACE,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI;YAC5B,CAAC,EAAE,KAAK,GAAG,IAAI;YACf,KAAK,EAAE,IAAI,GAAG,IAAI;YAClB,MAAM,EAAE,KAAK,GAAG,IAAI;YACpB,KAAK,EAAE,8DAAwB,CAAC,GAAG,CAAE;YACrC,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,IAAI;SAChB,EACD,CAAC,CACF,CAAC;QACF,qEAA8B,CAAC,OAAO,CAAC,CAAC;QACxC,qEAA8B,CAAC,OAAO,CAAC,CAAC;QAGxC,IACE,4DAA6B,CAAC,sDAAe,CAAC;YAC9C,4DAAqB,EACrB;YACA,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,CAAC;gBAC7C,IAAI,EAAE,GAAG;gBACT,QAAQ,EAAE,KAAK,GAAG,IAAI;gBACtB,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI;gBAC7B,CAAC,EAAE,KAAK,GAAG,IAAI;gBACf,SAAS,EAAE,KAAK;aACjB,CAAe,CAAC;YACjB,qEAA8B,CAAC,iBAAiB,CAAC,CAAC;YAClD,+EAAwC,CAAC,iBAAiB,CAAC,CAAC;SAC7D;QAGD,YAAY,CAAC,WAAW,GAAG,SAAS,CAAC;QACrC,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC;QAC/C,YAAY,CAAC,cAAc;YACzB,6DAA6D,CAAC;QAChE,OAAO,CAAC,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC;QACrD,4CAAa,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACzC,4CAAa,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAIpC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC1C,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;KACtC;IAID,IAAI,4DAAqB,EAAE;QACzB,6EAAsC,EAAE,CAAC;QACzC,wEAAiC,EAAE,CAAC;QACpC,MAAM,iBAAiB,GAAG,6EAAsC,CAAC;QACjE,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACnC,iBAAiB,CAAC,IAAI,EAAE,CAAC;SAC1B;QAED,MAAM,eAAe,GAAG,IAAI,sDAAM,CAChC;YACE,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI;YAC3B,CAAC,EAAE,KAAK,GAAG,IAAI;YACf,KAAK,EAAE,IAAI,GAAG,IAAI;YAClB,MAAM,EAAE,KAAK,GAAG,IAAI;YACpB,OAAO,EAAE,4DAAqB;SAC/B,EACD,CAAC,8DAAwB,CAAC,OAAO,CAAE,CAAC,CACrC,CAAC;QACF,qEAA8B,CAAC,eAAyC,CAAC,CAAC;QAC1E,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YACnC,IACE,+DAAwB;gBACxB,8CAAgB,CAAC,mEAA4B,CAAC;gBAC9C,+DAAwB,IAAI,IAAI;gBAChC,MAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,EAC9D;gBACA,8DAAwB,CAAC,gBAAgB,EAAE;oBACzC,OAAO,EAAE,4DAAqB;iBAC/B,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QACH,eAAe,CAAC,WAAW,GAAG,MAAM,CAAC;QACrC,eAAe,CAAC,cAAc;YAC5B,4CAA4C,CAAC;QAC/C,4CAAa,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5C,uEAAgC,GAAG,eAAe,CAAC;KACpD;AACH,CAAC;AAGD,SAAS,cAAc;IAErB,qBAAqB,GAAG;QACtB,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,KAAK;QAC5B,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;KAC5B,CAAC;IACF,IAAI,CAAC,wEAAiC,EAAE;QAEtC,qBAAqB,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,GAAG,eAAe,CAAC,CAAE,GAAG,IAAI,CAAC;KACzE;IACD,MAAM,SAAS,GAAG,IAAI,CAAC;IACvB,MAAM,eAAe,GAAG,IAAI,gEAAgB,CAAC;QAC3C,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI;QAC3C,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG,IAAI;QACjC,KAAK,EAAE,SAAS,GAAG,IAAI;QACvB,MAAM,EAAE,SAAS,GAAG,IAAI;QAExB,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,8DAAwB,CAAC,MAAM,CAAE;QACxC,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL;QACD,aAAa,EAAE,GAAG;QAClB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,4DAAqB,CAAC,eAAe,CAAC,CAAC;IACvC,eAAe,CAAC,WAAW,GAAG,YAAY,CAAC;IAC3C,eAAe,CAAC,cAAc,GAAG,EAAE,CAAC;IACpC,4CAAa,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5C,uEAAgC,GAAG,eAAe,CAAC;IAEnD,0EAAmC,GAAG,IAAI,mDAAU,CAAC;QACnD,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG,IAAI;QACjC,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;QAC1C,KAAK,EAAE,IAAI,GAAG,IAAI;QAClB,MAAM,EAAE,IAAI,GAAG,IAAI;QACnB,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,oDAAW;QACjB,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL;QACD,aAAa,EAAE,GAAG;QAClB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4DAAqB,CAAC,0EAAmC,CAAC,CAAC;AAC7D,CAAC;AAGD,SAAS,gBAAgB;IACvB,MAAM,6BAA6B,GAAG;QACpC,CAAC,EAAE,qBAAqB,CAAC,CAAC;QAC1B,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG,IAAI;KAClC,CAAC;IAIF,gFAAyC,GAAG,IAAI,qDAAY,CAAC;QAC3D,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI;QACnD,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI;QACnD,MAAM,EAAE,KAAK,GAAG,IAAI;QACpB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,OAAO,GAAG,IAAI;QAC3B,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4DAAqB,CAAC,gFAAyC,CAAC,CAAC;IAGjE,MAAM,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;IAC1B,MAAM,uBAAuB,GAAG,IAAI,gEAAgB,CAAC;QACnD,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI;QACpD,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI;QACnD,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,8DAAwB,CAAC,OAAO,CAAE;QACzC,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL;QACD,aAAa,EAAE,GAAG;QAClB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,4DAAqB,CAAC,uBAAuB,CAAC,CAAC;IAC/C,+EAAwC,GAAG,uBAAuB,CAAC;IAGnE,oFAA6C,GAAG,IAAI,oDAAW,CAAC;QAC9D,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,IAAI,GAAG,CAAC;QACf,MAAM,EAAE,IAAI,GAAG,CAAC;QAChB,OAAO,EAAE,KAAK,GAAG,IAAI;QACrB,OAAO,EAAE,KAAK,GAAG,IAAI;QACrB,QAAQ,EAAE,8DAAqB;QAE/B,MAAM,EAAE,gEAAuB;QAC/B,QAAQ,EAAE,GAAG,EAAE;YACb,IACE,oFAA6C,KAAK,SAAS;gBAC3D,oFAA6C,KAAK,IAAI,EACtD;gBACA,4FAAqD,EAAE,CAAC;aACzD;QACH,CAAC;KACF,CAAC,CAAC;IACH,kGAA2D,CACzD,wDAAiB,CAClB,CAAC;IAGF,uBAAuB,CAAC,WAAW,GAAG,QAAQ,CAAC;IAE/C,uBAAuB,CAAC,cAAc,GAAG,EAAE,CAAC;IAC5C,4CAAa,CAAC,uBAAuB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAIpD,uBAAuB,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;QAC9C,IACE,kEAA2B,KAAK,IAAI;YACpC,CAAC,2EAAoC,EACrC;YACA,OAAO;SACR;QAED,IAAI,sEAA+B,KAAK,CAAC,EAAE;YACzC,gDAAkB,CAChB,8FAA8F,CAC/F,CAAC;YACF,OAAO;SACR;QAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE/C,IAAI,GAAG,GACL,kFAAkF,CAAC;QACrF,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,SAAS,IAAI,+DAAwB,EAAE;YAChD,IAAI,SAAS,CAAC,IAAI,KAAK,mEAA4B,EAAE;gBACnD,SAAS;aACV;YAED,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACpC,GAAG,IAAI,GAAG,CAAC,MAAM,SAAS,CAAC,IAAI,IAAI,CAAC;YACpC,CAAC,IAAI,CAAC,CAAC;SACR;QACD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,YAAY,KAAK,IAAI,EAAE;YAEzB,OAAO;SACR;QACD,MAAM,MAAM,GAAG,mDAAY,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAExB,OAAO;SACR;QACD,MAAM,iBAAiB,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,iBAAiB,KAAK,SAAS,EAAE;YAEnC,OAAO;SACR;QAED,8DAAwB,CAAC,gBAAgB,EAAE;YACzC,OAAO,EAAE,4DAAqB;YAC9B,IAAI,EAAE,iBAAiB;SACxB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAGD,SAAS,YAAY;IACnB,IAAI,wEAAiC,EAAE;QACrC,OAAO;KACR;IAED,gEAAyB,GAAG,IAAI,oDAAW,CAAC;QAC1C,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI;QAC3C,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI;QAC1C,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4DAAqB,CAAC,gEAAyB,CAAC,CAAC;IAEjD,MAAM,MAAM,GAAG,IAAI,sDAAa,CAAC;QAC/B,OAAO,EAAE,KAAK,GAAG,IAAI;QACrB,OAAO,EAAE,IAAI,GAAG,IAAI;QACpB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,OAAO,GAAG,IAAI;QAC3B,MAAM,EAAE;YACN,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI;YACjB,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI;SACjB;QACD,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,oEAA6B,CAAC,MAAM,CAAC,CAAC;IAEtC,MAAM,IAAI,GAAG,IAAI,mDAAU,CAAC;QAC1B,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI;QAChB,CAAC,EAAE,KAAK,GAAG,IAAI;QACf,QAAQ,EAAE,KAAK,GAAG,IAAI;QACtB,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,oEAA6B,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,WAAW;IAClB,aAAa,GAAG;QACd,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;KACR,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,mDAAU,CAAC;QACjC,CAAC,EAAE,aAAa,CAAC,CAAC,GAAG,IAAI;QACzB,CAAC,EAAE,aAAa,CAAC,CAAC,GAAG,IAAI;QACzB,KAAK,EAAE,aAAa,CAAC,CAAE,GAAG,IAAI;QAC9B,MAAM,EAAE,aAAa,CAAC,CAAE,GAAG,IAAI;QAC/B,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,YAAY,EAAE,IAAI,GAAG,IAAI;QACzB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4DAAqB,CAAC,WAAW,CAAC,CAAC;IAEnC,MAAM,OAAO,GAAG,IAAI,CAAC;IACrB,+DAAwB,GAAG,IAAI,8CAAO,CAAC;QACrC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI;QACrC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI;QACrC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAE,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI;QAC9C,MAAM,EAAE,CAAC,aAAa,CAAC,CAAE,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI;QAC/C,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4DAAqB,CAAC,+DAAkD,CAAC,CAAC;AAC5E,CAAC;AAGD,SAAS,cAAc;IACrB,MAAM,SAAS,GAAG,IAAI,mDAAU,CAAC;QAC/B,CAAC,EAAE,aAAa,CAAC,CAAC,GAAG,IAAI;QACzB,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,KAAK,EAAE,aAAa,CAAC,CAAE,GAAG,IAAI;QAC9B,MAAM,EAAE,IAAI,GAAG,IAAI;QACnB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,YAAY,EAAE,IAAI,GAAG,IAAI;QACzB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4DAAqB,CAAC,SAAS,CAAC,CAAC;IAEjC,MAAM,YAAY,GAAG,IAAI,uDAAO,CAAC;QAC/B,IAAI,EAAE,mEAA4B,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACzD,CAAC,EAAE,KAAK,GAAG,IAAI;QACf,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,KAAK,EAAE,IAAI,GAAG,IAAI;QAClB,MAAM,EAAE,IAAI,GAAG,IAAI;QACnB,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,oDAAW;QACjB,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL;QACD,aAAa,EAAE,GAAG;QAClB,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4DAAqB,CAAC,YAAY,CAAC,CAAC;IACpC,oEAA6B,GAAG,YAAY,CAAC;IAE7C,MAAM,gBAAgB,GAAG,IAAI,mDAAU,CAAC;QACtC,MAAM,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;QAC9D,MAAM,EAAE,oDAAW;QACnB,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,CAAC;QACb,YAAY,EAAE;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL;QACD,aAAa,EAAE,CAAC;QAChB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4DAAqB,CAAC,gBAAgB,CAAC,CAAC;IACxC,wEAAiC,GAAG,gBAAgB,CAAC;IAErD,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC;QACzC,IAAI,EAAE,MAAM;QACZ,CAAC,EAAE,KAAK,GAAG,IAAI;QACf,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,SAAS,EAAE,IAAI;KAChB,CAAoB,CAAC;IACtB,4DAAqB,CAAC,aAAa,CAAC,CAAC;IACrC,aAAa,CAAC,WAAW,GAAG,MAAM,CAAC;IACnC,IAAI,WAAW,GACb,+DAA+D,CAAC;IAClE,WAAW,IAAI,4CAA4C,CAAC;IAC5D,WAAW,IAAI,uDAAuD,CAAC;IACvE,WAAW,IAAI,4CAA4C,CAAC;IAC5D,WAAW;QACT,kEAAkE,CAAC;IACrE,4DAAqB,CAAC,aAAa,CAAC,CAAC;IACrC,aAAa,CAAC,cAAc,GAAG,WAAW,CAAC;IAC3C,4CAAa,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAE1C,MAAM,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAC;QAC7C,IAAI,EAAE,GAAG;QACT,CAAC,EAAE,GAAG,GAAG,IAAI;QACb,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,SAAS,EAAE,IAAI;KAChB,CAAe,CAAC;IACjB,4DAAqB,CAAC,eAAe,CAAC,CAAC;IACvC,uEAAgC,GAAG,eAAe,CAAC;IAEnD,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,KAAyC,EAAE,EAAE;QAC1E,0CAAY,CAAC,KAAK,EAAE,iEAAqB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,eAAe,CAAC,EAAE,CAChB,WAAW,EACX,CAAC,KAAyC,EAAE,EAAE;QAC5C,0CAAY,CAAC,KAAK,EAAE,iEAAqB,CAAC,CAAC;IAC7C,CAAC,CACF,CAAC;IAEF,MAAM,mBAAmB,GAAG,cAAc,CAAC,KAAK,CAAC;QAC/C,IAAI,EAAE,YAAY;QAClB,CAAC,EAAE,KAAK,GAAG,IAAI;QACf,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,SAAS,EAAE,IAAI;KAChB,CAAoB,CAAC;IACtB,4DAAqB,CAAC,mBAAmB,CAAC,CAAC;IAC3C,mBAAmB,CAAC,WAAW,GAAG,iBAAiB,CAAC;IACpD,MAAM,OAAO,GAAG,8BAA8B,CAAC;IAC/C,MAAM,0BAA0B,GAAG;;MAE/B,OAAO;MACP,OAAO;MACP,OAAO;MACP,OAAO;MACP,OAAO;MACP,OAAO;MACP,OAAO;MACP,OAAO;GACV,CAAC;IACF,mBAAmB,CAAC,cAAc,GAAG,0BAA0B,CAAC;IAChE,4CAAa,CAAC,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,mBAAmB,CAAC,EAAE,CACpB,WAAW,EACX,CAAC,KAAyC,EAAE,EAAE;QAC5C,0CAAY,CAAC,KAAK,EAAE,uEAA2B,CAAC,CAAC;IACnD,CAAC,CACF,CAAC;IAEF,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,KAAK,CAAC;QACnD,IAAI,EAAE,GAAG;QACT,CAAC,EAAE,GAAG,GAAG,IAAI;QACb,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,SAAS,EAAE,IAAI;KAChB,CAAoB,CAAC;IACtB,4DAAqB,CAAC,qBAAqB,CAAC,CAAC;IAC7C,6EAAsC,GAAG,qBAAqB,CAAC;IAC/D,qBAAqB,CAAC,EAAE,CAAC,WAAW,EAAE,yDAA0B,CAAC,CAAC;IAClE,qBAAqB,CAAC,WAAW,GAAG,mBAAmB,CAAC;IAGxD,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,KAAK,CAAC;QACjD,IAAI,EAAE,KAAK;QACX,CAAC,EAAE,KAAK,GAAG,IAAI;QACf,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,SAAS,EAAE,IAAI;KAChB,CAAe,CAAC;IACjB,4DAAqB,CAAC,mBAAmB,CAAC,CAAC;IAC3C,2EAAoC,GAAG,mBAAmB,CAAC;IAE3D,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,KAAK,CAAC;QACtD,IAAI,EAAE,6EAAsC,CAAC,CAAC,CAAC;QAC/C,CAAC,EAAE,KAAK,GAAG,IAAI;QACf,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,QAAQ,EAAE,IAAI,GAAG,IAAI;QAGrB,IAAI,EACF,mEAA4B;YAC5B,mFAA4C;YAC1C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,oDAAW;QAEjB,SAAS,EACP,mEAA4B;YAC5B,mFAA4C;YAC5C,4EAAqC;YACnC,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,QAAQ;QACd,SAAS,EAAE,IAAI;KAChB,CAAe,CAAC;IACjB,4DAAqB,CAAC,wBAAwB,CAAC,CAAC;IAChD,wBAAwB,CAAC,EAAE,CACzB,WAAW,EACX,CAAC,KAAyC,EAAE,EAAE;QAC5C,0CAAY,CAAC,KAAK,EAAE,0EAA8B,CAAC,CAAC;IACtD,CAAC,CACF,CAAC;IACF,gFAAyC,GAAG,wBAAwB,CAAC;AACvE,CAAC;AAED,SAAS,eAAe;IAEtB,uEAAgC,GAAG,IAAI,mDAAU,CAAC;QAChD,CAAC,EAAE,GAAG,GAAG,IAAI;QACb,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,KAAK,EAAE,IAAI,GAAG,IAAI;QAClB,MAAM,EAAE,IAAI,GAAG,IAAI;QACnB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,KAAK,GAAG,IAAI;QACzB,YAAY,EAAE,IAAI,GAAG,IAAI;QACzB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4DAAqB,CAAC,uEAAgC,CAAC,CAAC;IAGxD,6EAAsC,GAAG,IAAI,mDAAU,CAAC;QACtD,CAAC,EAAE,GAAG,GAAG,IAAI;QACb,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,KAAK,EAAE,IAAI,GAAG,IAAI;QAClB,MAAM,EAAE,IAAI,GAAG,IAAI;QACnB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,KAAK,GAAG,IAAI;QACzB,YAAY,EAAE,IAAI,GAAG,IAAI;QACzB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4DAAqB,CAAC,6EAAsC,CAAC,CAAC;IAG9D,MAAM,eAAe,GAAG,IAAI,mDAAU,CAAC;QACrC,CAAC,EAAE,GAAG,GAAG,IAAI;QACb,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,KAAK,EAAE,IAAI,GAAG,IAAI;QAClB,MAAM,EAAE,IAAI,GAAG,IAAI;QACnB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,YAAY,EAAE,IAAI,GAAG,IAAI;KAC1B,CAAC,CAAC;IACH,4DAAqB,CAAC,eAAe,CAAC,CAAC;IAGvC,MAAM,QAAQ,GAAG,IAAI,oDAAW,CAAC;QAC/B,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,KAAK,EAAE,IAAI,GAAG,IAAI;QAClB,MAAM,EAAE,IAAI,GAAG,IAAI;QACnB,OAAO,EAAE,GAAG;QACZ,KAAK,EAAE,8DAAwB,CAAC,UAAU,CAAE;QAC5C,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4DAAqB,CAAC,QAAQ,CAAC,CAAC;IAGhC,mEAA4B,GAAG,IAAI,mDAAU,CAAC;QAC5C,CAAC,EAAE,GAAG,GAAG,IAAI;QACb,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,KAAK,EAAE,GAAG,GAAG,IAAI;QACjB,MAAM,EAAE,IAAI,GAAG,IAAI;QACnB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,UAAU;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,KAAK,GAAG,IAAI,qDAAK,CAAC,IAAI,EAAE,IAAI,EAAE,4EAAqC,CAAC,CAAC;QAC3E,+DAAwB,CAAC,KAA+B,CAAC,CAAC;QAC1D,mEAA4B,CAAC,KAAK,CAAC,CAAC;KACrC;AACH,CAAC;AAED,SAAS,UAAU;IAEjB,yCAAU,EAAE,CAAC;IAIb,IACE,6DAAsB;QACtB,CAAC,CAAC,4DAAqB,IAAI,CAAC,gFAAyC,CAAC,EACtE;QACA,OAAO;KACR;IAED,MAAM,WAAW,GAAG;QAClB,EAAE,EAAE,KAAK;QACT,EAAE,EAAE,KAAK;QACT,EAAE,EAAE,KAAK;QACT,EAAE,EAAE,KAAK;QACT,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,KAAK;QACR,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,IAAI;KACb,CAAC;IACF,IAAI,CAAC,wEAAiC,EAAE;QACtC,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC;QACvB,WAAW,CAAC,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC;QAChC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC;QACtB,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC;KACxB;IAID,oEAA6B,GAAG,IAAI,sDAAa,CAAC;QAChD,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI;QACnC,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI;QAClC,OAAO,EAAE,IAAI,GAAG,IAAI;QACpB,OAAO,EAAE,IAAI,GAAG,IAAI;QACpB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,OAAO,GAAG,IAAI;QAC3B,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4DAAqB,CAAC,oEAA6B,CAAC,CAAC;IAGrD,8DAAuB,GAAG,IAAI,4DAAY,CAAC;QACzC,CAAC,EAAE,WAAW,CAAC,EAAE,GAAG,IAAI;QACxB,CAAC,EAAE,WAAW,CAAC,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,WAAW,CAAC,CAAC,GAAG,IAAI;QAC3B,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,IAAI;QAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ,GAAG,IAAI;QACrC,YAAY,EAAE,WAAW,CAAC,YAAY,GAAG,IAAI;QAC7C,MAAM,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI;QACjC,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,+DAAwB,CAAC,8DAAiD,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IACE,CAAC,4DAAqB;YACtB,iEAA0B,EAC1B;YACA,OAAO;SACR;QAED,MAAM,EAAE,kBAAkB,EAAE,GAAG,qEAA8B,CAAC;QAC9D,MAAM,EAAE,cAAc,EAAE,GAAG,uDAAgB,CAAC;QAE5C,IAAI,OAAO,CAAC;QACZ,IAAI,kBAAkB,KAAK,cAAc,EAAE;YACzC,OAAO,GAAG,OAAO,CAAC;SACnB;aAAM,IAAI,iEAA0B,EAAE;YACrC,OAAO,GAAG,eAAe,CAAC;YAE1B,6DAAuB,CAAC;gBACtB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;SACJ;aAAM;YACL,OAAO,GAAG,aAAa,CAAC;YAExB,6DAAuB,CAAC;gBACtB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;SACJ;QAED,8DAAwB,CAAC,OAAO,EAAE;YAChC,OAAO,EAAE,4DAAqB;YAC9B,OAAO;SACR,CAAC,CAAC;IACL,CAAC,CAAC;IACF,iEAA0B,CACxB,OAAO,EACP,CAAC,KAAyC,EAAE,EAAE;QAE5C,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YAE1B,UAAU,EAAE,CAAC;SACd;IACH,CAAC,CACF,CAAC;IACF,iEAA0B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAGjD,8DAAuB,GAAG,IAAI,4DAAY,CAAC;QACzC,CAAC,EAAE,WAAW,CAAC,EAAE,GAAG,IAAI;QACxB,CAAC,EAAE,WAAW,CAAC,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,WAAW,CAAC,CAAC,GAAG,IAAI;QAC3B,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,IAAI;QAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ,GAAG,IAAI;QACrC,aAAa,EAAE,IAAI,GAAG,IAAI;QAC1B,YAAY,EAAE,WAAW,CAAC,YAAY,GAAG,IAAI;QAC7C,MAAM,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI;QACjC,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,+DAAwB,CAAC,8DAAiD,CAAC,CAAC;IAC5E,IAAI,4DAAqB,IAAI,gFAAyC,EAAE;QACtE,0EAAmC,GAAG,YAAY,CAAC;QAEnD,4CAAa,CAAC,8DAAuB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KACrD;AACH,CAAC;AAED,SAAS,YAAY;IAEnB,cAAc,GAAG;QACf,CAAC,EAAE,eAAe,CAAC,CAAC;QACpB,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,cAAc,CAAC,CAAE,GAAG,KAAK;QAC/C,CAAC,EAAE,eAAe,CAAC,CAAE;QACrB,CAAC,EAAE,IAAI;KACR,CAAC;IACF,IAAI,oEAA6B,EAAE;QACjC,cAAc,CAAC,CAAC,IAAI,IAAI,CAAC;KAC1B;IAED,IAAI,CAAC,wEAAiC,EAAE;QACtC,cAAc,CAAC,CAAC,IAAI,IAAI,CAAC;KAC1B;IACD,gEAAyB,GAAG,IAAI,oDAAW,CAAC;QAC1C,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI;QAC1B,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI;QAC1B,KAAK,EAAE,cAAc,CAAC,CAAE,GAAG,IAAI;QAC/B,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAGH,MAAM,EAAE,UAAU,EAAE,GAAG,sDAAe,CAAC;IACvC,MAAM,aAAa,GAAG,KAAK,CAAC;IAC5B,MAAM,mBAAmB,GAAG,MAAM,CAAC;IAInC,MAAM,sBAAsB,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAGxE,6EAAsC,GAAG,IAAI,kDAAW,CAAC;QACvD,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH;QACE,MAAM,kBAAkB,GAAG,UAAU,GAAG,CAAC,CAAC;QAC1C,MAAM,YAAY,GAChB,cAAc,CAAC,CAAE,GAAG,mBAAmB,GAAG,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;QACrE,MAAM,aAAa,GAAG,YAAY,GAAG,kBAAkB,CAAC;QAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,CAAC,GAAG,CAAC,sEAA+B,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;YACjE,MAAM,MAAM,GAAG,IAAI,4DAAY,CAC7B;gBACE,CAAC,EAAE,CAAC,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,IAAI;gBACnD,CAAC,EAAE,CAAC;gBACJ,KAAK,EAAE,aAAa,GAAG,IAAI;gBAC3B,MAAM,EAAE,aAAa,GAAG,IAAI;gBAC5B,IAAI,EAAE,mEAA4B,CAAC,CAAC,CAAC;aACtC,EACD,CAAC,CACF,CAAC;YACF,iFAA0C,CACxC,MAAgC,CACjC,CAAC;YACF,qFAA8C,CAAC,MAAM,CAAC,CAAC;SACxD;KACF;IACD,oEAA6B,CAC3B,6EAAgE,CACjE,CAAC;IACF,IAAI,UAAU,KAAK,CAAC,EAAE;QAGpB,kFAA2C,EAAE,CAAC;QAE9C,gGAAyD,CAAC,IAAI,CAAC,CAAC;KACjE;IAGD,8EAAuC,GAAG,IAAI,kDAAW,CAAC;QACxD,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH;QACE,MAAM,kBAAkB,GAAG,UAAU,CAAC;QACtC,MAAM,YAAY,GAChB,cAAc,CAAC,CAAE,GAAG,mBAAmB,GAAG,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;QACrE,MAAM,aAAa,GAAG,YAAY,GAAG,kBAAkB,CAAC;QAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC,EAAE,EAAE;YAG3C,MAAM,CAAC,GAAG,CAAC,sEAA+B,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;YAC7D,MAAM,MAAM,GAAG,IAAI,4DAAY,CAC7B;gBACE,CAAC,EAAE,CAAC,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,IAAI;gBACnD,CAAC,EAAE,CAAC;gBACJ,KAAK,EAAE,aAAa,GAAG,IAAI;gBAC3B,MAAM,EAAE,aAAa,GAAG,IAAI;gBAC5B,IAAI,EAAE,mEAA4B,CAAC,CAAC,CAAC;aACtC,EACD,CAAC,CACF,CAAC;YACF,kFAA2C,CACzC,MAAgC,CACjC,CAAC;YACF,sFAA+C,CAAC,MAAM,CAAC,CAAC;SACzD;KACF;IACD,oEAA6B,CAC3B,8EAAiE,CAClE,CAAC;IACF,mFAA4C,EAAE,CAAC;IAG/C,MAAM,OAAO,GAAG,IAAI,CAAC;IACrB,MAAM,OAAO,GAAG,KAAK,CAAC;IACtB,MAAM,cAAc,GAAG,KAAK,CAAC;IAC7B,MAAM,cAAc,GAAG,KAAK,CAAC;IAC7B,2EAAoC,GAAG,IAAI,kDAAW,CAAC;QACrD,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAIH,MAAM,aAAa,GAAG,OAAO,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,CAAC;IACvD,MAAM,kBAAkB,GAAG,aAAa,GAAG,IAAI,CAAC;IAChD,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,cAAc,CAAC,CAAE,GAAG,IAAI,GAAG,kBAAkB,CAAC,CAAC;IACvE,SAAS,OAAO;QACd,MAAM,CAAC,GAAG,OAAO,CAAC;QAClB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,SAAS,SAAS;QAChB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,mBAAmB,GAAG;QACpB,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,aAAa;KACjB,CAAC;IAEF,qEAA8B,GAAG,IAAI,6DAAa,CAAC;QACjD,CAAC,EAAE,mBAAmB,CAAC,CAAC,GAAG,IAAI;QAC/B,CAAC,EAAE,mBAAmB,CAAC,CAAC,GAAG,IAAI;QAC/B,KAAK,EAAE,mBAAmB,CAAC,CAAE;KAC9B,CAAC,CAAC;IAEH,6EAAsC,GAAG,OAAO,CAAC;IACjD,+EAAwC,GAAG,SAAS,CAAC;IACrD,+EAAwC,EAAE,CAAC;IAC3C,oEAA6B,CAC3B,qEAAwD,CACzD,CAAC;IAGF,wEAAiC,GAAG,EAAE,CAAC;IACvC,IAAI,eAAe,GAAG,OAAO,GAAG,wEAAiC,CAAC;IAClE,eAAe,IAAI,cAAc,GAAG,CAAC,wEAAiC,GAAG,CAAC,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,cAAc,CAAC,CAAE,GAAG,GAAG,GAAG,eAAe,GAAG,GAAG,CAAC;IAC/D,MAAM,MAAM,GAAG,cAAc,GAAG,sBAAsB,CAAC;IACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,wEAAiC,EAAE,CAAC,EAAE,EAAE;QAC1D,MAAM,KAAK,GAAG,iEAA0B,CAAC,CAAC,CAAC,CAAC;QAG5C,IAAI,YAAY,CAAC;QACjB,KAAK,MAAM,IAAI,IAAI,4DAAqB,EAAE;YACxC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACnC,YAAY,GAAG,IAAI,CAAC;gBACpB,MAAM;aACP;SACF;QACD,IAAI,YAAY,KAAK,SAAS,EAAE;YAC9B,MAAM,IAAI,KAAK,CACb,6CAA6C,KAAK,CAAC,IAAI,IAAI,CAC5D,CAAC;SACH;QAED,MAAM,MAAM,GAAG,IAAI,kDAAW,CAC5B;YACE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,cAAc,CAAC,CAAC,GAAG,IAAI;YACnD,CAAC,EAAE,MAAM,GAAG,IAAI;YAChB,KAAK,EAAE,OAAO,GAAG,IAAI;YACrB,MAAM,EAAE,OAAO,GAAG,IAAI;YACtB,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,IAAI,EAAE,KAAK,CAAC,YAAY;YACxB,IAAI,EAAE,sDAAS,CAAC,KAAK,CAAC;SACvB,EACD,YAAY,CACb,CAAC;QAEF,+EAAwC,CAAC,MAAgC,CAAC,CAAC;QAC3E,mFAA4C,CAAC,MAAM,CAAC,CAAC;QACrD,6EAAsC,CAAC,MAAM,CAAC,CAAC;KAChD;IAGD,uEAAgC,GAAG,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,uEAAgC,CAAC;IAClD,IAAI,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxC,cAAc,IAAI,cAAc,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,cAAc,CAAC,CAAE,GAAG,GAAG,GAAG,cAAc,GAAG,GAAG,CAAC;IAC7D,MAAM,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uEAAgC,EAAE,CAAC,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,gEAAyB,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,iDAAU,CAAC;YAC5B,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,cAAc,CAAC,CAAC,GAAG,IAAI;YAClD,CAAC,EAAE,KAAK,GAAG,IAAI;YACf,KAAK,EAAE,OAAO,GAAG,IAAI;YACrB,MAAM,EAAE,OAAO,GAAG,IAAI;YACtB,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,qDAAQ,CAAC,IAAI,CAAC;SACrB,CAAC,CAAC;QAEH,+EAAwC,CAAC,MAAgC,CAAC,CAAC;QAC3E,mFAA4C,CAAC,MAAM,CAAC,CAAC;QACrD,4EAAqC,CAAC,MAAM,CAAC,CAAC;KAC/C;IAGD,gFAAyC,CAAC,QAAQ,EAAE,+CAAgB,CAAC,CAAC;IACtE,iFAA0C,CAAC,QAAQ,EAAE,+CAAgB,CAAC,CAAC;IACvE,8EAAuC,CAAC,QAAQ,EAAE,+CAAgB,CAAC,CAAC;IAEpE,yEAAkC,CAChC,2EAA8D,CAC/D,CAAC;IAGF,cAAc,GAAG;QACf,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,cAAc;QACnC,CAAC,EAAE,KAAK;KACT,CAAC;IACF,cAAc,CAAC,CAAC,GAAG,cAAc,CAAC,CAAE,GAAG,GAAG,GAAG,cAAc,CAAC,CAAE,GAAG,GAAG,CAAC;IAErE,sEAA+B,GAAG,IAAI,sDAAM,CAAC;QAC3C,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI;QAC1B,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI;QAC1B,KAAK,EAAE,cAAc,CAAC,CAAE,GAAG,IAAI;QAC/B,MAAM,EAAE,KAAK,GAAG,IAAI;QACpB,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;IACH,iFAA0C,CAAC,KAAK,CAAC,CAAC;IAClD,yEAAkC,CAChC,sEAAyD,CAC1D,CAAC;IACF,yEAAkC,CAAC,WAAW,EAAE,yCAAU,CAAC,CAAC;IAE5D,4DAAqB,CAAC,gEAAyB,CAAC,CAAC;IAEjD,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe;IAE3C,wEAAiC,GAAG,IAAI,6DAAa,CAAC;QACpD,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI;QAC1B,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI;QAC1B,KAAK,EAAE,cAAc,CAAC,CAAE,GAAG,IAAI;QAC/B,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,SAAS,OAAO;QACd,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,gFAAyC,GAAG,OAAO,CAAC;IAEpD,SAAS,SAAS;QAChB,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,kFAA2C,GAAG,SAAS,CAAC;IACxD,kFAA2C,EAAE,CAAC;IAG9C,MAAM,IAAI,GAAG,IAAI,mDAAU,CAAC;QAC1B,KAAK,EAAE,cAAc,CAAC,CAAE,GAAG,IAAI;QAC/B,MAAM,EAAE,cAAc,CAAC,CAAE,GAAG,IAAI;QAChC,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,4EAAqC,CAAC,IAAI,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG;QACd,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,IAAI;KACR,CAAC;IACF,MAAM,SAAS,GAAG,SAAS,CAAC;IAG5B,MAAM,KAAK,GAAG,IAAI,mDAAU,CAAC;QAC3B,MAAM,EAAE;YACN,OAAO,CAAC,CAAC,GAAG,IAAI;YAChB,OAAO,CAAC,CAAC,GAAG,IAAI;YAChB,CAAC,cAAc,CAAC,CAAE,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;YACtC,CAAC,cAAc,CAAC,CAAE,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;SACvC;QACD,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,OAAO,GAAG,IAAI;QAC3B,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4EAAqC,CAAC,KAAK,CAAC,CAAC;IAG7C,MAAM,KAAK,GAAG,IAAI,mDAAU,CAAC;QAC3B,MAAM,EAAE;YACN,OAAO,CAAC,CAAC,GAAG,IAAI;YAChB,CAAC,cAAc,CAAC,CAAE,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;YACtC,CAAC,cAAc,CAAC,CAAE,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;YACtC,OAAO,CAAC,CAAC,GAAG,IAAI;SACjB;QACD,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,OAAO,GAAG,IAAI;QAC3B,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4EAAqC,CAAC,KAAK,CAAC,CAAC;IAG7C,MAAM,WAAW,GAAG,IAAI,uDAAO,CAAC;QAC9B,CAAC,EAAE,cAAc,CAAC,CAAE,GAAG,GAAG,GAAG,IAAI;QACjC,KAAK,EAAE,cAAc,CAAC,CAAE,GAAG,IAAI;QAC/B,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,oDAAW;QACjB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,OAAO,GAAG,IAAI;QAC3B,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4EAAqC,CAAC,WAAW,CAAC,CAAC;IAEnD,6EAAsC,EAAE,CAAC;IACzC,4DAAqB,CACnB,wEAA2D,CAC5D,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB;IAE5B,MAAM,sBAAsB,GAAG,GAAG,CAAC;IACnC,MAAM,uBAAuB,GAAG;QAC9B,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,cAAc,CAAC,CAAE,GAAG,CAAC,GAAG,sBAAsB,GAAG,CAAC;QACxE,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,KAAK;QAC3B,CAAC,EAAE,sBAAsB;QACzB,CAAC,EAAE,IAAI;QACP,OAAO,EAAE,KAAK;KACf,CAAC;IACF,yEAAkC,GAAG,IAAI,iEAAiB,CACxD,uBAAuB,EACvB,IAAI,EACJ,IAAI,CACL,CAAC;IACF,4DAAqB,CACnB,yEAA4D,CAC7D,CAAC;AACJ,CAAC;AAED,SAAS,eAAe;IACtB,MAAM,CAAC,GAAG,IAAI,CAAC;IACf,MAAM,CAAC,GAAG,GAAG,CAAC;IACd,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,cAAc,CAAC,CAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,IAAI,CAAC;IAClC,2EAAoC,GAAG,IAAI,sDAAM,CAAC;QAChD,CAAC,EAAE,CAAC,GAAG,IAAI;QACX,CAAC,EAAE,CAAC,GAAG,IAAI;QACX,KAAK,EAAE,CAAC,GAAG,IAAI;QACf,MAAM,EAAE,CAAC,GAAG,IAAI;QAChB,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IACH,4DAAqB,CACnB,2EAA8D,CAC/D,CAAC;IACF,8EAAuC,CAAC,WAAW,EAAE,GAAG,EAAE;QACxD,6DAAuB,CAAC;YACtB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,UAAU,GAAG;QACjB,CAAC,EAAE,eAAe,CAAC,CAAC;QACpB,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI;QAC1B,CAAC,EAAE,eAAe,CAAC,CAAC;QACpB,CAAC,EAAE,IAAI;KACR,CAAC;IAGF,kEAA2B,GAAG,IAAI,oDAAW,CAAC;QAC5C,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;QACtB,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;QACtB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,4DAAqB,CAAC,kEAA2B,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,IAAI,sDAAa,CAAC;QAC/B,CAAC,EAAE,UAAU,CAAC,CAAE,GAAG,GAAG,GAAG,IAAI;QAC7B,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI;QAC5B,OAAO,EAAE,UAAU,CAAC,CAAE,GAAG,GAAG,GAAG,IAAI;QACnC,OAAO,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;QAC5B,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG;QACZ,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,OAAO,GAAG,IAAI;QAC3B,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,sEAA+B,CAAC,MAAM,CAAC,CAAC;IAExC,MAAM,IAAI,GAAG,IAAI,uDAAO,CAAC;QACvB,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI;QAC5B,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,UAAU,CAAC,CAAE,GAAG,IAAI;QAC3B,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,oDAAW;QACjB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,sEAA+B,CAAC,IAAI,CAAC,CAAC;IAEtC,uEAAgC,GAAG,IAAI,oDAAW,CAAC;QACjD,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,4DAAqB,CAAC,uEAAgC,CAAC,CAAC;IAGxD,MAAM,oBAAoB,GAAG;QAE3B,CAAC,EACC,cAAc,CAAC,CAAC;YAChB,mBAAmB,CAAC,CAAC;YACrB,cAAc,CAAC,CAAC;YAChB,cAAc,CAAC,CAAE;YACjB,IAAI;QACN,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC;QAC9D,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,KAAK;KACT,CAAC;IAEF,sEAA+B,GAAG,IAAI,sDAAM,CAAC;QAC3C,CAAC,EAAE,oBAAoB,CAAC,CAAC,GAAG,IAAI;QAChC,CAAC,EAAE,oBAAoB,CAAC,CAAC,GAAG,IAAI;QAChC,KAAK,EAAE,oBAAoB,CAAC,CAAC,GAAG,IAAI;QACpC,MAAM,EAAE,oBAAoB,CAAC,CAAC,GAAG,IAAI;QACrC,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK,GAAG,IAAI;KACvB,CAAC,CAAC;IAEH,kFAA2C,GAAG,WAAW,CAAC;IAC1D,qFAA8C;QAC5C,sCAAsC,CAAC;IACzC,4CAAa,CAAC,sEAA+B,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAE5D,yEAAkC,CAAC,WAAW,EAAE,oDAAqB,CAAC,CAAC;IACvE,2EAAoC,CAClC,sEAAyD,CAC1D,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,CAAC;IAC9B,MAAM,gBAAgB,GAAG,KAAK,CAAC;IAC/B,MAAM,iBAAiB,GAAG,KAAK,CAAC;IAGhC,MAAM,2BAA2B,GAAG;QAClC,CAAC,EAAE,oBAAoB,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,GAAG,iBAAiB;QACtE,CAAC,EAAE,oBAAoB,CAAC,CAAC;KAC1B,CAAC;IAEF,MAAM,qBAAqB,GAAG,IAAI,sDAAM,CAAC;QACvC,CAAC,EAAE,2BAA2B,CAAC,CAAC,GAAG,IAAI;QACvC,CAAC,EAAE,2BAA2B,CAAC,CAAC,GAAG,IAAI;QACvC,KAAK,EAAE,eAAe,GAAG,IAAI;QAC7B,MAAM,EAAE,gBAAgB,GAAG,IAAI;QAC/B,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,KAAK,GAAG,IAAI;KACvB,CAAC,CAAC;IACH,2EAAoC,CAClC,qBAA+C,CAChD,CAAC;IACF,qBAAqB,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QACzC,+CAAgB,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,6EAAsC,GAAG,qBAAqB,CAAC;IAG/D,MAAM,qBAAqB,GAAG;QAC5B,CAAC,EAAE,2BAA2B,CAAC,CAAC;QAChC,CAAC,EAAE,2BAA2B,CAAC,CAAC,GAAG,gBAAgB,GAAG,iBAAiB;KACxE,CAAC;IACF,uEAAgC,GAAG,IAAI,2DAAW,CAAC;QACjD,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG,IAAI;QACjC,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG,IAAI;QACjC,KAAK,EAAE,eAAe,GAAG,IAAI;QAC7B,MAAM,EAAE,gBAAgB,GAAG,IAAI;QAC/B,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,KAAK,GAAG,IAAI;KACvB,CAAC,CAAC;IAEH,mFAA4C,GAAG,iBAAiB,CAAC;IACjE,sFAA+C;QAC7C,uEAAuE,CAAC;IAC1E,4CAAa,CAAC,uEAAgC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAE7D,0EAAmC,CAAC,WAAW,EAAE,GAAG,EAAE;;QACpD,6EAAgC,0CAAE,UAAU,CAC1C,CAAC,8EAAgC,0CAAE,OAAO,EAC3C,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,2EAAoC,CAClC,uEAA0D,CAC3D,CAAC;IAGF,MAAM,4BAA4B,GAAG;QACnC,CAAC,EAAE,qBAAqB,CAAC,CAAC;QAC1B,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG,gBAAgB,GAAG,iBAAiB;KAClE,CAAC;IACF,8EAAuC,GAAG,IAAI,2DAAW,CAAC;QACxD,CAAC,EAAE,4BAA4B,CAAC,CAAC,GAAG,IAAI;QACxC,CAAC,EAAE,4BAA4B,CAAC,CAAC,GAAG,IAAI;QACxC,KAAK,EAAE,eAAe,GAAG,IAAI;QAC7B,MAAM,EAAE,gBAAgB,GAAG,IAAI;QAC/B,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,KAAK,GAAG,IAAI;KACvB,CAAC,CAAC;IACH,0FAAmD,GAAG,iBAAiB,CAAC;IACxE,6FAAsD;QACpD,8DAA8D,CAAC;IACjE,4CAAa,CAAC,8EAAuC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAEpE,iFAA0C,CACxC,WAAW,EACX,0DAA2B,CAC5B,CAAC;IACF,2EAAoC,CAClC,8EAAiE,CAClE,CAAC;AACJ,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,eAAe,GAAG;QACtB,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;KACP,CAAC;IAEF,iEAA0B,GAAG,IAAI,oDAAW,CAAC;QAC3C,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,6DAAsB,CAAC,iEAA0B,CAAC,CAAC;IAEnD,MAAM,SAAS,GAAG,IAAI,mDAAU,CAAC;QAC/B,KAAK,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;QAC/B,MAAM,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;QAChC,IAAI,EAAE,SAAS;QACf,YAAY,EAAE,IAAI,GAAG,IAAI;QACzB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,qEAA8B,CAAC,SAAS,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAG,IAAI,mDAAU,CAAC;QAChC,CAAC,EAAE,GAAG,GAAG,IAAI;QACb,KAAK,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;QAC/B,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL;QACD,aAAa,EAAE,GAAG;QAClB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,qEAA8B,CAAC,UAAU,CAAC,CAAC;IAE3C,iEAA0B,GAAG,IAAI,mDAAU,CAAC;QAC1C,CAAC,EAAE,IAAI,GAAG,IAAI;QACd,KAAK,EAAE,eAAe,CAAC,CAAC,GAAG,IAAI;QAC/B,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL;QACD,aAAa,EAAE,GAAG;QAClB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,qEAA8B,CAAC,iEAA0B,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,GAAG,GAAG,CAAC;IACzC,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,GAAG,KAAK,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC;IACrB,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,GAAG,GAAG,CAAC;IAExC,mEAA4B,GAAG,IAAI,sDAAM,CAAC;QACxC,CAAC,EAAE,OAAO,GAAG,IAAI;QACjB,CAAC,EAAE,OAAO,GAAG,IAAI;QACjB,KAAK,EAAE,QAAQ,GAAG,IAAI;QACtB,MAAM,EAAE,GAAG,GAAG,IAAI;QAClB,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;IACH,sEAA+B,CAAC,WAAW,EAAE,GAAG,EAAE;QAChD,8DAAwB,CAAC,OAAO,EAAE;YAChC,OAAO,EAAE,4DAAqB;YAC9B,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,qEAA8B,CAC5B,mEAAsD,CACvD,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,sDAAM,CAAC;QAC5B,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI;QAC1D,CAAC,EAAE,OAAO,GAAG,IAAI;QACjB,KAAK,EAAE,QAAQ,GAAG,IAAI;QACtB,MAAM,EAAE,GAAG,GAAG,IAAI;QAClB,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IACH,qEAA8B,CAAC,UAAoC,CAAC,CAAC;IACrE,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QAC9B,+DAAyB,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAI,sDAAM,CACjC;QACE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,GAAG,QAAQ,GAAG,OAAO,GAAG,GAAG,CAAC,GAAG,IAAI;QACxD,CAAC,EAAE,OAAO,GAAG,IAAI;QACjB,KAAK,EAAE,QAAQ,GAAG,IAAI;QACtB,MAAM,EAAE,GAAG,GAAG,IAAI;KACnB,EACD,CAAC,8DAAwB,CAAC,MAAM,CAAE,CAAC,CACpC,CAAC;IACF,qEAA8B,CAAC,gBAA0C,CAAC,CAAC;IAC3E,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,mBAAmB;IAG1B,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,cAAc,CAAC,CAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAC1D,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,cAAc,CAAC,CAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAC1D,MAAM,IAAI,GAAG,GAAG,CAAC;IAEjB,2EAAoC,GAAG,IAAI,oDAAW,CAAC;QACrD,CAAC,EAAE,CAAC,GAAG,IAAI;QACX,CAAC,EAAE,CAAC,GAAG,IAAI;QACX,KAAK,EAAE,IAAI,GAAG,IAAI;QAClB,MAAM,EAAE,IAAI,GAAG,IAAI;QACnB,KAAK,EAAE,8DAAwB,CAAC,uBAAuB,CAAE;QACzD,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,6DAAsB,CAAC,2EAAoC,CAAC,CAAC;IAE7D,4EAAqC,GAAG,IAAI,oDAAW,CAAC;QACtD,CAAC,EAAE,CAAC,GAAG,IAAI;QACX,CAAC,EAAE,CAAC,GAAG,IAAI;QACX,KAAK,EAAE,IAAI,GAAG,IAAI;QAClB,MAAM,EAAE,IAAI,GAAG,IAAI;QACnB,KAAK,EAAE,8DAAwB,CAAC,oBAAoB,CAAE;QACtD,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,6DAAsB,CAAC,4EAAqC,CAAC,CAAC;AAChE,CAAC;AAGD,SAAS,gBAAgB;IAGvB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEtB,sDAAW,EAAE,CAAC;AAChB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACp0EmC;AAC2C;AACxC;AACO;AACoB;AACd;AACyB;AAKpB;AAItB;AACmB;AACtB;AACe;AACd;AACoB;AAClB;AACF;AACA;AACH;AAK9B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;AACpD,iEAAe,QAAQ,EAAC;AAOxB,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE;IACxB,yCAAU,EAAE,CAAC;IACb,uDAAkB,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAIH,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAqB,EAAE,EAAE;IAC9C,2CAAY,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AAKH,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAmB,EAAE,EAAE;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,SAAS,GAAG,iEAA2B,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACtC;KACF;IACD,iEAA2B,EAAE,CAAC;AAChC,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,IAAwB,EAAE,EAAE;IAC1D,4DAAuB,CAAC;QACtB,IAAI,EAAE,gBAAgB;QACtB,cAAc,EAAE,IAAI,CAAC,cAAc;KACpC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,IAA2B,EAAE,EAAE;IAGhE,4DAAuB,CAAC;QACtB,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,CAAC;KACP,CAAC,CAAC;IAGH,+DAAwB,CAAC,kBAAkB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAG9D,4DAAuB,CAAC;QACtB,IAAI,EAAE,mBAAmB;QACzB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,gBAAgB,EAAE,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE;KACxC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,IAAsB,EAAE,EAAE;IAMtD,MAAM,OAAO,GAAkC,EAAE,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAgC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACtB;IAED,4DAAuB,CAAC;QACtB,IAAI,EAAE,WAAW;QACjB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,OAAO;KACR,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgC,CAAC;IAC/D,4DAAuB,CAAC;QACtB,IAAI,EAAE,YAAY;QAClB,MAAM;KACP,CAAC,CAAC;IACH,qEAAsC,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE;IAC5B,4DAAuB,CAAC;QACtB,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE;IAC3B,+CAAgB,EAAE,CAAC;AACrB,CAAC,CAAC,CAAC;AAKH,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,IAA4B,EAAE,EAAE;IAClE,4DAAuB,CAAC;QACtB,IAAI,EAAE,oBAAoB;QAC1B,cAAc,EAAE,IAAI,CAAC,cAAc;KACpC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE;IAC7B,iDAAkB,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAkB,EAAE,EAAE;IAG1C,mDAAqB,CAAC,QAAQ,CAAC,CAAC;IAEhC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjB,cAAc,CAAC,QAAQ,CAAC,CAAC;IAGzB,iDAAM,EAAE,CAAC;AACX,CAAC,CAAC,CAAC;AAOH,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAc,EAAE,EAAE;IAEtC,IAAI,2DAAqB,EAAE;QACzB,OAAO;KACR;IAED,4DAAuB,CAAC;QACtB,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC,CAAC;IAGH,MAAM,IAAI,GAAG,4DAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAcH,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAkB,EAAE,EAAE;IAC9C,MAAM,KAAK,GAAG,EAAc,CAAC;IAC7B,MAAM,aAAa,GAAG,EAAgB,CAAC;IACvC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;QACjC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1B,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACpC;IACD,4DAAuB,CAAC;QACtB,IAAI,EAAE,UAAU;QAChB,KAAK;QACL,aAAa;KACd,CAAC,CAAC;IAEH,yDAA0B,EAAE,CAAC;AAC/B,CAAC,CAAC,CAAC;AAOH,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,IAAwB,EAAE,EAAE;IAE1D,4DAAuB,CAAC;QACtB,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC,CAAC;IAGH,yDAA0B,EAAE,CAAC;IAG7B,MAAM,oBAAoB,GAAG,4EAAuC,GAAG,CAAC,CAAC;IACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,oBAAoB,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,4DAAkB,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAGD,KAAK,MAAM,SAAS,IAAI,wDAAkB,EAAE;QAC1C,SAAS,CAAC,gBAAgB,EAAE,CAAC;KAC9B;AACH,CAAC,CAAC,CAAC;AAOH,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAoB,EAAE,EAAE;IAElD,4DAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,IAAwB,EAAE,EAAE;IAK1D,IAAI,kBAAkB,GAAG,IAAI,CAAC;IAC9B,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,EAAE;QAC/B,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;KAC5D;IAKD,4DAAuB,CAAC;QACtB,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,IAAI,CAAC,IAAI;KACnB,CAAC,CAAC;IAEH,IAAI,kBAAkB,KAAK,IAAI,EAAE;QAC/B,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;KAC5C;AACH,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAe,EAAE,EAAE;IACxC,4DAAuB,CAAC;QACtB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,IAA6B,EAAE,EAAE;IACpE,IACE,iEAA2B,KAAK,IAAI;QAEpC,0EAAoC,EACpC;QACA,OAAO;KACR;IAED,qDAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,IAAyB,EAAE,EAAE;IAC5D,IACE,iEAA2B,KAAK,IAAI;QAEpC,0EAAoC;QAGpC,CAAC,mFAA6C,EAC9C;QACA,OAAO;KACR;IAED,4CAAc,EAAE,CAAC;IACjB,IAAI,IAAI,CAAC,KAAK,KAAK,oEAAwB,EAAE;QAC3C,2CAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;AACH,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,IAAsB,EAAE,EAAE;IACtD,IAAI,iEAA2B,KAAK,IAAI,EAAE;QACxC,OAAO;KACR;IAED,4DAAuB,CAAC;QACtB,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,IAAuB,EAAE,EAAE;IAGxD,IACE,iEAA2B,KAAK,IAAI;QACpC,0EAAoC,EACpC;QACA,OAAO;KACR;IAED,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;QACxD,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;KACH;IACD,4DAAuB,CAAC;QACtB,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,IAAqB,EAAE,EAAE;IACpD,8DAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAOH,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAoB,EAAE,EAAE;IAGlD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,oBAAoB,KAAK,CAAC,CAAC,EAAE;YAClD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,IAAI,CAAC;SAChD;KACF;IAED,4DAAuB,CAAC;QACtB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAMH,SAAS,MAAM,CAAC,IAAc;IAC5B,IAAI,IAAI,CAAC;IACT,IAAI,IAAI,CAAC,YAAY,EAAE;QACrB,IAAI,GAAG,kBAAkB,IAAI,CAAC,UAAU,EAAE,CAAC;KAC5C;SAAM,IAAI,IAAI,CAAC,MAAM,EAAE;QACtB,IAAI,GAAG,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC;KACrC;SAAM;QACL,IAAI,GAAG,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;KAChC;IACD,+DAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,cAAc,CAAC,IAAc;IAEpC,qDAAe,GAAG,0DAAU,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAIvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzD,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;YACvC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;SACrC;KACF;IACD,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1C,IAAI,CAAC,oBAAoB,GAAG,gDAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;KACtE;IAGD,MAAM,aAAa,GAAG,4DAAwB,CAC5C,IAAI,CAAC,OAAO,CAAC,UAAU,EACvB,2DAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAChE,qDAAe,EACf,0DAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CACrC,CAAC;IACF,MAAM,QAAQ,GAAiB;QAC7B,WAAW,EAAE,4DAAsB;QACnC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;QAC/C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QAEzC,aAAa;QACb,WAAW,EAAE,+DAA2B,CAAC,qDAAe,EAAE,aAAa,CAAC;QAExE,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;IACF,mDAAa,GAAG,mDAAW,CAAC,2DAAY,EAAE,6EAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IAGlE,2DAAqB,GAAG,IAAI,6DAAa,CAAC,mDAAa,CAAC,CAAC;IAGzD,6DAAuB,CAAC,GAAG,EAAE;QAC3B,MAAM,CAAC,KAAK,GAAG,mDAAa,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,4DAAsB,CAAC;QACrB,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;QAChD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;QAClD,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;KAC5C,CAAC,CAAC;AAKL,CAAC;AAID,SAAS,sBAAsB,CAAC,UAAkB;IAChD,IAAI,IAAI,GAAG,mDAAY,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QAEtB,OAAO;KACR;IAID,IAAI,IAAI,CAAC,CAAC;IAEV,iDAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;;;;;;;;;;;;;;;;;;ACjfoC;AACL;AAGjB,SAAS,kBAAkB,CAAC,KAAa;IACtD,MAAM,IAAI,GAAG,kDAAY,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,OAAO,IAAI,CAAC;KACb;IAGD,MAAM,cAAc,GAAG,KAAK,GAAG,wDAAoB,CAAC,qDAAe,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,wDAAkB,CAAC,cAAc,CAAC,CAAC;IACrD,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;AAChE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACfyB;AAE8B;AAGZ;AAGc;AAIvB;AACD;AAEJ;AAGvB,MAAM,OAAO;IAApB;QAEE,UAAK,GAAiB,IAAI,6CAAY,EAAE,CAAC;QACzC,SAAI,GAAuB,IAAI,CAAC;QAIhC,YAAO,GAAG,IAAI,CAAC;QAGf,SAAI,GAAiB,EAAE,CAAC;QACxB,eAAU,GAAiB,EAAE,CAAC;QAG9B,gBAAW,GAAkB,IAAI,CAAC;QAClC,UAAK,GAAgB,IAAI,oDAAW,CAAC;YACnC,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,WAAM,GAAW,IAAI,4CAAM,EAAE,CAAC;QAC9B,aAAQ,GAAa,IAAI,8CAAQ,EAAE,CAAC;QACpC,gBAAW,GAAsB,IAAI,CAAC;QAEtC,eAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;QAClD,qBAAgB,GAAG,IAAI,GAAG,EAA+B,CAAC;QAG1D,cAAS,GAAiB,EAAE,CAAC;QAC7B,mBAAc,GAAG,CAAC,CAAC;QACnB,oBAAe,GAAG,CAAC,CAAC;QAMpB,gBAAW,GAAkB,IAAI,CAAC;QAElC,mBAAc,GAAG,KAAK,CAAC;QACvB,aAAQ,GAAG,EAAE,CAAC;QAGd,YAAO,GAAkB,IAAI,CAAC;QAC9B,gBAAW,GAAa,EAAE,CAAC;QAI3B,sBAAiB,GAAG,CAAC,CAAC,CAAC;QACvB,cAAS,GAAG,CAAC,CAAC;QACd,qBAAgB,GAAG,CAAC,CAAC;QACrB,0BAAqB,GAAG,CAAC,CAAC;QAG1B,gBAAW,GAAG,IAAI,CAAC;QACnB,gBAAW,GAAG,CAAC,CAAC;QAChB,yBAAoB,GAAG,KAAK,CAAC;QAG7B,UAAK,GAAsC,IAAI,CAAC;QAChD,kBAAa,GAAyB,IAAI,CAAC;QAC3C,sBAAiB,GAAwB,EAAE,CAAC;QAC5C,8BAAyB,GAAwB,EAAE,CAAC;QAapD,YAAO,GAAY,wDAAY,CAAC,kEAAoB,CAAE,CAAC;IAoDzD,CAAC;IA/DC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAOD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;IACrC,CAAC;IAMD,KAAK;;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,6CAAY,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,wDAAY,CAAC,kEAAoB,CAAE,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,oDAAW,CAAC;YAC3B,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC1C,wCAAU,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,4CAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,8CAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;QACvD,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAElC,UAAI,CAAC,aAAa,0CAAE,mBAAmB,EAAE,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CACF;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,iEAAe,OAAO,EAAC;AAUvB,IAAI,MAAM,KAAK,SAAS,EAAE;IACxB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;CAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/J8C;AACJ;AAEE;AAEJ;AAEgB;AACP;AACI;AACtB;AAEzB,SAAS,KAAK;IACnB,IAAI,uEAAiC,KAAK,IAAI,EAAE;QAC9C,OAAO;KACR;IAED,IACE,iEAA2B,KAAK,IAAI;QACpC,0EAAoC,EACpC;QACA,6DAAwB,CAAC,cAAc,EAAE;YACvC,OAAO,EAAE,2DAAqB;YAC9B,IAAI,EAAE,sEAA0B;SACjC,CAAC,CAAC;KACJ;IAED,wFAAmD,CAAC,IAAI,CAAC,CAAC;IAE1D,4DAAuB,CAAC;QACtB,IAAI,EAAE,WAAW;QACjB,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;AACL,CAAC;AAEM,SAAS,GAAG;IACjB,IAAI,uEAAiC,KAAK,IAAI,EAAE;QAC9C,OAAO;KACR;IAED,IACE,iEAA2B,KAAK,IAAI;QACpC,0EAAoC,EACpC;QACA,6DAAwB,CAAC,cAAc,EAAE;YACvC,OAAO,EAAE,2DAAqB;YAC9B,IAAI,EAAE,oEAAwB;SAC/B,CAAC,CAAC;KACJ;IAED,4DAAuB,CAAC;QACtB,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;AACL,CAAC;AAEM,SAAS,IAAI,CAAC,UAAwB;IAC3C,MAAM,SAAS,GAAG,+EAA0C,CAAC;IAE7D,IAAI,IAAI,CAAC;IACT,QAAQ,UAAU,CAAC,IAAI,EAAE;QACvB,KAAK,2DAAe,CAAC,CAAC;YACpB,IAAI,GAAG,MAAM,CAAC;YACd,MAAM;SACP;QAED,KAAK,8DAAkB,CAAC,CAAC;YACvB,IAAI,GAAG,SAAS,CAAC;YACjB,MAAM;SACP;QAED,KAAK,gEAAoB,CAAC;QAC1B,KAAK,+DAAmB,CAAC,CAAC;YACxB,IAAI,GAAG,MAAM,CAAC;YACd,MAAM;SACP;QAED,OAAO,CAAC,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,mCAAmC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;SACvE;KACF;IAED,QAAQ,IAAI,EAAE;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS,CAAC,CAAC;YACd,MAAM,IAAI,GAAG,4DAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACnD,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtD,IAAI,SAAS,KAAK,IAAI,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,QAAQ,UAAU,CAAC,MAAM,6BAA6B,CAAC,CAAC;aACzE;YACD,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,UAAU,CAAC,MAAM,uBAAuB,CAAC,CAAC;aACnE;YAGD,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,IAAI,IAAI,KAAK,MAAM,EAAE;gBACnB,MAAM,SAAS,GAAG,6DAAyB,CACzC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAC/B,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,EACxC,SAAS,CAAC,IAAI,CACf,CAAC;gBACF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAC7B,OAAO,GAAG,SAAS,CAAC;oBACpB,MAAM,GAAG,IAAI,CAAC;iBACf;aACF;YAGD,cAAc,CAAC;gBACb,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,kBAAmB;gBAC/C,KAAK,EAAE,UAAU,CAAC,MAAM;gBACxB,SAAS;gBACT,IAAI;gBACJ,MAAM;aACP,CAAC,CAAC;YAEH,IAAI,MAAM,EAAE;gBACV,cAAc,CAAC;oBACb,IAAI,EAAE,QAAQ;oBACd,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oBACjC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,OAAQ;oBAC7B,KAAK,EAAE,UAAU,CAAC,MAAM;iBACzB,CAAC,CAAC;aACJ;YAGD,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,yEAAmC,EAAE;gBAE/D,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC5C,MAAM,QAAQ,GAAG,kEAA4B,CAAC,aAAa,CAAC,CAAC;gBAC7D,cAAc,CAAC;oBACb,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,aAAa;oBACpB,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,kBAAmB;oBAG/C,SAAS,EAAE,wDAAiB,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,CAAC;oBACjD,IAAI,EAAE,wDAAiB,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC;iBACxC,CAAC,CAAC;aACJ;YAED,MAAM;SACP;QAED,KAAK,MAAM,CAAC,CAAC;YACX,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE;gBAClC,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;aACH;YAED,MAAM,IAAI,GAAY;gBACpB,IAAI,EACF,UAAU,CAAC,IAAI,KAAK,gEAAoB;oBACtC,CAAC,CAAC,0DAAc;oBAChB,CAAC,CAAC,yDAAa;gBACnB,KAAK,EAAE,UAAU,CAAC,KAAK;aACxB,CAAC;YAEF,MAAM,IAAI,GAAG,+DAAuB,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC9D,cAAc,CAAC;gBACb,IAAI;gBACJ,IAAI;gBACJ,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,kBAAmB;gBACzC,IAAI;gBACJ,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO;aAC7B,CAAC,CAAC;YAEH,MAAM;SACP;QAED,OAAO,CAAC,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;SAC1D;KACF;IAKD,IAAI,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,kBAAmB,GAAG,CAAC,CAAC;IAC7D,IAAI,eAAe,KAAK,gEAA0B,EAAE;QAClD,eAAe,GAAG,CAAC,CAAC;KACrB;IACD,cAAc,CAAC;QACb,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC;QAC/B,kBAAkB,EAAE,eAAe;KACpC,CAAC,CAAC;AACL,CAAC;AAEM,SAAS,cAAc,CAAC,UAAuC;IACpE,IAAI,iEAA2B,KAAK,IAAI,EAAE;QACxC,6DAAwB,CAAC,cAAc,EAAE;YACvC,OAAO,EAAE,2DAAqB;YAC9B,IAAI,EAAE,uEAA2B;YACjC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;SACvC,CAAC,CAAC;KACJ;SAAM;QACL,4DAAuB,CAAC;YACtB,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;KACJ;AACH,CAAC;AAEM,SAAS,QAAQ;IACtB,IACE,uEAAiC,KAAK,IAAI;QAC1C,qFAA+C,IAAI,CAAC,EACpD;QACA,OAAO;KACR;IAED,IAAI,iEAA2B,KAAK,IAAI,EAAE;QACxC,IAAI,0EAAoC,EAAE;YACxC,6DAAwB,CAAC,cAAc,EAAE;gBACvC,OAAO,EAAE,2DAAqB;gBAC9B,IAAI,EAAE,qEAAyB;aAChC,CAAC,CAAC;SACJ;KACF;SAAM;QACL,4DAAuB,CAAC;YACtB,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;KACJ;AACH,CAAC;AAEM,SAAS,cAAc;IAC5B,IAAI,uEAAiC,KAAK,IAAI,EAAE;QAC9C,OAAO;KACR;IAED,IAAI,iEAA2B,KAAK,IAAI,EAAE;QACxC,IAAI,0EAAoC,EAAE;YACxC,6DAAwB,CAAC,cAAc,EAAE;gBACvC,OAAO,EAAE,2DAAqB;gBAC9B,IAAI,EAAE,+EAAmC;aAC1C,CAAC,CAAC;SACJ;KACF;SAAM;QACL,4DAAuB,CAAC;YACtB,IAAI,EAAE,oBAAoB;YAC1B,cAAc,EAAE,CAAC,sFAAgD;SAClE,CAAC,CAAC;KACJ;AACH,CAAC;AAIM,SAAS,yBAAyB,CACvC,aAA0C;;IAE1C,IAAI,uEAAiC,KAAK,IAAI,EAAE;QAC9C,OAAO;KACR;IAED,QAAQ,aAAa,CAAC,IAAI,EAAE;QAC1B,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC;YACtC,IACE,yGAAmE,CACjE,SAAS,CACV,EACD;gBACA,mFAAuC,0CAAE,UAAU,CAAC,KAAK,CAAC,CAAC;aAC5D;YAED,MAAM;SACP;QAED,KAAK,MAAM,CAAC,CAAC;YACX,KAAK,MAAM,SAAS,IAAI,aAAa,CAAC,IAAI,EAAE;gBAC1C,IACE,yGAAmE,CACjE,SAAS,CACV,EACD;oBACA,mFAAuC,0CAAE,UAAU,CAAC,KAAK,CAAC,CAAC;oBAC3D,OAAO;iBACR;aACF;YAED,MAAM;SACP;QAED,OAAO,CAAC,CAAC;YACP,MAAM;SACP;KACF;AACH,CAAC;;;;;;;;;;;;;;;;;ACzS+B;AAKjB,SAAS,SAAS;IAE/B,IAAI,uEAAiC,KAAK,IAAI,EAAE;QAE9C,OAAO,CACL,iEAA2B,KAAK,IAAI;YACpC,0EAAoC,CACrC,CAAC;KACH;IAGD,OAAO,CACL,2DAAqB;QACrB,uFAAiD;YAC/C,qEAA+B,CAClC,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBqC;AAEQ;AACmB;AACX;AACT;AACY;AACjB;AACP;AACD;AACM;AACS;AACZ;AACe;AACnB;AAI/B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoB,CAAC;AAClD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoB,CAAC;AAClD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAoB,CAAC;AAG9C,SAAS,IAAI;IAClB,aAAa,CAAC,KAAK,EAAE,CAAC;IACtB,aAAa,CAAC,KAAK,EAAE,CAAC;IACtB,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAGzB,aAAa,CAAC,GAAG,CAAC,+CAAe,EAAE,GAAG,EAAE;QACtC,IAAI,uEAAiC,KAAK,IAAI,EAAE;YAC9C,6FAAwD,EAAE,CAAC;SAC5D;aAAM;YACL,8FAAyD,EAAE,CAAC;SAC7D;IACH,CAAC,CAAC,CAAC;IAGH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,6EAAuC,EAAE,CAAC,EAAE,EAAE;QAEhE,aAAa,CAAC,GAAG,CACf,CAAC,GAAG,6CAAa,EACjB,KAAK,CAAC,sEAAgC,CAAC,CAAC,CAAC,CAAC,CAC3C,CAAC;QAEF,aAAa,CAAC,GAAG,CACf,CAAC,GAAG,mDAAmB,EACvB,KAAK,CAAC,sEAAgC,CAAC,CAAC,CAAC,CAAC,CAC3C,CAAC;KACH;IAKD,MAAM,UAAU,GAAG;QACjB,6CAAa;QACb,6CAAa;QACb,6CAAa;QACb,6CAAa;QACb,6CAAa;QACb,6CAAa;KACd,CAAC;IACF,KACE,IAAI,CAAC,GAAG,CAAC,EACT,CAAC,GAAG,8EAAwC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,EACrE,CAAC,EAAE,EACH;QACA,aAAa,CAAC,GAAG,CACf,UAAU,CAAC,CAAC,CAAC,EACb,KAAK,CAAC,uEAAiC,CAAC,CAAC,CAAC,CAAC,CAC5C,CAAC;KACH;IAED,aAAa,CAAC,GAAG,CAAC,6CAAa,EAAE,IAAI,CAAC,CAAC;IACvC,aAAa,CAAC,GAAG,CAAC,+CAAe,EAAE,IAAI,CAAC,CAAC;IACzC,gBAAgB,CAAC,GAAG,CAAC,6CAAa,EAAE,OAAO,CAAC,CAAC;IAC7C,gBAAgB,CAAC,GAAG,CAAC,oDAAoB,EAAE,OAAO,CAAC,CAAC;IAGpD,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAEM,SAAS,OAAO;IACrB,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,OAAO,CAAC,KAA0B;IAIzC,IAAI,iEAA2B,KAAK,6DAAW,EAAE;QAC/C,OAAO;KACR;IAGD,IAAI,yDAAmB,KAAK,IAAI,EAAE;QAChC,OAAO;KACR;IAED,IAAI,KAAK,CAAC,KAAK,KAAK,kDAAkB,EAAE;QAEtC,IAAI,gEAA0B,EAAE;YAC9B,OAAO;SACR;QAGD,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;YACxC,4DAAuB,EAAE,CAAC;YAC1B,OAAO;SACR;QAED,IAAI,uEAAiC,KAAK,IAAI,EAAE;YAE9C,+CAAgB,EAAE,CAAC;YACnB,OAAO;SACR;QAED,IAAI,4DAAsB,EAAE;YAE1B,qDAAW,EAAE,CAAC;YACd,OAAO;SACR;QAGD,0CAAW,EAAE,CAAC;QACd,OAAO;KACR;IAED,IAAI,KAAK,CAAC,KAAK,KAAK,iDAAiB,EAAE;QAGrC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;YACtC,OAAO;SACR;QAED,2DAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO;KACR;IAGD,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QAEvE,IAAI,KAAK,CAAC,KAAK,KAAK,kDAAkB,EAAE;YACtC,wCAAU,EAAE,CAAC;YACb,OAAO;SACR;QAGD,IACE,KAAK,CAAC,KAAK,KAAK,6CAAa;YAC7B,4DAAsB;YAEtB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EACrC;YACA,IAAI,qEAA+B,KAAK,IAAI,EAAE;gBAC5C,4DAAqB,CAAC,8EAAwC,EAAE,CAAC,CAAC;aACnE;YACD,OAAO;SACR;KACF;IAGD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QAEvE,IAAI,KAAK,CAAC,KAAK,KAAK,6CAAa,EAAE;YAGjC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO;SACR;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,6CAAa,EAAE;YAGjC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO;SACR;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,6CAAa,EAAE;YAGjC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO;SACR;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,6CAAa,EAAE;YAGjC,8DAAyB,CAAC,SAAS,CAAC,CAAC;YACrC,OAAO;SACR;QAGD,IAAI,KAAK,CAAC,KAAK,KAAK,6CAAa,EAAE;YAEjC,8DAAyB,EAAE,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,6CAAa,EAAE;YAEjC,qDAAW,EAAE,CAAC;YACd,OAAO;SACR;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,6CAAa,EAAE;YAEjC,gDAAiB,EAAE,CAAC;YACpB,OAAO;SACR;KACF;IAID,IACE,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;QAClC,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,OAAO,EACb;QACA,OAAO;KACR;IAGD,IACE,KAAK,CAAC,KAAK,KAAK,kDAAkB;QAClC,yDAAmB,KAAK,IAAI;QAC5B,yDAAmB,YAAY,gDAAU,EACzC;QACA,MAAM,IAAI,GAAe,yDAAmB,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjB,OAAO;KACR;IAGD,IAAI,uEAAiC,KAAK,IAAI,EAAE;QAC9C,IAAI,KAAK,CAAC,KAAK,KAAK,gDAAgB,EAAE;YACpC,4DAAuB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAC/C,oDAAqB,EAAE,CAAC;YACxB,OAAO;SACR;KACF;SAAM;QACL,QAAQ,KAAK,CAAC,KAAK,EAAE;YACnB,KAAK,gDAAgB,CAAC,CAAC;gBACrB,4DAAuB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC/C,0CAAW,EAAE,CAAC;gBACd,OAAO;aACR;YAED,KAAK,iDAAiB,CAAC,CAAC;gBACtB,6CAAc,EAAE,CAAC;gBACjB,OAAO;aACR;YAED,KAAK,8CAAc,CAAC;YACpB,KAAK,gDAAgB,CAAC,CAAC;gBACrB,IAAI,iEAA2B,KAAK,IAAI,EAAE;oBACxC,0DAA2B,EAAE,CAAC;iBAC/B;qBAAM,IAAI,CAAC,4DAAsB,EAAE;oBAClC,0CAAW,EAAE,CAAC;iBACf;gBACD,OAAO;aACR;YAED,KAAK,wDAAwB,CAAC,CAAC;gBAC7B,+CAAgB,EAAE,CAAC;gBACnB,OAAO;aACR;YAED,KAAK,yDAAyB,CAAC,CAAC;gBAC9B,kDAAmB,EAAE,CAAC;gBACtB,OAAO;aACR;YAED,KAAK,gDAAgB,CAAC,CAAC;gBACrB,8CAAe,EAAE,CAAC;gBAClB,OAAO;aACR;YAED,KAAK,+CAAe,CAAC,CAAC;gBACpB,iDAAkB,EAAE,CAAC;gBACrB,OAAO;aACR;YAED,OAAO,CAAC,CAAC;gBACP,MAAM;aACP;SACF;KACF;IAGD,MAAM,EAAE,kBAAkB,EAAE,GAAG,oEAA8B,CAAC;IAC9D,MAAM,EAAE,cAAc,EAAE,GAAG,sDAAgB,CAAC;IAC5C,MAAM,mCAAmC,GAEvC,CAAC,CAAC,iEAA2B,IAAI,kBAAkB,KAAK,cAAc,CAAC;QAEvE,CAAC,uEAAiC,KAAK,IAAI;YACzC,CAAC,iEAA2B,KAAK,IAAI;gBACnC,0EAAoC,CAAC,CAAC,CAAC;IAC7C,MAAM,gBAAgB,GACpB,uEAAiC,KAAK,IAAI;QACxC,CAAC,CAAC,+DAAyB;QAC3B,CAAC,CAAC,+EAAyC,CAAC;IAChD,IAAI,CAAC,mCAAmC,EAAE;QACxC,OAAO;KACR;IAED,IAAI,cAAc,CAAC;IACnB,IACE,gBAAgB,CAAC,UAAU;QAC3B,+DAA2B,CAAC,CAAC,EAAE,qDAAe,CAAC,EAC/C;QACA,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACjD;IACD,IAAI,CAAC,yDAAqB,CAAC,gBAAgB,CAAC,UAAU,EAAE,qDAAe,CAAC,EAAE;QACxE,cAAc,GAAG,cAAc,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACtE;IACD,cAAc,GAAG,cAAc,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClE,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,cAAc,EAAE,CAAC;KAClB;AACH,CAAC;AAED,SAAS,KAAK,CAAC,KAAwB;IACrC,IAAI,KAAK,CAAC,KAAK,KAAK,iDAAiB,EAAE;QAErC,2DAAgB,CAAC,KAAK,CAAC,CAAC;KACzB;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,IAEE,iEAA2B,KAAK,IAAI;QAEpC,CAAC,0EAAoC,EACrC;QACA,OAAO;KACR;IAGD,6DAAwB,CAAC,cAAc,EAAE;QACvC,OAAO,EAAE,2DAAqB;QAC9B,IAAI,EAAE,kEAAsB;QAC5B,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED,SAAS,IAAI;IACX,aAAa,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,OAAO;IACd,aAAa,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAID,SAAS,aAAa,CAAC,UAAU,GAAG,IAAI;IACtC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,OAAO;KACR;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,2DAAe,CAAC,CAAC,CAAC,8DAAkB,CAAC;IAE/D,IAAI,uEAAiC,KAAK,IAAI,EAAE;QAC9C,6DAAwB,CAAC,QAAQ,EAAE;YACjC,OAAO,EAAE,2DAAqB;YAC9B,IAAI;YACJ,MAAM;SACP,CAAC,CAAC;KACJ;SAAM;QACL,gDAAiB,CAAC;YAChB,IAAI;YACJ,MAAM;SACP,CAAC,CAAC;KACJ;IACD,gEAAiC,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,WAAW,GACf,uEAAiC,KAAK,IAAI;QACxC,CAAC,CAAC,qEAA+B;QACjC,CAAC,CAAC,uGAAkE,CAAC;IACzE,MAAM,IAAI,GACR,uEAAiC,KAAK,IAAI;QACxC,CAAC,CAAC,qEAA+B,CAAC,WAAW,CAAC;QAC9C,CAAC,CAAC,qFAA+C,CAAC,WAAW,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,MAAM,GAAG,GAAG,+BAA+B,YAAY,oBAAoB,IAAI,GAAG,CAAC;IACnF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEpC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE;QACxC,OAAO,IAAI,CAAC;KACb;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAE5B,OAAO,wDAAoB,CAAC,qDAAe,CAAC,GAAG,CAAC,CAAC;KAClD;IACD,MAAM,IAAI,GAAG,mDAAY,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QACtB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,YAAY,EAAE;QACnC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,OAAmB,EAAE,EAAE,CAAC,GAAG,EAAE;IAC1C,OAAO,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;ACjawB;AAEM;AAEzB,MAAM,SAAS,GAAG,CAAC,IAAgB,EAAQ,EAAE;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAqC,CAAC;IACjE,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,KAAK,CAAC,SAAS,EAAE,CAAC;KACnB;AACH,CAAC,CAAC;AAoBK,SAAS,OAAO,CACrB,IAA2B,EAC3B,MAAmB,EACnB,WAAW,GAAG,KAAK,EACnB,OAAgB,yDAAmB;IAInC,IAAI,CAAC,IAAI,EAAE,CAAC;IAEZ,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;QACvB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACnB;IAED,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE;QACjC,IAAI,MAAM,CAAC,CAAC,KAAK,SAAS,EAAE;YAC1B,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAClB;QACD,IAAI,MAAM,CAAC,CAAC,KAAK,SAAS,EAAE;YAC1B,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAClB;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;YAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC9B;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;YAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC9B;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC3B;QACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;YACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAChC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;YAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC9B;QACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;YACjC,MAAM,CAAC,QAAQ,EAAE,CAAC;SACnB;QAMD,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACtB;KACF;SAAM;QAGL,MAAM,MAAM,GAAQ;YAClB,IAAI;YACJ,QAAQ,EAAE,GAAG,EAAE;gBAGb,IACE,IAAI,KAAK,SAAS;oBAClB,mDAAa,KAAK,IAAI;oBACtB,mDAAa,KAAK,SAAS,EAC3B;oBACA,OAAO;iBACR;gBAED,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;oBACvB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;iBACnB;gBAGD,IAAI,WAAW,EAAE;oBACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;iBACtB;gBAED,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;oBACjC,MAAM,CAAC,QAAQ,EAAE,CAAC;iBACnB;YACH,CAAC;SACF,CAAC;QAMF,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;YACjC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;SACnC;QACD,IAAI,MAAM,CAAC,CAAC,KAAK,SAAS,EAAE;YAC1B,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;SACrB;QACD,IAAI,MAAM,CAAC,CAAC,KAAK,SAAS,EAAE;YAC1B,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;SACrB;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;YAChC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;SACjC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;YAChC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;SACjC;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;YAC9B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;YAC7B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;SAC9B;QACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;YACjC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;SACnC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;YAChC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;SACjC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;YAC/B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;SAC/B;QAKD,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACvB;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,oDAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;KAC7C;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACxJsC;AACO;AAGwB;AAEtC;AAEzB,SAAS,sBAAsB,CACpC,OAAgB,EAChB,SAAoB,EACpB,IAAc;IAEd,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAC/B,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,OAAO;KACR;IAGD,IACE,SAAS,CAAC,IAAI,KAAK,6DAAe;QAClC,aAAa,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,SAAS,CAAC,EAC5E;QACA,gDAAkB,CAChB,yDAAyD,CAC1D,CAAC;QACF,OAAO;KACR;IAGD,IACE,CAAC,CAAC,SAAS,CAAC,QAAQ,KAAK,qEAA+B,CAAC;QACzD,aAAa,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CACjC,0DAAa,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CACzD,EACD;QACA,OAAO;KACR;IAGD,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC;QACtD,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,cAAc,GAAG,IAAI,KAAK,6DAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5E,OAAO,GAAG,cAAc,IAAI,cAAc,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;QAChC,gDAAkB,CAAC,gCAAgC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KAC1E;SAAM;QACL,gDAAkB,CAChB,uCAAuC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpE,CAAC;KACH;AACH,CAAC;AAEM,SAAS,6BAA6B,CAC3C,IAAc,EACd,KAAgB;IAEhB,MAAM,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CACtD,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,CACtB,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAC/B,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,UAAU,KAAK,UAAU,IAAI,KAAK,KAAK,KAAK,CACtE,CACJ,CAAC;IAEF,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE;QACvC,OAAO,KAAK,CAAC,sBAAsB,CAAC;KACrC;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAEM,SAAS,oBAAoB,CAClC,IAAc,EACd,KAAgB;IAEhB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;QACnC,MAAM,aAAa,GAAG,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjE,MAAM,CAAC,kBAAkB,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9C,IACE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,KAAK,kBAAkB,CAAC,EACtE;YACA,OAAO,kBAAkB,CAAC;SAC3B;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,SAAS,eAAe,CAC7B,IAAc,EACd,KAAgB;IAEhB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;QACnC,MAAM,aAAa,GAAG,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,EAAE;YAC5D,OAAO,aAAa,CAAC;SACtB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACnGqC;AACW;AACI;AACC;AACtB;AAIhC,SAAS,GAAG,CAAC,KAAa,EAAE,GAAY;;IAGtC,IAAI,GAAG,IAAI,2DAAqB,EAAE;QAChC,OAAO,wEAA4B,CAAC,KAAK,CAAC,CAAC,IAAI,mCAAI,EAAE,CAAC;KACvD;IAGD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,MAAM,eAAe,GAAG,kEAA4B,CAAC,KAAK,CAAC,CAAC;IAC5D,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE;QACxC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,OAAO,IAAI,WAAW,UAAU,CAAC,IAAI,cAAc,UAAU,CAAC,IAAI,QAAQ,CAAC;SAC5E;KACF;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACjD;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAMM,SAAS,GAAG,CAAC,KAAa,EAAE,IAAY;IAC7C,MAAM,OAAO,GAAG,kEAA4B,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;IACzD,sDAAgB,GAAG,IAAI,CAAC;IAGxB,IAAI,CAAC,4DAAsB,IAAI,IAAI,KAAK,OAAO,EAAE;QAC/C,6DAAwB,CAAC,MAAM,EAAE;YAC/B,OAAO,EAAE,2DAAqB;YAC9B,KAAK;YACL,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;KACJ;IAED,4DAAuB,CAAC;QACtB,IAAI,EAAE,UAAU;QAChB,KAAK;QACL,IAAI;KACL,CAAC,CAAC;IAGH,IAAI,CAAC,2DAAqB,EAAE;QAC1B,OAAO;KACR;IAED,MAAM,IAAI,GAAG,4DAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC1B,CAAC;AAEM,SAAS,MAAM,CAAC,IAAgB,EAAE,IAAY;IAEnD,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACxD,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7B,yDAAmB,GAAG,IAAI,CAAC;KAC5B;IAGD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,IAAI,UAAU,KAAK,UAAU,EAAE;QAC7B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACvC,mEAA6B,EAAE,CAAC;KACjC;AACH,CAAC;AAGM,SAAS,IAAI,CAAC,IAAgB;IACnC,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAGxD,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;IACnB,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/D,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAGtC,IAAI,IAAI,GAAG,GAAG,EAAE;QAEd,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;KAC1C;IAGD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAGzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,WAAW,EAAE;QACvC,IAAI,SAAS,KAAK,EAAE,EAAE;YACpB,SAAS,IAAI,UAAU,CAAC;SACzB;QACD,SAAS,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;KACzC;IACD,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEnC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAEM,SAAS,eAAe,CAAC,IAAgB;IAE9C,IAAI,4DAAsB,EAAE;QAC1B,OAAO;KACR;IAGD,IACE,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,6DAAe;QACnC,CAAC,4DAA6B,CAAC,qDAAe,CAAC,EAC/C;QACA,OAAO;KACR;IAMD,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,KAAK,KAAK,cAAc,EAAE;QACnC,OAAO;KACR;IAED,IAAI,CAAC,IAAI,CAAC,CAAC;IAEX,yDAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IACvC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACxD,eAAe,CAAC,OAAO,CACrB,sBAAsB,IAAI,CAAC,WAAW,8BAA8B,IAAI,KAAK,CAC9E,CAAC;IAEF,CAAC,CAAC,YAAY,IAAI,CAAC,WAAW,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;QACjE,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC3B,IACE,QAAQ,CAAC,KAAK,KAAK,kDAAkB;YACrC,QAAQ,CAAC,KAAK,KAAK,kDAAkB,EACrC;YACA,OAAO;SACR;QAED,yDAAmB,GAAG,IAAI,CAAC;QAE3B,IAAI,OAAO,CAAC;QACZ,IAAI,QAAQ,CAAC,KAAK,KAAK,kDAAkB,EAAE;YAEzC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SACvC;aAAM,IAAI,QAAQ,CAAC,KAAK,KAAK,kDAAkB,EAAE;YAEhD,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,WAAW,QAAQ,CAAC,CAAC;YACxD,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;aACxE;YACD,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YACxB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,CAAC,WAAW,mCAAmC,CAClF,CAAC;aACH;YAID,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAEvC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAChC;QAGD,IAAI,4DAAsB,EAAE;YAC1B,4DAAsB,GAAG,KAAK,CAAC;YAC/B,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SAC9B;QAED,MAAM,IAAI,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,YAAY,IAAI,CAAC,WAAW,QAAQ,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;QAC1D,yDAAmB,GAAG,IAAI,CAAC;QAC3B,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,YAAY,IAAI,CAAC,WAAW,QAAQ,CAAC,CAAC,KAAK,CAAC,SAAS,qBAAqB;QAG1E,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAIH,UAAU,CAAC,GAAG,EAAE;QACd,CAAC,CAAC,YAAY,IAAI,CAAC,WAAW,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAClD,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;AAGM,SAAS,oBAAoB;IAGlC,KAAK,MAAM,IAAI,IAAI,kDAAY,EAAE;QAC/B,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IACD,KAAK,MAAM,SAAS,IAAI,wDAAkB,EAAE;QAC1C,SAAS,CAAC,gBAAgB,EAAE,CAAC;KAC9B;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC,SAAS,CAAC;AACrB,CAAC;;;;;;;;;;;;;;;;;;ACrO+B;AAEzB,SAAS,GAAG;IACjB,IAAI,CAAC,2DAAqB,EAAE;QAC1B,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;KACH;IAED,MAAM,EAAE,cAAc,EAAE,GAAG,sDAAgB,CAAC;IAC5C,MAAM,OAAO,GAAG,kEAA4B,CAAC,cAAc,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CACb,4CAA4C,cAAc,EAAE,CAC7D,CAAC;KACH;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAEM,SAAS,oBAAoB;IAClC,IAAI,CAAC,2DAAqB,EAAE;QAC1B,OAAO;KACR;IAED,MAAM,EAAE,cAAc,EAAE,GAAG,sDAAgB,CAAC;IAC5C,MAAM,OAAO,GAAG,kEAA4B,CAAC,cAAc,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CACb,4CAA4C,cAAc,EAAE,CAC7D,CAAC;KACH;IACD,OAAO,CAAC,oBAAoB,EAAE,CAAC;AACjC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BgC;AAC+C;AACtB;AACF;AACV;AACA;AACwB;AAC1B;AACQ;AACQ;AAChB;AACF;AACI;AACI;AACF;AACF;AACU;AACV;AACN;AAKzB,MAAM,aAAa;IAGhC,YAAY,KAA2B;QAF/B,gBAAW,GAAuB,IAAI,CAAC;QAG7C,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAGD,iBAAiB,CAAC,KAA2B;QAE3C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,MAAM,aAAa,GAAkB,cAAc;aAChD,MAAM,CAAC,qBAAqB,CAAC;aAC7B,MAAM,CAAC,oBAAoB,CAAC;aAC5B,MAAM,CAAC,eAAe,CAAC;aACvB,MAAM,CAAC,cAAc,CAAC;aACtB,MAAM,CAAC,aAAa,CAAC,CAAC;QAEzB,IAAI,CAAC,WAAW,GAAG,sDAAY,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACxD,CAAC;IAED,mBAAmB;QACjB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;IACH,CAAC;CACF;AAOD,SAAS,GAAG,CAAI,CAAqB,EAAE,CAAc;IACnD,OAAO;QACL,MAAM,EAAE,CAAC;QACT,QAAQ,EAAE,CAAC;KACZ,CAAC;AACJ,CAAC;AAGD,SAAS,KAAK,CAAI,CAAyB,EAAE,CAAc;IAGzD,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAE,EAAE,CAChC,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAClE,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC;AAID,SAAS,YAAY,CAAI,CAAqB,EAAE,CAAc;IAC5D,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAE,EAAE,CAChC,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,CAAC;KACZ,CAAC;AACJ,CAAC;AAOD,MAAM,cAAc,GAAkB;IAEpC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,qEAAkC,CAAC;IAG1D,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,gEAA4B,CAAC;CAC9D,CAAC;AAEF,MAAM,qBAAqB,GAAkB;IAE3C,KAAK,CACH,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO;QACpB,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU;KAC3B,CAAC,EACF,6DAA0B,CAC3B;IACD,KAAK,CACH,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAChC,2EAAwC,CACzC;IACD,KAAK,CACH,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ;KAC3B,CAAC,EACF,wEAAqC,CACtC;IACD,KAAK,CACH,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB,EAChC,gFAA6C,CAC9C;IACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,mEAAgC,CAAC;IAC5D,KAAK,CACH,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa;KACrC,CAAC,EACF,kFAA+C,CAChD;IAGD,KAAK,CACH,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI;QAClB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ;QAC1B,4BAA4B,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B;KACnE,CAAC,EACF,qEAAiC,CAClC;IACD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,WAAW,EAAE,CAAC,CAAC,YAAa,CAAC,KAAK,CAAC,WAAW;QAC9C,kBAAkB,EAAE,CAAC,CAAC,YAAa,CAAC,KAAK,CAAC,kBAAkB;QAC5D,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB;QAC9C,kBAAkB,EAAE,CAAC,CAAC,YAAa,CAAC,KAAK,CAAC,kBAAkB;QAC5D,QAAQ,EAAE,CAAC,CAAC,YAAa,CAAC,KAAK,CAAC,QAAQ;QACxC,gBAAgB,EAAE,CAAC,CAAC,YAAa,CAAC,KAAK,CAAC,gBAAgB;QACxD,4BAA4B,EAC1B,CAAC,CAAC,YAAa,CAAC,KAAK,CAAC,4BAA4B;KACrD,CAAC,EACF,iEAA6B,CAC9B;IACD,GAAG,CACD,CAAC,CAAC,EAAE,EAAE;QACJ,IAAI,CAAC,CAAC,YAAY,KAAK,IAAI,EAAE;YAC3B,OAAO;gBACL,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI;gBAC/B,gBAAgB,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,gBAAgB;gBACvD,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK;gBAC3B,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ;gBACvC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO;gBACpC,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU;gBAC1C,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU;aAC1C,CAAC;SACH;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,EAED,+DAA2B,CAC5B;IAGD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,wDAAoB,CAAC;IAKzC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,iEAA8B,CAAC;IAI3D,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,gEAA6B,CAAC;IACpD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,wEAAqC,CAAC;IACpE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,+DAA4B,CAAC;IAElD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,qEAAkC,CAAC;IAC9D,KAAK,CACH,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAC5B,8EAA2C,CAC5C;IAID,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,mEAAgC,CAAC;IAG7D,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,2DAAwB,CAAC;IAG/C,KAAK,CACH,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAC3E,uEAAoC,CACrC;IAGD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB,EAAE,mEAAgC,CAAC;CAC1E,CAAC;AAEF,MAAM,oBAAoB,GAAkB;IAE1C,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,yDAAyB,CAAC,CAAC,CAAC,EACnC,gEAAgC,CACjC;IAGD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,8DAA8B,CAAC,CAAC,CAAC,EACxC,qEAAqC,CACtC;IAGD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,wEAAwC,CAAC,CAAC,CAAC,EAClD,+EAA+C,CAChD;IAGD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,WAAC,cAAC,CAAC,YAAa,CAAC,KAAK,CAAC,CAAC,CAAC,YAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,0CAAE,IAAI,KACpE,8DAA8B,CAC/B;IAGD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO;QACnC,kBAAkB,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB;KAC1D,CAAC,EACF,6DAA6B,CAC9B;IAGD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,oEAAoC,CAAC,CAAC,CAAC,EAC9C,2EAA2C,CAC5C;IAGD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,OAAO,EAAE,kEAA+B,CAAC,CAAC,CAAC;QAC3C,kBAAkB,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB;KAC1D,CAAC,EACF,kEAA+B,CAChC;IAGD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,cAAc,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO;QACrC,cAAc,EAAE,CAAC,CAAC,YAAa,CAAC,OAAO;KACxC,CAAC,EACF,gFAA6C,CAC9C;IAGD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,sBAAsB;QACrD,kBAAkB,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB;QACzD,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO;QAChC,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU;KAC3C,CAAC,EACF,8DAA0B,CAC3B;CACF,CAAC;AAEF,MAAM,eAAe,GAAkB;IAErC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,kEAA8B,CAAC;IAGxE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,kEAA8B,CAAC;IAC7E,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,WAAC,cAAC,CAAC,MAAM,CAAC,MAAM,0CAAE,MAAM,KAC9B,oEAAgC,CACjC;IACD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,WAAC,cAAC,CAAC,MAAM,CAAC,MAAM,0CAAE,QAAQ,KAChC,sEAAkC,CACnC;IACD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE;;QAAC,QAAC;YACN,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,0CAAE,MAAM;YAC/B,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB,CAAC;KAAA,EACF,0EAAsC,CACvC;IAGD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,wEAAqC,CAAC,CAAC,CAAC,EAC/C,+EAA4C,CAC7C;IACD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,+EAA4C,CAAC,CAAC,CAAC,EACtD,sFAAmD,CACpD;IACD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,0EAAuC,CAAC,CAAC,CAAC,EACjD,iFAA8C,CAC/C;IACD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,8EAA2C,CAAC,CAAC,CAAC,EACrD,qFAAkD,CACnD;IACD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;QAClD,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM;KAC1D,CAAC,EACF,mEAAgC,CACjC;IACD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;QACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ;QAC9D,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;KACvC,CAAC,EACF,6EAA0C,CAC3C;IACD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,WAAC,cAAC,CAAC,MAAM,CAAC,YAAY,0CAAE,MAAM,CAAC,MAAM,KAC3C,yEAAsC,CACvC;IACD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,4EAAyC,CAAC,CAAC,CAAC,EACnD,mFAAgD,CACjD;IACD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,WAAC,cAAC,CAAC,MAAM,CAAC,YAAY,0CAAE,cAAc,KAC5C,qFAAkD,CACnD;IAKD,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,8DAA0B,CAAC;IAGhE,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;QACvB,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;QAC/B,kBAAkB,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO;KAC/C,CAAC,EACF,+DAA2B,CAC5B;IACD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE;;QAAC,QAAC;YACN,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;YACvB,aAAa,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,0CAAE,OAAO;YACvC,iBAAiB,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,0CAAE,iBAAiB;SACtD,CAAC;KAAA,EACF,qEAAiC,CAClC;IAGD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,4DAAsB,EAChE,8EAA0C,CAC3C;IAGD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,EACnE,6EAAyC,CAC1C;IAGD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE;;QAAC,QAAC;YACN,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;YAClD,iBAAiB,EAAE,OAAC,CAAC,MAAM,CAAC,YAAY,0CAAE,iBAAiB;SAC5D,CAAC;KAAA,EACF,uEAAoC,CACrC;IAGD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,QAAQ,EAAE,CAAC,CAAC,QAAQ;KACrB,CAAC,EACF,wEAAqC,CACtC;CACF,CAAC;AAEF,MAAM,cAAc,GAAG;IAErB,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,sEAAkC,CAAC,CAAC,CAAC,EAC5C,6EAAyC,CAC1C;IACD,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,yDAAqB,CAAC;IAGrD,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,uDAAmB,CAAC;IAGjD,YAAY,CACV,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;KACrB,CAAC,EACF,sEAAkC,CACnC;CACF,CAAC;AAGF,MAAM,aAAa,GAAG;IAEpB,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,sEAAmC,CAAC;IAI3D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,oEAAgC,CAAC;CAC/D,CAAC;;;;;;;;;;;;;;;;;;AC/akC;AAcrB,SAAS,YAAY,CAClC,KAAkB,EAClB,aAAwC;IAExC,IAAI,YAAe,CAAC;IAEpB,SAAS,YAAY;QACnB,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnC,IAAI,YAAY,KAAK,SAAS,EAAE;YAE9B,OAAO;SACR;QAGD,aAAa;aACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACZ,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,SAAS,KAAK,SAAS,EAAE;gBAE3B,OAAO,KAAK,CAAC;aACd;YACD,IAAI,YAAY,KAAK,SAAS,EAAE;gBAE9B,OAAO,IAAI,CAAC;aACb;YAED,OAAO,CAAC,sDAAK,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC;aACD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAEb,MAAM,YAAY,GAChB,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAE,EAAE,YAAY,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEL,YAAY,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAClD,YAAY,EAAE,CAAC;IACf,OAAO,WAAW,CAAC;AACrB,CAAC;;;;;;;;;;;;;;;;;;ACtDmC;AAE7B,SAAS,kBAAkB,CAChC,KAAY,EACZ,aAAgC;;IAGhC,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,YAAY,KAAK,IAAI,EAAE;QACtE,OAAO;KACR;IAGD,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM;QACxC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;QACtB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;IACnC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM;QAC5C,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO;QAC9B,CAAC,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;IAC5C,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,cAAc,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE;QAClD,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,UAAU,CAAC,CAAC;KAC3D;IAED,yDAAmB;QAEjB,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC;YACzC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;YAEtE,iBAAiB,IAAI,CAAC;YAEtB,2EAA8B,0CAAE,UAAU,EAAE,MAAK,IAAI;YAErD,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;gBACjC,aAAa,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI,CAAC;YAE7C,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;gBACjC,aAAa,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC;AAClD,CAAC;AAEM,SAAS,mBAAmB,CACjC,CAAQ,EACR,aAAgC;IAGhC,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,YAAY,KAAK,IAAI,EAAE;QACtE,OAAO;KACR;IAGD,yDAAmB,GAAG,KAAK,CAAC;AAC9B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnDmC;AAEU;AACF;AACe;AACA;AACvB;AAGY;AAEhD,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAyB;IAC3D,CAAC,oEAAwB,EAAE,EAAE,CAAC;IAC9B,CAAC,6DAAiB,EAAE,EAAE,CAAC;IACvB,CAAC,+DAAmB,EAAE,UAAU,CAAC;IACjC,CAAC,mEAAuB,EAAE,UAAU,CAAC;CACtC,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAyB;IAC3D,CAAC,oEAAwB,EAAE,EAAE,CAAC;IAC9B,CAAC,6DAAiB,EAAE,IAAI,CAAC;IACzB,CAAC,+DAAmB,EAAE,MAAM,CAAC;IAC7B,CAAC,mEAAuB,EAAE,UAAU,CAAC;CACtC,CAAC,CAAC;AAEI,SAAS,4BAA4B,CAC1C,UAAqC,EACrC,kBAAyD;IAEzD,IAAI,CAAC,iEAA6B,CAAC,qDAAe,CAAC,EAAE;QACnD,OAAO;KACR;IAGD,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QAClC,IACE,kBAAkB,KAAK,SAAS;YAChC,SAAS,KAAK,kBAAkB,CAAC,CAAC,CAAC,EACnC;YACA,OAAO;SACR;QAED,MAAM,IAAI,GAAG,2DAAqB,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,2DAAuB,CAAC,qDAAe,CAAC,CAAC;QAC5D,IAAI,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC/B,MAAM,YAAY,GAAG,UAAU;gBAC7B,CAAC,CAAC,oBAAoB;gBACtB,CAAC,CAAC,oBAAoB,CAAC;YACzB,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC3B,MAAM,IAAI,KAAK,CACb,+DAA+D,SAAS,EAAE,CAC3E,CAAC;aACH;YACD,IAAI,GAAG,SAAS,CAAC;SAClB;QAED,qEAA+B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEjD,yDACS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,CAAC;aACvC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,cAAc,CAAC,KAAuC;IACpE,YAAY,CACV,KAAK,EACL,CAAC,CAAC,EAAE,EAAE,CAAC,kEAA4B,CAAC,CAAC,CAA+B,EACpE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CACzC,CAAC;IAEF,mEAA6B,EAAE,CAAC;AAClC,CAAC;AAEM,SAAS,sBAAsB,CACpC,aAA+C;IAE/C,YAAY,CACV,aAAa,EACb,CAAC,CAAC,EAAE,EAAE;QACJ,MAAM,IAAI,GAAG,2DAAqB,CAAC,CAAC,CAAC,CAAC;QACtC,OAAO,wEAAkC,CACvC,IAAI,CAC0B,CAAC;IACnC,CAAC,EACD,CAAC,IAAI,EAAE,EAAE;QACP,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;SACvC;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC,CACF,CAAC;IAEF,mEAA6B,EAAE,CAAC;AAClC,CAAC;AAEM,SAAS,mBAAmB,CACjC,UAA4C,EAC5C,kBAAgE;IAEhE,YAAY,CACV,UAAU,EACV,CAAC,CAAC,EAAE,EAAE;QACJ,MAAM,IAAI,GAAG,2DAAqB,CAAC,CAAC,CAAC,CAAC;QACtC,OAAO,qEAA+B,CACpC,IAAI,CAC0B,CAAC;IACnC,CAAC,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CACrC,CAAC;IAEF,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9B,IACE,kBAAkB,KAAK,SAAS;YAChC,CAAC,sDAAK,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,EACpC;YACA,MAAM,IAAI,GAAG,2DAAqB,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,SAAS,GAAG,qEAA+B,CAAC,IAAI,CAAE,CAAC;YACzD,SAAS,CAAC,6BAA6B,EAAE,CAAC;SAC3C;IACH,CAAC,CAAC,CAAC;IAEH,mEAA6B,EAAE,CAAC;AAClC,CAAC;AAEM,SAAS,aAAa,CAC3B,IAAuB,EACvB,YAA2C;IAE3C,IAAI,YAAY,KAAK,SAAS,EAAE;QAC9B,OAAO;KACR;IACD,YAAY,CACV,CAAC,IAAI,CAAC,EACN,GAAG,EAAE,CAAC,qEAA+B,CAAC,MAAM,CAA+B,EAC3E,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAC/B,CAAC;IAEF,mEAA6B,EAAE,CAAC;AAClC,CAAC;AAEM,SAAS,sBAAsB;IACpC,MAAM,UAAU,GAAW,mDAAe,CAAC,qDAAe,CAAC,CAAC;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kEAA4B,EAAE,CAAC,EAAE,EAAE;QACrD,6DAAiB,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;KACnC;AACH,CAAC;AAED,SAAS,YAAY,CACnB,WAA6C,EAC7C,eAA+C,EAC/C,iBAAwD;IAExD,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,kDAAY,CAAC,KAAK,CAAC,CAAC;IAEvD,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAC5B,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAoB;aACrD,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;aACtC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,6DAAe,CAAC;aACrD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAErC,IAAI,OAAO,GAAG,iBAAiB,EAAE,CAAC;QAGlC,OAAO;aACJ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aACtC,GAAG,CAAC,OAAO,CAAC;aACZ,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;;YAChB,MAAM,SAAS,GACb,+DAAa,0CAAE,QAAQ,GAAG,YAAY,0CAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjE,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,QAAQ,KAAK,MAAM,EAAE;gBAC5D,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;iBAAM;gBACL,IAAI,CAAC,2BAA2B,EAAE,CAAC;aACpC;QACH,CAAC,CAAC,CAAC;QAGL,UAAU;aACP,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aACnC,GAAG,CAAC,OAAO,CAAC;aACZ,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAGjD,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAChC,OAAO,GAAG,iBAAiB,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE;gBACxC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;aACrE;YAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,MAAgC,CAAC;YACpE,IAAI,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5C,OAAO,cAAc,GAAG,GAAG,EAAE;gBAC3B,WAAW,CAAC,MAAM,EAAE,CAAC;gBACrB,cAAc,IAAI,CAAC,CAAC;aACrB;YACD,OAAO,cAAc,GAAG,GAAG,EAAE;gBAC3B,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACvB,cAAc,IAAI,CAAC,CAAC;aACrB;QACH,CAAC,CAAC,CAAC;QAGH,OAAO,GAAG,iBAAiB,EAAE,CAAC;QAC9B,IAAI,CAAC,sDAAK,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;SACrE;IACH,CAAC,CAAC,CAAC;AACL,CAAC;;;;;;;;;;;;;;;;;;;;;;;AClNyD;AACtB;AACM;AAKjB;AAElB,SAAS,oBAAoB,CAAC,MAAc;IAEjD,KAAK,IAAI,CAAC,GAAG,sEAAgC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAC9D,IAAI,yDAAmB,IAAI,CAAC,EAAE;YAE5B,MAAM,OAAO,GAAG,IAAI,gDAAU,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,qDAAe,CAAC,CAAC;YAC/D,uDAAiB,CAAC,OAAO,CAAC,CAAC;SAC5B;QACD,MAAM,YAAY,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC/C,oEAA8B,CAAC,YAAY,CAAC,CAAC;KAC9C;AACH,CAAC;AAEM,SAAS,sBAAsB,CAAC,MAAc;IAEnD,OAAO,sEAAgC,GAAG,MAAM,EAAE;QAGhD,kDAAY,CAAC,sEAAgC,GAAG,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;QAExE,MAAM,WAAW,GAAG,mEAA6B,EAAG,CAAC;QACrD,WAAW,EAAE,CAAC;KACf;AACH,CAAC;AAEM,SAAS,0BAA0B,CACxC,IAGC,EACD,YAKa;IAEb,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE;QAElE,OAAO;KACR;IAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAC5B,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE;YACpC,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;SACH;QAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,iBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/D,IAAI,YAAY,CAAC,iBAAkB,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;gBACpD,iBAAiB,CAAC,CAAC,CAAC,CAAC;aACtB;SACF;QAED,OAAO;KACR;IAGD,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAkB,CAAC,MAAM,CAAC;IACrD,MAAM,cAAc,GAAG,YAAY,CAAC,iBAAkB,CAAC,MAAM,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;QAClC,IAAI,IAAI,CAAC,iBAAkB,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,iBAAkB,CAAC,CAAC,CAAC,EAAE;YACrE,iBAAiB,CAAC,CAAC,CAAC,CAAC;SACtB;KACF;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAE3C,MAAM,aAAa,GAAoC,EAAE,CAAC;IAG1D,SAAS,mBAAmB,CAAI,CAAqB;QACnD,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,KAAK,IAAI,KAAK,CAAC,YAAa,CAAC,IAAI,CAAC,MAAM,EAAE;gBAG5C,OAAO,SAAS,CAAC;aAClB;YAED,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC;IAGD,SAAS,GAAG,CAAI,CAAyB,EAAE,CAAc;QACvD,MAAM,YAAY,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,YAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,aAAa,CAAC,IAAI,CAAC;YACjB,MAAM,EAAE,mBAAmB,CAAC,YAAY,CAAC;YACzC,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;IAGD,SAAS,YAAY,CAAI,CAAqB,EAAE,CAAc;QAC5D,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IAGD,GAAG,CACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;QACpC,QAAQ,EAAE,CAAC,CAAC,QAAQ;KACrB,CAAC,EACF,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAC1B,CAAC;IAGF,YAAY,CACV,CAAC,CAAC,EAAE,EAAE;QACJ,MAAM,IAAI,GAAG,CAAC,CAAC,YAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GACV,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAC3C,CAAC,CAAC,CAAC,CAAC,YAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACvD,CAAC,CAAC,IAAI,CAAC;QACX,OAAO;YACL,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,gBAAgB,IAAI,CAAC;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,IAAI,CAAC,eAAe;SACpC,CAAC;IACJ,CAAC,EACD,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAC9B,CAAC;IAGF,GAAG,CACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM;KACtC,CAAC,EACF,GAAG,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAChC,CAAC;IAGF,GAAG,CACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACN,yBAAyB,EAAE,CAAC,CAAC,sBAAsB,CAAC,MAAM;QAC1D,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM;QACrC,uBAAuB,EAAE,CAAC,CAAC,uBAAuB,CAAC,MAAM;QACzD,oBAAoB,EAAE,CAAC,CAAC,iBAAiB,CAAC,MAAM;KACjD,CAAC,EACF,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CACxB,CAAC;IAGF,YAAY,CACV,CAAC,CAAC,EAAE,EAAE;QACJ,MAAM,IAAI,GAAG,CAAC,CAAC,YAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,yBAAyB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM;YAC7D,QAAQ,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;SAClC,CAAC;IACJ,CAAC,EACD,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAC/B,CAAC;IAEF,OAAO,sDAAY,CAAC,mDAAc,EAAE,aAAa,CAAC,CAAC;AACrD,CAAC;AAKD,SAAS,YAAY,CAAC,KAAa;IACjC,MAAM,IAAI,GAAG,4DAAkB,CAAC,KAAK,CAAC,CAAC;IAGvC,IAAI,CAAC,SAAS,EAAE,CAAC;IAGjB,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAE/B,mEAA6B,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,IAAI,GAAG,4DAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU,EAAE,CAAC;IAClB,mEAA6B,EAAE,CAAC;AAClC,CAAC;AAEM,SAAS,iBAAiB,CAAC,KAAa;IAC7C,MAAM,IAAI,GAAG,4DAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,YAAY,EAAE,CAAC;IACpB,mEAA6B,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,IAAI,GAAG,4DAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC1B,mEAA6B,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,IAAI,GAAG,4DAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,SAAS,EAAE,CAAC;IACjB,mEAA6B,EAAE,CAAC;AAClC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACtNmC;AAC4B;AACjB;AAER;AACC;AACkB;AACtB;AAE7B,SAAS,cAAc,CAAC,KAA2B;IACxD,SAAS,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAEM,SAAS,0BAA0B,CAAC,IAG1C;IACC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,YAAY,CAAC,QAA+B,EAAE,OAAsB;IAC3E,4CAAc,EAAE,CAAC;IAEjB,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,OAAO;KACR;IAED,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,GAAG,CAAC,EAAE;QAE9D,OAAO;KACR;IAED,IAAI,IAAU,CAAC;IACf,IAAI,QAAQ,CAAC,IAAI,KAAK,yDAAa,EAAE;QACnC,IAAI,GAAG,qDAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACjC;SAAM;QACL,IAAI,GAAG,sDAAS,CAAC,gEAA0B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9D;IAED,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,4DAAkB,CAAC,KAAK,CAAC,CAAC;QACvC,wCAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,oEAA8B,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,SAAS,CAAC,KAA2B;IAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,sDAAgB,CAAC;IACrC,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,OAAO;KACR;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACpE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAC7C,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAyB,CAAC;YAC9D,IAAI,sDAAK,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE;gBAE/B,OAAO;aACR;SACF;QAED,MAAM,KAAK,GAAG,IAAI,+CAAS,CAAC,IAAI,EAAE;YAChC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;YACtB,MAAM,EAAE,KAAK,GAAG,0DAAoB,EAAE;YACtC,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC/B,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SAC9B;aAAM;YACL,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACxB;IACH,CAAC,CAAC,CAAC;IAGH,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE;QAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CACrB,KAAK,CAAC,MAAM,EACZ,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CACvC,CAAC;KACH;IACD,OAAO,CAAC,OAAO,EAAE,CAAC;IAElB,iEAA2B,EAAE,CAAC;AAChC,CAAC;;;;;;;;;;;;;;;;;;;;;;ACvFyB;AACkC;AAEd;AACV;AAE7B,MAAM,SAAS,GAAG,CAAC,KAAY,EAAW,EAAE,CAEjD,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;IAEpB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB;QACxC,KAAK,CAAC,QAAQ,CAAC,cAAc;QAC7B,CAAC,KAAK,CAAC,OAAO,CAAC;IAEjB,KAAK,CAAC,OAAO,KAAK,IAAI;IAEtB,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI,CAAC;AAE9C,SAAS,SAAS,CACvB,IAGC,EACD,YAKa;;IAGb,MAAM,EAAE,iBAAiB,EAAE,GAAG,sDAAgB,CAAC;IAC/C,IAAI,iBAAiB,KAAK,IAAI,EAAE;QAC9B,OAAO;KACR;IAED,IAAI,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,CAAC,OAAO,EAAE;QACvE,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,iEAA2B,EAAE,CAAC;KAC/B;IACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QACjB,OAAO;KACR;IAGD,MAAM,IAAI,GAAG,yDAAmB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,0DAAoB,EAAE,CAAC;IACpC,MAAM,EAAE,UAAU,EAAE,GAAG,+DAAyB,CAAC;IACjD,MAAM,EAAE,kBAAkB,EAAE,GAAG,oEAA8B,CAAC;IAC9D,IAAI,kBAAkB,KAAK,IAAI,EAAE;QAC/B,OAAO;KACR;IACD,MAAM,iBAAiB,GAAG,qEAA+B,CAAC,kBAAkB,CAAC,CAAC;IAC9E,MAAM,EAAE,UAAU,EAAE,GAAG,qDAAe,CAAC;IAGvC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC;IAClD,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,CAAC,yEAAmC,EAAE;QAGxC,MAAM,eAAe,GAAG,iEACR,CAAC,UAAU,EAAE,qDAAe,CAAC;aAC1C,QAAQ,EAAE,CAAC;QAEd,IAAI,UAAU,GAAG,+DAA2B,CAAC,CAAC,EAAE,qDAAe,CAAC,EAAE;YAChE,WAAW,GAAG,iBAAiB,eAAe,cAAc,CAAC;YAC7D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnB;aAAM,IAAI,yDAAqB,CAAC,UAAU,EAAE,qDAAe,CAAC,EAAE;YAC7D,WAAW,GAAG,uBAAuB,eAAe,SAAS,CAAC;YAC9D,KAAK,CAAC,IAAI,CAAC,mDAAW,CAAC,CAAC;SACzB;aAAM,IACL,kFAA4C;YAC5C,sDAAkB,CAAC,iBAAiB,EAAE,oEAA8B,CAAC,EACrE;YACA,WAAW,GAAG,sCAAsC,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,mDAAW,CAAC,CAAC;SACzB;aAAM,IACL,mFAA6C,KAAK,IAAI;YACtD,kFAA4C,EAC5C;YACA,WAAW,GAAG,+CAA+C,CAAC;YAC9D,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACtB;KACF;IAED,MAAM,aAAa,GAAG,CAAC,UAAmB,EAAE,EAAE;QAC5C,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC;QAExD,KAAK,CAAC,OAAO,CAAC,kEAA4B,CAAC,IAAI,CAAC,kBAAmB,CAAC,CAAC,CAAC;QAEtE,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QACpC,IAAI,UAAU,EAAE;YACd,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;SACjC;QACD,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,EAAE,CAAC;QAKf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,OAAO,EAAE;gBACrD,MAAM;aACP;YACD,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;YACjC,KAAK,CAAC,MAAM,EAAE,CAAC;SAChB;QACD,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACtD,IAAI,WAAW,KAAK,EAAE,EAAE;QAEtB,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;QAC5B,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAC3C,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,EAAE,CAAC;KACd;SAAM;QAEL,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;QAC5B,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAC3C,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;QAClD,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC;QACjD,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,EAAE,CAAC;KACd;IAGD,IAAI,QAAQ,GAAG,qCAAqC,CAClD,IAAI,CAAC,kBAAmB,CACzB,CAAC;IAEF,IACE,yDAAmB;QACnB,YAAY,KAAK,SAAS;QAC1B,CAAC,YAAY,CAAC,OAAO,EACrB;QAKA,uBAAiB,CAAC,KAAK,0CAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC7C;SAAM;QACL,IAAI,iBAAiB,CAAC,KAAK,KAAK,IAAI,EAAE;YACpC,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAClC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC;SAChC;QAID,IAAI,mBAAmB,GAAG,IAAI,CAAC,kBAAmB,GAAG,CAAC,CAAC;QACvD,IAAI,mBAAmB,KAAK,CAAC,CAAC,EAAE;YAC9B,mBAAmB,GAAG,UAAU,GAAG,CAAC,CAAC;SACtC;QACD,MAAM,gBAAgB,GACpB,qCAAqC,CAAC,mBAAmB,CAAC,CAAC;QAC7D,uBAAiB,CAAC,KAAK,0CAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAGpD,MAAM,kBAAkB,GAAG,QAAQ,CAAC;QACpC,IAAI,gBAAgB,GAAG,QAAQ,EAAE;YAC/B,QAAQ,IAAI,GAAG,CAAC;SACjB;QAED,iBAAiB,CAAC,KAAK,GAAG,IAAI,oDAAW,CAAC;YACxC,IAAI,EAAE,iBAAiB,CAAC,KAAK;YAC7B,QAAQ,EAAE,IAAI;YACd,QAAQ;YAER,MAAM,EAAE,gEAAuB;YAC/B,QAAQ,EAAE,GAAG,EAAE;gBACb,IACE,iBAAiB,CAAC,KAAK,KAAK,SAAS;oBACrC,iBAAiB,CAAC,KAAK,KAAK,IAAI,EAChC;oBACA,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;iBACtD;YACH,CAAC;SACF,CAAC,CAAC,IAAI,EAAE,CAAC;KACX;IAED,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,qCAAqC,CAAC,WAAmB;IAChE,MAAM,IAAI,GAAG,kEAA4B,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,MAAM,IAAI,KAAK,CACb,gEAAgE,WAAW,EAAE,CAC9E,CAAC;KACH;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAE9C,IAAI,uEAAiC,EAAE;QAErC,MAAM,IAAI,GAAG,0DAAoB,EAAE,CAAC;QACpC,MAAM,yBAAyB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACtD,MAAM,YAAY,GAChB,qEAA+B,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAC5E,MAAM,GAAG,GAAG,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QAC5C,SAAS,CAAC,CAAC,IAAI,yBAAyB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1D,SAAS,CAAC,CAAC,IAAI,yBAAyB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAC1D;IAED,MAAM,OAAO,GACX,kGAA6D,EAAE,CAAC;IAClE,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,IAAI,QAAQ,GAAG,OAAO,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG,CAAC,EAAE;QACT,QAAQ,IAAI,GAAG,CAAC;KACjB;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;;;;;;;;;;;;;;;;;AC3NmC;AAE7B,SAAS,uBAAuB,CAAC,uBAA+B;;IAErE,iEAAqB,0CAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IAIzD,0EAA8B,0CAAE,OAAO,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC;IACrE,oEAA8B,EAAE,CAAC;IAIjC,iEAAqB,0CAAE,aAAa,EAAE,CAAC;AACzC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChB2D;AACG;AACR;AAEe;AAClC;AACS;AACV;AAE5B,SAAS,aAAa,CAAC,IAG7B;;IAGC,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;IAGxC,4EAAgC,0CAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAGrD,+DAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,YAAY,EAAE,CAAC,CAAC;IAGvE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;QACzB,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAI5C,IAAI,YAAY,GAAG,CAAC,EAAE;YACpB,YAAY,GAAG,CAAC,CAAC;SAClB;QAED,qFAAyC,0CAAE,IAAI,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC;KAC1E;IAED,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,2BAA2B,CACzC,kBAAiC;IAGjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,wEAAkC,EAAE,CAAC,EAAE,EAAE;QAC3D,iEAA2B,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,KAAK,CAAC,CAAC,CAAC;KACpE;IAED,IAAI,kBAAkB,KAAK,IAAI,EAAE;QAG/B,+DAAiC,EAAE,CAAC;KACrC;SAAM,IAAI,uEAAiC,EAAE;QAG5C,KAAK,MAAM,IAAI,IAAI,2EAAqC,EAAE;YACxD,IAAI,CAAC,IAAI,CAAC,iDAAS,CAAC,CAAC;SACtB;QACD,MAAM,iBAAiB,GACrB,2EAAqC,CAAC,kBAAkB,CAAC,CAAC;QAC5D,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACnC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAClC;KACF;SAAM;QAGL,KAAK,MAAM,IAAI,IAAI,0EAAoC,EAAE;YACvD,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;QACD,MAAM,iBAAiB,GACrB,0EAAoC,CAAC,kBAAkB,CAAC,CAAC;QAC3D,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACnC,iBAAiB,CAAC,IAAI,EAAE,CAAC;SAC1B;KACF;IAED,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,wBAAwB,CAAC,IAGxC;IACC,MAAM,UAAU,GAAG,uEAAiC,CAAC;IACrD,IAAI,UAAU,KAAK,IAAI,EAAE;QACvB,OAAO;KACR;IACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAIvC,MAAM,sBAAsB,GAAG,kEAA4B,GAAG,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,GAAG,sBAAsB,CAAC;IAC1D,MAAM,eAAe,GACnB,aAAa,IAAI,kFAA4C;QAC3D,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,mDAAW,CAAC;IAClB,IACE,aAAa;QACb,kFAA4C;QAC5C,2EAAqC,EACrC;QACA,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC9B;IACD,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAGjC,MAAM,aAAa,GAAG,0EAAoC,CAAC;IAC3D,IAAI,aAAa,KAAK,IAAI,EAAE;QAC1B,OAAO;KACR;IACD,aAAa,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE1C,MAAM,kBAAkB,GAAG,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SACvE,KAAe,CAAC;IACnB,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAC1C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;KACjE;IACD,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxC,MAAM,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;SAC9D,KAAe,CAAC;IACnB,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;KAC9D;IACD,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,GAAG,eAAe,CAAC;IAC3C,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnB,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,gCAAgC,CAC9C,uBAA+B;;IAE/B,IACE,CAAC,iEAA6B,CAAC,qDAAe,CAAC;QAC/C,4DAAsB,EACtB;QACA,OAAO;KACR;IAED,6EAAiC,0CAAE,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5E,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,mBAAmB,CAAC,UAAkB;;IACpD,IAAI,eAAe,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC5C,IAAI,8DAA0B,CAAC,qDAAe,CAAC,EAAE;QAE/C,eAAe,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;KAC/C;IACD,6EAAiC,0CAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAEzD,IAAI,CAAC,yEAAmC,EAAE;QACxC,MAAM,gBAAgB,GACpB,UAAU,GAAG,+DAA2B,CAAC,CAAC,EAAE,qDAAe,CAAC,CAAC;QAC/D,MAAM,gBAAgB,GACpB,UAAU,KAAK,+DAA2B,CAAC,CAAC,EAAE,qDAAe,CAAC,CAAC;QACjE,MAAM,iBAAiB,GAAG,yDAAqB,CAC7C,UAAU,EACV,qDAAe,CAChB,CAAC;QAEF,IAAI,IAAI,CAAC;QACT,IAAI,gBAAgB,EAAE;YACpB,IAAI,GAAG,KAAK,CAAC;SACd;aAAM,IAAI,gBAAgB,EAAE;YAC3B,IAAI,GAAG,QAAQ,CAAC;SACjB;aAAM,IAAI,iBAAiB,EAAE;YAC5B,IAAI,GAAG,MAAM,CAAC;SACf;aAAM;YACL,IAAI,GAAG,mDAAW,CAAC;SACpB;QACD,6EAAiC,0CAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAI,gBAAgB,EAAE;YACpB,4EAAgC,0CAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAChD,4EAAgC,0CAAE,IAAI,EAAE,CAAC;SAC1C;aAAM,IAAI,iBAAiB,EAAE;YAC5B,4EAAgC,0CAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACjD,4EAAgC,0CAAE,IAAI,EAAE,CAAC;SAC1C;aAAM;YACL,4EAAgC,0CAAE,IAAI,EAAE,CAAC;SAC1C;KACF;IAED,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,kCAAkC,CAAC,IAGlD;;IACC,IAAI,yEAAmC,EAAE;QACvC,OAAO;KACR;IAED,MAAM,SAAS,GAAG,yDAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,qDAAe,CAAC,CAAC;IAI1E,4EAAgC,0CAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAIrD,kFAAsC,0CAAE,OAAO,CAC7C,kFAA4C;QAC1C,CAAC,SAAS;QACV,IAAI,CAAC,aAAa,KAAK,IAAI,CAC9B,CAAC;IAEF,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,gCAAgC,CAAC,IAGhD;IAEC,IAAI,iEAA6B,CAAC,qDAAe,CAAC,IAAI,2DAAqB,EAAE;QAC3E,OAAO;KACR;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,yDAAW,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,OAAO,GAAG,+DAAyB,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,SAAS;SACV;QACD,MAAM,YAAY,GAAG,oEAA8B,CAAC,CAAC,CAAC,CAAC;QACvD,IAAI,YAAY,KAAK,SAAS,EAAE;YAC9B,SAAS;SACV;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC;QACrB,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YAGxC,sDAAO,CACL,OAAO,EACP;gBACE,QAAQ;gBACR,OAAO,EAAE,CAAC;aACX,EACD,IAAI,CACL,CAAC;SACH;aAAM;YAIL,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE;gBAC1B,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;aACtB;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mDAAW,CAAC;YACvE,sDAAO,CACL,OAAO,EACP;gBACE,QAAQ;gBACR,OAAO;aACR,EACD,IAAI,CACL,CAAC;SACH;KACF;IAED,iEAA2B,EAAE,CAAC;AAChC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvQoC;AAED;AACD;AAG5B,MAAM,2BAA2B,GAAG,CAAC,KAAY,EAAW,EAAE,CACnE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;IACrD,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;QAC3B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB;QACrC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ;QAE5B,KAAK,CAAC,YAAY,KAAK,IAAI;QAC3B,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI,CAAC,CAAC;AAElD,SAAS,kCAAkC,CAAC,OAAgB;;IACjE,4EAAgC,0CAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACtD,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,MAAM,oBAAoB,GAAG,CAAC,KAAY,EAAW,EAAE,CAC5D,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;IACrD,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI,CAAC;AAE9B,SAAS,2BAA2B,CAAC,UAAmB;;IAC7D,uEAA2B,0CAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,eAAe,CAAC,IAG/B;;IACC,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,YAAY,EAAE;QACjD,+DAAiC,EAAE,CAAC;KACrC;IAED,yBAAyB,EAAE,CAAC;IAI5B,kFAAsC,0CAAE,OAAO,CAC7C,gEAA0B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAC7D,CAAC;IACF,mFAAuC,0CAAE,OAAO,CAC9C,gEAA0B,KAAK,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAC5D,CAAC;IAEF,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,MAAM,sBAAsB,GAAG,CAAC,KAAY,EAAW,EAAE,CAC9D,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;IAClC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAE1D,SAAS,6BAA6B,CAAC,UAAmB;;IAC/D,4EAAgC,0CAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,UAAU,EAAE;QAEd,0EAA8B,0CAAE,OAAO,EAAE,CAAC;QAC1C,6EAAiC,0CAAE,OAAO,EAAE,CAAC;KAC9C;SAAM;QACL,0EAA8B,0CAAE,SAAS,EAAE,CAAC;QAC5C,6EAAiC,0CAAE,SAAS,EAAE,CAAC;KAChD;IAED,yBAAyB,EAAE,CAAC;IAC5B,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,MAAM,0BAA0B,GAAG,CAAC,KAAY,EAAW,EAAE,CAClE,KAAK,CAAC,QAAQ;IACd,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;IAClC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAE1D,SAAS,iCAAiC,CAAC,UAAmB;;IACnE,mFAAuC,0CAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IAChE,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,yBAAyB,CAAC,IAIzC;;IACC,MAAM,yBAAyB,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAChE,uEAA2B,0CAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAEhE,IAAI,yBAAyB,EAAE;QAC7B,+DAAiC,EAAE,CAAC;KACrC;IAED,MAAM,8BAA8B,GAClC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC;IACrD,0EAA8B,0CAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAExE,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAKM,SAAS,qBAAqB;IACnC,oDAAsB,EAAE,CAAC;IAGzB,MAAM,WAAW,GAAG,6EAAwC,CAAC;IAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAoB,CAAC;IACjE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzB,MAAM,EAAE,kBAAkB,EAAE,GAAG,qEAAgC,CAAC;QAChE,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,KAAK,kBAAkB,CAAC;QAC1D,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAI3B,IAAI,gEAA0B,KAAK,CAAC,IAAI,OAAO,EAAE;YAC/C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACzB;KACF;IAGD,yBAAyB,EAAE,CAAC;IAE5B,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,MAAM,wBAAwB,GAAG,CAAC,KAAY,EAAW,EAAE,CAChE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9D,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;IAClC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAEvC,SAAS,+BAA+B,CAAC,OAAgB;;IAC9D,2EAA+B,0CAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACrD,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,iCAAiC,CAC/C,wBAAiC;;IAEjC,mFAAuC,0CAAE,UAAU,CAAC,wBAAwB,CAAC,CAAC;IAG9E,8CAAgB,EAAE,CAAC;IAEnB,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,yBAAyB;IAChC,KAAK,MAAM,IAAI,IAAI,kEAA4B,EAAE;QAC/C,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AACH,CAAC;;;;;;;;;;;;;;;;;ACvJmC;AAE7B,SAAS,uBAAuB,CAAC,WAAoB;IAC1D,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO;KACR;IAED,IAAI,qDAAe,EAAE;QACnB,6DAAwB,CAAC,QAAQ,EAAE;YACjC,OAAO,EAAE,2DAAqB;SAC/B,CAAC,CAAC;KACJ;IACD,qDAAe,GAAG,KAAK,CAAC;IACxB,yDAAmB,GAAG,KAAK,CAAC;AAC9B,CAAC;;;;;;;;;;;;;;;;;ACbmC;AAE7B,SAAS,YAAY,CAAC,GAAwB;IACnD,eAAe,CAAC,GAAG,CAAC,CAAC;IACrB,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,eAAe,CAAC,GAAwB;IAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,sDAAgB,CAAC;IACvC,IAAI,SAAS,KAAK,IAAI,EAAE;QACtB,OAAO;KACR;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;QAC3C,MAAM,IAAI,GACR,aAAa,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,IAAI,IAAI,KAAK,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;YACtC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;SAClC;KACF;IACD,SAAS,CAAC,WAAW,EAAE,CAAC;IAExB,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAwB;IACnD,MAAM,EAAE,aAAa,EAAE,GAAG,sDAAgB,CAAC;IAC3C,IAAI,aAAa,KAAK,IAAI,EAAE;QAC1B,OAAO;KACR;IAED,aAAa,CAAC,KAAK,EAAE,CAAC;IACtB,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtE,kEAA4B,EAAE,CAAC;AACjC,CAAC;;;;;;;;;;;;;;;;;;ACpCmC;AACI;AAEjC,SAAS,SAAS,CAAC,KAAiB;;IACzC,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAClD,sEAA0B,0CAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtD,sEAA0B,0CAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAElD,sEAA0B,0CAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAGlD,mEAAuB,0CAAE,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,2DAAqB,CAAC,CAAC;IACzE,mEAAuB,0CAAE,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,mDAAS,EAAE,CAAC,CAAC;IAChE,yEAA6B,0CAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAErD,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,sEAA0B,0CAAE,IAAI,CAC9B,OAAO,kEAA4B,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CACzD,CAAC;QAEF,IAAI,2DAAqB,EAAE;YACzB,wEAA4B,0CAAE,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/C,wEAA4B,0CAAE,OAAO,CAAC,CAAC,CAAC,CAAC;SAC1C;aAAM;YACL,wEAA4B,0CAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAChD,wEAA4B,0CAAE,OAAO,CAAC,GAAG,CAAC,CAAC;SAC5C;KACF;IAED,iEAA2B,EAAE,CAAC;IAC9B,kEAA4B,EAAE,CAAC;IAC/B,oEAA8B,EAAE,CAAC;AACnC,CAAC;;;;;;;;;;;;;;;;;;;;;ACjCkD;AAGf;AACK;AAElC,MAAM,sBAAsB,GAAG,CAAC,KAAY,EAAW,EAAE,CAC9D,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC;AAE1C,SAAS,6BAA6B,CAAC,UAAmB;;IAC/D,gFAAoC,0CAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1D,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,SAAS,CACvB,MAA2B,EAC3B,cAA+C;;IAE/C,IAAI,cAAc,KAAK,SAAS,EAAE;QAEhC,OAAO;KACR;IAED,IAAI,MAAM,KAAK,IAAI,IAAI,cAAc,KAAK,IAAI,EAAE;QAI9C,IACE,cAAc,CAAC,IAAI,KAAK,2DAAe;YACvC,cAAc,CAAC,IAAI,KAAK,8DAAkB,EAC1C;YACA,yCAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;YACzB,8DAAwB,EAAE,CAAC;SAC5B;KACF;SAAM,IAAI,MAAM,KAAK,IAAI,IAAI,cAAc,KAAK,IAAI,EAAE;QAErD,0DAA4B,EAAE,CAAC;QAE/B,IAAI,IAAI,GAAG,aAAa,CAAC;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,2DAAe,EAAE;YACnC,IAAI,IAAI,MAAM,CAAC;SAChB;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,8DAAkB,EAAE;YAC7C,IAAI,IAAI,SAAS,CAAC;SACnB;aAAM,IACL,MAAM,CAAC,IAAI,KAAK,gEAAoB;YACpC,MAAM,CAAC,IAAI,KAAK,+DAAmB,EACnC;YACA,IAAI,IAAI,MAAM,CAAC;SAChB;QACD,gFAAoC,0CAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjD,iEAA2B,EAAE,CAAC;KAC/B;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvDyB;AACoB;AACiB;AAE3B;AACK;AACF;AACF;AACM;AAEpC,SAAS,eAAe,CAAC,MAAe;;IAC7C,MAAM,EAAE,UAAU,EAAE,GAAG,sDAAgB,CAAC;IACxC,IAAI,UAAU,KAAK,IAAI,EAAE;QACvB,OAAO;KACR;IACD,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3B,IAAI,MAAM,EAAE;QAEV,mDAAqB,CAAC,IAAI,CAAC,CAAC;KAC7B;SAAM,IAAI,2DAAqB,KAAK,IAAI,EAAE;QAGzC,gFAAoC,0CAAE,IAAI,EAAE,CAAC;KAC9C;IAED,0DAA4B,EAAE,CAAC;IAE/B,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,gBAAgB,CAC9B,IAIC,EACD,YAMa;;IAEb,IACE,YAAY,KAAK,SAAS;QAC1B,CAAC,IAAI,CAAC,MAAM;QACZ,IAAI,CAAC,aAAa,KAAK,IAAI;QAC3B,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAChC;QACA,OAAO;KACR;IAGD,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC;IAChD,iFAAqC,0CAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IAClE,6EAAiC,0CAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IAG9D,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,kBAAkB,CAAC;IACtE,gFAAoC,0CAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACjE,oFAAwC,0CAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IAIrE,mDAAqB,CAAC,KAAK,CAAC,CAAC;IAE7B,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,sBAAsB,CACpC,IAIC,EACD,YAKa;;IAEb,IACE,CAAC,IAAI,CAAC,MAAM;QACZ,IAAI,CAAC,aAAa,KAAK,SAAS;QAChC,IAAI,CAAC,iBAAiB,KAAK,SAAS,EACpC;QACA,OAAO;KACR;IAED,IAAI,IAAI,CAAC,iBAAiB,EAAE;QAC1B,IAAI,0EAAqC,EAAE;YAEzC,6DAAwB,CAAC,cAAc,EAAE;gBACvC,OAAO,EAAE,2DAAqB;gBAC9B,IAAI,EAAE,oEAAwB;gBAC9B,OAAO,EAAE,IAAI,CAAC,aAAa;aAC5B,CAAC,CAAC;SACJ;aAAM;YAIL,gDAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAEpD,IACE,YAAY,KAAK,SAAS;gBAC1B,YAAY,CAAC,aAAa,KAAK,SAAS;gBACxC,IAAI,CAAC,iBAAiB,KAAK,YAAY,CAAC,iBAAiB,EACzD;gBACA,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;aACvE;SACF;KACF;IAED,mFAAuC,0CAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzE,iFAAqC,0CAAE,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAMxE,mDAAqB,CACnB,YAAY,KAAK,SAAS,IAAI,YAAY,CAAC,aAAa,KAAK,SAAS,CACvE,CAAC;IAEF,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,+BAA+B,CAAC,UAAmB;;IACjE,yEAA6B,0CAAE,OAAO,CAAC,UAAU,CAAC,CAAC;AACrD,CAAC;AAEM,SAAS,8BAA8B,CAAC,IAG9C;;IACC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QAClB,4EAAgC,0CAAE,OAAO,EAAE,CAAC;KAC7C;SAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QACvB,4EAAgC,0CAAE,SAAS,EAAE,CAAC;KAC/C;SAAM;QACL,4EAAgC,0CAAE,QAAQ,EAAE,CAAC;KAC9C;AACH,CAAC;AAOD,SAAS,qBAAqB,CAC5B,aAAqB,EACrB,qBAA6B;;IAE7B,MAAM,QAAQ,GAAG,CAAC,CAAC;IACnB,MAAM,OAAO,GAAG,CAAC,CAAC;IAClB,IAAI,aAAa,GAAG,qBAAqB,EAAE;QACzC,iFAAqC,0CAAE,IAAI,EAAE,CAAC;QAC9C,iFAAqC,0CAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,gFAA0C,KAAK,IAAI,EAAE;YACvD,wFAAkD,EAAE,CAAC;YACrD,gFAA0C,GAAG,IAAI,CAAC;SACnD;QACD,gFAA0C,GAAG,IAAI,oDAAW,CAAC;YAC3D,IAAI,EAAE,2EAAqC;YAC3C,QAAQ;YACR,OAAO;SACR,CAAC,CAAC,IAAI,EAAE,CAAC;KACX;SAAM,IAAI,aAAa,GAAG,qBAAqB,EAAE;QAChD,gFAAoC,0CAAE,IAAI,EAAE,CAAC;QAC7C,gFAAoC,0CAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,+EAAyC,KAAK,IAAI,EAAE;YACtD,uFAAiD,EAAE,CAAC;YACpD,+EAAyC,GAAG,IAAI,CAAC;SAClD;QACD,+EAAyC,GAAG,IAAI,oDAAW,CAAC;YAC1D,IAAI,EAAE,0EAAoC;YAC1C,QAAQ;YACR,OAAO;SACR,CAAC,CAAC,IAAI,EAAE,CAAC;KACX;AACH,CAAC;AAEM,SAAS,mBAAmB,CAAC,UAAyB;;IAC3D,IAAI,UAAU,KAAK,IAAI,EAAE;QACvB,OAAO;KACR;IAED,IAAI,IAAI,CAAC;IACT,IAAI,UAAU,KAAK,CAAC,EAAE;QAEpB,IAAI,GAAG,aAAa,CAAC;KACtB;SAAM;QACL,IAAI,GAAG,OAAO,UAAU,EAAE,CAAC;KAC5B;IACD,wEAA4B,0CAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,wEAA4B,0CAAE,IAAI,EAAE,CAAC;IAGrC,IAAI,wFAAmD,KAAK,CAAC,EAAE;QAC7D,iEAAqB,0CAAE,mBAAmB,EAAE,CAAC;KAC9C;IAED,oEAA8B,EAAE,CAAC;IACjC,mEAA6B,EAAE,CAAC;AAClC,CAAC;AAEM,SAAS,iBAAiB,CAC/B,QAAiB,EACjB,gBAAqC;;IAErC,IAAI,gBAAgB,KAAK,SAAS,IAAI,CAAC,QAAQ,EAAE;QAC/C,OAAO;KACR;IAGD,uDAAyB,EAAE,CAAC;IAG5B,mEAAuB,0CAAE,IAAI,EAAE,CAAC;IAChC,mEAAuB,0CAAE,IAAI,EAAE,CAAC;IAChC,wCAAU,EAAE,CAAC;IAGb,6EAAiC,0CAAE,IAAI,EAAE,CAAC;IAG1C,yEAA6B,0CAAE,IAAI,EAAE,CAAC;IAGtC,IAAI,sEAAgC,KAAK,IAAI,EAAE;QAC7C,4EAAgC,0CAAE,IAAI,EAAE,CAAC;QACzC,4EAAsC,EAAE,CAAC;QACzC,uEAAiC,EAAE,CAAC;KACrC;IAID,iEAAqB,0CAAE,WAAW,EAAE,CAAC;IAGrC,IAAI,iEAA6B,CAAC,qDAAe,CAAC,EAAE;QAClD,2EAA+B,0CAAE,IAAI,EAAE,CAAC;QACxC,6EAAiC,0CAAE,IAAI,EAAE,CAAC;QAC1C,gFAAoC,0CAAE,IAAI,EAAE,CAAC;QAC7C,2EAA+B,0CAAE,IAAI,EAAE,CAAC;QACxC,6EAAiC,0CAAE,IAAI,EAAE,CAAC;QAC1C,iFAA2C,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;KACtE;IAED,oEAA8B,EAAE,CAAC;IACjC,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,mBAAmB,CAAC,YAAqB;;IACvD,oFAAwC,0CAAE,OAAO,CAAC,YAAY,CAAC,CAAC;AAClE,CAAC;AAEM,SAAS,qBAAqB,CACnC,OAAe,EACf,cAAkC;IAIlC,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,wFAAmD,EAAE,CAAC;KACvD;AACH,CAAC;AAEM,SAAS,uBAAuB,CAAC,QAAiB;;IACvD,qFAAyC,0CAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7D,0EAA8B,0CAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClD,4EAAgC,0CAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAIpD,IAAI,QAAQ,EAAE;QACZ,mFAAuC,0CAAE,OAAO,EAAE,CAAC;QACnD,iFAAqC,0CAAE,OAAO,EAAE,CAAC;KAClD;SAAM;QACL,mFAAuC,0CAAE,SAAS,EAAE,CAAC;QACrD,iFAAqC,0CAAE,SAAS,EAAE,CAAC;KACpD;IAED,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,2BAA2B,CAAC,IAG3C;IACC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;QAC7B,OAAO;KACR;IAGD,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;QACvC,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE;YAClC,IAAI,GAAG,KAAK,CAAC;YACb,MAAM;SACP;KACF;IAGD,IAAI,OAAO,GAAG,4BAA4B,IAAI,CAAC,MAAM,EAAE,CAAC;IACxD,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,SAAS,CAAC;KACtB;IACD,CAAC,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC;;;;;;;;;;;;;;;;;;;;ACtTiD;AACJ;AAEG;AACb;AAE7B,SAAS,gBAAgB,CAC9B,IAKC,EACD,YAOa;IAEb,IAEE,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;QAE/C,IAAI,CAAC,kBAAkB,MAAK,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,kBAAkB;QAE5D,4DAAsB;QAEtB,CAAC,sEAAgC,EACjC;QACA,OAAO;KACR;IAGD,IACE,CAAC,IAAI,CAAC,SAAS,KAAK,mEAAuB;QACzC,IAAI,CAAC,SAAS,KAAK,kEAAsB;QACzC,IAAI,CAAC,SAAS,KAAK,mEAAuB;QAC1C,IAAI,CAAC,SAAS,KAAK,wEAA4B,CAAC;QAClD,CAAC,kFAA4C;QAE7C,CAAC,iEAA6B,CAAC,qDAAe,CAAC,EAC/C;QACA,IAAI,CAAC,SAAS,GAAG,8DAAkB,CAAC;KACrC;IAED,MAAM,OAAO,GACX,2EAAqC,KAAK,IAAI,CAAC,kBAAkB,CAAC;IACpE,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,QAAQ,cAAc,EAAE,CAAC;IAG1C,MAAM,wBAAwB,GAAG,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACxE,8DAAyB,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,WAAW,CAAC,SAAoB,EAAE,OAAgB;IACzD,QAAQ,SAAS,EAAE;QACjB,KAAK,8DAAkB,CAAC,CAAC;YACvB,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;SACjC;QAED,KAAK,2DAAe,CAAC,CAAC;YACpB,OAAO,OAAO,CAAC;SAChB;QAED,KAAK,2DAAe,CAAC,CAAC;YACpB,OAAO,OAAO,CAAC;SAChB;QAED,KAAK,4DAAgB,CAAC,CAAC;YACrB,OAAO,QAAQ,CAAC;SACjB;QAED,KAAK,4DAAgB,CAAC,CAAC;YACrB,OAAO,QAAQ,CAAC;SACjB;QAED,KAAK,4DAAgB,CAAC,CAAC;YACrB,OAAO,QAAQ,CAAC;SACjB;QAED,KAAK,4DAAgB,CAAC,CAAC;YACrB,OAAO,QAAQ,CAAC;SACjB;QAED,KAAK,4DAAgB,CAAC,CAAC;YACrB,OAAO,QAAQ,CAAC;SACjB;QAED,KAAK,4DAAgB,CAAC,CAAC;YACrB,OAAO,QAAQ,CAAC;SACjB;QAED,KAAK,mEAAuB,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC;SACb;QAED,KAAK,kEAAsB,CAAC,CAAC;YAC3B,OAAO,eAAe,CAAC;SACxB;QAED,KAAK,mEAAuB,CAAC,CAAC;YAC5B,OAAO,gBAAgB,CAAC;SACzB;QAED,KAAK,wEAA4B,CAAC,CAAC;YACjC,OAAO,sBAAsB,CAAC;SAC/B;QAED,KAAK,yDAAa,CAAC,CAAC;YAClB,OAAO,KAAK,CAAC;SACd;QAED,KAAK,yDAAa,CAAC,CAAC;YAClB,OAAO,KAAK,CAAC;SACd;QAED,KAAK,0DAAc,CAAC,CAAC;YACnB,OAAO,MAAM,CAAC;SACf;QAED,KAAK,2DAAe,CAAC,CAAC;YACpB,OAAO,OAAO,CAAC;SAChB;QAED,KAAK,qEAAyB,CAAC,CAAC;YAC9B,OAAO,kBAAkB,CAAC;SAC3B;QAED,KAAK,kEAAsB,CAAC,CAAC;YAC3B,OAAO,eAAe,CAAC;SACxB;QAED,KAAK,qEAAyB,CAAC,CAAC;YAC9B,OAAO,kBAAkB,CAAC;SAC3B;QAED,OAAO,CAAC,CAAC;YACP,qDAAc,CAAC,SAAS,CAAC,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;SACnE;KACF;AACH,CAAC;;;;;;;;;;;;;;;;;;AChJmC;AAE7B,SAAS,mBAAmB,CAAC,IAGnC;;IACC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3C,4EAAgC,0CAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,+EAAmC,0CAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtD,IAAI,OAAO,EAAE;QACX,+EAAmC,0CAAE,IAAI,CACvC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAClC,CAAC;QAGF,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;YACvC,IAAI,SAAS,GAAG,MAAM,CAAC;YACvB,IAAI,SAAS,CAAC,IAAI,KAAK,kEAA4B,EAAE;gBACnD,SAAS,IAAI,yBAAyB,SAAS,CAAC,IAAI,SAAS,CAAC;aAC/D;iBAAM,IAAI,oEAA8B,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACzD,SAAS,IAAI,wBAAwB,SAAS,CAAC,IAAI,SAAS,CAAC;aAC9D;iBAAM;gBACL,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC;aAC7B;YAKD,IAAI,SAAS,CAAC,oBAAoB,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC7D,MAAM,UAAU,GACd,kEAA4B,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;gBAC/D,IAAI,UAAU,KAAK,SAAS,EAAE;oBAC5B,MAAM,IAAI,KAAK,CACb,4CAA4C,SAAS,CAAC,oBAAoB,EAAE,CAC7E,CAAC;iBACH;gBACD,IAAI,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE;oBACjC,SAAS,IAAI,aAAa,UAAU,QAAQ,CAAC;iBAC9C;aACF;YACD,SAAS,IAAI,OAAO,CAAC;YACrB,WAAW,IAAI,SAAS,CAAC;SAC1B;QACD,IAAI,OAAO,GAAG,UAAU,CAAC;QACzB,IAAI,4DAAsB,EAAE;YAC1B,OAAO,IAAI,uBAAuB,CAAC;SACpC;aAAM;YACL,OAAO,IAAI,YAAY,CAAC;SACzB;QACD,OAAO,IAAI,0CAA0C,WAAW,OAAO,CAAC;QACxE,CAAC,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACnE;SAAM;QACL,CAAC,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAC/C;IAED,iEAA2B,EAAE,CAAC;AAChC,CAAC;;;;;;;;;;;;;;;;;;;;;;AC7D2C;AAEE;AACV;AACO;AAGpC,SAAS,mBAAmB,CAAC,IAQnC;IAEC,MAAM,QAAQ,GAAG,4EAAsC,CAAC;IACxD,IAAI,QAAQ,KAAK,IAAI,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;KACH;IACD,MAAM,YAAY,GAAG,0EAAoC,CAAC;IAC1D,IAAI,YAAY,KAAK,IAAI,EAAE;QACzB,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;KACH;IACD,MAAM,WAAW,GAAG,+EAAyC,CAAC;IAC9D,IAAI,WAAW,KAAK,IAAI,EAAE;QACxB,MAAM,IAAI,KAAK,CACb,4FAA4F,CAC7F,CAAC;KACH;IAED,IAAI,eAAe,CAAC;IACpB,IAAI,4DAAsB,EAAE;QAG1B,eAAe;YACb,iEAA2B,KAAK,IAAI;gBACpC,mFAA6C,CAAC;KACjD;SAAM;QAEL,eAAe,GAAG,gEAA0B,KAAK,+DAAyB,CAAC;KAC5E;IAED,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;IAC/C,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;IACpC,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,IAAI,eAAe,EAAE;QACnB,WAAW,IAAI,kBAAkB,CAAC;QAClC,IAAI,kBAAkB,KAAK,CAAC,EAAE;YAG5B,mBAAmB,GAAG,IAAI,CAAC;SAC5B;QACD,IAAI,kBAAkB,KAAK,IAAI,EAAE;YAC/B,WAAW,IAAI,kBAAkB,CAAC;SACnC;KACF;SAAM;QACL,kBAAkB,GAAG,IAAI,CAAC;KAC3B;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;IAEhE,MAAM,UAAU,GAAG,yDAAqB,CACtC,WAAW,EACX,IAAI,CAAC,kBAAkB,CACxB,CAAC;IACF,MAAM,oBAAoB,GACxB,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC;IACpE,MAAM,gBAAgB,GACpB,IAAI,CAAC,gBAAgB,KAAK,IAAI;QAC5B,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,yDAAqB,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACnE,MAAM,0BAA0B,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAErE,IAAI,0BAA0B,EAAE;QAE9B,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5C;SAAM;QAEL,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACpB;IACD,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAK5D,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,KAAe,CAAC;IAC3E,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;QACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;KAC5D;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC;IAC1C,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAGtB,MAAM,gBAAgB,GAAG,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SACnE,KAAe,CAAC;IACnB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;KAChE;IACD,MAAM,OAAO,GAAG,KAAK,GAAG,gBAAgB,CAAC;IACzC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAGvB,MAAM,aAAa,GAAG,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mDAAW,CAAC;IACpE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAG7B,SAAS,UAAU,CAAC,IAAY,EAAE,KAAsB,EAAE,UAAU,GAAG,IAAI;QACzE,OAAO,GACL,UAAU,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAChD,wCAAwC,IAAI,oBAAoB,KAAK,iBAAiB,CAAC;IACzF,CAAC;IACD,MAAM,cAAc,GAAG;MACnB,UAAU,CAAC,sBAAsB,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;MAC3D,UAAU,CACV,+BAA+B,EAC/B,kBAAkB,KAAK,IAAI,IAAI,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAC1E;MACC,UAAU,CACV,+BAA+B,EAC/B,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAC3C;MACC,UAAU,CAAC,sBAAsB,EAAE,IAAI,CAAC,kBAAkB,CAAC;MAC3D,UAAU,CACV,oBAAoB,EACpB,oBAAoB,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CACnD;;MAEC,UAAU,CAAC,wBAAwB,EAAE,cAAc,CAAC;MACpD,UAAU,CACV,0BAA0B,EAC1B,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAC7D;MACC,UAAU,CACV,4BAA4B,EAC5B,0BAA0B,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAC/D;MACC,UAAU,CACV,0BAA0B,EAC1B,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,0BAA0B;QAC1D,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC,GAAG,CACR;;;GAGF,CAAC;IACF,QAAQ,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,2CAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAErC,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,uBAAuB,CAAC,IAIvC;IACC,MAAM,KAAK,GAAG,sEAAgC,CAAC;IAC/C,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACxD;IAKD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,4BAA4B,EAAE;QAC3D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,mDAAW,CAAC,CAAC;KACzB;SAAM;QACL,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE;YACjB,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;SAC5B;QACD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAIrB,QAAQ,IAAI,CAAC,QAAQ,EAAE;YACrB,KAAK,MAAM,CAAC,CAAC;gBAEX,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,MAAM;aACP;YACD,KAAK,UAAU,CAAC,CAAC;gBAEf,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,MAAM;aACP;YACD,KAAK,YAAY,CAAC,CAAC;gBAEjB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,MAAM;aACP;YACD,KAAK,SAAS,CAAC;YACf,OAAO,CAAC,CAAC;gBAEP,KAAK,CAAC,IAAI,CAAC,mDAAW,CAAC,CAAC;gBACxB,MAAM;aACP;YACD,KAAK,MAAM,CAAC,CAAC;gBACX,OAAO,CAAC,KAAK,CACX,wDAAwD,IAAI,CAAC,IAAI,eAAe,CACjF,CAAC;gBACF,MAAM;aACP;SACF;KACF;IAED,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,iBAAiB,CAAC,IAQjC;IACC,MAAM,EACJ,IAAI,EACJ,gBAAgB,EAChB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,UAAU,EACV,UAAU,GACX,GAAG,IAAI,CAAC;IACT,IAAI,YAAoB,CAAC;IACzB,IAAI,IAAI,KAAK,IAAI,EAAE;QACjB,YAAY,GAAG,UAAW,GAAG,OAAO,CAAC;KACtC;SAAM;QACL,IAAI,eAAe,GAAG,QAAQ,GAAG,KAAK,CAAC;QACvC,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,GAAG,CAAC,EAAE;YACZ,eAAe,IAAI,IAAI,CAAC;YACxB,QAAQ,GAAG,CAAC,CAAC;SACd;QACD,YAAY,GAAG,QAAQ,GAAG,gBAAiB,GAAG,eAAe,CAAC;KAC/D;IACD,MAAM,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,OAAO,GAAG,YAAY,CAAC;IAE7C,MAAM,KAAK,GAAG,sEAAgC,CAAC;IAC/C,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACxD;IACD,KAAK,CAAC,cAAc,GAAG,qEAAqE,4BAA4B;8FAC5B,YAAY;yFACjB,OAAO,qBAAqB,aAAa,WAAW,CAAC;IAC5I,2CAAa,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/PiD;AACa;AAChB;AAEX;AACI;AACC;AACN;AAE5B,MAAM,2BAA2B,GAAG,CAAC,KAAY,EAAW,EAAE,CACnE,KAAK,CAAC,OAAO;IACb,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,KAAK,qEAA+B,CAAC;AAEzE,SAAS,kCAAkC,CAAC,UAAmB;;IACpE,qEAAyB,0CAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAW,EAAE,CACxD,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI;IACjC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC,KAAK,CAAC,OAAO;QACZ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;QACpB,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB;YACvC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAE9B,SAAS,uBAAuB,CAAC,UAAmB;;IACzD,qEAAyB,0CAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAGM,MAAM,qBAAqB,GAAG,CAAC,KAAY,EAAW,EAAE,CAC7D,gBAAgB,CAAC,KAAK,CAAC;IACvB,KAAK,CAAC,YAAa,CAAC,UAAU;QAC5B,+DAA2B,CAAC,CAAC,EAAE,qDAAe,CAAC,CAAC;AAE7C,SAAS,4BAA4B,CAAC,cAAuB;IAClE,+EAA0C,CAAC,cAAc,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,uEAAkC,CAAC,OAAO,CAAC,CAAC;IAC5C,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,MAAM,+BAA+B,GAAG,CAAC,KAAY,EAAW,EAAE,CACvE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS;IAChC,gBAAgB,CAAC,KAAK,CAAC;IACvB,KAAK,CAAC,YAAa,CAAC,uBAAuB,KAAK,CAAC,CAAC;AAE7C,SAAS,sCAAsC,CACpD,YAAqB;IAErB,8EAAyC,CAAC,YAAY,CAAC,CAAC;IACxD,qFAAgD,CAAC,YAAY,CAAC,CAAC;IAE/D,IAAI,YAAY,EAAE;QAEhB,qEAAgC,EAAE,CAAC;KACpC;AACH,CAAC;AAEM,SAAS,qBAAqB,CAAC,YAA6B;IACjE,SAAS,0BAA0B,CAAC,OAAgB;QAClD,KAAK,MAAM,MAAM,IAAI,uEAAiC,EAAE;YACtD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACzB;IACH,CAAC;IAED,SAAS,yBAAyB,CAAC,OAAgB;QACjD,KAAK,MAAM,MAAM,IAAI,sEAAgC,EAAE;YACrD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACzB;IACH,CAAC;IAGD,IAAI,mEAA+B,CAAC,qDAAe,CAAC,EAAE;QACpD,QAAQ,YAAY,EAAE;YACpB,KAAK,IAAI,CAAC,CAAC;gBACT,0BAA0B,CAAC,IAAI,CAAC,CAAC;gBACjC,yBAAyB,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM;aACP;YACD,KAAK,0DAAc,CAAC,CAAC;gBACnB,0BAA0B,CAAC,KAAK,CAAC,CAAC;gBAClC,yBAAyB,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM;aACP;YACD,KAAK,yDAAa,CAAC,CAAC;gBAClB,0BAA0B,CAAC,IAAI,CAAC,CAAC;gBACjC,yBAAyB,CAAC,KAAK,CAAC,CAAC;gBACjC,MAAM;aACP;YACD;gBACE,qDAAc,CAAC,YAAY,CAAC,CAAC;SAChC;KACF;IACD,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,oBAAoB;IAClC,0DAA4B,EAAE,CAAC;IAE/B,IAAI,mDAAS,EAAE,EAAE;QACf,wCAAU,EAAE,CAAC;KACd;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzGyB;AACgB;AACP;AAEmB;AACtB;AACS;AAMlC,SAAS,KAAK,CAAC,aAAsB;;IAC1C,IAAI,iEAA2B,EAAE;QAC/B,OAAO;KACR;IAGD,MAAM,OAAO,GAAG,mBAAa,aAAb,aAAa,cAAb,aAAa,GAAI,4EAAsC,mCAAI,CAAC,CAAC;IAE7E,4DAAuB,CAAC;QACtB,IAAI,EAAE,aAAa;QACnB,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAEM,SAAS,IAAI;IAClB,IAAI,CAAC,iEAA2B,EAAE;QAChC,OAAO;KACR;IAGD,4DAAuB,CAAC;QACtB,IAAI,EAAE,YAAY;KACnB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB;IAC9B,MAAM,YAAY,GAAG,4EAAuC,CAAC;IAC7D,OAAO,iEAA2B;QAChC,CAAC,CAAC,kEAA4B;QAC9B,CAAC,CAAC,YAAY,CAAC;AACnB,CAAC;AAEM,SAAS,WAAW,CACzB,OAAe,EACf,SAAS,GAAG,KAAK,EACjB,KAAK,GAAG,KAAK;IAEb,MAAM,YAAY,GAAG,4EAAuC,CAAC;IAC7D,MAAM,cAAc,GAAG,uBAAuB,EAAE,CAAC;IAIjD,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,GAAW,EAAE,GAAW,EAAE,EAAE,CACpD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;IACnD,IAAI,cAAc,KAAK,UAAU,EAAE;QACjC,OAAO;KACR;IAID,IAAI,uEAAiC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;QACxD,OAAO;KACR;IAGD,KAAK,CAAC,UAAU,CAAC,CAAC;IAMlB,IACE,SAAS;QACT,iEAA2B,KAAK,IAAI;QACpC,mFAA6C;QAC7C,CAAC,0EAAoC,EACrC;QACA,4DAAuB,CAAC;YACtB,IAAI,EAAE,yBAAyB;YAC/B,iBAAiB,EAAE,KAAK;SACzB,CAAC,CAAC;KACJ;IAED,4DAAuB,CAAC;QACtB,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,UAAU;KACpB,CAAC,CAAC;IAEH,IACE,iEAA2B,KAAK,IAAI;QACpC,0EAAoC;QACpC,mFAA6C,EAC7C;QACA,4DAAuB,CAAC;YACtB,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,UAAU;SACpB,CAAC,CAAC;KACJ;AACH,CAAC;AAEM,SAAS,0BAA0B,CACxC,OAAe,EACf,KAAa;IAEb,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAG3B,4CAAc,EAAE,CAAC;IACjB,MAAM,IAAI,GAAG,4DAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,2CAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAMM,SAAS,IAAI,CAAC,SAAS,GAAG,IAAI;IACnC,WAAW,CAAC,uBAAuB,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;AACxD,CAAC;AAEM,SAAS,OAAO;IACrB,WAAW,CAAC,uBAAuB,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;AACnD,CAAC;AAEM,SAAS,SAAS;IACvB,WAAW,CAAC,uBAAuB,EAAE,GAAG,gEAA0B,EAAE,IAAI,CAAC,CAAC;AAC5E,CAAC;AAEM,SAAS,YAAY;IAC1B,WAAW,CAAC,uBAAuB,EAAE,GAAG,gEAA0B,EAAE,IAAI,CAAC,CAAC;AAC5E,CAAC;AAEM,SAAS,QAAQ;IACtB,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC;AAEM,SAAS,WAAW;IACzB,MAAM,YAAY,GAAG,4EAAuC,CAAC;IAC7D,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC;AAMM,SAAS,UAAU;IAGxB,yDAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEjC,IAAI,EAAE,CAAC;AACT,CAAC;AAOD,SAAS,sBAAsB,CAAC,CAAS,EAAE,CAAS;IAClD,MAAM,YAAY,GAAG,4EAAuC,CAAC;IAC7D,MAAM,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC3C,CAAC;AAGM,SAAS,QAAQ;IACtB,MAAM,KAAK,GACT,sEAAgC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;IACtE,MAAM,CAAC,GAAG,sEAAiC,EAAE,CAAC;IAC9C,WAAW,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC;AAGM,SAAS,SAAS,CAEvB,CAAqC;IAErC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,KAAK,GAAG,CAAC,CAAC;KACX;SAAM,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,KAAK,GAAG,CAAC,CAAC,CAAC;KACZ;SAAM;QACL,OAAO;KACR;IAED,WAAW,CAAC,uBAAuB,EAAE,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAIM,SAAS,gBAAgB,CAE9B,GAAmB;IAEnB,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,GAAW,EAAE,GAAW,EAAE,EAAE,CACpD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAElC,MAAM,GAAG,GACP,oFAA+C,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC;IAC3E,MAAM,CAAC,GAAG,sEAAiC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAE7D,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEpD,MAAM,YAAY,GAAG,4EAAuC,CAAC;IAC7D,MAAM,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC;IAE9B,OAAO;QACL,CAAC,EAAE,GAAG,GAAG,OAAO,GAAG,IAAI;QACvB,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;KAChC,CAAC;AACJ,CAAC;AAGM,SAAS,eAAe;IAC7B,MAAM,GAAG,GACP,oFAA+C,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC;IAC3E,MAAM,CAAC,GAAG,sEAAiC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC7D,MAAM,UAAU,GAAG,sBAAsB,CACvC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,GAAG,EAClC,CAAC,CACF,CAAC;IACF,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAgB,EAChB,aAAqB,EACrB,OAAgB,EAChB,IAAa;IAEb,IAAI,YAAY,GAAG,4EAAsC,CAAC;IAC1D,IACE,YAAY,KAAK,IAAI;QACrB,YAAY,KAAK,CAAC,EAClB;QAGA,YAAY,GAAG,CAAC,CAAC;KAClB;IACD,MAAM,IAAI,GAAG,0DAAoB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,sEAAiC,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IACtE,MAAM,CAAC,GACL,kEAA6B,EAAE;QAC/B,CAAC,OAAO,GAAG,YAAY,CAAC,GAAG,aAAa;QACxC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC,GAAG,kEAA6B,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAClE,IAAI,OAAO,EAAE;QACX,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;KACnB;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,sDAAO,CACL,OAAO,EACP;QACE,QAAQ,EAAE,IAAI;QACd,CAAC;QACD,CAAC;QACD,KAAK;QAEL,MAAM,EAAE,8DAAqB;KAC9B,EACD,IAAI,EACJ,IAAI,CACL,CAAC;AACJ,CAAC;AAEM,SAAS,cAAc,CAAC,IAAa;IAE1C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IACE,iEAA2B,KAAK,IAAI;QACpC,CAAC,mFAA6C;QAC9C,kEAA4B,KAAK,yEAAmC,EACpE;QACA,OAAO,GAAG,IAAI,CAAC;KAChB;IAED,MAAM,eAAe,GAAG,+EAA0C,EAAE,CAAC;IAIrE,qBAAqB,CACnB,oEAA+B,EAC/B,kEAA4B,EAC5B,OAAO,EACP,IAAI,IAAI,eAAe,CACxB,CAAC;IAGF,kFAA6C,CAC3C,iEAA2B,KAAK,IAAI,CACrC,CAAC;IACF,IAAI,iEAA2B,KAAK,IAAI,EAAE;QACxC,qBAAqB,CACnB,0EAAqC,EACrC,yEAAmC,EACnC,KAAK,EACL,IAAI;YACF,CAAC,eAAe;gBACd,yEAAmC,KAAK,kEAA4B,CAAC,CAC1E,CAAC;KACH;AACH,CAAC;AAMM,SAAS,UAAU;IACxB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC;IACrE,IAAI,UAAU,KAAK,IAAI,EAAE;QACvB,OAAO;KACR;IACD,IAAI,UAAU,GAAG,mDAAY,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;QAC5B,OAAO;KACR;IAID,UAAU,IAAI,CAAC,CAAC;IAEhB,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAMM,SAAS,oBAAoB;IAClC,IAAI,iEAA2B,KAAK,IAAI,EAAE;QACxC,OAAO;KACR;IAED,4DAAuB,CAAC;QACtB,IAAI,EAAE,yBAAyB;QAC/B,iBAAiB,EAAE,CAAC,mFAA6C;KAClE,CAAC,CAAC;AACL,CAAC;;;;;;;;;;;;;;;;;ACxV+B;AAEjB,SAAS,gBAAgB,CAAC,OAAgB;IACvD,IAAI,OAAO,KAAK,kEAA4B,EAAE;QAC5C,OAAO;KACR;IAED,kEAA4B,GAAG,OAAO,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,kEAA4B,EAAE;QAC/C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KAC1B;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACRyC;AACH;AACkB;AACA;AACtB;AAEH;AAEzB,SAAS,gBAAgB,CAAC,GAAW;IAC1C,4DAAuB,CAAC;QACtB,IAAI,EAAE,WAAW;QACjB,GAAG;KACJ,CAAC,CAAC;IAEH,IAAI,gEAA0B,KAAK,IAAI,EAAE;QACvC,OAAO;KACR;IAED,IACE,iEAA2B,KAAK,IAAI;QACpC,0EAAoC,EACpC;QACA,6DAAwB,CAAC,cAAc,EAAE;YACvC,OAAO,EAAE,2DAAqB;YAC9B,IAAI,EAAE,0EAA8B;YACpC,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;KACJ;AACH,CAAC;AAEM,SAAS,oBAAoB,CAElC,KAAyC;IAGzC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QAE1B,OAAO;KACR;IAGD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;QACrB,0CAAY,CAAC,KAAK,EAAE,uEAA2B,CAAC,CAAC;QACjD,OAAO;KACR;IAED,IAAI,iEAA2B,IAAI,CAAC,4DAAsB,EAAE;QAC1D,gDAAkB,CAChB,kEAAkE,CACnE,CAAC;QACF,OAAO;KACR;IAED,IACE,4DAAsB;QACtB,iEAA2B,KAAK,IAAI;QACpC,CAAC,0EAAoC,EACrC;QACA,gDAAkB,CAChB,0DAA0D,CAC3D,CAAC;QACF,OAAO;KACR;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAChC,4BAA4B,4EAAsC,8EAA8E,CACjJ,CAAC;IACF,IAAI,YAAY,KAAK,IAAI,EAAE;QAEzB,OAAO;KACR;IACD,MAAM,MAAM,GAAG,mDAAY,CAAC,YAAY,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;QAExB,OAAO;KACR;IAED,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;;;;;;;;;;;;;;;;;;;;;AC/EsD;AAEvB;AACW;AAiBpC,SAAS,MAAM,CAAC,IAAe;IACpC,IAAI,EAAE,CAAC;IAGP,IAAI,6DAAuB,KAAK,IAAI,IAAI,6DAAuB,KAAK,IAAI,EAAE;QACxE,OAAO;KACR;IAID,IAAI,gEAA0B,EAAE;QAC9B,OAAO;KACR;IAGD,yDAAmB,GAAG,IAAI,CAAC,KAAK,CAAC;IACjC,+DAAyB,GAAG,IAAI,CAAC,iBAAiB,CAAC;IACnD,uDAAiB,GAAG,IAAI,CAAC,SAAS,CAAC;IAGnC,IAAI,2DAAqB,EAAE;QACzB,8DAAwB,GAAG,yDAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KACxE;IAGD,mEAA6B,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAGrD,IAAI,2DAAqB,EAAE;QAEzB,IAAI,IAAI,GAAG,yDAAmB,CAAC,qEAA+B,CAAC,CAAC;QAChE,IAAI,CAAC,2DAAqB,EAAE;YAE1B,IAAI,IAAI,CAAC,CAAC,CAAC;SACZ;QACD,0EAAoC,CAAC,gEAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;KACvE;IAED,MAAM,OAAO,GACX,2DAAqB;QACrB,IAAI,CAAC,iBAAiB,KAAK,qEAA+B,CAAC;IAC7D,IAAI,CAAC,OAAO,EAAE;QAEZ,IAAI,IAAI,GAAG,yDAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvD,IAAI,CAAC,2DAAqB,EAAE;YAE1B,IAAI,IAAI,CAAC,CAAC,CAAC;SACZ;QACD,0EAAoC,CAAC,gEAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,MAAM,gBAAgB,GACpB,kEAA4B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvD,0EAAoC,CAAC,gBAAgB,CAAC,CAAC;KACxD;IAED,qEAA+B,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,iBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,oEAA8B,EAAE,CAAC;IAGjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gEAA0B,EAAE,CAAC,EAAE,EAAE;QACnD,yBAAyB,CAAC,CAAC,CAAC,CAAC;KAC9B;IACD,2BAA2B,EAAE,CAAC;IAG9B,IAAI,IAAI,CAAC,iBAAiB,KAAK,CAAC,CAAC,EAAE;QACjC,OAAO;KACR;IAGD,MAAM,WAAW,GAAG,OAAO;QACzB,CAAC,CAAC,6DAAuB;QACzB,CAAC,CAAC,6DAAuB,CAAC;IAC5B,qDAAe,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;QACxC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAChC,yBAAyB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAClD,2BAA2B,EAAE,CAAC;IAChC,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;AAEM,SAAS,IAAI;IAClB,IAAI,qDAAe,KAAK,IAAI,EAAE;QAC5B,MAAM,CAAC,aAAa,CAAC,qDAAe,CAAC,CAAC;QACtC,qDAAe,GAAG,IAAI,CAAC;KACxB;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAmB;IAE7C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,GAAG,GAAG,mEAA6B,CAAC;IACxD,mEAA6B,GAAG,GAAG,CAAC;IACpC,IAAI,WAAW,GAAG,CAAC,EAAE;QACnB,OAAO;KACR;IAGD,yDAAmB,CAAC,+DAAyB,CAAC,IAAI,WAAW,CAAC;IAC9D,IACE,2DAAqB;QACrB,yDAAmB,CAAC,+DAAyB,CAAC,GAAG,CAAC,EAClD;QAGA,yDAAmB,CAAC,+DAAyB,CAAC,GAAG,CAAC,CAAC;KACpD;IAED,IAAI,gBAAgB,GAAG,yDAAmB,CAAC,+DAAyB,CAAC,CAAC;IACtE,IAAI,CAAC,2DAAqB,EAAE;QAE1B,gBAAgB,IAAI,CAAC,CAAC,CAAC;KACxB;IACD,MAAM,aAAa,GAAG,gEAAyB,CAAC,gBAAgB,CAAC,CAAC;IAGlE,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAClC,wDAAS,CAAC,KAAK,CAAC,CAAC;IAIjB,IACE,2DAAqB;QACrB,uEAAiC;QACjC,gBAAgB,GAAG,CAAC;QACpB,gBAAgB,IAAI,KAAK;QACzB,WAAW,GAAG,GAAG;QACjB,WAAW,GAAG,IAAI;QAClB,CAAC,gEAA0B;QAC3B,CAAC,iEAA2B,EAC5B;QACA,8DAAyB,CAAC,MAAM,CAAC,CAAC;KACnC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,CAAS;IAE1C,IAAI,yEAAmC,IAAI,8DAAwB,EAAE;QACnE,OAAO;KACR;IAGD,IAAI,IAAI,GAAG,yDAAmB,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,CAAC,2DAAqB,EAAE;QAE1B,IAAI,IAAI,CAAC,CAAC,CAAC;KACZ;IAED,IAAI,OAAO,GAAG,OAAO,CAAC;IACtB,IAAI,2DAAqB,EAAE;QACzB,OAAO,IAAI,WAAW,CAAC;KACxB;SAAM;QACL,OAAO,IAAI,OAAO,CAAC;KACpB;IACD,OAAO,IAAI,iBAAiB,CAAC;IAC7B,OAAO,IAAI,gEAAyB,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,IAAI,WAAW,CAAC;IACvB,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,2BAA2B;IAElC,IAAI,CAAC,2DAAqB,IAAI,CAAC,+EAAyC,EAAE;QACxE,OAAO;KACR;IAGD,IAAI,IAAI,GACN,8DAAwB,GAAG,yDAAmB,CAAC,+DAAyB,CAAC,CAAC;IAO5E,IAAI,IAAI,uDAAiB,CAAC;IAE1B,IAAI,OAAO,GAAG,wCAAwC,CAAC;IACvD,OAAO,IAAI,gEAAyB,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,IAAI,WAAW,CAAC;IACvB,CAAC,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACpE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACzMyB;AACoB;AACF;AAGZ;AAEzB,SAAS,IAAI,CAClB,OAAwB,EACxB,OAAgB,EAChB,aAAsB;IAEtB,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE;QACrC,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;KACH;IACD,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE;QACxC,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;KACH;IAED,OAAO,CAAC,EAAE,CAAC,sBAAsB,EAAE,SAAS,SAAS;QACnD,gBAAgB,EAAE,CAAC;QACnB,yDAAmB,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC;SACZ;aAAM;YACL,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,CAAC,EAAE,qDAAa,CAAC,CAAC;SACnB;IACH,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACnC,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE;YACrC,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;SACH;QACD,yDAAmB,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC,YAAY,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IACrC,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,GAAG,mCAAmC,CAAC;QAC9C,OAAO,IAAI,0CAA0C,CAAC;QACtD,OAAO,IAAI,UAAU,OAAO,CAAC,cAAc,SAAS,CAAC;KACtD;IACD,CAAC,CAAC,YAAY,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAChF,CAAC;AAEM,SAAS,IAAI,CAAC,OAAwB;IAE3C,IAAI,iEAA2B,KAAK,6DAAW,EAAE;QAC/C,OAAO;KACR;IAGD,IAAI,yDAAmB,KAAK,OAAO,EAAE;QACnC,OAAO;KACR;IAED,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE;QACrC,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;KACH;IACD,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAC1C,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAC5B,IAAI,OAAO,YAAY,mDAAU,EAAE;QACjC,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QAK/B,MAAM,IAAI,GAAG,OAA0B,CAAC;QACxC,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;SACzB;KACF;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1B,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAEM,SAAS,gBAAgB;IAC9B,IAAI,yDAAmB,KAAK,IAAI,EAAE;QAChC,uEAAiC,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;KAC/D;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5FoD;AACV;AACE;AAEV;AACS;AACZ;AACe;AACX;AACC;AACF;AAE5B,SAAS,KAAK;IACnB,iBAAiB,EAAE,CAAC;IAEpB,IAAI,yDAAmB,EAAE;QACvB,OAAO;KACR;IAED,IAAI,gFAA0C,EAAE;QAC9C,gDAAkB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;KAChD;IAED,aAAa,EAAE,CAAC;AAClB,CAAC;AAGD,SAAS,aAAa;IAEpB,MAAM,EAAE,OAAO,EAAE,GAAG,mDAAa,CAAC;IAClC,MAAM,EAAE,UAAU,EAAE,GAAG,+DAAyB,CAAC;IAEjD,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,OAAO;KACR;IAGD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACxC,4DAAuB,CAAC;QACtB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAGH,QAAQ,IAAI,EAAE;QACZ,KAAK,gEAAoB,CAAC;QAC1B,KAAK,+DAAmB,CAAC,CAAC;YAExB,IAAI,UAAU,GAAG,+DAA2B,CAAC,CAAC,EAAE,qDAAe,CAAC,EAAE;gBAChE,OAAO;aACR;YAED,MAAM;SACP;QAED,KAAK,8DAAkB,CAAC,CAAC;YAEvB,IAAI,yDAAqB,CAAC,UAAU,EAAE,qDAAe,CAAC,EAAE;gBACtD,OAAO;aACR;YAED,MAAM;SACP;QAED,OAAO,CAAC,CAAC;YACP,MAAM;SACP;KACF;IAGD,UAAU,CAAC,GAAG,EAAE;QAEd,IAAI,CAAC,mDAAS,EAAE,EAAE;YAChB,OAAO;SACR;QAED,6DAAwB,CAAC,QAAQ,EAAE;YACjC,OAAO,EAAE,2DAAqB;YAC9B,IAAI;YACJ,MAAM;YACN,KAAK;SACN,CAAC,CAAC;QAEH,4BAA4B,EAAE,CAAC;IACjC,CAAC,EAAE,qDAAa,CAAC,CAAC;AACpB,CAAC;AAEM,SAAS,iBAAiB;IAE/B,uFAAkD,EAAE,CAAC;IAErD,iEAA2B,EAAE,CAAC;AAChC,CAAC;AAEM,SAAS,GAAG,CAAC,YAA0B;IAC5C,IAAI,uEAAiC,KAAK,IAAI,EAAE;QAC9C,+CAAiB,CAAC,YAAY,CAAC,CAAC;QAChC,OAAO;KACR;IAED,MAAM,EAAE,kBAAkB,EAAE,GAAG,oEAA8B,CAAC;IAC9D,MAAM,EAAE,cAAc,EAAE,GAAG,sDAAgB,CAAC;IAC5C,IAAI,kBAAkB,KAAK,cAAc,EAAE;QACzC,yCAAW,EAAE,CAAC;QACd,6DAAwB,CAAC,QAAQ,EAAE;YACjC,OAAO,EAAE,2DAAqB;YAC9B,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,KAAK,EAAE,YAAY,CAAC,KAAK;SAC1B,CAAC,CAAC;QACH,4BAA4B,EAAE,CAAC;KAChC;SAAM;QACL,4DAAuB,CAAC;YACtB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;KACJ;AACH,CAAC;AAEM,SAAS,4BAA4B;IAC1C,4CAAc,EAAE,CAAC;IAIjB,IAAI,CAAC,4EAAsC,EAAE;QAC3C,0DAA4B,EAAE,CAAC;KAChC;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC/HyB;AACgB;AACN;AACmB;AACzB;AACE;AACO;AAKxB,SAAS,MAAM;IAC5B,IAAI,+DAAyB,KAAK,IAAI,EAAE;QACtC,MAAM,IAAI,KAAK,CACb,sGAAsG,CACvG,CAAC;KACH;IAKD,yDAAmB,GAAG,+DAAyB,CAAC;IAEhD,IAAI,kEAA4B,EAAE;QAIhC,yBAAyB,EAAE,CAAC;QAC5B,OAAO;KACR;IAQD,0EAAoC,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE;QACrE,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;QACvC,YAAY,CAAC,SAAS,EAAE,CAAC;IAC3B,CAAC,CAAC;IACF,0EAAoC,GAAG,yBAAyB,CAAC;IAGjE,MAAM,IAAI,GAAG,yDAAmB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,0DAAoB,EAAE,CAAC;IAGpC,MAAM,YAAY,GAAG,IAAI,oDAAW,CAAC;QACnC,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAI,mDAAU,CAAC;QAClC,IAAI,EAAE,mDAAW;QACjB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,QAAQ,GAAG,IAAI;QAC5B,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,QAAQ;QACf,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,GAAG,GAAG,IAAI;QACb,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI,GAAG,IAAI;QACnB,UAAU,EAAE,OAAO;QACnB,SAAS,EAAE,MAAM;QACjB,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE/B,MAAM,aAAa,GAAG,IAAI,mDAAU,CAAC;QACnC,IAAI,EAAE,mDAAW;QACjB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,QAAQ,GAAG,IAAI;QAC5B,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,QAAQ;QACf,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,GAAG,GAAG,IAAI;QACb,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI,GAAG,IAAI;QACnB,UAAU,EAAE,OAAO;QACnB,SAAS,EAAE,MAAM;QACjB,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAEhC,uDAAiB,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,yBAAyB;IAIhC,wDAAkB,GAAG,mDAAS,CAC5B,qDAAe,EACf,2EAAqC,EACrC,yEAAmC,EACnC,IAAI,EACJ,yDAA2B,EAC3B,0DAA4B,EAC5B,yDAA2B,CAC5B,CAAC;IAGF,gDAAM,EAAE,CAAC;IAGT,2CAAa,EAAE,CAAC;IAIhB,6DAAwB,CAAC,cAAc,EAAE;QACvC,OAAO,EAAE,2DAAqB;KAC/B,CAAC,CAAC;AACL,CAAC;;;;;;;;;;;;;;;;;;;;AChH6C;AAMJ;AACI;AAIvC,MAAM,OAAO;IAApB;QAEE,YAAO,GAAW,+CAAO,CAAC;QAE1B,SAAI,GAAsB,IAAI,CAAC;QAG/B,WAAM,GAAG,CAAC,CAAC,CAAC;QACZ,aAAQ,GAAG,EAAE,CAAC;QACd,eAAU,GAAG,CAAC,CAAC;QACf,UAAK,GAAG,KAAK,CAAC;QACd,oBAAe,GAAG,EAAE,CAAC;QACrB,aAAQ,GAAa,IAAI,0DAAQ,EAAE,CAAC;QAEpC,YAAO,GAAa,EAAE,CAAC;QACvB,iBAAY,GAAG,KAAK,CAAC;QACrB,yBAAoB,GAAG,IAAI,IAAI,EAAE,CAAC;QAClC,oBAAe,GAAG,KAAK,CAAC;QAExB,YAAO,GAAG,IAAI,GAAG,EAAgB,CAAC;QAClC,aAAQ,GAAG,IAAI,GAAG,EAAiB,CAAC;QACpC,YAAO,GAAkB,EAAE,CAAC;QAC5B,mBAAc,GAAkB,EAAE,CAAC;QACnC,sBAAiB,GAAG,CAAC,CAAC;QAEtB,iBAAY,GAAa,EAAE,CAAC;QAE5B,2BAAsB,GAAG,KAAK,CAAC;QAC/B,gBAAW,GAAG,CAAC,CAAC;QAEhB,SAAI,GAAgB,IAAI,CAAC;QAEzB,kBAAa,GAAW,8DAAY,CAAC;QACrC,iBAAY,GAAG,KAAK,CAAC;QACrB,YAAO,GAAG,CAAC,CAAC,CAAC;QACb,kBAAa,GAAG,KAAK,CAAC;QAGtB,gBAAW,GAAkB,IAAI,CAAC;QAClC,OAAE,GAAoB,IAAI,CAAC;QAE3B,eAAU,GAAG,CAAC,CAAC;QAEf,sBAAiB,GAAuB,IAAI,CAAC;QAE7C,qBAAgB,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/E,CAAC;CAAA;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,iEAAe,OAAO,EAAC;AASvB,IAAI,MAAM,KAAK,SAAS,EAAE;IACxB,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC;CAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvEqC;AACU;AACd;AACe;AACc;AAC9B;AAMhB;AACmB;AAIpC,MAAM,aAAa,GAAG;IACpB,YAAY;IACZ,SAAS;IACT,iBAAiB;IACjB,mBAAmB;CACpB,CAAC;AACF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,8DAAa,EAAE,CAAC,CAAC;AAGjD,IAAI,SAA0B,CAAC;AAC/B,IAAI,SAA0B,CAAC;AAExB,SAAS,IAAI;IAClB,SAAS,GAAG,CAAC,CAAC,gCAAgC,CAAC,CAAC;IAChD,SAAS,GAAG,CAAC,CAAC,gCAAgC,CAAC,CAAC;IAEhD,wBAAwB,EAAE,CAAC;IAC3B,yBAAyB,EAAE,CAAC;IAG5B,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAC1B,MAAM,kBAAkB,GAAG,sDAAe,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC;QACvD,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QACjC,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC1C,CAAC,CAAC,0BAA0B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChD,CAAC,CAAC,6BAA6B,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,CAAC,CAAC,6BAA6B,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,CAAC,CAAC,6BAA6B,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,CAAC,CAAC,6BAA6B,CAAC,CAAC,IAAI,EAAE,CAAC;SACzC;aAAM;YACL,CAAC,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChD,CAAC,CAAC,0BAA0B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC,CAAC,6BAA6B,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,CAAC,CAAC,6BAA6B,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,CAAC,CAAC,6BAA6B,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,CAAC,CAAC,6BAA6B,CAAC,CAAC,IAAI,EAAE,CAAC;SACzC;QAGD,CAAC,CAAC,gCAAgC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAG9D,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC7C,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,EAAE,CAAC;YACnC,CAAC,CAAC,gCAAgC,CAAC,CAAC,IAAI,EAAE,CAAC;SAC5C;aAAM;YACL,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,EAAE,CAAC;YACnC,CAAC,CAAC,gCAAgC,CAAC,CAAC,IAAI,EAAE,CAAC;SAC5C;QAGD,CAAC,CAAC,gCAAgC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAG9D,WAAW,CAAC,qBAAqB,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,iCAAiC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAC9C,CAAC,CAAC,4BAA4B,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC,CAAC,qCAAqC,CAAC,CAAC,IAAI,EAAE,CAAC;QAGhD,CAAC,CAAC,gCAAgC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QACxC,IAAI,CAAC,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;YAChD,CAAC,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/C,CAAC,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACpD,CAAC,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;SACzD;aAAM;YACL,CAAC,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7C,CAAC,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;SAC5D;QAGD,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QACvC,IAAI,CAAC,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;YAC/C,CAAC,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAChD,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACrD,CAAC,CAAC,+BAA+B,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;SAC1D;aAAM;YACL,CAAC,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC,CAAC,+BAA+B,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;SAC7D;QAGD,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,gCAAgC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QAC9C,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,gCAAgC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QAC9C,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QAC3C,qBAAqB,CAAC,4BAA4B,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,gCAAgC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QAC9C,wBAAwB,CAAC,+BAA+B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QACrC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QACrC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QACtC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QACxC,WAAW,CAAC,yBAAyB,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,mCAAmC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QACjD,WAAW,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QACjD,IAAI,KAAK,CAAC,KAAK,KAAK,kDAAkB,EAAE;YACtC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,CAAC,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;SAClC;IACH,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AASD,SAAS,wBAAwB;IAE/B,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE;QAEvC,IAAI,6DAAY,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE;YAC3C,MAAM,IAAI,KAAK,CACb,2BAA2B,WAAW,+CAA+C,CACtF,CAAC;SACH;QAED,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACpD,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAC1B;IACD,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC9C,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,MAAM,UAAU,GAAG,2BAA2B,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1C,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAG7B,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE;QACpB,IAAI,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACjC,SAAS,GAAG,YAAY,CAAC;SAC1B;QAED,IAAI,SAAS,KAAK,UAAU,EAAE;YAC5B,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,SAAS,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC,CAAC,qCAAqC,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;SACnB;aAAM;YAEL,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC1C;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,yBAAyB;IAEhC,KAAK,MAAM,WAAW,IAAI,8DAAa,EAAE,EAAE;QACzC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC,CAAC,qCAAqC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;KAC5D;IAED,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAEzB,IAAI,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;SAC5B;QACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,MAAM,GAAG,YAAY,CAAC;SACvB;QAGD,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAGtC,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAClC,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtB,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,CAAC,CAAC,qCAAqC,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;SACnB;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,MAAM;IAEb,MAAM,eAAe,GAAG,qBAAqB,CAAC,4BAA4B,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;IAGzD,MAAM,IAAI,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE,CAAC;IAGzC,MAAM,QAAQ,GAAG,CAAC,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAE,CAAC;IACjD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAChC,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;KACH;IACD,YAAY,CAAC,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IAGtD,MAAM,cAAc,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE,CAAC;IACnD,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;KACH;IACD,IAAI,QAA6B,CAAC;IAClC,IAAI,cAAc,KAAK,EAAE,EAAE;QACzB,IAAI;YACF,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAY,CAAC;SAClD;QAAC,OAAO,GAAG,EAAE;YACZ,8CAAgB,CAAC,kCAAkC,CAAC,CAAC;YACrD,OAAO;SACR;QACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAChC,8CAAgB,CAAC,kCAAkC,CAAC,CAAC;YACrD,OAAO;SACR;KACF;IAED,uDAAkB,CAAC,aAAa,EAAE;QAChC,IAAI;QACJ,OAAO,EAAE;YACP,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC;YAC7C,KAAK,EAAE,WAAW,CAAC,kBAAkB,CAAC;YACtC,QAAQ,EAAE,eAAe;YACzB,WAAW,EAAE,wBAAwB,CAAC,+BAA+B,CAAC;YACtE,QAAQ,EAAE,WAAW,CAAC,qBAAqB,CAAC;YAC5C,SAAS,EAAE,WAAW,CAAC,sBAAsB,CAAC;YAC9C,SAAS,EAAE,WAAW,CAAC,sBAAsB,CAAC;YAC9C,UAAU,EAAE,WAAW,CAAC,uBAAuB,CAAC;YAChD,YAAY,EAAE,WAAW,CAAC,yBAAyB,CAAC;YACpD,WAAW,EAAE,WAAW,CAAC,wBAAwB,CAAC;YAClD,YAAY,EAAE,WAAW,CAAC,yBAAyB,CAAC;YACpD,qBAAqB,EAAE,WAAW,CAAC,kCAAkC,CAAC;SACvE;QACD,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;IAEH,uDAAgB,EAAE,CAAC;IACnB,CAAC,CAAC,gCAAgC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,WAAW,CAAC,OAAuB;IAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAA4B,CAAC;IAC5E,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,IAAI,CAAC,CAAC;KAC/D;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IAC9B,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,OAAuB;IACzC,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;IACjC,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,IAAI,CAAC,CAAC;KAC/D;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC5B,IAAI,8CAAO,CAAC,KAAK,CAAC,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,uCAAuC,OAAO,IAAI,CAAC,CAAC;KACrE;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,oBAAoB,CAAC,CAAC;KACvE;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAuB;IACvD,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;IACjC,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,IAAI,CAAC,CAAC;KAC/D;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,KAAK,GAAG,mDAAY,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAEvB,KAAK,GAAG,EAAE,CAAC;QAGX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC/B;IAED,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAuB;IACpD,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;IACjC,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,IAAI,CAAC,CAAC;KAC/D;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAEvB,KAAK,GAAG,CAAC,CAAC;QAGV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC/B;IAED,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,OAAuB;IACzC,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;IACjC,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,IAAI,CAAC,CAAC;KAC/D;IACD,IAAI,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC3B,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,IAAI,KAAK,KAAK,EAAE,EAAE;QAChB,KAAK,GAAG,YAAY,CAAC;KACtB;IACD,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAEM,SAAS,YAAY,CAC1B,WAA2B,EAC3B,KAAgC;IAEhC,IAAI,KAAK,KAAK,sDAAgB,CAAC,WAAW,CAAC,EAAE;QAG1C,sDAAgB,CAAC,WAAW,CAAS,GAAG,KAAK,CAAC;QAC/C,uDAAkB,CAAC,SAAS,EAAE;YAC5B,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE;SAC1B,CAAC,CAAC;KACJ;AACH,CAAC;AAIM,SAAS,MAAM;IAEpB,IAAI,CAAC,CAAC,gCAAgC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;QAC5D,OAAO,KAAK,CAAC;KACd;IAED,IAAI,0DAAoB,EAAE;QACxB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,uBAAuB,GAC3B,GAAG,CAAC,OAAO,EAAE,GAAG,0EAAoC,EAAE,CAAC;QAEzD,MAAM,2BAA2B,GAAG,wDAAgB,GAAG,EAAE,GAAG,IAAI,CAAC;QACjE,MAAM,gBAAgB,GACpB,2BAA2B,GAAG,uBAAuB,CAAC;QACxD,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,UAAU,EAAE,CAAC;QAC5D,IAAI,WAAW,IAAI,CAAC,EAAE;YACpB,IAAI,GAAG,GAAG,8BAA8B,CAAC;YACzC,IAAI,WAAW,IAAI,CAAC,EAAE;gBACpB,GAAG,IAAI,aAAa,CAAC;aACtB;iBAAM,IAAI,WAAW,KAAK,CAAC,EAAE;gBAC5B,GAAG,IAAI,aAAa,CAAC;aACtB;iBAAM;gBACL,GAAG,IAAI,MAAM,WAAW,UAAU,CAAC;aACpC;YACD,GAAG,IAAI,sDAAsD,CAAC;YAC9D,gDAAkB,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,KAAK,CAAC;SACd;KACF;IAED,IAAI,6DAAuB,EAAE;QAC3B,gDAAkB,CAChB,iGAAiG,CAClG,CAAC;QACF,OAAO,KAAK,CAAC;KACd;IAED,oDAAsB,CAAC,GAAG,CAAC,CAAC;IAE5B,OAAO,IAAI,CAAC;AACd,CAAC;AAIM,SAAS,KAAK;IAEnB,IAAI,8CAAgB,CAAC,sDAAgB,CAAC,EAAE;QACtC,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;KACxC;SAAM;QACL,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,6DAAuB,CAAC,CAAC;QAGnD,uDAAkB,CAAC,SAAS,CAAC,CAAC;KAC/B;IAID,UAAU,CAAC,GAAG,EAAE;QACd,CAAC,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC,EAAE,CAAC,CAAC,CAAC;IAIN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,sDAAgB,CAAC,EAAE;QAC3D,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAC7B,IAAI,GAAG,KAAK,oBAAoB,EAAE;YAGhC,YAAY,CAAC,KAAK,CAAC,CAAC;SACrB;aAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;YAErC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC/B,OAAO,CAAC,MAAM,EAAE,CAAC;SAClB;aAAM;YAEL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACpB;KACF;IAID,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC7D,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE;QACxC,CAAC,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KACzC;IAGD,IACE,CAAC,0EAAoC;QACrC,CAAC,2EAAqC;QACtC,CAAC,2EAAqC;QACtC,CAAC,4EAAsC;QACvC,CAAC,8EAAwC;QACzC,CAAC,6EAAuC;QACxC,CAAC,8EAAwC;QACzC,CAAC,uFAAiD,EAClD;QACA,CAAC,CAAC,4BAA4B,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC,CAAC,qCAAqC,CAAC,CAAC,IAAI,EAAE,CAAC;KACjD;SAAM;QACL,CAAC,CAAC,4BAA4B,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC,CAAC,qCAAqC,CAAC,CAAC,IAAI,EAAE,CAAC;KACjD;IAGD,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE;QAC5C,CAAC,CAAC,uBAAuB,CAAC,CAAC,IAAI,EAAE,CAAC;KACnC;IAGD,CAAC,CAAC,gCAAgC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IAEjC,IAAI,OAAe,CAAC;IACpB,IAAI,6DAAY,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;QACrC,OAAO,GAAG,uEAAoB,CAAC;QAC/B,yEAAmC,GAAG,OAAO,CAAC;KAC/C;SAAM;QACL,OAAO,GAAG,KAAK,CAAC;KACjB;IAGD,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEvC,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAEnC,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC,CAAC,qCAAqC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;KACnB;SAAM;QAEL,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC,CAAC,qCAAqC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;KACnB;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5hB4D;AAE5B;AACyC;AAE7C;AACS;AAEF;AACK;AAGzC,MAAM,cAAc,GAA0C;IAC5D,SAAS,EAAE,MAAM;IACjB,aAAa,EAAE,IAAI;IACnB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;CACxD,CAAC;AAEK,SAAS,IAAI;IAClB,CAAC,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAC7C,oEAA8B,GAAG,IAAI,CAAC;QACtC,IAAI,OAAe,CAAC;QACpB,IAAI,MAAc,CAAC;QACnB,IAAI,2DAAqB,KAAK,0DAAc,EAAE;YAC5C,OAAO,GAAG,YAAY,CAAC;YACvB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,qDAAe,CAAC,CAAC,MAAM,CAAC;SAC9C;aAAM,IAAI,2DAAqB,KAAK,iEAAqB,EAAE;YAC1D,OAAO,GAAG,mBAAmB,CAAC;YAC9B,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,4DAAsB,CAAC,CAAC,MAAM,CAAC;SACrD;aAAM;YACL,OAAO;SACR;QACD,uDAAkB,CAAC,OAAO,EAAE;YAC1B,MAAM;YACN,MAAM,EAAE,EAAE;SACX,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,SAAS,IAAI;IAClB,2DAAqB,GAAG,0DAAc,CAAC;IAEvC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC,CAAC,6BAA6B,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAGpD,sCAAQ,CAAC,SAAS,CAAC,CAAC;IACpB,IAAI,4DAAsB,KAAK,CAAC,EAAE;QAChC,CAAC,CAAC,mCAAmC,CAAC,CAAC,IAAI,EAAE,CAAC;KAC/C;SAAM;QACL,CAAC,CAAC,mCAAmC,CAAC,CAAC,IAAI,EAAE,CAAC;KAC/C;IAGD,CAAC,CAAC,yBAAyB,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,sDAAgB,EAAE,CAAC,CAAC;IAG1E,IAAI,CAAC,KAAK,CAAC,CAAC;AACd,CAAC;AAEM,SAAS,IAAI;IAClB,2DAAqB,GAAG,wDAAY,CAAC;IACrC,oDAAU,EAAE,CAAC;IACb,4CAAc,EAAE,CAAC;IAEjB,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC,CAAC,6BAA6B,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,6BAA6B,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACvD,sCAAQ,CAAC,OAAO,CAAC,CAAC;AACpB,CAAC;AAEM,SAAS,IAAI,CAAC,OAAgB;IACnC,MAAM,KAAK,GAAG,CAAC,CAAC,4BAA4B,CAAC,CAAC;IAG9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAGf,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC,OAAO,EAAE;QACZ,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,qDAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mDAAY,CAAC,CAAC,CAAC,CAAC,CAAC;KAChE;SAAM;QACL,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,4DAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mDAAY,CAAC,CAAC,CAAC,CAAC,CAAC;KACvE;IAGD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE;YACZ,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;SAClE;aAAM;YACL,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CACzB,iDAAiD,CAClD,CAAC;SACH;QACD,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAC/C,CAAC,CAAC,gCAAgC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,OAAO;KACR;IACD,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC,CAAC,gCAAgC,CAAC,CAAC,IAAI,EAAE,CAAC;IAK3C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,GAAG,CAAC,OAAO,EAAE,CAAC;IAGd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC,OAAO,EAAE;YACZ,QAAQ,GAAG,qDAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACpC;aAAM;YACL,QAAQ,GAAG,4DAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3C;QACD,MAAM,OAAO,GAAG,+DAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzD,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAE7B,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QAGtB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAG3C,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAGrE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAG9D,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAG3D,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAItC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACjD,IAAI,iBAAiB,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE;YAEZ,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,sDAAgB,CAAC,CAAC;YAChE,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAChC,iBAAiB,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5C;QACD,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAGhD,MAAM,UAAU,GAAG,2DAAwB,CACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CACpC,CAAC;QACF,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAGzC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAGnD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAGnD,MAAM,iBAAiB,GAAG,qBAAqB,CAC7C,GAAG,CAAC,CAAC,CAAC,EACN,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,kBAAkB,CAC5B,CAAC;QACF,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEnD,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAIpB,CAAC,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;KACpE;IAGD,IAAI,wDAAkB,IAAI,EAAE,EAAE;QAC5B,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAAE,CAAC;KACtC;SAAM;QACL,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAAE,CAAC;KACtC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAU,EAAE,IAAY,EAAE,SAAiB;IACxE,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC;SACzB,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;SACtB,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAClC,MAAM,CAAC,IAAI,CACT,4DAA4D,SAAS,GAAG,CAAC,EAAE,CAC5E,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,SAAS,GAAG,CAAC,KAAK,CAAC,EAAE;QACvB,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAC7B;SAAM;QACL,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,uDAAkB,CAAC,gBAAgB,EAAE;gBACnC,IAAI;gBACJ,OAAO,EAAE,2DAAqB,KAAK,iEAAqB;aACzD,CAAC,CAAC;YACH,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAEM,SAAS,WAAW;IACzB,2DAAqB,GAAG,iEAAqB,CAAC;IAC9C,sCAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC5B,CAAC,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC,CAAC,yBAAyB,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,IAAI,CAAC,CAAC;AACb,CAAC;AAEM,SAAS,WAAW;IACzB,2DAAqB,GAAG,0DAAc,CAAC;IACvC,sCAAQ,CAAC,SAAS,CAAC,CAAC;IACpB,CAAC,CAAC,8BAA8B,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACxD,CAAC,CAAC,yBAAyB,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,KAAK,CAAC,CAAC;AACd,CAAC;AAED,SAAS,eAAe;IACtB,2DAAqB,GAAG,qEAAyB,CAAC;IAClD,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC,CAAC,6BAA6B,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,sCAAQ,CAAC,sBAAsB,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,eAAe;IACtB,2DAAqB,GAAG,0DAAc,CAAC;IACvC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC,CAAC,6BAA6B,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,sCAAQ,CAAC,SAAS,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,wBAAwB;IAC/B,2DAAqB,GAAG,iEAAqB,CAAC;IAC9C,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC,CAAC,6BAA6B,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,sCAAQ,CAAC,iBAAiB,CAAC,CAAC;AAC9B,CAAC;AAEM,SAAS,eAAe,CAAC,KAAoB,EAAE,OAAgB;IAEpE,IAAI,CAAC,OAAO,EAAE;QACZ,CAAC,CAAC,0CAA0C,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC7D,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,CAAC,CAAC,0CAA0C,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC7D,wBAAwB,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;KACJ;IAED,MAAM,KAAK,GAAG,CAAC,CAAC,yCAAyC,CAAC,CAAC;IAG3D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAGf,IAAI,OAA4B,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,GAAG,KAAK;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,qDAAe,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qDAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;aACrD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,6DAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACnC;SAAM,IAAI,OAAO,EAAE;QAClB,OAAO,GAAG,KAAK;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,4DAAsB,CAAC;aAC7C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,4DAAsB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;aAC5D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,6DAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACnC;SAAM;QACL,OAAO;KACR;IACD,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,OAAO;KACR;IAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAG1B,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,sDAAgB,CAAC,CAAC;QAEhE,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QAGtB,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,OAAO,EAAE;YACX,EAAE,GAAG,WAAW,EAAE,WAAW,CAAC;SAC/B;QACD,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAGjC,IAAI,KAAK,GAAG,GAAG,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACpD,IAAI,OAAO,EAAE;YACX,KAAK,GAAG,WAAW,KAAK,WAAW,CAAC;SACrC;QACD,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAGpC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAGtC,IAAI,iBAAiB,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,OAAO,EAAE;YACX,iBAAiB,GAAG,WAAW,iBAAiB,WAAW,CAAC;SAC7D;QACD,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAGhD,IAAI,UAAU,GAAG,2DAAwB,CACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CACpC,CAAC;QACF,IAAI,OAAO,EAAE;YACX,UAAU,GAAG,WAAW,UAAU,WAAW,CAAC;SAC/C;QACD,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAIzC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC;QACT,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACtC,IAAI,GAAG,SAAS,CAAC;SAClB;aAAM;YACL,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SACjB;QACD,IAAI,OAAO,EAAE;YACX,IAAI,GAAG,WAAW,IAAI,WAAW,CAAC;SACnC;QACD,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAGnC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAChE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAGnD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAClE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEnD,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAIpB,CAAC,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,CAAC,WAAW,CAC7D,cAAc,CACf,CAAC;KACH;AACH,CAAC;AAMD,SAAS,WAAW,CAAC,CAAS,EAAE,OAAgB,EAAE,WAAoB;IAEpE,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,IAAI,OAAO,CAAC,KAAK,EAAE;QACjB,WAAW,IAAI,yCAAyC,CAAC;QACzD,WAAW,IAAI,UAAU,qDAAc,CACrC,OAAO,CAAC,QAAQ,CACjB,MAAM,qDAAc,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC;QAC9C,WAAW,IAAI,OAAO,CAAC;KACxB;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE;QACpB,WAAW,IAAI,2CAA2C,CAAC;QAC3D,WAAW,IAAI,eAAe,CAAC;KAChC;IAED,IAAI,OAAO,CAAC,SAAS,EAAE;QACrB,WAAW,IAAI,4CAA4C,CAAC;QAC5D,WAAW,IAAI,mBAAmB,CAAC;KACpC;IAED,IAAI,OAAO,CAAC,SAAS,EAAE;QACrB,WAAW;YACT,kFAAkF,CAAC;QACrF,WAAW,IAAI,8BAA8B,CAAC;KAC/C;IAED,IAAI,OAAO,CAAC,UAAU,EAAE;QACtB,WAAW,IAAI,0CAA0C,CAAC;QAC1D,WAAW,IAAI,kBAAkB,CAAC;KACnC;IAED,IAAI,OAAO,CAAC,YAAY,EAAE;QACxB,WAAW,IAAI,+CAA+C,CAAC;QAC/D,WAAW,IAAI,qBAAqB,CAAC;KACtC;IAED,IAAI,OAAO,CAAC,WAAW,EAAE;QACvB,WAAW,IAAI,gDAAgD,CAAC;QAChE,WAAW,IAAI,oBAAoB,CAAC;KACrC;IAED,IAAI,OAAO,CAAC,YAAY,EAAE;QACxB,WAAW,IAAI,+CAA+C,CAAC;QAC/D,WAAW,IAAI,qBAAqB,CAAC;KACtC;IAED,IAAI,OAAO,CAAC,qBAAqB,EAAE;QACjC,WAAW;YACT,+DAA+D,CAAC;QAClE,WAAW,IAAI,6BAA6B,CAAC;KAC9C;IAED,IAAI,WAAW,KAAK,EAAE,EAAE;QACtB,OAAO,QAAQ,CAAC;KACjB;IAED,IAAI,EAAE,GAAG,uBAAuB,CAAC,UAAU,CAAC;IAC5C,IAAI,WAAW,EAAE;QACf,EAAE,IAAI,eAAe,CAAC;KACvB;IACD,IAAI,IAAI,GAAG,UAAU,EAAE,8BAA8B,CAAC;IACtD,IAAI,IAAI,0BAA0B,EAAE,gBAAgB,CAAC;IACrD,IAAI,IAAI;;iBAEO,EAAE;;YAEP,WAAW;;;;GAIpB,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB,EAAE,UAAkB;IAC9D,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC;SACzB,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;SACtB,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC;IACT,IAAI,UAAU,KAAK,MAAM,EAAE;QACzB,IAAI,GAAG,8CAA8C,CAAC;KACvD;SAAM,IAAI,UAAU,KAAK,QAAQ,EAAE;QAClC,IAAI,GAAG,gDAAgD,CAAC;KACzD;SAAM;QACL,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;KACH;IACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACjC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IACtC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,UAAU,EAAE,CAAC,CAAC;IAE1C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACtB,uDAAkB,CAAC,cAAc,EAAE;YACjC,MAAM,EAAE,IAAI;YACZ,UAAU;YACV,UAAU;YACV,oBAAoB,EAAE,CAAC,CAAC;SACzB,CAAC,CAAC;QACH,IAAI,UAAU,KAAK,QAAQ,EAAE;YAC3B,IAAI,EAAE,CAAC;SACR;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;;;;;;;;;;;;;;;;;;ACjegC;AAGjC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAGjB,SAAS,QAAQ;IAE9B,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAGnC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC3C,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,mBAAmB;IAC1B,IAAI,kDAAY,KAAK,IAAI,EAAE;QACzB,OAAO;KACR;IAED,IAAI,yDAAmB,IAAI,oBAAoB,EAAE;QAC/C,uDAAiB,CAAC,UAAU,EAAE;YAC5B,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;KACJ;IACD,yDAAmB,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,kDAAY,KAAK,IAAI,EAAE;QACzB,OAAO;KACR;IAED,yDAAmB,IAAI,CAAC,CAAC;IACzB,IAAI,yDAAmB,KAAK,oBAAoB,EAAE;QAGhD,uDAAiB,CAAC,UAAU,EAAE;YAC5B,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;KACJ;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;ACvCqC;AACL;AACG;AACA;AAErB,SAAS,YAAY;IAClC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAE5B,IACE,KAAK,CAAC,KAAK,KAAK,kDAAkB;YAClC,CAAC,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;YAC9C,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAC/B;YACA,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,CAAC,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;SAClC;QAID,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE;YACpD,OAAO;SACR;QAID,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,6CAAa,EAAE;YAGjD,IAAI,2DAAqB,KAAK,wDAAY,EAAE;gBAC1C,CAAC,CAAC,sCAAsC,CAAC,CAAC,KAAK,EAAE,CAAC;aACnD;SACF;aAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,6CAAa,EAAE;YAGxD,IAAI,2DAAqB,KAAK,wDAAY,EAAE;gBAC1C,CAAC,CAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;aAC7C;SACF;aAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,6CAAa,EAAE;YAGxD,IAAI,2DAAqB,KAAK,wDAAY,EAAE;gBAC1C,CAAC,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;aACzC;SACF;aAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,6CAAa,EAAE;YAIxD,IAAI,2DAAqB,KAAK,wDAAY,EAAE;gBAC1C,CAAC,CAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;aACxC;SACF;aAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,6CAAa,EAAE;YAGxD,IAAI,2DAAqB,KAAK,wDAAY,EAAE;gBAC1C,CAAC,CAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,CAAC;aAC1C;SACF;aAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,6CAAa,EAAE;YAGxD,IAAI,2DAAqB,KAAK,0DAAc,EAAE;gBAC5C,CAAC,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;aACzC;SACF;aAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,6CAAa,EAAE;YAGxD,IAAI,2DAAqB,KAAK,0DAAc,EAAE;gBAC5C,CAAC,CAAC,qCAAqC,CAAC,CAAC,KAAK,EAAE,CAAC;aAClD;SACF;aAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,6CAAa,EAAE;YAGxD,IAAI,2DAAqB,KAAK,0DAAc,EAAE;gBAC5C,CAAC,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;aACzC;SACF;aAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,6CAAa,EAAE;YAExD,kBAAkB,EAAE,CAAC;SACtB;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,kDAAkB,EAAE;YAG7C,IAAI,0DAAoB,EAAE;gBACxB,6CAAe,EAAE,CAAC;aACnB;iBAAM;gBACL,kBAAkB,EAAE,CAAC;aACtB;SACF;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB;IAGzB,IAAI,2DAAqB,KAAK,0DAAc,EAAE;QAC5C,CAAC,CAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC;KAC5C;SAAM,IAAI,2DAAqB,KAAK,0DAAc,EAAE;QACnD,CAAC,CAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,CAAC;KAC1C;SAAM,IAAI,2DAAqB,KAAK,qEAAyB,EAAE;QAC9D,CAAC,CAAC,0CAA0C,CAAC,CAAC,KAAK,EAAE,CAAC;KACvD;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnGwC;AACiC;AACzC;AACG;AACA;AACC;AACC;AACD;AACqB;AACpB;AAGF;AAIP;AACY;AAKzC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;AACpD,iEAAe,QAAQ,EAAC;AAKxB,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAiB,EAAE,EAAE;IAE5C,qDAAe,GAAG,IAAI,CAAC,OAAO,CAAC;IAI/B,IACE,2DAAqB,KAAK,yDAAY;QACtC,2DAAqB,KAAK,2DAAc,EACxC;QACA,6CAAc,EAAE,CAAC;KAClB;IACD,IAAI,2DAAqB,KAAK,yDAAY,EAAE;QAC1C,oDAAU,EAAE,CAAC;KACd;IACD,IAAI,2DAAqB,KAAK,2DAAc,EAAE;QAC5C,0CAAY,EAAE,CAAC;KAChB;IACD,IAAI,2DAAqB,KAAK,wDAAW,IAAI,gDAAU,KAAK,IAAI,EAAE;QAChE,sFAAkC,CAAC;YACjC,UAAU,EAAE,yEAAmC;YAC/C,QAAQ,EAAE,uEAAiC;SAC5C,CAAC,CAAC;KACJ;AACH,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAU,EAAE,EAAE;IAClC,kDAAY,GAAG,IAAI,CAAC;IACpB,0CAAY,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,SAAwB,EAAE,EAAE;IAEvD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;QAC5B,qDAAe,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QAEhC,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,wDAAkB,IAAI,CAAC,CAAC;SACzB;KACF;IAID,IAAI,oEAA8B,EAAE;QAClC,oEAA8B,GAAG,KAAK,CAAC;QACvC,0CAAY,CAAC,KAAK,CAAC,CAAC;KACrB;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,qDAAe,CAAC,CAAC,MAAM,CAAC;IACvD,CAAC,CAAC,kCAAkC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,kCAAkC,CAAC,CAAC,IAAI,CAAC,iEAA2B,EAAE,CAAC,CAAC;IAC1E,IAAI,UAAU,KAAK,wDAAkB,EAAE;QACrC,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAAE,CAAC;KACtC;AACH,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,SAAwB,EAAE,EAAE;IAE9D,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;QAC5B,4DAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;KACxC;IAID,IAAI,oEAA8B,EAAE;QAClC,oEAA8B,GAAG,KAAK,CAAC;QACvC,0CAAY,CAAC,IAAI,CAAC,CAAC;KACpB;AACH,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,IAAgC,EAAE,EAAE;IAC1E,qDAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAKH,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAgB,EAAE,EAAE;IAC1C,qDAAe,GAAG,IAAI,CAAC,OAAO,CAAC;IAG/B,0CAAY,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE;IAExB,0CAAY,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAKH,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,IAAqB,EAAE,EAAE;IACpD,6DAAuB,GAAG,IAAI,CAAC,eAAe,CAAC;AACjD,CAAC,CAAC,CAAC;AAKH,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAc,EAAE,EAAE;IACtC,6DAAuB,GAAG,IAAI,CAAC,IAAI,CAAC;AACtC,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAkB,EAAE,EAAE;IAC9C,0DAAoB,GAAG,IAAI,CAAC,YAAY,CAAC;IACzC,kEAA4B,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC;AAKH,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAoB,EAAE,EAAE;IAClD,yCAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;AAGH,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAW,EAAE,EAAE;IACpC,0DAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACpC,IAAI,2DAAqB,KAAK,yDAAY,EAAE;QAC1C,oDAAU,EAAE,CAAC;KACd;AACH,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAmB,EAAE,EAAE;IAChD,6DAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEtC,IAAI,2DAAqB,KAAK,yDAAY,EAAE;QAC1C,oDAAU,EAAE,CAAC;KACd;AACH,CAAC,CAAC,CAAC;AAGH,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAiB,EAAE,EAAE;IAC9C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;QAC3B,0DAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;KACrC;IACD,IAAI,2DAAqB,KAAK,yDAAY,EAAE;QAC1C,oDAAU,EAAE,CAAC;KACd;AACH,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,IAAuB,EAAE,EAAE;IACxD,MAAM,KAAK,GAAG,0DAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO;KACR;IACD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAE/B,IAAI,2DAAqB,KAAK,yDAAY,EAAE;QAC1C,CAAC,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC7D;AACH,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAoB,EAAE,EAAE;IAElD,qDAAe,GAAG,IAAI,CAAC,OAAO,CAAC;IAE/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAChB,0CAAY,EAAE,CAAC;KAChB;IACD,4CAAa,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAGH,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAU,EAAE,EAAE;IAClC,yDAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvC,IACE,2DAAqB,KAAK,yDAAY;QACtC,2DAAqB,KAAK,2DAAc,EACxC;QACA,6CAAc,EAAE,CAAC;KAClB;AACH,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,QAAgB,EAAE,EAAE;IAC5C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;QAC3B,yDAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KACxC;IACD,IACE,2DAAqB,KAAK,yDAAY;QACtC,2DAAqB,KAAK,2DAAc,EACxC;QACA,6CAAc,EAAE,CAAC;KAClB;AACH,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAkB,EAAE,EAAE;IAC9C,4DAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEpC,IACE,2DAAqB,KAAK,yDAAY;QACtC,2DAAqB,KAAK,2DAAc,EACxC;QACA,6CAAc,EAAE,CAAC;KAClB;AACH,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,IAAsB,EAAE,EAAE;IACtD,MAAM,IAAI,GAAG,yDAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,OAAO;KACR;IACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC9B,IACE,2DAAqB,KAAK,yDAAY;QACtC,2DAAqB,KAAK,2DAAc,EACxC;QACA,oDAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KACnD;AACH,CAAC,CAAC,CAAC;AAGH,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAiB,EAAE,EAAE;IAE5C,oDAAc,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7B,sDAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;IACjC,wDAAkB,GAAG,IAAI,CAAC,UAAU,CAAC;IACrC,mDAAa,GAAG,IAAI,CAAC,KAAK,CAAC;IAC3B,sDAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;IACjC,qDAAe,GAAG,IAAI,CAAC,OAAO,CAAC;IAC/B,6DAAuB,GAAG,IAAI,CAAC,eAAe,CAAC;IAC/C,0DAAoB,GAAG,IAAI,CAAC,YAAY,CAAC;IACzC,kEAA4B,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACnE,6DAAuB,GAAG,IAAI,CAAC,eAAe,CAAC;IAG/C,mDAAqB,CAAC,oDAAc,EAAE,sDAAgB,CAAC,CAAC;IAGxD,CAAC,CAAC,kCAAkC,CAAC,CAAC,IAAI,CAAC,iEAA2B,EAAE,CAAC,CAAC;IAC1E,gEAAuC,EAAE,CAAC;IAC1C,wCAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAKpC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC7C,uDAAkB,CAAC,eAAe,EAAE;YAClC,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;QACH,OAAO;KACR;IAKD,IAAI,IAAI,CAAC,qBAAqB,KAAK,CAAC,EAAE;QACpC,uDAAkB,CAAC,eAAe,EAAE;YAClC,OAAO,EAAE,IAAI,CAAC,qBAAqB;YACnC,oBAAoB,EAAE,CAAC,CAAC;SACzB,CAAC,CAAC;QACH,OAAO;KACR;IAGD,+CAAgB,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzTmC;AACW;AACR;AACR;AAC+B;AACnB;AAChB;AACS;AACF;AACK;AAElC,SAAS,IAAI;IAClB,CAAC,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAC5B,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QACxC,IAAI,KAAK,CAAC,KAAK,KAAK,kDAAkB,EAAE;YACtC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC;SAC3B;IACH,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEhC,CAAC,CAAC,yBAAyB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACtC,YAAY,CAAC,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,MAAM,CAAC,KAAmB;IAEjC,KAAK,CAAC,cAAc,EAAE,CAAC;IAEvB,IAAI,QAAQ,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAC;IAC1C,IAAI,8CAAO,CAAC,QAAQ,CAAC,EAAE;QACrB,SAAS,CAAC,8BAA8B,CAAC,CAAC;QAC1C,OAAO;KACR;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAChC,QAAQ,GAAG,QAAS,CAAC,QAAQ,EAAE,CAAC;KACjC;IAED,IAAI,QAAQ,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAC;IAC1C,IAAI,8CAAO,CAAC,QAAQ,CAAC,EAAE;QACrB,SAAS,CAAC,8BAA8B,CAAC,CAAC;QAC1C,OAAO;KACR;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAChC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAChC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KAClD;IAED,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,IAAI,CAAC,QAAgB,EAAE,QAAgB;IAC9C,CAAC,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;IAGxB,MAAM,GAAG,GAAG,qDAAc,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG;QACf,QAAQ;QACR,QAAQ;QACR,OAAO;KACR,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC;QACrB,GAAG;QACH,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;IAE/C,OAAO;SACJ,IAAI,CAAC,GAAG,EAAE;QAET,uDAAa,EAAE,CAAC;IAClB,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACd,SAAS,CAAC,iBAAiB,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,SAAS,CAAC,iBAAiB,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACP,CAAC;AAGD,SAAS,YAAY,CAAC,KAAwB;IAC5C,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE;QAC1B,OAAO,qDAAqD,CAAC;KAC9D;IACD,IAAI,KAAK,CAAC,YAAY,KAAK,EAAE,EAAE;QAC7B,OAAO,4BAA4B,CAAC;KACrC;IACD,OAAO,KAAK,CAAC,YAAY,CAAC;AAC5B,CAAC;AAEM,SAAS,cAAc;IAG5B,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,gCAAgC,QAAQ,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzB,OAAO;KACR;IAGD,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IACpE,MAAM,cAAc,GAAG,cAAc,CAAC;IACtC,KAAK,CAAC,cAAc,CAAC;SAClB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QAGjB,IACE,8DAAwB;YACxB,YAAY,CAAC,OAAO,CAAC,wBAAwB,CAAC,KAAK,MAAM,EACzD;YACA,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;YACrB,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7B,OAAO;SACR;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3B,OAAO,CAAC,GAAG,CACT,0FAA0F,CAC3F,CAAC;YACF,uDAAa,EAAE,CAAC;YAChB,OAAO;SACR;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3B,OAAO,CAAC,GAAG,CACT,4EAA4E,CAC7E,CAAC;SACH;aAAM;YACL,OAAO,CAAC,GAAG,CACT,kDAAkD,EAClD,QAAQ,CAAC,MAAM,CAChB,CAAC;SACH;QACD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,oBAAoB,cAAc,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACP,CAAC;AAMD,SAAS,IAAI;IACX,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;AAC/B,CAAC;AAEM,SAAS,IAAI,CAAC,aAAsB;IAEzC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAEnB,IAAI,aAAa,IAAI,CAAC,mDAAY,EAAE,EAAE;QACpC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;QACjC,OAAO;KACR;IACD,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAWtB,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAGpC,2DAAqB,GAAG,wDAAY,CAAC;IACrC,oDAAU,EAAE,CAAC;IACb,4CAAc,EAAE,CAAC;IACjB,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;IAG3B,sCAAQ,CAAC,OAAO,CAAC,CAAC;IAClB,CAAC,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;IAI/B,MAAM,IAAI,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,CACV;QACE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY;KAChC,EACD,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAE5B,UAAU,CAAC,GAAG,EAAE;QACd,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;QAEpC,MAAM,MAAM,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1C,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;SACH;QACD,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CACrB;YACE,SAAS,EAAE,MAAM,CAAC,GAAG;SACtB,EACD,GAAG,CACJ,CAAC;IACJ,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpOqC;AACH;AACc;AAChB;AACU;AACP;AACO;AACN;AACA;AACQ;AAEtC,SAAS,IAAI;IAElB,CAAC,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAGnC,YAAY,EAAE,CAAC;IAGf,CAAC,CAAC,gCAAgC,CAAC,CAAC,WAAW,CAC7C,QAAQ,EACR,gBAAgB,EAChB,+CAAiB,CAClB,CAAC;IACF,CAAC,CAAC,gCAAgC,CAAC,CAAC,WAAW,CAC7C,QAAQ,EACR,eAAe,EACf,8CAAgB,CACjB,CAAC;IAIF,CAAC,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAC/C,0CAAY,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,2BAA2B,CAAC,CAAC,WAAW,CACxC,QAAQ,EACR,eAAe,EACf,+CAAiB,CAClB,CAAC;IAaF,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAE7B,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,UAAU,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAC9C,CAAC,CAAC,2BAA2B,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACzD,CAAC,CAAC,yBAAyB,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC1D,CAAC,CAAC,8BAA8B,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC/D,CAAC,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC/C,CAAC,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAErD,CAAC,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QACvD,CAAC,CAAC,uBAAuB,CAAC;aACvB,WAAW,CAAC,qBAAqB,CAAC;aAClC,WAAW,CAAC,oBAAoB,CAAC,CAAC;QACrC,CAAC,CAAC,+BAA+B,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAC5C,CAAC,CAAC,2BAA2B,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC5D,CAAC,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACvD,CAAC,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAClD,CAAC,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,8BAA8B,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACjD,CAAC,CAAC,2BAA2B,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC5D,CAAC,CAAC,8BAA8B,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC5D,CAAC,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAClD,CAAC,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAElD,CAAC,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACpD,CAAC,CAAC,uBAAuB,CAAC;aACvB,QAAQ,CAAC,qBAAqB,CAAC;aAC/B,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAClC,CAAC,CAAC,+BAA+B,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAC/C,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YACzD,uDAAkB,CAAC,YAAY,EAAE;gBAC/B,OAAO,EAAE,qDAAe;aACzB,CAAC,CAAC;YACH,CAAC,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SACtD;IACH,CAAC,CAAC,CAAC;IAIH,CAAC,CAAC,qCAAqC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzD,CAAC,CAAC,qCAAqC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACxD,IAAI,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAClE,CAAC,CAAC,qCAAqC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;SAC9D;IACH,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,qCAAqC,CAAC,CAAC,WAAW,CAClD,QAAQ,EACR,eAAe,EACf,GAAG,EAAE;QAEH,CAAC,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;QAEtC,IAAI,CAAC,CAAC,+BAA+B,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9D,OAAO;SACR;QAGD,KAAK,MAAM,WAAW,IAAI,8DAAa,EAAE,EAAE;YACzC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACpD,CAAC,CAAC,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;SACtD;QAGD,CAAC,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YACrD,IAAI,KAAK,CAAC,KAAK,KAAK,kDAAkB,EAAE;gBACtC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,CAAC,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;aACrC;QACH,CAAC,CAAC,CAAC;QAGH,CAAC,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;;YAC3C,MAAM,WAAW,GACf,CAAC,CAAC,0BAA0B,CAAC,CAAC,GAAG,EAClC,CAAC,IAAI,EAAE,CAAC;YACT,IAAI,6DAAY,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE;gBAC3C,OAAO;aACR;YACD,IAAI,yDAAY,0CAAE,KAAK,MAAK,oDAAc,EAAE;gBAC1C,uDAAkB,CAAC,iBAAiB,EAAE;oBACpC,OAAO,EAAE,qDAAe;oBACxB,OAAO,EAAE;wBACP,WAAW;qBACZ;iBACF,CAAC,CAAC;aACJ;iBAAM;gBACL,+CAAQ,CAAC,OAAO,EAAE,uBAAuB,WAAW,GAAG,CAAC,CAAC;aAC1D;YAED,uDAAgB,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAGF,CAAC,CAAC,+BAA+B,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAClD,0CAAY,EAAE,CAAC;QACf,uDAAkB,CAAC,eAAe,EAAE;YAClC,OAAO,EAAE,qDAAe;SACzB,CAAC,CAAC;QACH,qDAAe,GAAG,CAAC,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAC/C,uDAAkB,CAAC,YAAY,EAAE;YAC/B,OAAO,EAAE,qDAAe;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,mCAAmC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACtD,iDAAmB,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAChD,0CAAY,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,qCAAqC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACxD,iDAAmB,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;AAIL,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,QAAQ,GAAG;QACf,mBAAmB;QACnB,cAAc;QACd,iBAAiB;QACjB,gBAAgB;QAChB,wBAAwB;KACzB,CAAC;IAEF,MAAM,kBAAkB,GAAG;QACzB,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,CAAC;QAIR,OAAO,EAAE;YACP,SAAS;YACT,eAAe;SAChB;QACD,cAAc,EAAE,GAAG,EAAE;YACnB,oDAAsB,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;KACF,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAO5B,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,IAAI,CAAC,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE;gBAC3D,YAAY,IAAI,CAAC,CAAC;aACnB;SACF;QACD,IAAI,YAAY,IAAI,CAAC,EAAE;YACrB,oDAAsB,CAAC,CAAC,CAAC,CAAC;SAC3B;IACH,CAAC,CAAC;IAIF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,CAAC,CAAC,gBAAgB,OAAO,EAAE,CAAC;aACzB,WAAW,CAAC,kBAAkB,CAAC;aAC/B,WAAW,CAAC,UAAU,CAAC;aACvB,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;KAClC;IAGD,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5B,IAAI,KAAK,CAAC,KAAK,KAAK,kDAAkB,EAAE;YACtC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,uDAAgB,EAAE,CAAC;YACnB,6CAAe,EAAE,CAAC;SACnB;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,SAAS,IAAI,CAAC,MAAc;IACjC,MAAM,QAAQ,GAAG;QACf,OAAO;QACP,SAAS;QACT,SAAS;QACT,iBAAiB;QACjB,sBAAsB;KACvB,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,CAAC,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;KACrC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,CAAC,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;KACpC;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtR+B;AACmB;AAClB;AACkC;AAC3B;AACX;AACS;AACF;AACK;AAElC,SAAS,IAAI;IAClB,2DAAqB,GAAG,0DAAc,CAAC;IACvC,4CAAc,EAAE,CAAC;IAGjB,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;IAGzB,CAAC,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC,CAAC,8BAA8B,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAGxD,CAAC,CAAC,uBAAuB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,+BAA+B,CAAC,CAAC,IAAI,EAAE,CAAC;IAG1C,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAKvC,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACzD,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC;KACtC;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;KACjE;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC;IACjE,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC;KACtC;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;KACzE;IAGD,CAAC,CAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;IAIvC,CAAC,CAAC,gCAAgC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAG5D,sCAAQ,CAAC,SAAS,CAAC,CAAC;IACpB,qBAAqB,EAAE,CAAC;IAGxB,+DAAwB,CAAC,aAAa,qDAAe,EAAE,CAAC,CAAC;AAC3D,CAAC;AAEM,SAAS,IAAI;IAClB,2DAAqB,GAAG,wDAAY,CAAC;IACrC,oDAAU,EAAE,CAAC;IACb,4CAAc,EAAE,CAAC;IAGjB,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;IAGzB,CAAC,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,yBAAyB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,8BAA8B,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC,CAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;IAGvC,CAAC,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,uBAAuB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC,CAAC,+BAA+B,CAAC,CAAC,IAAI,EAAE,CAAC;IAG1C,0DAAoB,GAAG,EAAE,CAAC;IAC1B,qDAAuB,EAAE,CAAC;IAG1B,sCAAQ,CAAC,OAAO,CAAC,CAAC;IAGlB,+DAAwB,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAEM,SAAS,IAAI;IAClB,IAAI,kDAAY,KAAK,IAAI,EAAE;QACzB,MAAM,IAAI,KAAK,CACb,uGAAuG,CACxG,CAAC;KACH;IAGD,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,uDAAiB,CAAC,CAAC;IACjD,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,sEAAgC,CAAC,CAAC;IAEnE,WAAW,EAAE,CAAC;IAGd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,aAAa,CAAC,CAAC,CAAC,CAAC;KAClB;IAGD,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC5B,UAAU,CAAC,GAAG,EAAE;QACd,qBAAqB,EAAE,CAAC;IAC1B,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,kDAAY,KAAK,IAAI,EAAE;QACzB,OAAO;KACR;IAKD,IAAI,IAAI,GAAG,EAAE,CAAC;IAEd,IAAI,oEAA8B,EAAE;QAClC,IAAI,IAAI,gEAAgE,CAAC;QACzE,IAAI,IAAI,4DAA4D,CAAC;QACrE,IAAI,IAAI;;;;;;KAMP,CAAC;KACH;IAED,IAAI,gEAA0B,EAAE;QAC9B,IAAI,IAAI,+DAA+D,CAAC;QACxE,IAAI,IAAI,4DAA4D,CAAC;QACrE,IAAI,IAAI,qDAAc,CAAC,mEAA6B,CAAC,CAAC;QACtD,IAAI,IAAI,KAAK,CAAC;QACd,IAAI,IAAI,qDAAc,CAAC,sEAAgC,CAAC,CAAC;QACzD,IAAI,IAAI,QAAQ,CAAC;QACjB,IAAI,IAAI;;;;;;KAMP,CAAC;KACH;IAED,IAAI,mEAA6B,EAAE;QACjC,IAAI;YACF,oEAAoE,CAAC;QACvE,IAAI,IAAI,4DAA4D,CAAC;QACrE,IAAI,IAAI;;;;;;KAMP,CAAC;KACH;IAED,IAAI,oEAA8B,EAAE;QAClC,IAAI;YACF,uEAAuE,CAAC;QAC1E,IAAI,IAAI,8DAA8D,CAAC;QACvE,IAAI,IAAI;;;;;;KAMP,CAAC;KACH;IAED,IAAI,oEAA8B,EAAE;QAClC,IAAI;YACF,oEAAoE,CAAC;QACvE,IAAI,IAAI,2CAA2C,CAAC;QACpD,IAAI,IAAI,8DAA8D,CAAC;QACvE,IAAI,IAAI;;;;;;KAMP,CAAC;KACH;IAED,IAAI,qEAA+B,EAAE;QACnC,IAAI;YACF,sEAAsE,CAAC;QACzE,IAAI,IAAI,+DAA+D,CAAC;QACxE,IAAI,IAAI;;;;;;KAMP,CAAC;KACH;IAED,IAAI,uEAAiC,EAAE;QACrC,IAAI;YACF,8EAA8E,CAAC;QACjF,IAAI,IAAI,kEAAkE,CAAC;QAC3E,IAAI,IAAI;;;;;;KAMP,CAAC;KACH;IAED,IAAI,sEAAgC,EAAE;QACpC,IAAI;YACF,8EAA8E,CAAC;QACjF,IAAI,IAAI,iEAAiE,CAAC;QAC1E,IAAI,IAAI;;;;;;KAMP,CAAC;KACH;IAED,IAAI,uEAAiC,EAAE;QACrC,IAAI;YACF,2EAA2E,CAAC;QAC9E,IAAI,IAAI,kEAAkE,CAAC;QAC3E,IAAI,IAAI;;;;;;KAMP,CAAC;KACH;IAED,IAAI,gFAA0C,EAAE;QAC9C,IAAI,IAAI,kDAAkD,CAAC;QAC3D,IAAI,IAAI,4CAA4C,CAAC;QACrD,IAAI,IAAI,mEAAmE,CAAC;QAC5E,IAAI,IAAI;;;;;;KAMP,CAAC;KACH;IAGD,MAAM,eAAe,GAAG,CAAC,CAAC,8BAA8B,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;IAClD,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,CAAC,CAAC,wBAAwB,CAAC,CAAC;IAC/C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAItB,IAAI,oEAA8B,EAAE;QAClC,CAAC,CAAC,iCAAiC,CAAC,CAAC,WAAW,CAAC,8CAAgB,CAAC,CAAC;KACpE;IACD,IAAI,gEAA0B,EAAE;QAC9B,CAAC,CAAC,8BAA8B,CAAC,CAAC,WAAW,CAAC,8CAAgB,CAAC,CAAC;KACjE;IACD,IAAI,mEAA6B,EAAE;QACjC,CAAC,CAAC,iCAAiC,CAAC,CAAC,WAAW,CAAC,8CAAgB,CAAC,CAAC;KACpE;IACD,IAAI,oEAA8B,EAAE;QAClC,CAAC,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,8CAAgB,CAAC,CAAC;KACtE;IACD,IAAI,oEAA8B,EAAE;QAClC,CAAC,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,8CAAgB,CAAC,CAAC;KACtE;IACD,IAAI,qEAA+B,EAAE;QACnC,CAAC,CAAC,oCAAoC,CAAC,CAAC,WAAW,CAAC,8CAAgB,CAAC,CAAC;KACvE;IACD,IAAI,uEAAiC,EAAE;QACrC,CAAC,CAAC,uCAAuC,CAAC,CAAC,WAAW,CAAC,8CAAgB,CAAC,CAAC;KAC1E;IACD,IAAI,sEAAgC,EAAE;QACpC,CAAC,CAAC,sCAAsC,CAAC,CAAC,WAAW,CAAC,8CAAgB,CAAC,CAAC;KACzE;IACD,IAAI,uEAAiC,EAAE;QACrC,CAAC,CAAC,uCAAuC,CAAC,CAAC,WAAW,CAAC,8CAAgB,CAAC,CAAC;KAC1E;IACD,IAAI,gFAA0C,EAAE;QAC9C,CAAC,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,8CAAgB,CAAC,CAAC;KACtE;AACH,CAAC;AAED,SAAS,aAAa,CAAC,CAAS;IAC9B,IAAI,kDAAY,KAAK,IAAI,EAAE;QACzB,OAAO;KACR;IAED,MAAM,UAAU,GAAG,iEAA2B,CAAC;IAC/C,MAAM,GAAG,GAAG,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,0DAAoB,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACb,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,OAAO;KACR;IAED,GAAG,CAAC,IAAI,EAAE,CAAC;IAEX,IAAI,IAAI,GAAG,wCAAwC,CAAC;IACpD,IAAI,MAAM,CAAC,IAAI,KAAK,sDAAgB,EAAE;QACpC,IAAI,IAAI,yBAAyB,MAAM,CAAC,IAAI,SAAS,CAAC;KACvD;SAAM,IAAI,8DAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAChD,IAAI,IAAI,wBAAwB,MAAM,CAAC,IAAI,SAAS,CAAC;KACtD;SAAM;QACL,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC;KACrB;IACD,IAAI,IAAI,eAAe,CAAC;IAGxB,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAErE,IAAI,kBAAkB,CAAC;IACvB,IAAI,YAAY,KAAK,CAAC,EAAE;QACtB,kBAAkB,GAAG,GAAG,CAAC;KAC1B;SAAM;QACL,kBAAkB,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;KAC9C;IACD,IAAI,mBAAmB,CAAC;IACxB,IAAI,YAAY,CAAC,QAAQ,GAAG,CAAC,EAAE;QAC7B,IAAI,aAAa,GACf,CAAC,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;QAC7D,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QACpD,mBAAmB,GAAG,GAAG,aAAa,GAAG,CAAC;KAC3C;SAAM;QACL,mBAAmB,GAAG,GAAG,CAAC;KAC3B;IAED,IAAI,IAAI;;;;;;UAMA,MAAM,CAAC,KAAK,CAAC,QAAQ;;;;;;;;UAQrB,YAAY,CAAC,QAAQ;;;;;;;;UAQrB,kBAAkB;;;;;;;;UAQlB,mBAAmB;;;GAG1B,CAAC;IACF,IAAI,UAAU,GAAG,CAAC,EAAE;QAClB,IAAI,IAAI;;;YAGA,UAAU;;;YAGV,YAAY,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,KAAK;;;KAGpD,CAAC;KACH;IACD,IAAI,IAAI;;;UAGA,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;;;sCAIlC,CAAC,GAAG,CACN,6FACJ,CAAC,GAAG,CACN;;;;sCAKM,CAAC,GAAG,CACN;GACH,CAAC;IACF,MAAM,OAAO,GAAG,+DAAU,CAAC,sEAAgC,CAAC,CAAC;IAC7D,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,IAAI,IAAI,mBAAmB,CAAC;QAC5B,IAAI,IAAI,sBAAsB,CAAC,gBAAgB,CAAC;QAChD,MAAM,eAAe,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;QACxC,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC;QAC9C,IAAI,IAAI,qBAAqB,CAAC;QAC9B,IAAI,SAAS,KAAK,QAAQ,EAAE;YAC1B,IAAI,IAAI,UAAU,CAAC;SACpB;QACD,IAAI,IAAI,IAAI,SAAS,MAAM,QAAQ,EAAE,CAAC;QACtC,IAAI,SAAS,KAAK,QAAQ,EAAE;YAC1B,IAAI,IAAI,mBAAmB,CAAC;YAC5B,IAAI,YAAY,KAAK,CAAC,EAAE;gBACtB,IAAI,IAAI,mDAAmD,CAAC;aAC7D;iBAAM;gBACL,IAAI,IAAI,iDAAiD,CAAC;aAC3D;SACF;QACD,IAAI,IAAI,cAAc,CAAC;KACxB;IACD,IAAI,IAAI;;;GAGP,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QACnB,IAAI,IAAI,gEAAgE,CAAC;KAC1E;IAED,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAGf,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,8CAAgB,CAAC,CAAC;AAChF,CAAC;AAEM,SAAS,qBAAqB,CAAC,MAAM,GAAG,KAAK;IAOlD,CAAC,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAErD,IAAI,kDAAY,KAAK,IAAI,EAAE;QACzB,OAAO;KACR;IAED,IACE,wDAAkB,KAAK,oDAAc;QACrC,iEAA2B,IAAI,CAAC;QAChC,iEAA2B,IAAI,CAAC;QAChC,CAAC,MAAM,EACP;QACA,CAAC,CAAC,4BAA4B,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;KACzD;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;ACvdgC;AACe;AACE;AAE3C,SAAS,IAAI;IAClB,CAAC,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,SAAS,0BAA0B;QAGrE,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;QACD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;YACpC,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;SACH;QACD,MAAM,MAAM,GAAG,mDAAY,CAAC,YAAY,CAAC,CAAC;QAC1C,6DAAuB,GAAG,MAAM,CAAC;QACjC,CAAC,CAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QACtD,uDAAkB,CAAC,SAAS,EAAE;YAC5B,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACpC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,CAAC,CAAC,yBAAyB,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;QACD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;YACpC,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;SACH;QACD,MAAM,MAAM,GAAG,mDAAY,CAAC,YAAY,CAAC,CAAC;QAC1C,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;QAC5B,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,SAAS,kBAAkB;IAGhC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,sDAAgB,CAAC,EAAE;QAC/D,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;YAErC,SAAS;SACV;aAAM,IAAI,OAAO,KAAK,QAAQ,EAAE;YAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;aAClE;YACD,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC,CAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;SACtD;aAAM;YACL,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;YACjC,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,YAAY,CAAC,CAAC;aAC5D;YACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;gBAC9B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;aAClE;YACD,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC/B,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SAC/B;KACF;AACH,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;KACH;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,EAAE,EAAE;QACnD,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;KACH;IACD,IAAI,CAAC,8CAAO,CAAC,WAAW,EAAE,sDAAgB,CAAC,EAAE;QAC3C,MAAM,IAAI,KAAK,CACb,kBAAkB,WAAW,wCAAwC,CACtE,CAAC;KACH;IACD,MAAM,OAAO,GAAG,sDAAgB,CAAC,WAAW,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,OAAO,KAAK,OAAO,EAAE;QACvB,OAAO;KACR;IAKA,sDAAgB,CAAC,WAAW,CAAS,GAAG,OAAO,CAAC;IAGjD,uDAAkB,CAAC,SAAS,EAAE;QAC5B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;KAC5B,CAAC,CAAC;IAEH,IAAI,WAAW,KAAK,qBAAqB,IAAI,OAAO,EAAE;QACpD,gDAAkB,EAAE,CAAC;KACtB;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACjHgC;AAC+C;AAC5C;AACA;AAGrB,SAAS,UAAU;IAChC,MAAM,KAAK,GAAG,CAAC,CAAC,0BAA0B,CAAC,CAAC;IAG5C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,2DAAqB,KAAK,CAAC,EAAE;QAC/B,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAC7C,CAAC,CAAC,8BAA8B,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO;KACR;IACD,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC,CAAC,8BAA8B,CAAC,CAAC,IAAI,EAAE,CAAC;IASzC,IAAI,cAAc,GAAa,EAAE,CAAC;IAClC,KAAK,MAAM,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3B,MAAM,kBAAkB,GAAa,EAAE,CAAC;YACxC,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,sDAAgB,EAAE;gBAE1C,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;oBAC7D,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBAC7B;gBAGD,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC1C,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,EAAE;oBACxD,SAAS;iBACV;gBAED,IACE,CAAC,KAAK,CAAC;oBACP,CAAC,KAAK,CAAC,OAAO;oBACd,CAAC,KAAK,CAAC,iBAAiB;oBACxB,CAAC,KAAK,CAAC,MAAM,EACb;oBAEA,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBAC7B;qBAAM,IACL,CAAC,KAAK,CAAC;oBACP,CAAC,KAAK,CAAC,OAAO;oBACd,KAAK,CAAC,iBAAiB;oBACvB,CAAC,KAAK,CAAC,MAAM,EACb;oBAEA,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBAC7B;qBAAM,IACL,CAAC,KAAK,CAAC;oBACP,KAAK,CAAC,OAAO;oBACb,CAAC,KAAK,CAAC,YAAY;oBACnB,CAAC,KAAK,CAAC,MAAM,EACb;oBAEA,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBAC7B;qBAAM,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,YAAY,EAAE;oBAEzD,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBAC7B;aACF;YACD,kBAAkB,CAAC,IAAI,EAAE,CAAC;YAC1B,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;SAC5D;KACF;IAGD,IAAI,yBAAyB,GAAG,KAAK,CAAC;IACtC,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE;QAC/B,MAAM,KAAK,GAAG,0DAAoB,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,0CAA0C,EAAE,IAAI,CAAC,CAAC;SACnE;QAGD,IAAI,SAAS,CAAC;QACd,IAAI,KAAK,CAAC,YAAY,EAAE;YACtB,SAAS,GAAG,QAAQ,CAAC;SACtB;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE;YACvB,SAAS,GAAG,QAAQ,CAAC;SACtB;aAAM,IAAI,KAAK,CAAC,OAAO,EAAE;YACxB,SAAS,GAAG,SAAS,CAAC;SACvB;aAAM,IAAI,KAAK,CAAC,iBAAiB,EAAE;YAClC,SAAS,GAAG,oBAAoB,CAAC;SAClC;aAAM;YACL,SAAS,GAAG,WAAW,CAAC;SACzB;QACD,MAAM,GAAG,GAAG,CAAC,CAAC,gCAAgC,SAAS,IAAI,CAAC,CAAC;QAG7D,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACrB,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;YACpE,IAAI,GAAG,2CAA2C,IAAI,EAAE,CAAC;SAC1D;QACD,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAGnC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAG1D,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAG5C,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,KAAK,CAAC,KAAK,EAAE;YACf,KAAK,GAAG,GAAG,qDAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,qDAAc,CAC3D,KAAK,CAAC,WAAW,CAClB,EAAE,CAAC;SACL;QACD,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAGpC,IAAI,MAAM,CAAC;QACX,IAAI,KAAK,CAAC,YAAY,EAAE;YACtB,MAAM,GAAG,WAAW,CAAC;SACtB;aAAM,IAAI,KAAK,CAAC,OAAO,EAAE;YACxB,MAAM,GAAG,SAAS,CAAC;SACpB;aAAM;YACL,MAAM,GAAG,aAAa,CAAC;SACxB;QACD,IAAI,MAAM,KAAK,aAAa,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;YACtD,MAAM,IAAI,sBAAsB,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,QAAQ,WAAW,CAAC;SACxE;QACD,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAGrC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;YAClC,IAAI,MAAM,KAAK,sDAAgB,EAAE;gBAC/B,YAAY,CAAC,IAAI,CAAC,yBAAyB,MAAM,SAAS,CAAC,CAAC;aAC7D;iBAAM,IAAI,8DAAwB,CAAC,MAAM,CAAC,EAAE;gBAC3C,YAAY,CAAC,IAAI,CAAC,wBAAwB,MAAM,SAAS,CAAC,CAAC;aAC5D;iBAAM;gBACL,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC3B;SACF;QACD,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAG5C,IAAI,gBAAwB,CAAC;QAC7B,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YACjC,gBAAgB,GAAG,GAAG,CAAC;SACxB;aAAM;YACL,MAAM,eAAe,GAAa,EAAE,CAAC;YACrC,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE;gBACxC,IAAI,8DAAwB,CAAC,SAAS,CAAC,EAAE;oBACvC,eAAe,CAAC,IAAI,CAAC,wBAAwB,SAAS,SAAS,CAAC,CAAC;iBAClE;qBAAM;oBACL,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBACjC;aACF;YACD,gBAAgB,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/C;QACD,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAI/C,IACE,CAAC,KAAK,CAAC,OAAO;YACd,CAAC,KAAK,CAAC,MAAM;YACb,KAAK,CAAC,UAAU,GAAG,CAAC;YACpB,CAAC,yBAAyB,EAC1B;YACA,yBAAyB,GAAG,IAAI,CAAC;YACjC,GAAG,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC;SACrD;QAGD,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;YAC1D,GAAG;iBACA,IAAI,CAAC,IAAI,EAAE,YAAY,KAAK,CAAC,EAAE,EAAE,CAAC;iBAClC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAqC,EAAE,EAAE;gBACrD,IAAI,KAAK,CAAC,OAAO,EAAE;oBAEjB,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY;wBAC7B,CAAC,CAAC,kBAAkB,KAAK,CAAC,EAAE,EAAE;wBAC9B,CAAC,CAAC,SAAS,KAAK,CAAC,EAAE,EAAE,CAAC;oBACxB,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;iBAC/B;qBAAM;oBACL,aAAa,CAAC,KAAK,CAAC,CAAC;iBACtB;YACH,CAAC,CAAC,CAAC;SACN;aAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACxB,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,EAAE;gBACzB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aACtB;iBAAM;gBACL,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAqC,EAAE,EAAE;oBACxD,IAAI,KAAK,CAAC,OAAO,EAAE;wBAEjB,kBAAkB,CAAC,aAAa,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;qBAClD;yBAAM;wBACL,SAAS,CAAC,KAAK,CAAC,CAAC;qBAClB;gBACH,CAAC,CAAC,CAAC;aACJ;SACF;aAAM;YACL,GAAG;iBACA,IAAI,CAAC,IAAI,EAAE,UAAU,KAAK,CAAC,EAAE,EAAE,CAAC;iBAChC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAqC,EAAE,EAAE;gBACrD,IAAI,KAAK,CAAC,OAAO,EAAE;oBAEjB,kBAAkB,CAAC,SAAS,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;iBAC9C;qBAAM;oBACL,aAAa,CAAC,KAAK,CAAC,CAAC;iBACtB;YACH,CAAC,CAAC,CAAC;SACN;QAED,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACrB;AACH,CAAC;AAEM,SAAS,aAAa,CAAC,KAAY;IACxC,IAAI,2DAAqB,KAAK,wDAAY,EAAE;QAC1C,OAAO;KACR;IAED,uDAAkB,CAAC,eAAe,EAAE;QAClC,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,oBAAoB,EAAE,CAAC,CAAC;KACzB,CAAC,CAAC;AAEL,CAAC;AAEM,SAAS,SAAS,CAAC,KAAY;IACpC,IAAI,2DAAqB,KAAK,wDAAY,EAAE;QAC1C,OAAO;KACR;IAED,IAAI,KAAK,CAAC,iBAAiB,EAAE;QAC3B,iDAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KAC/B;SAAM;QACL,uDAAkB,CAAC,WAAW,EAAE;YAC9B,OAAO,EAAE,KAAK,CAAC,EAAE;SAClB,CAAC,CAAC;KAEJ;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAY;IACjC,IAAI,2DAAqB,KAAK,wDAAY,EAAE;QAC1C,OAAO;KACR;IAED,uDAAkB,CAAC,eAAe,EAAE;QAClC,OAAO,EAAE,KAAK,CAAC,EAAE;KAClB,CAAC,CAAC;AAGL,CAAC;AAED,SAAS,eAAe,CAAC,KAAY;IACnC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;QACvB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;YAClC,IAAI,8DAAwB,CAAC,MAAM,CAAC,EAAE;gBACpC,OAAO,IAAI,CAAC;aACb;SACF;KACF;IAED,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE;QACxC,IAAI,8DAAwB,CAAC,SAAS,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,GAAwB;IAChE,MAAM,GAAG,GAAG,qDAAc,CAAC,IAAI,CAAC,CAAC;IACjC,4DAAqB,CAAC,GAAG,CAAC,CAAC;IAG3B,GAAG,CAAC,WAAW,CAAC;QACd,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,kEAAkE;QAC3E,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;KACxD,CAAC,CAAC;IACH,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,UAAU,CAAC,GAAG,EAAE;QACd,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;;;;;;;;;;;;;;;;;;;AC7SwC;AACR;AAElB,SAAS,YAAY;IAClC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAClC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACvC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACjC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACrC,wCAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACpC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACvC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACvC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACrC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACzC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACrC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACzC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACvC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACpC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACvC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACvC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACrC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACzC,wCAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACvC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACvC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACvC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACvC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACxC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACzC,wCAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACvC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACtC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACvC,wCAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACpC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACvC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACvC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAC7C,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACzC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACxC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACzC,wCAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,iDAAS,EAAE,GAAG,EAAE;YACvC,wCAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;;;;;;;;;;;;;;;;ACrHD,IAAK,MAQJ;AARD,WAAK,MAAM;IACT,qCAAK;IACL,qCAAK;IACL,yCAAO;IACP,mCAAI;IACJ,yCAAO;IACP,uDAAc;IACd,+DAAkB;AACpB,CAAC,EARI,MAAM,KAAN,MAAM,QAQV;AACD,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;ACPP,MAAM,QAAQ;IAA7B;QACE,wBAAmB,GAAG,KAAK,CAAC;QAC5B,cAAS,GAAG,IAAI,CAAC;QACjB,eAAU,GAAG,IAAI,CAAC;QAClB,eAAU,GAAG,KAAK,CAAC;QACnB,mBAAc,GAAG,KAAK,CAAC;QACvB,iBAAY,GAAG,KAAK,CAAC;QACrB,iBAAY,GAAG,KAAK,CAAC;QACrB,iBAAY,GAAG,KAAK,CAAC;QACrB,uBAAkB,GAAG,KAAK,CAAC;QAC3B,WAAM,GAAG,EAAE,CAAC;QACZ,oBAAe,GAAG,KAAK,CAAC;QACxB,iBAAY,GAAG,KAAK,CAAC;QACrB,0BAAqB,GAAG,KAAK,CAAC;QAC9B,uBAAkB,GAAG,YAAY,CAAC;QAClC,qBAAgB,GAAG,KAAK,CAAC;QACzB,+BAA0B,GAAG,CAAC,CAAC;QAC/B,kCAA6B,GAAG,EAAE,CAAC;QACnC,wBAAmB,GAAG,KAAK,CAAC;QAC5B,yBAAoB,GAAG,KAAK,CAAC;QAC7B,yBAAoB,GAAG,KAAK,CAAC;QAC7B,0BAAqB,GAAG,KAAK,CAAC;QAC9B,4BAAuB,GAAG,KAAK,CAAC;QAChC,2BAAsB,GAAG,KAAK,CAAC;QAC/B,4BAAuB,GAAG,KAAK,CAAC;QAChC,qCAAgC,GAAG,KAAK,CAAC;IAC3C,CAAC;CAAA;;;;;;;;;;;;;;;;;AC5BD,IAAK,MAOJ;AAPD,WAAK,MAAM;IACT,qCAAK;IACL,yCAAO;IACP,yCAAO;IACP,+CAAU;IACV,uCAAM;IACN,mDAAY;AACd,CAAC,EAPI,MAAM,KAAN,MAAM,QAOV;AACD,iEAAe,MAAM,EAAC;AAEf,MAAM,UAAU,GAAG;IACxB,OAAO;IACP,UAAU;IACV,SAAS;IACT,YAAY;IACZ,QAAQ;IACR,eAAe;CAChB,CAAC;;;;;;;;;;;;;;;;;;;ACf6D;AAC9B;AACgC;AAG1D,SAAS,YAAY,CAAC,IAAiB;;IAE5C,IAAI,IAAI,CAAC,aAAa,EAAE;QACtB,OAAO;KACR;IAGD,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,eAAe,EAAE;QAChD,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,eAAS,CAAC,GAAG,CAAC,MAAM,CAAC,mCAAI,6DAAuB,CAAC;QAC9D,MAAM,WAAW,GAAG,eAAS,CAAC,GAAG,CAAC,aAAa,CAAC,mCAAI,uEAAoB,CAAC;QACzE,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC;QAChD,MAAM,cAAc,GAAG,eAAS,CAAC,GAAG,CAAC,UAAU,CAAC,mCAAI,KAAK,CAAC;QAC1D,MAAM,QAAQ,GAAG,mDAAY,CAAC,cAAc,CAAC,CAAC;QAC9C,MAAM,iBAAiB,GAAG,eAAS,CAAC,GAAG,CAAC,aAAa,CAAC,mCAAI,IAAI,CAAC;QAC/D,MAAM,WAAW,GAAG,mDAAY,CAAC,iBAAiB,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC;QACtD,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC;QACxD,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC;QACxD,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC;QAC1D,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC;QAC9D,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,MAAM,CAAC;QAC5D,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC;QAC9D,MAAM,qBAAqB,GACzB,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC,KAAK,MAAM,CAAC;QACpD,MAAM,QAAQ,GAAG,eAAS,CAAC,GAAG,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAC;QAEjD,uDAAkB,CAAC,aAAa,EAAE;YAChC,IAAI;YACJ,OAAO,EAAE;gBACP,WAAW;gBACX,KAAK;gBACL,QAAQ;gBACR,WAAW;gBACX,QAAQ;gBACR,SAAS;gBACT,SAAS;gBACT,UAAU;gBACV,YAAY;gBACZ,WAAW;gBACX,YAAY;gBACZ,qBAAqB;aACtB;YACD,QAAQ;SACT,CAAC,CAAC;QACH,OAAO;KACR;IAGD,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxE,IAAI,YAAY,KAAK,IAAI,EAAE;QAEzB,MAAM,OAAO,GAAG,mDAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,uDAAkB,CAAC,WAAW,EAAE;YAC9B,OAAO;SACR,CAAC,CAAC;QACH,OAAO;KACR;IAKD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjE,IAAI,SAAS,KAAK,IAAI,EAAE;QACtB,MAAM,OAAO,GAAG,mDAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,uDAAkB,CAAC,eAAe,EAAE;YAClC,OAAO;YACP,oBAAoB,EAAE,CAAC,CAAC;SACzB,CAAC,CAAC;QACH,OAAO;KACR;IAGD,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrE,IAAI,WAAW,KAAK,IAAI,EAAE;QAExB,MAAM,UAAU,GAAG,mDAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,uDAAkB,CAAC,cAAc,EAAE;YACjC,UAAU;YACV,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,MAAM;YAClB,oBAAoB,EAAE,CAAC,CAAC;SACzB,CAAC,CAAC;QACH,OAAO;KACR;IAKD,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,IAAI,CACrD,MAAM,CAAC,QAAQ,CAAC,QAAQ,CACzB,CAAC;IACF,IAAI,iBAAiB,KAAK,IAAI,EAAE;QAE9B,MAAM,UAAU,GAAG,mDAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,uDAAkB,CAAC,cAAc,EAAE;YACjC,UAAU;YACV,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,QAAQ;YACpB,oBAAoB,EAAE,CAAC,CAAC;SACzB,CAAC,CAAC;QACH,OAAO;KACR;IAGD,+DAAwB,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC/GgC;AACQ;AACD;AACG;AACP;AACgB;AAE7C,SAAS,IAAI;IAClB,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,0DAAoB,CAAC,CAAC;IAEjD,MAAM,KAAK,GAAG,CAAC,CAAC,0BAA0B,CAAC,CAAC;IAG5C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAIf,IAAI,0DAAoB,KAAK,CAAC,EAAE;QAC9B,OAAO;KACR;IAGD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,qDAAe,EAAE;QACxC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,8DAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACvC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/B;KACF;IAGD,MAAM,qBAAqB,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;IACjE,qBAAqB,CAAC,IAAI,CAExB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CACzD,CAAC;IAGF,aAAa,CAAC,IAAI,CAEhB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CACzD,CAAC;IAGF,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,QAAQ,CAAC,sDAAgB,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1D,iBAAiB,CAAC,IAAI,CAAC,sDAAgB,CAAC,CAAC;IAGzC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE;QAClC,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/C,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAChC;IAGD,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE;QAC5C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACzC,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SACnD;KACF;AACH,CAAC;AAED,SAAS,QAAQ,CACf,QAAgB,EAChB,eAAoC,EACpC,KAA0B,EAC1B,MAAe;IAGf,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,6CAA6C,QAAQ,IAAI,CAAC,CAAC;KAC5E;IACD,MAAM,IAAI,GAAG,yDAAmB,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,IAAI,CAAC,CAAC;KACtE;IAED,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,IAAI,CAAC,UAAU,EAAE;QACnB,UAAU,IAAI,gCAAgC,MAAM,oBAAoB,CAAC;QACzE,UAAU,IAAI,6CAA6C,CAAC;QAC5D,UAAU,IAAI,oDAAoD,CAAC;KACpE;IACD,UAAU,IAAI,0BAA0B,MAAM,IAAI,CAAC;IACnD,IAAI,QAAQ,KAAK,sDAAgB,EAAE;QACjC,UAAU,IAAI,UAAU,CAAC;KAC1B;IACD,UAAU,IAAI,oBAAoB,QAAQ,IAAI,CAAC;IAC/C,IAAI,QAAQ,KAAK,sDAAgB,EAAE;QACjC,UAAU,IAAI,kBAAkB,CAAC;KAClC;SAAM,IAAI,MAAM,EAAE;QACjB,UAAU,IAAI,iBAAiB,CAAC;KACjC;IACD,UAAU,IAAI,4CAA4C,CAAC;IAC3D,UAAU,IAAI,QAAQ,CAAC;IACvB,UAAU,IAAI,MAAM,CAAC;IACrB,IAAI,QAAQ,KAAK,sDAAgB,EAAE;QACjC,UAAU,IAAI,WAAW,CAAC;KAC3B;IACD,UAAU,IAAI,0BAA0B,MAAM,uCAAuC,CAAC;IACtF,UAAU,IAAI,SAAS,CAAC;IAExB,IAAI,YAAY,CAAC;IACjB,MAAM,UAAU,GAAG,qDAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,IACE,2DAAqB,KAAK,0DAAc;QACxC,IAAI,CAAC,MAAM,KAAK,wDAAY;QAC5B,IAAI,CAAC,MAAM,KAAK,yDAAa,EAC7B;QACA,YAAY,GAAG,UAAU,CAAC;KAC3B;SAAM;QACL,YAAY,GAAG,uBAAuB,MAAM,mBAAmB,UAAU,MAAM,CAAC;KACjF;IAED,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE3C,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpB,OAAO,CAAC,MAAM,CAAC,CAAC;IAChB,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEnC,MAAM,OAAO,GACX,2GAA2G,CAAC;IAC9G,MAAM,cAAc,GAAG;QACrB,GAAG,8CAAgB;QACnB,OAAO;KACR,CAAC;IACF,CAAC,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,OAAO,CAAC,MAAc;IAC7B,CAAC,CAAC,iBAAiB,MAAM,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC,CAAC,iBAAiB,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAEjD,MAAM,IAAI,GAAG,yDAAmB,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,OAAO;SACR;QAID,MAAM,KAAK,GAAG,0DAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO;SACR;QAED,QAAQ,IAAI,CAAC,MAAM,EAAE;YACnB,KAAK,wDAAY,CAAC,CAAC;gBAEjB,MAAM;aACP;YAED,KAAK,0DAAc,CAAC,CAAC;gBACnB,kDAAoB,CAAC,KAAK,CAAC,CAAC;gBAC5B,MAAM;aACP;YAED,KAAK,0DAAc,CAAC,CAAC;gBACnB,sDAAwB,CAAC,KAAK,CAAC,CAAC;gBAChC,MAAM;aACP;YAED,KAAK,6DAAiB,CAAC,CAAC;gBACtB,sDAAwB,CAAC,KAAK,CAAC,CAAC;gBAChC,MAAM;aACP;YAED,KAAK,yDAAa,CAAC,CAAC;gBAElB,MAAM;aACP;YAED,KAAK,+DAAmB,CAAC,CAAC;gBACxB,sDAAwB,CAAC,KAAK,CAAC,CAAC;gBAChC,MAAM;aACP;YAED,OAAO,CAAC,CAAC;gBACP,qDAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC7B;SACF;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,SAAS,WAAW,CAAC,MAAc,EAAE,QAAiB;IAC3D,IAAI,QAAQ,EAAE;QACZ,CAAC,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC,CAAC,iBAAiB,MAAM,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;KACzC;SAAM;QACL,CAAC,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,iBAAiB,MAAM,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;KACzC;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;ACpMqC;AACL;AACwB;AAElD,SAAS,IAAI;IAElB,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAClD,CAAC,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAEpD,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QAC5C,IAAI,KAAK,CAAC,KAAK,KAAK,kDAAkB,EAAE;YACtC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,CAAC,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;SAC7B;IACH,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,kBAAkB;IACzB,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QAC1C,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3B,UAAU,CAAC,GAAG,EAAE;YACd,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC;QAE3B,CAAC,EAAE,CAAC,CAAC,CAAC;KACP;SAAM,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QACnD,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,UAAU,CAAC,GAAG,EAAE;YACd,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC;QAE7B,CAAC,EAAE,CAAC,CAAC,CAAC;KACP;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;KACvD;IAGD,CAAC,CAAC,2BAA2B,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,MAAM;IAEb,MAAM,QAAQ,GAAG,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,IAAI,MAAc,CAAC;IACnB,IAAI,QAAQ,KAAK,kBAAkB,EAAE;QACnC,MAAM,GAAG,IAAI,CAAC;KACf;SAAM,IAAI,QAAQ,KAAK,oBAAoB,EAAE;QAC5C,MAAM,GAAG,MAAM,CAAC;KACjB;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;KACvD;IACD,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAGlD,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC,CAAC,2BAA2B,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE;QAC7B,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC,CAAC,2BAA2B,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAGvC,CAAC,CAAC,2BAA2B,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC,CAAC;IAGF,MAAM,gBAAgB,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC;IAC/C,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;KAC1E;IACD,IAAI,UAA8B,CAAC;IACnC,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,UAAU,GAAG,mDAAY,CAAC,gBAAgB,CAAC,CAAC;QAC5C,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;YAC5B,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAClD,OAAO;SACR;QACD,IAAI,UAAU,GAAG,CAAC,EAAE;YAClB,KAAK,CAAC,mDAAmD,CAAC,CAAC;YAC3D,OAAO;SACR;QACD,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;KACzD;IAGD,MAAM,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC;IAC/C,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;KAC5E;IACD,IAAI,QAAiB,CAAC;IACtB,IAAI,MAAM,KAAK,MAAM,EAAE;QACrB,IAAI;YACF,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAY,CAAC;SAClD;QAAC,OAAO,GAAG,EAAE;YACZ,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACjD,OAAO;SACR;QACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAChC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACjD,OAAO;SACR;QACD,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;KACzD;IAGD,MAAM,YAAY,GAAG,CAAC,CAAC,mDAAmD,CAAC,CAAC,CAAC,CAAC;SAC3E,EAAE,CAAC;IACN,IAAI,UAAkB,CAAC;IACvB,IAAI,YAAY,KAAK,wBAAwB,EAAE;QAC7C,UAAU,GAAG,MAAM,CAAC;KACrB;SAAM,IAAI,YAAY,KAAK,0BAA0B,EAAE;QACtD,UAAU,GAAG,QAAQ,CAAC;KACvB;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IACD,YAAY,CAAC,OAAO,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;IAE1D,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,uDAAkB,CAAC,cAAc,EAAE;YACjC,MAAM;YACN,UAAU;YACV,UAAU;YACV,oBAAoB,EAAE,CAAC,CAAC;SACzB,CAAC,CAAC;KACJ;SAAM,IAAI,MAAM,KAAK,MAAM,EAAE;QAC5B,uDAAkB,CAAC,cAAc,EAAE;YACjC,MAAM;YACN,QAAQ;YACR,UAAU;YACV,oBAAoB,EAAE,CAAC,CAAC;SACzB,CAAC,CAAC;KACJ;IAED,uDAAgB,EAAE,CAAC;AACrB,CAAC;AAIM,SAAS,KAAK;IAEnB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzD,IAAI,SAAS,CAAC;IACd,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,SAAS,GAAG,mBAAmB,CAAC;KACjC;SAAM,IAAI,MAAM,KAAK,MAAM,EAAE;QAC5B,SAAS,GAAG,qBAAqB,CAAC;KACnC;SAAM;QAEL,SAAS,GAAG,mBAAmB,CAAC;KACjC;IACD,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;IAGtB,IAAI,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACvD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAClC,UAAU,GAAG,EAAE,CAAC;KACjB;IACD,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAGhC,IAAI,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,IAAI,GAAG,EAAE,CAAC;KACX;IACD,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAG5B,CAAC,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC,CAAC,2BAA2B,CAAC,CAAC,IAAI,EAAE,CAAC;IAGtC,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACjE,IAAI,aAAa,CAAC;IAClB,IAAI,UAAU,KAAK,MAAM,EAAE;QACzB,aAAa,GAAG,yBAAyB,CAAC;KAC3C;SAAM,IAAI,UAAU,KAAK,QAAQ,EAAE;QAClC,aAAa,GAAG,2BAA2B,CAAC;KAC7C;SAAM;QAEL,aAAa,GAAG,yBAAyB,CAAC;KAC3C;IACD,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC;IAG1B,CAAC,CAAC,2BAA2B,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAIzD,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;YACtC,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;SACzB;aAAM,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;YAC/C,CAAC,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;SAC3B;IACH,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtMM,SAAS,gBAAgB;IAC9B,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;IAC5C,CAAC,CAAC,IAAI,CACJ,SAAS,EACT,CAAC,CAAS,EAAE,QAAgD,EAAE,EAAE;QAC9D,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YAC1B,QAAQ,CAAC,KAAK,EAAE,CAAC;SAClB;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAGM,SAAS,qBAAqB,CAAC,GAAW;IAC/C,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC9C,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC;IACf,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9B,EAAE,CAAC,MAAM,EAAE,CAAC;IACZ,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAEM,MAAM,iBAAiB,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;IAClE,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,SAAS;CACf,CAAC,CAAC;AAII,MAAM,cAAc,GAAG,CAAC,GAAU,EAAS,EAAE,CAAC,GAAG,CAAC;AAElD,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,GAAW,EAAU,EAAE,CAClE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAE7C,SAAS,cAAc,CAAC,IAAY;IACzC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACrE,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,EAAE;QAC/B,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACnC;IACD,GAAG,IAAI,IAAI,CAAC;IAEZ,OAAO,GAAG,CAAC;AACb,CAAC;AAEM,SAAS,SAAS,CAAI,MAAc,EAAE,KAAQ;IACnD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAEM,SAAS,YAAY;IAC1B,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAGM,MAAM,OAAO,GAAG,CACrB,KAA6C,EACpC,EAAE,CAAC,CAAC,KAAK,CAAC;AAGd,MAAM,OAAO,GAAG,CAAI,CAAc,EAAE,MAAS,EAAgB,EAAE,CACpE,CAAC,IAAI,MAAM,CAAC;AAEP,SAAS,yBAAyB,CAAC,YAAoB;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC/C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC;AAC7D,CAAC;AAEM,SAAS,cAAc,CAAC,CAAS;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3B,CAAC;AAEM,SAAS,iBAAiB,CAAC,CAAgB;IAChD,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,IAAI,CAAC,GAAW;IACvB,IAAI,GAAG,GAAG,EAAE,EAAE;QACZ,OAAO,IAAI,GAAG,EAAE,CAAC;KAClB;IACD,OAAO,GAAG,GAAG,EAAE,CAAC;AAClB,CAAC;AAKM,SAAS,YAAY,CAAC,KAAa;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,GAAG,CAAC;KACZ;IAGD,IAAI,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAEhC,MAAM,gBAAgB,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACtD,IAAI,gBAAgB,EAAE;QAEpB,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KAC1C;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;QAEvC,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,gBAAgB,EAAE;QAEpB,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;KACnC;IAED,OAAO,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAEM,SAAS,wBAAwB,CAAC,OAAe,EAAE,IAAa;IAErE,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpE,MAAM,uBAAuB,GAAG,eAAe;SAC5C,QAAQ,EAAE;SAEV,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAErB,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE;QACtC,IAAI,IAAI,IAAI,uBAAuB,EAAE,CAAC;KACvC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE;QAEtB,IAAI,IAAI,IAAI,CAAC;KACd;IACD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC;AAEM,SAAS,cAAc,CAAC,YAAoB;IACjD,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAClC,MAAM,gBAAgB,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,IAAI,KAAK,GAAG,CAAC,EAAE;QACb,MAAM,gBAAgB,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAChE,OAAO,GAAG,KAAK,IAAI,gBAAgB,IAAI,gBAAgB,EAAE,CAAC;KAC3D;IACD,OAAO,GAAG,OAAO,IAAI,gBAAgB,EAAE,CAAC;AAC1C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnJuC;AACR;AACQ;AACgB;AACrB;AAGnC,MAAM,WAAW,GAAG;IAClB,UAAU;CAEX,CAAC;AAGK,SAAS,IAAI;IAElB,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE;QAC/B,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;KAC7C;IAGD,CAAC,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QACrD,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YACzB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,CAAC,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;SACrC;IACH,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,wBAAwB,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAGlD,CAAC,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACpC,YAAY,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAGH,CAAC,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAClC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,SAAS,YAAY,CAAC,OAAe;IAC1C,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,uDAAgB,EAAE,CAAC;IACnB,0DAAoB,GAAG,IAAI,CAAC;IAE5B,CAAC,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;IACvC,CAAC,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;IAGtC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC3D,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE;QACxC,CAAC,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC,0BAA0B,CAAC,CAAC,MAAM,EAAE,CAAC;KACxC;AACH,CAAC;AAED,SAAS,cAAc;IACrB,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,iDAAS,CAAC,CAAC;IACxC,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1B,MAAM,aAAa,GAAG,CAAC,CAAC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC;IACpD,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;QACrC,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;KACH;IACD,MAAM,OAAO,GAAG,mDAAY,CAAC,aAAa,CAAC,CAAC;IAC5C,IAAI,QAAQ,GAAG,CAAC,CAAC,0BAA0B,CAAC,CAAC,GAAG,EAAE,CAAC;IACnD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAChC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAChC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAChC,OAAO;KACR;IACD,uDAAkB,CAAC,WAAW,EAAE;QAC9B,OAAO;QACP,QAAQ;KACT,CAAC,CAAC;IAGH,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC;AAEM,SAAS,WAAW,CAAC,GAAW;IACrC,uDAAgB,EAAE,CAAC;IACnB,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,0DAAoB,GAAG,IAAI,CAAC;IAE5B,CAAC,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAG1C,+DAAyB,GAAG,QAAQ,CAAC,aAA4B,CAAC;IAGlE,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,iDAAS,EAAE,GAAG,EAAE;QACzC,CAAC,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,SAAS,SAAS,CAAC,GAAW;IAEnC,IAAI,2DAAqB,EAAE;QACzB,OAAO;KACR;IACD,2DAAqB,GAAG,IAAI,CAAC;IAE7B,uDAAgB,EAAE,CAAC;IACnB,eAAe,CAAC,GAAG,CAAC,CAAC;IACrB,0DAAoB,GAAG,IAAI,CAAC;IAG5B,4CAAa,CAAC,SAAS,CAAC,CAAC;IAEzB,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,iDAAS,CAAC,CAAC;IAGpC,IACE,qDAAqD,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EACxE;QACA,yCAAW,CAAC,qBAAqB,CAAC,CAAC;KACpC;AACH,CAAC;AAKM,SAAS,eAAe,CAC7B,OAAe,EACf,eAAyB;IAEzB,MAAM,SAAS,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;IACnC,IAAI,OAAO,GAAG,CAAC,EAAE;QACf,SAAS,CAAC,IAAI,EAAE,CAAC;KAClB;IAED,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,iDAAS,EAAE,OAAO,EAAE,GAAG,EAAE;QAC/C,IAAI,OAAO,KAAK,CAAC,EAAE;YACjB,SAAS,CAAC,IAAI,EAAE,CAAC;SAClB;QACD,IAAI,eAAe,KAAK,SAAS,EAAE;YACjC,0DAAoB,GAAG,eAAe,CAAC;SACxC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY;IACnB,CAAC,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,iDAAS,CAAC,CAAC;IACvC,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1B,IAAI,+DAAyB,KAAK,IAAI,EAAE;QACtC,qEAA+B,EAAE,CAAC;KACnC;AACH,CAAC;AAEM,SAAS,QAAQ;IAEtB,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;QACpC,OAAO;KACR;IAED,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE;QAC/B,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,OAAO,CAAC,iDAAS,CAAC,CAAC;KACzC;IAED,YAAY,EAAE,CAAC;AACjB,CAAC;;;;;;;;;;;;;;;;;;ACpKkC;AAE5B,SAAS,IAAI;IAElB,IAAI,CAAC,CAAC,cAAc,IAAI,MAAM,CAAC,EAAE;QAC/B,OAAO;KACR;IAED,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,EAAE;QACzC,OAAO;KACR;IAED,MAAM,kBAAkB,GACtB,6KAA6K,CAAC;IAChL,YAAY,CAAC,iBAAiB,EAAE;SAC7B,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;QAGnB,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,gDAAkB,CAChB,wEAAwE,kBAAkB,EAAE,CAC7F,CAAC;SACH;IACH,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE;QACV,gDAAkB,CAChB,2EAA2E,kBAAkB,EAAE,CAChG,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC;AAEM,SAAS,IAAI,CAAC,GAAW,EAAE,GAAuB;IAEvD,IAAI,CAAC,CAAC,cAAc,IAAI,MAAM,CAAC,EAAE;QAC/B,OAAO;KACR;IAED,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,EAAE;QACzC,OAAO;KACR;IAGD,IAAI,YAAY,CAAC,eAAe,GAAG,EAAE,EAAE;QACrC,GAAG;KACJ,CAAC,CAAC;AACL,CAAC;;;;;;;;;;;;;;;;;;;;;;AC7CyC;AACI;AAER;AAE/B,SAAS,IAAI;IAClB,IAAI,CAAC,SAAS,EAAE,EAAE;QAChB,OAAO;KACR;IAED,iDAAW,CAAC;QACV,GAAG,EAAE,4DAA4D;QACjE,OAAO,EAAE,wDAAgB,EAAE;QAC3B,aAAa,EAAE,CAAC,YAAY,CAAC;QAC7B,YAAY;KACb,CAAC,CAAC;AACL,CAAC;AAED,MAAM,YAAY,GAAG;IAGnB,wCAAwC;IACxC,sEAAsE;IACtE,uDAAuD;IACvD,oDAAoD;IACpD,iDAAiD;IACjD,yEAAyE;IACzE,kGAAkG;IAClG,uIAAuI;IACvI,mIAAmI;IAGnI,oCAAoC;CACrC,CAAC;AAEK,SAAS,cAAc,CAAC,MAAc,EAAE,QAAgB;IAC7D,IAAI,CAAC,SAAS,EAAE,EAAE;QAChB,OAAO;KACR;IAOD,2DAAqB,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1C,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,SAAS,cAAc,CAAC,YAAsB;IACnD,IAAI,CAAC,SAAS,EAAE,EAAE;QAChB,OAAO;KACR;IAKD,2DAAqB,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,SAAS,GAAG,GAAG,EAAE,CACrB,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,mDAAY,EAAE,CAAC;;;;;;;;;;;;;;;;;;ACjE9B;AAGhC,IAAI,WAAW,GAA4B,IAAI,CAAC;AAEzC,SAAS,IAAI;IAMlB,MAAM,UAAU,GAAG;QACjB,MAAM;QACN,aAAa;QAEb,YAAY;QACZ,YAAY;QACZ,SAAS;KAEV,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;QAC7B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,kBAAkB,IAAI,MAAM,CAAC,CAAC;QACtD,KAAK,CAAC,IAAI,EAAE,CAAC;KACd;AACH,CAAC;AAEM,SAAS,IAAI,CAAC,IAAY,EAAE,IAAI,GAAG,KAAK;IAC7C,IAAI,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE;QAChC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;KAC1B;IAED,MAAM,IAAI,GAAG,kBAAkB,IAAI,MAAM,CAAC;IAC1C,WAAW,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;IAI9B,IAAI,EAAE,MAAM,EAAE,GAAG,sDAAgB,CAAC;IAClC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC9B,MAAM,GAAG,EAAE,CAAC;KACb;IACD,WAAW,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;IAElC,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;IAI9B,CAAC,CAAC,CAAC;AACL,CAAC;;;;;;;;;;;;;;;;;;AC9CD,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,aAAa,GAAG,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAC;AAEhE,MAAM,OAAO,GAA0C;IAC5D,SAAS,EAAE,MAAM;IACjB,aAAa,EAAE,IAAI;IACnB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,aAAa;CACrB,CAAC;AAGK,SAAS,QAAQ;IACtB,MAAM,WAAW,GAA0C;QACzD,GAAG,OAAO;QACV,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,QAAQ;QACjB,eAAe,EAAE,IAAI;KACtB,CAAC;IAGF,MAAM,QAAQ,GAAG;QACf,MAAM;QACN,MAAM;QACN,SAAS;QACT,iBAAiB;QACjB,mBAAmB;QACnB,WAAW;QACX,iBAAiB;QACjB,iBAAiB;QACjB,MAAM;QACN,QAAQ;QACR,OAAO;QACP,aAAa;QACb,YAAY;QACZ,MAAM;QACN,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,SAAS;QACT,aAAa;KACd,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,oBAAoB,OAAO,UAAU,CAAC,CAAC;QAClE,CAAC,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;KACnD;IAGD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;IACxC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/B,CAAC,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAG5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;QACnC,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;QACnE,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACnD,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC;aACtB,WAAW,CAAC,UAAU,CAAC;aACvB,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAE9B,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CACxB,yCAAyC,CAAC,UAAU,CACrD,CAAC;QACF,CAAC,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjE,CAAC,CAAC,iCAAiC,CAAC,EAAE,CAAC;aACpC,WAAW,CAAC,UAAU,CAAC;aACvB,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KAC/B;IAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAG5C,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;QACjE,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;KAClD;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC5EiC;AACI;AACY;AAClB;AACkB;AACR;AACP;AAEpB,SAAS,aAAa;IAEnC,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,IACE,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,MAAM;QACnC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/C,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAC3C;QACA,8CAAgB,CAAC,iDAAiD,MAAM,EAAE,CAAC,CAAC;QAC5E,OAAO;KACR;IAID,MAAM,iBAAiB,GACrB,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,IAAI,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC7C,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,EAAE;QAC/B,aAAa,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KAC7C;IACD,MAAM,YAAY,GAAG,GAAG,iBAAiB,MAAM,aAAa,KAAK,CAAC;IAKlE,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,YAAY,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,IAAI,gDAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAGhD,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QAEnB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACpB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,8CAAgB,CACd,sFAAsF,CACvF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,KAAY,EAAE,EAAE;QAGtC,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,YAAY,CAAC,IAAI,CAAC,CAAC;IACnB,kDAAY,GAAG,IAAI,CAAC;AACtB,CAAC;AAGD,SAAS,YAAY,CAAC,IAAgB;IAEpC,KAAK,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,8CAAQ,EAAE;QACrD,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAAa,EAAE,EAAE;YACrC,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;KACJ;IAGD,KAAK,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,yDAAa,EAAE;QAC1D,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAAa,EAAE,EAAE;YACrC,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;KACJ;IAGD,KAAK,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,0DAAY,EAAE;QACzD,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAAa,EAAE,EAAE;YAErC,IAAI,2DAAqB,KAAK,6DAAW,IAAI,gDAAU,KAAK,IAAI,EAAE;gBAChE,OAAO;aACR;YAMD,IACE,gEAA0B;gBAC1B,WAAW,KAAK,MAAM;gBACtB,WAAW,KAAK,gBAAgB,EAChC;gBACA,OAAO;aACR;YAED,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCnGD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA;WACA,gCAAgC,YAAY;WAC5C;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,wCAAwC,yCAAyC;WACjF;WACA;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA,CAAC,I;;;;;WCPD;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA,E;;;;;WCVA,wF;;;;;WCAA;WACA;WACA;WACA,sDAAsD,kBAAkB;WACxE;WACA,+CAA+C,cAAc;WAC7D,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIqB;AAGyB;AACf;AACS;AACJ;AACJ;AACF;AACwB;AACN;AACH;AACQ;AACT;AACJ;AACwB;AACX;AACX;AACc;AACrB;AACA;AACA;AACI;AAGvC,0CAAW,EAAE,CAAC;AAEd,IAEE,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,aAAa;IAC1C,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,iBAAiB;IAE9C,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,gBAAgB,EAC7C;IACA,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;CAC1E;AAED,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;IAErB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QAClB,IAAI,2DAAqB,KAAK,8DAAW,IAAI,gDAAU,KAAK,IAAI,EAAE;YAChE,0DAAoB,EAAE,CAAC;SACxB;IACH,CAAC,CAAC,CAAC;IAGH,uCAAS,EAAE,CAAC;IACZ,4CAAS,EAAE,CAAC;IACZ,4CAAa,EAAE,CAAC;IAChB,gDAAiB,EAAE,CAAC;IACpB,mDAAoB,EAAE,CAAC;IACvB,gDAAiB,EAAE,CAAC;IACpB,wDAAa,EAAE,CAAC;IAChB,6DAAiB,EAAE,CAAC;IACpB,+CAAe,EAAE,CAAC;IAClB,6CAAa,EAAE,CAAC;IAChB,yDAAyB,EAAE,CAAC;IAC5B,6DAAiB,EAAE,CAAC;IACpB,qDAAqB,EAAE,CAAC;IACxB,0CAAW,EAAE,CAAC;IACd,0CAAW,EAAE,CAAC;IAGd,yDAAmB,GAAG,IAAI,4CAAM,EAAE,CAAC;IAUnC,yDAAyB,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC","file":"main.5082.min.js","sourcesContent":["/* tooltipster-scrollableTip v1.0.0 */!function(e,i){\"function\"==typeof define&&define.amd?define([\"tooltipster\"],function(e){return i(e)}):\"object\"==typeof exports?module.exports=i(require(\"tooltipster\")):i(jQuery)}(this,function(e){return e.tooltipster._plugin({name:\"laa.scrollableTip\",instance:{__init:function(i){var t=this;t.__instance=i,t.__maxSize,t.__namespace=\"tooltipster-scrollableTip-\"+Math.round(1e6*Math.random()),t.__instance._on(\"positionTest.\"+t.__namespace,function(e){\"document\"==e.container&&e.takeTest(!1)}),t.__instance._on(\"positionTested.\"+t.__namespace,function(i){var n=!1;if(e.each(i.results,function(e,i){return i.whole?(n=!0,!1):void 0}),n)t.__maxSize=null;else{var o,s,a=[];e.each(i.results,function(e,t){if(a[e]={height:Math.min(i.helper.geo.available.window[t.side].height-t.distance.vertical,i.helper.geo.window.size.height),width:Math.min(i.helper.geo.available.window[t.side].width-t.distance.horizontal,i.helper.geo.window.size.width)},t.size.width<=a[e].width){var n=Math.min(t.size.height,a[e].height),_=Math.min(t.size.width,a[e].width),h=n*_;(!o||h>o)&&(o=h,s=e)}}),i.edit([i.results[s]]),t.__maxSize=a[s]}}),t.__instance._on(\"position.\"+t.__namespace,function(i){var n=i.position;e(i.tooltip).off(\".\"+t.__namespace),t.__maxSize?(n.size.height>t.__maxSize.height&&\"bottom\"!==n.side&&(n.coord.top=0),n.size.width>t.__maxSize.width&&\"right\"!==n.side&&(n.coord.left=0),n.size.height=Math.min(n.size.height,t.__maxSize.height),n.size.width=Math.min(n.size.width,t.__maxSize.width),i.edit(n),t.__instance.option(\"interactive\")||e(i.tooltip).css(\"pointer-events\",\"auto\").on(\"mouseenter.\"+t.__namespace,function(e){t.__instance._trigger({dismissable:!1,type:\"dismissable\"})}).on(\"mouseleave.\"+t.__namespace,function(e){t.__instance._trigger({delay:t.__instance.option(\"delayTouch\")[1],dismissable:!0,event:e,type:\"dismissable\"})})):t.__instance.option(\"interactive\")||e(i.tooltip).css(\"pointer-events\",\"\")})},__destroy:function(){this.__instance._off(\".\"+this.__namespace)}}}),e});","export default function _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}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import { BaseBackend } from '@sentry/core';\nimport { Event, EventHint, Options, Severity, Transport } from '@sentry/types';\nimport { supportsFetch } from '@sentry/utils';\n\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { FetchTransport, XHRTransport } from './transports';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see BrowserClient for more information.\n */\nexport interface BrowserOptions extends Options {\n /**\n * A pattern for error URLs which should exclusively be sent to Sentry.\n * This is the opposite of {@link Options.denyUrls}.\n * By default, all errors will be sent.\n */\n allowUrls?: Array;\n\n /**\n * A pattern for error URLs which should not be sent to Sentry.\n * To allow certain errors instead, use {@link Options.allowUrls}.\n * By default, all errors will be sent.\n */\n denyUrls?: Array;\n\n /** @deprecated use {@link Options.allowUrls} instead. */\n whitelistUrls?: Array;\n\n /** @deprecated use {@link Options.denyUrls} instead. */\n blacklistUrls?: Array;\n}\n\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nexport class BrowserBackend extends BaseBackend {\n /**\n * @inheritDoc\n */\n public eventFromException(exception: unknown, hint?: EventHint): PromiseLike {\n return eventFromException(this._options, exception, hint);\n }\n /**\n * @inheritDoc\n */\n public eventFromMessage(message: string, level: Severity = Severity.Info, hint?: EventHint): PromiseLike {\n return eventFromMessage(this._options, message, level, hint);\n }\n\n /**\n * @inheritDoc\n */\n protected _setupTransport(): Transport {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return super._setupTransport();\n }\n\n const transportOptions = {\n ...this._options.transportOptions,\n dsn: this._options.dsn,\n _metadata: this._options._metadata,\n };\n\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n if (supportsFetch()) {\n return new FetchTransport(transportOptions);\n }\n return new XHRTransport(transportOptions);\n }\n}\n","import { BaseClient, Scope, SDK_VERSION } from '@sentry/core';\nimport { Event, EventHint } from '@sentry/types';\nimport { getGlobalObject, logger } from '@sentry/utils';\n\nimport { BrowserBackend, BrowserOptions } from './backend';\nimport { injectReportDialog, ReportDialogOptions } from './helpers';\nimport { Breadcrumbs } from './integrations';\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n public constructor(options: BrowserOptions = {}) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(BrowserBackend, options);\n }\n\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n public showReportDialog(options: ReportDialogOptions = {}): void {\n // doesn't work without a document (React Native)\n const document = getGlobalObject().document;\n if (!document) {\n return;\n }\n\n if (!this._isEnabled()) {\n logger.error('Trying to call showReportDialog with Sentry Client disabled');\n return;\n }\n\n injectReportDialog({\n ...options,\n dsn: options.dsn || this.getDsn(),\n });\n }\n\n /**\n * @inheritDoc\n */\n protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, scope, hint);\n }\n\n /**\n * @inheritDoc\n */\n protected _sendEvent(event: Event): void {\n const integration = this.getIntegration(Breadcrumbs);\n if (integration) {\n integration.addSentryBreadcrumb(event);\n }\n super._sendEvent(event);\n }\n}\n","import { Event, EventHint, Options, Severity } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n isDOMError,\n isDOMException,\n isError,\n isErrorEvent,\n isEvent,\n isPlainObject,\n SyncPromise,\n} from '@sentry/utils';\n\nimport { eventFromPlainObject, eventFromStacktrace, prepareFramesForEvent } from './parsers';\nimport { computeStackTrace } from './tracekit';\n\n/**\n * Builds and Event from a Exception\n * @hidden\n */\nexport function eventFromException(options: Options, exception: unknown, hint?: EventHint): PromiseLike {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(exception, syntheticException, {\n attachStacktrace: options.attachStacktrace,\n });\n addExceptionMechanism(event, {\n handled: true,\n type: 'generic',\n });\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(\n options: Options,\n message: string,\n level: Severity = Severity.Info,\n hint?: EventHint,\n): PromiseLike {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(message, syntheticException, {\n attachStacktrace: options.attachStacktrace,\n });\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n}\n\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(\n exception: unknown,\n syntheticException?: Error,\n options: {\n rejection?: boolean;\n attachStacktrace?: boolean;\n } = {},\n): Event {\n let event: Event;\n\n if (isErrorEvent(exception as ErrorEvent) && (exception as ErrorEvent).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception as ErrorEvent;\n // eslint-disable-next-line no-param-reassign\n exception = errorEvent.error;\n event = eventFromStacktrace(computeStackTrace(exception as Error));\n return event;\n }\n if (isDOMError(exception as DOMError) || isDOMException(exception as DOMException)) {\n // If it is a DOMError or DOMException (which are legacy APIs, but still supported in some browsers)\n // then we just extract the name, code, and message, as they don't provide anything else\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n const domException = exception as DOMException;\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n\n event = eventFromString(message, syntheticException, options);\n addExceptionTypeValue(event, message);\n if ('code' in domException) {\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception as Error)) {\n // we have a real Error object, do nothing\n event = eventFromStacktrace(computeStackTrace(exception as Error));\n return event;\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it is plain Object or Event, serialize it manually and extract options\n // This will allow us to group events based on top-level keys\n // which is much better than creating new group when any key/value change\n const objectException = exception as Record;\n event = eventFromPlainObject(objectException, syntheticException, options.rejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(exception as string, syntheticException, options);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromString(\n input: string,\n syntheticException?: Error,\n options: {\n attachStacktrace?: boolean;\n } = {},\n): Event {\n const event: Event = {\n message: input,\n };\n\n if (options.attachStacktrace && syntheticException) {\n const stacktrace = computeStackTrace(syntheticException);\n const frames = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames,\n };\n }\n\n return event;\n}\n","import { API, captureException, withScope } from '@sentry/core';\nimport { DsnLike, Event as SentryEvent, Mechanism, Scope, WrappedFunction } from '@sentry/types';\nimport { addExceptionMechanism, addExceptionTypeValue, logger } from '@sentry/utils';\n\nlet ignoreOnError: number = 0;\n\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError(): boolean {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nexport function ignoreNextOnError(): void {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(() => {\n ignoreOnError -= 1;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(\n fn: WrappedFunction,\n options: {\n mechanism?: Mechanism;\n } = {},\n before?: WrappedFunction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // We don't wanna wrap it twice\n if (fn.__sentry__) {\n return fn;\n }\n\n // If this has already been wrapped in the past, return that wrapped function\n if (fn.__sentry_wrapped__) {\n return fn.__sentry_wrapped__;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const sentryWrapped: WrappedFunction = function(this: any): void {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg: any) => wrap(arg, options));\n\n if (fn.handleEvent) {\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return fn.handleEvent.apply(this, wrappedArguments);\n }\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope((scope: Scope) => {\n scope.addEventProcessor((event: SentryEvent) => {\n const processedEvent = { ...event };\n\n if (options.mechanism) {\n addExceptionTypeValue(processedEvent, undefined, undefined);\n addExceptionMechanism(processedEvent, options.mechanism);\n }\n\n processedEvent.extra = {\n ...processedEvent.extra,\n arguments: args,\n };\n\n return processedEvent;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n fn.prototype = fn.prototype || {};\n sentryWrapped.prototype = fn.prototype;\n\n Object.defineProperty(fn, '__sentry_wrapped__', {\n enumerable: false,\n value: sentryWrapped,\n });\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n Object.defineProperties(sentryWrapped, {\n __sentry__: {\n enumerable: false,\n value: true,\n },\n __sentry_original__: {\n enumerable: false,\n value: fn,\n },\n });\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') as PropertyDescriptor;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get(): string {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\nexport interface ReportDialogOptions {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n eventId?: string;\n dsn?: DsnLike;\n user?: {\n email?: string;\n name?: string;\n };\n lang?: string;\n title?: string;\n subtitle?: string;\n subtitle2?: string;\n labelName?: string;\n labelEmail?: string;\n labelComments?: string;\n labelClose?: string;\n labelSubmit?: string;\n errorGeneric?: string;\n errorFormEntry?: string;\n successMessage?: string;\n /** Callback after reportDialog showed up */\n onLoad?(): void;\n}\n\n/**\n * Injects the Report Dialog script\n * @hidden\n */\nexport function injectReportDialog(options: ReportDialogOptions = {}): void {\n if (!options.eventId) {\n logger.error(`Missing eventId option in showReportDialog call`);\n return;\n }\n if (!options.dsn) {\n logger.error(`Missing dsn option in showReportDialog call`);\n return;\n }\n\n const script = document.createElement('script');\n script.async = true;\n script.src = new API(options.dsn).getReportDialogEndpoint(options);\n\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n\n (document.head || document.body).appendChild(script);\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable max-lines */\nimport { getCurrentHub } from '@sentry/core';\nimport { Event, Integration, Severity } from '@sentry/types';\nimport {\n addInstrumentationHandler,\n getEventDescription,\n getGlobalObject,\n htmlTreeAsString,\n parseUrl,\n safeJoin,\n} from '@sentry/utils';\n\n/** JSDoc */\ninterface BreadcrumbsOptions {\n console: boolean;\n dom: boolean | { serializeAttribute: string };\n fetch: boolean;\n history: boolean;\n sentry: boolean;\n xhr: boolean;\n}\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nexport class Breadcrumbs implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Breadcrumbs';\n\n /**\n * @inheritDoc\n */\n public name: string = Breadcrumbs.id;\n\n /** JSDoc */\n private readonly _options: BreadcrumbsOptions;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial) {\n this._options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n }\n\n /**\n * Create a breadcrumb of `sentry` from the events themselves\n */\n public addSentryBreadcrumb(event: Event): void {\n if (!this._options.sentry) {\n return;\n }\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n }\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n public setupOnce(): void {\n if (this._options.console) {\n addInstrumentationHandler({\n callback: (...args) => {\n this._consoleBreadcrumb(...args);\n },\n type: 'console',\n });\n }\n if (this._options.dom) {\n addInstrumentationHandler({\n callback: (...args) => {\n this._domBreadcrumb(...args);\n },\n type: 'dom',\n });\n }\n if (this._options.xhr) {\n addInstrumentationHandler({\n callback: (...args) => {\n this._xhrBreadcrumb(...args);\n },\n type: 'xhr',\n });\n }\n if (this._options.fetch) {\n addInstrumentationHandler({\n callback: (...args) => {\n this._fetchBreadcrumb(...args);\n },\n type: 'fetch',\n });\n }\n if (this._options.history) {\n addInstrumentationHandler({\n callback: (...args) => {\n this._historyBreadcrumb(...args);\n },\n type: 'history',\n });\n }\n }\n\n /**\n * Creates breadcrumbs from console API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _consoleBreadcrumb(handlerData: { [key: string]: any }): void {\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: Severity.fromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n }\n\n /**\n * Creates breadcrumbs from DOM API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _domBreadcrumb(handlerData: { [key: string]: any }): void {\n let target;\n const keyAttr = typeof this._options.dom === 'object' ? this._options.dom.serializeAttribute : undefined;\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target as Node, keyAttr)\n : htmlTreeAsString((handlerData.event as unknown) as Node, keyAttr);\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb(\n {\n category: `ui.${handlerData.name}`,\n message: target,\n },\n {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n },\n );\n }\n\n /**\n * Creates breadcrumbs from XHR API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xhrBreadcrumb(handlerData: { [key: string]: any }): void {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n\n const { method, url, status_code, body } = handlerData.xhr.__sentry_xhr__ || {};\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'xhr',\n data: {\n method,\n url,\n status_code,\n },\n type: 'http',\n },\n {\n xhr: handlerData.xhr,\n input: body,\n },\n );\n\n return;\n }\n }\n\n /**\n * Creates breadcrumbs from fetch API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _fetchBreadcrumb(handlerData: { [key: string]: any }): void {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: handlerData.fetchData,\n level: Severity.Error,\n type: 'http',\n },\n {\n data: handlerData.error,\n input: handlerData.args,\n },\n );\n } else {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: {\n ...handlerData.fetchData,\n status_code: handlerData.response.status,\n },\n type: 'http',\n },\n {\n input: handlerData.args,\n response: handlerData.response,\n },\n );\n }\n }\n\n /**\n * Creates breadcrumbs from history API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _historyBreadcrumb(handlerData: { [key: string]: any }): void {\n const global = getGlobalObject();\n let from = handlerData.from;\n let to = handlerData.to;\n const parsedLoc = parseUrl(global.location.href);\n let parsedFrom = parseUrl(from);\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport { Event, Integration, Primitive, Severity } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addInstrumentationHandler,\n getLocationHref,\n isErrorEvent,\n isPrimitive,\n isString,\n logger,\n} from '@sentry/utils';\n\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n\n/** JSDoc */\ninterface GlobalHandlersIntegrations {\n onerror: boolean;\n onunhandledrejection: boolean;\n}\n\n/** Global handlers */\nexport class GlobalHandlers implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'GlobalHandlers';\n\n /**\n * @inheritDoc\n */\n public name: string = GlobalHandlers.id;\n\n /** JSDoc */\n private readonly _options: GlobalHandlersIntegrations;\n\n /** JSDoc */\n private _onErrorHandlerInstalled: boolean = false;\n\n /** JSDoc */\n private _onUnhandledRejectionHandlerInstalled: boolean = false;\n\n /** JSDoc */\n public constructor(options?: GlobalHandlersIntegrations) {\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n Error.stackTraceLimit = 50;\n\n if (this._options.onerror) {\n logger.log('Global Handler attached: onerror');\n this._installGlobalOnErrorHandler();\n }\n\n if (this._options.onunhandledrejection) {\n logger.log('Global Handler attached: onunhandledrejection');\n this._installGlobalOnUnhandledRejectionHandler();\n }\n }\n\n /** JSDoc */\n private _installGlobalOnErrorHandler(): void {\n if (this._onErrorHandlerInstalled) {\n return;\n }\n\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: (data: { msg: any; url: any; line: any; column: any; error: any }) => {\n const error = data.error;\n const currentHub = getCurrentHub();\n const hasIntegration = currentHub.getIntegration(GlobalHandlers);\n const isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return;\n }\n\n const client = currentHub.getClient();\n const event = isPrimitive(error)\n ? this._eventFromIncompleteOnError(data.msg, data.url, data.line, data.column)\n : this._enhanceEventWithInitialFrame(\n eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: false,\n }),\n data.url,\n data.line,\n data.column,\n );\n\n addExceptionMechanism(event, {\n handled: false,\n type: 'onerror',\n });\n\n currentHub.captureEvent(event, {\n originalException: error,\n });\n },\n type: 'error',\n });\n\n this._onErrorHandlerInstalled = true;\n }\n\n /** JSDoc */\n private _installGlobalOnUnhandledRejectionHandler(): void {\n if (this._onUnhandledRejectionHandlerInstalled) {\n return;\n }\n\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: (e: any) => {\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n const currentHub = getCurrentHub();\n const hasIntegration = currentHub.getIntegration(GlobalHandlers);\n const isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return true;\n }\n\n const client = currentHub.getClient();\n const event = isPrimitive(error)\n ? this._eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: true,\n });\n\n event.level = Severity.Error;\n\n addExceptionMechanism(event, {\n handled: false,\n type: 'onunhandledrejection',\n });\n\n currentHub.captureEvent(event, {\n originalException: error,\n });\n\n return;\n },\n type: 'unhandledrejection',\n });\n\n this._onUnhandledRejectionHandlerInstalled = true;\n }\n\n /**\n * This function creates a stack from an old, error-less onerror handler.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _eventFromIncompleteOnError(msg: any, url: any, line: any, column: any): Event {\n const ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name;\n\n if (isString(message)) {\n const groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n }\n\n const event = {\n exception: {\n values: [\n {\n type: name || 'Error',\n value: message,\n },\n ],\n },\n };\n\n return this._enhanceEventWithInitialFrame(event, url, line, column);\n }\n\n /**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\n private _eventFromRejectionWithPrimitive(reason: Primitive): Event {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n }\n\n /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _enhanceEventWithInitialFrame(event: Event, url: any, line: any, column: any): Event {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].stacktrace = event.exception.values[0].stacktrace || {};\n event.exception.values[0].stacktrace.frames = event.exception.values[0].stacktrace.frames || [];\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n if (event.exception.values[0].stacktrace.frames.length === 0) {\n event.exception.values[0].stacktrace.frames.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n }\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { Event, EventHint, Exception, ExtendedError, Integration } from '@sentry/types';\nimport { isInstanceOf } from '@sentry/utils';\n\nimport { exceptionFromStacktrace } from '../parsers';\nimport { computeStackTrace } from '../tracekit';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\n/** Adds SDK info to an event. */\nexport class LinkedErrors implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'LinkedErrors';\n\n /**\n * @inheritDoc\n */\n public readonly name: string = LinkedErrors.id;\n\n /**\n * @inheritDoc\n */\n private readonly _key: string;\n\n /**\n * @inheritDoc\n */\n private readonly _limit: number;\n\n /**\n * @inheritDoc\n */\n public constructor(options: { key?: string; limit?: number } = {}) {\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event, hint?: EventHint) => {\n const self = getCurrentHub().getIntegration(LinkedErrors);\n if (self) {\n return self._handler(event, hint);\n }\n return event;\n });\n }\n\n /**\n * @inheritDoc\n */\n private _handler(event: Event, hint?: EventHint): Event | null {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n const linkedErrors = this._walkErrorTree(hint.originalException as ExtendedError, this._key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n }\n\n /**\n * @inheritDoc\n */\n private _walkErrorTree(error: ExtendedError, key: string, stack: Exception[] = []): Exception[] {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= this._limit) {\n return stack;\n }\n const stacktrace = computeStackTrace(error[key]);\n const exception = exceptionFromStacktrace(stacktrace);\n return this._walkErrorTree(error[key], key, [exception, ...stack]);\n }\n}\n","import { Integration, WrappedFunction } from '@sentry/types';\nimport { fill, getFunctionName, getGlobalObject } from '@sentry/utils';\n\nimport { wrap } from '../helpers';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\ntype XMLHttpRequestProp = 'onload' | 'onerror' | 'onprogress' | 'onreadystatechange';\n\n/** JSDoc */\ninterface TryCatchOptions {\n setTimeout: boolean;\n setInterval: boolean;\n requestAnimationFrame: boolean;\n XMLHttpRequest: boolean;\n eventTarget: boolean | string[];\n}\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nexport class TryCatch implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'TryCatch';\n\n /**\n * @inheritDoc\n */\n public name: string = TryCatch.id;\n\n /** JSDoc */\n private readonly _options: TryCatchOptions;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial) {\n this._options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n }\n\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n public setupOnce(): void {\n const global = getGlobalObject();\n\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', this._wrapTimeFunction.bind(this));\n }\n\n if (this._options.setInterval) {\n fill(global, 'setInterval', this._wrapTimeFunction.bind(this));\n }\n\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', this._wrapRAF.bind(this));\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', this._wrapXHR.bind(this));\n }\n\n if (this._options.eventTarget) {\n const eventTarget = Array.isArray(this._options.eventTarget) ? this._options.eventTarget : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(this._wrapEventTarget.bind(this));\n }\n }\n\n /** JSDoc */\n private _wrapTimeFunction(original: () => void): () => number {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function(this: any, ...args: any[]): number {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n }\n\n /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _wrapRAF(original: any): (callback: () => void) => any {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function(this: any, callback: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.call(\n this,\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }),\n );\n };\n }\n\n /** JSDoc */\n private _wrapEventTarget(target: string): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const global = getGlobalObject() as { [key: string]: any };\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = global[target] && global[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function(\n original: () => void,\n ): (eventName: string, fn: EventListenerObject, options?: boolean | AddEventListenerOptions) => void {\n return function(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): (eventName: string, fn: EventListenerObject, capture?: boolean, secure?: boolean) => void {\n try {\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.call(\n this,\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap((fn as any) as WrappedFunction, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n }),\n options,\n );\n };\n });\n\n fill(proto, 'removeEventListener', function(\n originalRemoveEventListener: () => void,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): (this: any, eventName: string, fn: EventListenerObject, options?: boolean | EventListenerOptions) => () => void {\n return function(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = (fn as unknown) as WrappedFunction;\n try {\n const originalEventHandler = wrappedEventHandler?.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n });\n }\n\n /** JSDoc */\n private _wrapXHR(originalSend: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function(this: XMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps: XMLHttpRequestProp[] = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function(original: WrappedFunction): () => any {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n if (original.__sentry_original__) {\n wrapOptions.mechanism.data.handler = getFunctionName(original.__sentry_original__);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n }\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { Event, Integration } from '@sentry/types';\nimport { getGlobalObject } from '@sentry/utils';\n\nconst global = getGlobalObject();\n\n/** UserAgent */\nexport class UserAgent implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'UserAgent';\n\n /**\n * @inheritDoc\n */\n public name: string = UserAgent.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event) => {\n if (getCurrentHub().getIntegration(UserAgent)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n\n // grab as much info as exists and add it to the event\n const url = event.request?.url || global.location?.href;\n const { referrer } = global.document || {};\n const { userAgent } = global.navigator || {};\n\n const headers = {\n ...event.request?.headers,\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...(url && { url }), headers };\n\n return { ...event, request };\n }\n return event;\n });\n }\n}\n","import { Event, Exception, StackFrame } from '@sentry/types';\nimport { extractExceptionKeysForMessage, isEvent, normalizeToSize } from '@sentry/utils';\n\nimport { computeStackTrace, StackFrame as TraceKitStackFrame, StackTrace as TraceKitStackTrace } from './tracekit';\n\nconst STACKTRACE_LIMIT = 50;\n\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\nexport function exceptionFromStacktrace(stacktrace: TraceKitStackTrace): Exception {\n const frames = prepareFramesForEvent(stacktrace.stack);\n\n const exception: Exception = {\n type: stacktrace.name,\n value: stacktrace.message,\n };\n\n if (frames && frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nexport function eventFromPlainObject(\n exception: Record,\n syntheticException?: Error,\n rejection?: boolean,\n): Event {\n const event: Event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : rejection ? 'UnhandledRejection' : 'Error',\n value: `Non-Error ${\n rejection ? 'promise rejection' : 'exception'\n } captured with keys: ${extractExceptionKeysForMessage(exception)}`,\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n\n if (syntheticException) {\n const stacktrace = computeStackTrace(syntheticException);\n const frames = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames,\n };\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromStacktrace(stacktrace: TraceKitStackTrace): Event {\n const exception = exceptionFromStacktrace(stacktrace);\n\n return {\n exception: {\n values: [exception],\n },\n };\n}\n\n/**\n * @hidden\n */\nexport function prepareFramesForEvent(stack: TraceKitStackFrame[]): StackFrame[] {\n if (!stack || !stack.length) {\n return [];\n }\n\n let localStack = stack;\n\n const firstFrameFunction = localStack[0].func || '';\n const lastFrameFunction = localStack[localStack.length - 1].func || '';\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(\n (frame: TraceKitStackFrame): StackFrame => ({\n colno: frame.column === null ? undefined : frame.column,\n filename: frame.url || localStack[0].url,\n function: frame.func || '?',\n in_app: true,\n lineno: frame.line === null ? undefined : frame.line,\n }),\n )\n .reverse();\n}\n","import { getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';\nimport { addInstrumentationHandler, getGlobalObject, logger, SyncPromise } from '@sentry/utils';\n\nimport { BrowserOptions } from './backend';\nimport { BrowserClient } from './client';\nimport { ReportDialogOptions, wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, GlobalHandlers, LinkedErrors, TryCatch, UserAgent } from './integrations';\n\nexport const defaultIntegrations = [\n new CoreIntegrations.InboundFilters(),\n new CoreIntegrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new UserAgent(),\n];\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options: BrowserOptions = {}): void {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n const window = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window.SENTRY_RELEASE && window.SENTRY_RELEASE.id) {\n options.release = window.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n\n initAndBind(BrowserClient, options);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nexport function showReportDialog(options: ReportDialogOptions = {}): void {\n if (!options.eventId) {\n options.eventId = getCurrentHub().lastEventId();\n }\n const client = getCurrentHub().getClient();\n if (client) {\n client.showReportDialog(options);\n }\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId(): string | undefined {\n return getCurrentHub().lastEventId();\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad(): void {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback: () => void): void {\n callback();\n}\n\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\nexport function flush(timeout?: number): PromiseLike {\n const client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n return SyncPromise.reject(false);\n}\n\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\nexport function close(timeout?: number): PromiseLike {\n const client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n return SyncPromise.reject(false);\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrap(fn: (...args: any) => any): any {\n return internalWrap(fn)();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking(): void {\n const window = getGlobalObject();\n const document = window.document;\n\n if (typeof document === 'undefined') {\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n const hub = getCurrentHub();\n\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (typeof hub.startSession !== 'function' || typeof hub.captureSession !== 'function') {\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n\n // We want to create a session for every navigation as well\n addInstrumentationHandler({\n callback: ({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (from === undefined || from === to) {\n return;\n }\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n },\n type: 'history',\n });\n}\n","/**\n * This was originally forked from https://github.com/occ/TraceKit, but has since been\n * largely modified and is now maintained as part of Sentry JS SDK.\n */\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/**\n * An object representing a single stack frame.\n * {Object} StackFrame\n * {string} url The JavaScript or HTML file URL.\n * {string} func The function name, or empty for anonymous functions (if guessing did not work).\n * {string[]?} args The arguments passed to the function, if known.\n * {number=} line The line number, if known.\n * {number=} column The column number, if known.\n * {string[]} context An array of source code lines; the middle element corresponds to the correct line#.\n */\nexport interface StackFrame {\n url: string;\n func: string;\n args: string[];\n line: number | null;\n column: number | null;\n}\n\n/**\n * An object representing a JavaScript stack trace.\n * {Object} StackTrace\n * {string} name The name of the thrown exception.\n * {string} message The exception error message.\n * {TraceKit.StackFrame[]} stack An array of stack frames.\n */\nexport interface StackTrace {\n name: string;\n message: string;\n mechanism?: string;\n stack: StackFrame[];\n failed?: boolean;\n}\n\n// global reference to slice\nconst UNKNOWN_FUNCTION = '?';\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nconst chrome = /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nconst geckoEval = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nconst chromeEval = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function computeStackTrace(ex: any): StackTrace {\n let stack = null;\n let popSize = 0;\n\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n popSize = ex.framesToPop;\n } else if (reactMinifiedRegexp.test(ex.message)) {\n popSize = 1;\n }\n }\n\n try {\n // This must be tried first because Opera 10 *destroys*\n // its stacktrace property if you try to access the stack\n // property first!!\n stack = computeStackTraceFromStacktraceProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n } catch (e) {\n // no-empty\n }\n\n try {\n stack = computeStackTraceFromStackProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n } catch (e) {\n // no-empty\n }\n\n return {\n message: extractMessage(ex),\n name: ex && ex.name,\n stack: [],\n failed: true,\n };\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, complexity\nfunction computeStackTraceFromStackProp(ex: any): StackTrace | null {\n if (!ex || !ex.stack) {\n return null;\n }\n\n const stack = [];\n const lines = ex.stack.split('\\n');\n let isEval;\n let submatch;\n let parts;\n let element;\n\n for (let i = 0; i < lines.length; ++i) {\n if ((parts = chrome.exec(lines[i]))) {\n const isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n if (isEval && (submatch = chromeEval.exec(parts[2]))) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n\n // Arpad: Working with the regexp above is super painful. it is quite a hack, but just stripping the `address at `\n // prefix here seems like the quickest solution for now.\n let url = parts[2] && parts[2].indexOf('address at ') === 0 ? parts[2].substr('address at '.length) : parts[2];\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n let func = parts[1] || UNKNOWN_FUNCTION;\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n if (isSafariExtension || isSafariWebExtension) {\n func = func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION;\n url = isSafariExtension ? `safari-extension:${url}` : `safari-web-extension:${url}`;\n }\n\n element = {\n url,\n func,\n args: isNative ? [parts[2]] : [],\n line: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null,\n };\n } else if ((parts = winjs.exec(lines[i]))) {\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: [],\n line: +parts[3],\n column: parts[4] ? +parts[4] : null,\n };\n } else if ((parts = gecko.exec(lines[i]))) {\n isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval && (submatch = geckoEval.exec(parts[3]))) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || `eval`;\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = ''; // no column when eval\n } else if (i === 0 && !parts[5] && ex.columnNumber !== void 0) {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n // NOTE: this hack doesn't work if top-most frame is eval\n stack[0].column = (ex.columnNumber as number) + 1;\n }\n element = {\n url: parts[3],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: parts[2] ? parts[2].split(',') : [],\n line: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null,\n };\n } else {\n continue;\n }\n\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n\n stack.push(element);\n }\n\n if (!stack.length) {\n return null;\n }\n\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack,\n };\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction computeStackTraceFromStacktraceProp(ex: any): StackTrace | null {\n if (!ex || !ex.stacktrace) {\n return null;\n }\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace;\n const opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n const opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\((.*)\\))? in (.*):\\s*$/i;\n const lines = stacktrace.split('\\n');\n const stack = [];\n let parts;\n\n for (let line = 0; line < lines.length; line += 2) {\n let element = null;\n if ((parts = opera10Regex.exec(lines[line]))) {\n element = {\n url: parts[2],\n func: parts[3],\n args: [],\n line: +parts[1],\n column: null,\n };\n } else if ((parts = opera11Regex.exec(lines[line]))) {\n element = {\n url: parts[6],\n func: parts[3] || parts[4],\n args: parts[5] ? parts[5].split(',') : [],\n line: +parts[1],\n column: +parts[2],\n };\n }\n\n if (element) {\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n }\n\n if (!stack.length) {\n return null;\n }\n\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack,\n };\n}\n\n/** Remove N number of frames from the stack */\nfunction popFrames(stacktrace: StackTrace, popSize: number): StackTrace {\n try {\n return {\n ...stacktrace,\n stack: stacktrace.stack.slice(popSize),\n };\n } catch (e) {\n return stacktrace;\n }\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction extractMessage(ex: any): string {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n","import { API } from '@sentry/core';\nimport {\n Event,\n Response as SentryResponse,\n SentryRequestType,\n Status,\n Transport,\n TransportOptions,\n} from '@sentry/types';\nimport { logger, parseRetryAfterHeader, PromiseBuffer, SentryError } from '@sentry/utils';\n\nconst CATEGORY_MAPPING: {\n [key in SentryRequestType]: string;\n} = {\n event: 'error',\n transaction: 'transaction',\n session: 'session',\n attachment: 'attachment',\n};\n\n/** Base Transport class implementation */\nexport abstract class BaseTransport implements Transport {\n /**\n * @deprecated\n */\n public url: string;\n\n /** Helper to get Sentry API endpoints. */\n protected readonly _api: API;\n\n /** A simple buffer holding all requests. */\n protected readonly _buffer: PromiseBuffer = new PromiseBuffer(30);\n\n /** Locks transport after receiving rate limits in a response */\n protected readonly _rateLimits: Record = {};\n\n public constructor(public options: TransportOptions) {\n this._api = new API(options.dsn, options._metadata);\n // eslint-disable-next-line deprecation/deprecation\n this.url = this._api.getStoreEndpointWithUrlEncodedAuth();\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(_: Event): PromiseLike {\n throw new SentryError('Transport Class has to implement `sendEvent` method');\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike {\n return this._buffer.drain(timeout);\n }\n\n /**\n * Handle Sentry repsonse for promise-based transports.\n */\n protected _handleResponse({\n requestType,\n response,\n headers,\n resolve,\n reject,\n }: {\n requestType: SentryRequestType;\n response: Response | XMLHttpRequest;\n headers: Record;\n resolve: (value?: SentryResponse | PromiseLike | null | undefined) => void;\n reject: (reason?: unknown) => void;\n }): void {\n const status = Status.fromHttpCode(response.status);\n /**\n * \"The name is case-insensitive.\"\n * https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n */\n const limited = this._handleRateLimit(headers);\n if (limited) logger.warn(`Too many requests, backing off until: ${this._disabledUntil(requestType)}`);\n\n if (status === Status.Success) {\n resolve({ status });\n return;\n }\n\n reject(response);\n }\n\n /**\n * Gets the time that given category is disabled until for rate limiting\n */\n protected _disabledUntil(requestType: SentryRequestType): Date {\n const category = CATEGORY_MAPPING[requestType];\n return this._rateLimits[category] || this._rateLimits.all;\n }\n\n /**\n * Checks if a category is rate limited\n */\n protected _isRateLimited(requestType: SentryRequestType): boolean {\n return this._disabledUntil(requestType) > new Date(Date.now());\n }\n\n /**\n * Sets internal _rateLimits from incoming headers. Returns true if headers contains a non-empty rate limiting header.\n */\n protected _handleRateLimit(headers: Record): boolean {\n const now = Date.now();\n const rlHeader = headers['x-sentry-rate-limits'];\n const raHeader = headers['retry-after'];\n\n if (rlHeader) {\n // rate limit headers are of the form\n //
,
,..\n // where each
is of the form\n // : : : \n // where\n // is a delay in ms\n // is the event type(s) (error, transaction, etc) being rate limited and is of the form\n // ;;...\n // is what's being limited (org, project, or key) - ignored by SDK\n // is an arbitrary string like \"org_quota\" - ignored by SDK\n for (const limit of rlHeader.trim().split(',')) {\n const parameters = limit.split(':', 2);\n const headerDelay = parseInt(parameters[0], 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n for (const category of parameters[1].split(';')) {\n this._rateLimits[category || 'all'] = new Date(now + delay);\n }\n }\n return true;\n } else if (raHeader) {\n this._rateLimits.all = new Date(now + parseRetryAfterHeader(now, raHeader));\n return true;\n }\n return false;\n }\n}\n","import { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';\nimport { Event, Response, SentryRequest, Session, TransportOptions } from '@sentry/types';\nimport { getGlobalObject, isNativeFetch, logger, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\n\nimport { BaseTransport } from './base';\n\ntype FetchImpl = typeof fetch;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction getNativeFetchImplementation(): FetchImpl {\n /* eslint-disable @typescript-eslint/unbound-method */\n\n // Fast path to avoid DOM I/O\n const global = getGlobalObject();\n if (isNativeFetch(global.fetch)) {\n return global.fetch.bind(global);\n }\n\n const document = global.document;\n let fetchImpl = global.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (typeof document?.createElement === `function`) {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n if (sandbox.contentWindow?.fetch) {\n fetchImpl = sandbox.contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return fetchImpl.bind(global);\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n\n/** `fetch` based transport */\nexport class FetchTransport extends BaseTransport {\n /**\n * Fetch API reference which always points to native browser implementation.\n */\n private _fetch: typeof fetch;\n\n public constructor(options: TransportOptions, fetchImpl: FetchImpl = getNativeFetchImplementation()) {\n super(options);\n this._fetch = fetchImpl;\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event): PromiseLike {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session): PromiseLike {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n }\n\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n private _sendRequest(sentryRequest: SentryRequest, originalPayload: Event | Session): PromiseLike {\n if (this._isRateLimited(sentryRequest.type)) {\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: `Transport locked till ${this._disabledUntil(sentryRequest.type)} due to too many requests.`,\n status: 429,\n });\n }\n\n const options: RequestInit = {\n body: sentryRequest.body,\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: (supportsReferrerPolicy() ? 'origin' : '') as ReferrerPolicy,\n };\n if (this.options.fetchParameters !== undefined) {\n Object.assign(options, this.options.fetchParameters);\n }\n if (this.options.headers !== undefined) {\n options.headers = this.options.headers;\n }\n\n return this._buffer.add(\n new SyncPromise((resolve, reject) => {\n void this._fetch(sentryRequest.url, options)\n .then(response => {\n const headers = {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n };\n this._handleResponse({\n requestType: sentryRequest.type,\n response,\n headers,\n resolve,\n reject,\n });\n })\n .catch(reject);\n }),\n );\n }\n}\n","import { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';\nimport { Event, Response, SentryRequest, Session } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n\nimport { BaseTransport } from './base';\n\n/** `XHR` based transport */\nexport class XHRTransport extends BaseTransport {\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event): PromiseLike {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session): PromiseLike {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n }\n\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n private _sendRequest(sentryRequest: SentryRequest, originalPayload: Event | Session): PromiseLike {\n if (this._isRateLimited(sentryRequest.type)) {\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: `Transport locked till ${this._disabledUntil(sentryRequest.type)} due to too many requests.`,\n status: 429,\n });\n }\n\n return this._buffer.add(\n new SyncPromise((resolve, reject) => {\n const request = new XMLHttpRequest();\n\n request.onreadystatechange = (): void => {\n if (request.readyState === 4) {\n const headers = {\n 'x-sentry-rate-limits': request.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': request.getResponseHeader('Retry-After'),\n };\n this._handleResponse({ requestType: sentryRequest.type, response: request, headers, resolve, reject });\n }\n };\n\n request.open('POST', sentryRequest.url);\n for (const header in this.options.headers) {\n if (this.options.headers.hasOwnProperty(header)) {\n request.setRequestHeader(header, this.options.headers[header]);\n }\n }\n request.send(sentryRequest.body);\n }),\n );\n }\n}\n","import { DsnLike, SdkMetadata } from '@sentry/types';\nimport { Dsn, urlEncode } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/**\n * Helper class to provide urls, headers and metadata that can be used to form\n * different types of requests to Sentry endpoints.\n * Supports both envelopes and regular event requests.\n **/\nexport class API {\n /** The DSN as passed to Sentry.init() */\n public dsn: DsnLike;\n\n /** Metadata about the SDK (name, version, etc) for inclusion in envelope headers */\n public metadata: SdkMetadata;\n\n /** The internally used Dsn object. */\n private readonly _dsnObject: Dsn;\n\n /** Create a new instance of API */\n public constructor(dsn: DsnLike, metadata: SdkMetadata = {}) {\n this.dsn = dsn;\n this._dsnObject = new Dsn(dsn);\n this.metadata = metadata;\n }\n\n /** Returns the Dsn object. */\n public getDsn(): Dsn {\n return this._dsnObject;\n }\n\n /** Returns the prefix to construct Sentry ingestion API endpoints. */\n public getBaseApiEndpoint(): string {\n const dsn = this._dsnObject;\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n }\n\n /** Returns the store endpoint URL. */\n public getStoreEndpoint(): string {\n return this._getIngestEndpoint('store');\n }\n\n /**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n public getStoreEndpointWithUrlEncodedAuth(): string {\n return `${this.getStoreEndpoint()}?${this._encodedAuth()}`;\n }\n\n /**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n public getEnvelopeEndpointWithUrlEncodedAuth(): string {\n return `${this._getEnvelopeEndpoint()}?${this._encodedAuth()}`;\n }\n\n /** Returns only the path component for the store endpoint. */\n public getStoreEndpointPath(): string {\n const dsn = this._dsnObject;\n return `${dsn.path ? `/${dsn.path}` : ''}/api/${dsn.projectId}/store/`;\n }\n\n /**\n * Returns an object that can be used in request headers.\n * This is needed for node and the old /store endpoint in sentry\n */\n public getRequestHeaders(clientName: string, clientVersion: string): { [key: string]: string } {\n // CHANGE THIS to use metadata but keep clientName and clientVersion compatible\n const dsn = this._dsnObject;\n const header = [`Sentry sentry_version=${SENTRY_API_VERSION}`];\n header.push(`sentry_client=${clientName}/${clientVersion}`);\n header.push(`sentry_key=${dsn.publicKey}`);\n if (dsn.pass) {\n header.push(`sentry_secret=${dsn.pass}`);\n }\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', '),\n };\n }\n\n /** Returns the url to the report dialog endpoint. */\n public getReportDialogEndpoint(\n dialogOptions: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n user?: { name?: string; email?: string };\n } = {},\n ): string {\n const dsn = this._dsnObject;\n const endpoint = `${this.getBaseApiEndpoint()}embed/error-page/`;\n\n const encodedOptions = [];\n encodedOptions.push(`dsn=${dsn.toString()}`);\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n if (dialogOptions.user.name) {\n encodedOptions.push(`name=${encodeURIComponent(dialogOptions.user.name)}`);\n }\n if (dialogOptions.user.email) {\n encodedOptions.push(`email=${encodeURIComponent(dialogOptions.user.email)}`);\n }\n } else {\n encodedOptions.push(`${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] as string)}`);\n }\n }\n if (encodedOptions.length) {\n return `${endpoint}?${encodedOptions.join('&')}`;\n }\n\n return endpoint;\n }\n\n /** Returns the envelope endpoint URL. */\n private _getEnvelopeEndpoint(): string {\n return this._getIngestEndpoint('envelope');\n }\n\n /** Returns the ingest API endpoint for target. */\n private _getIngestEndpoint(target: 'store' | 'envelope'): string {\n const base = this.getBaseApiEndpoint();\n const dsn = this._dsnObject;\n return `${base}${dsn.projectId}/${target}/`;\n }\n\n /** Returns a URL-encoded string with auth config suitable for a query string. */\n private _encodedAuth(): string {\n const dsn = this._dsnObject;\n const auth = {\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n };\n return urlEncode(auth);\n }\n}\n","import { Event, EventHint, Options, Session, Severity, Transport } from '@sentry/types';\nimport { logger, SentryError } from '@sentry/utils';\n\nimport { NoopTransport } from './transports/noop';\n\n/**\n * Internal platform-dependent Sentry SDK Backend.\n *\n * While {@link Client} contains business logic specific to an SDK, the\n * Backend offers platform specific implementations for low-level operations.\n * These are persisting and loading information, sending events, and hooking\n * into the environment.\n *\n * Backends receive a handle to the Client in their constructor. When a\n * Backend automatically generates events, it must pass them to\n * the Client for validation and processing first.\n *\n * Usually, the Client will be of corresponding type, e.g. NodeBackend\n * receives NodeClient. However, higher-level SDKs can choose to instantiate\n * multiple Backends and delegate tasks between them. In this case, an event\n * generated by one backend might very well be sent by another one.\n *\n * The client also provides access to options via {@link Client.getOptions}.\n * @hidden\n */\nexport interface Backend {\n /** Creates a {@link Event} from an exception. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n eventFromException(exception: any, hint?: EventHint): PromiseLike;\n\n /** Creates a {@link Event} from a plain message. */\n eventFromMessage(message: string, level?: Severity, hint?: EventHint): PromiseLike;\n\n /** Submits the event to Sentry */\n sendEvent(event: Event): void;\n\n /** Submits the session to Sentry */\n sendSession(session: Session): void;\n\n /**\n * Returns the transport that is used by the backend.\n * Please note that the transport gets lazy initialized so it will only be there once the first event has been sent.\n *\n * @returns The transport.\n */\n getTransport(): Transport;\n}\n\n/**\n * A class object that can instantiate Backend objects.\n * @hidden\n */\nexport type BackendClass = new (options: O) => B;\n\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\nexport abstract class BaseBackend implements Backend {\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** Cached transport used internally. */\n protected _transport: Transport;\n\n /** Creates a new backend instance. */\n public constructor(options: O) {\n this._options = options;\n if (!this._options.dsn) {\n logger.warn('No DSN provided, backend will not do anything.');\n }\n this._transport = this._setupTransport();\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public eventFromException(_exception: any, _hint?: EventHint): PromiseLike {\n throw new SentryError('Backend has to implement `eventFromException` method');\n }\n\n /**\n * @inheritDoc\n */\n public eventFromMessage(_message: string, _level?: Severity, _hint?: EventHint): PromiseLike {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event): void {\n void this._transport.sendEvent(event).then(null, reason => {\n logger.error(`Error while sending event: ${reason}`);\n });\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session): void {\n if (!this._transport.sendSession) {\n logger.warn(\"Dropping session because custom transport doesn't implement sendSession\");\n return;\n }\n\n void this._transport.sendSession(session).then(null, reason => {\n logger.error(`Error while sending session: ${reason}`);\n });\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport {\n return this._transport;\n }\n\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n protected _setupTransport(): Transport {\n return new NoopTransport();\n }\n}\n","/* eslint-disable max-lines */\nimport { Scope, Session } from '@sentry/hub';\nimport {\n Client,\n Event,\n EventHint,\n Integration,\n IntegrationClass,\n Options,\n SessionStatus,\n Severity,\n} from '@sentry/types';\nimport {\n dateTimestampInSeconds,\n Dsn,\n isPrimitive,\n isThenable,\n logger,\n normalize,\n SentryError,\n SyncPromise,\n truncate,\n uuid4,\n} from '@sentry/utils';\n\nimport { Backend, BackendClass } from './basebackend';\nimport { IntegrationIndex, setupIntegrations } from './integration';\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event via the backend, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\nexport abstract class BaseClient implements Client {\n /**\n * The backend used to physically interact in the environment. Usually, this\n * will correspond to the client. When composing SDKs, however, the Backend\n * from the root SDK will be used.\n */\n protected readonly _backend: B;\n\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n protected readonly _dsn?: Dsn;\n\n /** Array of used integrations. */\n protected _integrations: IntegrationIndex = {};\n\n /** Number of call being processed */\n protected _processing: number = 0;\n\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n protected constructor(backendClass: BackendClass, options: O) {\n this._backend = new backendClass(options);\n this._options = options;\n\n if (options.dsn) {\n this._dsn = new Dsn(options.dsn);\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint, scope?: Scope): string | undefined {\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this._getBackend()\n .eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(message: string, level?: Severity, hint?: EventHint, scope?: Scope): string | undefined {\n let eventId: string | undefined = hint && hint.event_id;\n\n const promisedEvent = isPrimitive(message)\n ? this._getBackend().eventFromMessage(String(message), level, hint)\n : this._getBackend().eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint, scope?: Scope): string | undefined {\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this._captureEvent(event, hint, scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(session: Session): void {\n if (!(typeof session.release === 'string')) {\n logger.warn('Discarded session because of missing or non-string release');\n } else {\n this._sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n session.update({ init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n public getDsn(): Dsn | undefined {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n public getOptions(): O {\n return this._options;\n }\n\n /**\n * @inheritDoc\n */\n public flush(timeout?: number): PromiseLike {\n return this._isClientProcessing(timeout).then(ready => {\n return this._getBackend()\n .getTransport()\n .close(timeout)\n .then(transportFlushed => ready && transportFlushed);\n });\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n return result;\n });\n }\n\n /**\n * Sets up the integrations\n */\n public setupIntegrations(): void {\n if (this._isEnabled()) {\n this._integrations = setupIntegrations(this._options);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration(integration: IntegrationClass): T | null {\n try {\n return (this._integrations[integration.id] as T) || null;\n } catch (_oO) {\n logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /** Updates existing session based on the provided event */\n protected _updateSessionFromEvent(session: Session, event: Event): void {\n let crashed = false;\n let errored = false;\n let userAgent;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n const user = event.user;\n if (!session.userAgent) {\n const headers = event.request ? event.request.headers : {};\n for (const key in headers) {\n if (key.toLowerCase() === 'user-agent') {\n userAgent = headers[key];\n break;\n }\n }\n }\n\n session.update({\n ...(crashed && { status: SessionStatus.Crashed }),\n user,\n userAgent,\n errors: session.errors + Number(errored || crashed),\n });\n this.captureSession(session);\n }\n\n /** Deliver captured session to Sentry */\n protected _sendSession(session: Session): void {\n this._getBackend().sendSession(session);\n }\n\n /** Waits for the client to be done with processing. */\n protected _isClientProcessing(timeout?: number): PromiseLike {\n return new SyncPromise(resolve => {\n let ticked: number = 0;\n const tick: number = 1;\n\n const interval = setInterval(() => {\n if (this._processing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Returns the current backend. */\n protected _getBackend(): B {\n return this._backend;\n }\n\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n protected _isEnabled(): boolean {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike {\n const { normalizeDepth = 3 } = this.getOptions();\n const prepared: Event = {\n ...event,\n event_id: event.event_id || (hint && hint.event_id ? hint.event_id : uuid4()),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n let finalScope = scope;\n if (hint && hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n\n // We prepare the result here with a resolved Event.\n let result = SyncPromise.resolve(prepared);\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(evt => {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return this._normalizeEvent(evt, normalizeDepth);\n }\n return evt;\n });\n }\n\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n protected _normalizeEvent(event: Event | null, depth: number): Event | null {\n if (!event) {\n return null;\n }\n\n const normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth),\n }),\n };\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n normalized.contexts.trace = event.contexts.trace;\n }\n return normalized;\n }\n\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n protected _applyClientOptions(event: Event): void {\n const options = this.getOptions();\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n }\n\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n protected _applyIntegrationsMetadata(event: Event): void {\n const integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationsArray];\n }\n }\n\n /**\n * Tells the backend to send this event\n * @param event The Sentry event to send\n */\n protected _sendEvent(event: Event): void {\n this._getBackend().sendEvent(event);\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n protected _captureEvent(event: Event, hint?: EventHint, scope?: Scope): PromiseLike {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n logger.error(reason);\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n protected _processEvent(event: Event, hint?: EventHint, scope?: Scope): PromiseLike {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeSend, sampleRate } = this.getOptions();\n\n if (!this._isEnabled()) {\n return SyncPromise.reject(new SentryError('SDK not enabled, will not send event.'));\n }\n\n const isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n return SyncPromise.reject(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n ),\n );\n }\n\n return this._prepareEvent(event, scope, hint)\n .then(prepared => {\n if (prepared === null) {\n throw new SentryError('An event processor returned null, will not send event.');\n }\n\n const isInternalException = hint && hint.data && (hint.data as { __sentry__: boolean }).__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n\n const beforeSendResult = beforeSend(prepared, hint);\n if (typeof beforeSendResult === 'undefined') {\n throw new SentryError('`beforeSend` method has to return `null` or a valid event.');\n } else if (isThenable(beforeSendResult)) {\n return (beforeSendResult as PromiseLike).then(\n event => event,\n e => {\n throw new SentryError(`beforeSend rejected with ${e}`);\n },\n );\n }\n return beforeSendResult;\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n\n const session = scope && scope.getSession && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n this._sendEvent(processedEvent);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason as Error,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n protected _process(promise: PromiseLike): void {\n this._processing += 1;\n void promise.then(\n value => {\n this._processing -= 1;\n return value;\n },\n reason => {\n this._processing -= 1;\n return reason;\n },\n );\n }\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { Integration, Options } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nexport const installedIntegrations: string[] = [];\n\n/** Map of integrations assigned to a client */\nexport interface IntegrationIndex {\n [key: string]: Integration;\n}\n\n/**\n * @private\n */\nfunction filterDuplicates(integrations: Integration[]): Integration[] {\n return integrations.reduce((acc, integrations) => {\n if (acc.every(accIntegration => integrations.name !== accIntegration.name)) {\n acc.push(integrations);\n }\n return acc;\n }, [] as Integration[]);\n}\n\n/** Gets integration to install */\nexport function getIntegrationsToSetup(options: Options): Integration[] {\n const defaultIntegrations = (options.defaultIntegrations && [...options.defaultIntegrations]) || [];\n const userIntegrations = options.integrations;\n\n let integrations: Integration[] = [...filterDuplicates(defaultIntegrations)];\n\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = [\n ...integrations.filter(integrations =>\n userIntegrations.every(userIntegration => userIntegration.name !== integrations.name),\n ),\n // And filter out duplicated user options integrations\n ...filterDuplicates(userIntegrations),\n ];\n } else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n\n // Make sure that if present, `Debug` integration will always run last\n const integrationsNames = integrations.map(i => i.name);\n const alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push(...integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1));\n }\n\n return integrations;\n}\n\n/** Setup given integration */\nexport function setupIntegration(integration: Integration): void {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n logger.log(`Integration installed: ${integration.name}`);\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(options: O): IntegrationIndex {\n const integrations: IntegrationIndex = {};\n getIntegrationsToSetup(options).forEach(integration => {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n return integrations;\n}\n","import { Integration, WrappedFunction } from '@sentry/types';\n\nlet originalFunctionToString: () => void;\n\n/** Patch toString calls to return proper name for wrapped functions */\nexport class FunctionToString implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'FunctionToString';\n\n /**\n * @inheritDoc\n */\n public name: string = FunctionToString.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function(this: WrappedFunction, ...args: any[]): string {\n const context = this.__sentry_original__ || this;\n return originalFunctionToString.apply(context, args);\n };\n }\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { Event, Integration } from '@sentry/types';\nimport { getEventDescription, isMatchingPattern, logger } from '@sentry/utils';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\n/** JSDoc */\ninterface InboundFiltersOptions {\n allowUrls: Array;\n denyUrls: Array;\n ignoreErrors: Array;\n ignoreInternal: boolean;\n\n /** @deprecated use {@link InboundFiltersOptions.allowUrls} instead. */\n whitelistUrls: Array;\n /** @deprecated use {@link InboundFiltersOptions.denyUrls} instead. */\n blacklistUrls: Array;\n}\n\n/** Inbound filters configurable by the user */\nexport class InboundFilters implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'InboundFilters';\n\n /**\n * @inheritDoc\n */\n public name: string = InboundFilters.id;\n\n public constructor(private readonly _options: Partial = {}) {}\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event) => {\n const hub = getCurrentHub();\n if (!hub) {\n return event;\n }\n const self = hub.getIntegration(InboundFilters);\n if (self) {\n const client = hub.getClient();\n const clientOptions = client ? client.getOptions() : {};\n // This checks prevents most of the occurrences of the bug linked below:\n // https://github.com/getsentry/sentry-javascript/issues/2622\n // The bug is caused by multiple SDK instances, where one is minified and one is using non-mangled code.\n // Unfortunatelly we cannot fix it reliably (thus reserved property in rollup's terser config),\n // as we cannot force people using multiple instances in their apps to sync SDK versions.\n const options = typeof self._mergeOptions === 'function' ? self._mergeOptions(clientOptions) : {};\n if (typeof self._shouldDropEvent !== 'function') {\n return event;\n }\n return self._shouldDropEvent(event, options) ? null : event;\n }\n return event;\n });\n }\n\n /** JSDoc */\n private _shouldDropEvent(event: Event, options: Partial): boolean {\n if (this._isSentryError(event, options)) {\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (this._isIgnoredError(event, options)) {\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (this._isDeniedUrl(event, options)) {\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${this._getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!this._isAllowedUrl(event, options)) {\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${this._getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n }\n\n /** JSDoc */\n private _isSentryError(event: Event, options: Partial): boolean {\n if (!options.ignoreInternal) {\n return false;\n }\n\n try {\n return (\n (event &&\n event.exception &&\n event.exception.values &&\n event.exception.values[0] &&\n event.exception.values[0].type === 'SentryError') ||\n false\n );\n } catch (_oO) {\n return false;\n }\n }\n\n /** JSDoc */\n private _isIgnoredError(event: Event, options: Partial): boolean {\n if (!options.ignoreErrors || !options.ignoreErrors.length) {\n return false;\n }\n\n return this._getPossibleEventMessages(event).some(message =>\n // Not sure why TypeScript complains here...\n (options.ignoreErrors as Array).some(pattern => isMatchingPattern(message, pattern)),\n );\n }\n\n /** JSDoc */\n private _isDeniedUrl(event: Event, options: Partial): boolean {\n // TODO: Use Glob instead?\n if (!options.denyUrls || !options.denyUrls.length) {\n return false;\n }\n const url = this._getEventFilterUrl(event);\n return !url ? false : options.denyUrls.some(pattern => isMatchingPattern(url, pattern));\n }\n\n /** JSDoc */\n private _isAllowedUrl(event: Event, options: Partial): boolean {\n // TODO: Use Glob instead?\n if (!options.allowUrls || !options.allowUrls.length) {\n return true;\n }\n const url = this._getEventFilterUrl(event);\n return !url ? true : options.allowUrls.some(pattern => isMatchingPattern(url, pattern));\n }\n\n /** JSDoc */\n private _mergeOptions(clientOptions: Partial = {}): Partial {\n return {\n allowUrls: [\n // eslint-disable-next-line deprecation/deprecation\n ...(this._options.whitelistUrls || []),\n ...(this._options.allowUrls || []),\n // eslint-disable-next-line deprecation/deprecation\n ...(clientOptions.whitelistUrls || []),\n ...(clientOptions.allowUrls || []),\n ],\n denyUrls: [\n // eslint-disable-next-line deprecation/deprecation\n ...(this._options.blacklistUrls || []),\n ...(this._options.denyUrls || []),\n // eslint-disable-next-line deprecation/deprecation\n ...(clientOptions.blacklistUrls || []),\n ...(clientOptions.denyUrls || []),\n ],\n ignoreErrors: [\n ...(this._options.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...DEFAULT_IGNORE_ERRORS,\n ],\n ignoreInternal: typeof this._options.ignoreInternal !== 'undefined' ? this._options.ignoreInternal : true,\n };\n }\n\n /** JSDoc */\n private _getPossibleEventMessages(event: Event): string[] {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n const { type = '', value = '' } = (event.exception.values && event.exception.values[0]) || {};\n return [`${value}`, `${type}: ${value}`];\n } catch (oO) {\n logger.error(`Cannot extract message for event ${getEventDescription(event)}`);\n return [];\n }\n }\n return [];\n }\n\n /** JSDoc */\n private _getEventFilterUrl(event: Event): string | null {\n try {\n if (event.stacktrace) {\n const frames = event.stacktrace.frames;\n return (frames && frames[frames.length - 1].filename) || null;\n }\n if (event.exception) {\n const frames =\n event.exception.values && event.exception.values[0].stacktrace && event.exception.values[0].stacktrace.frames;\n return (frames && frames[frames.length - 1].filename) || null;\n }\n return null;\n } catch (oO) {\n logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n }\n}\n","import { Event, SdkInfo, SentryRequest, SentryRequestType, Session, SessionAggregates } from '@sentry/types';\n\nimport { API } from './api';\n\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(api: API): SdkInfo | undefined {\n if (!api.metadata || !api.metadata.sdk) {\n return;\n }\n const { name, version } = api.metadata.sdk;\n return { name, version };\n}\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event: Event, sdkInfo?: SdkInfo): Event {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates a SentryRequest from a Session. */\nexport function sessionToSentryRequest(session: Session | SessionAggregates, api: API): SentryRequest {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n const envelopeHeaders = JSON.stringify({\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n });\n // I know this is hacky but we don't want to add `session` to request type since it's never rate limited\n const type: SentryRequestType = 'aggregates' in session ? ('sessions' as SentryRequestType) : 'session';\n const itemHeaders = JSON.stringify({\n type,\n });\n\n return {\n body: `${envelopeHeaders}\\n${itemHeaders}\\n${JSON.stringify(session)}`,\n type,\n url: api.getEnvelopeEndpointWithUrlEncodedAuth(),\n };\n}\n\n/** Creates a SentryRequest from an event. */\nexport function eventToSentryRequest(event: Event, api: API): SentryRequest {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n const eventType = event.type || 'event';\n const useEnvelope = eventType === 'transaction';\n\n const { transactionSampling, ...metadata } = event.debug_meta || {};\n const { method: samplingMethod, rate: sampleRate } = transactionSampling || {};\n if (Object.keys(metadata).length === 0) {\n delete event.debug_meta;\n } else {\n event.debug_meta = metadata;\n }\n\n const req: SentryRequest = {\n body: JSON.stringify(sdkInfo ? enhanceEventWithSdkInfo(event, api.metadata.sdk) : event),\n type: eventType,\n url: useEnvelope ? api.getEnvelopeEndpointWithUrlEncodedAuth() : api.getStoreEndpointWithUrlEncodedAuth(),\n };\n\n // https://develop.sentry.dev/sdk/envelopes/\n\n // Since we don't need to manipulate envelopes nor store them, there is no\n // exported concept of an Envelope with operations including serialization and\n // deserialization. Instead, we only implement a minimal subset of the spec to\n // serialize events inline here.\n if (useEnvelope) {\n const envelopeHeaders = JSON.stringify({\n event_id: event.event_id,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n });\n const itemHeaders = JSON.stringify({\n type: event.type,\n\n // TODO: Right now, sampleRate may or may not be defined (it won't be in the cases of inheritance and\n // explicitly-set sampling decisions). Are we good with that?\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n\n // The content-type is assumed to be 'application/json' and not part of\n // the current spec for transaction items, so we don't bloat the request\n // body with it.\n //\n // content_type: 'application/json',\n //\n // The length is optional. It must be the number of bytes in req.Body\n // encoded as UTF-8. Since the server can figure this out and would\n // otherwise refuse events that report the length incorrectly, we decided\n // not to send the length to avoid problems related to reporting the wrong\n // size and to reduce request body size.\n //\n // length: new TextEncoder().encode(req.body).length,\n });\n // The trailing newline is optional. We intentionally don't send it to avoid\n // sending unnecessary bytes.\n //\n // const envelope = `${envelopeHeaders}\\n${itemHeaders}\\n${req.body}\\n`;\n const envelope = `${envelopeHeaders}\\n${itemHeaders}\\n${req.body}`;\n req.body = envelope;\n }\n\n return req;\n}\n","import { getCurrentHub } from '@sentry/hub';\nimport { Client, Options } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\n/** A class object that can instantiate Client objects. */\nexport type ClientClass = new (options: O) => F;\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind(clientClass: ClientClass, options: O): void {\n if (options.debug === true) {\n logger.enable();\n }\n const hub = getCurrentHub();\n hub.getScope()?.update(options.initialScope);\n const client = new clientClass(options);\n hub.bindClient(client);\n}\n","import { Event, Response, Status, Transport } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n\n/** Noop transport */\nexport class NoopTransport implements Transport {\n /**\n * @inheritDoc\n */\n public sendEvent(_: Event): PromiseLike {\n return SyncPromise.resolve({\n reason: `NoopTransport: Event has been skipped because no Dsn is configured.`,\n status: Status.Skipped,\n });\n }\n\n /**\n * @inheritDoc\n */\n public close(_?: number): PromiseLike {\n return SyncPromise.resolve(true);\n }\n}\n","export const SDK_VERSION = '6.6.0';\n","/* eslint-disable max-lines */\nimport {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n Hub as HubInterface,\n Integration,\n IntegrationClass,\n Primitive,\n SessionContext,\n SessionStatus,\n Severity,\n Span,\n SpanContext,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport { consoleSandbox, dateTimestampInSeconds, getGlobalObject, isNodeEnv, logger, uuid4 } from '@sentry/utils';\n\nimport { Scope } from './scope';\nimport { Session } from './session';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport const API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * Absolute maximum number of breadcrumbs added to an event. The\n * `maxBreadcrumbs` option cannot be higher than this value.\n */\nconst MAX_BREADCRUMBS = 100;\n\n/**\n * A layer in the process stack.\n * @hidden\n */\nexport interface Layer {\n client?: Client;\n scope?: Scope;\n}\n\n/**\n * An object that contains a hub and maintains a scope stack.\n * @hidden\n */\nexport interface Carrier {\n __SENTRY__?: {\n hub?: Hub;\n /**\n * Extra Hub properties injected by various SDKs\n */\n integrations?: Integration[];\n extensions?: {\n /** Hack to prevent bundlers from breaking our usage of the domain package in the cross-platform Hub package */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n domain?: { [key: string]: any };\n } & {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n}\n\n/**\n * @hidden\n * @deprecated Can be removed once `Hub.getActiveDomain` is removed.\n */\nexport interface DomainAsCarrier extends Carrier {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n members: { [key: string]: any }[];\n}\n\n/**\n * @inheritDoc\n */\nexport class Hub implements HubInterface {\n /** Is a {@link Layer}[] containing the client and scope */\n private readonly _stack: Layer[] = [{}];\n\n /** Contains the last event id of a captured event. */\n private _lastEventId?: string;\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n public constructor(client?: Client, scope: Scope = new Scope(), private readonly _version: number = API_VERSION) {\n this.getStackTop().scope = scope;\n this.bindClient(client);\n }\n\n /**\n * @inheritDoc\n */\n public isOlderThan(version: number): boolean {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n public bindClient(client?: Client): void {\n const top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n public pushScope(): Scope {\n // We want to clone the content of prev scope\n const scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n public popScope(): boolean {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n public withScope(callback: (scope: Scope) => void): void {\n const scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n public getClient(): C | undefined {\n return this.getStackTop().client as C;\n }\n\n /** Returns the scope of the top stack. */\n public getScope(): Scope | undefined {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n public getStack(): Layer[] {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n public getStackTop(): Layer {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint): string {\n const eventId = (this._lastEventId = uuid4());\n let finalHint = hint;\n\n // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n let syntheticException: Error;\n try {\n throw new Error('Sentry syntheticException');\n } catch (exception) {\n syntheticException = exception as Error;\n }\n finalHint = {\n originalException: exception,\n syntheticException,\n };\n }\n\n this._invokeClient('captureException', exception, {\n ...finalHint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(message: string, level?: Severity, hint?: EventHint): string {\n const eventId = (this._lastEventId = uuid4());\n let finalHint = hint;\n\n // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n let syntheticException: Error;\n try {\n throw new Error(message);\n } catch (exception) {\n syntheticException = exception as Error;\n }\n finalHint = {\n originalException: message,\n syntheticException,\n };\n }\n\n this._invokeClient('captureMessage', message, level, {\n ...finalHint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = (this._lastEventId = uuid4());\n this._invokeClient('captureEvent', event, {\n ...hint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public lastEventId(): string | undefined {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n const { scope, client } = this.getStackTop();\n\n if (!scope || !client) return;\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) as Breadcrumb | null)\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n scope.addBreadcrumb(finalBreadcrumb, Math.min(maxBreadcrumbs, MAX_BREADCRUMBS));\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): void {\n const scope = this.getScope();\n if (scope) scope.setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): void {\n const scope = this.getScope();\n if (scope) scope.setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): void {\n const scope = this.getScope();\n if (scope) scope.setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): void {\n const scope = this.getScope();\n if (scope) scope.setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): void {\n const scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setContext(name: string, context: { [key: string]: any } | null): void {\n const scope = this.getScope();\n if (scope) scope.setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n public configureScope(callback: (scope: Scope) => void): void {\n const { scope, client } = this.getStackTop();\n if (scope && client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n public run(callback: (hub: Hub) => void): void {\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration(integration: IntegrationClass): T | null {\n const client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public startSpan(context: SpanContext): Span {\n return this._callExtensionMethod('startSpan', context);\n }\n\n /**\n * @inheritDoc\n */\n public startTransaction(context: TransactionContext, customSamplingContext?: CustomSamplingContext): Transaction {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n }\n\n /**\n * @inheritDoc\n */\n public traceHeaders(): { [key: string]: string } {\n return this._callExtensionMethod<{ [key: string]: string }>('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(endSession: boolean = false): void {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n public endSession(): void {\n this.getStackTop()\n ?.scope?.getSession()\n ?.close();\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n this.getStackTop()?.scope?.setSession();\n }\n\n /**\n * @inheritDoc\n */\n public startSession(context?: SessionContext): Session {\n const { scope, client } = this.getStackTop();\n const { release, environment } = (client && client.getOptions()) || {};\n const session = new Session({\n release,\n environment,\n ...(scope && { user: scope.getUser() }),\n ...context,\n });\n\n if (scope) {\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === SessionStatus.Ok) {\n currentSession.update({ status: SessionStatus.Exited });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n\n return session;\n }\n\n /**\n * Sends the current Session on the scope\n */\n private _sendSessionUpdate(): void {\n const { scope, client } = this.getStackTop();\n if (!scope) return;\n\n const session = scope.getSession && scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _invokeClient(method: M, ...args: any[]): void {\n const { scope, client } = this.getStackTop();\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (client as any)[method](...args, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _callExtensionMethod(method: string, ...args: any[]): T {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier(): Carrier {\n const carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub: Hub): Hub {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub(): Hub {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * Returns the active domain, if one exists\n * @deprecated No longer used; remove in v7\n * @returns The domain, or undefined if there is no active domain\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveDomain(): DomainAsCarrier | undefined {\n logger.warn('Function `getActiveDomain` is deprecated and will be removed in a future version.');\n\n const sentry = getMainCarrier().__SENTRY__;\n\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n}\n\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry: Carrier): Hub {\n try {\n const activeDomain = getMainCarrier().__SENTRY__?.extensions?.domain?.active;\n\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n const registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier: Carrier): boolean {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier: Carrier): Hub {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) return carrier.__SENTRY__.hub;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = new Hub();\n return carrier.__SENTRY__.hub;\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier: Carrier, hub: Hub): boolean {\n if (!carrier) return false;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = hub;\n return true;\n}\n","/* eslint-disable max-lines */\nimport {\n Breadcrumb,\n CaptureContext,\n Context,\n Contexts,\n Event,\n EventHint,\n EventProcessor,\n Extra,\n Extras,\n Primitive,\n RequestSession,\n Scope as ScopeInterface,\n ScopeContext,\n Severity,\n Span,\n Transaction,\n User,\n} from '@sentry/types';\nimport { dateTimestampInSeconds, getGlobalObject, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n\nimport { Session } from './session';\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nexport class Scope implements ScopeInterface {\n /** Flag if notifiying is happening. */\n protected _notifyingListeners: boolean = false;\n\n /** Callback for client to receive scope changes. */\n protected _scopeListeners: Array<(scope: Scope) => void> = [];\n\n /** Callback list that will be called after {@link applyToEvent}. */\n protected _eventProcessors: EventProcessor[] = [];\n\n /** Array of breadcrumbs. */\n protected _breadcrumbs: Breadcrumb[] = [];\n\n /** User */\n protected _user: User = {};\n\n /** Tags */\n protected _tags: { [key: string]: Primitive } = {};\n\n /** Extra */\n protected _extra: Extras = {};\n\n /** Contexts */\n protected _contexts: Contexts = {};\n\n /** Fingerprint */\n protected _fingerprint?: string[];\n\n /** Severity */\n protected _level?: Severity;\n\n /** Transaction Name */\n protected _transactionName?: string;\n\n /** Span */\n protected _span?: Span;\n\n /** Session */\n protected _session?: Session;\n\n /** Request Mode Session Status */\n protected _requestSession?: RequestSession;\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n public static clone(scope?: Scope): Scope {\n const newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n public addScopeListener(callback: (scope: Scope) => void): void {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public addEventProcessor(callback: EventProcessor): this {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): this {\n this._user = user || {};\n if (this._session) {\n this._session.update({ user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getUser(): User | undefined {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n public getRequestSession(): RequestSession | undefined {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n public setRequestSession(requestSession?: RequestSession): this {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): this {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): this {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): this {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setFingerprint(fingerprint: string[]): this {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setLevel(level: Severity): this {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTransactionName(name?: string): this {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n public setTransaction(name?: string): this {\n return this.setTransactionName(name);\n }\n\n /**\n * @inheritDoc\n */\n public setContext(key: string, context: Context | null): this {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts = { ...this._contexts, [key]: context };\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setSpan(span?: Span): this {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSpan(): Span | undefined {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n public getTransaction(): Transaction | undefined {\n // often, this span will be a transaction, but it's not guaranteed to be\n const span = this.getSpan() as undefined | (Span & { spanRecorder: { spans: Span[] } });\n\n // try it the new way first\n if (span?.transaction) {\n return span?.transaction;\n }\n\n // fallback to the old way (known bug: this only finds transactions with sampled = true)\n if (span?.spanRecorder?.spans[0]) {\n return span.spanRecorder.spans[0] as Transaction;\n }\n\n // neither way found a transaction\n return undefined;\n }\n\n /**\n * @inheritDoc\n */\n public setSession(session?: Session): this {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSession(): Session | undefined {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n public update(captureContext?: CaptureContext): this {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n const updatedScope = (captureContext as (scope: T) => T)(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext as ScopeContext;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clear(): this {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, maxBreadcrumbs?: number): this {\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n\n this._breadcrumbs =\n maxBreadcrumbs !== undefined && maxBreadcrumbs >= 0\n ? [...this._breadcrumbs, mergedBreadcrumb].slice(-maxBreadcrumbs)\n : [...this._breadcrumbs, mergedBreadcrumb];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clearBreadcrumbs(): this {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional informartion about the original exception.\n * @hidden\n */\n public applyToEvent(event: Event, hint?: EventHint): PromiseLike {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relys on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n const transactionName = this._span.transaction?.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n protected _notifyEventProcessors(\n processors: EventProcessor[],\n event: Event | null,\n hint?: EventHint,\n index: number = 0,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) as Event | null;\n if (isThenable(result)) {\n void (result as PromiseLike)\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n protected _notifyScopeListeners(): void {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n private _applyFingerprint(event: Event): void {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Retruns the global event processors.\n */\nfunction getGlobalEventProcessors(): EventProcessor[] {\n /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n const global = getGlobalObject();\n global.__SENTRY__ = global.__SENTRY__ || {};\n global.__SENTRY__.globalEventProcessors = global.__SENTRY__.globalEventProcessors || [];\n return global.__SENTRY__.globalEventProcessors;\n /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback: EventProcessor): void {\n getGlobalEventProcessors().push(callback);\n}\n","import { Session as SessionInterface, SessionContext, SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n\n/**\n * @inheritdoc\n */\nexport class Session implements SessionInterface {\n public userAgent?: string;\n public errors: number = 0;\n public release?: string;\n public sid: string = uuid4();\n public did?: string;\n public timestamp: number;\n public started: number;\n public duration?: number = 0;\n public status: SessionStatus = SessionStatus.Ok;\n public environment?: string;\n public ipAddress?: string;\n public init: boolean = true;\n public ignoreDuration: boolean = false;\n\n public constructor(context?: Omit) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n this.timestamp = startingTime;\n this.started = startingTime;\n if (context) {\n this.update(context);\n }\n }\n\n /** JSDoc */\n // eslint-disable-next-line complexity\n public update(context: SessionContext = {}): void {\n if (context.user) {\n if (context.user.ip_address) {\n this.ipAddress = context.user.ip_address;\n }\n\n if (!context.did) {\n this.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n this.timestamp = context.timestamp || timestampInSeconds();\n if (context.ignoreDuration) {\n this.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n this.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n this.init = context.init;\n }\n if (context.did) {\n this.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n this.started = context.started;\n }\n if (this.ignoreDuration) {\n this.duration = undefined;\n } else if (typeof context.duration === 'number') {\n this.duration = context.duration;\n } else {\n const duration = this.timestamp - this.started;\n this.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n this.release = context.release;\n }\n if (context.environment) {\n this.environment = context.environment;\n }\n if (context.ipAddress) {\n this.ipAddress = context.ipAddress;\n }\n if (context.userAgent) {\n this.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n this.errors = context.errors;\n }\n if (context.status) {\n this.status = context.status;\n }\n }\n\n /** JSDoc */\n public close(status?: Exclude): void {\n if (status) {\n this.update({ status });\n } else if (this.status === SessionStatus.Ok) {\n this.update({ status: SessionStatus.Exited });\n } else {\n this.update();\n }\n }\n\n /** JSDoc */\n public toJSON(): {\n init: boolean;\n sid: string;\n did?: string;\n timestamp: string;\n started: string;\n duration?: number;\n status: SessionStatus;\n errors: number;\n attrs?: {\n release?: string;\n environment?: string;\n user_agent?: string;\n ip_address?: string;\n };\n } {\n return dropUndefinedKeys({\n sid: `${this.sid}`,\n init: this.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(this.started * 1000).toISOString(),\n timestamp: new Date(this.timestamp * 1000).toISOString(),\n status: this.status,\n errors: this.errors,\n did: typeof this.did === 'number' || typeof this.did === 'string' ? `${this.did}` : undefined,\n duration: this.duration,\n attrs: dropUndefinedKeys({\n release: this.release,\n environment: this.environment,\n ip_address: this.ipAddress,\n user_agent: this.userAgent,\n }),\n });\n }\n}\n","import { getCurrentHub, Hub, Scope } from '@sentry/hub';\nimport {\n Breadcrumb,\n CaptureContext,\n CustomSamplingContext,\n Event,\n Extra,\n Extras,\n Primitive,\n Severity,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\n\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction callOnHub(method: string, ...args: any[]): T {\n const hub = getCurrentHub();\n if (hub && hub[method as keyof Hub]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (hub[method as keyof Hub] as any)(...args);\n }\n throw new Error(`No hub defined or ${method} was not found on the hub, please open a bug report.`);\n}\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function captureException(exception: any, captureContext?: CaptureContext): string {\n let syntheticException: Error;\n try {\n throw new Error('Sentry syntheticException');\n } catch (exception) {\n syntheticException = exception as Error;\n }\n return callOnHub('captureException', exception, {\n captureContext,\n originalException: exception,\n syntheticException,\n });\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param level Define the level of the message.\n * @returns The generated eventId.\n */\nexport function captureMessage(message: string, captureContext?: CaptureContext | Severity): string {\n let syntheticException: Error;\n try {\n throw new Error(message);\n } catch (exception) {\n syntheticException = exception as Error;\n }\n\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n\n return callOnHub('captureMessage', message, level, {\n originalException: message,\n syntheticException,\n ...context,\n });\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nexport function captureEvent(event: Event): string {\n return callOnHub('captureEvent', event);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nexport function configureScope(callback: (scope: Scope) => void): void {\n callOnHub('configureScope', callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nexport function addBreadcrumb(breadcrumb: Breadcrumb): void {\n callOnHub('addBreadcrumb', breadcrumb);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function setContext(name: string, context: { [key: string]: any } | null): void {\n callOnHub('setContext', name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras: Extras): void {\n callOnHub('setExtras', extras);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags: { [key: string]: Primitive }): void {\n callOnHub('setTags', tags);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nexport function setExtra(key: string, extra: Extra): void {\n callOnHub('setExtra', key, extra);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nexport function setTag(key: string, value: Primitive): void {\n callOnHub('setTag', key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user: User | null): void {\n callOnHub('setUser', user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nexport function withScope(callback: (scope: Scope) => void): void {\n callOnHub('withScope', callback);\n}\n\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n * @hidden\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _callOnClient(method: string, ...args: any[]): void {\n callOnHub('_invokeClient', method, ...args);\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nexport function startTransaction(\n context: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n): Transaction {\n return callOnHub('startTransaction', { ...context }, customSamplingContext);\n}\n","import { User } from './user';\n\n/**\n * @inheritdoc\n */\nexport interface Session extends SessionContext {\n /** JSDoc */\n update(context?: SessionContext): void;\n\n /** JSDoc */\n close(status?: SessionStatus): void;\n\n /** JSDoc */\n toJSON(): {\n init: boolean;\n sid: string;\n did?: string;\n timestamp: string;\n started: string;\n duration?: number;\n status: SessionStatus;\n errors: number;\n attrs?: {\n release?: string;\n environment?: string;\n user_agent?: string;\n ip_address?: string;\n };\n };\n}\n\nexport interface RequestSession {\n status?: RequestSessionStatus;\n}\n\n/**\n * Session Context\n */\nexport interface SessionContext {\n sid?: string;\n did?: string;\n init?: boolean;\n // seconds since the UNIX epoch\n timestamp?: number;\n // seconds since the UNIX epoch\n started?: number;\n duration?: number;\n status?: SessionStatus;\n release?: string;\n environment?: string;\n userAgent?: string;\n ipAddress?: string;\n errors?: number;\n user?: User | null;\n ignoreDuration?: boolean;\n}\n\n/**\n * Session Status\n */\nexport enum SessionStatus {\n /** JSDoc */\n Ok = 'ok',\n /** JSDoc */\n Exited = 'exited',\n /** JSDoc */\n Crashed = 'crashed',\n /** JSDoc */\n Abnormal = 'abnormal',\n}\n\nexport enum RequestSessionStatus {\n /** JSDoc */\n Ok = 'ok',\n /** JSDoc */\n Errored = 'errored',\n /** JSDoc */\n Crashed = 'crashed',\n}\n\n/** JSDoc */\nexport interface SessionAggregates {\n attrs?: {\n environment?: string;\n release?: string;\n };\n aggregates: Array;\n}\n\nexport interface SessionFlusherLike {\n /**\n * Increments the Session Status bucket in SessionAggregates Object corresponding to the status of the session\n * captured\n */\n incrementSessionStatusCount(): void;\n\n /** Submits the aggregates request mode sessions to Sentry */\n sendSessionAggregates(sessionAggregates: SessionAggregates): void;\n\n /** Empties Aggregate Buckets and Sends them to Transport Buffer */\n flush(): void;\n\n /** Clears setInterval and calls flush */\n close(): void;\n}\n\nexport interface AggregationCounts {\n started: string;\n errored?: number;\n exited?: number;\n crashed?: number;\n}\n","/** JSDoc */\n// eslint-disable-next-line import/export\nexport enum Severity {\n /** JSDoc */\n Fatal = 'fatal',\n /** JSDoc */\n Error = 'error',\n /** JSDoc */\n Warning = 'warning',\n /** JSDoc */\n Log = 'log',\n /** JSDoc */\n Info = 'info',\n /** JSDoc */\n Debug = 'debug',\n /** JSDoc */\n Critical = 'critical',\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\nexport namespace Severity {\n /**\n * Converts a string-based level into a {@link Severity}.\n *\n * @param level string representation of Severity\n * @returns Severity\n */\n export function fromString(level: string): Severity {\n switch (level) {\n case 'debug':\n return Severity.Debug;\n case 'info':\n return Severity.Info;\n case 'warn':\n case 'warning':\n return Severity.Warning;\n case 'error':\n return Severity.Error;\n case 'fatal':\n return Severity.Fatal;\n case 'critical':\n return Severity.Critical;\n case 'log':\n default:\n return Severity.Log;\n }\n }\n}\n","/** The status of an event. */\n// eslint-disable-next-line import/export\nexport enum Status {\n /** The status could not be determined. */\n Unknown = 'unknown',\n /** The event was skipped due to configuration or callbacks. */\n Skipped = 'skipped',\n /** The event was sent to Sentry successfully. */\n Success = 'success',\n /** The client is currently rate limited and will try again later. */\n RateLimit = 'rate_limit',\n /** The event could not be processed. */\n Invalid = 'invalid',\n /** A server-side error ocurred during submission. */\n Failed = 'failed',\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\nexport namespace Status {\n /**\n * Converts a HTTP status code into a {@link Status}.\n *\n * @param code The HTTP response status code.\n * @returns The send status or {@link Status.Unknown}.\n */\n export function fromHttpCode(code: number): Status {\n if (code >= 200 && code < 300) {\n return Status.Success;\n }\n\n if (code === 429) {\n return Status.RateLimit;\n }\n\n if (code >= 400 && code < 500) {\n return Status.Invalid;\n }\n\n if (code >= 500) {\n return Status.Failed;\n }\n\n return Status.Unknown;\n }\n}\n","import { isString } from './is';\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(elem: unknown, keyAttr?: string): string {\n type SimpleNode = {\n parentNode: SimpleNode;\n } | null;\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n const MAX_OUTPUT_LEN = 80;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n\n // eslint-disable-next-line no-plusplus\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttr);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el: unknown, keyAttr?: string): string {\n const elem = el as {\n tagName?: string;\n id?: string;\n className?: string;\n getAttribute(key: string): string;\n };\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n const keyAttrValue = keyAttr ? elem.getAttribute(keyAttr) : null;\n if (keyAttrValue) {\n out.push(`[${keyAttr}=\"${keyAttrValue}\"]`);\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n const allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n","import { DsnComponents, DsnLike, DsnProtocol } from '@sentry/types';\n\nimport { SentryError } from './error';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\n/** Error message */\nconst ERROR_MESSAGE = 'Invalid Dsn';\n\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nexport class Dsn implements DsnComponents {\n /** Protocol used to connect to Sentry. */\n public protocol!: DsnProtocol;\n /** Public authorization key (deprecated, renamed to publicKey). */\n public user!: string;\n /** Public authorization key. */\n public publicKey!: string;\n /** Private authorization key (deprecated, optional). */\n public pass!: string;\n /** Hostname of the Sentry instance. */\n public host!: string;\n /** Port of the Sentry instance. */\n public port!: string;\n /** Path */\n public path!: string;\n /** Project ID */\n public projectId!: string;\n\n /** Creates a new Dsn component */\n public constructor(from: DsnLike) {\n if (typeof from === 'string') {\n this._fromString(from);\n } else {\n this._fromComponents(from);\n }\n\n this._validate();\n }\n\n /**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\n public toString(withPassword: boolean = false): string {\n const { host, path, pass, port, projectId, protocol, publicKey } = this;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n }\n\n /** Parses a string into this Dsn. */\n private _fromString(str: string): void {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(ERROR_MESSAGE);\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() as string;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n this._fromComponents({ host, pass, path, projectId, port, protocol: protocol as DsnProtocol, publicKey });\n }\n\n /** Maps Dsn components into this instance. */\n private _fromComponents(components: DsnComponents): void {\n // TODO this is for backwards compatibility, and can be removed in a future version\n if ('user' in components && !('publicKey' in components)) {\n components.publicKey = components.user;\n }\n this.user = components.publicKey || '';\n\n this.protocol = components.protocol;\n this.publicKey = components.publicKey || '';\n this.pass = components.pass || '';\n this.host = components.host;\n this.port = components.port || '';\n this.path = components.path || '';\n this.projectId = components.projectId;\n }\n\n /** Validates this Dsn and throws on error. */\n private _validate(): void {\n ['protocol', 'publicKey', 'host', 'projectId'].forEach(component => {\n if (!this[component as keyof DsnComponents]) {\n throw new SentryError(`${ERROR_MESSAGE}: ${component} missing`);\n }\n });\n\n if (!this.projectId.match(/^\\d+$/)) {\n throw new SentryError(`${ERROR_MESSAGE}: Invalid projectId ${this.projectId}`);\n }\n\n if (this.protocol !== 'http' && this.protocol !== 'https') {\n throw new SentryError(`${ERROR_MESSAGE}: Invalid protocol ${this.protocol}`);\n }\n\n if (this.port && isNaN(parseInt(this.port, 10))) {\n throw new SentryError(`${ERROR_MESSAGE}: Invalid port ${this.port}`);\n }\n }\n}\n","import { setPrototypeOf } from './polyfill';\n\n/** An error emitted by Sentry SDKs and related utilities. */\nexport class SentryError extends Error {\n /** Display name of this error instance. */\n public name: string;\n\n public constructor(public message: string) {\n super(message);\n\n this.name = new.target.prototype.constructor.name;\n setPrototypeOf(this, new.target.prototype);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport { WrappedFunction } from '@sentry/types';\n\nimport { isInstanceOf, isString } from './is';\nimport { logger } from './logger';\nimport { getGlobalObject } from './misc';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\n\nconst global = getGlobalObject();\n\n/** Object describing handler that will be triggered for a given `type` of instrumentation */\ninterface InstrumentHandler {\n type: InstrumentHandlerType;\n callback: InstrumentHandlerCallback;\n}\ntype InstrumentHandlerType =\n | 'console'\n | 'dom'\n | 'fetch'\n | 'history'\n | 'sentry'\n | 'xhr'\n | 'error'\n | 'unhandledrejection';\ntype InstrumentHandlerCallback = (data: any) => void;\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\n/** Instruments given API */\nfunction instrument(type: InstrumentHandlerType): void {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n logger.warn('unknown instrumentation type:', type);\n }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(handler: InstrumentHandler): void {\n if (!handler || typeof handler.type !== 'string' || typeof handler.callback !== 'function') {\n return;\n }\n handlers[handler.type] = handlers[handler.type] || [];\n (handlers[handler.type] as InstrumentHandlerCallback[]).push(handler.callback);\n instrument(handler.type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type: InstrumentHandlerType, data: any): void {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (const handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(\n handler,\n )}\\nError: ${e}`,\n );\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole(): void {\n if (!('console' in global)) {\n return;\n }\n\n ['debug', 'info', 'warn', 'error', 'log', 'assert'].forEach(function(level: string): void {\n if (!(level in global.console)) {\n return;\n }\n\n fill(global.console, level, function(originalConsoleLevel: () => any): Function {\n return function(...args: any[]): void {\n triggerHandlers('console', { args, level });\n\n // this fails for some browsers. :(\n if (originalConsoleLevel) {\n Function.prototype.apply.call(originalConsoleLevel, global.console, args);\n }\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch(): void {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(global, 'fetch', function(originalFetch: () => void): () => void {\n return function(...args: any[]): void {\n const handlerData = {\n args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(global, args).then(\n (response: Response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error: Error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\ntype XHRSendInput = null | Blob | BufferSource | FormData | URLSearchParams | string;\n\n/** JSDoc */\ninterface SentryWrappedXMLHttpRequest extends XMLHttpRequest {\n [key: string]: any;\n __sentry_xhr__?: {\n method?: string;\n url?: string;\n status_code?: number;\n body?: XHRSendInput;\n };\n}\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs: any[] = []): string {\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs: any[] = []): string {\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\nfunction instrumentXHR(): void {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n\n // Poor man's implementation of ES6 `Map`, tracking and keeping in sync key and value separately.\n const requestKeys: XMLHttpRequest[] = [];\n const requestValues: Array[] = [];\n const xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function(originalOpen: () => void): () => void {\n return function(this: SentryWrappedXMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const url = args[1];\n xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n };\n\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhr.__sentry_xhr__.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler = function(): void {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n if (xhr.__sentry_xhr__) {\n xhr.__sentry_xhr__.status_code = xhr.status;\n }\n } catch (e) {\n /* do nothing */\n }\n\n try {\n const requestPos = requestKeys.indexOf(xhr);\n if (requestPos !== -1) {\n // Make sure to pop both key and value to keep it in sync.\n requestKeys.splice(requestPos);\n const args = requestValues.splice(requestPos)[0];\n if (xhr.__sentry_xhr__ && args[0] !== undefined) {\n xhr.__sentry_xhr__.body = args[0] as XHRSendInput;\n }\n }\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr,\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function(original: WrappedFunction): Function {\n return function(...readyStateArgs: any[]): void {\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n } else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n return originalOpen.apply(xhr, args);\n };\n });\n\n fill(xhrproto, 'send', function(originalSend: () => void): () => void {\n return function(this: SentryWrappedXMLHttpRequest, ...args: any[]): void {\n requestKeys.push(this);\n requestValues.push(args);\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref: string;\n\n/** JSDoc */\nfunction instrumentHistory(): void {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = global.onpopstate;\n global.onpopstate = function(this: WindowEventHandlers, ...args: any[]): any {\n const to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction: () => void): () => void {\n return function(this: History, ...args: any[]): void {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\n\nconst debounceDuration = 1000;\nlet debounceTimerID: number | undefined;\nlet lastCapturedEvent: Event | undefined;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous: Event | undefined, current: Event): boolean {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event: Event): boolean {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n const target = event.target as HTMLElement;\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler: Function, globalListener: boolean = false): (event: Event) => void {\n return (event: Event): void => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(() => {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n\ntype AddEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) => void;\ntype RemoveEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n) => void;\n\ntype InstrumentedElement = Element & {\n __sentry_instrumentation_handlers__?: {\n [key in 'click' | 'keypress']?: {\n handler?: Function;\n /** The number of custom listeners attached to this element */\n refCount: number;\n };\n };\n};\n\n/** JSDoc */\nfunction instrumentDOM(): void {\n if (!('document' in global)) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target: string) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = (global as any)[target] && (global as any)[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function(originalAddEventListener: AddEventListener): AddEventListener {\n return function(\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): AddEventListener {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount += 1;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(proto, 'removeEventListener', function(originalRemoveEventListener: RemoveEventListener): RemoveEventListener {\n return function(\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n });\n });\n}\n\nlet _oldOnErrorHandler: OnErrorEventHandler = null;\n/** JSDoc */\nfunction instrumentError(): void {\n _oldOnErrorHandler = global.onerror;\n\n global.onerror = function(msg: any, url: any, line: any, column: any, error: any): boolean {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n url,\n });\n\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nlet _oldOnUnhandledRejectionHandler: ((e: any) => void) | null = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection(): void {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n\n global.onunhandledrejection = function(e: any): boolean {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport { Primitive } from '@sentry/types';\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat: any): boolean {\n switch (Object.prototype.toString.call(wat)) {\n case '[object Error]':\n return true;\n case '[object Exception]':\n return true;\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat: any): boolean {\n return Object.prototype.toString.call(wat) === '[object ErrorEvent]';\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat: any): boolean {\n return Object.prototype.toString.call(wat) === '[object DOMError]';\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat: any): boolean {\n return Object.prototype.toString.call(wat) === '[object DOMException]';\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat: any): boolean {\n return Object.prototype.toString.call(wat) === '[object String]';\n}\n\n/**\n * Checks whether given value's is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat: any): wat is Primitive {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat: any): boolean {\n return Object.prototype.toString.call(wat) === '[object Object]';\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat: any): boolean {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat: any): boolean {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat: any): boolean {\n return Object.prototype.toString.call(wat) === '[object RegExp]';\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat: any): boolean {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat: any): boolean {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat: any, base: any): boolean {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { consoleSandbox, getGlobalObject } from './misc';\n\n// TODO: Implement different loggers for different environments\nconst global = getGlobalObject();\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\n/** JSDoc */\nclass Logger {\n /** JSDoc */\n private _enabled: boolean;\n\n /** JSDoc */\n public constructor() {\n this._enabled = false;\n }\n\n /** JSDoc */\n public disable(): void {\n this._enabled = false;\n }\n\n /** JSDoc */\n public enable(): void {\n this._enabled = true;\n }\n\n /** JSDoc */\n public log(...args: any[]): void {\n if (!this._enabled) {\n return;\n }\n consoleSandbox(() => {\n global.console.log(`${PREFIX}[Log]: ${args.join(' ')}`);\n });\n }\n\n /** JSDoc */\n public warn(...args: any[]): void {\n if (!this._enabled) {\n return;\n }\n consoleSandbox(() => {\n global.console.warn(`${PREFIX}[Warn]: ${args.join(' ')}`);\n });\n }\n\n /** JSDoc */\n public error(...args: any[]): void {\n if (!this._enabled) {\n return;\n }\n consoleSandbox(() => {\n global.console.error(`${PREFIX}[Error]: ${args.join(' ')}`);\n });\n }\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nglobal.__SENTRY__ = global.__SENTRY__ || {};\nconst logger = (global.__SENTRY__.logger as Logger) || (global.__SENTRY__.logger = new Logger());\n\nexport { logger };\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/**\n * Memo class used for decycle json objects. Uses WeakSet if available otherwise array.\n */\nexport class Memo {\n /** Determines if WeakSet is available */\n private readonly _hasWeakSet: boolean;\n /** Either WeakSet or Array */\n private readonly _inner: any;\n\n public constructor() {\n this._hasWeakSet = typeof WeakSet === 'function';\n this._inner = this._hasWeakSet ? new WeakSet() : [];\n }\n\n /**\n * Sets obj to remember.\n * @param obj Object to remember\n */\n public memoize(obj: any): boolean {\n if (this._hasWeakSet) {\n if (this._inner.has(obj)) {\n return true;\n }\n this._inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < this._inner.length; i++) {\n const value = this._inner[i];\n if (value === obj) {\n return true;\n }\n }\n this._inner.push(obj);\n return false;\n }\n\n /**\n * Removes object from internal storage.\n * @param obj Object to forget\n */\n public unmemoize(obj: any): void {\n if (this._hasWeakSet) {\n this._inner.delete(obj);\n } else {\n for (let i = 0; i < this._inner.length; i++) {\n if (this._inner[i] === obj) {\n this._inner.splice(i, 1);\n break;\n }\n }\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Event, Integration, StackFrame, WrappedFunction } from '@sentry/types';\n\nimport { isNodeEnv } from './node';\nimport { snipLine } from './string';\n\n/** Internal */\ninterface SentryGlobal {\n Sentry?: {\n Integrations?: Integration[];\n };\n SENTRY_ENVIRONMENT?: string;\n SENTRY_DSN?: string;\n SENTRY_RELEASE?: {\n id?: string;\n };\n __SENTRY__: {\n globalEventProcessors: any;\n hub: any;\n logger: any;\n };\n}\n\nconst fallbackGlobalObject = {};\n\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject(): T & SentryGlobal {\n return (isNodeEnv()\n ? global\n : typeof window !== 'undefined'\n ? window\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject) as T & SentryGlobal;\n}\n\n/**\n * Extended Window interface that allows for Crypto API usage in IE browsers\n */\ninterface MsCryptoWindow extends Window {\n msCrypto?: Crypto;\n}\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4(): string {\n const global = getGlobalObject() as MsCryptoWindow;\n const crypto = global.crypto || global.msCrypto;\n\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n const arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n\n // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n\n const pad = (num: number): string => {\n let v = num.toString(16);\n while (v.length < 4) {\n v = `0${v}`;\n }\n return v;\n };\n\n return (\n pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7])\n );\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, c => {\n // eslint-disable-next-line no-bitwise\n const r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(\n url: string,\n): {\n host?: string;\n path?: string;\n protocol?: string;\n relative?: string;\n} {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event: Event): string {\n if (event.message) {\n return event.message;\n }\n if (event.exception && event.exception.values && event.exception.values[0]) {\n const exception = event.exception.values[0];\n\n if (exception.type && exception.value) {\n return `${exception.type}: ${exception.value}`;\n }\n return exception.type || exception.value || event.event_id || '';\n }\n return event.event_id || '';\n}\n\n/** JSDoc */\ninterface ExtensibleConsole extends Console {\n [key: string]: any;\n}\n\n/** JSDoc */\nexport function consoleSandbox(callback: () => any): any {\n const global = getGlobalObject();\n const levels = ['debug', 'info', 'warn', 'error', 'log', 'assert'];\n\n if (!('console' in global)) {\n return callback();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const originalConsole = (global as any).console as ExtensibleConsole;\n const wrappedLevels: { [key: string]: any } = {};\n\n // Restore all wrapped console methods\n levels.forEach(level => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (level in (global as any).console && (originalConsole[level] as WrappedFunction).__sentry_original__) {\n wrappedLevels[level] = originalConsole[level] as WrappedFunction;\n originalConsole[level] = (originalConsole[level] as WrappedFunction).__sentry_original__;\n }\n });\n\n // Perform callback manipulations\n const result = callback();\n\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level];\n });\n\n return result;\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event: Event, value?: string, type?: string): void {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].value = event.exception.values[0].value || value || '';\n event.exception.values[0].type = event.exception.values[0].type || type || 'Error';\n}\n\n/**\n * Adds exception mechanism to a given event.\n * @param event The event to modify.\n * @param mechanism Mechanism of the mechanism.\n * @hidden\n */\nexport function addExceptionMechanism(\n event: Event,\n mechanism: {\n [key: string]: any;\n } = {},\n): void {\n // TODO: Use real type with `keyof Mechanism` thingy and maybe make it better?\n try {\n // @ts-ignore Type 'Mechanism | {}' is not assignable to type 'Mechanism | undefined'\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception!.values![0].mechanism = event.exception!.values![0].mechanism || {};\n Object.keys(mechanism).forEach(key => {\n // @ts-ignore Mechanism has no index signature\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception!.values![0].mechanism[key] = mechanism[key];\n });\n } catch (_oO) {\n // no-empty\n }\n}\n\n/**\n * A safe form of location.href\n */\nexport function getLocationHref(): string {\n try {\n return document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\ninterface SemVer {\n major?: number;\n minor?: number;\n patch?: number;\n prerelease?: string;\n buildmetadata?: string;\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input: string): SemVer {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\nconst defaultRetryAfter = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param now current unix timestamp\n * @param header string representation of 'Retry-After' header\n */\nexport function parseRetryAfterHeader(now: number, header?: string | number | null): number {\n if (!header) {\n return defaultRetryAfter;\n }\n\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return defaultRetryAfter;\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines: string[], frame: StackFrame, linesOfContext: number = 5): void {\n const lineno = frame.lineno || 0;\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line: string) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line: string) => snipLine(line, 0));\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath: string): string {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n","/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv(): boolean {\n return Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod: any, request: string): any {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule(moduleName: string): T | undefined {\n let mod: T | undefined;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) as T;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ExtendedError, WrappedFunction } from '@sentry/types';\n\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive, isSyntheticEvent } from './is';\nimport { Memo } from './memo';\nimport { getFunctionName } from './stacktrace';\nimport { truncate } from './string';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source: { [key: string]: any }, name: string, replacementFactory: (...args: any[]) => any): void {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] as () => any;\n const wrapped = replacementFactory(original) as WrappedFunction;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __sentry_original__: {\n enumerable: false,\n value: original,\n },\n });\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object: { [key: string]: any }): string {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any object into an object literal with all its attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n */\nfunction getWalkSource(\n value: any,\n): {\n [key: string]: any;\n} {\n if (isError(value)) {\n const error = value as ExtendedError;\n const err: {\n [key: string]: any;\n stack: string | undefined;\n message: string;\n name: string;\n } = {\n message: error.message,\n name: error.name,\n stack: error.stack,\n };\n\n for (const i in error) {\n if (Object.prototype.hasOwnProperty.call(error, i)) {\n err[i] = error[i];\n }\n }\n\n return err;\n }\n\n if (isEvent(value)) {\n /**\n * Event-like interface that's usable in browser and node\n */\n interface SimpleEvent {\n [key: string]: unknown;\n type: string;\n target?: unknown;\n currentTarget?: unknown;\n }\n\n const event = value as SimpleEvent;\n\n const source: {\n [key: string]: any;\n } = {};\n\n source.type = event.type;\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n source.target = isElement(event.target)\n ? htmlTreeAsString(event.target)\n : Object.prototype.toString.call(event.target);\n } catch (_oO) {\n source.target = '';\n }\n\n try {\n source.currentTarget = isElement(event.currentTarget)\n ? htmlTreeAsString(event.currentTarget)\n : Object.prototype.toString.call(event.currentTarget);\n } catch (_oO) {\n source.currentTarget = '';\n }\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n source.detail = event.detail;\n }\n\n for (const i in event) {\n if (Object.prototype.hasOwnProperty.call(event, i)) {\n source[i] = event;\n }\n }\n\n return source;\n }\n\n return value as {\n [key: string]: any;\n };\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value: string): number {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\nfunction jsonSize(value: any): number {\n return utf8Length(JSON.stringify(value));\n}\n\n/** JSDoc */\nexport function normalizeToSize(\n object: { [key: string]: any },\n // Default Node.js REPL depth\n depth: number = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize: number = 100 * 1024,\n): T {\n const serialized = normalize(object, depth);\n\n if (jsonSize(serialized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return serialized as T;\n}\n\n/**\n * Transform any non-primitive, BigInt, or Symbol-type value into a string. Acts as a no-op on strings, numbers,\n * booleans, null, and undefined.\n *\n * @param value The value to stringify\n * @returns For non-primitive, BigInt, and Symbol-type values, a string denoting the value's type, type and value, or\n * type and `description` property, respectively. For non-BigInt, non-Symbol primitives, returns the original value,\n * unchanged.\n */\nfunction serializeValue(value: any): any {\n const type = Object.prototype.toString.call(value);\n\n // Node.js REPL notation\n if (typeof value === 'string') {\n return value;\n }\n if (type === '[object Object]') {\n return '[Object]';\n }\n if (type === '[object Array]') {\n return '[Array]';\n }\n\n const normalized = normalizeValue(value);\n return isPrimitive(normalized) ? normalized : type;\n}\n\n/**\n * normalizeValue()\n *\n * Takes unserializable input and make it serializable friendly\n *\n * - translates undefined/NaN values to \"[undefined]\"/\"[NaN]\" respectively,\n * - serializes Error objects\n * - filter global objects\n */\nfunction normalizeValue(value: T, key?: any): T | string {\n if (key === 'domain' && value && typeof value === 'object' && ((value as unknown) as { _events: any })._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n if (typeof (global as any) !== 'undefined' && (value as unknown) === global) {\n return '[Global]';\n }\n\n if (typeof (window as any) !== 'undefined' && (value as unknown) === window) {\n return '[Window]';\n }\n\n if (typeof (document as any) !== 'undefined' && (value as unknown) === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n // symbols and bigints are considered primitives by TS, but aren't natively JSON-serilaizable\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n return value;\n}\n\n/**\n * Walks an object to perform a normalization on it\n *\n * @param key of object that's walked in current iteration\n * @param value object to be walked\n * @param depth Optional number indicating how deep should walking be performed\n * @param memo Optional Memo class handling decycling\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function walk(key: string, value: any, depth: number = +Infinity, memo: Memo = new Memo()): any {\n // If we reach the maximum depth, serialize whatever has left\n if (depth === 0) {\n return serializeValue(value);\n }\n\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // If value implements `toJSON` method, call it and return early\n if (value !== null && value !== undefined && typeof value.toJSON === 'function') {\n return value.toJSON();\n }\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n // If normalized value is a primitive, there are no branches left to walk, so we can just bail out, as theres no point in going down that branch any further\n const normalized = normalizeValue(value, key);\n if (isPrimitive(normalized)) {\n return normalized;\n }\n\n // Create source that we will use for next itterations, either objectified error object (Error type with extracted keys:value pairs) or the input itself\n const source = getWalkSource(value);\n\n // Create an accumulator that will act as a parent for all future itterations of that branch\n const acc = Array.isArray(value) ? [] : {};\n\n // If we already walked that branch, bail out, as it's circular reference\n if (memo.memoize(value)) {\n return '[Circular ~]';\n }\n\n // Walk all keys of the source\n for (const innerKey in source) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(source, innerKey)) {\n continue;\n }\n // Recursively walk through all the child nodes\n (acc as { [key: string]: any })[innerKey] = walk(innerKey, source[innerKey], depth - 1, memo);\n }\n\n // Once walked through all the branches, remove the parent from memo storage\n memo.unmemoize(value);\n\n // Return accumulated values\n return acc;\n}\n\n/**\n * normalize()\n *\n * - Creates a copy to prevent original input mutation\n * - Skip non-enumerablers\n * - Calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializeable values (undefined/NaN/Functions) to serializable format\n * - Translates known global objects/Classes to a string representations\n * - Takes care of Error objects serialization\n * - Optionally limit depth of final output\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function normalize(input: any, depth?: number): any {\n try {\n return JSON.parse(JSON.stringify(input, (key: string, value: any) => walk(key, value, depth)));\n } catch (_oO) {\n return '**non-serializable**';\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function extractExceptionKeysForMessage(exception: any, maxLength: number = 40): string {\n const keys = Object.keys(getWalkSource(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n */\nexport function dropUndefinedKeys(val: T): T {\n if (isPlainObject(val)) {\n const obj = val as { [key: string]: any };\n const rv: { [key: string]: any } = {};\n for (const key of Object.keys(obj)) {\n if (typeof obj[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(obj[key]);\n }\n }\n return rv as T;\n }\n\n if (Array.isArray(val)) {\n return (val as any[]).map(dropUndefinedKeys) as any;\n }\n\n return val;\n}\n","export const setPrototypeOf =\n Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);\n\n/**\n * setPrototypeOf polyfill using __proto__\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction setProtoOf(obj: TTarget, proto: TProto): TTarget & TProto {\n // @ts-ignore __proto__ does not exist on obj\n obj.__proto__ = proto;\n return obj as TTarget & TProto;\n}\n\n/**\n * setPrototypeOf polyfill using mixin\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction mixinProperties(obj: TTarget, proto: TProto): TTarget & TProto {\n for (const prop in proto) {\n // eslint-disable-next-line no-prototype-builtins\n if (!obj.hasOwnProperty(prop)) {\n // @ts-ignore typescript complains about indexing so we remove\n obj[prop] = proto[prop];\n }\n }\n\n return obj as TTarget & TProto;\n}\n","import { SentryError } from './error';\nimport { SyncPromise } from './syncpromise';\n\n/** A simple queue that holds promises. */\nexport class PromiseBuffer {\n /** Internal set of queued Promises */\n private readonly _buffer: Array> = [];\n\n public constructor(protected _limit?: number) {}\n\n /**\n * Says if the buffer is ready to take more requests\n */\n public isReady(): boolean {\n return this._limit === undefined || this.length() < this._limit;\n }\n\n /**\n * Add a promise to the queue.\n *\n * @param task Can be any PromiseLike\n * @returns The original promise.\n */\n public add(task: PromiseLike): PromiseLike {\n if (!this.isReady()) {\n return SyncPromise.reject(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n if (this._buffer.indexOf(task) === -1) {\n this._buffer.push(task);\n }\n void task\n .then(() => this.remove(task))\n .then(null, () =>\n this.remove(task).then(null, () => {\n // We have to add this catch here otherwise we have an unhandledPromiseRejection\n // because it's a new Promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Remove a promise to the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n public remove(task: PromiseLike): PromiseLike {\n const removedTask = this._buffer.splice(this._buffer.indexOf(task), 1)[0];\n return removedTask;\n }\n\n /**\n * This function returns the number of unresolved promises in the queue.\n */\n public length(): number {\n return this._buffer.length;\n }\n\n /**\n * This will drain the whole queue, returns true if queue is empty or drained.\n * If timeout is provided and the queue takes longer to drain, the promise still resolves but with false.\n *\n * @param timeout Number in ms to wait until it resolves with false.\n */\n public drain(timeout?: number): PromiseLike {\n return new SyncPromise(resolve => {\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n void SyncPromise.all(this._buffer)\n .then(() => {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n })\n .then(null, () => {\n resolve(true);\n });\n });\n }\n}\n","const defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn: unknown): string {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n","import { isRegExp, isString } from './is';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str: string, max: number = 0): string {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.substr(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line: string, colno: number): string {\n let newLine = line;\n const ll = newLine.length;\n if (ll <= 150) {\n return newLine;\n }\n if (colno > ll) {\n // eslint-disable-next-line no-param-reassign\n colno = ll;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, ll);\n if (end > ll - 5) {\n end = ll;\n }\n if (end === ll) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < ll) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input: any[], delimiter?: string): string {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value: string, pattern: RegExp | string): boolean {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return (pattern as RegExp).test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n","import { logger } from './logger';\nimport { getGlobalObject } from './misc';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent(): boolean {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError(): boolean {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException(): boolean {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch(): boolean {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func: Function): boolean {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch(): boolean {\n if (!supportsFetch()) {\n return false;\n }\n\n const global = getGlobalObject();\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = global.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement as unknown) === `function`) {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver(): boolean {\n return 'ReportingObserver' in getGlobalObject();\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy(): boolean {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' as ReferrerPolicy,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory(): boolean {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n const global = getGlobalObject();\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chrome = (global as any).chrome;\n const isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n\n/** SyncPromise internal states */\nenum States {\n /** Pending */\n PENDING = 'PENDING',\n /** Resolved / OK */\n RESOLVED = 'RESOLVED',\n /** Rejected / Error */\n REJECTED = 'REJECTED',\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise implements PromiseLike {\n private _state: States = States.PENDING;\n private _handlers: Array<{\n done: boolean;\n onfulfilled?: ((value: T) => T | PromiseLike) | null;\n onrejected?: ((reason: any) => any) | null;\n }> = [];\n private _value: any;\n\n public constructor(\n executor: (resolve: (value?: T | PromiseLike | null) => void, reject: (reason?: any) => void) => void,\n ) {\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n public static resolve(value: T | PromiseLike): PromiseLike {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n }\n\n /** JSDoc */\n public static reject(reason?: any): PromiseLike {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n }\n\n /** JSDoc */\n public static all(collection: Array>): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n if (!Array.isArray(collection)) {\n reject(new TypeError(`Promise.all requires an array as input.`));\n return;\n }\n\n if (collection.length === 0) {\n resolve([]);\n return;\n }\n\n let counter = collection.length;\n const resolvedCollection: U[] = [];\n\n collection.forEach((item, index) => {\n void SyncPromise.resolve(item)\n .then(value => {\n resolvedCollection[index] = value;\n counter -= 1;\n\n if (counter !== 0) {\n return;\n }\n resolve(resolvedCollection);\n })\n .then(null, reject);\n });\n });\n }\n\n /** JSDoc */\n public then(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike) | null,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n this._attachHandler({\n done: false,\n onfulfilled: result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result as any);\n return;\n }\n try {\n resolve(onfulfilled(result));\n return;\n } catch (e) {\n reject(e);\n return;\n }\n },\n onrejected: reason => {\n if (!onrejected) {\n reject(reason);\n return;\n }\n try {\n resolve(onrejected(reason));\n return;\n } catch (e) {\n reject(e);\n return;\n }\n },\n });\n });\n }\n\n /** JSDoc */\n public catch(\n onrejected?: ((reason: any) => TResult | PromiseLike) | null,\n ): PromiseLike {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n public finally(onfinally?: (() => void) | null): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let val: TResult | any;\n let isRejected: boolean;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve((val as unknown) as any);\n });\n });\n }\n\n /** JSDoc */\n public toString(): string {\n return '[object SyncPromise]';\n }\n\n /** JSDoc */\n private readonly _resolve = (value?: T | PromiseLike | null) => {\n this._setResult(States.RESOLVED, value);\n };\n\n /** JSDoc */\n private readonly _reject = (reason?: any) => {\n this._setResult(States.REJECTED, reason);\n };\n\n /** JSDoc */\n private readonly _setResult = (state: States, value?: T | PromiseLike | any) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value as PromiseLike).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };\n\n // TODO: FIXME\n /** JSDoc */\n private readonly _attachHandler = (handler: {\n /** JSDoc */\n done: boolean;\n /** JSDoc */\n onfulfilled?(value: T): any;\n /** JSDoc */\n onrejected?(reason: any): any;\n }) => {\n this._handlers = this._handlers.concat(handler);\n this._executeHandlers();\n };\n\n /** JSDoc */\n private readonly _executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler.done) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n if (handler.onfulfilled) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler.onfulfilled((this._value as unknown) as any);\n }\n }\n\n if (this._state === States.REJECTED) {\n if (handler.onrejected) {\n handler.onrejected(this._value);\n }\n }\n\n handler.done = true;\n });\n };\n}\n\nexport { SyncPromise };\n","import { getGlobalObject } from './misc';\nimport { dynamicRequire, isNodeEnv } from './node';\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\ninterface TimestampSource {\n nowSeconds(): number;\n}\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nconst dateTimestampSource: TimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high resolution monotonic clock.\n */\ninterface Performance {\n /**\n * The millisecond timestamp at which measurement began, measured in Unix time.\n */\n timeOrigin: number;\n /**\n * Returns the current millisecond timestamp, where 0 represents the start of measurement.\n */\n now(): number;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance(): Performance | undefined {\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n const timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance(): Performance | undefined {\n try {\n const perfHooks = dynamicRequire(module, 'perf_hooks') as { performance: Performance };\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nconst platformPerformance: Performance | undefined = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nconst timestampSource: TimestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport const dateTimestampInSeconds: () => number = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport const timestampInSeconds: () => number = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nexport const timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nexport const usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport let _browserPerformanceTimeOriginMode: string;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport const browserPerformanceTimeOrigin = ((): number | undefined => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n\t21(thing: string) {\n\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t},\n\t22(thing: string) {\n\t\treturn `'current' expects a draft, got: ${thing}`\n\t},\n\t23(thing: string) {\n\t\treturn `'original' expects a draft, got: ${thing}`\n\t},\n\t24: \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.map(s => `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtypeObject,\n\tArchtypeArray,\n\tArchtypeMap,\n\tArchtypeSet,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === ArchtypeObject) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): 0 | 1 | 2 | 3 {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? ArchtypeArray\n\t\t: isMap(thing)\n\t\t? ArchtypeMap\n\t\t: isSet(thing)\n\t\t? ArchtypeSet\n\t\t: ArchtypeObject\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchtypeMap\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchtypeMap ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchtypeMap) thing.set(propOrOldValue, value)\n\telse if (t === ArchtypeSet) {\n\t\tthing.delete(propOrOldValue)\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze(obj: T, deep?: boolean): T\nexport function freeze(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tSetState,\n\tImmerScope,\n\tProxyObjectState,\n\tProxyArrayState,\n\tES5ObjectState,\n\tES5ArrayState,\n\tMapState,\n\tDRAFT_STATE\n} from \"../internal\"\n\nexport type Objectish = AnyObject | AnyArray | AnyMap | AnySet\nexport type ObjectishNoSet = AnyObject | AnyArray | AnyMap\n\nexport type AnyObject = {[key: string]: any}\nexport type AnyArray = Array\nexport type AnySet = Set\nexport type AnyMap = Map\n\nexport const ArchtypeObject = 0\nexport const ArchtypeArray = 1\nexport const ArchtypeMap = 2\nexport const ArchtypeSet = 3\n\nexport const ProxyTypeProxyObject = 0\nexport const ProxyTypeProxyArray = 1\nexport const ProxyTypeES5Object = 4\nexport const ProxyTypeES5Array = 5\nexport const ProxyTypeMap = 2\nexport const ProxyTypeSet = 3\n\nexport interface ImmerBaseState {\n\tparent_?: ImmerState\n\tscope_: ImmerScope\n\tmodified_: boolean\n\tfinalized_: boolean\n\tisManual_: boolean\n}\n\nexport type ImmerState =\n\t| ProxyObjectState\n\t| ProxyArrayState\n\t| ES5ObjectState\n\t| ES5ArrayState\n\t| MapState\n\t| SetState\n\n// The _internal_ type used for drafts (not to be confused with Draft, which is public facing)\nexport type Drafted = {\n\t[DRAFT_STATE]: T\n} & Base\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyTypeES5Array,\n\tProxyTypeES5Object,\n\tProxyTypeMap,\n\tProxyTypeSet,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\trootState: ImmerState,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: typeof ProxyTypeES5Object\n\tdraft_: Drafted\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: typeof ProxyTypeES5Array\n\tdraft_: Drafted\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: typeof ProxyTypeMap\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: typeof ProxyTypeSet\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyTypeProxyObject,\n\tProxyTypeProxyArray,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyTypeProxyObject ||\n\t\tstate.type_ === ProxyTypeProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyTypeES5Object,\n\tProxyTypeES5Array,\n\tProxyTypeSet,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE],\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumarable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyTypeES5Object || state.type_ === ProxyTypeES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// Although the original test case doesn't seem valid anyway, so if this in the way we can turn the next line\n\t\t// back to each(result, ....)\n\t\teach(\n\t\t\tstate.type_ === ProxyTypeSet ? new Set(result) : result,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyTypeSet && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\tif (scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyTypeProxyObject,\n\tProxyTypeProxyArray\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: typeof ProxyTypeProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: typeof ProxyTypeProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyTypeProxyArray : (ProxyTypeProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existig to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (state.copy_![prop] === value && typeof value !== \"number\") return true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyTypeProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\treturn objectTraps.deleteProperty!.call(this, state[0], prop)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === NOTHING) return undefined\n\t\t\tif (result === undefined) result = base\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (\n\t\targ1: any,\n\t\targ2?: any,\n\t\targ3?: any\n\t): any => {\n\t\tif (typeof arg1 === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => arg1(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst nextState = this.produce(arg1, arg2, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [nextState, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches(base: Objectish, patches: Patch[]) {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches.slice(i + 1))\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtypeMap,\n\tArchtypeSet,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === ArchtypeSet ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase ArchtypeMap:\n\t\t\treturn new Map(value)\n\t\tcase ArchtypeSet:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tProxyTypeES5Array,\n\tProxyTypeES5Object,\n\tgetCurrentScope,\n\tdie,\n\tmarkChanged,\n\tobjectTraps,\n\townKeys,\n\tgetOwnPropertyDescriptors\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Draft(isArray: boolean, base: any) {\n\t\tif (isArray) {\n\t\t\tconst draft = new Array(base.length)\n\t\t\tfor (let i = 0; i < base.length; i++)\n\t\t\t\tObject.defineProperty(draft, \"\" + i, proxyProperty(i, true))\n\t\t\treturn draft\n\t\t} else {\n\t\t\tconst descriptors = getOwnPropertyDescriptors(base)\n\t\t\tdelete descriptors[DRAFT_STATE as any]\n\t\t\tconst keys = ownKeys(descriptors)\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key: any = keys[i]\n\t\t\t\tdescriptors[key] = proxyProperty(\n\t\t\t\t\tkey,\n\t\t\t\t\tisArray || !!descriptors[key].enumerable\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft = createES5Draft(isArray, base)\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyTypeES5Array : (ProxyTypeES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\t// base is the object we are drafting\n\t\t\tbase_: base,\n\t\t\t// draft is the draft object itself, that traps all reads and reads from either the base (if unmodified) or copy (if modified)\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t): PropertyDescriptor {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn objectTraps.get(state, prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tobjectTraps.set(state, prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn desc\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyTypeES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyTypeES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyTypeES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyTypeES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChanged(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = ownKeys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key: any = keys[i]\n\t\t\tif (key === DRAFT_STATE) continue\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\tconst baseIsDraft = !!base_[DRAFT_STATE as any]\n\t\treturn keys.length !== ownKeys(base_).length + (baseIsDraft ? 0 : 1) // + 1 to correct for DRAFT_STATE\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\tfunction hasChanges_(state: ES5State) {\n\t\treturn state.type_ === ProxyTypeES5Object\n\t\t\t? hasObjectChanges(state)\n\t\t\t: hasArrayChanges(state)\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\twillFinalizeES5_,\n\t\thasChanges_\n\t})\n}\n","import {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tES5ArrayState,\n\tProxyArrayState,\n\tMapState,\n\tES5ObjectState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tProxyTypeProxyObject,\n\tProxyTypeES5Object,\n\tProxyTypeMap,\n\tProxyTypeES5Array,\n\tProxyTypeProxyArray,\n\tProxyTypeSet,\n\tArchtypeMap,\n\tArchtypeSet,\n\tArchtypeArray,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tArchtypeObject\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tswitch (state.type_) {\n\t\t\tcase ProxyTypeProxyObject:\n\t\t\tcase ProxyTypeES5Object:\n\t\t\tcase ProxyTypeMap:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t\tcase ProxyTypeES5Array:\n\t\t\tcase ProxyTypeProxyArray:\n\t\t\t\treturn generateArrayPatches(state, basePath, patches, inversePatches)\n\t\t\tcase ProxyTypeSet:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ES5ArrayState | ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tif (assigned_[i] && copy_[i] !== base_[i]) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(base_[i])\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tif (base_.length < copy_.length) {\n\t\t\tinversePatches.push({\n\t\t\t\top: REPLACE,\n\t\t\t\tpath: basePath.concat([\"length\"]),\n\t\t\t\tvalue: base_.length\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ES5ObjectState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key)\n\t\t\tconst value = get(copy_!, key)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(op === REMOVE ? {op, path} : {op, path, value})\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\trootState: ImmerState,\n\t\treplacement: any,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tpatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement\n\t\t})\n\t\tinversePatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: rootState.base_\n\t\t})\n\t}\n\n\tfunction applyPatches_(draft: T, patches: Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tconst p = path[i]\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === ArchtypeObject || parentType === ArchtypeArray) &&\n\t\t\t\t\t(p === \"__proto__\" || p === \"constructor\")\n\t\t\t\t)\n\t\t\t\t\tdie(24)\n\t\t\t\tif (typeof base === \"function\" && p === \"prototype\") die(24)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (typeof base !== \"object\") die(15, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchtypeMap:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase ArchtypeSet:\n\t\t\t\t\t\t\tdie(16)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchtypeArray:\n\t\t\t\t\t\t\treturn base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase ArchtypeMap:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase ArchtypeSet:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase ArchtypeArray:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase ArchtypeMap:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase ArchtypeSet:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(17, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (Array.isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(Object.getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(\"Patches\", {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_\n\t})\n}\n","// types only!\nimport {\n\tImmerState,\n\tAnyMap,\n\tAnySet,\n\tMapState,\n\tSetState,\n\tDRAFT_STATE,\n\tgetCurrentScope,\n\tlatest,\n\titeratorSymbol,\n\tisDraftable,\n\tcreateProxy,\n\tloadPlugin,\n\tmarkChanged,\n\tProxyTypeMap,\n\tProxyTypeSet,\n\tdie,\n\teach\n} from \"../internal\"\n\nexport function enableMapSet() {\n\t/* istanbul ignore next */\n\tvar extendStatics = function(d: any, b: any): any {\n\t\textendStatics =\n\t\t\tObject.setPrototypeOf ||\n\t\t\t({__proto__: []} instanceof Array &&\n\t\t\t\tfunction(d, b) {\n\t\t\t\t\td.__proto__ = b\n\t\t\t\t}) ||\n\t\t\tfunction(d, b) {\n\t\t\t\tfor (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]\n\t\t\t}\n\t\treturn extendStatics(d, b)\n\t}\n\n\t// Ugly hack to resolve #502 and inherit built in Map / Set\n\tfunction __extends(d: any, b: any): any {\n\t\textendStatics(d, b)\n\t\tfunction __(this: any): any {\n\t\t\tthis.constructor = d\n\t\t}\n\t\td.prototype =\n\t\t\t// @ts-ignore\n\t\t\t((__.prototype = b.prototype), new __())\n\t}\n\n\tconst DraftMap = (function(_super) {\n\t\t__extends(DraftMap, _super)\n\t\t// Create class manually, cause #502\n\t\tfunction DraftMap(this: any, target: AnyMap, parent?: ImmerState): any {\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ProxyTypeMap,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tassigned_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this as any,\n\t\t\t\tisManual_: false,\n\t\t\t\trevoked_: false\n\t\t\t} as MapState\n\t\t\treturn this\n\t\t}\n\t\tconst p = DraftMap.prototype\n\n\t\tObject.defineProperty(p, \"size\", {\n\t\t\tget: function() {\n\t\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t\t}\n\t\t\t// enumerable: false,\n\t\t\t// configurable: true\n\t\t})\n\n\t\tp.has = function(key: any): boolean {\n\t\t\treturn latest(this[DRAFT_STATE]).has(key)\n\t\t}\n\n\t\tp.set = function(key: any, value: any) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!latest(state).has(key) || latest(state).get(key) !== value) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t\tstate.copy_!.set(key, value)\n\t\t\t\tstate.assigned_!.set(key, true)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tp.delete = function(key: any): boolean {\n\t\t\tif (!this.has(key)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareMapCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\tstate.assigned_!.set(key, false)\n\t\t\tstate.copy_!.delete(key)\n\t\t\treturn true\n\t\t}\n\n\t\tp.clear = function() {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareMapCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.assigned_ = new Map()\n\t\t\t\teach(state.base_, key => {\n\t\t\t\t\tstate.assigned_!.set(key, false)\n\t\t\t\t})\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tp.forEach = function(\n\t\t\tcb: (value: any, key: any, self: any) => void,\n\t\t\tthisArg?: any\n\t\t) {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tlatest(state).forEach((_value: any, key: any, _map: any) => {\n\t\t\t\tcb.call(thisArg, this.get(key), key, this)\n\t\t\t})\n\t\t}\n\n\t\tp.get = function(key: any): any {\n\t\t\tconst state: MapState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tconst value = latest(state).get(key)\n\t\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tif (value !== state.base_.get(key)) {\n\t\t\t\treturn value // either already drafted or reassigned\n\t\t\t}\n\t\t\t// despite what it looks, this creates a draft only once, see above condition\n\t\t\tconst draft = createProxy(state.scope_.immer_, value, state)\n\t\t\tprepareMapCopy(state)\n\t\t\tstate.copy_!.set(key, draft)\n\t\t\treturn draft\n\t\t}\n\n\t\tp.keys = function(): IterableIterator {\n\t\t\treturn latest(this[DRAFT_STATE]).keys()\n\t\t}\n\n\t\tp.values = function(): IterableIterator {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[iteratorSymbol]: () => this.values(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tp.entries = function(): IterableIterator<[any, any]> {\n\t\t\tconst iterator = this.keys()\n\t\t\treturn {\n\t\t\t\t[iteratorSymbol]: () => this.entries(),\n\t\t\t\tnext: () => {\n\t\t\t\t\tconst r = iterator.next()\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tif (r.done) return r\n\t\t\t\t\tconst value = this.get(r.value)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: [r.value, value]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} as any\n\t\t}\n\n\t\tp[iteratorSymbol] = function() {\n\t\t\treturn this.entries()\n\t\t}\n\n\t\treturn DraftMap\n\t})(Map)\n\n\tfunction proxyMap_(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftMap(target, parent)\n\t}\n\n\tfunction prepareMapCopy(state: MapState) {\n\t\tif (!state.copy_) {\n\t\t\tstate.assigned_ = new Map()\n\t\t\tstate.copy_ = new Map(state.base_)\n\t\t}\n\t}\n\n\tconst DraftSet = (function(_super) {\n\t\t__extends(DraftSet, _super)\n\t\t// Create class manually, cause #502\n\t\tfunction DraftSet(this: any, target: AnySet, parent?: ImmerState) {\n\t\t\tthis[DRAFT_STATE] = {\n\t\t\t\ttype_: ProxyTypeSet,\n\t\t\t\tparent_: parent,\n\t\t\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t\t\tmodified_: false,\n\t\t\t\tfinalized_: false,\n\t\t\t\tcopy_: undefined,\n\t\t\t\tbase_: target,\n\t\t\t\tdraft_: this,\n\t\t\t\tdrafts_: new Map(),\n\t\t\t\trevoked_: false,\n\t\t\t\tisManual_: false\n\t\t\t} as SetState\n\t\t\treturn this\n\t\t}\n\t\tconst p = DraftSet.prototype\n\n\t\tObject.defineProperty(p, \"size\", {\n\t\t\tget: function() {\n\t\t\t\treturn latest(this[DRAFT_STATE]).size\n\t\t\t}\n\t\t\t// enumerable: true,\n\t\t})\n\n\t\tp.has = function(value: any): boolean {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\t// bit of trickery here, to be able to recognize both the value, and the draft of its value\n\t\t\tif (!state.copy_) {\n\t\t\t\treturn state.base_.has(value)\n\t\t\t}\n\t\t\tif (state.copy_.has(value)) return true\n\t\t\tif (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n\t\t\t\treturn true\n\t\t\treturn false\n\t\t}\n\n\t\tp.add = function(value: any): any {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (!this.has(value)) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.add(value)\n\t\t\t}\n\t\t\treturn this\n\t\t}\n\n\t\tp.delete = function(value: any): any {\n\t\t\tif (!this.has(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\tmarkChanged(state)\n\t\t\treturn (\n\t\t\t\tstate.copy_!.delete(value) ||\n\t\t\t\t(state.drafts_.has(value)\n\t\t\t\t\t? state.copy_!.delete(state.drafts_.get(value))\n\t\t\t\t\t: /* istanbul ignore next */ false)\n\t\t\t)\n\t\t}\n\n\t\tp.clear = function() {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tif (latest(state).size) {\n\t\t\t\tprepareSetCopy(state)\n\t\t\t\tmarkChanged(state)\n\t\t\t\tstate.copy_!.clear()\n\t\t\t}\n\t\t}\n\n\t\tp.values = function(): IterableIterator {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.values()\n\t\t}\n\n\t\tp.entries = function entries(): IterableIterator<[any, any]> {\n\t\t\tconst state: SetState = this[DRAFT_STATE]\n\t\t\tassertUnrevoked(state)\n\t\t\tprepareSetCopy(state)\n\t\t\treturn state.copy_!.entries()\n\t\t}\n\n\t\tp.keys = function(): IterableIterator {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tp[iteratorSymbol] = function() {\n\t\t\treturn this.values()\n\t\t}\n\n\t\tp.forEach = function forEach(cb: any, thisArg?: any) {\n\t\t\tconst iterator = this.values()\n\t\t\tlet result = iterator.next()\n\t\t\twhile (!result.done) {\n\t\t\t\tcb.call(thisArg, result.value, result.value, this)\n\t\t\t\tresult = iterator.next()\n\t\t\t}\n\t\t}\n\n\t\treturn DraftSet\n\t})(Set)\n\n\tfunction proxySet_(target: T, parent?: ImmerState): T {\n\t\t// @ts-ignore\n\t\treturn new DraftSet(target, parent)\n\t}\n\n\tfunction prepareSetCopy(state: SetState) {\n\t\tif (!state.copy_) {\n\t\t\t// create drafts for all entries to preserve insertion order\n\t\t\tstate.copy_ = new Set()\n\t\t\tstate.base_.forEach(value => {\n\t\t\t\tif (isDraftable(value)) {\n\t\t\t\t\tconst draft = createProxy(state.scope_.immer_, value, state)\n\t\t\t\t\tstate.drafts_.set(value, draft)\n\t\t\t\t\tstate.copy_!.add(draft)\n\t\t\t\t} else {\n\t\t\t\t\tstate.copy_!.add(value)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"MapSet\", {proxyMap_, proxySet_})\n}\n","import {enableES5} from \"./es5\"\nimport {enableMapSet} from \"./mapset\"\nimport {enablePatches} from \"./patches\"\n\nexport function enableAllPlugins() {\n\tenableES5()\n\tenableMapSet()\n\tenablePatches()\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","/* interact.js 1.10.11 | https://interactjs.io/license */\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.interact = f()}})(function(){var define,module,exports;\n","export default (thing: any) => !!(thing && thing.Window) && thing instanceof thing.Window\n","import isWindow from './isWindow'\n\nexport let realWindow = undefined as Window\n\nlet win = undefined as Window\nexport { win as window }\n\nexport function init (window: Window & { wrap?: (...args: any[]) => any }) {\n // get wrapped window if using Shadow DOM polyfill\n\n realWindow = window\n\n // create a TextNode\n const el = window.document.createTextNode('')\n\n // check if it's wrapped by a polyfill\n if (el.ownerDocument !== window.document && typeof window.wrap === 'function' && window.wrap(el) === el) {\n // use wrapped window\n window = window.wrap(window)\n }\n\n win = window\n}\n\nif (typeof window !== 'undefined' && !!window) {\n init(window)\n}\n\nexport function getWindow (node: any) {\n if (isWindow(node)) {\n return node\n }\n\n const rootNode = node.ownerDocument || node\n\n return rootNode.defaultView || win.window\n}\n","import type { Element } from '@interactjs/types/index'\n\nimport isWindow from './isWindow'\nimport * as win from './window'\n\nconst window = (thing: any): thing is Window => thing === win.window || isWindow(thing)\n\nconst docFrag = (thing: any): thing is DocumentFragment => object(thing) && thing.nodeType === 11\n\nconst object = (thing: any): thing is { [index: string]: any } => !!thing && typeof thing === 'object'\n\nconst func = (thing: any): thing is (...args: any[]) => any => typeof thing === 'function'\n\nconst number = (thing: any): thing is number => typeof thing === 'number'\n\nconst bool = (thing: any): thing is boolean => typeof thing === 'boolean'\n\nconst string = (thing: any): thing is string => typeof thing === 'string'\n\nconst element = (thing: any): thing is Element => {\n if (!thing || typeof thing !== 'object') {\n return false\n }\n\n // eslint-disable-next-line import/no-named-as-default-member\n const _window = win.getWindow(thing) || win.window\n\n return /object|function/.test(typeof _window.Element)\n ? thing instanceof _window.Element // DOM2\n : thing.nodeType === 1 && typeof thing.nodeName === 'string'\n}\n\nconst plainObject: typeof object = (thing: any): thing is { [index: string]: any } =>\n object(thing) && !!thing.constructor && /function Object\\b/.test(thing.constructor.toString())\n\nconst array = (thing: any): thing is T[] =>\n object(thing) && typeof thing.length !== 'undefined' && func(thing.splice)\n\nexport default {\n window,\n docFrag,\n object,\n func,\n number,\n bool,\n string,\n element,\n plainObject,\n array,\n}\n","import type { InteractEvent } from '@interactjs/core/InteractEvent'\nimport type { Interactable } from '@interactjs/core/Interactable'\nimport type { Scope, Plugin } from '@interactjs/core/scope'\nimport type { ActionMethod, DraggableOptions, DropzoneOptions } from '@interactjs/types/index'\nimport is from '@interactjs/utils/is'\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n draggable: DraggableMethod\n }\n}\n\ndeclare module '@interactjs/core/options' {\n interface ActionDefaults {\n drag: DraggableOptions\n }\n}\n\ndeclare module '@interactjs/core/scope' {\n interface ActionMap {\n drag?: typeof drag\n }\n}\n\nexport type DragEvent = InteractEvent<'drag'>\n\nexport type DraggableMethod = ActionMethod\n\nfunction install (scope: Scope) {\n const { actions, Interactable, defaults } = scope\n\n Interactable.prototype.draggable = drag.draggable\n\n actions.map.drag = drag\n actions.methodDict.drag = 'draggable'\n\n defaults.actions.drag = drag.defaults\n}\n\nfunction beforeMove ({ interaction }) {\n if (interaction.prepared.name !== 'drag') return\n\n const axis = interaction.prepared.axis\n\n if (axis === 'x') {\n interaction.coords.cur.page.y = interaction.coords.start.page.y\n interaction.coords.cur.client.y = interaction.coords.start.client.y\n\n interaction.coords.velocity.client.y = 0\n interaction.coords.velocity.page.y = 0\n } else if (axis === 'y') {\n interaction.coords.cur.page.x = interaction.coords.start.page.x\n interaction.coords.cur.client.x = interaction.coords.start.client.x\n\n interaction.coords.velocity.client.x = 0\n interaction.coords.velocity.page.x = 0\n }\n}\n\nfunction move ({ iEvent, interaction }) {\n if (interaction.prepared.name !== 'drag') return\n\n const axis = interaction.prepared.axis\n\n if (axis === 'x' || axis === 'y') {\n const opposite = axis === 'x' ? 'y' : 'x'\n\n iEvent.page[opposite] = interaction.coords.start.page[opposite]\n iEvent.client[opposite] = interaction.coords.start.client[opposite]\n iEvent.delta[opposite] = 0\n }\n}\n\n/**\n * ```js\n * interact(element).draggable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // the axis in which the first movement must be\n * // for the drag sequence to start\n * // 'xy' by default - any direction\n * startAxis: 'x' || 'y' || 'xy',\n *\n * // 'xy' by default - don't restrict to one axis (move in any direction)\n * // 'x' or 'y' to restrict movement to either axis\n * // 'start' to restrict movement to the axis the drag started in\n * lockAxis: 'x' || 'y' || 'xy' || 'start',\n *\n * // max number of drags that can happen concurrently\n * // with elements of this Interactable. Infinity by default\n * max: Infinity,\n *\n * // max number of drags that can target the same element+Interactable\n * // 1 by default\n * maxPerElement: 2\n * })\n *\n * var isDraggable = interact('element').draggable(); // true\n * ```\n *\n * Get or set whether drag actions can be performed on the target\n *\n * @alias Interactable.prototype.draggable\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on drag events (object makes the Interactable\n * draggable)\n * @return {boolean | Interactable} boolean indicating if this can be the\n * target of drag events, or this Interctable\n */\nconst draggable: DraggableMethod = function draggable (\n this: Interactable,\n options?: DraggableOptions | boolean,\n): any {\n if (is.object(options)) {\n this.options.drag.enabled = options.enabled !== false\n this.setPerAction('drag', options)\n this.setOnEvents('drag', options)\n\n if (/^(xy|x|y|start)$/.test(options.lockAxis)) {\n this.options.drag.lockAxis = options.lockAxis\n }\n if (/^(xy|x|y)$/.test(options.startAxis)) {\n this.options.drag.startAxis = options.startAxis\n }\n\n return this\n }\n\n if (is.bool(options)) {\n this.options.drag.enabled = options\n\n return this\n }\n\n return this.options.drag\n}\n\nconst drag: Plugin = {\n id: 'actions/drag',\n install,\n listeners: {\n 'interactions:before-action-move': beforeMove,\n 'interactions:action-resume': beforeMove,\n\n // dragmove\n 'interactions:action-move': move,\n 'auto-start:check': (arg) => {\n const { interaction, interactable, buttons } = arg\n const dragOptions = interactable.options.drag\n\n if (\n !(dragOptions && dragOptions.enabled) ||\n // check mouseButton setting if the pointer is down\n (interaction.pointerIsDown &&\n /mouse|pointer/.test(interaction.pointerType) &&\n (buttons & interactable.options.drag.mouseButtons) === 0)\n ) {\n return undefined\n }\n\n arg.action = {\n name: 'drag',\n axis: dragOptions.lockAxis === 'start' ? dragOptions.startAxis : dragOptions.lockAxis,\n }\n\n return false\n },\n },\n draggable,\n beforeMove,\n move,\n defaults: {\n startAxis: 'xy',\n lockAxis: 'xy',\n } as DropzoneOptions,\n\n getCursor () {\n return 'move'\n },\n}\n\nexport default drag\n","const domObjects: {\n init: any\n document: Document\n DocumentFragment: typeof DocumentFragment\n SVGElement: typeof SVGElement\n SVGSVGElement: typeof SVGSVGElement\n SVGElementInstance: any\n Element: typeof Element\n HTMLElement: typeof HTMLElement\n Event: typeof Event\n Touch: typeof Touch\n PointerEvent: typeof PointerEvent\n} = {\n init,\n document: null,\n DocumentFragment: null,\n SVGElement: null,\n SVGSVGElement: null,\n SVGElementInstance: null,\n Element: null,\n HTMLElement: null,\n Event: null,\n Touch: null,\n PointerEvent: null,\n}\n\nfunction blank () {}\n\nexport default domObjects\n\nfunction init (window: Window) {\n const win = window as any\n\n domObjects.document = win.document\n domObjects.DocumentFragment = win.DocumentFragment || blank\n domObjects.SVGElement = win.SVGElement || blank\n domObjects.SVGSVGElement = win.SVGSVGElement || blank\n domObjects.SVGElementInstance = win.SVGElementInstance || blank\n domObjects.Element = win.Element || blank\n domObjects.HTMLElement = win.HTMLElement || domObjects.Element\n\n domObjects.Event = win.Event\n domObjects.Touch = win.Touch || blank\n domObjects.PointerEvent = win.PointerEvent || win.MSPointerEvent\n}\n","import domObjects from './domObjects'\nimport is from './is'\n\nconst browser = {\n init,\n supportsTouch: null as boolean,\n supportsPointerEvent: null as boolean,\n isIOS7: null as boolean,\n isIOS: null as boolean,\n isIe9: null as boolean,\n isOperaMobile: null as boolean,\n prefixedMatchesSelector: null as 'matches',\n pEventTypes: null as {\n up: string\n down: string\n over: string\n out: string\n move: string\n cancel: string\n },\n wheelEvent: null as string,\n}\n\nfunction init (window: any) {\n const Element = domObjects.Element\n const navigator: Partial = window.navigator || {}\n\n // Does the browser support touch input?\n browser.supportsTouch =\n 'ontouchstart' in window ||\n (is.func(window.DocumentTouch) && domObjects.document instanceof window.DocumentTouch)\n\n // Does the browser support PointerEvents\n browser.supportsPointerEvent = navigator.pointerEnabled !== false && !!domObjects.PointerEvent\n\n browser.isIOS = /iP(hone|od|ad)/.test(navigator.platform)\n\n // scrolling doesn't change the result of getClientRects on iOS 7\n browser.isIOS7 = /iP(hone|od|ad)/.test(navigator.platform) && /OS 7[^\\d]/.test(navigator.appVersion)\n\n browser.isIe9 = /MSIE 9/.test(navigator.userAgent)\n\n // Opera Mobile must be handled differently\n browser.isOperaMobile =\n navigator.appName === 'Opera' && browser.supportsTouch && /Presto/.test(navigator.userAgent)\n\n // prefix matchesSelector\n browser.prefixedMatchesSelector = ('matches' in Element.prototype\n ? 'matches'\n : 'webkitMatchesSelector' in Element.prototype\n ? 'webkitMatchesSelector'\n : 'mozMatchesSelector' in Element.prototype\n ? 'mozMatchesSelector'\n : 'oMatchesSelector' in Element.prototype\n ? 'oMatchesSelector'\n : 'msMatchesSelector') as 'matches'\n\n browser.pEventTypes = browser.supportsPointerEvent\n ? domObjects.PointerEvent === window.MSPointerEvent\n ? {\n up: 'MSPointerUp',\n down: 'MSPointerDown',\n over: 'mouseover',\n out: 'mouseout',\n move: 'MSPointerMove',\n cancel: 'MSPointerCancel',\n }\n : {\n up: 'pointerup',\n down: 'pointerdown',\n over: 'pointerover',\n out: 'pointerout',\n move: 'pointermove',\n cancel: 'pointercancel',\n }\n : null\n\n // because Webkit and Opera still use 'mousewheel' event type\n browser.wheelEvent = domObjects.document && 'onmousewheel' in domObjects.document ? 'mousewheel' : 'wheel'\n}\n\nexport default browser\n","import type { Rect, Target, Element } from '@interactjs/types/index'\n\nimport browser from './browser'\nimport domObjects from './domObjects'\nimport is from './is'\nimport * as win from './window'\n\nexport function nodeContains (parent: Node, child: Node) {\n if (parent.contains) {\n return parent.contains(child as Node)\n }\n\n while (child) {\n if (child === parent) {\n return true\n }\n\n child = (child as Node).parentNode\n }\n\n return false\n}\n\nexport function closest (element: Node, selector: string) {\n while (is.element(element)) {\n if (matchesSelector(element, selector)) {\n return element\n }\n\n element = parentNode(element)\n }\n\n return null\n}\n\nexport function parentNode (node: Node | Document) {\n let parent = node.parentNode\n\n if (is.docFrag(parent)) {\n // skip past #shado-root fragments\n // tslint:disable-next-line\n while ((parent = (parent as any).host) && is.docFrag(parent)) {\n continue\n }\n\n return parent\n }\n\n return parent\n}\n\nexport function matchesSelector (element: Element, selector: string) {\n // remove /deep/ from selectors if shadowDOM polyfill is used\n if (win.window !== win.realWindow) {\n selector = selector.replace(/\\/deep\\//g, ' ')\n }\n\n return element[browser.prefixedMatchesSelector](selector)\n}\n\nconst getParent = (el: Node | Document | ShadowRoot) => el.parentNode || (el as ShadowRoot).host\n\n// Test for the element that's \"above\" all other qualifiers\nexport function indexOfDeepestElement (elements: Element[] | NodeListOf) {\n let deepestNodeParents: Node[] = []\n let deepestNodeIndex: number\n\n for (let i = 0; i < elements.length; i++) {\n const currentNode = elements[i]\n const deepestNode: Node = elements[deepestNodeIndex]\n\n // node may appear in elements array multiple times\n if (!currentNode || i === deepestNodeIndex) {\n continue\n }\n\n if (!deepestNode) {\n deepestNodeIndex = i\n continue\n }\n\n const currentNodeParent = getParent(currentNode)\n const deepestNodeParent = getParent(deepestNode)\n\n // check if the deepest or current are document.documentElement/rootElement\n // - if the current node is, do nothing and continue\n if (currentNodeParent === currentNode.ownerDocument) {\n continue\n }\n // - if deepest is, update with the current node and continue to next\n else if (deepestNodeParent === currentNode.ownerDocument) {\n deepestNodeIndex = i\n continue\n }\n\n // compare zIndex of siblings\n if (currentNodeParent === deepestNodeParent) {\n if (zIndexIsHigherThan(currentNode, deepestNode)) {\n deepestNodeIndex = i\n }\n\n continue\n }\n\n // populate the ancestry array for the latest deepest node\n deepestNodeParents = deepestNodeParents.length ? deepestNodeParents : getNodeParents(deepestNode)\n\n let ancestryStart: Node\n\n // if the deepest node is an HTMLElement and the current node is a non root svg element\n if (\n deepestNode instanceof domObjects.HTMLElement &&\n currentNode instanceof domObjects.SVGElement &&\n !(currentNode instanceof domObjects.SVGSVGElement)\n ) {\n // TODO: is this check necessary? Was this for HTML elements embedded in SVG?\n if (currentNode === deepestNodeParent) {\n continue\n }\n\n ancestryStart = currentNode.ownerSVGElement\n } else {\n ancestryStart = currentNode\n }\n\n const currentNodeParents = getNodeParents(ancestryStart, deepestNode.ownerDocument)\n let commonIndex = 0\n\n // get (position of closest common ancestor) + 1\n while (\n currentNodeParents[commonIndex] &&\n currentNodeParents[commonIndex] === deepestNodeParents[commonIndex]\n ) {\n commonIndex++\n }\n\n const parents = [\n currentNodeParents[commonIndex - 1],\n currentNodeParents[commonIndex],\n deepestNodeParents[commonIndex],\n ]\n\n if (parents[0]) {\n let child = parents[0].lastChild\n\n while (child) {\n if (child === parents[1]) {\n deepestNodeIndex = i\n deepestNodeParents = currentNodeParents\n\n break\n } else if (child === parents[2]) {\n break\n }\n\n child = child.previousSibling\n }\n }\n }\n\n return deepestNodeIndex\n}\n\nfunction getNodeParents (node: Node, limit?: Node) {\n const parents: Node[] = []\n let parent: Node = node\n let parentParent: Node\n\n while ((parentParent = getParent(parent)) && parent !== limit && parentParent !== parent.ownerDocument) {\n parents.unshift(parent)\n parent = parentParent\n }\n\n return parents\n}\n\nfunction zIndexIsHigherThan (higherNode: Node, lowerNode: Node) {\n const higherIndex = parseInt(win.getWindow(higherNode).getComputedStyle(higherNode).zIndex, 10) || 0\n const lowerIndex = parseInt(win.getWindow(lowerNode).getComputedStyle(lowerNode).zIndex, 10) || 0\n\n return higherIndex >= lowerIndex\n}\n\nexport function matchesUpTo (element: Element, selector: string, limit: Node) {\n while (is.element(element)) {\n if (matchesSelector(element, selector)) {\n return true\n }\n\n element = parentNode(element) as Element\n\n if (element === limit) {\n return matchesSelector(element, selector)\n }\n }\n\n return false\n}\n\nexport function getActualElement (element: Element) {\n return (element as SVGElement).correspondingUseElement || element\n}\n\nexport function getScrollXY (relevantWindow?: Window) {\n relevantWindow = relevantWindow || win.window\n return {\n x: relevantWindow.scrollX || relevantWindow.document.documentElement.scrollLeft,\n y: relevantWindow.scrollY || relevantWindow.document.documentElement.scrollTop,\n }\n}\n\nexport function getElementClientRect (element: Element): Required {\n const clientRect =\n element instanceof domObjects.SVGElement ? element.getBoundingClientRect() : element.getClientRects()[0]\n\n return (\n clientRect && {\n left: clientRect.left,\n right: clientRect.right,\n top: clientRect.top,\n bottom: clientRect.bottom,\n width: clientRect.width || clientRect.right - clientRect.left,\n height: clientRect.height || clientRect.bottom - clientRect.top,\n }\n )\n}\n\nexport function getElementRect (element: Element) {\n const clientRect = getElementClientRect(element)\n\n if (!browser.isIOS7 && clientRect) {\n const scroll = getScrollXY(win.getWindow(element))\n\n clientRect.left += scroll.x\n clientRect.right += scroll.x\n clientRect.top += scroll.y\n clientRect.bottom += scroll.y\n }\n\n return clientRect\n}\n\nexport function getPath (node: Node | Document) {\n const path = []\n\n while (node) {\n path.push(node)\n node = parentNode(node)\n }\n\n return path\n}\n\nexport function trySelector (value: Target) {\n if (!is.string(value)) {\n return false\n }\n\n // an exception will be raised if it is invalid\n domObjects.document.querySelector(value)\n return true\n}\n","export default function extend (dest: U & Partial, source: T): T & U {\n for (const prop in source) {\n ;((dest as unknown) as T)[prop] = source[prop]\n }\n\n const ret = dest as T & U\n\n return ret\n}\n","import type {\n HasGetRect,\n RectResolvable,\n Rect,\n Element,\n Point,\n FullRect,\n EdgeOptions,\n} from '@interactjs/types'\n\nimport { closest, getElementRect, parentNode } from './domUtils'\nimport extend from './extend'\nimport is from './is'\n\nexport function getStringOptionResult (value: any, target: HasGetRect, element: Node) {\n if (value === 'parent') {\n return parentNode(element)\n }\n\n if (value === 'self') {\n return target.getRect(element as Element)\n }\n\n return closest(element, value)\n}\n\nexport function resolveRectLike (\n value: RectResolvable,\n target?: HasGetRect,\n element?: Node,\n functionArgs?: T,\n) {\n let returnValue: any = value\n if (is.string(returnValue)) {\n returnValue = getStringOptionResult(returnValue, target, element)\n } else if (is.func(returnValue)) {\n returnValue = returnValue(...functionArgs)\n }\n\n if (is.element(returnValue)) {\n returnValue = getElementRect(returnValue)\n }\n\n return returnValue as Rect\n}\n\nexport function rectToXY (rect: Rect | Point) {\n return (\n rect && {\n x: 'x' in rect ? rect.x : rect.left,\n y: 'y' in rect ? rect.y : rect.top,\n }\n )\n}\n\nexport function xywhToTlbr> (rect: T) {\n if (rect && !('left' in rect && 'top' in rect)) {\n rect = extend({}, rect)\n\n rect.left = rect.x || 0\n rect.top = rect.y || 0\n rect.right = rect.right || rect.left + rect.width\n rect.bottom = rect.bottom || rect.top + rect.height\n }\n\n return rect as Rect & T\n}\n\nexport function tlbrToXywh (rect: Rect & Partial) {\n if (rect && !('x' in rect && 'y' in rect)) {\n rect = extend({}, rect)\n\n rect.x = rect.left || 0\n rect.y = rect.top || 0\n rect.width = rect.width || (rect.right || 0) - rect.x\n rect.height = rect.height || (rect.bottom || 0) - rect.y\n }\n\n return rect as FullRect & Point\n}\n\nexport function addEdges (edges: EdgeOptions, rect: Rect, delta: Point) {\n if (edges.left) {\n rect.left += delta.x\n }\n if (edges.right) {\n rect.right += delta.x\n }\n if (edges.top) {\n rect.top += delta.y\n }\n if (edges.bottom) {\n rect.bottom += delta.y\n }\n\n rect.width = rect.right - rect.left\n rect.height = rect.bottom - rect.top\n}\n","import type { PerActionDefaults } from '@interactjs/core/options'\nimport type { ActionName } from '@interactjs/core/scope'\nimport type { HasGetRect } from '@interactjs/types/index'\n\nimport { rectToXY, resolveRectLike } from './rect'\n\nexport default function (\n target: HasGetRect & { options: PerActionDefaults },\n element: Node,\n actionName?: ActionName,\n) {\n const actionOptions = (target.options as any)[actionName]\n const actionOrigin = actionOptions && actionOptions.origin\n const origin = actionOrigin || target.options.origin\n\n const originRect = resolveRectLike(origin, target, element, [target && element])\n\n return rectToXY(originRect) || { x: 0, y: 0 }\n}\n","import type { EventTypes, Listener, ListenersArg } from '@interactjs/types/index'\n\nimport extend from './extend'\nimport is from './is'\n\nexport interface NormalizedListeners {\n [type: string]: Listener[]\n}\n\nexport default function normalize (\n type: EventTypes,\n listeners?: ListenersArg | ListenersArg[],\n result?: NormalizedListeners,\n): NormalizedListeners {\n result = result || {}\n\n if (is.string(type) && type.search(' ') !== -1) {\n type = split(type)\n }\n\n if (is.array(type)) {\n return type.reduce((acc, t) => extend(acc, normalize(t, listeners, result)), result)\n }\n\n // ({ type: fn }) -> ('', { type: fn })\n if (is.object(type)) {\n listeners = type\n type = ''\n }\n\n if (is.func(listeners)) {\n result[type] = result[type] || []\n result[type].push(listeners)\n } else if (is.array(listeners)) {\n for (const l of listeners) {\n normalize(type, l, result)\n }\n } else if (is.object(listeners)) {\n for (const prefix in listeners) {\n const combinedTypes = split(prefix).map((p) => `${type}${p}`)\n\n normalize(combinedTypes, listeners[prefix], result)\n }\n }\n\n return result as NormalizedListeners\n}\n\nfunction split (type: string) {\n return type.trim().split(/ +/)\n}\n","export default (x: number, y: number) => Math.sqrt(x * x + y * y)\n","function pointerExtend (dest: Partial, source: T) {\n for (const prop in source) {\n const prefixedPropREs = pointerExtend.prefixedPropREs\n let deprecated = false\n\n // skip deprecated prefixed properties\n for (const vendor in prefixedPropREs) {\n if (prop.indexOf(vendor) === 0 && prefixedPropREs[vendor].test(prop)) {\n deprecated = true\n break\n }\n }\n\n if (!deprecated && typeof source[prop] !== 'function') {\n dest[prop] = source[prop]\n }\n }\n return dest\n}\n\npointerExtend.prefixedPropREs = {\n webkit: /(Movement[XY]|Radius[XY]|RotationAngle|Force)$/,\n moz: /(Pressure)$/,\n} as { [prefix: string]: RegExp }\n\nexport default pointerExtend\n","import type { InteractEvent } from '@interactjs/core/InteractEvent'\nimport type { CoordsSetMember, PointerType, Point, PointerEventType, Element } from '@interactjs/types/index'\n\nimport browser from './browser'\nimport dom from './domObjects'\nimport * as domUtils from './domUtils'\nimport hypot from './hypot'\nimport is from './is'\nimport pointerExtend from './pointerExtend'\n\nexport function copyCoords (dest: CoordsSetMember, src: CoordsSetMember) {\n dest.page = dest.page || ({} as any)\n dest.page.x = src.page.x\n dest.page.y = src.page.y\n\n dest.client = dest.client || ({} as any)\n dest.client.x = src.client.x\n dest.client.y = src.client.y\n\n dest.timeStamp = src.timeStamp\n}\n\nexport function setCoordDeltas (targetObj: CoordsSetMember, prev: CoordsSetMember, cur: CoordsSetMember) {\n targetObj.page.x = cur.page.x - prev.page.x\n targetObj.page.y = cur.page.y - prev.page.y\n targetObj.client.x = cur.client.x - prev.client.x\n targetObj.client.y = cur.client.y - prev.client.y\n targetObj.timeStamp = cur.timeStamp - prev.timeStamp\n}\n\nexport function setCoordVelocity (targetObj: CoordsSetMember, delta: CoordsSetMember) {\n const dt = Math.max(delta.timeStamp / 1000, 0.001)\n\n targetObj.page.x = delta.page.x / dt\n targetObj.page.y = delta.page.y / dt\n targetObj.client.x = delta.client.x / dt\n targetObj.client.y = delta.client.y / dt\n targetObj.timeStamp = dt\n}\n\nexport function setZeroCoords (targetObj: CoordsSetMember) {\n targetObj.page.x = 0\n targetObj.page.y = 0\n targetObj.client.x = 0\n targetObj.client.y = 0\n}\n\nexport function isNativePointer (pointer: any) {\n return pointer instanceof dom.Event || pointer instanceof dom.Touch\n}\n\n// Get specified X/Y coords for mouse or event.touches[0]\nexport function getXY (type: string, pointer: PointerType | InteractEvent, xy: Point) {\n xy = xy || ({} as Point)\n type = type || 'page'\n\n xy.x = pointer[(type + 'X') as keyof PointerType]\n xy.y = pointer[(type + 'Y') as keyof PointerType]\n\n return xy\n}\n\nexport function getPageXY (pointer: PointerType | InteractEvent, page?: Point) {\n page = page || { x: 0, y: 0 }\n\n // Opera Mobile handles the viewport and scrolling oddly\n if (browser.isOperaMobile && isNativePointer(pointer)) {\n getXY('screen', pointer, page)\n\n page.x += window.scrollX\n page.y += window.scrollY\n } else {\n getXY('page', pointer, page)\n }\n\n return page\n}\n\nexport function getClientXY (pointer: PointerType, client: Point) {\n client = client || ({} as any)\n\n if (browser.isOperaMobile && isNativePointer(pointer)) {\n // Opera Mobile handles the viewport and scrolling oddly\n getXY('screen', pointer, client)\n } else {\n getXY('client', pointer, client)\n }\n\n return client\n}\n\nexport function getPointerId (pointer: { pointerId?: number, identifier?: number, type?: string }) {\n return is.number(pointer.pointerId) ? pointer.pointerId! : pointer.identifier!\n}\n\nexport function setCoords (dest: CoordsSetMember, pointers: any[], timeStamp: number) {\n const pointer = pointers.length > 1 ? pointerAverage(pointers) : pointers[0]\n\n getPageXY(pointer, dest.page)\n getClientXY(pointer, dest.client)\n\n dest.timeStamp = timeStamp\n}\n\nexport function getTouchPair (event: TouchEvent | PointerType[]) {\n const touches: PointerType[] = []\n\n // array of touches is supplied\n if (is.array(event)) {\n touches[0] = event[0]\n touches[1] = event[1]\n }\n // an event\n else {\n if (event.type === 'touchend') {\n if (event.touches.length === 1) {\n touches[0] = event.touches[0]\n touches[1] = event.changedTouches[0]\n } else if (event.touches.length === 0) {\n touches[0] = event.changedTouches[0]\n touches[1] = event.changedTouches[1]\n }\n } else {\n touches[0] = event.touches[0]\n touches[1] = event.touches[1]\n }\n }\n\n return touches\n}\n\nexport function pointerAverage (pointers: PointerType[]) {\n const average = {\n pageX: 0,\n pageY: 0,\n clientX: 0,\n clientY: 0,\n screenX: 0,\n screenY: 0,\n }\n\n type CoordKeys = keyof typeof average\n\n for (const pointer of pointers) {\n for (const prop in average) {\n average[prop as CoordKeys] += pointer[prop as CoordKeys]\n }\n }\n for (const prop in average) {\n average[prop as CoordKeys] /= pointers.length\n }\n\n return average\n}\n\nexport function touchBBox (event: PointerType[]) {\n if (!event.length) {\n return null\n }\n\n const touches = getTouchPair(event)\n const minX = Math.min(touches[0].pageX, touches[1].pageX)\n const minY = Math.min(touches[0].pageY, touches[1].pageY)\n const maxX = Math.max(touches[0].pageX, touches[1].pageX)\n const maxY = Math.max(touches[0].pageY, touches[1].pageY)\n\n return {\n x: minX,\n y: minY,\n left: minX,\n top: minY,\n right: maxX,\n bottom: maxY,\n width: maxX - minX,\n height: maxY - minY,\n }\n}\n\nexport function touchDistance (event: PointerType[] | TouchEvent, deltaSource: string) {\n const sourceX = (deltaSource + 'X') as 'pageX'\n const sourceY = (deltaSource + 'Y') as 'pageY'\n const touches = getTouchPair(event)\n\n const dx = touches[0][sourceX] - touches[1][sourceX]\n const dy = touches[0][sourceY] - touches[1][sourceY]\n\n return hypot(dx, dy)\n}\n\nexport function touchAngle (event: PointerType[] | TouchEvent, deltaSource: string) {\n const sourceX = (deltaSource + 'X') as 'pageX'\n const sourceY = (deltaSource + 'Y') as 'pageY'\n const touches = getTouchPair(event)\n const dx = touches[1][sourceX] - touches[0][sourceX]\n const dy = touches[1][sourceY] - touches[0][sourceY]\n const angle = (180 * Math.atan2(dy, dx)) / Math.PI\n\n return angle\n}\n\nexport function getPointerType (pointer: { pointerType?: string, identifier?: number, type?: string }) {\n return is.string(pointer.pointerType)\n ? pointer.pointerType\n : is.number(pointer.pointerType)\n ? [undefined, undefined, 'touch', 'pen', 'mouse'][pointer.pointerType]!\n : // if the PointerEvent API isn't available, then the \"pointer\" must\n // be either a MouseEvent, TouchEvent, or Touch object\n /touch/.test(pointer.type || '') || pointer instanceof dom.Touch\n ? 'touch'\n : 'mouse'\n}\n\n// [ event.target, event.currentTarget ]\nexport function getEventTargets (event: Event) {\n const path = is.func(event.composedPath)\n ? (event.composedPath() as Element[])\n : ((event as unknown) as { path: Element[] }).path\n\n return [\n domUtils.getActualElement(path ? path[0] : (event.target as Element)),\n domUtils.getActualElement(event.currentTarget as Element),\n ]\n}\n\nexport function newCoords (): CoordsSetMember {\n return {\n page: { x: 0, y: 0 },\n client: { x: 0, y: 0 },\n timeStamp: 0,\n }\n}\n\nexport function coordsToEvent (coords: MockCoords) {\n const event = {\n coords,\n get page () {\n return this.coords.page\n },\n get client () {\n return this.coords.client\n },\n get timeStamp () {\n return this.coords.timeStamp\n },\n get pageX () {\n return this.coords.page.x\n },\n get pageY () {\n return this.coords.page.y\n },\n get clientX () {\n return this.coords.client.x\n },\n get clientY () {\n return this.coords.client.y\n },\n get pointerId () {\n return this.coords.pointerId\n },\n get target () {\n return this.coords.target\n },\n get type () {\n return this.coords.type\n },\n get pointerType () {\n return this.coords.pointerType\n },\n get buttons () {\n return this.coords.buttons\n },\n preventDefault () {},\n }\n\n return event as typeof event & PointerType & PointerEventType\n}\n\nexport interface MockCoords {\n page: Point\n client: Point\n timeStamp?: number\n pointerId?: any\n target?: any\n type?: string\n pointerType?: string\n buttons?: number\n}\n\nexport { pointerExtend }\n","import type { Interactable } from '@interactjs/core/Interactable'\nimport type { Interaction, InteractionProxy } from '@interactjs/core/Interaction'\nimport type { ActionName } from '@interactjs/core/scope'\n\nexport class BaseEvent {\n type: string\n target: EventTarget\n currentTarget: Node\n interactable: Interactable\n _interaction: Interaction\n timeStamp: any\n immediatePropagationStopped = false\n propagationStopped = false\n\n constructor (interaction: Interaction) {\n this._interaction = interaction\n }\n\n preventDefault () {}\n\n /**\n * Don't call any other listeners (even on the current target)\n */\n stopPropagation () {\n this.propagationStopped = true\n }\n\n /**\n * Don't call listeners on the remaining targets\n */\n stopImmediatePropagation () {\n this.immediatePropagationStopped = this.propagationStopped = true\n }\n}\n\n// defined outside of class definition to avoid assignment of undefined during\n// construction\nexport interface BaseEvent {\n interaction: InteractionProxy\n}\n\n// getters and setters defined here to support typescript 3.6 and below which\n// don't support getter and setters in .d.ts files\nObject.defineProperty(BaseEvent.prototype, 'interaction', {\n get (this: BaseEvent) {\n return this._interaction._proxy\n },\n set (this: BaseEvent) {},\n})\n","type Filter = (element: T, index: number, array: T[]) => boolean\n\nexport const contains = (array: T[], target: T) => array.indexOf(target) !== -1\n\nexport const remove = (array: T[], target: T) => array.splice(array.indexOf(target), 1)\n\nexport const merge = (target: Array, source: U[]) => {\n for (const item of source) {\n target.push(item)\n }\n\n return target\n}\n\nexport const from = (source: ArrayLike) => merge([] as T[], source as T[])\n\nexport const findIndex = (array: T[], func: Filter) => {\n for (let i = 0; i < array.length; i++) {\n if (func(array[i], i, array)) {\n return i\n }\n }\n\n return -1\n}\n\nexport const find = (array: T[], func: Filter) => array[findIndex(array, func)]\n","import { BaseEvent } from '@interactjs/core/BaseEvent'\nimport type { InteractEvent } from '@interactjs/core/InteractEvent'\nimport type { Interactable } from '@interactjs/core/Interactable'\nimport type { Element } from '@interactjs/types/index'\nimport * as arr from '@interactjs/utils/arr'\n\nimport type { DropState } from './plugin'\n\nexport class DropEvent extends BaseEvent<'drag'> {\n target: Element\n dropzone: Interactable\n dragEvent: InteractEvent<'drag'>\n relatedTarget: Element\n draggable: Interactable\n timeStamp: number\n propagationStopped = false\n immediatePropagationStopped = false\n\n /**\n * Class of events fired on dropzones during drags with acceptable targets.\n */\n constructor (dropState: DropState, dragEvent: InteractEvent<'drag'>, type: string) {\n super(dragEvent._interaction)\n\n const { element, dropzone } = type === 'dragleave' ? dropState.prev : dropState.cur\n\n this.type = type\n this.target = element\n this.currentTarget = element\n this.dropzone = dropzone\n this.dragEvent = dragEvent\n this.relatedTarget = dragEvent.target\n this.draggable = dragEvent.interactable\n this.timeStamp = dragEvent.timeStamp\n }\n\n /**\n * If this is a `dropactivate` event, the dropzone element will be\n * deactivated.\n *\n * If this is a `dragmove` or `dragenter`, a `dragleave` will be fired on the\n * dropzone element and more.\n */\n reject () {\n const { dropState } = this._interaction\n\n if (\n this.type !== 'dropactivate' &&\n (!this.dropzone || dropState.cur.dropzone !== this.dropzone || dropState.cur.element !== this.target)\n ) {\n return\n }\n\n dropState.prev.dropzone = this.dropzone\n dropState.prev.element = this.target\n\n dropState.rejected = true\n dropState.events.enter = null\n\n this.stopImmediatePropagation()\n\n if (this.type === 'dropactivate') {\n const activeDrops = dropState.activeDrops\n const index = arr.findIndex(\n activeDrops,\n ({ dropzone, element }) => dropzone === this.dropzone && element === this.target,\n )\n\n dropState.activeDrops.splice(index, 1)\n\n const deactivateEvent = new DropEvent(dropState, this.dragEvent, 'dropdeactivate')\n\n deactivateEvent.dropzone = this.dropzone\n deactivateEvent.target = this.target\n\n this.dropzone.fire(deactivateEvent)\n } else {\n this.dropzone.fire(new DropEvent(dropState, this.dragEvent, 'dragleave'))\n }\n }\n\n preventDefault () {}\n\n stopPropagation () {\n this.propagationStopped = true\n }\n\n stopImmediatePropagation () {\n this.immediatePropagationStopped = this.propagationStopped = true\n }\n}\n","import type { EventPhase, InteractEvent } from '@interactjs/core/InteractEvent'\nimport type { Interactable } from '@interactjs/core/Interactable'\nimport type { Interaction, DoPhaseArg } from '@interactjs/core/Interaction'\nimport type { Scope, Plugin } from '@interactjs/core/scope'\nimport type { DropzoneOptions, Element, PointerEventType, Rect } from '@interactjs/types/index'\nimport * as domUtils from '@interactjs/utils/domUtils'\nimport extend from '@interactjs/utils/extend'\nimport getOriginXY from '@interactjs/utils/getOriginXY'\nimport is from '@interactjs/utils/is'\nimport normalizeListeners from '@interactjs/utils/normalizeListeners'\nimport * as pointerUtils from '@interactjs/utils/pointerUtils'\n\nimport type { DragEvent } from '../drag/plugin'\nimport drag from '../drag/plugin'\n\nimport { DropEvent } from './DropEvent'\n\nexport interface DropzoneMethod {\n (this: Interactable, options: DropzoneOptions | boolean): Interactable\n (): DropzoneOptions\n}\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n dropzone: DropzoneMethod\n dropCheck: (\n dragEvent: InteractEvent,\n event: PointerEventType,\n draggable: Interactable,\n draggableElement: Element,\n dropElemen: Element,\n rect: any,\n ) => boolean\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n dropState?: DropState\n }\n}\n\ndeclare module '@interactjs/core/InteractEvent' {\n interface InteractEvent {\n prevDropzone?: Interactable\n dropzone?: Interactable\n dragEnter?: Element\n dragLeave?: Element\n }\n}\n\ndeclare module '@interactjs/core/options' {\n interface ActionDefaults {\n drop: DropzoneOptions\n }\n}\n\ndeclare module '@interactjs/core/scope' {\n interface ActionMap {\n drop?: typeof drop\n }\n\n interface Scope {\n dynamicDrop?: boolean\n }\n\n interface SignalArgs {\n 'actions/drop:start': DropSignalArg\n 'actions/drop:move': DropSignalArg\n 'actions/drop:end': DropSignalArg\n }\n}\n\ndeclare module '@interactjs/core/InteractStatic' {\n interface InteractStatic {\n dynamicDrop: (this: InteractStatic, newValue?: boolean) => boolean | this\n }\n}\n\ninterface DropSignalArg {\n interaction: Interaction<'drag'>\n dragEvent: DragEvent\n}\n\nexport interface ActiveDrop {\n dropzone: Interactable\n element: Element\n rect: Rect\n}\n\nexport interface DropState {\n cur: {\n // the dropzone a drag target might be dropped into\n dropzone: Interactable\n // the element at the time of checking\n element: Element\n }\n prev: {\n // the dropzone that was recently dragged away from\n dropzone: Interactable\n // the element at the time of checking\n element: Element\n }\n // wheather the potential drop was rejected from a listener\n rejected: boolean\n // the drop events related to the current drag event\n events: FiredDropEvents\n activeDrops: ActiveDrop[]\n}\n\nfunction install (scope: Scope) {\n const {\n actions,\n /** @lends module:interact */\n interactStatic: interact,\n /** @lends Interactable */\n Interactable,\n defaults,\n } = scope\n\n scope.usePlugin(drag)\n\n /**\n *\n * ```js\n * interact('.drop').dropzone({\n * accept: '.can-drop' || document.getElementById('single-drop'),\n * overlap: 'pointer' || 'center' || zeroToOne\n * }\n * ```\n *\n * Returns or sets whether draggables can be dropped onto this target to\n * trigger drop events\n *\n * Dropzones can receive the following events:\n * - `dropactivate` and `dropdeactivate` when an acceptable drag starts and ends\n * - `dragenter` and `dragleave` when a draggable enters and leaves the dropzone\n * - `dragmove` when a draggable that has entered the dropzone is moved\n * - `drop` when a draggable is dropped into this dropzone\n *\n * Use the `accept` option to allow only elements that match the given CSS\n * selector or element. The value can be:\n *\n * - **an Element** - only that element can be dropped into this dropzone.\n * - **a string**, - the element being dragged must match it as a CSS selector.\n * - **`null`** - accept options is cleared - it accepts any element.\n *\n * Use the `overlap` option to set how drops are checked for. The allowed\n * values are:\n *\n * - `'pointer'`, the pointer must be over the dropzone (default)\n * - `'center'`, the draggable element's center must be over the dropzone\n * - a number from 0-1 which is the `(intersection area) / (draggable area)`.\n * e.g. `0.5` for drop to happen when half of the area of the draggable is\n * over the dropzone\n *\n * Use the `checker` option to specify a function to check if a dragged element\n * is over this Interactable.\n *\n * @param {boolean | object | null} [options] The new options to be set.\n * @return {object | Interactable} The current setting or this Interactable\n */\n Interactable.prototype.dropzone = function (this: Interactable, options?: DropzoneOptions | boolean) {\n return dropzoneMethod(this, options)\n } as Interactable['dropzone']\n\n /**\n * ```js\n * interact(target)\n * .dropChecker(function(dragEvent, // related dragmove or dragend event\n * event, // TouchEvent/PointerEvent/MouseEvent\n * dropped, // bool result of the default checker\n * dropzone, // dropzone Interactable\n * dropElement, // dropzone elemnt\n * draggable, // draggable Interactable\n * draggableElement) {// draggable element\n *\n * return dropped && event.target.hasAttribute('allow-drop')\n * }\n * ```\n */\n Interactable.prototype.dropCheck = function (\n this: Interactable,\n dragEvent,\n event,\n draggable,\n draggableElement,\n dropElement,\n rect,\n ) {\n return dropCheckMethod(this, dragEvent, event, draggable, draggableElement, dropElement, rect)\n }\n\n /**\n * Returns or sets whether the dimensions of dropzone elements are calculated\n * on every dragmove or only on dragstart for the default dropChecker\n *\n * @param {boolean} [newValue] True to check on each move. False to check only\n * before start\n * @return {boolean | interact} The current setting or interact\n */\n interact.dynamicDrop = function (newValue?: boolean) {\n if (is.bool(newValue)) {\n // if (dragging && scope.dynamicDrop !== newValue && !newValue) {\n // calcRects(dropzones)\n // }\n\n scope.dynamicDrop = newValue\n\n return interact\n }\n return scope.dynamicDrop\n }\n\n extend(actions.phaselessTypes, {\n dragenter: true,\n dragleave: true,\n dropactivate: true,\n dropdeactivate: true,\n dropmove: true,\n drop: true,\n })\n actions.methodDict.drop = 'dropzone'\n\n scope.dynamicDrop = false\n\n defaults.actions.drop = drop.defaults\n}\n\nfunction collectDrops ({ interactables }: Scope, draggableElement: Element) {\n const drops: ActiveDrop[] = []\n\n // collect all dropzones and their elements which qualify for a drop\n for (const dropzone of interactables.list) {\n if (!dropzone.options.drop.enabled) {\n continue\n }\n\n const accept = dropzone.options.drop.accept\n\n // test the draggable draggableElement against the dropzone's accept setting\n if (\n (is.element(accept) && accept !== draggableElement) ||\n (is.string(accept) && !domUtils.matchesSelector(draggableElement, accept)) ||\n (is.func(accept) && !accept({ dropzone, draggableElement }))\n ) {\n continue\n }\n\n // query for new elements if necessary\n const dropElements = (is.string(dropzone.target)\n ? dropzone._context.querySelectorAll(dropzone.target)\n : is.array(dropzone.target)\n ? dropzone.target\n : [dropzone.target]) as Element[]\n\n for (const dropzoneElement of dropElements) {\n if (dropzoneElement !== draggableElement) {\n drops.push({\n dropzone,\n element: dropzoneElement,\n rect: dropzone.getRect(dropzoneElement),\n })\n }\n }\n }\n\n return drops\n}\n\nfunction fireActivationEvents (activeDrops: ActiveDrop[], event: DropEvent) {\n // loop through all active dropzones and trigger event\n for (const { dropzone, element } of activeDrops.slice()) {\n event.dropzone = dropzone\n\n // set current element as event target\n event.target = element\n dropzone.fire(event)\n event.propagationStopped = event.immediatePropagationStopped = false\n }\n}\n\n// return a new array of possible drops. getActiveDrops should always be\n// called when a drag has just started or a drag event happens while\n// dynamicDrop is true\nfunction getActiveDrops (scope: Scope, dragElement: Element) {\n // get dropzones and their elements that could receive the draggable\n const activeDrops = collectDrops(scope, dragElement)\n\n for (const activeDrop of activeDrops) {\n activeDrop.rect = activeDrop.dropzone.getRect(activeDrop.element)\n }\n\n return activeDrops\n}\n\nfunction getDrop (\n { dropState, interactable: draggable, element: dragElement }: Partial,\n dragEvent,\n pointerEvent,\n) {\n const validDrops = []\n\n // collect all dropzones and their elements which qualify for a drop\n for (const { dropzone, element: dropzoneElement, rect } of dropState.activeDrops) {\n validDrops.push(\n dropzone.dropCheck(dragEvent, pointerEvent, draggable, dragElement, dropzoneElement, rect)\n ? dropzoneElement\n : null,\n )\n }\n\n // get the most appropriate dropzone based on DOM depth and order\n const dropIndex = domUtils.indexOfDeepestElement(validDrops)\n\n return dropState.activeDrops[dropIndex] || null\n}\n\nfunction getDropEvents (interaction: Interaction, _pointerEvent, dragEvent: DragEvent) {\n const { dropState } = interaction\n const dropEvents = {\n enter: null,\n leave: null,\n activate: null,\n deactivate: null,\n move: null,\n drop: null,\n }\n\n if (dragEvent.type === 'dragstart') {\n dropEvents.activate = new DropEvent(dropState, dragEvent, 'dropactivate')\n\n dropEvents.activate.target = null\n dropEvents.activate.dropzone = null\n }\n if (dragEvent.type === 'dragend') {\n dropEvents.deactivate = new DropEvent(dropState, dragEvent, 'dropdeactivate')\n\n dropEvents.deactivate.target = null\n dropEvents.deactivate.dropzone = null\n }\n\n if (dropState.rejected) {\n return dropEvents\n }\n\n if (dropState.cur.element !== dropState.prev.element) {\n // if there was a previous dropzone, create a dragleave event\n if (dropState.prev.dropzone) {\n dropEvents.leave = new DropEvent(dropState, dragEvent, 'dragleave')\n\n dragEvent.dragLeave = dropEvents.leave.target = dropState.prev.element\n dragEvent.prevDropzone = dropEvents.leave.dropzone = dropState.prev.dropzone\n }\n // if dropzone is not null, create a dragenter event\n if (dropState.cur.dropzone) {\n dropEvents.enter = new DropEvent(dropState, dragEvent, 'dragenter')\n\n dragEvent.dragEnter = dropState.cur.element\n dragEvent.dropzone = dropState.cur.dropzone\n }\n }\n\n if (dragEvent.type === 'dragend' && dropState.cur.dropzone) {\n dropEvents.drop = new DropEvent(dropState, dragEvent, 'drop')\n\n dragEvent.dropzone = dropState.cur.dropzone\n dragEvent.relatedTarget = dropState.cur.element\n }\n if (dragEvent.type === 'dragmove' && dropState.cur.dropzone) {\n dropEvents.move = new DropEvent(dropState, dragEvent, 'dropmove')\n\n dropEvents.move.dragmove = dragEvent\n dragEvent.dropzone = dropState.cur.dropzone\n }\n\n return dropEvents\n}\n\ntype FiredDropEvents = Partial<\nRecord<'leave' | 'enter' | 'move' | 'drop' | 'activate' | 'deactivate', DropEvent>\n>\n\nfunction fireDropEvents (interaction: Interaction, events: FiredDropEvents) {\n const { dropState } = interaction\n const { activeDrops, cur, prev } = dropState\n\n if (events.leave) {\n prev.dropzone.fire(events.leave)\n }\n if (events.enter) {\n cur.dropzone.fire(events.enter)\n }\n if (events.move) {\n cur.dropzone.fire(events.move)\n }\n if (events.drop) {\n cur.dropzone.fire(events.drop)\n }\n\n if (events.deactivate) {\n fireActivationEvents(activeDrops, events.deactivate)\n }\n\n dropState.prev.dropzone = cur.dropzone\n dropState.prev.element = cur.element\n}\n\nfunction onEventCreated ({ interaction, iEvent, event }: DoPhaseArg<'drag', EventPhase>, scope: Scope) {\n if (iEvent.type !== 'dragmove' && iEvent.type !== 'dragend') {\n return\n }\n\n const { dropState } = interaction\n\n if (scope.dynamicDrop) {\n dropState.activeDrops = getActiveDrops(scope, interaction.element)\n }\n\n const dragEvent = iEvent\n const dropResult = getDrop(interaction, dragEvent, event)\n\n // update rejected status\n dropState.rejected =\n dropState.rejected &&\n !!dropResult &&\n dropResult.dropzone === dropState.cur.dropzone &&\n dropResult.element === dropState.cur.element\n\n dropState.cur.dropzone = dropResult && dropResult.dropzone\n dropState.cur.element = dropResult && dropResult.element\n\n dropState.events = getDropEvents(interaction, event, dragEvent)\n}\n\nfunction dropzoneMethod(interactable: Interactable): DropzoneOptions\nfunction dropzoneMethod(interactable: Interactable, options: DropzoneOptions | boolean): Interactable\nfunction dropzoneMethod (interactable: Interactable, options?: DropzoneOptions | boolean) {\n if (is.object(options)) {\n interactable.options.drop.enabled = options.enabled !== false\n\n if (options.listeners) {\n const normalized = normalizeListeners(options.listeners)\n // rename 'drop' to '' as it will be prefixed with 'drop'\n const corrected = Object.keys(normalized).reduce((acc, type) => {\n const correctedType = /^(enter|leave)/.test(type)\n ? `drag${type}`\n : /^(activate|deactivate|move)/.test(type)\n ? `drop${type}`\n : type\n\n acc[correctedType] = normalized[type]\n\n return acc\n }, {})\n\n interactable.off(interactable.options.drop.listeners)\n interactable.on(corrected)\n interactable.options.drop.listeners = corrected\n }\n\n if (is.func(options.ondrop)) {\n interactable.on('drop', options.ondrop)\n }\n if (is.func(options.ondropactivate)) {\n interactable.on('dropactivate', options.ondropactivate)\n }\n if (is.func(options.ondropdeactivate)) {\n interactable.on('dropdeactivate', options.ondropdeactivate)\n }\n if (is.func(options.ondragenter)) {\n interactable.on('dragenter', options.ondragenter)\n }\n if (is.func(options.ondragleave)) {\n interactable.on('dragleave', options.ondragleave)\n }\n if (is.func(options.ondropmove)) {\n interactable.on('dropmove', options.ondropmove)\n }\n\n if (/^(pointer|center)$/.test(options.overlap as string)) {\n interactable.options.drop.overlap = options.overlap\n } else if (is.number(options.overlap)) {\n interactable.options.drop.overlap = Math.max(Math.min(1, options.overlap), 0)\n }\n if ('accept' in options) {\n interactable.options.drop.accept = options.accept\n }\n if ('checker' in options) {\n interactable.options.drop.checker = options.checker\n }\n\n return interactable\n }\n\n if (is.bool(options)) {\n interactable.options.drop.enabled = options\n\n return interactable\n }\n\n return interactable.options.drop\n}\n\nfunction dropCheckMethod (\n interactable: Interactable,\n dragEvent: InteractEvent,\n event: PointerEventType,\n draggable: Interactable,\n draggableElement: Element,\n dropElement: Element,\n rect: any,\n) {\n let dropped = false\n\n // if the dropzone has no rect (eg. display: none)\n // call the custom dropChecker or just return false\n if (!(rect = rect || interactable.getRect(dropElement))) {\n return interactable.options.drop.checker\n ? interactable.options.drop.checker(\n dragEvent,\n event,\n dropped,\n interactable,\n dropElement,\n draggable,\n draggableElement,\n )\n : false\n }\n\n const dropOverlap = interactable.options.drop.overlap\n\n if (dropOverlap === 'pointer') {\n const origin = getOriginXY(draggable, draggableElement, 'drag')\n const page = pointerUtils.getPageXY(dragEvent)\n\n page.x += origin.x\n page.y += origin.y\n\n const horizontal = page.x > rect.left && page.x < rect.right\n const vertical = page.y > rect.top && page.y < rect.bottom\n\n dropped = horizontal && vertical\n }\n\n const dragRect = draggable.getRect(draggableElement)\n\n if (dragRect && dropOverlap === 'center') {\n const cx = dragRect.left + dragRect.width / 2\n const cy = dragRect.top + dragRect.height / 2\n\n dropped = cx >= rect.left && cx <= rect.right && cy >= rect.top && cy <= rect.bottom\n }\n\n if (dragRect && is.number(dropOverlap)) {\n const overlapArea =\n Math.max(0, Math.min(rect.right, dragRect.right) - Math.max(rect.left, dragRect.left)) *\n Math.max(0, Math.min(rect.bottom, dragRect.bottom) - Math.max(rect.top, dragRect.top))\n\n const overlapRatio = overlapArea / (dragRect.width * dragRect.height)\n\n dropped = overlapRatio >= dropOverlap\n }\n\n if (interactable.options.drop.checker) {\n dropped = interactable.options.drop.checker(\n dragEvent,\n event,\n dropped,\n interactable,\n dropElement,\n draggable,\n draggableElement,\n )\n }\n\n return dropped\n}\n\nconst drop: Plugin = {\n id: 'actions/drop',\n install,\n listeners: {\n 'interactions:before-action-start': ({ interaction }) => {\n if (interaction.prepared.name !== 'drag') {\n return\n }\n\n interaction.dropState = {\n cur: {\n dropzone: null,\n element: null,\n },\n prev: {\n dropzone: null,\n element: null,\n },\n rejected: null,\n events: null,\n activeDrops: [],\n }\n },\n\n 'interactions:after-action-start': (\n { interaction, event, iEvent: dragEvent }: DoPhaseArg<'drag', EventPhase>,\n scope,\n ) => {\n if (interaction.prepared.name !== 'drag') {\n return\n }\n\n const { dropState } = interaction\n\n // reset active dropzones\n dropState.activeDrops = null\n dropState.events = null\n dropState.activeDrops = getActiveDrops(scope, interaction.element)\n dropState.events = getDropEvents(interaction, event, dragEvent)\n\n if (dropState.events.activate) {\n fireActivationEvents(dropState.activeDrops, dropState.events.activate)\n scope.fire('actions/drop:start', { interaction, dragEvent })\n }\n },\n\n 'interactions:action-move': onEventCreated,\n\n 'interactions:after-action-move': (\n { interaction, iEvent: dragEvent }: DoPhaseArg<'drag', EventPhase>,\n scope,\n ) => {\n if (interaction.prepared.name !== 'drag') {\n return\n }\n\n fireDropEvents(interaction, interaction.dropState.events)\n\n scope.fire('actions/drop:move', { interaction, dragEvent })\n interaction.dropState.events = {}\n },\n\n 'interactions:action-end': (arg: DoPhaseArg<'drag', EventPhase>, scope) => {\n if (arg.interaction.prepared.name !== 'drag') {\n return\n }\n\n const { interaction, iEvent: dragEvent } = arg\n\n onEventCreated(arg, scope)\n fireDropEvents(interaction, interaction.dropState.events)\n scope.fire('actions/drop:end', { interaction, dragEvent })\n },\n\n 'interactions:stop': ({ interaction }) => {\n if (interaction.prepared.name !== 'drag') {\n return\n }\n\n const { dropState } = interaction\n\n if (dropState) {\n dropState.activeDrops = null\n dropState.events = null\n dropState.cur.dropzone = null\n dropState.cur.element = null\n dropState.prev.dropzone = null\n dropState.prev.element = null\n dropState.rejected = false\n }\n },\n },\n getActiveDrops,\n getDrop,\n getDropEvents,\n fireDropEvents,\n defaults: {\n enabled: false,\n accept: null,\n overlap: 'pointer',\n } as DropzoneOptions,\n}\n\nexport default drop\n","import type { InteractEvent, EventPhase } from '@interactjs/core/InteractEvent'\nimport type { Interaction, DoPhaseArg } from '@interactjs/core/Interaction'\nimport type { Options } from '@interactjs/core/options'\nimport type { Scope, Plugin } from '@interactjs/core/scope'\nimport type { ActionMethod, GesturableOptions, Rect, PointerType } from '@interactjs/types/index'\nimport is from '@interactjs/utils/is'\nimport * as pointerUtils from '@interactjs/utils/pointerUtils'\n\nexport type GesturableMethod = ActionMethod\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n gesture?: {\n angle: number // angle from first to second touch\n distance: number\n scale: number // gesture.distance / gesture.startDistance\n startAngle: number // angle of line joining two touches\n startDistance: number // distance between two touches of touchStart\n }\n }\n}\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n gesturable: GesturableMethod\n }\n}\n\ndeclare module '@interactjs/core/options' {\n interface ActionDefaults {\n gesture: GesturableOptions\n }\n}\n\ndeclare module '@interactjs/core/scope' {\n interface ActionMap {\n gesture?: typeof gesture\n }\n}\n\nexport interface GestureEvent extends InteractEvent<'gesture'> {\n distance: number\n angle: number\n da: number // angle change\n scale: number // ratio of distance start to current event\n ds: number // scale change\n box: Rect // enclosing box of all points\n touches: PointerType[]\n}\n\nexport interface GestureSignalArg extends DoPhaseArg<'gesture', EventPhase> {\n iEvent: GestureEvent\n interaction: Interaction<'gesture'>\n}\n\nfunction install (scope: Scope) {\n const { actions, Interactable, defaults } = scope\n\n /**\n * ```js\n * interact(element).gesturable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * // limit multiple gestures.\n * // See the explanation in {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * })\n *\n * var isGestureable = interact(element).gesturable()\n * ```\n *\n * Gets or sets whether multitouch gestures can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on gesture events (makes the Interactable gesturable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of gesture events, or this Interactable\n */\n Interactable.prototype.gesturable = function (\n this: InstanceType,\n options: GesturableOptions | boolean,\n ) {\n if (is.object(options)) {\n this.options.gesture.enabled = options.enabled !== false\n this.setPerAction('gesture', options)\n this.setOnEvents('gesture', options)\n\n return this\n }\n\n if (is.bool(options)) {\n this.options.gesture.enabled = options\n\n return this\n }\n\n return this.options.gesture as Options\n } as GesturableMethod\n\n actions.map.gesture = gesture\n actions.methodDict.gesture = 'gesturable'\n\n defaults.actions.gesture = gesture.defaults\n}\n\nfunction updateGestureProps ({ interaction, iEvent, phase }: GestureSignalArg) {\n if (interaction.prepared.name !== 'gesture') return\n\n const pointers = interaction.pointers.map((p) => p.pointer)\n const starting = phase === 'start'\n const ending = phase === 'end'\n const deltaSource = interaction.interactable.options.deltaSource\n\n iEvent.touches = [pointers[0], pointers[1]]\n\n if (starting) {\n iEvent.distance = pointerUtils.touchDistance(pointers, deltaSource)\n iEvent.box = pointerUtils.touchBBox(pointers)\n iEvent.scale = 1\n iEvent.ds = 0\n iEvent.angle = pointerUtils.touchAngle(pointers, deltaSource)\n iEvent.da = 0\n\n interaction.gesture.startDistance = iEvent.distance\n interaction.gesture.startAngle = iEvent.angle\n } else if (ending) {\n const prevEvent = interaction.prevEvent as GestureEvent\n\n iEvent.distance = prevEvent.distance\n iEvent.box = prevEvent.box\n iEvent.scale = prevEvent.scale\n iEvent.ds = 0\n iEvent.angle = prevEvent.angle\n iEvent.da = 0\n } else {\n iEvent.distance = pointerUtils.touchDistance(pointers, deltaSource)\n iEvent.box = pointerUtils.touchBBox(pointers)\n iEvent.scale = iEvent.distance / interaction.gesture.startDistance\n iEvent.angle = pointerUtils.touchAngle(pointers, deltaSource)\n\n iEvent.ds = iEvent.scale - interaction.gesture.scale\n iEvent.da = iEvent.angle - interaction.gesture.angle\n }\n\n interaction.gesture.distance = iEvent.distance\n interaction.gesture.angle = iEvent.angle\n\n if (is.number(iEvent.scale) && iEvent.scale !== Infinity && !isNaN(iEvent.scale)) {\n interaction.gesture.scale = iEvent.scale\n }\n}\n\nconst gesture: Plugin = {\n id: 'actions/gesture',\n before: ['actions/drag', 'actions/resize'],\n install,\n listeners: {\n 'interactions:action-start': updateGestureProps,\n 'interactions:action-move': updateGestureProps,\n 'interactions:action-end': updateGestureProps,\n\n 'interactions:new': ({ interaction }) => {\n interaction.gesture = {\n angle: 0,\n distance: 0,\n scale: 1,\n startAngle: 0,\n startDistance: 0,\n }\n },\n\n 'auto-start:check': (arg) => {\n if (arg.interaction.pointers.length < 2) {\n return undefined\n }\n\n const gestureOptions = arg.interactable.options.gesture\n\n if (!(gestureOptions && gestureOptions.enabled)) {\n return undefined\n }\n\n arg.action = { name: 'gesture' }\n\n return false\n },\n },\n\n defaults: {},\n\n getCursor () {\n return ''\n },\n}\n\nexport default gesture\n","import type { EventPhase, InteractEvent } from '@interactjs/core/InteractEvent'\nimport type { Interactable } from '@interactjs/core/Interactable'\nimport type { ActionProps, Interaction } from '@interactjs/core/Interaction'\nimport type { Scope, Plugin } from '@interactjs/core/scope'\nimport type {\n ActionMethod,\n ResizableOptions,\n FullRect,\n OrBoolean,\n Point,\n Rect,\n} from '@interactjs/types/index'\nimport * as dom from '@interactjs/utils/domUtils'\nimport extend from '@interactjs/utils/extend'\nimport is from '@interactjs/utils/is'\n\nexport type EdgeName = 'top' | 'left' | 'bottom' | 'right'\n\nexport type ResizableMethod = ActionMethod\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n resizable: ResizableMethod\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n resizeAxes: 'x' | 'y' | 'xy'\n resizeStartAspectRatio: number\n }\n}\n\ndeclare module '@interactjs/core/options' {\n interface ActionDefaults {\n resize: ResizableOptions\n }\n}\n\ndeclare module '@interactjs/core/scope' {\n interface ActionMap {\n resize?: typeof resize\n }\n}\n\nexport interface ResizeEvent

extends InteractEvent<'resize', P> {\n deltaRect?: FullRect\n edges?: ActionProps['edges']\n}\n\nfunction install (scope: Scope) {\n const {\n actions,\n browser,\n /** @lends Interactable */\n Interactable, // tslint:disable-line no-shadowed-variable\n defaults,\n } = scope\n\n // Less Precision with touch input\n\n resize.cursors = initCursors(browser)\n resize.defaultMargin = browser.supportsTouch || browser.supportsPointerEvent ? 20 : 10\n\n /**\n * ```js\n * interact(element).resizable({\n * onstart: function (event) {},\n * onmove : function (event) {},\n * onend : function (event) {},\n *\n * edges: {\n * top : true, // Use pointer coords to check for resize.\n * left : false, // Disable resizing from left edge.\n * bottom: '.resize-s',// Resize if pointer target matches selector\n * right : handleEl // Resize if pointer target is the given Element\n * },\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height are adjusted at a 1:1 ratio.\n * square: false,\n *\n * // Width and height can be adjusted independently. When `true`, width and\n * // height maintain the aspect ratio they had when resizing started.\n * preserveAspectRatio: false,\n *\n * // a value of 'none' will limit the resize rect to a minimum of 0x0\n * // 'negate' will allow the rect to have negative width/height\n * // 'reposition' will keep the width/height positive by swapping\n * // the top and bottom edges and/or swapping the left and right edges\n * invert: 'none' || 'negate' || 'reposition'\n *\n * // limit multiple resizes.\n * // See the explanation in the {@link Interactable.draggable} example\n * max: Infinity,\n * maxPerElement: 1,\n * })\n *\n * var isResizeable = interact(element).resizable()\n * ```\n *\n * Gets or sets whether resize actions can be performed on the target\n *\n * @param {boolean | object} [options] true/false or An object with event\n * listeners to be fired on resize events (object makes the Interactable\n * resizable)\n * @return {boolean | Interactable} A boolean indicating if this can be the\n * target of resize elements, or this Interactable\n */\n Interactable.prototype.resizable = function (this: Interactable, options: ResizableOptions | boolean) {\n return resizable(this, options, scope)\n } as ResizableMethod\n\n actions.map.resize = resize\n actions.methodDict.resize = 'resizable'\n\n defaults.actions.resize = resize.defaults\n}\n\nfunction resizeChecker (arg) {\n const { interaction, interactable, element, rect, buttons } = arg\n\n if (!rect) {\n return undefined\n }\n\n const page = extend({}, interaction.coords.cur.page)\n const resizeOptions = interactable.options.resize\n\n if (\n !(resizeOptions && resizeOptions.enabled) ||\n // check mouseButton setting if the pointer is down\n (interaction.pointerIsDown &&\n /mouse|pointer/.test(interaction.pointerType) &&\n (buttons & resizeOptions.mouseButtons) === 0)\n ) {\n return undefined\n }\n\n // if using resize.edges\n if (is.object(resizeOptions.edges)) {\n const resizeEdges = {\n left: false,\n right: false,\n top: false,\n bottom: false,\n }\n\n for (const edge in resizeEdges) {\n resizeEdges[edge] = checkResizeEdge(\n edge,\n resizeOptions.edges[edge],\n page,\n interaction._latestPointer.eventTarget,\n element,\n rect,\n resizeOptions.margin || resize.defaultMargin,\n )\n }\n\n resizeEdges.left = resizeEdges.left && !resizeEdges.right\n resizeEdges.top = resizeEdges.top && !resizeEdges.bottom\n\n if (resizeEdges.left || resizeEdges.right || resizeEdges.top || resizeEdges.bottom) {\n arg.action = {\n name: 'resize',\n edges: resizeEdges,\n }\n }\n } else {\n const right = resizeOptions.axis !== 'y' && page.x > rect.right - resize.defaultMargin\n const bottom = resizeOptions.axis !== 'x' && page.y > rect.bottom - resize.defaultMargin\n\n if (right || bottom) {\n arg.action = {\n name: 'resize',\n axes: (right ? 'x' : '') + (bottom ? 'y' : ''),\n }\n }\n }\n\n return arg.action ? false : undefined\n}\n\nfunction resizable (interactable: Interactable, options: OrBoolean | boolean, scope: Scope) {\n if (is.object(options)) {\n interactable.options.resize.enabled = options.enabled !== false\n interactable.setPerAction('resize', options)\n interactable.setOnEvents('resize', options)\n\n if (is.string(options.axis) && /^x$|^y$|^xy$/.test(options.axis)) {\n interactable.options.resize.axis = options.axis\n } else if (options.axis === null) {\n interactable.options.resize.axis = scope.defaults.actions.resize.axis\n }\n\n if (is.bool(options.preserveAspectRatio)) {\n interactable.options.resize.preserveAspectRatio = options.preserveAspectRatio\n } else if (is.bool(options.square)) {\n interactable.options.resize.square = options.square\n }\n\n return interactable\n }\n if (is.bool(options)) {\n interactable.options.resize.enabled = options\n\n return interactable\n }\n return interactable.options.resize\n}\n\nfunction checkResizeEdge (\n name: string,\n value: any,\n page: Point,\n element: Node,\n interactableElement: Element,\n rect: Rect,\n margin: number,\n) {\n // false, '', undefined, null\n if (!value) {\n return false\n }\n\n // true value, use pointer coords and element rect\n if (value === true) {\n // if dimensions are negative, \"switch\" edges\n const width = is.number(rect.width) ? rect.width : rect.right - rect.left\n const height = is.number(rect.height) ? rect.height : rect.bottom - rect.top\n\n // don't use margin greater than half the relevent dimension\n margin = Math.min(margin, Math.abs((name === 'left' || name === 'right' ? width : height) / 2))\n\n if (width < 0) {\n if (name === 'left') {\n name = 'right'\n } else if (name === 'right') {\n name = 'left'\n }\n }\n if (height < 0) {\n if (name === 'top') {\n name = 'bottom'\n } else if (name === 'bottom') {\n name = 'top'\n }\n }\n\n if (name === 'left') {\n return page.x < (width >= 0 ? rect.left : rect.right) + margin\n }\n if (name === 'top') {\n return page.y < (height >= 0 ? rect.top : rect.bottom) + margin\n }\n\n if (name === 'right') {\n return page.x > (width >= 0 ? rect.right : rect.left) - margin\n }\n if (name === 'bottom') {\n return page.y > (height >= 0 ? rect.bottom : rect.top) - margin\n }\n }\n\n // the remaining checks require an element\n if (!is.element(element)) {\n return false\n }\n\n return is.element(value)\n ? // the value is an element to use as a resize handle\n value === element\n : // otherwise check if element matches value as selector\n dom.matchesUpTo(element, value, interactableElement)\n}\n\n/* eslint-disable multiline-ternary */\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nfunction initCursors (browser: typeof import('@interactjs/utils/browser').default) {\n return browser.isIe9\n ? {\n x: 'e-resize',\n y: 's-resize',\n xy: 'se-resize',\n\n top: 'n-resize',\n left: 'w-resize',\n bottom: 's-resize',\n right: 'e-resize',\n topleft: 'se-resize',\n bottomright: 'se-resize',\n topright: 'ne-resize',\n bottomleft: 'ne-resize',\n }\n : {\n x: 'ew-resize',\n y: 'ns-resize',\n xy: 'nwse-resize',\n\n top: 'ns-resize',\n left: 'ew-resize',\n bottom: 'ns-resize',\n right: 'ew-resize',\n topleft: 'nwse-resize',\n bottomright: 'nwse-resize',\n topright: 'nesw-resize',\n bottomleft: 'nesw-resize',\n }\n}\n/* eslint-enable multiline-ternary */\n\nfunction start ({ iEvent, interaction }: { iEvent: InteractEvent, interaction: Interaction }) {\n if (interaction.prepared.name !== 'resize' || !interaction.prepared.edges) {\n return\n }\n\n const resizeEvent = iEvent as ResizeEvent\n const rect = interaction.rect\n\n interaction._rects = {\n start: extend({}, rect),\n corrected: extend({}, rect),\n previous: extend({}, rect),\n delta: {\n left: 0,\n right: 0,\n width: 0,\n top: 0,\n bottom: 0,\n height: 0,\n },\n }\n\n resizeEvent.edges = interaction.prepared.edges\n resizeEvent.rect = interaction._rects.corrected\n resizeEvent.deltaRect = interaction._rects.delta\n}\n\nfunction move ({ iEvent, interaction }: { iEvent: InteractEvent, interaction: Interaction }) {\n if (interaction.prepared.name !== 'resize' || !interaction.prepared.edges) return\n\n const resizeEvent = iEvent as ResizeEvent\n const resizeOptions = interaction.interactable.options.resize\n const invert = resizeOptions.invert\n const invertible = invert === 'reposition' || invert === 'negate'\n\n const current = interaction.rect\n const { start: startRect, corrected, delta: deltaRect, previous } = interaction._rects\n\n extend(previous, corrected)\n\n if (invertible) {\n // if invertible, copy the current rect\n extend(corrected, current)\n\n if (invert === 'reposition') {\n // swap edge values if necessary to keep width/height positive\n if (corrected.top > corrected.bottom) {\n const swap = corrected.top\n\n corrected.top = corrected.bottom\n corrected.bottom = swap\n }\n if (corrected.left > corrected.right) {\n const swap = corrected.left\n\n corrected.left = corrected.right\n corrected.right = swap\n }\n }\n } else {\n // if not invertible, restrict to minimum of 0x0 rect\n corrected.top = Math.min(current.top, startRect.bottom)\n corrected.bottom = Math.max(current.bottom, startRect.top)\n corrected.left = Math.min(current.left, startRect.right)\n corrected.right = Math.max(current.right, startRect.left)\n }\n\n corrected.width = corrected.right - corrected.left\n corrected.height = corrected.bottom - corrected.top\n\n for (const edge in corrected) {\n deltaRect[edge] = corrected[edge] - previous[edge]\n }\n\n resizeEvent.edges = interaction.prepared.edges\n resizeEvent.rect = corrected\n resizeEvent.deltaRect = deltaRect\n}\n\nfunction end ({ iEvent, interaction }: { iEvent: InteractEvent, interaction: Interaction }) {\n if (interaction.prepared.name !== 'resize' || !interaction.prepared.edges) return\n\n const resizeEvent = iEvent as ResizeEvent\n\n resizeEvent.edges = interaction.prepared.edges\n resizeEvent.rect = interaction._rects.corrected\n resizeEvent.deltaRect = interaction._rects.delta\n}\n\nfunction updateEventAxes ({\n iEvent,\n interaction,\n}: {\n iEvent: InteractEvent\n interaction: Interaction\n}) {\n if (interaction.prepared.name !== 'resize' || !interaction.resizeAxes) return\n\n const options = interaction.interactable.options\n const resizeEvent = iEvent as ResizeEvent\n\n if (options.resize.square) {\n if (interaction.resizeAxes === 'y') {\n resizeEvent.delta.x = resizeEvent.delta.y\n } else {\n resizeEvent.delta.y = resizeEvent.delta.x\n }\n resizeEvent.axes = 'xy'\n } else {\n resizeEvent.axes = interaction.resizeAxes\n\n if (interaction.resizeAxes === 'x') {\n resizeEvent.delta.y = 0\n } else if (interaction.resizeAxes === 'y') {\n resizeEvent.delta.x = 0\n }\n }\n}\n\nconst resize: Plugin = {\n id: 'actions/resize',\n before: ['actions/drag'],\n install,\n listeners: {\n 'interactions:new': ({ interaction }) => {\n interaction.resizeAxes = 'xy'\n },\n\n 'interactions:action-start': (arg) => {\n start(arg)\n updateEventAxes(arg)\n },\n 'interactions:action-move': (arg) => {\n move(arg)\n updateEventAxes(arg)\n },\n 'interactions:action-end': end,\n 'auto-start:check': resizeChecker,\n },\n\n defaults: {\n square: false,\n preserveAspectRatio: false,\n axis: 'xy',\n\n // use default margin\n margin: NaN,\n\n // object with props left, right, top, bottom which are\n // true/false values to resize when the pointer is over that edge,\n // CSS selectors to match the handles for each direction\n // or the Elements for each handle\n edges: null,\n\n // a value of 'none' will limit the resize rect to a minimum of 0x0\n // 'negate' will alow the rect to have negative width/height\n // 'reposition' will keep the width/height positive by swapping\n // the top and bottom edges and/or swapping the left and right edges\n invert: 'none',\n } as ResizableOptions,\n\n cursors: null as ReturnType,\n\n getCursor ({ edges, axis, name }: ActionProps) {\n const cursors = resize.cursors\n let result: string = null\n\n if (axis) {\n result = cursors[name + axis]\n } else if (edges) {\n let cursorKey = ''\n\n for (const edge of ['top', 'bottom', 'left', 'right']) {\n if (edges[edge]) {\n cursorKey += edge\n }\n }\n\n result = cursors[cursorKey]\n }\n\n return result\n },\n\n defaultMargin: null as number,\n}\n\nexport default resize\n","import type { Scope } from '@interactjs/core/scope'\n\nimport drag from './drag/plugin'\nimport drop from './drop/plugin'\nimport gesture from './gesture/plugin'\nimport resize from './resize/plugin'\n\nexport default {\n id: 'actions',\n install (scope: Scope) {\n scope.usePlugin(gesture)\n scope.usePlugin(resize)\n scope.usePlugin(drag)\n scope.usePlugin(drop)\n },\n}\n","let lastTime = 0\nlet request: typeof requestAnimationFrame\nlet cancel: typeof cancelAnimationFrame\n\nfunction init (global: Window | typeof globalThis) {\n request = global.requestAnimationFrame\n cancel = global.cancelAnimationFrame\n\n if (!request) {\n const vendors = ['ms', 'moz', 'webkit', 'o']\n\n for (const vendor of vendors) {\n request = global[`${vendor}RequestAnimationFrame` as 'requestAnimationFrame']\n cancel =\n global[`${vendor}CancelAnimationFrame` as 'cancelAnimationFrame'] ||\n global[`${vendor}CancelRequestAnimationFrame` as 'cancelAnimationFrame']\n }\n }\n\n request = request && request.bind(global)\n cancel = cancel && cancel.bind(global)\n\n if (!request) {\n request = (callback) => {\n const currTime = Date.now()\n const timeToCall = Math.max(0, 16 - (currTime - lastTime))\n const token = global.setTimeout(() => {\n // eslint-disable-next-line node/no-callback-literal\n callback(currTime + timeToCall)\n }, timeToCall)\n\n lastTime = currTime + timeToCall\n return token as any\n }\n\n cancel = (token) => clearTimeout(token)\n }\n}\n\nexport default {\n request: (callback: FrameRequestCallback) => request(callback),\n cancel: (token: number) => cancel(token),\n init,\n}\n","import type { Interactable } from '@interactjs/core/Interactable'\nimport type Interaction from '@interactjs/core/Interaction'\nimport type { ActionName, Scope, Plugin } from '@interactjs/core/scope'\nimport type { PointerType } from '@interactjs/types/index'\nimport * as domUtils from '@interactjs/utils/domUtils'\nimport is from '@interactjs/utils/is'\nimport raf from '@interactjs/utils/raf'\nimport { getStringOptionResult } from '@interactjs/utils/rect'\nimport { getWindow } from '@interactjs/utils/window'\n\ndeclare module '@interactjs/core/scope' {\n interface Scope {\n autoScroll: typeof autoScroll\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n autoScroll?: typeof autoScroll\n }\n}\n\ndeclare module '@interactjs/core/options' {\n interface PerActionDefaults {\n autoScroll?: AutoScrollOptions\n }\n}\n\nexport interface AutoScrollOptions {\n container?: Window | HTMLElement\n margin?: number\n distance?: number\n interval?: number\n speed?: number\n enabled?: boolean\n}\n\nfunction install (scope: Scope) {\n const { defaults, actions } = scope\n\n scope.autoScroll = autoScroll\n autoScroll.now = () => scope.now()\n\n actions.phaselessTypes.autoscroll = true\n defaults.perAction.autoScroll = autoScroll.defaults\n}\n\nconst autoScroll = {\n defaults: {\n enabled: false,\n margin: 60,\n\n // the item that is scrolled (Window or HTMLElement)\n container: null as AutoScrollOptions['container'],\n\n // the scroll speed in pixels per second\n speed: 300,\n } as AutoScrollOptions,\n\n now: Date.now,\n\n interaction: null as Interaction,\n i: 0, // the handle returned by window.setInterval\n\n // Direction each pulse is to scroll in\n x: 0,\n y: 0,\n\n isScrolling: false,\n prevTime: 0,\n margin: 0,\n speed: 0,\n\n start (interaction: Interaction) {\n autoScroll.isScrolling = true\n raf.cancel(autoScroll.i)\n\n interaction.autoScroll = autoScroll\n autoScroll.interaction = interaction\n autoScroll.prevTime = autoScroll.now()\n autoScroll.i = raf.request(autoScroll.scroll)\n },\n\n stop () {\n autoScroll.isScrolling = false\n if (autoScroll.interaction) {\n autoScroll.interaction.autoScroll = null\n }\n raf.cancel(autoScroll.i)\n },\n\n // scroll the window by the values in scroll.x/y\n scroll () {\n const { interaction } = autoScroll\n const { interactable, element } = interaction\n const actionName = interaction.prepared.name\n const options = interactable.options[actionName].autoScroll\n const container = getContainer(options.container, interactable, element)\n const now = autoScroll.now()\n // change in time in seconds\n const dt = (now - autoScroll.prevTime) / 1000\n // displacement\n const s = options.speed * dt\n\n if (s >= 1) {\n const scrollBy = {\n x: autoScroll.x * s,\n y: autoScroll.y * s,\n }\n\n if (scrollBy.x || scrollBy.y) {\n const prevScroll = getScroll(container)\n\n if (is.window(container)) {\n container.scrollBy(scrollBy.x, scrollBy.y)\n } else if (container) {\n container.scrollLeft += scrollBy.x\n container.scrollTop += scrollBy.y\n }\n\n const curScroll = getScroll(container)\n const delta = {\n x: curScroll.x - prevScroll.x,\n y: curScroll.y - prevScroll.y,\n }\n\n if (delta.x || delta.y) {\n interactable.fire({\n type: 'autoscroll',\n target: element,\n interactable,\n delta,\n interaction,\n container,\n })\n }\n }\n\n autoScroll.prevTime = now\n }\n\n if (autoScroll.isScrolling) {\n raf.cancel(autoScroll.i)\n autoScroll.i = raf.request(autoScroll.scroll)\n }\n },\n check (interactable: Interactable, actionName: ActionName) {\n const options = interactable.options\n\n return options[actionName].autoScroll?.enabled\n },\n onInteractionMove ({\n interaction,\n pointer,\n }: {\n interaction: Interaction\n pointer: PointerType\n }) {\n if (\n !(interaction.interacting() && autoScroll.check(interaction.interactable, interaction.prepared.name))\n ) {\n return\n }\n\n if (interaction.simulation) {\n autoScroll.x = autoScroll.y = 0\n return\n }\n\n let top: boolean\n let right: boolean\n let bottom: boolean\n let left: boolean\n\n const { interactable, element } = interaction\n const actionName = interaction.prepared.name\n const options = interactable.options[actionName].autoScroll\n const container = getContainer(options.container, interactable, element)\n\n if (is.window(container)) {\n left = pointer.clientX < autoScroll.margin\n top = pointer.clientY < autoScroll.margin\n right = pointer.clientX > container.innerWidth - autoScroll.margin\n bottom = pointer.clientY > container.innerHeight - autoScroll.margin\n } else {\n const rect = domUtils.getElementClientRect(container)\n\n left = pointer.clientX < rect.left + autoScroll.margin\n top = pointer.clientY < rect.top + autoScroll.margin\n right = pointer.clientX > rect.right - autoScroll.margin\n bottom = pointer.clientY > rect.bottom - autoScroll.margin\n }\n\n autoScroll.x = right ? 1 : left ? -1 : 0\n autoScroll.y = bottom ? 1 : top ? -1 : 0\n\n if (!autoScroll.isScrolling) {\n // set the autoScroll properties to those of the target\n autoScroll.margin = options.margin\n autoScroll.speed = options.speed\n\n autoScroll.start(interaction)\n }\n },\n}\n\nexport function getContainer (value: any, interactable: Interactable, element: Element) {\n return (\n (is.string(value) ? getStringOptionResult(value, interactable, element) : value) || getWindow(element)\n )\n}\n\nexport function getScroll (container: any) {\n if (is.window(container)) {\n container = window.document.body\n }\n\n return { x: container.scrollLeft, y: container.scrollTop }\n}\n\nexport function getScrollSize (container: any) {\n if (is.window(container)) {\n container = window.document.body\n }\n\n return { x: container.scrollWidth, y: container.scrollHeight }\n}\n\nexport function getScrollSizeDelta (\n {\n interaction,\n element,\n }: {\n interaction: Partial>\n element: Element\n },\n func: any,\n) {\n const scrollOptions = interaction && interaction.interactable.options[interaction.prepared.name].autoScroll\n\n if (!scrollOptions || !scrollOptions.enabled) {\n func()\n return { x: 0, y: 0 }\n }\n\n const scrollContainer = getContainer(scrollOptions.container, interaction.interactable, element)\n\n const prevSize = getScroll(scrollContainer)\n func()\n const curSize = getScroll(scrollContainer)\n\n return {\n x: curSize.x - prevSize.x,\n y: curSize.y - prevSize.y,\n }\n}\n\nconst autoScrollPlugin: Plugin = {\n id: 'auto-scroll',\n install,\n listeners: {\n 'interactions:new': ({ interaction }) => {\n interaction.autoScroll = null\n },\n\n 'interactions:destroy': ({ interaction }) => {\n interaction.autoScroll = null\n autoScroll.stop()\n if (autoScroll.interaction) {\n autoScroll.interaction = null\n }\n },\n\n 'interactions:stop': autoScroll.stop,\n\n 'interactions:action-move': (arg: any) => autoScroll.onInteractionMove(arg),\n },\n}\n\nexport default autoScrollPlugin\n","import type { ActionProps } from '@interactjs/core/Interaction'\nimport type { ActionName } from '@interactjs/core/scope'\n\nimport { window } from './window'\n\nexport function warnOnce (this: T, method: (...args: any[]) => any, message: string) {\n let warned = false\n\n return function (this: T) {\n if (!warned) {\n ;(window as any).console.warn(message)\n warned = true\n }\n\n return method.apply(this, arguments)\n }\n}\n\nexport function copyAction (dest: ActionProps, src: ActionProps) {\n dest.name = src.name\n dest.axis = src.axis\n dest.edges = src.edges\n\n return dest\n}\n\nexport const sign = (n: number) => (n >= 0 ? 1 : -1)\n","import type { Interactable } from '@interactjs/core/Interactable'\nimport type { Interaction, ActionProps } from '@interactjs/core/Interaction'\nimport type { Scope } from '@interactjs/core/scope'\nimport type { PointerType, PointerEventType, Element } from '@interactjs/types/index'\nimport is from '@interactjs/utils/is'\nimport { warnOnce } from '@interactjs/utils/misc'\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n getAction: (\n this: Interactable,\n pointer: PointerType,\n event: PointerEventType,\n interaction: Interaction,\n element: Element,\n ) => ActionProps | null\n styleCursor: typeof styleCursor\n actionChecker: typeof actionChecker\n ignoreFrom: {\n (...args: any[]): Interactable\n (): boolean\n }\n allowFrom: {\n (...args: any[]): Interactable\n (): boolean\n }\n }\n}\n\nfunction install (scope: Scope) {\n const {\n /** @lends Interactable */\n Interactable, // tslint:disable-line no-shadowed-variable\n } = scope\n\n Interactable.prototype.getAction = function getAction (\n this: Interactable,\n pointer: PointerType,\n event: PointerEventType,\n interaction: Interaction,\n element: Element,\n ): ActionProps {\n const action = defaultActionChecker(this, event, interaction, element, scope)\n\n if (this.options.actionChecker) {\n return this.options.actionChecker(pointer, event, action, this, element, interaction)\n }\n\n return action\n }\n\n /**\n * If the target of the `mousedown`, `pointerdown` or `touchstart` event or any\n * of it's parents match the given CSS selector or Element, no\n * drag/resize/gesture is started.\n *\n * @deprecated\n * Don't use this method. Instead set the `ignoreFrom` option for each action\n * or for `pointerEvents`\n *\n * ```js\n * interact(targett)\n * .draggable({\n * ignoreFrom: 'input, textarea, a[href]'',\n * })\n * .pointerEvents({\n * ignoreFrom: '[no-pointer]',\n * })\n * ```\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to not ignore any elements\n * @return {string | Element | object} The current ignoreFrom value or this\n * Interactable\n */\n Interactable.prototype.ignoreFrom = warnOnce(function (this: Interactable, newValue) {\n return this._backCompatOption('ignoreFrom', newValue)\n }, 'Interactable.ignoreFrom() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue}).')\n\n /**\n *\n * A drag/resize/gesture is started only If the target of the `mousedown`,\n * `pointerdown` or `touchstart` event or any of it's parents match the given\n * CSS selector or Element.\n *\n * @deprecated\n * Don't use this method. Instead set the `allowFrom` option for each action\n * or for `pointerEvents`\n *\n * ```js\n * interact(targett)\n * .resizable({\n * allowFrom: '.resize-handle',\n * .pointerEvents({\n * allowFrom: '.handle',,\n * })\n * ```\n *\n * @param {string | Element | null} [newValue] a CSS selector string, an\n * Element or `null` to allow from any element\n * @return {string | Element | object} The current allowFrom value or this\n * Interactable\n */\n Interactable.prototype.allowFrom = warnOnce(function (this: Interactable, newValue) {\n return this._backCompatOption('allowFrom', newValue)\n }, 'Interactable.allowFrom() has been deprecated. Use Interactble.draggable({allowFrom: newValue}).')\n\n /**\n * ```js\n * interact('.resize-drag')\n * .resizable(true)\n * .draggable(true)\n * .actionChecker(function (pointer, event, action, interactable, element, interaction) {\n *\n * if (interact.matchesSelector(event.target, '.drag-handle')) {\n * // force drag with handle target\n * action.name = drag\n * }\n * else {\n * // resize from the top and right edges\n * action.name = 'resize'\n * action.edges = { top: true, right: true }\n * }\n *\n * return action\n * })\n * ```\n *\n * Returns or sets the function used to check action to be performed on\n * pointerDown\n *\n * @param {function | null} [checker] A function which takes a pointer event,\n * defaultAction string, interactable, element and interaction as parameters\n * and returns an object with name property 'drag' 'resize' or 'gesture' and\n * optionally an `edges` object with boolean 'top', 'left', 'bottom' and right\n * props.\n * @return {Function | Interactable} The checker function or this Interactable\n */\n Interactable.prototype.actionChecker = actionChecker\n\n /**\n * Returns or sets whether the the cursor should be changed depending on the\n * action that would be performed if the mouse were pressed and dragged.\n *\n * @param {boolean} [newValue]\n * @return {boolean | Interactable} The current setting or this Interactable\n */\n Interactable.prototype.styleCursor = styleCursor\n}\n\nfunction defaultActionChecker (\n interactable: Interactable,\n event: PointerEventType,\n interaction: Interaction,\n element: Element,\n scope: Scope,\n) {\n const rect = interactable.getRect(element)\n const buttons =\n (event as MouseEvent).buttons ||\n {\n 0: 1,\n 1: 4,\n 3: 8,\n 4: 16,\n }[(event as MouseEvent).button as 0 | 1 | 3 | 4]\n const arg = {\n action: null,\n interactable,\n interaction,\n element,\n rect,\n buttons,\n }\n\n scope.fire('auto-start:check', arg)\n\n return arg.action\n}\n\nfunction styleCursor(this: Interactable): boolean\nfunction styleCursor(this: Interactable, newValue: boolean): typeof this\nfunction styleCursor (this: Interactable, newValue?: boolean) {\n if (is.bool(newValue)) {\n this.options.styleCursor = newValue\n\n return this\n }\n\n if (newValue === null) {\n delete this.options.styleCursor\n\n return this\n }\n\n return this.options.styleCursor\n}\n\nfunction actionChecker (this: Interactable, checker: any) {\n if (is.func(checker)) {\n this.options.actionChecker = checker\n\n return this\n }\n\n if (checker === null) {\n delete this.options.actionChecker\n\n return this\n }\n\n return this.options.actionChecker\n}\n\nexport default {\n id: 'auto-start/interactableMethods',\n install,\n}\n","import type { Interactable } from '@interactjs/core/Interactable'\nimport type { Interaction, ActionProps } from '@interactjs/core/Interaction'\nimport type { Scope, SignalArgs, ActionName, Plugin } from '@interactjs/core/scope'\nimport type { CursorChecker, PointerType, PointerEventType, Element } from '@interactjs/types/index'\nimport * as domUtils from '@interactjs/utils/domUtils'\nimport extend from '@interactjs/utils/extend'\nimport is from '@interactjs/utils/is'\nimport { copyAction } from '@interactjs/utils/misc'\n\nimport InteractableMethods from './InteractableMethods'\n\ndeclare module '@interactjs/core/InteractStatic' {\n export interface InteractStatic {\n maxInteractions: (newValue: any) => any\n }\n}\n\ndeclare module '@interactjs/core/scope' {\n interface Scope {\n autoStart: AutoStart\n }\n\n interface SignalArgs {\n 'autoStart:before-start': Omit & {\n interaction: Interaction\n }\n 'autoStart:prepared': { interaction: Interaction }\n 'auto-start:check': CheckSignalArg\n }\n}\n\ndeclare module '@interactjs/core/options' {\n interface BaseDefaults {\n actionChecker?: any\n cursorChecker?: any\n styleCursor?: any\n }\n\n interface PerActionDefaults {\n manualStart?: boolean\n max?: number\n maxPerElement?: number\n allowFrom?: string | Element\n ignoreFrom?: string | Element\n cursorChecker?: CursorChecker\n\n // only allow left button by default\n // see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons#Return_value\n // TODO: docst\n mouseButtons?: 0 | 1 | 2 | 4 | 8 | 16\n }\n}\n\ninterface CheckSignalArg {\n interactable: Interactable\n interaction: Interaction\n element: Element\n action: ActionProps\n buttons: number\n}\n\nexport interface AutoStart {\n // Allow this many interactions to happen simultaneously\n maxInteractions: number\n withinInteractionLimit: typeof withinInteractionLimit\n cursorElement: Element\n}\n\nfunction install (scope: Scope) {\n const { interactStatic: interact, defaults } = scope\n\n scope.usePlugin(InteractableMethods)\n\n defaults.base.actionChecker = null\n defaults.base.styleCursor = true\n\n extend(defaults.perAction, {\n manualStart: false,\n max: Infinity,\n maxPerElement: 1,\n allowFrom: null,\n ignoreFrom: null,\n\n // only allow left button by default\n // see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons#Return_value\n mouseButtons: 1,\n })\n\n /**\n * Returns or sets the maximum number of concurrent interactions allowed. By\n * default only 1 interaction is allowed at a time (for backwards\n * compatibility). To allow multiple interactions on the same Interactables and\n * elements, you need to enable it in the draggable, resizable and gesturable\n * `'max'` and `'maxPerElement'` options.\n *\n * @alias module:interact.maxInteractions\n *\n * @param {number} [newValue] Any number. newValue <= 0 means no interactions.\n */\n interact.maxInteractions = (newValue: number) => maxInteractions(newValue, scope)\n\n scope.autoStart = {\n // Allow this many interactions to happen simultaneously\n maxInteractions: Infinity,\n withinInteractionLimit,\n cursorElement: null,\n }\n}\n\nfunction prepareOnDown (\n { interaction, pointer, event, eventTarget }: SignalArgs['interactions:down'],\n scope: Scope,\n) {\n if (interaction.interacting()) return\n\n const actionInfo = getActionInfo(interaction, pointer, event, eventTarget, scope)\n prepare(interaction, actionInfo, scope)\n}\n\nfunction prepareOnMove (\n { interaction, pointer, event, eventTarget }: SignalArgs['interactions:move'],\n scope: Scope,\n) {\n if (interaction.pointerType !== 'mouse' || interaction.pointerIsDown || interaction.interacting()) return\n\n const actionInfo = getActionInfo(interaction, pointer, event, eventTarget as Element, scope)\n prepare(interaction, actionInfo, scope)\n}\n\nfunction startOnMove (arg: SignalArgs['interactions:move'], scope: Scope) {\n const { interaction } = arg\n\n if (\n !interaction.pointerIsDown ||\n interaction.interacting() ||\n !interaction.pointerWasMoved ||\n !interaction.prepared.name\n ) {\n return\n }\n\n scope.fire('autoStart:before-start', arg)\n\n const { interactable } = interaction\n const actionName = (interaction as Interaction).prepared.name\n\n if (actionName && interactable) {\n // check manualStart and interaction limit\n if (\n interactable.options[actionName].manualStart ||\n !withinInteractionLimit(interactable, interaction.element, interaction.prepared, scope)\n ) {\n interaction.stop()\n } else {\n interaction.start(interaction.prepared, interactable, interaction.element)\n setInteractionCursor(interaction, scope)\n }\n }\n}\n\nfunction clearCursorOnStop ({ interaction }: { interaction: Interaction }, scope: Scope) {\n const { interactable } = interaction\n\n if (interactable && interactable.options.styleCursor) {\n setCursor(interaction.element, '', scope)\n }\n}\n\n// Check if the current interactable supports the action.\n// If so, return the validated action. Otherwise, return null\nfunction validateAction (\n action: ActionProps,\n interactable: Interactable,\n element: Element,\n eventTarget: Node,\n scope: Scope,\n) {\n if (\n interactable.testIgnoreAllow(interactable.options[action.name], element, eventTarget) &&\n interactable.options[action.name].enabled &&\n withinInteractionLimit(interactable, element, action, scope)\n ) {\n return action\n }\n\n return null\n}\n\nfunction validateMatches (\n interaction: Interaction,\n pointer: PointerType,\n event: PointerEventType,\n matches: Interactable[],\n matchElements: Element[],\n eventTarget: Node,\n scope: Scope,\n) {\n for (let i = 0, len = matches.length; i < len; i++) {\n const match = matches[i]\n const matchElement = matchElements[i]\n const matchAction = match.getAction(pointer, event, interaction, matchElement)\n\n if (!matchAction) {\n continue\n }\n\n const action = validateAction(matchAction, match, matchElement, eventTarget, scope)\n\n if (action) {\n return {\n action,\n interactable: match,\n element: matchElement,\n }\n }\n }\n\n return { action: null, interactable: null, element: null }\n}\n\nfunction getActionInfo (\n interaction: Interaction,\n pointer: PointerType,\n event: PointerEventType,\n eventTarget: Node,\n scope: Scope,\n) {\n let matches: Interactable[] = []\n let matchElements: Element[] = []\n\n let element = eventTarget as Element\n\n function pushMatches (interactable: Interactable) {\n matches.push(interactable)\n matchElements.push(element)\n }\n\n while (is.element(element)) {\n matches = []\n matchElements = []\n\n scope.interactables.forEachMatch(element, pushMatches)\n\n const actionInfo = validateMatches(\n interaction,\n pointer,\n event,\n matches,\n matchElements,\n eventTarget,\n scope,\n )\n\n if (actionInfo.action && !actionInfo.interactable.options[actionInfo.action.name].manualStart) {\n return actionInfo\n }\n\n element = domUtils.parentNode(element) as Element\n }\n\n return { action: null, interactable: null, element: null }\n}\n\nfunction prepare (\n interaction: Interaction,\n {\n action,\n interactable,\n element,\n }: {\n action: ActionProps\n interactable: Interactable\n element: Element\n },\n scope: Scope,\n) {\n action = action || { name: null }\n\n interaction.interactable = interactable\n interaction.element = element\n copyAction(interaction.prepared, action)\n\n interaction.rect = interactable && action.name ? interactable.getRect(element) : null\n\n setInteractionCursor(interaction, scope)\n\n scope.fire('autoStart:prepared', { interaction })\n}\n\nfunction withinInteractionLimit (\n interactable: Interactable,\n element: Element,\n action: ActionProps,\n scope: Scope,\n) {\n const options = interactable.options\n const maxActions = options[action.name].max\n const maxPerElement = options[action.name].maxPerElement\n const autoStartMax = scope.autoStart.maxInteractions\n let activeInteractions = 0\n let interactableCount = 0\n let elementCount = 0\n\n // no actions if any of these values == 0\n if (!(maxActions && maxPerElement && autoStartMax)) {\n return false\n }\n\n for (const interaction of scope.interactions.list) {\n const otherAction = interaction.prepared.name\n\n if (!interaction.interacting()) {\n continue\n }\n\n activeInteractions++\n\n if (activeInteractions >= autoStartMax) {\n return false\n }\n\n if (interaction.interactable !== interactable) {\n continue\n }\n\n interactableCount += otherAction === action.name ? 1 : 0\n\n if (interactableCount >= maxActions) {\n return false\n }\n\n if (interaction.element === element) {\n elementCount++\n\n if (otherAction === action.name && elementCount >= maxPerElement) {\n return false\n }\n }\n }\n\n return autoStartMax > 0\n}\n\nfunction maxInteractions (newValue: any, scope: Scope) {\n if (is.number(newValue)) {\n scope.autoStart.maxInteractions = newValue\n\n return this\n }\n\n return scope.autoStart.maxInteractions\n}\n\nfunction setCursor (element: Element, cursor: string, scope: Scope) {\n const { cursorElement: prevCursorElement } = scope.autoStart\n\n if (prevCursorElement && prevCursorElement !== element) {\n prevCursorElement.style.cursor = ''\n }\n\n element.ownerDocument.documentElement.style.cursor = cursor\n element.style.cursor = cursor\n scope.autoStart.cursorElement = cursor ? element : null\n}\n\nfunction setInteractionCursor (interaction: Interaction, scope: Scope) {\n const { interactable, element, prepared } = interaction\n\n if (!(interaction.pointerType === 'mouse' && interactable && interactable.options.styleCursor)) {\n // clear previous target element cursor\n if (scope.autoStart.cursorElement) {\n setCursor(scope.autoStart.cursorElement, '', scope)\n }\n\n return\n }\n\n let cursor = ''\n\n if (prepared.name) {\n const cursorChecker = interactable.options[prepared.name].cursorChecker\n\n if (is.func(cursorChecker)) {\n cursor = cursorChecker(prepared, interactable, element, interaction._interacting)\n } else {\n cursor = scope.actions.map[prepared.name].getCursor(prepared)\n }\n }\n\n setCursor(interaction.element, cursor || '', scope)\n}\n\nconst autoStart: Plugin = {\n id: 'auto-start/base',\n before: ['actions'],\n install,\n listeners: {\n 'interactions:down': prepareOnDown,\n 'interactions:move': (arg, scope) => {\n prepareOnMove(arg, scope)\n startOnMove(arg, scope)\n },\n 'interactions:stop': clearCursorOnStop,\n },\n maxInteractions,\n withinInteractionLimit,\n validateAction,\n}\n\nexport default autoStart\n","import type { Interactable } from '@interactjs/core/Interactable'\nimport type Interaction from '@interactjs/core/Interaction'\nimport type { SignalArgs, Scope, ActionName } from '@interactjs/core/scope'\nimport type { Element } from '@interactjs/types/index'\nimport { parentNode } from '@interactjs/utils/domUtils'\nimport is from '@interactjs/utils/is'\n\nimport autoStart from './base'\n\nfunction beforeStart ({ interaction, eventTarget, dx, dy }: SignalArgs['interactions:move'], scope: Scope) {\n if (interaction.prepared.name !== 'drag') return\n\n // check if a drag is in the correct axis\n const absX = Math.abs(dx)\n const absY = Math.abs(dy)\n const targetOptions = interaction.interactable.options.drag\n const startAxis = targetOptions.startAxis\n const currentAxis = absX > absY ? 'x' : absX < absY ? 'y' : 'xy'\n\n interaction.prepared.axis =\n targetOptions.lockAxis === 'start'\n ? (currentAxis[0] as 'x' | 'y') // always lock to one axis even if currentAxis === 'xy'\n : targetOptions.lockAxis\n\n // if the movement isn't in the startAxis of the interactable\n if (currentAxis !== 'xy' && startAxis !== 'xy' && startAxis !== currentAxis) {\n // cancel the prepared action\n ;(interaction as Interaction).prepared.name = null\n\n // then try to get a drag from another ineractable\n let element = eventTarget as Element\n\n const getDraggable = function (interactable: Interactable): Interactable | void {\n if (interactable === interaction.interactable) return\n\n const options = interaction.interactable.options.drag\n\n if (!options.manualStart && interactable.testIgnoreAllow(options, element, eventTarget)) {\n const action = interactable.getAction(\n interaction.downPointer,\n interaction.downEvent,\n interaction,\n element,\n )\n\n if (\n action &&\n action.name === 'drag' &&\n checkStartAxis(currentAxis, interactable) &&\n autoStart.validateAction(action, interactable, element, eventTarget, scope)\n ) {\n return interactable\n }\n }\n }\n\n // check all interactables\n while (is.element(element)) {\n const interactable = scope.interactables.forEachMatch(element, getDraggable)\n\n if (interactable) {\n ;(interaction as Interaction).prepared.name = 'drag'\n interaction.interactable = interactable\n interaction.element = element\n break\n }\n\n element = parentNode(element) as Element\n }\n }\n}\n\nfunction checkStartAxis (startAxis: string, interactable: Interactable) {\n if (!interactable) {\n return false\n }\n\n const thisAxis = interactable.options.drag.startAxis\n\n return startAxis === 'xy' || thisAxis === 'xy' || thisAxis === startAxis\n}\n\nexport default {\n id: 'auto-start/dragAxis',\n listeners: { 'autoStart:before-start': beforeStart },\n}\n","import type Interaction from '@interactjs/core/Interaction'\nimport type { Scope, Plugin } from '@interactjs/core/scope'\n\nimport basePlugin from './base'\n\ndeclare module '@interactjs/core/options' {\n interface PerActionDefaults {\n hold?: number\n delay?: number\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n autoStartHoldTimer?: any\n }\n}\n\nfunction install (scope: Scope) {\n const { defaults } = scope\n\n scope.usePlugin(basePlugin)\n\n defaults.perAction.hold = 0\n defaults.perAction.delay = 0\n}\n\nfunction getHoldDuration (interaction: Interaction) {\n const actionName = interaction.prepared && interaction.prepared.name\n\n if (!actionName) {\n return null\n }\n\n const options = interaction.interactable.options\n\n return options[actionName].hold || options[actionName].delay\n}\n\nconst hold: Plugin = {\n id: 'auto-start/hold',\n install,\n listeners: {\n 'interactions:new': ({ interaction }) => {\n interaction.autoStartHoldTimer = null\n },\n\n 'autoStart:prepared': ({ interaction }) => {\n const hold = getHoldDuration(interaction)\n\n if (hold > 0) {\n interaction.autoStartHoldTimer = setTimeout(() => {\n interaction.start(interaction.prepared, interaction.interactable, interaction.element)\n }, hold)\n }\n },\n\n 'interactions:move': ({ interaction, duplicate }) => {\n if (interaction.autoStartHoldTimer && interaction.pointerWasMoved && !duplicate) {\n clearTimeout(interaction.autoStartHoldTimer)\n interaction.autoStartHoldTimer = null\n }\n },\n\n // prevent regular down->move autoStart\n 'autoStart:before-start': ({ interaction }) => {\n const holdDuration = getHoldDuration(interaction)\n\n if (holdDuration > 0) {\n interaction.prepared.name = null\n }\n },\n },\n getHoldDuration,\n}\nexport default hold\n","import type { Scope } from '@interactjs/core/scope'\n\nimport autoStart from './base'\nimport dragAxis from './dragAxis'\nimport hold from './hold'\n\nexport default {\n id: 'auto-start',\n install (scope: Scope) {\n scope.usePlugin(autoStart)\n scope.usePlugin(hold)\n scope.usePlugin(dragAxis)\n },\n}\n","import type { Interactable } from '@interactjs/core/Interactable'\nimport type Interaction from '@interactjs/core/Interaction'\nimport type { Scope } from '@interactjs/core/scope'\nimport type { PointerEventType } from '@interactjs/types/index'\nimport { matchesSelector, nodeContains } from '@interactjs/utils/domUtils'\nimport is from '@interactjs/utils/is'\nimport { getWindow } from '@interactjs/utils/window'\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n preventDefault: typeof preventDefault\n checkAndPreventDefault: (event: Event) => void\n }\n}\n\ntype PreventDefaultValue = 'always' | 'never' | 'auto'\nfunction preventDefault(this: Interactable): PreventDefaultValue\nfunction preventDefault(this: Interactable, newValue: PreventDefaultValue): typeof this\nfunction preventDefault (this: Interactable, newValue?: PreventDefaultValue) {\n if (/^(always|never|auto)$/.test(newValue)) {\n this.options.preventDefault = newValue\n return this\n }\n\n if (is.bool(newValue)) {\n this.options.preventDefault = newValue ? 'always' : 'never'\n return this\n }\n\n return this.options.preventDefault\n}\n\nfunction checkAndPreventDefault (interactable: Interactable, scope: Scope, event: Event) {\n const setting = interactable.options.preventDefault\n\n if (setting === 'never') return\n\n if (setting === 'always') {\n event.preventDefault()\n return\n }\n\n // setting === 'auto'\n\n // if the browser supports passive event listeners and isn't running on iOS,\n // don't preventDefault of touch{start,move} events. CSS touch-action and\n // user-select should be used instead of calling event.preventDefault().\n if (scope.events.supportsPassive && /^touch(start|move)$/.test(event.type)) {\n const doc = getWindow(event.target).document\n const docOptions = scope.getDocOptions(doc)\n\n if (!(docOptions && docOptions.events) || docOptions.events.passive !== false) {\n return\n }\n }\n\n // don't preventDefault of pointerdown events\n if (/^(mouse|pointer|touch)*(down|start)/i.test(event.type)) {\n return\n }\n\n // don't preventDefault on editable elements\n if (\n is.element(event.target) &&\n matchesSelector(event.target, 'input,select,textarea,[contenteditable=true],[contenteditable=true] *')\n ) {\n return\n }\n\n event.preventDefault()\n}\n\nfunction onInteractionEvent ({ interaction, event }: { interaction: Interaction, event: PointerEventType }) {\n if (interaction.interactable) {\n interaction.interactable.checkAndPreventDefault(event as Event)\n }\n}\n\nexport function install (scope: Scope) {\n /** @lends Interactable */\n const { Interactable } = scope\n\n /**\n * Returns or sets whether to prevent the browser's default behaviour in\n * response to pointer events. Can be set to:\n * - `'always'` to always prevent\n * - `'never'` to never prevent\n * - `'auto'` to let interact.js try to determine what would be best\n *\n * @param {string} [newValue] `'always'`, `'never'` or `'auto'`\n * @return {string | Interactable} The current setting or this Interactable\n */\n Interactable.prototype.preventDefault = preventDefault\n\n Interactable.prototype.checkAndPreventDefault = function (event) {\n return checkAndPreventDefault(this, scope, event)\n }\n\n // prevent native HTML5 drag on interact.js target elements\n scope.interactions.docEvents.push({\n type: 'dragstart',\n listener (event) {\n for (const interaction of scope.interactions.list) {\n if (\n interaction.element &&\n (interaction.element === event.target || nodeContains(interaction.element, event.target))\n ) {\n interaction.interactable.checkAndPreventDefault(event)\n return\n }\n }\n },\n })\n}\n\nexport default {\n id: 'core/interactablePreventDefault',\n install,\n listeners: ['down', 'move', 'up', 'cancel'].reduce((acc, eventType) => {\n acc[`interactions:${eventType}`] = onInteractionEvent\n return acc\n }, {} as any),\n}\n","export default {}\n","import type Interaction from '@interactjs/core/Interaction'\nimport type { Scope, Plugin } from '@interactjs/core/scope'\nimport visualizer from '@interactjs/dev-tools/visualizer/plugin'\nimport type { Element, OptionMethod } from '@interactjs/types/index'\nimport domObjects from '@interactjs/utils/domObjects'\nimport { parentNode } from '@interactjs/utils/domUtils'\nimport extend from '@interactjs/utils/extend'\nimport is from '@interactjs/utils/is'\nimport * as win from '@interactjs/utils/window'\n\ndeclare module '@interactjs/core/scope' {\n interface Scope {\n logger: Logger\n }\n}\n\ndeclare module '@interactjs/core/InteractStatic' {\n export interface InteractStatic {\n visializer: typeof visualizer\n }\n}\n\ndeclare module '@interactjs/core/options' {\n interface BaseDefaults {\n devTools?: DevToolsOptions\n }\n}\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n devTools: OptionMethod\n }\n}\n\nexport interface DevToolsOptions {\n ignore: { [P in keyof typeof CheckName]?: boolean }\n}\n\nexport interface Logger {\n warn: (...args: any[]) => void\n error: (...args: any[]) => void\n log: (...args: any[]) => void\n}\n\nexport interface Check {\n name: CheckName\n text: string\n perform: (interaction: Interaction) => boolean\n getInfo: (interaction: Interaction) => any[]\n}\n\nenum CheckName {\n touchAction = 'touchAction',\n boxSizing = 'boxSizing',\n noListeners = 'noListeners',\n}\n\nconst prefix = '[interact.js] '\nconst links = {\n touchAction: 'https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action',\n boxSizing: 'https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing',\n}\n\n// eslint-disable-next-line no-undef\nconst isProduction = process.env.NODE_ENV === 'production'\n\nfunction install (scope: Scope, { logger }: { logger?: Logger } = {}) {\n const { Interactable, defaults } = scope\n\n scope.logger = logger || console\n\n defaults.base.devTools = {\n ignore: {},\n }\n\n Interactable.prototype.devTools = function (options?: object) {\n if (options) {\n extend(this.options.devTools, options)\n return this\n }\n\n return this.options.devTools\n }\n\n scope.usePlugin(visualizer)\n}\n\nconst checks: Check[] = [\n {\n name: CheckName.touchAction,\n perform ({ element }) {\n return !parentHasStyle(element, 'touchAction', /pan-|pinch|none/)\n },\n getInfo ({ element }) {\n return [element, links.touchAction]\n },\n text: 'Consider adding CSS \"touch-action: none\" to this element\\n',\n },\n\n {\n name: CheckName.boxSizing,\n perform (interaction) {\n const { element } = interaction\n\n return (\n interaction.prepared.name === 'resize' &&\n element instanceof domObjects.HTMLElement &&\n !hasStyle(element, 'boxSizing', /border-box/)\n )\n },\n text: 'Consider adding CSS \"box-sizing: border-box\" to this resizable element',\n getInfo ({ element }) {\n return [element, links.boxSizing]\n },\n },\n\n {\n name: CheckName.noListeners,\n perform (interaction) {\n const actionName = interaction.prepared.name\n const moveListeners = interaction.interactable.events.types[`${actionName}move`] || []\n\n return !moveListeners.length\n },\n getInfo (interaction) {\n return [interaction.prepared.name, interaction.interactable]\n },\n text: 'There are no listeners set for this action',\n },\n]\n\nfunction hasStyle (element: HTMLElement, prop: keyof CSSStyleDeclaration, styleRe: RegExp) {\n const value = element.style[prop] || win.window.getComputedStyle(element)[prop]\n return styleRe.test((value || '').toString())\n}\n\nfunction parentHasStyle (element: Element, prop: keyof CSSStyleDeclaration, styleRe: RegExp) {\n let parent = element as HTMLElement\n\n while (is.element(parent)) {\n if (hasStyle(parent, prop, styleRe)) {\n return true\n }\n\n parent = parentNode(parent) as HTMLElement\n }\n\n return false\n}\n\nconst id = 'dev-tools'\nconst defaultExport: Plugin = isProduction\n ? { id, install: () => {} }\n : {\n id,\n install,\n listeners: {\n 'interactions:action-start': ({ interaction }, scope) => {\n for (const check of checks) {\n const options = interaction.interactable && interaction.interactable.options\n\n if (\n !(options && options.devTools && options.devTools.ignore[check.name]) &&\n check.perform(interaction)\n ) {\n scope.logger.warn(prefix + check.text, ...check.getInfo(interaction))\n }\n }\n },\n },\n checks,\n CheckName,\n links,\n prefix,\n }\n\nexport default defaultExport\n","import * as arr from './arr'\nimport is from './is'\n\n// tslint:disable-next-line ban-types\nexport default function clone (source: T): Partial {\n const dest = {} as Partial\n\n for (const prop in source) {\n const value = source[prop]\n\n if (is.plainObject(value)) {\n dest[prop] = clone(value) as any\n } else if (is.array(value)) {\n dest[prop] = arr.from(value) as typeof value\n } else {\n dest[prop] = value\n }\n }\n\n return dest\n}\n","import type { EventPhase } from '@interactjs/core/InteractEvent'\nimport type { Interaction, DoAnyPhaseArg } from '@interactjs/core/Interaction'\nimport type { EdgeOptions, FullRect, Point, Rect } from '@interactjs/types/index'\nimport clone from '@interactjs/utils/clone'\nimport extend from '@interactjs/utils/extend'\nimport * as rectUtils from '@interactjs/utils/rect'\n\nimport type { Modifier, ModifierArg, ModifierState } from './base'\n\nexport interface ModificationResult {\n delta: Point\n rectDelta: Rect\n coords: Point\n rect: FullRect\n eventProps: any[]\n changed: boolean\n}\n\ninterface MethodArg {\n phase: EventPhase\n pageCoords: Point\n rect: FullRect\n coords: Point\n preEnd?: boolean\n skipModifiers?: number\n}\n\nexport default class Modification {\n states: ModifierState[] = []\n startOffset: Rect = { left: 0, right: 0, top: 0, bottom: 0 }\n startDelta!: Point\n result!: ModificationResult\n endResult!: Point\n edges!: EdgeOptions\n readonly interaction: Readonly\n\n constructor (interaction: Interaction) {\n this.interaction = interaction\n this.result = createResult()\n }\n\n start ({ phase }: { phase: EventPhase }, pageCoords: Point) {\n const { interaction } = this\n const modifierList = getModifierList(interaction)\n this.prepareStates(modifierList)\n\n this.edges = extend({}, interaction.edges)\n this.startOffset = getRectOffset(interaction.rect, pageCoords)\n this.startDelta = { x: 0, y: 0 }\n\n const arg = this.fillArg({\n phase,\n pageCoords,\n preEnd: false,\n })\n\n this.result = createResult()\n this.startAll(arg)\n\n const result = (this.result = this.setAll(arg))\n\n return result\n }\n\n fillArg (arg: Partial) {\n const { interaction } = this\n\n arg.interaction = interaction\n arg.interactable = interaction.interactable\n arg.element = interaction.element\n arg.rect = arg.rect || interaction.rect\n arg.edges = this.edges\n arg.startOffset = this.startOffset\n\n return arg as ModifierArg\n }\n\n startAll (arg: MethodArg & Partial) {\n for (const state of this.states) {\n if (state.methods.start) {\n arg.state = state\n state.methods.start(arg as ModifierArg)\n }\n }\n }\n\n setAll (arg: MethodArg & Partial): ModificationResult {\n const { phase, preEnd, skipModifiers, rect: unmodifiedRect } = arg\n\n arg.coords = extend({}, arg.pageCoords)\n arg.rect = extend({}, unmodifiedRect)\n\n const states = skipModifiers ? this.states.slice(skipModifiers) : this.states\n\n const newResult = createResult(arg.coords, arg.rect)\n\n for (const state of states) {\n const { options } = state\n const lastModifierCoords = extend({}, arg.coords)\n let returnValue = null\n\n if (state.methods?.set && this.shouldDo(options, preEnd, phase)) {\n arg.state = state\n returnValue = state.methods.set(arg as ModifierArg)\n\n rectUtils.addEdges(this.interaction.edges, arg.rect, {\n x: arg.coords.x - lastModifierCoords.x,\n y: arg.coords.y - lastModifierCoords.y,\n })\n }\n\n newResult.eventProps.push(returnValue)\n }\n\n newResult.delta.x = arg.coords.x - arg.pageCoords.x\n newResult.delta.y = arg.coords.y - arg.pageCoords.y\n\n newResult.rectDelta.left = arg.rect.left - unmodifiedRect.left\n newResult.rectDelta.right = arg.rect.right - unmodifiedRect.right\n newResult.rectDelta.top = arg.rect.top - unmodifiedRect.top\n newResult.rectDelta.bottom = arg.rect.bottom - unmodifiedRect.bottom\n\n const prevCoords = this.result.coords\n const prevRect = this.result.rect\n\n if (prevCoords && prevRect) {\n const rectChanged =\n newResult.rect.left !== prevRect.left ||\n newResult.rect.right !== prevRect.right ||\n newResult.rect.top !== prevRect.top ||\n newResult.rect.bottom !== prevRect.bottom\n\n newResult.changed =\n rectChanged || prevCoords.x !== newResult.coords.x || prevCoords.y !== newResult.coords.y\n }\n\n return newResult\n }\n\n applyToInteraction (arg: { phase: EventPhase, rect?: Rect }) {\n const { interaction } = this\n const { phase } = arg\n const curCoords = interaction.coords.cur\n const startCoords = interaction.coords.start\n const { result, startDelta } = this\n const curDelta = result.delta\n\n if (phase === 'start') {\n extend(this.startDelta, result.delta)\n }\n\n for (const [coordsSet, delta] of [\n [startCoords, startDelta],\n [curCoords, curDelta],\n ] as const) {\n coordsSet.page.x += delta.x\n coordsSet.page.y += delta.y\n coordsSet.client.x += delta.x\n coordsSet.client.y += delta.y\n }\n\n const { rectDelta } = this.result\n const rect = arg.rect || interaction.rect\n\n rect.left += rectDelta.left\n rect.right += rectDelta.right\n rect.top += rectDelta.top\n rect.bottom += rectDelta.bottom\n\n rect.width = rect.right - rect.left\n rect.height = rect.bottom - rect.top\n }\n\n setAndApply (\n arg: Partial & {\n phase: EventPhase\n preEnd?: boolean\n skipModifiers?: number\n modifiedCoords?: Point\n },\n ): void | false {\n const { interaction } = this\n const { phase, preEnd, skipModifiers } = arg\n\n const result = this.setAll(\n this.fillArg({\n preEnd,\n phase,\n pageCoords: arg.modifiedCoords || interaction.coords.cur.page,\n }),\n )\n\n this.result = result\n\n // don't fire an action move if a modifier would keep the event in the same\n // cordinates as before\n if (\n !result.changed &&\n (!skipModifiers || skipModifiers < this.states.length) &&\n interaction.interacting()\n ) {\n return false\n }\n\n if (arg.modifiedCoords) {\n const { page } = interaction.coords.cur\n const adjustment = {\n x: arg.modifiedCoords.x - page.x,\n y: arg.modifiedCoords.y - page.y,\n }\n\n result.coords.x += adjustment.x\n result.coords.y += adjustment.y\n result.delta.x += adjustment.x\n result.delta.y += adjustment.y\n }\n\n this.applyToInteraction(arg)\n }\n\n beforeEnd (arg: Omit & { state?: ModifierState }): void | false {\n const { interaction, event } = arg\n const states = this.states\n\n if (!states || !states.length) {\n return\n }\n\n let doPreend = false\n\n for (const state of states) {\n arg.state = state\n const { options, methods } = state\n\n const endPosition = methods.beforeEnd && methods.beforeEnd((arg as unknown) as ModifierArg)\n\n if (endPosition) {\n this.endResult = endPosition\n return false\n }\n\n doPreend = doPreend || (!doPreend && this.shouldDo(options, true, arg.phase, true))\n }\n\n if (doPreend) {\n // trigger a final modified move before ending\n interaction.move({ event, preEnd: true })\n }\n }\n\n stop (arg: { interaction: Interaction }) {\n const { interaction } = arg\n\n if (!this.states || !this.states.length) {\n return\n }\n\n const modifierArg: Partial = extend(\n {\n states: this.states,\n interactable: interaction.interactable,\n element: interaction.element,\n rect: null,\n },\n arg,\n )\n\n this.fillArg(modifierArg)\n\n for (const state of this.states) {\n modifierArg.state = state\n\n if (state.methods.stop) {\n state.methods.stop(modifierArg as ModifierArg)\n }\n }\n\n this.states = null\n this.endResult = null\n }\n\n prepareStates (modifierList: Modifier[]) {\n this.states = []\n\n for (let index = 0; index < modifierList.length; index++) {\n const { options, methods, name } = modifierList[index]\n\n this.states.push({\n options,\n methods,\n index,\n name,\n })\n }\n\n return this.states\n }\n\n restoreInteractionCoords ({ interaction: { coords, rect, modification } }: { interaction: Interaction }) {\n if (!modification.result) return\n\n const { startDelta } = modification\n const { delta: curDelta, rectDelta } = modification.result\n\n const coordsAndDeltas = [\n [coords.start, startDelta],\n [coords.cur, curDelta],\n ]\n\n for (const [coordsSet, delta] of coordsAndDeltas as any) {\n coordsSet.page.x -= delta.x\n coordsSet.page.y -= delta.y\n coordsSet.client.x -= delta.x\n coordsSet.client.y -= delta.y\n }\n\n rect.left -= rectDelta.left\n rect.right -= rectDelta.right\n rect.top -= rectDelta.top\n rect.bottom -= rectDelta.bottom\n }\n\n shouldDo (options, preEnd?: boolean, phase?: string, requireEndOnly?: boolean) {\n if (\n // ignore disabled modifiers\n !options ||\n options.enabled === false ||\n // check if we require endOnly option to fire move before end\n (requireEndOnly && !options.endOnly) ||\n // don't apply endOnly modifiers when not ending\n (options.endOnly && !preEnd) ||\n // check if modifier should run be applied on start\n (phase === 'start' && !options.setStart)\n ) {\n return false\n }\n\n return true\n }\n\n copyFrom (other: Modification) {\n this.startOffset = other.startOffset\n this.startDelta = other.startDelta\n this.edges = other.edges\n this.states = other.states.map((s) => clone(s) as ModifierState)\n this.result = createResult(extend({}, other.result.coords), extend({}, other.result.rect))\n }\n\n destroy () {\n for (const prop in this) {\n this[prop] = null\n }\n }\n}\n\nfunction createResult (coords?: Point, rect?: FullRect): ModificationResult {\n return {\n rect,\n coords,\n delta: { x: 0, y: 0 },\n rectDelta: {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n },\n eventProps: [],\n changed: true,\n }\n}\n\nfunction getModifierList (interaction) {\n const actionOptions = interaction.interactable.options[interaction.prepared.name]\n const actionModifiers = actionOptions.modifiers\n\n if (actionModifiers && actionModifiers.length) {\n return actionModifiers\n }\n\n return ['snap', 'snapSize', 'snapEdges', 'restrict', 'restrictEdges', 'restrictSize']\n .map((type) => {\n const options = actionOptions[type]\n\n return (\n options &&\n options.enabled && {\n options,\n methods: options._methods,\n }\n )\n })\n .filter((m) => !!m)\n}\n\nexport function getRectOffset (rect, coords) {\n return rect\n ? {\n left: coords.x - rect.left,\n top: coords.y - rect.top,\n right: rect.right - coords.x,\n bottom: rect.bottom - coords.y,\n }\n : {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n }\n}\n","import type { EventPhase, InteractEvent } from '@interactjs/core/InteractEvent'\nimport type { Interactable } from '@interactjs/core/Interactable'\nimport type Interaction from '@interactjs/core/Interaction'\nimport type { Plugin } from '@interactjs/core/scope'\nimport type { EdgeOptions, FullRect, Point, Rect } from '@interactjs/types/index'\n\nimport Modification from './Modification'\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n modification?: Modification\n }\n}\n\ndeclare module '@interactjs/core/InteractEvent' {\n interface InteractEvent {\n modifiers?: Array<{\n name: string\n [key: string]: any\n }>\n }\n}\n\ndeclare module '@interactjs/core/options' {\n interface PerActionDefaults {\n modifiers?: Modifier[]\n }\n}\n\nexport interface Modifier<\n Defaults = any,\n State extends ModifierState = any,\n Name extends string = any,\n Result = any\n> {\n options: Defaults\n methods: {\n start?: (arg: ModifierArg) => void\n set?: (arg: ModifierArg) => Result\n beforeEnd?: (arg: ModifierArg) => Point | void\n stop?: (arg: ModifierArg) => void\n }\n name?: Name\n enable: () => Modifier\n disable: () => Modifier\n}\n\nexport type ModifierState = {\n options: Defaults\n methods?: Modifier['methods']\n index?: number\n name?: Name\n} & StateProps\n\nexport interface ModifierArg {\n interaction: Interaction\n interactable: Interactable\n phase: EventPhase\n rect: FullRect\n edges: EdgeOptions\n state: State\n element: Element\n pageCoords: Point\n prevCoords: Point\n prevRect?: FullRect\n coords: Point\n startOffset: Rect\n preEnd?: boolean\n}\n\nexport interface ModifierModule<\n Defaults extends { enabled?: boolean },\n State extends ModifierState,\n Result = unknown\n> {\n defaults?: Defaults\n start?(arg: ModifierArg): void\n set?(arg: ModifierArg): Result\n beforeEnd?(arg: ModifierArg): Point | void\n stop?(arg: ModifierArg): void\n}\n\nexport interface ModifierFunction<\n Defaults extends { enabled?: boolean },\n State extends ModifierState,\n Name extends string\n> {\n (_options?: Partial): Modifier\n _defaults: Defaults\n _methods: ModifierModule\n}\n\nexport function makeModifier<\n Defaults extends { enabled?: boolean },\n State extends ModifierState,\n Name extends string,\n Result\n> (module: ModifierModule, name?: Name) {\n const { defaults } = module\n const methods = {\n start: module.start,\n set: module.set,\n beforeEnd: module.beforeEnd,\n stop: module.stop,\n }\n\n const modifier = (_options?: Partial) => {\n const options = (_options || {}) as Defaults\n\n options.enabled = options.enabled !== false\n\n // add missing defaults to options\n for (const prop in defaults) {\n if (!(prop in options)) {\n ;(options as any)[prop] = defaults[prop]\n }\n }\n\n const m: Modifier = {\n options,\n methods,\n name,\n enable: () => {\n options.enabled = true\n return m\n },\n disable: () => {\n options.enabled = false\n return m\n },\n }\n\n return m\n }\n\n if (name && typeof name === 'string') {\n // for backwrads compatibility\n modifier._defaults = defaults\n modifier._methods = methods\n }\n\n return modifier\n}\n\nexport function addEventModifiers ({\n iEvent,\n interaction,\n}: {\n iEvent: InteractEvent\n interaction: Interaction\n}) {\n const result = interaction.modification!.result\n\n if (result) {\n iEvent.modifiers = result.eventProps\n }\n}\n\nconst modifiersBase: Plugin = {\n id: 'modifiers/base',\n before: ['actions'],\n install: (scope) => {\n scope.defaults.perAction.modifiers = []\n },\n listeners: {\n 'interactions:new': ({ interaction }) => {\n interaction.modification = new Modification(interaction)\n },\n\n 'interactions:before-action-start': (arg) => {\n const modification = arg.interaction.modification!\n\n modification.start(arg, arg.interaction.coords.start.page)\n arg.interaction.edges = modification.edges\n modification.applyToInteraction(arg)\n },\n\n 'interactions:before-action-move': (arg) => arg.interaction.modification.setAndApply(arg),\n\n 'interactions:before-action-end': (arg) => arg.interaction.modification.beforeEnd(arg),\n\n 'interactions:action-start': addEventModifiers,\n 'interactions:action-move': addEventModifiers,\n 'interactions:action-end': addEventModifiers,\n\n 'interactions:after-action-start': (arg) => arg.interaction.modification.restoreInteractionCoords(arg),\n 'interactions:after-action-move': (arg) => arg.interaction.modification.restoreInteractionCoords(arg),\n\n 'interactions:stop': (arg) => arg.interaction.modification.stop(arg),\n },\n}\n\nexport default modifiersBase\n","import type { Point, Listeners, OrBoolean, Element } from '@interactjs/types/index'\n\nexport interface Defaults {\n base: BaseDefaults\n perAction: PerActionDefaults\n actions: ActionDefaults\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ActionDefaults {}\n\nexport interface BaseDefaults {\n preventDefault?: 'auto' | 'never' | string\n deltaSource?: 'page' | 'client'\n context?: Node\n}\n\nexport interface PerActionDefaults {\n enabled?: boolean\n origin?: Point | string | Element\n listeners?: Listeners\n allowFrom?: string | Element\n ignoreFrom?: string | Element\n}\n\nexport type Options = Partial &\nPartial &\n{\n [P in keyof ActionDefaults]?: Partial\n}\n\n// export interface Options extends BaseDefaults, PerActionDefaults {}\n\nexport interface OptionsArg extends BaseDefaults, OrBoolean> {}\n\nexport const defaults: Defaults = {\n base: {\n preventDefault: 'auto',\n deltaSource: 'page',\n },\n\n perAction: {\n enabled: false,\n origin: { x: 0, y: 0 },\n },\n\n actions: {} as ActionDefaults,\n}\n","import type { ActionName } from '@interactjs/core/scope'\nimport type { Point, FullRect, PointerEventType, Element } from '@interactjs/types/index'\nimport extend from '@interactjs/utils/extend'\nimport getOriginXY from '@interactjs/utils/getOriginXY'\nimport hypot from '@interactjs/utils/hypot'\n\nimport { BaseEvent } from './BaseEvent'\nimport type { Interaction } from './Interaction'\nimport { defaults } from './options'\n\nexport type EventPhase = keyof PhaseMap\n\nexport interface PhaseMap {\n start: true\n move: true\n end: true\n}\n\n// defined outside of class definition to avoid assignment of undefined during\n// construction\nexport interface InteractEvent {\n pageX: number\n pageY: number\n\n clientX: number\n clientY: number\n\n dx: number\n dy: number\n\n velocityX: number\n velocityY: number\n}\n\nexport class InteractEvent<\n T extends ActionName = never,\n P extends EventPhase = EventPhase\n> extends BaseEvent {\n target: Element\n currentTarget: Element\n relatedTarget: Element | null = null\n screenX?: number\n screenY?: number\n button: number\n buttons: number\n ctrlKey: boolean\n shiftKey: boolean\n altKey: boolean\n metaKey: boolean\n page: Point\n client: Point\n delta: Point\n rect: FullRect\n x0: number\n y0: number\n t0: number\n dt: number\n duration: number\n clientX0: number\n clientY0: number\n velocity: Point\n speed: number\n swipe: ReturnType['getSwipe']>\n timeStamp: any\n // resize\n axes?: 'x' | 'y' | 'xy'\n preEnd?: boolean\n\n /** */\n constructor (\n interaction: Interaction,\n event: PointerEventType,\n actionName: T,\n phase: P,\n element: Element,\n preEnd?: boolean,\n type?: string,\n ) {\n super(interaction)\n\n element = element || interaction.element\n\n const target = interaction.interactable\n const deltaSource = (((target && target.options) || defaults) as any).deltaSource as 'page' | 'client'\n const origin = getOriginXY(target, element, actionName)\n const starting = phase === 'start'\n const ending = phase === 'end'\n const prevEvent = starting ? this : interaction.prevEvent\n const coords = starting\n ? interaction.coords.start\n : ending\n ? { page: prevEvent.page, client: prevEvent.client, timeStamp: interaction.coords.cur.timeStamp }\n : interaction.coords.cur\n\n this.page = extend({}, coords.page)\n this.client = extend({}, coords.client)\n this.rect = extend({}, interaction.rect)\n this.timeStamp = coords.timeStamp\n\n if (!ending) {\n this.page.x -= origin.x\n this.page.y -= origin.y\n\n this.client.x -= origin.x\n this.client.y -= origin.y\n }\n\n this.ctrlKey = event.ctrlKey\n this.altKey = event.altKey\n this.shiftKey = event.shiftKey\n this.metaKey = event.metaKey\n this.button = (event as MouseEvent).button\n this.buttons = (event as MouseEvent).buttons\n this.target = element\n this.currentTarget = element\n this.preEnd = preEnd\n this.type = type || actionName + (phase || '')\n this.interactable = target\n\n this.t0 = starting ? interaction.pointers[interaction.pointers.length - 1].downTime : prevEvent.t0\n\n this.x0 = interaction.coords.start.page.x - origin.x\n this.y0 = interaction.coords.start.page.y - origin.y\n this.clientX0 = interaction.coords.start.client.x - origin.x\n this.clientY0 = interaction.coords.start.client.y - origin.y\n\n if (starting || ending) {\n this.delta = { x: 0, y: 0 }\n } else {\n this.delta = {\n x: this[deltaSource].x - prevEvent[deltaSource].x,\n y: this[deltaSource].y - prevEvent[deltaSource].y,\n }\n }\n\n this.dt = interaction.coords.delta.timeStamp\n this.duration = this.timeStamp - this.t0\n\n // velocity and speed in pixels per second\n this.velocity = extend({}, interaction.coords.velocity[deltaSource])\n this.speed = hypot(this.velocity.x, this.velocity.y)\n\n this.swipe = ending || phase === 'inertiastart' ? this.getSwipe() : null\n }\n\n getSwipe () {\n const interaction = this._interaction\n\n if (interaction.prevEvent.speed < 600 || this.timeStamp - interaction.prevEvent.timeStamp > 150) {\n return null\n }\n\n let angle = (180 * Math.atan2(interaction.prevEvent.velocityY, interaction.prevEvent.velocityX)) / Math.PI\n const overlap = 22.5\n\n if (angle < 0) {\n angle += 360\n }\n\n const left = 135 - overlap <= angle && angle < 225 + overlap\n const up = 225 - overlap <= angle && angle < 315 + overlap\n\n const right = !left && (315 - overlap <= angle || angle < 45 + overlap)\n const down = !up && 45 - overlap <= angle && angle < 135 + overlap\n\n return {\n up,\n down,\n left,\n right,\n angle,\n speed: interaction.prevEvent.speed,\n velocity: {\n x: interaction.prevEvent.velocityX,\n y: interaction.prevEvent.velocityY,\n },\n }\n }\n\n preventDefault () {}\n\n /**\n * Don't call listeners on the remaining targets\n */\n stopImmediatePropagation () {\n this.immediatePropagationStopped = this.propagationStopped = true\n }\n\n /**\n * Don't call any other listeners (even on the current target)\n */\n stopPropagation () {\n this.propagationStopped = true\n }\n}\n\n// getters and setters defined here to support typescript 3.6 and below which\n// don't support getter and setters in .d.ts files\nObject.defineProperties(InteractEvent.prototype, {\n pageX: {\n get () {\n return this.page.x\n },\n set (value) {\n this.page.x = value\n },\n },\n pageY: {\n get () {\n return this.page.y\n },\n set (value) {\n this.page.y = value\n },\n },\n\n clientX: {\n get () {\n return this.client.x\n },\n set (value) {\n this.client.x = value\n },\n },\n clientY: {\n get () {\n return this.client.y\n },\n set (value) {\n this.client.y = value\n },\n },\n\n dx: {\n get () {\n return this.delta.x\n },\n set (value) {\n this.delta.x = value\n },\n },\n dy: {\n get () {\n return this.delta.y\n },\n set (value) {\n this.delta.y = value\n },\n },\n\n velocityX: {\n get () {\n return this.velocity.x\n },\n set (value) {\n this.velocity.x = value\n },\n },\n velocityY: {\n get () {\n return this.velocity.y\n },\n set (value) {\n this.velocity.y = value\n },\n },\n})\n","import type { PointerEventType, PointerType } from '@interactjs/types/index'\n\nexport class PointerInfo {\n id: number\n pointer: PointerType\n event: PointerEventType\n downTime: number\n downTarget: Node\n\n constructor (id: number, pointer: PointerType, event: PointerEventType, downTime: number, downTarget: Node) {\n this.id = id\n this.pointer = pointer\n this.event = event\n this.downTime = downTime\n this.downTarget = downTarget\n }\n}\n","import type { ActionDefaults } from '@interactjs/core/options'\nimport type {\n Element,\n EdgeOptions,\n PointerEventType,\n PointerType,\n FullRect,\n CoordsSet,\n} from '@interactjs/types/index'\nimport * as arr from '@interactjs/utils/arr'\nimport extend from '@interactjs/utils/extend'\nimport hypot from '@interactjs/utils/hypot'\nimport { warnOnce, copyAction } from '@interactjs/utils/misc'\nimport * as pointerUtils from '@interactjs/utils/pointerUtils'\nimport * as rectUtils from '@interactjs/utils/rect'\n\nimport type { EventPhase } from './InteractEvent'\nimport { InteractEvent } from './InteractEvent'\nimport type { Interactable } from './Interactable'\nimport { PointerInfo } from './PointerInfo'\nimport type { ActionName, Scope } from './scope'\n\nexport interface ActionProps {\n name: T\n axis?: 'x' | 'y' | 'xy' | null\n edges?: EdgeOptions | null\n}\n\nexport enum _ProxyValues {\n interactable = '',\n element = '',\n prepared = '',\n pointerIsDown = '',\n pointerWasMoved = '',\n _proxy = '',\n}\n\nexport enum _ProxyMethods {\n start = '',\n move = '',\n end = '',\n stop = '',\n interacting = '',\n}\n\nexport type PointerArgProps = {\n pointer: PointerType\n event: PointerEventType\n eventTarget: Node\n pointerIndex: number\n pointerInfo: PointerInfo\n interaction: Interaction\n} & T\n\nexport interface DoPhaseArg {\n event: PointerEventType\n phase: EventPhase\n interaction: Interaction\n iEvent: InteractEvent\n preEnd?: boolean\n type?: string\n}\n\nexport type DoAnyPhaseArg = DoPhaseArg\n\ndeclare module '@interactjs/core/scope' {\n interface SignalArgs {\n 'interactions:new': { interaction: Interaction }\n 'interactions:down': PointerArgProps<{\n type: 'down'\n }>\n 'interactions:move': PointerArgProps<{\n type: 'move'\n dx: number\n dy: number\n duplicate: boolean\n }>\n 'interactions:up': PointerArgProps<{\n type: 'up'\n curEventTarget: EventTarget\n }>\n 'interactions:cancel': SignalArgs['interactions:up'] & {\n type: 'cancel'\n curEventTarget: EventTarget\n }\n 'interactions:update-pointer': PointerArgProps<{\n down: boolean\n }>\n 'interactions:remove-pointer': PointerArgProps\n 'interactions:blur': { interaction: Interaction, event: Event, type: 'blur' }\n 'interactions:before-action-start': Omit\n 'interactions:action-start': DoAnyPhaseArg\n 'interactions:after-action-start': DoAnyPhaseArg\n 'interactions:before-action-move': Omit\n 'interactions:action-move': DoAnyPhaseArg\n 'interactions:after-action-move': DoAnyPhaseArg\n 'interactions:before-action-end': Omit\n 'interactions:action-end': DoAnyPhaseArg\n 'interactions:after-action-end': DoAnyPhaseArg\n 'interactions:stop': { interaction: Interaction }\n }\n}\n\nexport type InteractionProxy = Pick<\nInteraction,\nkeyof typeof _ProxyValues | keyof typeof _ProxyMethods\n>\n\nlet idCounter = 0\n\nexport class Interaction {\n // current interactable being interacted with\n interactable: Interactable = null\n\n // the target element of the interactable\n element: Element = null\n rect: FullRect\n _rects?: {\n start: FullRect\n corrected: FullRect\n previous: FullRect\n delta: FullRect\n }\n edges: EdgeOptions\n\n _scopeFire: Scope['fire']\n\n // action that's ready to be fired on next move event\n prepared: ActionProps = {\n name: null,\n axis: null,\n edges: null,\n }\n\n pointerType: string\n\n // keep track of added pointers\n pointers: PointerInfo[] = []\n\n // pointerdown/mousedown/touchstart event\n downEvent: PointerEventType = null\n\n downPointer: PointerType = {} as PointerType\n\n _latestPointer: {\n pointer: PointerType\n event: PointerEventType\n eventTarget: Node\n } = {\n pointer: null,\n event: null,\n eventTarget: null,\n }\n\n // previous action event\n prevEvent: InteractEvent = null\n\n pointerIsDown = false\n pointerWasMoved = false\n _interacting = false\n _ending = false\n _stopped = true\n _proxy: InteractionProxy = null\n\n simulation = null\n\n /** @internal */ get pointerMoveTolerance () {\n return 1\n }\n\n /**\n * @alias Interaction.prototype.move\n */\n doMove = warnOnce(function (this: Interaction, signalArg: any) {\n this.move(signalArg)\n }, 'The interaction.doMove() method has been renamed to interaction.move()')\n\n coords: CoordsSet = {\n // Starting InteractEvent pointer coordinates\n start: pointerUtils.newCoords(),\n // Previous native pointer move event coordinates\n prev: pointerUtils.newCoords(),\n // current native pointer move event coordinates\n cur: pointerUtils.newCoords(),\n // Change in coordinates and time of the pointer\n delta: pointerUtils.newCoords(),\n // pointer velocity\n velocity: pointerUtils.newCoords(),\n }\n\n readonly _id: number = idCounter++\n\n /** */\n constructor ({ pointerType, scopeFire }: { pointerType?: string, scopeFire: Scope['fire'] }) {\n this._scopeFire = scopeFire\n this.pointerType = pointerType\n\n const that = this\n\n this._proxy = {} as InteractionProxy\n\n for (const key in _ProxyValues) {\n Object.defineProperty(this._proxy, key, {\n get () {\n return that[key]\n },\n })\n }\n\n for (const key in _ProxyMethods) {\n Object.defineProperty(this._proxy, key, {\n value: (...args: any[]) => that[key](...args),\n })\n }\n\n this._scopeFire('interactions:new', { interaction: this })\n }\n\n pointerDown (pointer: PointerType, event: PointerEventType, eventTarget: Node) {\n const pointerIndex = this.updatePointer(pointer, event, eventTarget, true)\n const pointerInfo = this.pointers[pointerIndex]\n\n this._scopeFire('interactions:down', {\n pointer,\n event,\n eventTarget,\n pointerIndex,\n pointerInfo,\n type: 'down',\n interaction: (this as unknown) as Interaction,\n })\n }\n\n /**\n * ```js\n * interact(target)\n * .draggable({\n * // disable the default drag start by down->move\n * manualStart: true\n * })\n * // start dragging after the user holds the pointer down\n * .on('hold', function (event) {\n * var interaction = event.interaction\n *\n * if (!interaction.interacting()) {\n * interaction.start({ name: 'drag' },\n * event.interactable,\n * event.currentTarget)\n * }\n * })\n * ```\n *\n * Start an action with the given Interactable and Element as tartgets. The\n * action must be enabled for the target Interactable and an appropriate\n * number of pointers must be held down - 1 for drag/resize, 2 for gesture.\n *\n * Use it with `interactable.able({ manualStart: false })` to always\n * [start actions manually](https://github.com/taye/interact.js/issues/114)\n *\n * @param {object} action The action to be performed - drag, resize, etc.\n * @param {Interactable} target The Interactable to target\n * @param {Element} element The DOM Element to target\n * @return {Boolean} Whether the interaction was successfully started\n */\n start (action: ActionProps, interactable: Interactable, element: Element): boolean {\n if (\n this.interacting() ||\n !this.pointerIsDown ||\n this.pointers.length < (action.name === 'gesture' ? 2 : 1) ||\n !interactable.options[action.name as keyof ActionDefaults].enabled\n ) {\n return false\n }\n\n copyAction(this.prepared, action)\n\n this.interactable = interactable\n this.element = element\n this.rect = interactable.getRect(element)\n this.edges = this.prepared.edges\n ? extend({}, this.prepared.edges)\n : { left: true, right: true, top: true, bottom: true }\n this._stopped = false\n this._interacting =\n this._doPhase({\n interaction: this,\n event: this.downEvent,\n phase: 'start',\n }) && !this._stopped\n\n return this._interacting\n }\n\n pointerMove (pointer: PointerType, event: PointerEventType, eventTarget: Node) {\n if (!this.simulation && !(this.modification && this.modification.endResult)) {\n this.updatePointer(pointer, event, eventTarget, false)\n }\n\n const duplicateMove =\n this.coords.cur.page.x === this.coords.prev.page.x &&\n this.coords.cur.page.y === this.coords.prev.page.y &&\n this.coords.cur.client.x === this.coords.prev.client.x &&\n this.coords.cur.client.y === this.coords.prev.client.y\n\n let dx: number\n let dy: number\n\n // register movement greater than pointerMoveTolerance\n if (this.pointerIsDown && !this.pointerWasMoved) {\n dx = this.coords.cur.client.x - this.coords.start.client.x\n dy = this.coords.cur.client.y - this.coords.start.client.y\n\n this.pointerWasMoved = hypot(dx, dy) > this.pointerMoveTolerance\n }\n\n const pointerIndex = this.getPointerIndex(pointer)\n const signalArg = {\n pointer,\n pointerIndex,\n pointerInfo: this.pointers[pointerIndex],\n event,\n type: 'move' as const,\n eventTarget,\n dx,\n dy,\n duplicate: duplicateMove,\n interaction: (this as unknown) as Interaction,\n }\n\n if (!duplicateMove) {\n // set pointer coordinate, time changes and velocity\n pointerUtils.setCoordVelocity(this.coords.velocity, this.coords.delta)\n }\n\n this._scopeFire('interactions:move', signalArg)\n\n if (!duplicateMove && !this.simulation) {\n // if interacting, fire an 'action-move' signal etc\n if (this.interacting()) {\n signalArg.type = null\n this.move(signalArg)\n }\n\n if (this.pointerWasMoved) {\n pointerUtils.copyCoords(this.coords.prev, this.coords.cur)\n }\n }\n }\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('dragmove', function (event) {\n * if (someCondition) {\n * // change the snap settings\n * event.interactable.draggable({ snap: { targets: [] }})\n * // fire another move event with re-calculated snap\n * event.interaction.move()\n * }\n * })\n * ```\n *\n * Force a move of the current action at the same coordinates. Useful if\n * snap/restrict has been changed and you want a movement with the new\n * settings.\n */\n move (signalArg?: any) {\n if (!signalArg || !signalArg.event) {\n pointerUtils.setZeroCoords(this.coords.delta)\n }\n\n signalArg = extend(\n {\n pointer: this._latestPointer.pointer,\n event: this._latestPointer.event,\n eventTarget: this._latestPointer.eventTarget,\n interaction: this,\n },\n signalArg || {},\n )\n\n signalArg.phase = 'move'\n\n this._doPhase(signalArg)\n }\n\n // End interact move events and stop auto-scroll unless simulation is running\n pointerUp (pointer: PointerType, event: PointerEventType, eventTarget: Node, curEventTarget: EventTarget) {\n let pointerIndex = this.getPointerIndex(pointer)\n\n if (pointerIndex === -1) {\n pointerIndex = this.updatePointer(pointer, event, eventTarget, false)\n }\n\n const type = /cancel$/i.test(event.type) ? 'cancel' : 'up'\n\n this._scopeFire(`interactions:${type}` as 'interactions:up' | 'interactions:cancel', {\n pointer,\n pointerIndex,\n pointerInfo: this.pointers[pointerIndex],\n event,\n eventTarget,\n type: type as any,\n curEventTarget,\n interaction: (this as unknown) as Interaction,\n })\n\n if (!this.simulation) {\n this.end(event)\n }\n\n this.removePointer(pointer, event)\n }\n\n documentBlur (event: Event) {\n this.end(event as any)\n this._scopeFire('interactions:blur', {\n event,\n type: 'blur',\n interaction: (this as unknown) as Interaction,\n })\n }\n\n /**\n * ```js\n * interact(target)\n * .draggable(true)\n * .on('move', function (event) {\n * if (event.pageX > 1000) {\n * // end the current action\n * event.interaction.end()\n * // stop all further listeners from being called\n * event.stopImmediatePropagation()\n * }\n * })\n * ```\n *\n * @param {PointerEvent} [event]\n */\n end (event?: PointerEventType) {\n this._ending = true\n event = event || this._latestPointer.event\n let endPhaseResult: boolean\n\n if (this.interacting()) {\n endPhaseResult = this._doPhase({\n event,\n interaction: this,\n phase: 'end',\n })\n }\n\n this._ending = false\n\n if (endPhaseResult === true) {\n this.stop()\n }\n }\n\n currentAction () {\n return this._interacting ? this.prepared.name : null\n }\n\n interacting () {\n return this._interacting\n }\n\n /** */\n stop () {\n this._scopeFire('interactions:stop', { interaction: this })\n\n this.interactable = this.element = null\n\n this._interacting = false\n this._stopped = true\n this.prepared.name = this.prevEvent = null\n }\n\n getPointerIndex (pointer: PointerType) {\n const pointerId = pointerUtils.getPointerId(pointer)\n\n // mouse and pen interactions may have only one pointer\n return this.pointerType === 'mouse' || this.pointerType === 'pen'\n ? this.pointers.length - 1\n : arr.findIndex(this.pointers, (curPointer) => curPointer.id === pointerId)\n }\n\n getPointerInfo (pointer: any) {\n return this.pointers[this.getPointerIndex(pointer)]\n }\n\n updatePointer (pointer: PointerType, event: PointerEventType, eventTarget: Node, down?: boolean) {\n const id = pointerUtils.getPointerId(pointer)\n let pointerIndex = this.getPointerIndex(pointer)\n let pointerInfo = this.pointers[pointerIndex]\n\n down = down === false ? false : down || /(down|start)$/i.test(event.type)\n\n if (!pointerInfo) {\n pointerInfo = new PointerInfo(id, pointer, event, null, null)\n\n pointerIndex = this.pointers.length\n this.pointers.push(pointerInfo)\n } else {\n pointerInfo.pointer = pointer\n }\n\n pointerUtils.setCoords(\n this.coords.cur,\n this.pointers.map((p) => p.pointer),\n this._now(),\n )\n pointerUtils.setCoordDeltas(this.coords.delta, this.coords.prev, this.coords.cur)\n\n if (down) {\n this.pointerIsDown = true\n\n pointerInfo.downTime = this.coords.cur.timeStamp\n pointerInfo.downTarget = eventTarget\n pointerUtils.pointerExtend(this.downPointer, pointer)\n\n if (!this.interacting()) {\n pointerUtils.copyCoords(this.coords.start, this.coords.cur)\n pointerUtils.copyCoords(this.coords.prev, this.coords.cur)\n\n this.downEvent = event\n this.pointerWasMoved = false\n }\n }\n\n this._updateLatestPointer(pointer, event, eventTarget)\n\n this._scopeFire('interactions:update-pointer', {\n pointer,\n event,\n eventTarget,\n down,\n pointerInfo,\n pointerIndex,\n interaction: (this as unknown) as Interaction,\n })\n\n return pointerIndex\n }\n\n removePointer (pointer: PointerType, event: PointerEventType) {\n const pointerIndex = this.getPointerIndex(pointer)\n\n if (pointerIndex === -1) return\n\n const pointerInfo = this.pointers[pointerIndex]\n\n this._scopeFire('interactions:remove-pointer', {\n pointer,\n event,\n eventTarget: null,\n pointerIndex,\n pointerInfo,\n interaction: (this as unknown) as Interaction,\n })\n\n this.pointers.splice(pointerIndex, 1)\n this.pointerIsDown = false\n }\n\n _updateLatestPointer (pointer: PointerType, event: PointerEventType, eventTarget: Node) {\n this._latestPointer.pointer = pointer\n this._latestPointer.event = event\n this._latestPointer.eventTarget = eventTarget\n }\n\n destroy () {\n this._latestPointer.pointer = null\n this._latestPointer.event = null\n this._latestPointer.eventTarget = null\n }\n\n _createPreparedEvent

(\n event: PointerEventType,\n phase: P,\n preEnd?: boolean,\n type?: string,\n ) {\n return new InteractEvent(this, event, this.prepared.name, phase, this.element, preEnd, type)\n }\n\n _fireEvent

(iEvent: InteractEvent) {\n this.interactable.fire(iEvent)\n\n if (!this.prevEvent || iEvent.timeStamp >= this.prevEvent.timeStamp) {\n this.prevEvent = iEvent\n }\n }\n\n _doPhase

(\n signalArg: Omit, 'iEvent'> & { iEvent?: InteractEvent },\n ) {\n const { event, phase, preEnd, type } = signalArg\n const { rect } = this\n\n if (rect && phase === 'move') {\n // update the rect changes due to pointer move\n rectUtils.addEdges(this.edges, rect, this.coords.delta[this.interactable.options.deltaSource])\n\n rect.width = rect.right - rect.left\n rect.height = rect.bottom - rect.top\n }\n\n const beforeResult = this._scopeFire(`interactions:before-action-${phase}` as any, signalArg)\n\n if (beforeResult === false) {\n return false\n }\n\n const iEvent = (signalArg.iEvent = this._createPreparedEvent(event, phase, preEnd, type))\n\n this._scopeFire(`interactions:action-${phase}` as any, signalArg)\n\n if (phase === 'start') {\n this.prevEvent = iEvent\n }\n\n this._fireEvent(iEvent)\n\n this._scopeFire(`interactions:after-action-${phase}` as any, signalArg)\n\n return true\n }\n\n _now () {\n return Date.now()\n }\n}\n\nexport default Interaction\nexport { PointerInfo }\n","import type Interaction from '@interactjs/core/Interaction'\nimport { _ProxyMethods } from '@interactjs/core/Interaction'\nimport type { Plugin } from '@interactjs/core/scope'\nimport type { Point } from '@interactjs/types/index'\nimport * as rectUtils from '@interactjs/utils/rect'\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n offsetBy?: typeof offsetBy\n offset: {\n total: Point\n pending: Point\n }\n }\n\n enum _ProxyMethods {\n offsetBy = '',\n }\n}\n\n;(_ProxyMethods as any).offsetBy = ''\n\nexport function addTotal (interaction: Interaction) {\n if (!interaction.pointerIsDown) {\n return\n }\n\n addToCoords(interaction.coords.cur, interaction.offset.total)\n\n interaction.offset.pending.x = 0\n interaction.offset.pending.y = 0\n}\n\nfunction beforeAction ({ interaction }: { interaction: Interaction }) {\n applyPending(interaction)\n}\n\nfunction beforeEnd ({ interaction }: { interaction: Interaction }): boolean | void {\n const hadPending = applyPending(interaction)\n\n if (!hadPending) return\n\n interaction.move({ offset: true })\n interaction.end()\n\n return false\n}\n\nfunction end ({ interaction }: { interaction: Interaction }) {\n interaction.offset.total.x = 0\n interaction.offset.total.y = 0\n interaction.offset.pending.x = 0\n interaction.offset.pending.y = 0\n}\n\nexport function applyPending (interaction: Interaction) {\n if (!hasPending(interaction)) {\n return false\n }\n\n const { pending } = interaction.offset\n\n addToCoords(interaction.coords.cur, pending)\n addToCoords(interaction.coords.delta, pending)\n rectUtils.addEdges(interaction.edges, interaction.rect, pending)\n\n pending.x = 0\n pending.y = 0\n\n return true\n}\n\nfunction offsetBy (this: Interaction, { x, y }: Point) {\n this.offset.pending.x += x\n this.offset.pending.y += y\n\n this.offset.total.x += x\n this.offset.total.y += y\n}\n\nfunction addToCoords ({ page, client }, { x, y }: Point) {\n page.x += x\n page.y += y\n client.x += x\n client.y += y\n}\n\nfunction hasPending (interaction: Interaction) {\n return !!(interaction.offset.pending.x || interaction.offset.pending.y)\n}\n\nconst offset: Plugin = {\n id: 'offset',\n before: ['modifiers', 'pointer-events', 'actions', 'inertia'],\n install (scope) {\n scope.Interaction.prototype.offsetBy = offsetBy\n },\n listeners: {\n 'interactions:new': ({ interaction }) => {\n interaction.offset = {\n total: { x: 0, y: 0 },\n pending: { x: 0, y: 0 },\n }\n },\n 'interactions:update-pointer': ({ interaction }) => addTotal(interaction),\n 'interactions:before-action-start': beforeAction,\n 'interactions:before-action-move': beforeAction,\n 'interactions:before-action-end': beforeEnd,\n 'interactions:stop': end,\n },\n}\n\nexport default offset\n","import type { Interaction, DoPhaseArg } from '@interactjs/core/Interaction'\nimport type { ActionName, Scope, SignalArgs, Plugin } from '@interactjs/core/scope'\nimport Modification from '@interactjs/modifiers/Modification'\nimport * as modifiers from '@interactjs/modifiers/base'\nimport offset from '@interactjs/offset/plugin'\nimport type { Point, PointerEventType } from '@interactjs/types/index'\nimport * as dom from '@interactjs/utils/domUtils'\nimport hypot from '@interactjs/utils/hypot'\nimport is from '@interactjs/utils/is'\nimport { copyCoords } from '@interactjs/utils/pointerUtils'\nimport raf from '@interactjs/utils/raf'\n\ndeclare module '@interactjs/core/InteractEvent' {\n interface PhaseMap {\n resume?: true\n inertiastart?: true\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n inertia?: InertiaState\n }\n}\n\ndeclare module '@interactjs/core/options' {\n interface PerActionDefaults {\n inertia?: {\n enabled?: boolean\n resistance?: number // the lambda in exponential decay\n minSpeed?: number // target speed must be above this for inertia to start\n endSpeed?: number // the speed at which inertia is slow enough to stop\n allowResume?: true // allow resuming an action in inertia phase\n smoothEndDuration?: number // animate to snap/restrict endOnly if there's no inertia\n }\n }\n}\n\ndeclare module '@interactjs/core/scope' {\n interface SignalArgs {\n 'interactions:before-action-inertiastart': Omit, 'iEvent'>\n 'interactions:action-inertiastart': DoPhaseArg\n 'interactions:after-action-inertiastart': DoPhaseArg\n 'interactions:before-action-resume': Omit, 'iEvent'>\n 'interactions:action-resume': DoPhaseArg\n 'interactions:after-action-resume': DoPhaseArg\n }\n}\n\nfunction install (scope: Scope) {\n const { defaults } = scope\n\n scope.usePlugin(offset)\n scope.usePlugin(modifiers.default)\n scope.actions.phases.inertiastart = true\n scope.actions.phases.resume = true\n\n defaults.perAction.inertia = {\n enabled: false,\n resistance: 10, // the lambda in exponential decay\n minSpeed: 100, // target speed must be above this for inertia to start\n endSpeed: 10, // the speed at which inertia is slow enough to stop\n allowResume: true, // allow resuming an action in inertia phase\n smoothEndDuration: 300, // animate to snap/restrict endOnly if there's no inertia\n }\n}\n\nexport class InertiaState {\n active = false\n isModified = false\n smoothEnd = false\n allowResume = false\n\n modification!: Modification\n modifierCount = 0\n modifierArg!: modifiers.ModifierArg\n\n startCoords!: Point\n t0 = 0\n v0 = 0\n\n te = 0\n targetOffset!: Point\n modifiedOffset!: Point\n currentOffset!: Point\n\n lambda_v0? = 0 // eslint-disable-line camelcase\n one_ve_v0? = 0 // eslint-disable-line camelcase\n timeout!: number\n readonly interaction: Interaction\n\n constructor (interaction: Interaction) {\n this.interaction = interaction\n }\n\n start (event: PointerEventType) {\n const { interaction } = this\n const options = getOptions(interaction)\n\n if (!options || !options.enabled) {\n return false\n }\n\n const { client: velocityClient } = interaction.coords.velocity\n const pointerSpeed = hypot(velocityClient.x, velocityClient.y)\n const modification = this.modification || (this.modification = new Modification(interaction))\n\n modification.copyFrom(interaction.modification)\n\n this.t0 = interaction._now()\n this.allowResume = options.allowResume\n this.v0 = pointerSpeed\n this.currentOffset = { x: 0, y: 0 }\n this.startCoords = interaction.coords.cur.page\n\n this.modifierArg = modification.fillArg({\n pageCoords: this.startCoords,\n preEnd: true,\n phase: 'inertiastart',\n })\n\n const thrown =\n this.t0 - interaction.coords.cur.timeStamp < 50 &&\n pointerSpeed > options.minSpeed &&\n pointerSpeed > options.endSpeed\n\n if (thrown) {\n this.startInertia()\n } else {\n modification.result = modification.setAll(this.modifierArg)\n\n if (!modification.result.changed) {\n return false\n }\n\n this.startSmoothEnd()\n }\n\n // force modification change\n interaction.modification.result.rect = null\n\n // bring inertiastart event to the target coords\n interaction.offsetBy(this.targetOffset)\n interaction._doPhase({\n interaction,\n event,\n phase: 'inertiastart',\n })\n interaction.offsetBy({ x: -this.targetOffset.x, y: -this.targetOffset.y })\n // force modification change\n interaction.modification.result.rect = null\n\n this.active = true\n interaction.simulation = this\n\n return true\n }\n\n startInertia () {\n const startVelocity = this.interaction.coords.velocity.client\n const options = getOptions(this.interaction)\n const lambda = options.resistance\n const inertiaDur = -Math.log(options.endSpeed / this.v0) / lambda\n\n this.targetOffset = {\n x: (startVelocity.x - inertiaDur) / lambda,\n y: (startVelocity.y - inertiaDur) / lambda,\n }\n\n this.te = inertiaDur\n this.lambda_v0 = lambda / this.v0\n this.one_ve_v0 = 1 - options.endSpeed / this.v0\n\n const { modification, modifierArg } = this\n\n modifierArg.pageCoords = {\n x: this.startCoords.x + this.targetOffset.x,\n y: this.startCoords.y + this.targetOffset.y,\n }\n\n modification.result = modification.setAll(modifierArg)\n\n if (modification.result.changed) {\n this.isModified = true\n this.modifiedOffset = {\n x: this.targetOffset.x + modification.result.delta.x,\n y: this.targetOffset.y + modification.result.delta.y,\n }\n }\n\n this.onNextFrame(() => this.inertiaTick())\n }\n\n startSmoothEnd () {\n this.smoothEnd = true\n this.isModified = true\n this.targetOffset = {\n x: this.modification.result.delta.x,\n y: this.modification.result.delta.y,\n }\n\n this.onNextFrame(() => this.smoothEndTick())\n }\n\n onNextFrame (tickFn: () => void) {\n this.timeout = raf.request(() => {\n if (this.active) {\n tickFn()\n }\n })\n }\n\n inertiaTick () {\n const { interaction } = this\n const options = getOptions(interaction)\n const lambda = options.resistance\n const t = (interaction._now() - this.t0) / 1000\n\n if (t < this.te) {\n const progress = 1 - (Math.exp(-lambda * t) - this.lambda_v0) / this.one_ve_v0\n let newOffset: Point\n\n if (this.isModified) {\n newOffset = getQuadraticCurvePoint(\n 0,\n 0,\n this.targetOffset.x,\n this.targetOffset.y,\n this.modifiedOffset.x,\n this.modifiedOffset.y,\n progress,\n )\n } else {\n newOffset = {\n x: this.targetOffset.x * progress,\n y: this.targetOffset.y * progress,\n }\n }\n\n const delta = { x: newOffset.x - this.currentOffset.x, y: newOffset.y - this.currentOffset.y }\n\n this.currentOffset.x += delta.x\n this.currentOffset.y += delta.y\n\n interaction.offsetBy(delta)\n interaction.move()\n\n this.onNextFrame(() => this.inertiaTick())\n } else {\n interaction.offsetBy({\n x: this.modifiedOffset.x - this.currentOffset.x,\n y: this.modifiedOffset.y - this.currentOffset.y,\n })\n\n this.end()\n }\n }\n\n smoothEndTick () {\n const { interaction } = this\n const t = interaction._now() - this.t0\n const { smoothEndDuration: duration } = getOptions(interaction)\n\n if (t < duration) {\n const newOffset = {\n x: easeOutQuad(t, 0, this.targetOffset.x, duration),\n y: easeOutQuad(t, 0, this.targetOffset.y, duration),\n }\n const delta = {\n x: newOffset.x - this.currentOffset.x,\n y: newOffset.y - this.currentOffset.y,\n }\n\n this.currentOffset.x += delta.x\n this.currentOffset.y += delta.y\n\n interaction.offsetBy(delta)\n interaction.move({ skipModifiers: this.modifierCount })\n\n this.onNextFrame(() => this.smoothEndTick())\n } else {\n interaction.offsetBy({\n x: this.targetOffset.x - this.currentOffset.x,\n y: this.targetOffset.y - this.currentOffset.y,\n })\n\n this.end()\n }\n }\n\n resume ({ pointer, event, eventTarget }: SignalArgs['interactions:down']) {\n const { interaction } = this\n\n // undo inertia changes to interaction coords\n interaction.offsetBy({\n x: -this.currentOffset.x,\n y: -this.currentOffset.y,\n })\n\n // update pointer at pointer down position\n interaction.updatePointer(pointer, event, eventTarget, true)\n\n // fire resume signals and event\n interaction._doPhase({\n interaction,\n event,\n phase: 'resume',\n })\n copyCoords(interaction.coords.prev, interaction.coords.cur)\n\n this.stop()\n }\n\n end () {\n this.interaction.move()\n this.interaction.end()\n this.stop()\n }\n\n stop () {\n this.active = this.smoothEnd = false\n this.interaction.simulation = null\n raf.cancel(this.timeout)\n }\n}\n\nfunction start ({ interaction, event }: DoPhaseArg) {\n if (!interaction._interacting || interaction.simulation) {\n return null\n }\n\n const started = interaction.inertia.start(event)\n\n // prevent action end if inertia or smoothEnd\n return started ? false : null\n}\n\n// Check if the down event hits the current inertia target\n// control should be return to the user\nfunction resume (arg: SignalArgs['interactions:down']) {\n const { interaction, eventTarget } = arg\n const state = interaction.inertia\n\n if (!state.active) return\n\n let element = eventTarget as Node\n\n // climb up the DOM tree from the event target\n while (is.element(element)) {\n // if interaction element is the current inertia target element\n if (element === interaction.element) {\n state.resume(arg)\n break\n }\n\n element = dom.parentNode(element)\n }\n}\n\nfunction stop ({ interaction }: { interaction: Interaction }) {\n const state = interaction.inertia\n\n if (state.active) {\n state.stop()\n }\n}\n\nfunction getOptions ({ interactable, prepared }: Interaction) {\n return interactable && interactable.options && prepared.name && interactable.options[prepared.name].inertia\n}\n\nconst inertia: Plugin = {\n id: 'inertia',\n before: ['modifiers', 'actions'],\n install,\n listeners: {\n 'interactions:new': ({ interaction }) => {\n interaction.inertia = new InertiaState(interaction)\n },\n\n 'interactions:before-action-end': start,\n 'interactions:down': resume,\n 'interactions:stop': stop,\n\n 'interactions:before-action-resume': (arg) => {\n const { modification } = arg.interaction\n\n modification.stop(arg)\n modification.start(arg, arg.interaction.coords.cur.page)\n modification.applyToInteraction(arg)\n },\n\n 'interactions:before-action-inertiastart': (arg) => arg.interaction.modification.setAndApply(arg),\n 'interactions:action-resume': modifiers.addEventModifiers,\n 'interactions:action-inertiastart': modifiers.addEventModifiers,\n 'interactions:after-action-inertiastart': (arg) =>\n arg.interaction.modification.restoreInteractionCoords(arg),\n 'interactions:after-action-resume': (arg) => arg.interaction.modification.restoreInteractionCoords(arg),\n },\n}\n\n// http://stackoverflow.com/a/5634528/2280888\nfunction _getQBezierValue (t: number, p1: number, p2: number, p3: number) {\n const iT = 1 - t\n return iT * iT * p1 + 2 * iT * t * p2 + t * t * p3\n}\n\nfunction getQuadraticCurvePoint (\n startX: number,\n startY: number,\n cpX: number,\n cpY: number,\n endX: number,\n endY: number,\n position: number,\n) {\n return {\n x: _getQBezierValue(position, startX, cpX, endX),\n y: _getQBezierValue(position, startY, cpY, endY),\n }\n}\n\n// http://gizma.com/easing/\nfunction easeOutQuad (t: number, b: number, c: number, d: number) {\n t /= d\n return -c * t * (t - 2) + b\n}\n\nexport default inertia\n","import type { Listener, ListenersArg, Rect } from '@interactjs/types/index'\nimport * as arr from '@interactjs/utils/arr'\nimport extend from '@interactjs/utils/extend'\nimport type { NormalizedListeners } from '@interactjs/utils/normalizeListeners'\nimport normalize from '@interactjs/utils/normalizeListeners'\n\nfunction fireUntilImmediateStopped (event: any, listeners: Listener[]) {\n for (const listener of listeners) {\n if (event.immediatePropagationStopped) {\n break\n }\n\n listener(event)\n }\n}\n\nexport class Eventable {\n options: any\n types: NormalizedListeners = {}\n propagationStopped = false\n immediatePropagationStopped = false\n global: any\n\n constructor (options?: { [index: string]: any }) {\n this.options = extend({}, options || {})\n }\n\n fire (event: T) {\n let listeners: Listener[]\n const global = this.global\n\n // Interactable#on() listeners\n // tslint:disable no-conditional-assignment\n if ((listeners = this.types[event.type])) {\n fireUntilImmediateStopped(event, listeners)\n }\n\n // interact.on() listeners\n if (!event.propagationStopped && global && (listeners = global[event.type])) {\n fireUntilImmediateStopped(event, listeners)\n }\n }\n\n on (type: string, listener: ListenersArg) {\n const listeners = normalize(type, listener)\n\n for (type in listeners) {\n this.types[type] = arr.merge(this.types[type] || [], listeners[type])\n }\n }\n\n off (type: string, listener: ListenersArg) {\n const listeners = normalize(type, listener)\n\n for (type in listeners) {\n const eventList = this.types[type]\n\n if (!eventList || !eventList.length) {\n continue\n }\n\n for (const subListener of listeners[type]) {\n const index = eventList.indexOf(subListener)\n\n if (index !== -1) {\n eventList.splice(index, 1)\n }\n }\n }\n }\n\n getRect (_element: Element): Rect {\n return null\n }\n}\n","import type { Actions } from '@interactjs/core/scope'\n\nexport default function isNonNativeEvent (type: string, actions: Actions) {\n if (actions.phaselessTypes[type]) {\n return true\n }\n\n for (const name in actions.map) {\n if (type.indexOf(name) === 0 && type.substr(name.length) in actions.phases) {\n return true\n }\n }\n\n return false\n}\n","/** @module interact */\nimport type { Scope, Plugin } from '@interactjs/core/scope'\nimport type { Context, EventTypes, Listener, ListenersArg, Target, Element } from '@interactjs/types/index'\nimport browser from '@interactjs/utils/browser'\nimport * as domUtils from '@interactjs/utils/domUtils'\nimport is from '@interactjs/utils/is'\nimport { warnOnce } from '@interactjs/utils/misc'\nimport * as pointerUtils from '@interactjs/utils/pointerUtils'\n\nimport type { Interactable } from './Interactable'\nimport isNonNativeEvent from './isNonNativeEvent'\nimport type { Options } from './options'\n\ndeclare module '@interactjs/core/InteractStatic' {\n export interface InteractStatic {\n (target: Target, options?: Options): Interactable\n getPointerAverage: typeof pointerUtils.pointerAverage\n getTouchBBox: typeof pointerUtils.touchBBox\n getTouchDistance: typeof pointerUtils.touchDistance\n getTouchAngle: typeof pointerUtils.touchAngle\n getElementRect: typeof domUtils.getElementRect\n getElementClientRect: typeof domUtils.getElementClientRect\n matchesSelector: typeof domUtils.matchesSelector\n closest: typeof domUtils.closest\n /** @internal */ globalEvents: any\n version: string\n /** @internal */ scope: Scope\n use(\n plugin: Plugin,\n options?: {\n [key: string]: any\n },\n ): any\n isSet(target: Element, options?: any): boolean\n on(type: string | EventTypes, listener: ListenersArg, options?: object): any\n off(type: EventTypes, listener: any, options?: object): any\n debug(): any\n supportsTouch(): boolean\n supportsPointerEvent(): boolean\n stop(): any\n pointerMoveTolerance(newValue?: number): any\n addDocument(doc: Document, options?: object): void\n removeDocument(doc: Document): void\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\ntype _InteractStatic = import('@interactjs/core/InteractStatic').InteractStatic\n\nexport function createInteractStatic (scope: Scope): _InteractStatic {\n /**\n * ```js\n * interact('#draggable').draggable(true)\n *\n * var rectables = interact('rect')\n * rectables\n * .gesturable(true)\n * .on('gesturemove', function (event) {\n * // ...\n * })\n * ```\n *\n * The methods of this variable can be used to set elements as interactables\n * and also to change various default settings.\n *\n * Calling it as a function and passing an element or a valid CSS selector\n * string returns an Interactable object which has various methods to configure\n * it.\n *\n * @global\n *\n * @param {Element | string} target The HTML or SVG Element to interact with\n * or CSS selector\n * @return {Interactable}\n */\n const interact = ((target: Target, options: Options) => {\n let interactable = scope.interactables.get(target, options)\n\n if (!interactable) {\n interactable = scope.interactables.new(target, options)\n interactable.events.global = interact.globalEvents\n }\n\n return interactable\n }) as _InteractStatic\n\n // expose the functions used to calculate multi-touch properties\n interact.getPointerAverage = pointerUtils.pointerAverage\n interact.getTouchBBox = pointerUtils.touchBBox\n interact.getTouchDistance = pointerUtils.touchDistance\n interact.getTouchAngle = pointerUtils.touchAngle\n\n interact.getElementRect = domUtils.getElementRect\n interact.getElementClientRect = domUtils.getElementClientRect\n interact.matchesSelector = domUtils.matchesSelector\n interact.closest = domUtils.closest\n\n interact.globalEvents = {} as any\n\n // eslint-disable-next-line no-undef\n interact.version = process.env.npm_package_version\n interact.scope = scope\n /**\n * Use a plugin\n *\n * @alias module:interact.use\n *\n */\n interact.use = function (plugin, options) {\n this.scope.usePlugin(plugin, options)\n\n return this\n }\n\n /**\n * Check if an element or selector has been set with the {@link interact}\n * function\n *\n * @alias module:interact.isSet\n *\n * @param {Target} target The Element or string being searched for\n * @param {object} options\n * @return {boolean} Indicates if the element or CSS selector was previously\n * passed to interact\n */\n interact.isSet = function (target: Target, options?: { context?: Context }): boolean {\n return !!this.scope.interactables.get(target, options && options.context)\n }\n\n /**\n * @deprecated\n * Add a global listener for an InteractEvent or adds a DOM event to `document`\n *\n * @alias module:interact.on\n *\n * @param {string | array | object} type The types of events to listen for\n * @param {function} listener The function event (s)\n * @param {object | boolean} [options] object or useCapture flag for\n * addEventListener\n * @return {object} interact\n */\n interact.on = warnOnce(function on (type: string | EventTypes, listener: ListenersArg, options?: object) {\n if (is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/)\n }\n\n if (is.array(type)) {\n for (const eventType of type as any[]) {\n this.on(eventType, listener, options)\n }\n\n return this\n }\n\n if (is.object(type)) {\n for (const prop in type) {\n this.on(prop, (type as any)[prop], listener)\n }\n\n return this\n }\n\n // if it is an InteractEvent type, add listener to globalEvents\n if (isNonNativeEvent(type, this.scope.actions)) {\n // if this type of event was never bound\n if (!this.globalEvents[type]) {\n this.globalEvents[type] = [listener]\n } else {\n this.globalEvents[type].push(listener)\n }\n }\n // If non InteractEvent type, addEventListener to document\n else {\n this.scope.events.add(this.scope.document, type, listener as Listener, { options })\n }\n\n return this\n }, 'The interact.on() method is being deprecated')\n\n /**\n * @deprecated\n * Removes a global InteractEvent listener or DOM event from `document`\n *\n * @alias module:interact.off\n *\n * @param {string | array | object} type The types of events that were listened\n * for\n * @param {function} listener The listener function to be removed\n * @param {object | boolean} options [options] object or useCapture flag for\n * removeEventListener\n * @return {object} interact\n */\n interact.off = warnOnce(function off (type: EventTypes, listener: any, options?: object) {\n if (is.string(type) && type.search(' ') !== -1) {\n type = type.trim().split(/ +/)\n }\n\n if (is.array(type)) {\n for (const eventType of type) {\n this.off(eventType, listener, options)\n }\n\n return this\n }\n\n if (is.object(type)) {\n for (const prop in type) {\n this.off(prop, type[prop], listener)\n }\n\n return this\n }\n\n if (isNonNativeEvent(type, this.scope.actions)) {\n let index: number\n\n if (type in this.globalEvents && (index = this.globalEvents[type].indexOf(listener)) !== -1) {\n this.globalEvents[type].splice(index, 1)\n }\n } else {\n this.scope.events.remove(this.scope.document, type, listener, options)\n }\n\n return this\n }, 'The interact.off() method is being deprecated')\n\n interact.debug = function () {\n return this.scope\n }\n\n /**\n * @alias module:interact.supportsTouch\n *\n * @return {boolean} Whether or not the browser supports touch input\n */\n interact.supportsTouch = function () {\n return browser.supportsTouch\n }\n\n /**\n * @alias module:interact.supportsPointerEvent\n *\n * @return {boolean} Whether or not the browser supports PointerEvents\n */\n interact.supportsPointerEvent = function () {\n return browser.supportsPointerEvent\n }\n\n /**\n * Cancels all interactions (end events are not fired)\n *\n * @alias module:interact.stop\n *\n * @return {object} interact\n */\n interact.stop = function () {\n for (const interaction of this.scope.interactions.list) {\n interaction.stop()\n }\n\n return this\n }\n\n /**\n * Returns or sets the distance the pointer must be moved before an action\n * sequence occurs. This also affects tolerance for tap events.\n *\n * @alias module:interact.pointerMoveTolerance\n *\n * @param {number} [newValue] The movement from the start position must be greater than this value\n * @return {interact | number}\n */\n interact.pointerMoveTolerance = function (newValue?: number) {\n if (is.number(newValue)) {\n this.scope.interactions.pointerMoveTolerance = newValue\n\n return this\n }\n\n return this.scope.interactions.pointerMoveTolerance\n }\n\n interact.addDocument = function (doc: Document, options?: object) {\n this.scope.addDocument(doc, options)\n }\n\n interact.removeDocument = function (doc: Document) {\n this.scope.removeDocument(doc)\n }\n\n return interact\n}\n","/* eslint-disable no-dupe-class-members */\nimport type { ActionMap, ActionName, Actions, Scope } from '@interactjs/core/scope'\nimport type {\n Context,\n Element,\n Target,\n Listeners,\n OrBoolean,\n EventTypes,\n ListenersArg,\n ActionMethod,\n} from '@interactjs/types/index'\nimport * as arr from '@interactjs/utils/arr'\nimport browser from '@interactjs/utils/browser'\nimport clone from '@interactjs/utils/clone'\nimport { getElementRect, matchesUpTo, nodeContains, trySelector } from '@interactjs/utils/domUtils'\nimport extend from '@interactjs/utils/extend'\nimport is from '@interactjs/utils/is'\nimport normalizeListeners from '@interactjs/utils/normalizeListeners'\nimport { getWindow } from '@interactjs/utils/window'\n\nimport { Eventable } from './Eventable'\nimport isNonNativeEvent from './isNonNativeEvent'\nimport type { ActionDefaults, Defaults, OptionsArg, PerActionDefaults } from './options'\nimport { Options } from './options'\n\ntype IgnoreValue = string | Element | boolean\ntype DeltaSource = 'page' | 'client'\n\n/** */\nexport class Interactable implements Partial {\n /** @internal */ get _defaults (): Defaults {\n return {\n base: {},\n perAction: {},\n actions: {} as ActionDefaults,\n }\n }\n\n readonly options!: Required\n readonly _actions: Actions\n readonly target: Target\n readonly events = new Eventable()\n readonly _context: Context\n readonly _win: Window\n readonly _doc: Document\n readonly _scopeEvents: Scope['events']\n\n /** @internal */ _rectChecker?: typeof Interactable.prototype.getRect\n\n /** */\n constructor (\n target: Target,\n options: any,\n defaultContext: Document | Element,\n scopeEvents: Scope['events'],\n ) {\n this._actions = options.actions\n this.target = target\n this._context = options.context || defaultContext\n this._win = getWindow(trySelector(target) ? this._context : target)\n this._doc = this._win.document\n this._scopeEvents = scopeEvents\n\n this.set(options)\n }\n\n setOnEvents (actionName: ActionName, phases: NonNullable) {\n if (is.func(phases.onstart)) {\n this.on(`${actionName}start`, phases.onstart)\n }\n if (is.func(phases.onmove)) {\n this.on(`${actionName}move`, phases.onmove)\n }\n if (is.func(phases.onend)) {\n this.on(`${actionName}end`, phases.onend)\n }\n if (is.func(phases.oninertiastart)) {\n this.on(`${actionName}inertiastart`, phases.oninertiastart)\n }\n\n return this\n }\n\n updatePerActionListeners (actionName: ActionName, prev: Listeners, cur: Listeners) {\n if (is.array(prev) || is.object(prev)) {\n this.off(actionName, prev)\n }\n\n if (is.array(cur) || is.object(cur)) {\n this.on(actionName, cur)\n }\n }\n\n setPerAction (actionName: ActionName, options: OrBoolean) {\n const defaults = this._defaults\n\n // for all the default per-action options\n for (const optionName_ in options) {\n const optionName = optionName_ as keyof PerActionDefaults\n const actionOptions = this.options[actionName]\n const optionValue: any = options[optionName]\n\n // remove old event listeners and add new ones\n if (optionName === 'listeners') {\n this.updatePerActionListeners(actionName, actionOptions.listeners, optionValue as Listeners)\n }\n\n // if the option value is an array\n if (is.array(optionValue)) {\n ;(actionOptions[optionName] as any) = arr.from(optionValue)\n }\n // if the option value is an object\n else if (is.plainObject(optionValue)) {\n // copy the object\n ;(actionOptions[optionName] as any) = extend(\n actionOptions[optionName] || ({} as any),\n clone(optionValue),\n )\n\n // set anabled field to true if it exists in the defaults\n if (\n is.object(defaults.perAction[optionName]) &&\n 'enabled' in (defaults.perAction[optionName] as any)\n ) {\n ;(actionOptions[optionName] as any).enabled = optionValue.enabled !== false\n }\n }\n // if the option value is a boolean and the default is an object\n else if (is.bool(optionValue) && is.object(defaults.perAction[optionName])) {\n ;(actionOptions[optionName] as any).enabled = optionValue\n }\n // if it's anything else, do a plain assignment\n else {\n ;(actionOptions[optionName] as any) = optionValue\n }\n }\n }\n\n /**\n * The default function to get an Interactables bounding rect. Can be\n * overridden using {@link Interactable.rectChecker}.\n *\n * @param {Element} [element] The element to measure.\n * @return {Rect} The object's bounding rectangle.\n */\n getRect (element: Element) {\n element = element || (is.element(this.target) ? this.target : null)\n\n if (is.string(this.target)) {\n element = element || this._context.querySelector(this.target)\n }\n\n return getElementRect(element)\n }\n\n /**\n * Returns or sets the function used to calculate the interactable's\n * element's rectangle\n *\n * @param {function} [checker] A function which returns this Interactable's\n * bounding rectangle. See {@link Interactable.getRect}\n * @return {function | object} The checker function or this Interactable\n */\n rectChecker(): (element: Element) => any | null\n rectChecker(checker: (element: Element) => any): this\n rectChecker (checker?: (element: Element) => any) {\n if (is.func(checker)) {\n this._rectChecker = checker\n\n this.getRect = (element) => {\n const rect = extend({}, this._rectChecker(element))\n\n if (!(('width' in rect) as unknown)) {\n rect.width = rect.right - rect.left\n rect.height = rect.bottom - rect.top\n }\n\n return rect\n }\n\n return this\n }\n\n if (checker === null) {\n delete this.getRect\n delete this._rectChecker\n\n return this\n }\n\n return this.getRect\n }\n\n _backCompatOption (optionName: keyof Options, newValue: any) {\n if (trySelector(newValue) || is.object(newValue)) {\n ;(this.options[optionName] as any) = newValue\n\n for (const action in this._actions.map) {\n ;(this.options[action as keyof ActionMap] as any)[optionName] = newValue\n }\n\n return this\n }\n\n return this.options[optionName]\n }\n\n /**\n * Gets or sets the origin of the Interactable's element. The x and y\n * of the origin will be subtracted from action event coordinates.\n *\n * @param {Element | object | string} [origin] An HTML or SVG Element whose\n * rect will be used, an object eg. { x: 0, y: 0 } or string 'parent', 'self'\n * or any CSS selector\n *\n * @return {object} The current origin or this Interactable\n */\n origin (newValue: any) {\n return this._backCompatOption('origin', newValue)\n }\n\n /**\n * Returns or sets the mouse coordinate types used to calculate the\n * movement of the pointer.\n *\n * @param {string} [newValue] Use 'client' if you will be scrolling while\n * interacting; Use 'page' if you want autoScroll to work\n * @return {string | object} The current deltaSource or this Interactable\n */\n deltaSource(): DeltaSource\n deltaSource(newValue: DeltaSource): this\n deltaSource (newValue?: DeltaSource) {\n if (newValue === 'page' || newValue === 'client') {\n this.options.deltaSource = newValue\n\n return this\n }\n\n return this.options.deltaSource\n }\n\n /**\n * Gets the selector context Node of the Interactable. The default is\n * `window.document`.\n *\n * @return {Node} The context Node of this Interactable\n */\n context () {\n return this._context\n }\n\n inContext (element: Document | Node) {\n return this._context === element.ownerDocument || nodeContains(this._context, element)\n }\n\n testIgnoreAllow (\n this: Interactable,\n options: { ignoreFrom?: IgnoreValue, allowFrom?: IgnoreValue },\n targetNode: Node,\n eventTarget: Node,\n ) {\n return (\n !this.testIgnore(options.ignoreFrom, targetNode, eventTarget) &&\n this.testAllow(options.allowFrom, targetNode, eventTarget)\n )\n }\n\n testAllow (this: Interactable, allowFrom: IgnoreValue, targetNode: Node, element: Node) {\n if (!allowFrom) {\n return true\n }\n\n if (!is.element(element)) {\n return false\n }\n\n if (is.string(allowFrom)) {\n return matchesUpTo(element, allowFrom, targetNode)\n } else if (is.element(allowFrom)) {\n return nodeContains(allowFrom, element)\n }\n\n return false\n }\n\n testIgnore (this: Interactable, ignoreFrom: IgnoreValue, targetNode: Node, element: Node) {\n if (!ignoreFrom || !is.element(element)) {\n return false\n }\n\n if (is.string(ignoreFrom)) {\n return matchesUpTo(element, ignoreFrom, targetNode)\n } else if (is.element(ignoreFrom)) {\n return nodeContains(ignoreFrom, element)\n }\n\n return false\n }\n\n /**\n * Calls listeners for the given InteractEvent type bound globally\n * and directly to this Interactable\n *\n * @param {InteractEvent} iEvent The InteractEvent object to be fired on this\n * Interactable\n * @return {Interactable} this Interactable\n */\n fire (iEvent: E) {\n this.events.fire(iEvent)\n\n return this\n }\n\n _onOff (method: 'on' | 'off', typeArg: EventTypes, listenerArg?: ListenersArg | null, options?: any) {\n if (is.object(typeArg) && !is.array(typeArg)) {\n options = listenerArg\n listenerArg = null\n }\n\n const addRemove = method === 'on' ? 'add' : 'remove'\n const listeners = normalizeListeners(typeArg, listenerArg)\n\n for (let type in listeners) {\n if (type === 'wheel') {\n type = browser.wheelEvent\n }\n\n for (const listener of listeners[type]) {\n // if it is an action event type\n if (isNonNativeEvent(type, this._actions)) {\n this.events[method](type, listener)\n }\n // delegated event\n else if (is.string(this.target)) {\n this._scopeEvents[`${addRemove}Delegate` as 'addDelegate' | 'removeDelegate'](\n this.target,\n this._context,\n type,\n listener,\n options,\n )\n }\n // remove listener from this Interactable's element\n else {\n this._scopeEvents[addRemove](this.target, type, listener, options)\n }\n }\n }\n\n return this\n }\n\n /**\n * Binds a listener for an InteractEvent, pointerEvent or DOM event.\n *\n * @param {string | array | object} types The types of events to listen\n * for\n * @param {function | array | object} [listener] The event listener function(s)\n * @param {object | boolean} [options] options object or useCapture flag for\n * addEventListener\n * @return {Interactable} This Interactable\n */\n on (types: EventTypes, listener?: ListenersArg, options?: any) {\n return this._onOff('on', types, listener, options)\n }\n\n /**\n * Removes an InteractEvent, pointerEvent or DOM event listener.\n *\n * @param {string | array | object} types The types of events that were\n * listened for\n * @param {function | array | object} [listener] The event listener function(s)\n * @param {object | boolean} [options] options object or useCapture flag for\n * removeEventListener\n * @return {Interactable} This Interactable\n */\n off (types: string | string[] | EventTypes, listener?: ListenersArg, options?: any) {\n return this._onOff('off', types, listener, options)\n }\n\n /**\n * Reset the options of this Interactable\n *\n * @param {object} options The new settings to apply\n * @return {object} This Interactable\n */\n set (options: OptionsArg) {\n const defaults = this._defaults\n\n if (!is.object(options)) {\n options = {}\n }\n\n ;(this.options as Required) = clone(defaults.base) as Required\n\n for (const actionName_ in this._actions.methodDict) {\n const actionName = actionName_ as ActionName\n const methodName = this._actions.methodDict[actionName]\n\n this.options[actionName] = {}\n this.setPerAction(actionName, extend(extend({}, defaults.perAction), defaults.actions[actionName]))\n ;(this[methodName] as ActionMethod)(options[actionName])\n }\n\n for (const setting in options) {\n if (is.func((this as any)[setting])) {\n ;(this as any)[setting](options[setting as keyof typeof options])\n }\n }\n\n return this\n }\n\n /**\n * Remove this interactable from the list of interactables and remove it's\n * action capabilities and event listeners\n */\n unset () {\n if (is.string(this.target)) {\n // remove delegated events\n for (const type in this._scopeEvents.delegatedEvents) {\n const delegated = this._scopeEvents.delegatedEvents[type]\n\n for (let i = delegated.length - 1; i >= 0; i--) {\n const { selector, context, listeners } = delegated[i]\n\n if (selector === this.target && context === this._context) {\n delegated.splice(i, 1)\n }\n\n for (let l = listeners.length - 1; l >= 0; l--) {\n this._scopeEvents.removeDelegate(\n this.target,\n this._context,\n type,\n listeners[l][0],\n listeners[l][1],\n )\n }\n }\n }\n } else {\n this._scopeEvents.remove(this.target as Node, 'all')\n }\n }\n}\n","import type { Interactable } from '@interactjs/core/Interactable'\nimport type { OptionsArg, Options } from '@interactjs/core/options'\nimport type { Scope } from '@interactjs/core/scope'\nimport type { Target, Context } from '@interactjs/types/index'\nimport * as arr from '@interactjs/utils/arr'\nimport * as domUtils from '@interactjs/utils/domUtils'\nimport extend from '@interactjs/utils/extend'\nimport is from '@interactjs/utils/is'\n\ndeclare module '@interactjs/core/scope' {\n interface SignalArgs {\n 'interactable:new': {\n interactable: Interactable\n target: Target\n options: OptionsArg\n win: Window\n }\n }\n}\n\ninterface InteractableScopeProp {\n context: Context\n interactable: Interactable\n}\n\nexport class InteractableSet {\n // all set interactables\n list: Interactable[] = []\n\n selectorMap: {\n [selector: string]: InteractableScopeProp[]\n } = {}\n\n scope: Scope\n\n constructor (scope: Scope) {\n this.scope = scope\n scope.addListeners({\n 'interactable:unset': ({ interactable }) => {\n const { target, _context: context } = interactable\n const targetMappings: InteractableScopeProp[] = is.string(target)\n ? this.selectorMap[target]\n : (target as any)[this.scope.id]\n\n const targetIndex = arr.findIndex(targetMappings, (m) => m.context === context)\n if (targetMappings[targetIndex]) {\n // Destroying mappingInfo's context and interactable\n targetMappings[targetIndex].context = null\n targetMappings[targetIndex].interactable = null\n }\n targetMappings.splice(targetIndex, 1)\n },\n })\n }\n\n new (target: Target, options?: any): Interactable {\n options = extend(options || {}, {\n actions: this.scope.actions,\n })\n const interactable = new this.scope.Interactable(target, options, this.scope.document, this.scope.events)\n const mappingInfo = { context: interactable._context, interactable }\n\n this.scope.addDocument(interactable._doc)\n this.list.push(interactable)\n\n if (is.string(target)) {\n if (!this.selectorMap[target]) {\n this.selectorMap[target] = []\n }\n this.selectorMap[target].push(mappingInfo)\n } else {\n if (!(interactable.target as any)[this.scope.id]) {\n Object.defineProperty(target, this.scope.id, {\n value: [],\n configurable: true,\n })\n }\n\n ;(target as any)[this.scope.id].push(mappingInfo)\n }\n\n this.scope.fire('interactable:new', {\n target,\n options,\n interactable,\n win: this.scope._win,\n })\n\n return interactable\n }\n\n get (target: Target, options?: Options) {\n const context = (options && options.context) || this.scope.document\n const isSelector = is.string(target)\n const targetMappings: InteractableScopeProp[] = isSelector\n ? this.selectorMap[target as string]\n : (target as any)[this.scope.id]\n\n if (!targetMappings) {\n return null\n }\n\n const found = arr.find(\n targetMappings,\n (m) => m.context === context && (isSelector || m.interactable.inContext(target as any)),\n )\n\n return found && found.interactable\n }\n\n forEachMatch (node: Node, callback: (interactable: Interactable) => T) {\n for (const interactable of this.list) {\n let ret: void | T\n\n if (\n (is.string(interactable.target)\n ? // target is a selector and the element matches\n is.element(node) && domUtils.matchesSelector(node, interactable.target)\n : // target is the element\n node === interactable.target) &&\n // the element is in context\n interactable.inContext(node)\n ) {\n ret = callback(interactable)\n }\n\n if (ret !== undefined) {\n return ret\n }\n }\n }\n}\n","import type { Scope } from '@interactjs/core/scope'\nimport type { Element } from '@interactjs/types/index'\nimport * as arr from '@interactjs/utils/arr'\nimport * as domUtils from '@interactjs/utils/domUtils'\nimport extend from '@interactjs/utils/extend'\nimport is from '@interactjs/utils/is'\nimport pExtend from '@interactjs/utils/pointerExtend'\nimport * as pointerUtils from '@interactjs/utils/pointerUtils'\n\ndeclare module '@interactjs/core/scope' {\n interface Scope {\n events: ReturnType\n }\n}\n\ntype Listener = (event: Event | FakeEvent) => any\n\nfunction install (scope: Scope) {\n const targets: Array<{\n eventTarget: EventTarget\n events: { [type: string]: Listener[] }\n }> = []\n\n const delegatedEvents: {\n [type: string]: Array<{\n selector: string\n context: Node\n listeners: Array<[Listener, { capture: boolean, passive: boolean }]>\n }>\n } = {}\n const documents: Document[] = []\n\n const eventsMethods = {\n add,\n remove,\n\n addDelegate,\n removeDelegate,\n\n delegateListener,\n delegateUseCapture,\n delegatedEvents,\n documents,\n\n targets,\n\n supportsOptions: false,\n supportsPassive: false,\n }\n\n // check if browser supports passive events and options arg\n scope.document?.createElement('div').addEventListener('test', null, {\n get capture () {\n return (eventsMethods.supportsOptions = true)\n },\n get passive () {\n return (eventsMethods.supportsPassive = true)\n },\n })\n\n scope.events = eventsMethods\n\n function add (eventTarget: EventTarget, type: string, listener: Listener, optionalArg?: boolean | any) {\n const options = getOptions(optionalArg)\n let target = arr.find(targets, (t) => t.eventTarget === eventTarget)\n\n if (!target) {\n target = {\n eventTarget,\n events: {},\n }\n\n targets.push(target)\n }\n\n if (!target.events[type]) {\n target.events[type] = []\n }\n\n if (eventTarget.addEventListener && !arr.contains(target.events[type], listener)) {\n eventTarget.addEventListener(\n type,\n listener as any,\n eventsMethods.supportsOptions ? options : options.capture,\n )\n target.events[type].push(listener)\n }\n }\n\n function remove (\n eventTarget: EventTarget,\n type: string,\n listener?: 'all' | Listener,\n optionalArg?: boolean | any,\n ) {\n const options = getOptions(optionalArg)\n const targetIndex = arr.findIndex(targets, (t) => t.eventTarget === eventTarget)\n const target = targets[targetIndex]\n\n if (!target || !target.events) {\n return\n }\n\n if (type === 'all') {\n for (type in target.events) {\n if (target.events.hasOwnProperty(type)) {\n remove(eventTarget, type, 'all')\n }\n }\n return\n }\n\n let typeIsEmpty = false\n const typeListeners = target.events[type]\n\n if (typeListeners) {\n if (listener === 'all') {\n for (let i = typeListeners.length - 1; i >= 0; i--) {\n remove(eventTarget, type, typeListeners[i], options)\n }\n return\n } else {\n for (let i = 0; i < typeListeners.length; i++) {\n if (typeListeners[i] === listener) {\n eventTarget.removeEventListener(\n type,\n listener as any,\n eventsMethods.supportsOptions ? options : options.capture,\n )\n typeListeners.splice(i, 1)\n\n if (typeListeners.length === 0) {\n delete target.events[type]\n typeIsEmpty = true\n }\n\n break\n }\n }\n }\n }\n\n if (typeIsEmpty && !Object.keys(target.events).length) {\n targets.splice(targetIndex, 1)\n }\n }\n\n function addDelegate (selector: string, context: Node, type: string, listener: Listener, optionalArg?: any) {\n const options = getOptions(optionalArg)\n if (!delegatedEvents[type]) {\n delegatedEvents[type] = []\n\n // add delegate listener functions\n for (const doc of documents) {\n add(doc, type, delegateListener)\n add(doc, type, delegateUseCapture, true)\n }\n }\n\n const delegates = delegatedEvents[type]\n let delegate = arr.find(delegates, (d) => d.selector === selector && d.context === context)\n\n if (!delegate) {\n delegate = { selector, context, listeners: [] }\n delegates.push(delegate)\n }\n\n delegate.listeners.push([listener, options])\n }\n\n function removeDelegate (\n selector: string,\n context: Document | Element,\n type: string,\n listener?: Listener,\n optionalArg?: any,\n ) {\n const options = getOptions(optionalArg)\n const delegates = delegatedEvents[type]\n let matchFound = false\n let index: number\n\n if (!delegates) return\n\n // count from last index of delegated to 0\n for (index = delegates.length - 1; index >= 0; index--) {\n const cur = delegates[index]\n // look for matching selector and context Node\n if (cur.selector === selector && cur.context === context) {\n const { listeners } = cur\n\n // each item of the listeners array is an array: [function, capture, passive]\n for (let i = listeners.length - 1; i >= 0; i--) {\n const [fn, { capture, passive }] = listeners[i]\n\n // check if the listener functions and capture and passive flags match\n if (fn === listener && capture === options.capture && passive === options.passive) {\n // remove the listener from the array of listeners\n listeners.splice(i, 1)\n\n // if all listeners for this target have been removed\n // remove the target from the delegates array\n if (!listeners.length) {\n delegates.splice(index, 1)\n\n // remove delegate function from context\n remove(context, type, delegateListener)\n remove(context, type, delegateUseCapture, true)\n }\n\n // only remove one listener\n matchFound = true\n break\n }\n }\n\n if (matchFound) {\n break\n }\n }\n }\n }\n\n // bound to the interactable context when a DOM event\n // listener is added to a selector interactable\n function delegateListener (event: Event | FakeEvent, optionalArg?: any) {\n const options = getOptions(optionalArg)\n const fakeEvent = new FakeEvent(event as Event)\n const delegates = delegatedEvents[event.type]\n const [eventTarget] = pointerUtils.getEventTargets(event as Event)\n let element: Node = eventTarget\n\n // climb up document tree looking for selector matches\n while (is.element(element)) {\n for (let i = 0; i < delegates.length; i++) {\n const cur = delegates[i]\n const { selector, context } = cur\n\n if (\n domUtils.matchesSelector(element, selector) &&\n domUtils.nodeContains(context, eventTarget) &&\n domUtils.nodeContains(context, element)\n ) {\n const { listeners } = cur\n\n fakeEvent.currentTarget = element\n\n for (const [fn, { capture, passive }] of listeners) {\n if (capture === options.capture && passive === options.passive) {\n fn(fakeEvent)\n }\n }\n }\n }\n\n element = domUtils.parentNode(element)\n }\n }\n\n function delegateUseCapture (this: Element, event: Event | FakeEvent) {\n return delegateListener.call(this, event, true)\n }\n\n // for type inferrence\n return eventsMethods\n}\n\nclass FakeEvent implements Partial {\n currentTarget: Node\n originalEvent: Event\n type: string\n\n constructor (originalEvent: Event) {\n this.originalEvent = originalEvent\n // duplicate the event so that currentTarget can be changed\n pExtend(this, originalEvent)\n }\n\n preventOriginalDefault () {\n this.originalEvent.preventDefault()\n }\n\n stopPropagation () {\n this.originalEvent.stopPropagation()\n }\n\n stopImmediatePropagation () {\n this.originalEvent.stopImmediatePropagation()\n }\n}\n\nfunction getOptions (param: { [index: string]: any } | boolean): { capture: boolean, passive: boolean } {\n if (!is.object(param)) {\n return { capture: !!param, passive: false }\n }\n\n const options = extend({}, param) as any\n\n options.capture = !!param.capture\n options.passive = !!param.passive\n\n return options\n}\n\nexport default {\n id: 'events',\n install,\n}\n","import type Interaction from '@interactjs/core/Interaction'\nimport type { Scope } from '@interactjs/core/scope'\nimport type { PointerType } from '@interactjs/types/index'\nimport * as dom from '@interactjs/utils/domUtils'\n\nexport interface SearchDetails {\n pointer: PointerType\n pointerId: number\n pointerType: string\n eventType: string\n eventTarget: EventTarget\n curEventTarget: EventTarget\n scope: Scope\n}\n\nconst finder = {\n methodOrder: ['simulationResume', 'mouseOrPen', 'hasPointer', 'idle'] as const,\n\n search (details: SearchDetails) {\n for (const method of finder.methodOrder) {\n const interaction = finder[method](details)\n\n if (interaction) {\n return interaction\n }\n }\n\n return null\n },\n\n // try to resume simulation with a new pointer\n simulationResume ({ pointerType, eventType, eventTarget, scope }: SearchDetails) {\n if (!/down|start/i.test(eventType)) {\n return null\n }\n\n for (const interaction of scope.interactions.list) {\n let element = eventTarget as Node\n\n if (\n interaction.simulation &&\n interaction.simulation.allowResume &&\n interaction.pointerType === pointerType\n ) {\n while (element) {\n // if the element is the interaction element\n if (element === interaction.element) {\n return interaction\n }\n element = dom.parentNode(element)\n }\n }\n }\n\n return null\n },\n\n // if it's a mouse or pen interaction\n mouseOrPen ({ pointerId, pointerType, eventType, scope }: SearchDetails) {\n if (pointerType !== 'mouse' && pointerType !== 'pen') {\n return null\n }\n\n let firstNonActive\n\n for (const interaction of scope.interactions.list) {\n if (interaction.pointerType === pointerType) {\n // if it's a down event, skip interactions with running simulations\n if (interaction.simulation && !hasPointerId(interaction, pointerId)) {\n continue\n }\n\n // if the interaction is active, return it immediately\n if (interaction.interacting()) {\n return interaction\n }\n // otherwise save it and look for another active interaction\n else if (!firstNonActive) {\n firstNonActive = interaction\n }\n }\n }\n\n // if no active mouse interaction was found use the first inactive mouse\n // interaction\n if (firstNonActive) {\n return firstNonActive\n }\n\n // find any mouse or pen interaction.\n // ignore the interaction if the eventType is a *down, and a simulation\n // is active\n for (const interaction of scope.interactions.list) {\n if (interaction.pointerType === pointerType && !(/down/i.test(eventType) && interaction.simulation)) {\n return interaction\n }\n }\n\n return null\n },\n\n // get interaction that has this pointer\n hasPointer ({ pointerId, scope }: SearchDetails) {\n for (const interaction of scope.interactions.list) {\n if (hasPointerId(interaction, pointerId)) {\n return interaction\n }\n }\n\n return null\n },\n\n // get first idle interaction with a matching pointerType\n idle ({ pointerType, scope }: SearchDetails) {\n for (const interaction of scope.interactions.list) {\n // if there's already a pointer held down\n if (interaction.pointers.length === 1) {\n const target = interaction.interactable\n // don't add this pointer if there is a target interactable and it\n // isn't gesturable\n if (target && !(target.options.gesture && target.options.gesture.enabled)) {\n continue\n }\n }\n // maximum of 2 pointers per interaction\n else if (interaction.pointers.length >= 2) {\n continue\n }\n\n if (!interaction.interacting() && pointerType === interaction.pointerType) {\n return interaction\n }\n }\n\n return null\n },\n}\n\nfunction hasPointerId (interaction: Interaction, pointerId: number) {\n return interaction.pointers.some(({ id }) => id === pointerId)\n}\n\nexport default finder\n","import type { Scope, ActionName, SignalArgs, Plugin } from '@interactjs/core/scope'\nimport type { Listener } from '@interactjs/types/index'\nimport browser from '@interactjs/utils/browser'\nimport domObjects from '@interactjs/utils/domObjects'\nimport { nodeContains } from '@interactjs/utils/domUtils'\nimport * as pointerUtils from '@interactjs/utils/pointerUtils'\n\nimport InteractionBase from './Interaction'\nimport interactablePreventDefault from './interactablePreventDefault'\nimport type { SearchDetails } from './interactionFinder'\nimport finder from './interactionFinder'\n\ndeclare module '@interactjs/core/scope' {\n interface Scope {\n Interaction: typeof InteractionBase\n interactions: {\n new: (options: any) => InteractionBase\n list: Array>\n listeners: { [type: string]: Listener }\n docEvents: Array<{ type: string, listener: Listener }>\n pointerMoveTolerance: number\n }\n prevTouchTime: number\n }\n}\n\ndeclare module '@interactjs/core/scope' {\n interface SignalArgs {\n 'interactions:find': {\n interaction: InteractionBase\n searchDetails: SearchDetails\n }\n }\n}\n\nconst methodNames = [\n 'pointerDown',\n 'pointerMove',\n 'pointerUp',\n 'updatePointer',\n 'removePointer',\n 'windowBlur',\n]\n\nfunction install (scope: Scope) {\n const listeners = {} as any\n\n for (const method of methodNames) {\n listeners[method] = doOnInteractions(method, scope)\n }\n\n const pEventTypes = browser.pEventTypes\n let docEvents: typeof scope.interactions.docEvents\n\n if (domObjects.PointerEvent) {\n docEvents = [\n { type: pEventTypes.down, listener: releasePointersOnRemovedEls },\n { type: pEventTypes.down, listener: listeners.pointerDown },\n { type: pEventTypes.move, listener: listeners.pointerMove },\n { type: pEventTypes.up, listener: listeners.pointerUp },\n { type: pEventTypes.cancel, listener: listeners.pointerUp },\n ]\n } else {\n docEvents = [\n { type: 'mousedown', listener: listeners.pointerDown },\n { type: 'mousemove', listener: listeners.pointerMove },\n { type: 'mouseup', listener: listeners.pointerUp },\n\n { type: 'touchstart', listener: releasePointersOnRemovedEls },\n { type: 'touchstart', listener: listeners.pointerDown },\n { type: 'touchmove', listener: listeners.pointerMove },\n { type: 'touchend', listener: listeners.pointerUp },\n { type: 'touchcancel', listener: listeners.pointerUp },\n ]\n }\n\n docEvents.push({\n type: 'blur',\n listener (event) {\n for (const interaction of scope.interactions.list) {\n interaction.documentBlur(event)\n }\n },\n })\n\n // for ignoring browser's simulated mouse events\n scope.prevTouchTime = 0\n\n scope.Interaction = class extends InteractionBase {\n get pointerMoveTolerance () {\n return scope.interactions.pointerMoveTolerance\n }\n\n set pointerMoveTolerance (value) {\n scope.interactions.pointerMoveTolerance = value\n }\n\n _now () {\n return scope.now()\n }\n }\n\n scope.interactions = {\n // all active and idle interactions\n list: [],\n new (options: { pointerType?: string, scopeFire?: Scope['fire'] }) {\n options.scopeFire = (name, arg) => scope.fire(name, arg)\n\n const interaction = new scope.Interaction(options as Required)\n\n scope.interactions.list.push(interaction)\n return interaction\n },\n listeners,\n docEvents,\n pointerMoveTolerance: 1,\n }\n\n function releasePointersOnRemovedEls () {\n // for all inactive touch interactions with pointers down\n for (const interaction of scope.interactions.list) {\n if (!interaction.pointerIsDown || interaction.pointerType !== 'touch' || interaction._interacting) {\n continue\n }\n\n // if a pointer is down on an element that is no longer in the DOM tree\n for (const pointer of interaction.pointers) {\n if (!scope.documents.some(({ doc }) => nodeContains(doc, pointer.downTarget))) {\n // remove the pointer from the interaction\n interaction.removePointer(pointer.pointer, pointer.event)\n }\n }\n }\n }\n\n scope.usePlugin(interactablePreventDefault)\n}\n\nfunction doOnInteractions (method: string, scope: Scope) {\n return function (event: Event) {\n const interactions = scope.interactions.list\n\n const pointerType = pointerUtils.getPointerType(event)\n const [eventTarget, curEventTarget] = pointerUtils.getEventTargets(event)\n const matches: any[] = [] // [ [pointer, interaction], ...]\n\n if (/^touch/.test(event.type)) {\n scope.prevTouchTime = scope.now()\n\n // @ts-expect-error\n for (const changedTouch of event.changedTouches) {\n const pointer = changedTouch\n const pointerId = pointerUtils.getPointerId(pointer)\n const searchDetails: SearchDetails = {\n pointer,\n pointerId,\n pointerType,\n eventType: event.type,\n eventTarget,\n curEventTarget,\n scope,\n }\n const interaction = getInteraction(searchDetails)\n\n matches.push([\n searchDetails.pointer,\n searchDetails.eventTarget,\n searchDetails.curEventTarget,\n interaction,\n ])\n }\n } else {\n let invalidPointer = false\n\n if (!browser.supportsPointerEvent && /mouse/.test(event.type)) {\n // ignore mouse events while touch interactions are active\n for (let i = 0; i < interactions.length && !invalidPointer; i++) {\n invalidPointer = interactions[i].pointerType !== 'mouse' && interactions[i].pointerIsDown\n }\n\n // try to ignore mouse events that are simulated by the browser\n // after a touch event\n invalidPointer =\n invalidPointer ||\n scope.now() - scope.prevTouchTime < 500 ||\n // on iOS and Firefox Mobile, MouseEvent.timeStamp is zero if simulated\n event.timeStamp === 0\n }\n\n if (!invalidPointer) {\n const searchDetails = {\n pointer: event as PointerEvent,\n pointerId: pointerUtils.getPointerId(event as PointerEvent),\n pointerType,\n eventType: event.type,\n curEventTarget,\n eventTarget,\n scope,\n }\n\n const interaction = getInteraction(searchDetails)\n\n matches.push([\n searchDetails.pointer,\n searchDetails.eventTarget,\n searchDetails.curEventTarget,\n interaction,\n ])\n }\n }\n\n // eslint-disable-next-line no-shadow\n for (const [pointer, eventTarget, curEventTarget, interaction] of matches) {\n interaction[method](pointer, event, eventTarget, curEventTarget)\n }\n }\n}\n\nfunction getInteraction (searchDetails: SearchDetails) {\n const { pointerType, scope } = searchDetails\n\n const foundInteraction = finder.search(searchDetails)\n const signalArg = { interaction: foundInteraction, searchDetails }\n\n scope.fire('interactions:find', signalArg)\n\n return signalArg.interaction || scope.interactions.new({ pointerType })\n}\n\nfunction onDocSignal (\n { doc, scope, options }: SignalArgs[T],\n eventMethodName: 'add' | 'remove',\n) {\n const {\n interactions: { docEvents },\n events,\n } = scope\n const eventMethod = events[eventMethodName]\n\n if (scope.browser.isIOS && !options.events) {\n options.events = { passive: false }\n }\n\n // delegate event listener\n for (const eventType in events.delegatedEvents) {\n eventMethod(doc, eventType, events.delegateListener)\n eventMethod(doc, eventType, events.delegateUseCapture, true)\n }\n\n const eventOptions = options && options.events\n\n for (const { type, listener } of docEvents) {\n eventMethod(doc, type, listener, eventOptions)\n }\n}\n\nconst interactions: Plugin = {\n id: 'core/interactions',\n install,\n listeners: {\n 'scope:add-document': (arg) => onDocSignal(arg, 'add'),\n 'scope:remove-document': (arg) => onDocSignal(arg, 'remove'),\n 'interactable:unset': ({ interactable }, scope) => {\n // Stop and destroy related interactions when an Interactable is unset\n for (let i = scope.interactions.list.length - 1; i >= 0; i--) {\n const interaction = scope.interactions.list[i]\n\n if (interaction.interactable !== interactable) {\n continue\n }\n\n interaction.stop()\n scope.fire('interactions:destroy', { interaction })\n interaction.destroy()\n\n if (scope.interactions.list.length > 2) {\n scope.interactions.list.splice(i, 1)\n }\n }\n },\n },\n onDocSignal,\n doOnInteractions,\n methodNames,\n}\n\nexport default interactions\n","import type Interaction from '@interactjs/core/Interaction'\nimport browser from '@interactjs/utils/browser'\nimport clone from '@interactjs/utils/clone'\nimport domObjects from '@interactjs/utils/domObjects'\nimport extend from '@interactjs/utils/extend'\nimport is from '@interactjs/utils/is'\nimport raf from '@interactjs/utils/raf'\nimport * as win from '@interactjs/utils/window'\n\nimport { Eventable } from './Eventable'\nimport type { PhaseMap } from './InteractEvent'\nimport { InteractEvent } from './InteractEvent'\nimport { createInteractStatic } from './InteractStatic'\nimport type { Interactable } from './Interactable'\nimport { Interactable as InteractableBase } from './Interactable'\nimport { InteractableSet } from './InteractableSet'\nimport events from './events'\nimport interactions from './interactions'\nimport type { OptionsArg } from './options'\nimport { defaults } from './options'\n\nexport interface SignalArgs {\n 'scope:add-document': DocSignalArg\n 'scope:remove-document': DocSignalArg\n 'interactable:unset': { interactable: InteractableBase }\n 'interactable:set': { interactable: InteractableBase, options: OptionsArg }\n 'interactions:destroy': { interaction: Interaction }\n}\n\nexport type ListenerName = keyof SignalArgs\n\nexport type ListenerMap = {\n [P in ListenerName]?: (arg: SignalArgs[P], scope: Scope, signalName: P) => void | boolean\n}\n\ninterface DocSignalArg {\n doc: Document\n window: Window\n scope: Scope\n options: Record\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ActionMap {}\nexport type ActionName = keyof ActionMap\n\nexport interface Actions {\n map: ActionMap\n phases: PhaseMap\n methodDict: { [P in ActionName]?: keyof Interactable }\n phaselessTypes: { [type: string]: true }\n}\n\nexport interface Plugin {\n [key: string]: any\n id?: string\n listeners?: ListenerMap\n before?: string[]\n install?(scope: Scope, options?: any): void\n}\n\nexport class Scope {\n id = `__interact_scope_${Math.floor(Math.random() * 100)}`\n isInitialized = false\n listenerMaps: Array<{\n map: ListenerMap\n id: string\n }> = []\n\n browser = browser\n defaults = clone(defaults) as typeof defaults\n Eventable = Eventable\n actions: Actions = {\n map: {},\n phases: {\n start: true,\n move: true,\n end: true,\n },\n methodDict: {},\n phaselessTypes: {},\n }\n\n interactStatic = createInteractStatic(this)\n InteractEvent = InteractEvent\n Interactable: typeof InteractableBase\n interactables = new InteractableSet(this)\n\n // main window\n _win!: Window\n\n // main document\n document!: Document\n\n // main window\n window!: Window\n\n // all documents being listened to\n documents: Array<{ doc: Document, options: any }> = []\n\n _plugins: {\n list: Plugin[]\n map: { [id: string]: Plugin }\n } = {\n list: [],\n map: {},\n }\n\n constructor () {\n const scope = this\n\n this.Interactable = class extends InteractableBase {\n get _defaults () {\n return scope.defaults\n }\n\n set (this: T, options: OptionsArg) {\n super.set(options)\n\n scope.fire('interactable:set', {\n options,\n interactable: this,\n })\n\n return this\n }\n\n unset (this: InteractableBase) {\n super.unset()\n scope.interactables.list.splice(scope.interactables.list.indexOf(this), 1)\n\n scope.fire('interactable:unset', { interactable: this })\n }\n }\n }\n\n addListeners (map: ListenerMap, id?: string) {\n this.listenerMaps.push({ id, map })\n }\n\n fire (name: T, arg: SignalArgs[T]): void | false {\n for (const {\n map: { [name]: listener },\n } of this.listenerMaps) {\n if (!!listener && listener(arg as any, this, name as never) === false) {\n return false\n }\n }\n }\n\n onWindowUnload = (event: BeforeUnloadEvent) => this.removeDocument(event.target as Document)\n\n init (window: Window | typeof globalThis) {\n return this.isInitialized ? this : initScope(this, window)\n }\n\n pluginIsInstalled (plugin: Plugin) {\n return this._plugins.map[plugin.id] || this._plugins.list.indexOf(plugin) !== -1\n }\n\n usePlugin (plugin: Plugin, options?: { [key: string]: any }) {\n if (!this.isInitialized) {\n return this\n }\n\n if (this.pluginIsInstalled(plugin)) {\n return this\n }\n\n if (plugin.id) {\n this._plugins.map[plugin.id] = plugin\n }\n this._plugins.list.push(plugin)\n\n if (plugin.install) {\n plugin.install(this, options)\n }\n\n if (plugin.listeners && plugin.before) {\n let index = 0\n const len = this.listenerMaps.length\n const before = plugin.before.reduce((acc, id) => {\n acc[id] = true\n acc[pluginIdRoot(id)] = true\n return acc\n }, {})\n\n for (; index < len; index++) {\n const otherId = this.listenerMaps[index].id\n\n if (before[otherId] || before[pluginIdRoot(otherId)]) {\n break\n }\n }\n\n this.listenerMaps.splice(index, 0, { id: plugin.id, map: plugin.listeners })\n } else if (plugin.listeners) {\n this.listenerMaps.push({ id: plugin.id, map: plugin.listeners })\n }\n\n return this\n }\n\n addDocument (doc: Document, options?: any): void | false {\n // do nothing if document is already known\n if (this.getDocIndex(doc) !== -1) {\n return false\n }\n\n const window = win.getWindow(doc)\n\n options = options ? extend({}, options) : {}\n\n this.documents.push({ doc, options })\n this.events.documents.push(doc)\n\n // don't add an unload event for the main document\n // so that the page may be cached in browser history\n if (doc !== this.document) {\n this.events.add(window, 'unload', this.onWindowUnload)\n }\n\n this.fire('scope:add-document', { doc, window, scope: this, options })\n }\n\n removeDocument (doc: Document) {\n const index = this.getDocIndex(doc)\n\n const window = win.getWindow(doc)\n const options = this.documents[index].options\n\n this.events.remove(window, 'unload', this.onWindowUnload)\n\n this.documents.splice(index, 1)\n this.events.documents.splice(index, 1)\n\n this.fire('scope:remove-document', { doc, window, scope: this, options })\n }\n\n getDocIndex (doc: Document) {\n for (let i = 0; i < this.documents.length; i++) {\n if (this.documents[i].doc === doc) {\n return i\n }\n }\n\n return -1\n }\n\n getDocOptions (doc: Document) {\n const docIndex = this.getDocIndex(doc)\n\n return docIndex === -1 ? null : this.documents[docIndex].options\n }\n\n now () {\n return (((this.window as any).Date as typeof Date) || Date).now()\n }\n}\n\nexport function initScope (scope: Scope, window: Window | typeof globalThis) {\n scope.isInitialized = true\n\n if (is.window(window)) {\n win.init(window)\n }\n\n domObjects.init(window)\n browser.init(window)\n raf.init(window)\n\n // @ts-expect-error\n scope.window = window\n scope.document = window.document\n\n scope.usePlugin(interactions)\n scope.usePlugin(events)\n\n return scope\n}\n\nfunction pluginIdRoot (id: string) {\n return id && id.replace(/\\/.*$/, '')\n}\n","import { Scope } from '@interactjs/core/scope'\n\nconst scope = new Scope()\n\nconst interact = scope.interactStatic\n\nexport default interact\n\nconst _global = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : this\nscope.init(_global)\n","export default () => {}\n","export default () => {}\n","import type { SnapFunction, SnapTarget } from '@interactjs/modifiers/snap/pointer'\nimport type { Rect, Point } from '@interactjs/types/index'\n\nexport type GridOptions = (Partial | Point) & {\n range?: number\n limits?: Rect\n offset?: Point\n}\n\nexport default (grid: GridOptions) => {\n const coordFields = ([\n ['x', 'y'],\n ['left', 'top'],\n ['right', 'bottom'],\n ['width', 'height'],\n ] as const).filter(([xField, yField]) => xField in grid || yField in grid)\n\n const gridFunc: SnapFunction & {\n grid: typeof grid\n coordFields: typeof coordFields\n } = (x, y) => {\n const {\n range,\n limits = {\n left: -Infinity,\n right: Infinity,\n top: -Infinity,\n bottom: Infinity,\n },\n offset = { x: 0, y: 0 },\n } = grid\n\n const result: SnapTarget & {\n grid: typeof grid\n } = { range, grid, x: null as number, y: null as number }\n\n for (const [xField, yField] of coordFields) {\n const gridx = Math.round((x - offset.x) / (grid as any)[xField])\n const gridy = Math.round((y - offset.y) / (grid as any)[yField])\n\n result[xField] = Math.max(limits.left, Math.min(limits.right, gridx * (grid as any)[xField] + offset.x))\n result[yField] = Math.max(limits.top, Math.min(limits.bottom, gridy * (grid as any)[yField] + offset.y))\n }\n\n return result\n }\n\n gridFunc.grid = grid\n gridFunc.coordFields = coordFields\n\n return gridFunc\n}\n","import type { Plugin } from '@interactjs/core/scope'\nimport extend from '@interactjs/utils/extend'\n\nimport * as allSnappers from './all'\n\ndeclare module '@interactjs/core/InteractStatic' {\n export interface InteractStatic {\n snappers: typeof allSnappers\n createSnapGrid: typeof allSnappers.grid\n }\n}\n\nconst snappersPlugin: Plugin = {\n id: 'snappers',\n install (scope) {\n const { interactStatic: interact } = scope\n\n interact.snappers = extend(interact.snappers || {}, allSnappers)\n interact.createSnapGrid = interact.snappers.grid\n },\n}\n\nexport default snappersPlugin\n","/**\n * @module modifiers/aspectRatio\n *\n * @description\n * This module forces elements to be resized with a specified dx/dy ratio.\n *\n * ```js\n * interact(target).resizable({\n * modifiers: [\n * interact.modifiers.snapSize({\n * targets: [ interact.snappers.grid({ x: 20, y: 20 }) ],\n * }),\n * interact.aspectRatio({ ratio: 'preserve' }),\n * ],\n * });\n * ```\n */\n\nimport type { Point, Rect, EdgeOptions } from '@interactjs/types/index'\nimport extend from '@interactjs/utils/extend'\nimport { addEdges } from '@interactjs/utils/rect'\n\nimport Modification from './Modification'\nimport type { Modifier, ModifierModule, ModifierState } from './base'\nimport { makeModifier } from './base'\n\nexport interface AspectRatioOptions {\n ratio?: number | 'preserve'\n equalDelta?: boolean\n modifiers?: Modifier[]\n enabled?: boolean\n}\n\nexport type AspectRatioState = ModifierState<\nAspectRatioOptions,\n{\n startCoords: Point\n startRect: Rect\n linkedEdges: EdgeOptions\n ratio: number\n equalDelta: boolean\n xIsPrimaryAxis: boolean\n edgeSign: 1 | -1\n subModification: Modification\n}\n>\n\nconst aspectRatio: ModifierModule = {\n start (arg) {\n const { state, rect, edges: originalEdges, pageCoords: coords } = arg\n let { ratio } = state.options\n const { equalDelta, modifiers } = state.options\n\n if (ratio === 'preserve') {\n ratio = rect.width / rect.height\n }\n\n state.startCoords = extend({}, coords)\n state.startRect = extend({}, rect)\n state.ratio = ratio\n state.equalDelta = equalDelta\n\n const linkedEdges = (state.linkedEdges = {\n top: originalEdges.top || (originalEdges.left && !originalEdges.bottom),\n left: originalEdges.left || (originalEdges.top && !originalEdges.right),\n bottom: originalEdges.bottom || (originalEdges.right && !originalEdges.top),\n right: originalEdges.right || (originalEdges.bottom && !originalEdges.left),\n })\n\n state.xIsPrimaryAxis = !!(originalEdges.left || originalEdges.right)\n\n if (state.equalDelta) {\n state.edgeSign = ((linkedEdges.left ? 1 : -1) * (linkedEdges.top ? 1 : -1)) as 1 | -1\n } else {\n const negativeSecondaryEdge = state.xIsPrimaryAxis ? linkedEdges.top : linkedEdges.left\n state.edgeSign = negativeSecondaryEdge ? -1 : 1\n }\n\n extend(arg.edges, linkedEdges)\n\n if (!modifiers || !modifiers.length) return\n\n const subModification = new Modification(arg.interaction)\n\n subModification.copyFrom(arg.interaction.modification)\n subModification.prepareStates(modifiers)\n\n state.subModification = subModification\n subModification.startAll({ ...arg })\n },\n\n set (arg) {\n const { state, rect, coords } = arg\n const initialCoords = extend({}, coords)\n const aspectMethod = state.equalDelta ? setEqualDelta : setRatio\n\n aspectMethod(state, state.xIsPrimaryAxis, coords, rect)\n\n if (!state.subModification) {\n return null\n }\n\n const correctedRect = extend({}, rect)\n\n addEdges(state.linkedEdges, correctedRect, {\n x: coords.x - initialCoords.x,\n y: coords.y - initialCoords.y,\n })\n\n const result = state.subModification.setAll({\n ...arg,\n rect: correctedRect,\n edges: state.linkedEdges,\n pageCoords: coords,\n prevCoords: coords,\n prevRect: correctedRect,\n })\n\n const { delta } = result\n\n if (result.changed) {\n const xIsCriticalAxis = Math.abs(delta.x) > Math.abs(delta.y)\n\n // do aspect modification again with critical edge axis as primary\n aspectMethod(state, xIsCriticalAxis, result.coords, result.rect)\n extend(coords, result.coords)\n }\n\n return result.eventProps\n },\n\n defaults: {\n ratio: 'preserve',\n equalDelta: false,\n modifiers: [],\n enabled: false,\n },\n}\n\nfunction setEqualDelta ({ startCoords, edgeSign }: AspectRatioState, xIsPrimaryAxis: boolean, coords: Point) {\n if (xIsPrimaryAxis) {\n coords.y = startCoords.y + (coords.x - startCoords.x) * edgeSign\n } else {\n coords.x = startCoords.x + (coords.y - startCoords.y) * edgeSign\n }\n}\n\nfunction setRatio (\n { startRect, startCoords, ratio, edgeSign }: AspectRatioState,\n xIsPrimaryAxis: boolean,\n coords: Point,\n rect: Rect,\n) {\n if (xIsPrimaryAxis) {\n const newHeight = rect.width / ratio\n\n coords.y = startCoords.y + (newHeight - startRect.height) * edgeSign\n } else {\n const newWidth = rect.height * ratio\n\n coords.x = startCoords.x + (newWidth - startRect.width) * edgeSign\n }\n}\n\nexport default makeModifier(aspectRatio, 'aspectRatio')\nexport { aspectRatio }\n","import type { ModifierFunction } from '@interactjs/modifiers/base'\n\nconst noop = ((() => {}) as unknown) as ModifierFunction\n\nnoop._defaults = {}\n\nexport default noop\n","import type Interaction from '@interactjs/core/Interaction'\nimport type { RectResolvable, Rect, Point } from '@interactjs/types/index'\nimport extend from '@interactjs/utils/extend'\nimport is from '@interactjs/utils/is'\nimport * as rectUtils from '@interactjs/utils/rect'\n\nimport type { ModifierArg, ModifierModule, ModifierState } from '../base'\nimport { makeModifier } from '../base'\n\nexport interface RestrictOptions {\n // where to drag over\n restriction: RectResolvable<[number, number, Interaction]>\n // what part of self is allowed to drag over\n elementRect: Rect\n offset: Rect\n // restrict just before the end drag\n endOnly: boolean\n enabled?: boolean\n}\n\nexport type RestrictState = ModifierState<\nRestrictOptions,\n{\n offset: Rect\n}\n>\n\nfunction start ({ rect, startOffset, state, interaction, pageCoords }: ModifierArg) {\n const { options } = state\n const { elementRect } = options\n const offset: Rect = extend(\n {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n },\n options.offset || {},\n )\n\n if (rect && elementRect) {\n const restriction = getRestrictionRect(options.restriction, interaction, pageCoords)\n\n if (restriction) {\n const widthDiff = restriction.right - restriction.left - rect.width\n const heightDiff = restriction.bottom - restriction.top - rect.height\n\n if (widthDiff < 0) {\n offset.left += widthDiff\n offset.right += widthDiff\n }\n if (heightDiff < 0) {\n offset.top += heightDiff\n offset.bottom += heightDiff\n }\n }\n\n offset.left += startOffset.left - rect.width * elementRect.left\n offset.top += startOffset.top - rect.height * elementRect.top\n\n offset.right += startOffset.right - rect.width * (1 - elementRect.right)\n offset.bottom += startOffset.bottom - rect.height * (1 - elementRect.bottom)\n }\n\n state.offset = offset\n}\n\nfunction set ({ coords, interaction, state }: ModifierArg) {\n const { options, offset } = state\n\n const restriction = getRestrictionRect(options.restriction, interaction, coords)\n\n if (!restriction) return\n\n const rect = rectUtils.xywhToTlbr(restriction)\n\n coords.x = Math.max(Math.min(rect.right - offset.right, coords.x), rect.left + offset.left)\n coords.y = Math.max(Math.min(rect.bottom - offset.bottom, coords.y), rect.top + offset.top)\n}\n\nexport function getRestrictionRect (\n value: RectResolvable<[number, number, Interaction]>,\n interaction: Interaction,\n coords?: Point,\n) {\n if (is.func(value)) {\n return rectUtils.resolveRectLike(value, interaction.interactable, interaction.element, [\n coords.x,\n coords.y,\n interaction,\n ])\n } else {\n return rectUtils.resolveRectLike(value, interaction.interactable, interaction.element)\n }\n}\n\nconst defaults: RestrictOptions = {\n restriction: null,\n elementRect: null,\n offset: null,\n endOnly: false,\n enabled: false,\n}\n\nconst restrict: ModifierModule = {\n start,\n set,\n defaults,\n}\n\nexport default makeModifier(restrict, 'restrict')\nexport { restrict }\n","// This module adds the options.resize.restrictEdges setting which sets min and\n// max for the top, left, bottom and right edges of the target being resized.\n//\n// interact(target).resize({\n// edges: { top: true, left: true },\n// restrictEdges: {\n// inner: { top: 200, left: 200, right: 400, bottom: 400 },\n// outer: { top: 0, left: 0, right: 600, bottom: 600 },\n// },\n// })\n\nimport type { Point, Rect } from '@interactjs/types/index'\nimport extend from '@interactjs/utils/extend'\nimport * as rectUtils from '@interactjs/utils/rect'\n\nimport type { ModifierArg, ModifierState } from '../base'\nimport { makeModifier } from '../base'\n\nimport type { RestrictOptions } from './pointer'\nimport { getRestrictionRect } from './pointer'\n\nexport interface RestrictEdgesOptions {\n inner: RestrictOptions['restriction']\n outer: RestrictOptions['restriction']\n offset?: RestrictOptions['offset']\n endOnly: boolean\n enabled?: boolean\n}\n\nexport type RestrictEdgesState = ModifierState<\nRestrictEdgesOptions,\n{\n inner: Rect\n outer: Rect\n offset: RestrictEdgesOptions['offset']\n}\n>\n\nconst noInner = { top: +Infinity, left: +Infinity, bottom: -Infinity, right: -Infinity }\nconst noOuter = { top: -Infinity, left: -Infinity, bottom: +Infinity, right: +Infinity }\n\nfunction start ({ interaction, startOffset, state }: ModifierArg) {\n const { options } = state\n let offset: Point\n\n if (options) {\n const offsetRect = getRestrictionRect(options.offset, interaction, interaction.coords.start.page)\n\n offset = rectUtils.rectToXY(offsetRect)\n }\n\n offset = offset || { x: 0, y: 0 }\n\n state.offset = {\n top: offset.y + startOffset.top,\n left: offset.x + startOffset.left,\n bottom: offset.y - startOffset.bottom,\n right: offset.x - startOffset.right,\n }\n}\n\nfunction set ({ coords, edges, interaction, state }: ModifierArg) {\n const { offset, options } = state\n\n if (!edges) {\n return\n }\n\n const page = extend({}, coords)\n const inner = getRestrictionRect(options.inner, interaction, page) || ({} as Rect)\n const outer = getRestrictionRect(options.outer, interaction, page) || ({} as Rect)\n\n fixRect(inner, noInner)\n fixRect(outer, noOuter)\n\n if (edges.top) {\n coords.y = Math.min(Math.max(outer.top + offset.top, page.y), inner.top + offset.top)\n } else if (edges.bottom) {\n coords.y = Math.max(Math.min(outer.bottom + offset.bottom, page.y), inner.bottom + offset.bottom)\n }\n if (edges.left) {\n coords.x = Math.min(Math.max(outer.left + offset.left, page.x), inner.left + offset.left)\n } else if (edges.right) {\n coords.x = Math.max(Math.min(outer.right + offset.right, page.x), inner.right + offset.right)\n }\n}\n\nfunction fixRect (rect: Rect, defaults: Rect) {\n for (const edge of ['top', 'left', 'bottom', 'right']) {\n if (!(edge in rect)) {\n rect[edge] = defaults[edge]\n }\n }\n\n return rect\n}\n\nconst defaults: RestrictEdgesOptions = {\n inner: null,\n outer: null,\n offset: null,\n endOnly: false,\n enabled: false,\n}\n\nconst restrictEdges = {\n noInner,\n noOuter,\n start,\n set,\n defaults,\n}\n\nexport default makeModifier(restrictEdges, 'restrictEdges')\nexport { restrictEdges }\n","import extend from '@interactjs/utils/extend'\n\nimport { makeModifier } from '../base'\n\nimport { restrict } from './pointer'\n\nconst defaults = extend(\n {\n get elementRect () {\n return { top: 0, left: 0, bottom: 1, right: 1 }\n },\n set elementRect (_) {},\n },\n restrict.defaults,\n)\n\nconst restrictRect = {\n start: restrict.start,\n set: restrict.set,\n defaults,\n}\n\nexport default makeModifier(restrictRect, 'restrictRect')\nexport { restrictRect }\n","import type { Point, Rect, Size } from '@interactjs/types/index'\nimport extend from '@interactjs/utils/extend'\nimport * as rectUtils from '@interactjs/utils/rect'\n\nimport type { ModifierArg, ModifierState } from '../base'\nimport { makeModifier } from '../base'\n\nimport type { RestrictEdgesState } from './edges'\nimport { restrictEdges } from './edges'\nimport type { RestrictOptions } from './pointer'\nimport { getRestrictionRect } from './pointer'\n\nconst noMin = { width: -Infinity, height: -Infinity }\nconst noMax = { width: +Infinity, height: +Infinity }\n\nexport interface RestrictSizeOptions {\n min?: Size | Point | RestrictOptions['restriction']\n max?: Size | Point | RestrictOptions['restriction']\n endOnly: boolean\n enabled?: boolean\n}\n\nfunction start (arg: ModifierArg) {\n return restrictEdges.start(arg)\n}\n\nexport type RestrictSizeState = RestrictEdgesState &\nModifierState<\nRestrictSizeOptions & { inner: Rect, outer: Rect },\n{\n min: Rect\n max: Rect\n}\n>\n\nfunction set (arg: ModifierArg) {\n const { interaction, state, rect, edges } = arg\n const { options } = state\n\n if (!edges) {\n return\n }\n\n const minSize =\n rectUtils.tlbrToXywh(getRestrictionRect(options.min as any, interaction, arg.coords)) || noMin\n const maxSize =\n rectUtils.tlbrToXywh(getRestrictionRect(options.max as any, interaction, arg.coords)) || noMax\n\n state.options = {\n endOnly: options.endOnly,\n inner: extend({}, restrictEdges.noInner),\n outer: extend({}, restrictEdges.noOuter),\n }\n\n if (edges.top) {\n state.options.inner.top = rect.bottom - minSize.height\n state.options.outer.top = rect.bottom - maxSize.height\n } else if (edges.bottom) {\n state.options.inner.bottom = rect.top + minSize.height\n state.options.outer.bottom = rect.top + maxSize.height\n }\n if (edges.left) {\n state.options.inner.left = rect.right - minSize.width\n state.options.outer.left = rect.right - maxSize.width\n } else if (edges.right) {\n state.options.inner.right = rect.left + minSize.width\n state.options.outer.right = rect.left + maxSize.width\n }\n\n restrictEdges.set(arg)\n\n state.options = options\n}\n\nconst defaults: RestrictSizeOptions = {\n min: null,\n max: null,\n endOnly: false,\n enabled: false,\n}\n\nconst restrictSize = {\n start,\n set,\n defaults,\n}\n\nexport default makeModifier(restrictSize, 'restrictSize')\nexport { restrictSize }\n","import type { Interaction, InteractionProxy } from '@interactjs/core/Interaction'\nimport type { ActionName } from '@interactjs/core/scope'\nimport type { Point, RectResolvable, Element } from '@interactjs/types/index'\nimport extend from '@interactjs/utils/extend'\nimport getOriginXY from '@interactjs/utils/getOriginXY'\nimport hypot from '@interactjs/utils/hypot'\nimport is from '@interactjs/utils/is'\nimport { resolveRectLike, rectToXY } from '@interactjs/utils/rect'\n\nimport type { ModifierArg, ModifierState } from '../base'\nimport { makeModifier } from '../base'\n\nexport interface Offset {\n x: number\n y: number\n index: number\n relativePoint?: Point | null\n}\n\nexport interface SnapPosition {\n x?: number\n y?: number\n range?: number\n offset?: Offset\n [index: string]: any\n}\n\nexport type SnapFunction = (\n x: number,\n y: number,\n interaction: InteractionProxy,\n offset: Offset,\n index: number,\n) => SnapPosition\nexport type SnapTarget = SnapPosition | SnapFunction\nexport interface SnapOptions {\n targets: SnapTarget[] | null\n // target range\n range: number\n // self points for snapping. [0,0] = top left, [1,1] = bottom right\n relativePoints: Point[] | null\n // startCoords = offset snapping from drag start page position\n offset: Point | RectResolvable<[Interaction]> | 'startCoords' | null\n offsetWithOrigin?: boolean\n origin: RectResolvable<[Element]> | Point | null\n endOnly?: boolean\n enabled?: boolean\n}\n\nexport type SnapState = ModifierState<\nSnapOptions,\n{\n offsets?: Offset[]\n closest?: any\n targetFields?: string[][]\n}\n>\n\nfunction start (arg: ModifierArg) {\n const { interaction, interactable, element, rect, state, startOffset } = arg\n const { options } = state\n const origin = options.offsetWithOrigin ? getOrigin(arg) : { x: 0, y: 0 }\n\n let snapOffset: Point\n\n if (options.offset === 'startCoords') {\n snapOffset = {\n x: interaction.coords.start.page.x,\n y: interaction.coords.start.page.y,\n }\n } else {\n const offsetRect = resolveRectLike(options.offset as any, interactable, element, [interaction])\n\n snapOffset = rectToXY(offsetRect) || { x: 0, y: 0 }\n snapOffset.x += origin.x\n snapOffset.y += origin.y\n }\n\n const { relativePoints } = options\n\n state.offsets =\n rect && relativePoints && relativePoints.length\n ? relativePoints.map((relativePoint, index) => ({\n index,\n relativePoint,\n x: startOffset.left - rect.width * relativePoint.x + snapOffset.x,\n y: startOffset.top - rect.height * relativePoint.y + snapOffset.y,\n }))\n : [\n {\n index: 0,\n relativePoint: null,\n x: snapOffset.x,\n y: snapOffset.y,\n },\n ]\n}\n\nfunction set (arg: ModifierArg) {\n const { interaction, coords, state } = arg\n const { options, offsets } = state\n\n const origin = getOriginXY(interaction.interactable, interaction.element, interaction.prepared.name)\n const page = extend({}, coords)\n const targets = []\n\n if (!options.offsetWithOrigin) {\n page.x -= origin.x\n page.y -= origin.y\n }\n\n for (const offset of offsets) {\n const relativeX = page.x - offset.x\n const relativeY = page.y - offset.y\n\n for (let index = 0, len = options.targets.length; index < len; index++) {\n const snapTarget = options.targets[index]\n let target: SnapPosition\n\n if (is.func(snapTarget)) {\n target = snapTarget(relativeX, relativeY, interaction._proxy, offset, index)\n } else {\n target = snapTarget\n }\n\n if (!target) {\n continue\n }\n\n targets.push({\n x: (is.number(target.x) ? target.x : relativeX) + offset.x,\n y: (is.number(target.y) ? target.y : relativeY) + offset.y,\n\n range: is.number(target.range) ? target.range : options.range,\n source: snapTarget,\n index,\n offset,\n })\n }\n }\n\n const closest = {\n target: null,\n inRange: false,\n distance: 0,\n range: 0,\n delta: { x: 0, y: 0 },\n }\n\n for (const target of targets) {\n const range = target.range\n const dx = target.x - page.x\n const dy = target.y - page.y\n const distance = hypot(dx, dy)\n let inRange = distance <= range\n\n // Infinite targets count as being out of range\n // compared to non infinite ones that are in range\n if (range === Infinity && closest.inRange && closest.range !== Infinity) {\n inRange = false\n }\n\n if (\n !closest.target ||\n (inRange\n ? // is the closest target in range?\n closest.inRange && range !== Infinity\n ? // the pointer is relatively deeper in this target\n distance / range < closest.distance / closest.range\n : // this target has Infinite range and the closest doesn't\n (range === Infinity && closest.range !== Infinity) ||\n // OR this target is closer that the previous closest\n distance < closest.distance\n : // The other is not in range and the pointer is closer to this target\n !closest.inRange && distance < closest.distance)\n ) {\n closest.target = target\n closest.distance = distance\n closest.range = range\n closest.inRange = inRange\n closest.delta.x = dx\n closest.delta.y = dy\n }\n }\n\n if (closest.inRange) {\n coords.x = closest.target.x\n coords.y = closest.target.y\n }\n\n state.closest = closest\n return closest\n}\n\nfunction getOrigin (arg: Partial>) {\n const { element } = arg.interaction\n const optionsOrigin = rectToXY(resolveRectLike(arg.state.options.origin as any, null, null, [element]))\n const origin = optionsOrigin || getOriginXY(arg.interactable, element, arg.interaction.prepared.name)\n\n return origin\n}\n\nconst defaults: SnapOptions = {\n range: Infinity,\n targets: null,\n offset: null,\n offsetWithOrigin: true,\n origin: null,\n relativePoints: null,\n endOnly: false,\n enabled: false,\n}\nconst snap = {\n start,\n set,\n defaults,\n}\n\nexport default makeModifier(snap, 'snap')\nexport { snap }\n","// This module allows snapping of the size of targets during resize\n// interactions.\n\nimport extend from '@interactjs/utils/extend'\nimport is from '@interactjs/utils/is'\n\nimport type { ModifierArg } from '../base'\nimport { makeModifier } from '../base'\n\nimport type { SnapOptions, SnapState } from './pointer'\nimport { snap } from './pointer'\n\nexport type SnapSizeOptions = Pick\n\nfunction start (arg: ModifierArg) {\n const { state, edges } = arg\n const { options } = state\n\n if (!edges) {\n return null\n }\n\n arg.state = {\n options: {\n targets: null,\n relativePoints: [\n {\n x: edges.left ? 0 : 1,\n y: edges.top ? 0 : 1,\n },\n ],\n offset: options.offset || 'self',\n origin: { x: 0, y: 0 },\n range: options.range,\n },\n }\n\n state.targetFields = state.targetFields || [\n ['width', 'height'],\n ['x', 'y'],\n ]\n\n snap.start(arg)\n state.offsets = arg.state.offsets\n\n arg.state = state\n}\n\nfunction set (arg) {\n const { interaction, state, coords } = arg\n const { options, offsets } = state\n const relative = {\n x: coords.x - offsets[0].x,\n y: coords.y - offsets[0].y,\n }\n\n state.options = extend({}, options)\n state.options.targets = []\n\n for (const snapTarget of options.targets || []) {\n let target\n\n if (is.func(snapTarget)) {\n target = snapTarget(relative.x, relative.y, interaction)\n } else {\n target = snapTarget\n }\n\n if (!target) {\n continue\n }\n\n for (const [xField, yField] of state.targetFields) {\n if (xField in target || yField in target) {\n target.x = target[xField]\n target.y = target[yField]\n\n break\n }\n }\n\n state.options.targets.push(target)\n }\n\n const returnValue = snap.set(arg)\n\n state.options = options\n\n return returnValue\n}\n\nconst defaults: SnapSizeOptions = {\n range: Infinity,\n targets: null,\n offset: null,\n endOnly: false,\n enabled: false,\n}\n\nconst snapSize = {\n start,\n set,\n defaults,\n}\n\nexport default makeModifier(snapSize, 'snapSize')\nexport { snapSize }\n","/**\n * @module modifiers/snapEdges\n *\n * @description\n * WOW> This module allows snapping of the edges of targets during resize\n * interactions.\n *\n * ```js\n * interact(target).resizable({\n * snapEdges: {\n * targets: [interact.snappers.grid({ x: 100, y: 50 })],\n * },\n * })\n *\n * interact(target).resizable({\n * snapEdges: {\n * targets: [\n * interact.snappers.grid({\n * top: 50,\n * left: 50,\n * bottom: 100,\n * right: 100,\n * }),\n * ],\n * },\n * })\n * ```\n */\n\nimport clone from '@interactjs/utils/clone'\nimport extend from '@interactjs/utils/extend'\n\nimport type { ModifierArg, ModifierModule } from '../base'\nimport { makeModifier } from '../base'\n\nimport type { SnapOptions, SnapState } from './pointer'\nimport { snapSize } from './size'\n\nexport type SnapEdgesOptions = Pick\n\nfunction start (arg: ModifierArg) {\n const { edges } = arg\n\n if (!edges) {\n return null\n }\n\n arg.state.targetFields = arg.state.targetFields || [\n [edges.left ? 'left' : 'right', edges.top ? 'top' : 'bottom'],\n ]\n\n return snapSize.start(arg)\n}\n\nconst snapEdges: ModifierModule> = {\n start,\n set: snapSize.set,\n defaults: extend(clone(snapSize.defaults), {\n targets: null,\n range: null,\n offset: { x: 0, y: 0 },\n } as const),\n}\n\nexport default makeModifier(snapEdges, 'snapEdges')\nexport { snapEdges }\n","/* eslint-disable node/no-extraneous-import, import/no-unresolved */\nimport aspectRatio from './aspectRatio'\nimport avoid from './avoid/avoid'\nimport restrictEdges from './restrict/edges'\nimport restrict from './restrict/pointer'\nimport restrictRect from './restrict/rect'\nimport restrictSize from './restrict/size'\nimport rubberband from './rubberband/rubberband'\nimport snapEdges from './snap/edges'\nimport snap from './snap/pointer'\nimport snapSize from './snap/size'\nimport spring from './spring/spring'\nimport transform from './transform/transform'\n\nexport default {\n aspectRatio,\n restrictEdges,\n restrict,\n restrictRect,\n restrictSize,\n snapEdges,\n snap,\n snapSize,\n\n spring,\n avoid,\n transform,\n rubberband,\n}\n","import type { Plugin } from '@interactjs/core/scope'\nimport snappers from '@interactjs/snappers/plugin'\n\nimport all from './all'\nimport base from './base'\n\ndeclare module '@interactjs/core/InteractStatic' {\n export interface InteractStatic {\n modifiers: typeof all\n }\n}\n\nconst modifiers: Plugin = {\n id: 'modifiers',\n install (scope) {\n const { interactStatic: interact } = scope\n\n scope.usePlugin(base)\n scope.usePlugin(snappers)\n\n interact.modifiers = all\n\n // for backwrads compatibility\n for (const type in all) {\n const { _defaults, _methods } = all[type as keyof typeof all]\n\n ;(_defaults as any)._methods = _methods\n ;(scope.defaults.perAction as any)[type] = _defaults\n }\n },\n}\n\nexport default modifiers\n","import { BaseEvent } from '@interactjs/core/BaseEvent'\nimport type Interaction from '@interactjs/core/Interaction'\nimport type { PointerEventType, PointerType, Point } from '@interactjs/types/index'\nimport * as pointerUtils from '@interactjs/utils/pointerUtils'\n\nexport default class PointerEvent extends BaseEvent {\n type: T\n originalEvent: PointerEventType\n pointerId: number\n pointerType: string\n double: boolean\n pageX: number\n pageY: number\n clientX: number\n clientY: number\n dt: number\n eventable: any;\n [key: string]: any\n\n /** */\n constructor (\n type: T,\n pointer: PointerType | PointerEvent,\n event: PointerEventType,\n eventTarget: Node,\n interaction: Interaction,\n timeStamp: number,\n ) {\n super(interaction)\n pointerUtils.pointerExtend(this, event)\n\n if (event !== pointer) {\n pointerUtils.pointerExtend(this, pointer)\n }\n\n this.timeStamp = timeStamp\n this.originalEvent = event\n this.type = type\n this.pointerId = pointerUtils.getPointerId(pointer)\n this.pointerType = pointerUtils.getPointerType(pointer)\n this.target = eventTarget\n this.currentTarget = null\n\n if (type === 'tap') {\n const pointerIndex = interaction.getPointerIndex(pointer)\n this.dt = this.timeStamp - interaction.pointers[pointerIndex].downTime\n\n const interval = this.timeStamp - interaction.tapTime\n\n this.double = !!(\n interaction.prevTap &&\n interaction.prevTap.type !== 'doubletap' &&\n interaction.prevTap.target === this.target &&\n interval < 500\n )\n } else if (type === 'doubletap') {\n this.dt = (pointer as PointerEvent<'tap'>).timeStamp - interaction.tapTime\n }\n }\n\n _subtractOrigin ({ x: originX, y: originY }: Point) {\n this.pageX -= originX\n this.pageY -= originY\n this.clientX -= originX\n this.clientY -= originY\n\n return this\n }\n\n _addOrigin ({ x: originX, y: originY }: Point) {\n this.pageX += originX\n this.pageY += originY\n this.clientX += originX\n this.clientY += originY\n\n return this\n }\n\n /**\n * Prevent the default behaviour of the original Event\n */\n preventDefault () {\n this.originalEvent.preventDefault()\n }\n}\n\nexport { PointerEvent }\n","import type { Eventable } from '@interactjs/core/Eventable'\nimport type { Interaction } from '@interactjs/core/Interaction'\nimport type { PerActionDefaults } from '@interactjs/core/options'\nimport type { Scope, SignalArgs, Plugin } from '@interactjs/core/scope'\nimport type { Point, PointerType, PointerEventType, Element } from '@interactjs/types'\nimport * as domUtils from '@interactjs/utils/domUtils'\nimport extend from '@interactjs/utils/extend'\nimport getOriginXY from '@interactjs/utils/getOriginXY'\n\nimport { PointerEvent } from './PointerEvent'\n\nexport type EventTargetList = Array<{\n node: Node\n eventable: Eventable\n props: { [key: string]: any }\n}>\n\nexport interface PointerEventOptions extends PerActionDefaults {\n enabled?: undefined // not used\n holdDuration?: number\n ignoreFrom?: any\n allowFrom?: any\n origin?: Point | string | Element\n}\n\ndeclare module '@interactjs/core/scope' {\n interface Scope {\n pointerEvents: typeof pointerEvents\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n prevTap?: PointerEvent\n tapTime?: number\n }\n}\n\ndeclare module '@interactjs/core/PointerInfo' {\n interface PointerInfo {\n hold?: {\n duration: number\n timeout: any\n }\n }\n}\n\ndeclare module '@interactjs/core/options' {\n interface ActionDefaults {\n pointerEvents: Options\n }\n}\n\ndeclare module '@interactjs/core/scope' {\n interface SignalArgs {\n 'pointerEvents:new': { pointerEvent: PointerEvent }\n 'pointerEvents:fired': {\n interaction: Interaction\n pointer: PointerType | PointerEvent\n event: PointerEventType | PointerEvent\n eventTarget: Node\n pointerEvent: PointerEvent\n targets?: EventTargetList\n type: string\n }\n 'pointerEvents:collect-targets': {\n interaction: Interaction\n pointer: PointerType | PointerEvent\n event: PointerEventType | PointerEvent\n eventTarget: Node\n targets?: EventTargetList\n type: string\n path: Node[]\n node: null\n }\n }\n}\n\nconst defaults: PointerEventOptions = {\n holdDuration: 600,\n ignoreFrom: null,\n allowFrom: null,\n origin: { x: 0, y: 0 },\n}\n\nconst pointerEvents: Plugin = {\n id: 'pointer-events/base',\n before: ['inertia', 'modifiers', 'auto-start', 'actions'],\n install,\n listeners: {\n 'interactions:new': addInteractionProps,\n 'interactions:update-pointer': addHoldInfo,\n 'interactions:move': moveAndClearHold,\n 'interactions:down': (arg, scope) => {\n downAndStartHold(arg, scope)\n fire(arg, scope)\n },\n 'interactions:up': (arg, scope) => {\n clearHold(arg)\n fire(arg, scope)\n tapAfterUp(arg, scope)\n },\n 'interactions:cancel': (arg, scope) => {\n clearHold(arg)\n fire(arg, scope)\n },\n },\n PointerEvent,\n fire,\n collectEventTargets,\n defaults,\n types: {\n down: true,\n move: true,\n up: true,\n cancel: true,\n tap: true,\n doubletap: true,\n hold: true,\n } as { [type: string]: true },\n}\n\nfunction fire (\n arg: {\n pointer: PointerType | PointerEvent\n event: PointerEventType | PointerEvent\n eventTarget: Node\n interaction: Interaction\n type: T\n targets?: EventTargetList\n },\n scope: Scope,\n) {\n const { interaction, pointer, event, eventTarget, type, targets = collectEventTargets(arg, scope) } = arg\n\n const pointerEvent = new PointerEvent(type, pointer, event, eventTarget, interaction, scope.now())\n\n scope.fire('pointerEvents:new', { pointerEvent })\n\n const signalArg = {\n interaction,\n pointer,\n event,\n eventTarget,\n targets,\n type,\n pointerEvent,\n }\n\n for (let i = 0; i < targets.length; i++) {\n const target = targets[i]\n\n for (const prop in target.props || {}) {\n ;(pointerEvent as any)[prop] = target.props[prop]\n }\n\n const origin = getOriginXY(target.eventable, target.node)\n\n pointerEvent._subtractOrigin(origin)\n pointerEvent.eventable = target.eventable\n pointerEvent.currentTarget = target.node\n\n target.eventable.fire(pointerEvent)\n\n pointerEvent._addOrigin(origin)\n\n if (\n pointerEvent.immediatePropagationStopped ||\n (pointerEvent.propagationStopped &&\n i + 1 < targets.length &&\n targets[i + 1].node !== pointerEvent.currentTarget)\n ) {\n break\n }\n }\n\n scope.fire('pointerEvents:fired', signalArg)\n\n if (type === 'tap') {\n // if pointerEvent should make a double tap, create and fire a doubletap\n // PointerEvent and use that as the prevTap\n const prevTap = pointerEvent.double\n ? fire(\n {\n interaction,\n pointer,\n event,\n eventTarget,\n type: 'doubletap',\n },\n scope,\n )\n : pointerEvent\n\n interaction.prevTap = prevTap\n interaction.tapTime = prevTap.timeStamp\n }\n\n return pointerEvent\n}\n\nfunction collectEventTargets (\n {\n interaction,\n pointer,\n event,\n eventTarget,\n type,\n }: {\n interaction: Interaction\n pointer: PointerType | PointerEvent\n event: PointerEventType | PointerEvent\n eventTarget: Node\n type: T\n },\n scope: Scope,\n) {\n const pointerIndex = interaction.getPointerIndex(pointer)\n const pointerInfo = interaction.pointers[pointerIndex]\n\n // do not fire a tap event if the pointer was moved before being lifted\n if (\n type === 'tap' &&\n (interaction.pointerWasMoved ||\n // or if the pointerup target is different to the pointerdown target\n !(pointerInfo && pointerInfo.downTarget === eventTarget))\n ) {\n return []\n }\n\n const path = domUtils.getPath(eventTarget as Element | Document)\n const signalArg = {\n interaction,\n pointer,\n event,\n eventTarget,\n type,\n path,\n targets: [] as EventTargetList,\n node: null,\n }\n\n for (const node of path) {\n signalArg.node = node\n\n scope.fire('pointerEvents:collect-targets', signalArg)\n }\n\n if (type === 'hold') {\n signalArg.targets = signalArg.targets.filter(\n (target) => target.eventable.options.holdDuration === interaction.pointers[pointerIndex]?.hold.duration,\n )\n }\n\n return signalArg.targets\n}\n\nfunction addInteractionProps ({ interaction }) {\n interaction.prevTap = null // the most recent tap event on this interaction\n interaction.tapTime = 0 // time of the most recent tap event\n}\n\nfunction addHoldInfo ({ down, pointerInfo }: SignalArgs['interactions:update-pointer']) {\n if (!down && pointerInfo.hold) {\n return\n }\n\n pointerInfo.hold = { duration: Infinity, timeout: null }\n}\n\nfunction clearHold ({ interaction, pointerIndex }) {\n const hold = interaction.pointers[pointerIndex].hold\n\n if (hold && hold.timeout) {\n clearTimeout(hold.timeout)\n hold.timeout = null\n }\n}\n\nfunction moveAndClearHold (arg: SignalArgs['interactions:move'], scope: Scope) {\n const { interaction, pointer, event, eventTarget, duplicate } = arg\n\n if (!duplicate && (!interaction.pointerIsDown || interaction.pointerWasMoved)) {\n if (interaction.pointerIsDown) {\n clearHold(arg)\n }\n\n fire(\n {\n interaction,\n pointer,\n event,\n eventTarget: eventTarget as Element,\n type: 'move',\n },\n scope,\n )\n }\n}\n\nfunction downAndStartHold (\n { interaction, pointer, event, eventTarget, pointerIndex }: SignalArgs['interactions:down'],\n scope: Scope,\n) {\n const timer = interaction.pointers[pointerIndex].hold\n const path = domUtils.getPath(eventTarget as Element | Document)\n const signalArg = {\n interaction,\n pointer,\n event,\n eventTarget,\n type: 'hold',\n targets: [] as EventTargetList,\n path,\n node: null,\n }\n\n for (const node of path) {\n signalArg.node = node\n\n scope.fire('pointerEvents:collect-targets', signalArg)\n }\n\n if (!signalArg.targets.length) return\n\n let minDuration = Infinity\n\n for (const target of signalArg.targets) {\n const holdDuration = target.eventable.options.holdDuration\n\n if (holdDuration < minDuration) {\n minDuration = holdDuration\n }\n }\n\n timer.duration = minDuration\n timer.timeout = setTimeout(() => {\n fire(\n {\n interaction,\n eventTarget,\n pointer,\n event,\n type: 'hold',\n },\n scope,\n )\n }, minDuration)\n}\n\nfunction tapAfterUp (\n { interaction, pointer, event, eventTarget }: SignalArgs['interactions:up'],\n scope: Scope,\n) {\n if (!interaction.pointerWasMoved) {\n fire({ interaction, eventTarget, pointer, event, type: 'tap' }, scope)\n }\n}\n\nfunction install (scope: Scope) {\n scope.pointerEvents = pointerEvents\n scope.defaults.actions.pointerEvents = pointerEvents.defaults\n extend(scope.actions.phaselessTypes, pointerEvents.types)\n}\n\nexport default pointerEvents\n","import type Interaction from '@interactjs/core/Interaction'\nimport type { ListenerMap, Scope, SignalArgs, Plugin } from '@interactjs/core/scope'\n\nimport type PointerEvent from './PointerEvent'\nimport basePlugin from './base'\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n holdIntervalHandle?: any\n }\n}\n\ndeclare module '@interactjs/pointer-events/PointerEvent' {\n interface PointerEvent {\n count?: number\n }\n}\n\ndeclare module '@interactjs/pointer-events/base' {\n interface PointerEventOptions {\n holdRepeatInterval?: number\n }\n}\n\nfunction install (scope: Scope) {\n scope.usePlugin(basePlugin)\n\n const { pointerEvents } = scope\n\n // don't repeat by default\n pointerEvents.defaults.holdRepeatInterval = 0\n pointerEvents.types.holdrepeat = scope.actions.phaselessTypes.holdrepeat = true\n}\n\nfunction onNew ({ pointerEvent }: { pointerEvent: PointerEvent }) {\n if (pointerEvent.type !== 'hold') return\n\n pointerEvent.count = (pointerEvent.count || 0) + 1\n}\n\nfunction onFired (\n { interaction, pointerEvent, eventTarget, targets }: SignalArgs['pointerEvents:fired'],\n scope: Scope,\n) {\n if (pointerEvent.type !== 'hold' || !targets.length) return\n\n // get the repeat interval from the first eventable\n const interval = targets[0].eventable.options.holdRepeatInterval\n\n // don't repeat if the interval is 0 or less\n if (interval <= 0) return\n\n // set a timeout to fire the holdrepeat event\n interaction.holdIntervalHandle = setTimeout(() => {\n scope.pointerEvents.fire(\n {\n interaction,\n eventTarget,\n type: 'hold',\n pointer: pointerEvent,\n event: pointerEvent,\n },\n scope,\n )\n }, interval)\n}\n\nfunction endHoldRepeat ({ interaction }: { interaction: Interaction }) {\n // set the interaction's holdStopTime property\n // to stop further holdRepeat events\n if (interaction.holdIntervalHandle) {\n clearInterval(interaction.holdIntervalHandle)\n interaction.holdIntervalHandle = null\n }\n}\n\nconst holdRepeat: Plugin = {\n id: 'pointer-events/holdRepeat',\n install,\n listeners: ['move', 'up', 'cancel', 'endall'].reduce(\n (acc, enderTypes) => {\n ;(acc as any)[`pointerEvents:${enderTypes}`] = endHoldRepeat\n return acc\n },\n {\n 'pointerEvents:new': onNew,\n 'pointerEvents:fired': onFired,\n } as ListenerMap,\n ),\n}\n\nexport default holdRepeat\n","import type { Interactable } from '@interactjs/core/Interactable'\nimport type { Scope, Plugin } from '@interactjs/core/scope'\nimport type { Element } from '@interactjs/types/index'\nimport extend from '@interactjs/utils/extend'\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n pointerEvents: typeof pointerEventsMethod\n __backCompatOption: (optionName: string, newValue: any) => any\n }\n}\n\nfunction install (scope: Scope) {\n const { Interactable } = scope\n\n Interactable.prototype.pointerEvents = pointerEventsMethod\n\n const __backCompatOption = Interactable.prototype._backCompatOption\n\n Interactable.prototype._backCompatOption = function (optionName, newValue) {\n const ret = __backCompatOption.call(this, optionName, newValue)\n\n if (ret === this) {\n this.events.options[optionName] = newValue\n }\n\n return ret\n }\n}\n\nfunction pointerEventsMethod (this: Interactable, options: any) {\n extend(this.events.options, options)\n\n return this\n}\n\nconst plugin: Plugin = {\n id: 'pointer-events/interactableTargets',\n install,\n listeners: {\n 'pointerEvents:collect-targets': ({ targets, node, type, eventTarget }, scope) => {\n scope.interactables.forEachMatch(node, (interactable: Interactable) => {\n const eventable = interactable.events\n const options = eventable.options\n\n if (\n eventable.types[type] &&\n eventable.types[type].length &&\n interactable.testIgnoreAllow(options, node, eventTarget)\n ) {\n targets.push({\n node,\n eventable,\n props: { interactable },\n })\n }\n })\n },\n\n 'interactable:new': ({ interactable }) => {\n interactable.events.getRect = function (element: Element) {\n return interactable.getRect(element)\n }\n },\n\n 'interactable:set': ({ interactable, options }, scope) => {\n extend(interactable.events.options, scope.pointerEvents.defaults)\n extend(interactable.events.options, options.pointerEvents || {})\n },\n },\n}\n\nexport default plugin\n","import type { Plugin } from '@interactjs/core/scope'\n\nimport * as pointerEvents from './base'\nimport holdRepeat from './holdRepeat'\nimport interactableTargets from './interactableTargets'\n\nconst plugin: Plugin = {\n id: 'pointer-events',\n install (scope) {\n scope.usePlugin(pointerEvents)\n scope.usePlugin(holdRepeat)\n scope.usePlugin(interactableTargets)\n },\n}\n\nexport default plugin\n","import type { Interactable } from '@interactjs/core/Interactable'\nimport type { ActionProps, DoAnyPhaseArg, Interaction } from '@interactjs/core/Interaction'\nimport type { ActionName, Scope, Plugin } from '@interactjs/core/scope'\nimport type { Element } from '@interactjs/types/index'\nimport * as arr from '@interactjs/utils/arr'\nimport is from '@interactjs/utils/is'\nimport { copyAction } from '@interactjs/utils/misc'\nimport * as pointerUtils from '@interactjs/utils/pointerUtils'\nimport { tlbrToXywh } from '@interactjs/utils/rect'\n\ndeclare module '@interactjs/core/scope' {\n interface SignalArgs {\n 'interactions:before-action-reflow': Omit\n 'interactions:action-reflow': DoAnyPhaseArg\n 'interactions:after-action-reflow': DoAnyPhaseArg\n }\n}\n\ndeclare module '@interactjs/core/Interactable' {\n interface Interactable {\n reflow: (action: ActionProps) => ReturnType\n }\n}\n\ndeclare module '@interactjs/core/Interaction' {\n interface Interaction {\n _reflowPromise: Promise\n _reflowResolve: (...args: unknown[]) => void\n }\n}\n\ndeclare module '@interactjs/core/InteractEvent' {\n interface PhaseMap {\n reflow?: true\n }\n}\n\nexport function install (scope: Scope) {\n const {\n /** @lends Interactable */\n Interactable,\n } = scope\n\n scope.actions.phases.reflow = true\n\n /**\n * ```js\n * const interactable = interact(target)\n * const drag = { name: drag, axis: 'x' }\n * const resize = { name: resize, edges: { left: true, bottom: true }\n *\n * interactable.reflow(drag)\n * interactable.reflow(resize)\n * ```\n *\n * Start an action sequence to re-apply modifiers, check drops, etc.\n *\n * @param { Object } action The action to begin\n * @param { string } action.name The name of the action\n * @returns { Promise } A promise that resolves to the `Interactable` when actions on all targets have ended\n */\n Interactable.prototype.reflow = function (action: ActionProps) {\n return doReflow(this, action, scope)\n }\n}\n\nfunction doReflow (\n interactable: Interactable,\n action: ActionProps,\n scope: Scope,\n): Promise {\n const elements = (is.string(interactable.target)\n ? arr.from(interactable._context.querySelectorAll(interactable.target))\n : [interactable.target]) as Element[]\n\n // tslint:disable-next-line variable-name\n const Promise = (scope.window as any).Promise\n const promises: Array> | null = Promise ? [] : null\n\n for (const element of elements) {\n const rect = interactable.getRect(element as HTMLElement | SVGElement)\n\n if (!rect) {\n break\n }\n\n const runningInteraction = arr.find(scope.interactions.list, (interaction: Interaction) => {\n return (\n interaction.interacting() &&\n interaction.interactable === interactable &&\n interaction.element === element &&\n interaction.prepared.name === action.name\n )\n })\n let reflowPromise: Promise\n\n if (runningInteraction) {\n runningInteraction.move()\n\n if (promises) {\n reflowPromise =\n runningInteraction._reflowPromise ||\n new Promise((resolve: any) => {\n runningInteraction._reflowResolve = resolve\n })\n }\n } else {\n const xywh = tlbrToXywh(rect)\n const coords = {\n page: { x: xywh.x, y: xywh.y },\n client: { x: xywh.x, y: xywh.y },\n timeStamp: scope.now(),\n }\n\n const event = pointerUtils.coordsToEvent(coords)\n reflowPromise = startReflow(scope, interactable, element, action, event)\n }\n\n if (promises) {\n promises.push(reflowPromise)\n }\n }\n\n return promises && Promise.all(promises).then(() => interactable)\n}\n\nfunction startReflow (\n scope: Scope,\n interactable: Interactable,\n element: Element,\n action: ActionProps,\n event: any,\n) {\n const interaction = scope.interactions.new({ pointerType: 'reflow' })\n const signalArg = {\n interaction,\n event,\n pointer: event,\n eventTarget: element,\n phase: 'reflow',\n } as const\n\n interaction.interactable = interactable\n interaction.element = element\n interaction.prevEvent = event\n interaction.updatePointer(event, event, element, true)\n pointerUtils.setZeroCoords(interaction.coords.delta)\n\n copyAction(interaction.prepared, action)\n interaction._doPhase(signalArg)\n\n const { Promise } = (scope.window as unknown) as { Promise: PromiseConstructor }\n const reflowPromise = Promise\n ? new Promise((resolve) => {\n interaction._reflowResolve = resolve\n })\n : undefined\n\n interaction._reflowPromise = reflowPromise\n interaction.start(action, interactable, element)\n\n if (interaction._interacting) {\n interaction.move(signalArg)\n interaction.end(event)\n } else {\n interaction.stop()\n interaction._reflowResolve()\n }\n\n interaction.removePointer(event, event)\n\n return reflowPromise\n}\n\nconst reflow: Plugin = {\n id: 'reflow',\n install,\n listeners: {\n // remove completed reflow interactions\n 'interactions:stop': ({ interaction }, scope) => {\n if (interaction.pointerType === 'reflow') {\n if (interaction._reflowResolve) {\n interaction._reflowResolve()\n }\n\n arr.remove(scope.interactions.list, interaction)\n }\n },\n },\n}\n\nexport default reflow\n","import actions from '@interactjs/actions/plugin'\nimport autoScroll from '@interactjs/auto-scroll/plugin'\nimport autoStart from '@interactjs/auto-start/plugin'\nimport interactablePreventDefault from '@interactjs/core/interactablePreventDefault'\nimport devTools from '@interactjs/dev-tools/plugin'\nimport inertia from '@interactjs/inertia/plugin'\nimport interact from '@interactjs/interact'\nimport modifiers from '@interactjs/modifiers/plugin'\nimport offset from '@interactjs/offset/plugin'\nimport pointerEvents from '@interactjs/pointer-events/plugin'\nimport reflow from '@interactjs/reflow/plugin'\n\ninteract.use(interactablePreventDefault)\n\ninteract.use(offset)\n\n// pointerEvents\ninteract.use(pointerEvents)\n\n// inertia\ninteract.use(inertia)\n\n// snap, resize, etc.\ninteract.use(modifiers)\n\n// autoStart, hold\ninteract.use(autoStart)\n\n// drag and drop, resize, gesture\ninteract.use(actions)\n\n// autoScroll\ninteract.use(autoScroll)\n\n// reflow\ninteract.use(reflow)\n\n// eslint-disable-next-line no-undef\nif (process.env.NODE_ENV !== 'production') {\n interact.use(devTools)\n}\n\nexport default interact\n\nif (typeof module === 'object' && !!module) {\n try {\n module.exports = interact\n } catch {}\n}\n\n;(interact as any).default = interact\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport interact from '@interactjs/interactjs/index'\n\nexport default interact\n\nif (typeof module === 'object' && !!module) {\n try {\n module.exports = interact\n } catch {}\n}\n\n;(interact as any).default = interact\n","\nreturn _$index_79;\n\n});\n","/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.0\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"