{"version":3,"sources":["webpack:///./project/womensopen/code/assets/components/form-phone-input/html/item.hbs","webpack:///./project/womensopen/code/assets/components/form-phone-input/html/choise.hbs","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/html/flag-suggestion.hbs","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/html/player-suggestion.hbs","webpack:///./project/womensopen/code/assets/foundation/global-error-handler.js","webpack:///webpack:///webpack/universalModuleDefinition","webpack:///webpack:/webpack/bootstrap 1f68e731c73fccad66a2","webpack:///webpack:///node_modules/core-js/modules/_wks.js","webpack:///webpack:///src/scripts/lib/utils.js","webpack:///webpack:///node_modules/core-js/modules/_core.js","webpack:///webpack:///node_modules/core-js/modules/_global.js","webpack:///webpack:///node_modules/core-js/modules/_hide.js","webpack:///webpack:///src/scripts/constants.js","webpack:///webpack:///node_modules/core-js/modules/_export.js","webpack:///webpack:///node_modules/core-js/modules/_object-dp.js","webpack:///webpack:///node_modules/core-js/modules/_an-object.js","webpack:///webpack:///node_modules/core-js/modules/_is-object.js","webpack:///webpack:///node_modules/core-js/modules/_descriptors.js","webpack:///webpack:///node_modules/core-js/modules/_has.js","webpack:///webpack:///node_modules/core-js/modules/_property-desc.js","webpack:///webpack:///node_modules/core-js/modules/_uid.js","webpack:///webpack:///node_modules/core-js/modules/_ctx.js","webpack:///webpack:///node_modules/core-js/modules/_cof.js","webpack:///webpack:///node_modules/core-js/modules/_to-object.js","webpack:///webpack:///node_modules/core-js/modules/_defined.js","webpack:///webpack:///node_modules/core-js/modules/_to-length.js","webpack:///webpack:///node_modules/core-js/modules/_to-integer.js","webpack:///webpack:///node_modules/core-js/modules/_shared-key.js","webpack:///webpack:///node_modules/core-js/modules/_fails.js","webpack:///webpack:///node_modules/core-js/modules/_dom-create.js","webpack:///webpack:///node_modules/core-js/modules/_redefine.js","webpack:///webpack:///node_modules/core-js/modules/_iobject.js","webpack:///webpack:///node_modules/core-js/modules/_shared.js","webpack:///webpack:///node_modules/core-js/modules/_add-to-unscopables.js","webpack:///webpack:///node_modules/core-js/modules/_to-iobject.js","webpack:///webpack:///node_modules/core-js/modules/_array-includes.js","webpack:///webpack:///node_modules/core-js/modules/_enum-bug-keys.js","webpack:///webpack:///node_modules/core-js/modules/_set-to-string-tag.js","webpack:///webpack:///node_modules/lodash-es/_overArg.js","webpack:///webpack:///node_modules/lodash-es/_root.js","webpack:///webpack:///node_modules/lodash-es/_Symbol.js","webpack:///webpack:///node_modules/lodash-es/_getRawTag.js","webpack:///webpack:///node_modules/lodash-es/_objectToString.js","webpack:///webpack:///node_modules/lodash-es/_baseGetTag.js","webpack:///webpack:///node_modules/lodash-es/_getPrototype.js","webpack:///webpack:///node_modules/lodash-es/isPlainObject.js","webpack:///webpack:///node_modules/lodash-es/isObjectLike.js","webpack:///webpack:///node_modules/redux/es/createStore.js","webpack:///webpack:///node_modules/redux/es/combineReducers.js","webpack:///webpack:///node_modules/redux/es/bindActionCreators.js","webpack:///webpack:///node_modules/redux/es/compose.js","webpack:///webpack:///node_modules/redux/es/applyMiddleware.js","webpack:///webpack:///node_modules/redux/es/index.js","webpack:///webpack:///(webpack)/buildin/global.js","webpack:///webpack:///src/scripts/components/wrapped-element.js","webpack:///webpack:///src/scripts/templates.js","webpack:///webpack:///src/scripts/choices.js","webpack:///webpack:///node_modules/fuse.js/dist/fuse.js","webpack:///webpack:///node_modules/deepmerge/dist/es.js","webpack:///webpack:///src/scripts/lib/polyfills.js","webpack:///webpack:///node_modules/core-js/fn/array/find.js","webpack:///webpack:///node_modules/core-js/modules/es6.array.find.js","webpack:///webpack:///node_modules/core-js/modules/_ie8-dom-define.js","webpack:///webpack:///node_modules/core-js/modules/_to-primitive.js","webpack:///webpack:///node_modules/core-js/modules/_a-function.js","webpack:///webpack:///node_modules/core-js/modules/_array-methods.js","webpack:///webpack:///node_modules/core-js/modules/_array-species-create.js","webpack:///webpack:///node_modules/core-js/modules/_array-species-constructor.js","webpack:///webpack:///node_modules/core-js/modules/_is-array.js","webpack:///webpack:///node_modules/core-js/fn/array/from.js","webpack:///webpack:///node_modules/core-js/modules/es6.string.iterator.js","webpack:///webpack:///node_modules/core-js/modules/_string-at.js","webpack:///webpack:///node_modules/core-js/modules/_iter-define.js","webpack:///webpack:///node_modules/core-js/modules/_iter-create.js","webpack:///webpack:///node_modules/core-js/modules/_object-create.js","webpack:///webpack:///node_modules/core-js/modules/_object-dps.js","webpack:///webpack:///node_modules/core-js/modules/_object-keys.js","webpack:///webpack:///node_modules/core-js/modules/_object-keys-internal.js","webpack:///webpack:///node_modules/core-js/modules/_to-absolute-index.js","webpack:///webpack:///node_modules/core-js/modules/_html.js","webpack:///webpack:///node_modules/core-js/modules/_object-gpo.js","webpack:///webpack:///node_modules/core-js/modules/es6.array.from.js","webpack:///webpack:///node_modules/core-js/modules/_iter-call.js","webpack:///webpack:///node_modules/core-js/modules/_is-array-iter.js","webpack:///webpack:///node_modules/core-js/modules/_create-property.js","webpack:///webpack:///node_modules/core-js/modules/core.get-iterator-method.js","webpack:///webpack:///node_modules/core-js/modules/_classof.js","webpack:///webpack:///node_modules/core-js/modules/_iter-detect.js","webpack:///webpack:///node_modules/core-js/fn/array/includes.js","webpack:///webpack:///node_modules/core-js/modules/es7.array.includes.js","webpack:///webpack:///node_modules/custom-event-polyfill/custom-event-polyfill.js","webpack:///webpack:///src/scripts/store/store.js","webpack:///webpack:///node_modules/lodash-es/_freeGlobal.js","webpack:///webpack:///node_modules/symbol-observable/es/index.js","webpack:///webpack:///(webpack)/buildin/harmony-module.js","webpack:///webpack:///node_modules/symbol-observable/es/ponyfill.js","webpack:///webpack:///src/scripts/reducers/index.js","webpack:///webpack:///src/scripts/reducers/items.js","webpack:///webpack:///src/scripts/reducers/groups.js","webpack:///webpack:///src/scripts/reducers/choices.js","webpack:///webpack:///src/scripts/components/index.js","webpack:///webpack:///src/scripts/components/dropdown.js","webpack:///webpack:///src/scripts/components/container.js","webpack:///webpack:///src/scripts/components/input.js","webpack:///webpack:///src/scripts/components/list.js","webpack:///webpack:///src/scripts/components/wrapped-input.js","webpack:///webpack:///src/scripts/components/wrapped-select.js","webpack:///webpack:///node_modules/classnames/index.js","webpack:///webpack:///src/scripts/actions/choices.js","webpack:///webpack:///src/scripts/actions/items.js","webpack:///webpack:///src/scripts/actions/groups.js","webpack:///webpack:///src/scripts/actions/misc.js","webpack:///./project/womensopen/code/assets/components/section/img/wave.png","webpack:///./project/womensopen/code/assets/general/js/polyfills.js","webpack:///./Feature/ContentComponents/code/assets/componets/accordion/js/accordion.component.js","webpack:///./Feature/ContentComponents/code/assets/componets/accordion/index.js","webpack:///./project/womensopen/code/assets/components/accordion/index.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/sign-in-form-helpers.js","webpack:///./project/womensopen/code/assets/components/sso/store/api/sign-in-form-api.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/constants/form-message-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/constants/form-date-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/file-state.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/order-type.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/upgrade-form-helper.js","webpack:///./project/womensopen/code/assets/general/js/basket/currency-helper.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/helpers/data-format-helper.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/user-data-cookie/user-data-cookie-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/user-data-cookie/user-data-cookie-helpers.js","webpack:///./project/womensopen/code/assets/components/account/js/account.component.js","webpack:///./project/womensopen/code/assets/components/account/js/modal-trigger-login.component.js","webpack:///./project/womensopen/code/assets/components/account/js/oauth-handler.component.js","webpack:///./project/womensopen/code/assets/components/account/index.js","webpack:///./project/womensopen/code/assets/components/account-profile/js/account-profile.component.js","webpack:///./project/womensopen/code/assets/components/account-profile/index.js","webpack:///./project/womensopen/code/assets/components/alert-bars/js/alert-bar.js","webpack:///./project/womensopen/code/assets/components/alert-bars/js/alert-bars-layout.js","webpack:///./project/womensopen/code/assets/components/alert-bars/js/alert-bars.component.js","webpack:///./project/womensopen/code/assets/components/alert-bars/index.js","webpack:///./project/womensopen/code/assets/components/anti-forgery-token/js/anti-forgery-token.component.js","webpack:///./project/womensopen/code/assets/components/anti-forgery-token/index.js","webpack:///./project/womensopen/code/assets/general/js/basket/constants.js","webpack:///./project/womensopen/code/assets/general/js/basket/validation-helper.js","webpack:///./project/womensopen/code/assets/general/js/throttle-message.js","webpack:///./project/womensopen/code/assets/general/js/basket/basket-service.js","webpack:///./project/womensopen/code/assets/general/js/basket/basket-controller.js","webpack:///./project/womensopen/code/assets/components/basket/js/basket-product.js","webpack:///./project/womensopen/code/assets/components/basket/js/basket-product-group.js","webpack:///./project/womensopen/code/assets/components/basket/js/basket-groups.js","webpack:///./project/womensopen/code/assets/components/basket/js/basket-total.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/BulletPointList.js","webpack:///./project/womensopen/code/assets/general/js/basket/basket-dialog-box-content-body.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/one-club-register/RegisterFormBanner.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/ConfirmationModal.js","webpack:///./project/womensopen/code/assets/components/basket/js/basket-pay-buttons.js","webpack:///./project/womensopen/code/assets/components/basket/js/basket-errors.js","webpack:///./project/womensopen/code/assets/general/js/basket/tracking-helper.js","webpack:///./project/womensopen/code/assets/components/basket/js/basket.js","webpack:///./project/womensopen/code/assets/general/js/basket/basket-products-helper.js","webpack:///./project/womensopen/code/assets/components/basket/js/basket.component.js","webpack:///./project/womensopen/code/assets/components/basket/index.js","webpack:///./project/womensopen/code/assets/components/basket-buy-links/js/basket-buy-links.component.js","webpack:///./project/womensopen/code/assets/components/basket-buy-links/index.js","webpack:///./project/womensopen/code/assets/components/basket-cleaner/js/basket-cleaner.component.js","webpack:///./project/womensopen/code/assets/components/basket-cleaner/index.js","webpack:///./project/womensopen/code/assets/components/basket-icon/js/basket-icon.componenet.js","webpack:///./project/womensopen/code/assets/components/basket-icon/index.js","webpack:///./project/womensopen/code/assets/components/carousel-controls/js/enums.js","webpack:///./project/womensopen/code/assets/components/contextual-manager/js/contextual-manager.component.js","webpack:///./project/womensopen/code/assets/components/contextual-manager/index.js","webpack:///./project/womensopen/code/assets/components/contextual-stats/js/contextual-stats-layout.js","webpack:///./project/womensopen/code/assets/components/contextual-stats/js/contextual-stats.component.js","webpack:///./project/womensopen/code/assets/components/contextual-stats/index.js","webpack:///./project/womensopen/code/assets/components/cookie-warning/js/cookie-warning.component.js","webpack:///./project/womensopen/code/assets/components/cookie-warning/index.js","webpack:///./project/womensopen/code/assets/components/sitecore-fields/js/sitecore-image-field.js","webpack:///./project/womensopen/code/assets/components/sitecore-fields/js/sitecore-link-field.js","webpack:///./project/womensopen/code/assets/components/countdown-alertbar/js/helpers/toch-helpers.js","webpack:///./project/womensopen/code/assets/components/countdown-alertbar/js/countdown-alertbar/CountdownAlertBar.js","webpack:///./project/womensopen/code/assets/components/countdown-alertbar/js/countdown-alertbar/countdown-alertbar.component.js","webpack:///./project/womensopen/code/assets/components/countdown-alertbar/index.js","webpack:///./project/womensopen/code/assets/components/countries/js/countries.component.js","webpack:///./project/womensopen/code/assets/components/countries/index.js","webpack:///./project/womensopen/code/assets/components/data-capture/js/data-capture-wizard/step-free-form.js","webpack:///./project/womensopen/code/assets/components/data-capture/js/data-capture-wizard/step-dropdown.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/constants/form-validation-constants.js","webpack:///./project/womensopen/code/assets/components/sso/validators/text-validators.js","webpack:///./project/womensopen/code/assets/components/data-capture/js/data-capture-wizard/step-details.js","webpack:///./project/womensopen/code/assets/components/data-capture/js/data-capture-wizard/step-finish-status.js","webpack:///./project/womensopen/code/assets/components/data-capture/js/data-capture-wizard/step-quiz.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormSpinner.js","webpack:///./project/womensopen/code/assets/components/data-capture/js/data-capture-wizard/with-data-capture.js","webpack:///./project/womensopen/code/assets/components/data-capture/js/data-capture-wizard/wizard-dashboard.js","webpack:///./project/womensopen/code/assets/components/data-capture/js/data-capture.component.js","webpack:///./project/womensopen/code/assets/components/data-capture/index.js","webpack:///./project/womensopen/code/assets/components/dfp-banner/js/dfp-banner.component.js","webpack:///./project/womensopen/code/assets/components/dfp-banner/index.js","webpack:///./project/womensopen/code/assets/components/cards/js/news-card.js","webpack:///./project/womensopen/code/assets/components/cards/js/fact-card.js","webpack:///./project/womensopen/code/assets/components/cards/js/player-card.js","webpack:///./project/womensopen/code/assets/components/cards/js/social-card.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/enums.js","webpack:///./project/womensopen/code/assets/components/cards/js/standalone-fact-card.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/news-feed-listing.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/row-patterns.js","webpack:///./project/womensopen/code/assets/components/feature-content/js/feature-content.component.js","webpack:///./project/womensopen/code/assets/components/feature-content/index.js","webpack:///./project/womensopen/code/assets/components/force-sign-in/js/force-sign-in.component.js","webpack:///./project/womensopen/code/assets/components/force-sign-in/js/constants.js","webpack:///./project/womensopen/code/assets/components/force-sign-in/index.js","webpack:///./project/womensopen/code/assets/components/social-provider/js/facebook.js","webpack:///./project/womensopen/code/assets/components/social-provider/js/google.js","webpack:///./project/womensopen/code/assets/components/social-provider/js/amazon.js","webpack:///./project/womensopen/code/assets/components/form/js/form-sso.component.js","webpack:///./project/womensopen/code/assets/components/form/index.js","webpack:///./project/womensopen/code/assets/components/form-custom-select/js/choices-wrapper.js","webpack:///./project/womensopen/code/assets/components/form-custom-select/js/form-custom-select.component.js","webpack:///./project/womensopen/code/assets/components/form-custom-select/index.js","webpack:///./project/womensopen/code/assets/components/form-field/js/form-field.component.js","webpack:///./project/womensopen/code/assets/components/form-field/index.js","webpack:///./project/womensopen/code/assets/components/form-file/js/form-file.component.js","webpack:///./project/womensopen/code/assets/components/form-file/index.js","webpack:///./project/womensopen/code/assets/components/form-phone-input/js/form-phone-input.component.js","webpack:///./project/womensopen/code/assets/components/form-phone-input/index.js","webpack:///./project/womensopen/code/assets/components/gtm-trigger/js/gtm-trigger.component.js","webpack:///./project/womensopen/code/assets/components/gtm-trigger/index.js","webpack:///./project/womensopen/code/assets/components/header/js/header.component.js","webpack:///./project/womensopen/code/assets/components/header/index.js","webpack:///./project/womensopen/code/assets/components/hero/js/hero.component.js","webpack:///./project/womensopen/code/assets/components/hero/index.js","webpack:///./project/womensopen/code/assets/components/image-gallery/js/image-gallery.component.js","webpack:///./project/womensopen/code/assets/components/image-gallery/index.js","webpack:///./project/womensopen/code/assets/components/imga-iframe/js/imga-iframe-helpers.js","webpack:///./project/womensopen/code/assets/components/imga-iframe/js/imga-iframe-holder.js","webpack:///./project/womensopen/code/assets/general/js/utils/screen-size-utils.js","webpack:///./project/womensopen/code/assets/components/imga-iframe/js/imga-iframe.component.js","webpack:///./project/womensopen/code/assets/components/imga-iframe/index.js","webpack:///./project/womensopen/code/assets/general/js/utils/decode-utils.js","webpack:///./project/womensopen/code/assets/general/js/utils/jwt-utils.js","webpack:///./project/womensopen/code/assets/components/imga-matchups-game/js/imga-matchups-game-layout.js","webpack:///./project/womensopen/code/assets/components/imga-matchups-game/js/imga-matchups-game.component.js","webpack:///./project/womensopen/code/assets/components/imga-matchups-game/index.js","webpack:///./project/womensopen/code/assets/components/large-hero/js/large-hero.component.js","webpack:///./project/womensopen/code/assets/components/large-hero/index.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/sortingStrategies.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-alpha-list.js","webpack:///./project/womensopen/code/assets/components/favorite-button/js/favorite-button.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-hbh-button.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-hole-title.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-r-score.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-player-title.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-movers-title.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-scores-title.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-title-basic.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-row-title.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-pos.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-movers-basic-icon.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-movers-extended-icon.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-sort.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-featured-group-live.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-player-extra.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-player-basic.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/actions/renderData.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-player-result.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-player-leaders.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-player.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-to-par.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-today.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-total.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-hole.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-scores.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-round.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-cell-round-total.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-rows.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-table.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/containers/leaderboard-table-wrapper.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/components/leaderboard-info-button.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/actions/get-players-data.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/leaderboard-container.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/leaderboard-layout.js","webpack:///./project/womensopen/code/assets/components/leaderboard/js/leaderboard.component.js","webpack:///./project/womensopen/code/assets/components/leaderboard/index.js","webpack:///./project/womensopen/code/assets/components/leaderboard-widget/js/leaderboard-widget-alpha-list.js","webpack:///./project/womensopen/code/assets/components/leaderboard-widget/js/leaderboard-widget-layout.js","webpack:///./project/womensopen/code/assets/components/leaderboard-widget/js/leaderboard-widget.component.js","webpack:///./project/womensopen/code/assets/components/leaderboard-widget/index.js","webpack:///./project/womensopen/code/assets/components/listing/js/ListingLoadMore.js","webpack:///./project/womensopen/code/assets/components/listing/js/constants.js","webpack:///./project/womensopen/code/assets/components/live-header/js/live-header-title.js","webpack:///./project/womensopen/code/assets/components/live-header/js/live-header.component.js","webpack:///./project/womensopen/code/assets/components/live-header/index.js","webpack:///./project/womensopen/code/assets/components/live-navigation/js/live-navigation.component.js","webpack:///./project/womensopen/code/assets/components/live-navigation/index.js","webpack:///./project/womensopen/code/assets/components/live-submenu/js/live-submenu.component.js","webpack:///./project/womensopen/code/assets/components/live-submenu/index.js","webpack:///./project/womensopen/code/assets/components/live-video-widget/js/live-video-widget.component.js","webpack:///./project/womensopen/code/assets/components/live-video-widget/index.js","webpack:///./project/womensopen/code/assets/components/live-widget/js/live-widget-posts.js","webpack:///./project/womensopen/code/assets/components/live-widget/js/live-widget-embedded-content.js","webpack:///./project/womensopen/code/assets/components/live-widget/js/live-widget.component.js","webpack:///./project/womensopen/code/assets/components/live-widget/index.js","webpack:///./project/womensopen/code/assets/components/main-nav/js/main-nav.component.js","webpack:///./project/womensopen/code/assets/components/main-nav/index.js","webpack:///./project/womensopen/code/assets/components/make-stories/js/make-stories-layout.js","webpack:///./project/womensopen/code/assets/components/make-stories/js/make-stories.component.js","webpack:///./project/womensopen/code/assets/components/make-stories/index.js","webpack:///./project/womensopen/code/assets/general/js/modal-spa.js","webpack:///./project/womensopen/code/assets/components/modal-spa-trigger/js/modal-spa-trigger.component.js","webpack:///./project/womensopen/code/assets/components/modal-spa-trigger/index.js","webpack:///./project/womensopen/code/assets/components/modal-trigger-promo-panel/js/modal-trigger-promo-panel-wrapper.js","webpack:///./project/womensopen/code/assets/components/modal-trigger-promo-panel/js/modal-trigger-promo-panel.component.js","webpack:///./project/womensopen/code/assets/components/modal-trigger-promo-panel/index.js","webpack:///./project/womensopen/code/assets/components/multimedia-carousel/js/multimedia-carousel.component.js","webpack:///./project/womensopen/code/assets/components/multimedia-carousel/index.js","webpack:///./project/womensopen/code/assets/components/my-account-url/js/my-account-url.component.js","webpack:///./project/womensopen/code/assets/components/my-account-url/index.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/patterns.js","webpack:///./project/womensopen/code/assets/components/listing/js/listing-helper.js","webpack:///./project/womensopen/code/assets/components/listing/js/Listing.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/news-feed-type-filter.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/news-feed-tag-filter.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/news-feed-header.js","webpack:///./project/womensopen/code/assets/components/cards/js/banner-card.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/news-feed-layout.js","webpack:///./project/womensopen/code/assets/components/news-feed/js/news-feed.component.js","webpack:///./project/womensopen/code/assets/components/news-feed/index.js","webpack:///./project/womensopen/code/assets/components/news-feed-live/js/news-feed-live-layout.js","webpack:///./project/womensopen/code/assets/components/news-feed-live/js/news-feed-live.component.js","webpack:///./project/womensopen/code/assets/components/news-feed-live/index.js","webpack:///./project/womensopen/code/assets/components/news-feed-live-selector/js/news-feed-live-selector.component.js","webpack:///./project/womensopen/code/assets/components/news-feed-live-selector/index.js","webpack:///./project/womensopen/code/assets/components/news-feed-preview/js/news-feed-preview.component.js","webpack:///./project/womensopen/code/assets/components/news-feed-preview/js/patterns.js","webpack:///./project/womensopen/code/assets/components/news-feed-preview/index.js","webpack:///./project/womensopen/code/assets/components/player-carousel/js/player-carousel.component.js","webpack:///./project/womensopen/code/assets/components/player-carousel/index.js","webpack:///./project/womensopen/code/assets/components/player-hero/js/player-hero.component.js","webpack:///./project/womensopen/code/assets/components/player-hero/index.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/qual-draw-table-player.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/enums.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/qual-draw-search-input.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/qual-draw-select.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/action-helper.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/filtering-strategies.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/qual-draw-container.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/qual-draw-layout.js","webpack:///./project/womensopen/code/assets/components/qual-draw/js/qual-draw.component.js","webpack:///./project/womensopen/code/assets/components/qual-draw/index.js","webpack:///./project/womensopen/code/assets/components/qual-events/js/qual-events-item.js","webpack:///./project/womensopen/code/assets/components/qual-events/js/qual-events.container.js","webpack:///./project/womensopen/code/assets/components/qual-events/js/qual-events.component.js","webpack:///./project/womensopen/code/assets/components/qual-events/index.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard-scoring-info.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard-const.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/helpers/roundHelper.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard-player-row.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/actions/render-color-state.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/enums.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard-row-title.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/helpers/utils.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard-table.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/helpers/viewHelper.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard-article.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qualSortingStrategies.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard-container.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard-layout.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/js/qual-leaderboard.component.js","webpack:///./project/womensopen/code/assets/components/qual-leaderboard/index.js","webpack:///./project/womensopen/code/assets/components/qualified-player-card/js/QualifiedPlayerCard.js","webpack:///./project/womensopen/code/assets/components/qualified-player-card/js/QualifiedPlayerCardItem.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/QualifiedGolfersPlayersList.js","webpack:///./project/womensopen/code/assets/general/js/string-helpers.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/PreviousQualificationEvent.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/PreviousQualificationEvents.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/actions.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/types.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/QualifiedGolfersPreview.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/QualifiedGolfers.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/reducer.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/js/qualified-golfers.component.js","webpack:///./project/womensopen/code/assets/components/qualified-golfers/index.js","webpack:///./project/womensopen/code/assets/components/qualified-player-card/js/qualified-player-card.component.js","webpack:///./project/womensopen/code/assets/components/qualified-player-card/index.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingItem.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingContent.js","webpack:///./project/womensopen/code/assets/components/predictive-search/js/PredictiveSearch.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersPredictiveSearch.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingLoadMore.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingFiltersTriggerButton.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingControls.js","webpack:///./project/womensopen/code/assets/components/listing/js/ListingSelect.js","webpack:///./project/womensopen/code/assets/components/listing/js/ListingCheckList.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingFilters.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersListingHeader.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/QualifiedPlayersListing.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/js/qualified-players-listing.component.js","webpack:///./project/womensopen/code/assets/components/qualified-players-listing/index.js","webpack:///./project/womensopen/code/assets/components/recaptcha/index.js","webpack:///./project/womensopen/code/assets/components/reset-password-url/js/reset-password-url.component.js","webpack:///./project/womensopen/code/assets/components/reset-password-url/index.js","webpack:///./project/womensopen/code/assets/components/right-header-link-item/js/right-header-link-item-helpers.js","webpack:///./project/womensopen/code/assets/components/right-header-link-item/js/right-header-link-item-constants.js","webpack:///./project/womensopen/code/assets/components/right-header-link-item/js/right-header-link-item.component.js","webpack:///./project/womensopen/code/assets/components/right-header-link-item/index.js","webpack:///./project/womensopen/code/assets/components/right-header-links/js/right-header-links.component.js","webpack:///./project/womensopen/code/assets/components/right-header-links/index.js","webpack:///./project/womensopen/code/assets/components/rolex-watch/js/rolex-watch.component.js","webpack:///./project/womensopen/code/assets/components/rolex-watch/index.js","webpack:///./project/womensopen/code/assets/components/sso/helpers/user-activity-helper.js","webpack:///./project/womensopen/code/assets/components/sso/components/sso-form-context.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/constants/form-field-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/address-form-state.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/initial-state.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/order-history-form-state.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormMessage.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/field-types.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/constants/form-style-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FieldHeader.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormTextInput.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormCaptchaField.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/FormOffers.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/FormPolicy.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/FormConsentDetails.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormSelectField.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormDateField.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/FormMultipleInterests.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/FormContactInfo.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormChecboxInput.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormLookupField.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormHTML.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormMobilePhoneInput.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormMastercardField.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/FormTextAndImageField.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-fields-config.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/form-field-helpers.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-builder.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/action-types.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/api-response-messages.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/api-status-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/register-form-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/api/register-form-api.js","webpack:///./project/womensopen/code/assets/components/sso/validators/date-validators.js","webpack:///./project/womensopen/code/assets/components/sso/validators/policy-validators.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-field-validators.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/form-state-helper.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-validator.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-scroll-helper.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/form-field-display-helpers.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/header-link-display.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/SSOFormHeader.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/SSOFormFooter.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/GTMUserActions.js","webpack:///./project/womensopen/code/assets/components/modal/js/modal-constants.js","webpack:///./project/womensopen/code/assets/components/modal/js/modal-helpers.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/form-modal-helpers.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/one-club-register/OneClubRegisterForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-register-success-form/UserRegisterSuccessForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ballot/BallotRegisterForm.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/helpers/message-helper.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/upgrade-account-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/user-address-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/user-account-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/helpers/data-format-helper-dotdigital.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ballot/helpers/ballot-summary-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ballot/BallotSummaryForm.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/item-list-form-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/api/item-list-form-api.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/item-list/SSOItemListForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ballot/BallotSignInForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ballot/BallotSignInSuccessForm.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/forgot-password-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/api/forgot-password-form-api.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/forgot-password/ForgotPasswordForm.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/reset-password-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/api/reset-password-form-api.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/cognito-challenge-names.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/sign-in-form-actions.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/reset-password/ResetPasswordForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/change-password/ChangePasswordFooter.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/change-password/ChangePasswordForm.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/verify-email-actions.js","webpack:///./project/womensopen/code/assets/components/sso/store/api/verify-email-form-api.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/verify-email/VerifyEmailForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-details/UserDetailsForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/account-home-page/LastOrder.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/account-home-page/Upcoming.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/account-home-page/FileActionsTable.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/account-home-page/AccountHomePage.js","webpack:///./project/womensopen/code/assets/components/sso/components/common/utility/SSOCloseButton.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-addresses/AddAddressForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-addresses/FormAddressDisplayField.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-addresses/UpdateAddressForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/addresses-form-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-addresses/UserAddressesForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/email-notification-settings/EmailNotificationSettingsForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/push-notifications/PushNotificationsForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/resale-tickets/ResaleTicketsButton.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/resale-tickets/ResaleTicketsFAQ.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/resale-tickets/resale-tickets-helpers.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/resale-tickets/ResaleTickets.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/order-history-display/Order.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/order-history-display/OrdersPagination.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/order-history-display/OrdersList.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/file-summary-display/FileSummary.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/file-summary-display/FileContentSummary.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/file-summary-display/InstallmentTable.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/file-summary-display/PaymentSummary.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/file-summary-display/ChangeHistorySection.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/order-history-form-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-order-history/UserOrderHistory.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/user-details-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/payment-status.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/account-form-data-utils.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/account-home-page-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/user-addresses-display-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-tickets/TicketOwnerDialog.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-tickets/TicketsDisplay.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-tickets/TicketGroups.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-tickets/TicketModalBody.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/user-tickets/UserTickets.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/change-password-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/the-one-club/TheOneClubIntro.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/the-one-club/TheOneClubMotivation.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/the-one-club/TheOneClubFAQ.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/the-one-club/LeaveOneClubModalBody.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/the-one-club/TheOneClub.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/order-history-display-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/user-tickets-display-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/the-one-club-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/tickets-resale-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/helpers/form-helpers/user-account/email-notification-settings-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/utils/user-account-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/user-account/AccountMenuLinks.js","webpack:///./project/womensopen/code/assets/components/sso/components/user-account/AccountMenu.js","webpack:///./project/womensopen/code/assets/components/sso/components/user-account/UserAccountPage.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/default-register/DefaultRegisterForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ticketing-register/TicketingRegisterForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/sign-in/SignInForm.js","webpack:///./project/womensopen/code/assets/components/sso/store/actions/basket-actions.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/upgrade-to-ticketing/UpgradeToTicketingAccountForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/upgrade-to-one-club/UpgradeToOneClubAccountForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/new-password-required/NewPasswordRequiredForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ra-members/RaMembersRegisterForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ra-members/RaMembersSignInForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ra-members/helpers/ra-members-summary-form-data.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/ra-members/RaMembersSummaryForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/forms/sign-in/SignInSuccessForm.js","webpack:///./project/womensopen/code/assets/components/sso/components/sso-form-constants.js","webpack:///./project/womensopen/code/assets/components/sso/components/SSOForm.js","webpack:///./project/womensopen/code/assets/components/sitecore-fields/js/sitecore-field-constants.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/initial-state.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/index.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/register-form-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/item-list-form-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/upgrade-account-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/basket-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/user-address-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/sign-in-form-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/forgot-password-form-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/reset-password-form-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/verify-email-form-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/user-account-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/store/reducers/api-status-reducer.js","webpack:///./project/womensopen/code/assets/components/sso/sso-form.component.js","webpack:///./project/womensopen/code/assets/components/sso/store/configure-store.js","webpack:///./project/womensopen/code/assets/components/sso/index.js","webpack:///./project/womensopen/code/assets/components/sticky-button-trigger/js/sticky-button-trigger.component.js","webpack:///./project/womensopen/code/assets/components/sticky-button-trigger/index.js","webpack:///./project/womensopen/code/assets/components/sub-nav/js/sub-nav.component.js","webpack:///./project/womensopen/code/assets/components/sub-nav/index.js","webpack:///./project/womensopen/code/assets/components/sub-page-nav/js/sub-page-nav.component.js","webpack:///./project/womensopen/code/assets/components/sub-page-nav/index.js","webpack:///./project/womensopen/code/assets/components/sublayout/js/sublayout.component.js","webpack:///./project/womensopen/code/assets/components/sublayout/index.js","webpack:///./project/womensopen/code/assets/components/tabs/js/tabs.component.js","webpack:///./project/womensopen/code/assets/components/tabs/index.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/popup-link.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/popup-link-info.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/constants.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/checkbox-panel.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/product-group-panel.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-days-form.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/ticket-builder-context.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/ticket-builder-aside.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-days-page.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/days-links.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/back-link.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/button-clear.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-panel.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-tickets/tickets-panels.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-tickets/select-tickets-standard.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-tickets/select-tickets-hospitality.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/products-helper.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/checkout-button.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-tickets/select-tickets-aside.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-tickets-page.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/extra-panel.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-extras-form.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-extras-aside.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-extras-page.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/accordion.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-parking-form.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-parking-page.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-parking-standalone-form.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/select-parking-standalone-page.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/ticket-builder.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/js/ticket-builder.component.js","webpack:///./project/womensopen/code/assets/components/ticket-builder/index.js","webpack:///./project/womensopen/code/assets/general/js/deferred.js","webpack:///./project/womensopen/code/assets/general/js/modal-with-result.js","webpack:///./project/womensopen/code/assets/components/video/js/video.component.js","webpack:///./project/womensopen/code/assets/components/video/index.js","webpack:///./project/womensopen/code/assets/components/view-order-url/js/view-order-url.component.js","webpack:///./project/womensopen/code/assets/components/view-order-url/index.js","webpack:///./project/womensopen/code/assets/components/vod-nav/js/enums.js","webpack:///./project/womensopen/code/assets/components/vod-nav/js/vod-nav.component.js","webpack:///./project/womensopen/code/assets/components/vod-nav/index.js","webpack:///./project/womensopen/code/assets/components/weglot/js/weglot-script.js","webpack:///./project/womensopen/code/assets/components/weglot/js/weglot.component.js","webpack:///./project/womensopen/code/assets/components/weglot/index.js","webpack:///./project/womensopen/code/assets/index.js","webpack:///./project/womensopen/code/assets/components/form-custom-select/html/item.hbs","webpack:///./project/womensopen/code/assets/components/form-custom-select/html/choise.hbs","webpack:///./project/womensopen/code/assets/components/account/js/sso-sign-in.component.js"],"names":["Handlebars","__webpack_require__","module","exports","template","1","container","depth0","helpers","partials","data","stack1","escapeExpression","lambda","customProperties","image","compiler","main","call","nullContext","name","hash","fn","program","inverse","noop","useData","alias1","alias2","label","value","helper","alias3","helperMissing","info","flag","src","text","highlightedText","window","onerror","msg","console","log","concat","root","factory","self","undefined","modules","installedModules","moduleId","i","l","m","c","d","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","store","uid","_Symbol2","Symbol","USE_SYMBOL","tmpEl","getRandomNumber","min","max","Math","floor","random","generateChars","length","chars","toString","getType","generateId","element","prefix","id","replace","obj","slice","isType","type","clas","stripHTML","isElement","Element","extend","extended","arguments","merge","prop","wrap","wrapper","document","createElement","nextSibling","parentNode","insertBefore","appendChild","findAncestor","el","cls","parentElement","classList","contains","findAncestorByAttrName","attr","target","hasAttribute","getAdjacentEl","startEl","className","direction","parent","children","Array","from","querySelectorAll","startPos","indexOf","isScrolledIntoView","scrollTop","offsetHeight","offsetTop","html","strToEl","str","r","cleanedInput","trim","innerHTML","firstChild","removeChild","calcWidthOfInput","input","callback","placeholder","width","offsetWidth","testEl","style","position","padding","top","left","whiteSpace","body","getComputedStyle","inputStyle","fontSize","fontFamily","fontWeight","fontStyle","letterSpacing","textTransform","requestAnimationFrame","sortByAlpha","a","b","labelA","toLowerCase","labelB","sortByScore","score","dispatchEvent","customArgs","event","CustomEvent","detail","bubbles","cancelable","regexFilter","regex","RegExp","source","test","getWindowHeight","documentElement","scrollHeight","clientHeight","reduceToValues","items","key","reduce","prev","current","push","fetchFromObject","path","index","substring","substr","isIE11","navigator","userAgent","match","existsInArray","array","some","item","cloneObject","JSON","parse","stringify","doKeysMatch","aKeys","keys","sort","bKeys","core","version","global","Function","dP","createDesc","f","_utils","DEFAULT_CLASSNAMES","containerOuter","containerInner","inputCloned","list","listItems","listSingle","listDropdown","itemSelectable","itemDisabled","itemChoice","group","groupHeading","button","activeState","focusState","openState","disabledState","highlightedState","hiddenState","flippedState","loadingState","noResults","noChoices","DEFAULT_CONFIG","choices","silent","renderChoiceLimit","maxItemCount","addItems","removeItems","removeItemButton","editItems","duplicateItemsAllowed","delimiter","paste","searchEnabled","searchChoices","searchFloor","searchResultLimit","searchFields","resetScrollPosition","shouldSort","shouldSortItems","sortFn","placeholderValue","searchPlaceholderValue","prependValue","appendValue","renderSelectedChoices","loadingText","noResultsText","noChoicesText","itemSelectText","uniqueItemText","addItemText","maxItemText","itemComparer","choice","fuseOptions","includeScore","callbackOnInit","callbackOnCreateTemplates","classNames","EVENTS","showDropdown","hideDropdown","change","search","addItem","removeItem","highlightItem","highlightChoice","ACTION_TYPES","ADD_CHOICE","FILTER_CHOICES","ACTIVATE_CHOICES","CLEAR_CHOICES","ADD_GROUP","ADD_ITEM","REMOVE_ITEM","HIGHLIGHT_ITEM","CLEAR_ALL","KEY_CODES","BACK_KEY","DELETE_KEY","ENTER_KEY","A_KEY","ESC_KEY","UP_KEY","DOWN_KEY","PAGE_UP_KEY","PAGE_DOWN_KEY","hide","redefine","ctx","$export","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_PROTO","P","IS_BIND","B","S","expProto","U","W","R","anObject","IE8_DOM_DEFINE","toPrimitive","O","Attributes","e","TypeError","isObject","it","_typeof","bitmap","writable","px","aFunction","that","apply","defined","toInteger","ceil","isNaN","shared","exec","is","has","SRC","$toString","TPL","split","inspectSource","val","safe","isFunction","join","String","this","cof","propertyIsEnumerable","mode","copyright","UNSCOPABLES","ArrayProto","IObject","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","def","TAG","tag","stat","func","transform","freeSelf","_freeGlobal","objectProto","_getRawTag_hasOwnProperty","nativeObjectToString","symToStringTag","_Symbol","toStringTag","_objectToString_nativeObjectToString","_baseGetTag_symToStringTag","getPrototypeOf","arg","funcProto","isPlainObject_objectProto","funcToString","isPlainObject_hasOwnProperty","objectCtorString","lodash_es_isObjectLike","isOwn","unmasked","result","_getRawTag","_objectToString","_baseGetTag","proto","_getPrototype","Ctor","constructor","ActionTypes","INIT","createStore_createStore","reducer","preloadedState","enhancer","_ref2","Error","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","getState","subscribe","listener","isSubscribed","splice","dispatch","action","lodash_es_isPlainObject","listeners","replaceReducer","nextReducer","es","_ref","outerSubscribe","observer","observeState","next","unsubscribe","getUndefinedStateErrorMessage","actionType","combineReducers","reducers","reducerKeys","finalReducers","finalReducerKeys","shapeAssertionError","forEach","assertReducerShape","state","hasChanged","nextState","_i","_key","previousStateForKey","nextStateForKey","errorMessage","bindActionCreator","actionCreator","bindActionCreators","actionCreators","boundActionCreators","compose","_len","funcs","_extends","assign","applyMiddleware","middlewares","createStore","chain","_dispatch","middlewareAPI","map","middleware","__webpack_exports__","g","eval","WrappedElement","_classCallCheck","_extends2","isDisabled","add","tabIndex","origStyle","getAttribute","setAttribute","remove","removeAttribute","disabled","eventType","TEMPLATES","globalClasses","isSelectElement","isSelectOneElement","passedElementType","role","ariaAutoComplete","itemList","_classNames","localClasses","_classnames2","default","_defineProperty","_classNames2","_classNames3","ariaSelected","active","ariaDisabled","highlighted","choiceList","ariaMultiSelectable","choiceGroup","_classNames5","groupId","elementId","dropdown","notice","_classNames6","option","_components","_constants","_templates","_choices","_items","_groups","_misc","Choices","userConfig","elements","_generateInstances","config","_deepmerge2","all","userDefaults","warn","includes","passedElement","querySelector","_isTextElement","_isSelectOneElement","_isSelectMultipleElement","_isSelectElement","WrappedInput","WrappedSelect","initialised","_store","_store3","render","_initialState","_currentState","_prevState","_currentValue","_canSearch","_isScrollingOnIe","_highlightPosition","_wasTap","_placeholderValue","_generatePlaceholderValue","_baseId","_direction","_idNames","_presetChoices","_presetItems","_render","bind","_onFocus","_onBlur","_onKeyUp","_onKeyDown","_onClick","_onTouchMove","_onTouchEnd","_onMouseDown","_onMouseOver","_onFormReset","_onAKey","_onEnterKey","_onEscapeKey","_onDirectionKey","_onDeleteKey","init","error","_createTemplates","_createElements","_createStructure","_addEventListeners","disable","_removeEventListeners","reveal","unwrap","options","clearStore","templates","enable","runEvent","_item$groupId","_item$value","_item$label","getGroupById","triggerEvent","groupValue","_item$groupId2","_item$value2","_item$label2","_this","_this2","unhighlightItem","_this3","activeItems","filter","_removeItem","excludedId","_this4","_this5","highlightedActiveItems","_triggerChange","preventInputFocus","_this6","isActive","show","open","distanceFromTopWindow","focus","preventInputBlur","_this7","close","removeActiveDescendant","blur","valueOnly","values","selectedItems","itemValue","args","_this8","_toConsumableArray","_setChoiceOrItem","_this9","_findAndSelectChoiceByValue","_this10","replaceChoices","_clearChoices","removeLoadingState","groupOrChoice","_addGroup","valueKey","labelKey","_addChoice","isSelected","selected","clearAll","shouldSetInputWidth","clear","_isSearching","activateChoices","_this11","_handleLoadingState","_ajaxCallback","stateChanged","groups","shouldRenderChoices","shouldRenderItems","_renderChoices","_renderItems","_this12","activeGroups","activeChoices","choiceListFragment","createDocumentFragment","scrollToTop","activePlaceholders","activeChoice","_createChoicesFragment","_createGroupsFragment","childNodes","canAddItem","_canAddItem","response","append","_highlightChoice","_getTemplate","dropdownItem","itemListFragment","_createItemsFragment","fragment","_this13","groupFragment","groupChoices","getGroupChoices","dropdownGroup","_this14","withinGroup","choicesFragment","_config","appendChoice","rendererableChoices","_rendererableChoices$","acc","placeholderChoices","normalChoices","choiceLimit","sortedChoices","_this15","_config2","listItem","addItemToFragment","placeholderChoice","_addItem","choiceId","itemId","itemToRemove","find","parseInt","_selectPlaceholderChoice","_this16","hasShiftKey","passedId","getChoiceById","passedKeyCode","keyCode","hasActiveDropdown","clearInput","lastItem","hasHighlightedItems","setWidth","removeHighlightedItems","isLoading","placeholderItem","getChild","addLoadingState","isFocussed","_config3","hasUnactiveChoices","resultCount","_searchChoices","isDuplicateValue","_this17","results","parsedResults","newValue","currentValue","haystack","searchableChoices","needle","_fuse2","filterChoices","addEventListener","form","addEventListeners","removeEventListener","removeEventListeners","_keyDownActions","ctrlKey","metaKey","hasFocusedInput","hasItems","hasChildren","keyString","fromCharCode","hasCtrlDownKeyPressed","keyDownActions","outerHTML","backKey","deleteKey","_handleSearch","_ref3","activeElement","highlightAll","_ref4","enterKey","_handleButtonAction","preventDefault","_handleChoiceAction","_ref5","_ref6","downKey","pageUpKey","pageDownKey","directionInt","nextEl","pop","currentEl","scrollToChoice","_ref7","_handleBackspace","touches","stopPropagation","shiftKey","buttonTarget","itemTarget","choiceTarget","_handleItemAction","_ref8","_ref9","unhighlightAll","removeFocusState","_ref10","_this18","addFocusState","select-one","select-multiple","_ref11","_this19","resetTo","_this20","passedEl","setActiveDescendant","_ref12","_ref12$label","_ref12$choiceId","_ref12$groupId","_ref12$customProperti","_ref12$placeholder","_ref12$keyCode","passedValue","passedCustomProperties","passedLabel","passedOptionId","removeActiveItems","_ref13","_ref13$label","_ref13$isSelected","_ref13$isDisabled","_ref13$groupId","_ref13$customProperti","_ref13$placeholder","_ref13$keyCode","choiceLabel","choiceElementId","addChoice","clearChoices","_ref14","_this21","_ref14$valueKey","_ref14$labelKey","getElementsByTagName","Date","valueOf","addGroup","isOptDisabled","_templates$template","_config4","userTemplates","Container","Input","List","Dropdown","conceal","_addPredefinedChoices","_addPredefinedItems","_this22","passedGroups","optionGroups","placeholderOption","tagName","passedOptions","allChoices","hasSelectedChoice","shouldPreselect","handleChoice","_this23","itemType","handlePresetItem","_this24","string","_this25","foundChoice","instances","s","isArray","_createClass","defineProperties","props","descriptor","Constructor","protoProps","staticProps","bitapRegexSearch","bitapSearch","patternAlphabet","Bitap","pattern","_ref$location","location","_ref$distance","distance","_ref$threshold","threshold","_ref$maxPatternLength","maxPatternLength","_ref$isCaseSensitive","isCaseSensitive","_ref$tokenSeparator","tokenSeparator","_ref$findAllMatches","findAllMatches","_ref$minMatchCharLeng","minMatchCharLength","instance","isMatch","matchedIndices","_options","_options2","deepValue","dotIndex","firstSegment","remaining","len","matchmask","start","end","mask","charAt","SPECIAL_CHARS_REGEX","matches","matchesLen","_ref$errors","errors","_ref$currentLocation","currentLocation","_ref$expectedLocation","expectedLocation","accuracy","proximity","abs","bitapScore","textLen","currentThreshold","bestLocation","patternLen","matchMask","lastIndexOf","_score","lastBitArr","finalScore","binMax","binMin","binMid","finish","bitArr","j","charMatch","Fuse","_ref$caseSensitive","caseSensitive","_ref$id","_ref$keys","_ref$shouldSort","_ref$getFn","getFn","_ref$sortFn","_ref$tokenize","tokenize","_ref$matchAllTokens","matchAllTokens","_ref$includeMatches","includeMatches","_ref$includeScore","_ref$verbose","verbose","setCollection","_log","_prepareSearchers2","_prepareSearchers","tokenSearchers","fullSearcher","_search2","_search","weights","_computeScore","_sort","_format","tokens","resultMap","_analyze","record","keysLen","weight","_ref2$arrayIndex","arrayIndex","_ref3$tokenSearchers","_ref3$fullSearcher","_ref3$resultMap","_ref3$results","exists","averageScore","numTextMatches","mainSearchResult","words","scores","tokenSearcher","hasMatchInText","word","tokenSearchResult","scoresLen","_i2","checkTextMatches","existingResult","output","_i3","scoreLen","currScore","bestScore","nScore","finalOutput","transformers","indices","_len2","_console","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","clone","deepmerge","defaultArrayMerge","arrayMerge","sourceIsArray","destination","mergeObject","deepmerge_1","$find","forced","callbackfn","toObject","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","create","res","speciesConstructor","original","SPECIES","C","$at","iterated","_t","point","done","TO_STRING","pos","charCodeAt","LIBRARY","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","returnThis","Base","NAME","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","dPs","enumBugKeys","IE_PROTO","Empty","_createDict","iframeDocument","iframe","display","contentWindow","write","lt","Properties","getKeys","$keys","arrayIndexOf","names","ObjectProto","isArrayIter","createProperty","getIterFn","iter","arrayLike","step","iterator","aLen","mapfn","mapping","iterFn","ret","$defineProperty","classof","getIteratorMethod","ARG","T","tryGet","callee","SAFE_CLOSING","riter","skipClosing","arr","$includes","ce","defaultPrevented","params","evt","origPrevent","createEvent","initCustomEvent","Event","_redux","Store","_index2","devToolsExtension","onChange","selectableChoices","reverse","hasActiveOptions","freeGlobal","__WEBPACK_IMPORTED_MODULE_0__ponyfill_js__","originalModule","webpackPolyfill","_Symbol4","observable","appReducer","_items2","_groups2","_choices2","passedState","defaultState","changingItem","activateOptions","_dropdown2","_container2","_input2","_list2","_wrappedInput2","dimensions","getBoundingClientRect","pageYOffset","selector","isOpen","isFlipped","dropdownPos","windowHeight","shouldFlip","activeDescendantID","_onPaste","_onInput","enforceWidth","valueHasDesiredLength","calcWidth","preventPaste","set","scrollPos","height","node","dropdownHeight","choiceHeight","choicePos","containerScrollPos","endpoint","time","_animateScroll","strength","easing","SCROLLING_SPEED","choiceListScrollTop","continueAnimation","_scrollDown","_scrollUp","_possibleConstructorReturn","__proto__","_wrappedElement2","itemsFilteredString","_get","optionData","_templates2","appendDocFragment","__WEBPACK_AMD_DEFINE_RESULT__","hasOwn","classes","argType","inner","define","toStr","isCallable","maxSafeInteger","predicate","thisArg","k","kValue","findIndex","pow","number","Number","isFinite","mapFn","A","firstSource","to","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","msMatchesSelector","webkitMatchesSelector","closest","nodeType","isEnumerable","Reflect","ownKeys","v","DURATION","EASING","setContentToState","content","isExpanded","overflow","maxHeight","collapse","onComplete","duration","anime","targets","complete","expand","Accordion","_getPrototypeOf2","_getPrototypeOf","_isOpened","_isAnimating","isExperienceEditor","onChangeSubscribers","onClickTrigger","_assertThisInitialized","onKeydownTrigger","onAnimationComplete","BaseComponent","refs","trigger","addListeners","addListener","which","cb","ComponentsFactory","getInstance","isSignInSuccess","signInFormProps","isSignInSuccessful","isNewPasswordRequired","loading","getLastLogInData","date","lastLoginDate","getMonth","getDate","getFullYear","lastLoginPlatform","getWebsiteDomain","lastLoginDevice","hasAgreeToPrivacyPolicyChecked","optIns","agreedToPrivacyPolicy","getSSOSignInFormData","fetch","apiConstants","loadSignInFormDataUrl","then","handleResponse","catch","handleError","signOutUser","Auth","signOut","updateUserSignInDetails","userDetails","callbackUrl","currentSession","accessToken","method","headers","content-type","authorization","jwtToken","formMessageConstants","formBannerTitle","formBannerMessage","yourDetails","signInHere","signIn","reset","verifyEmail","alreadyAMember","rememberPassword","signInWithDifferentAccount","resendVerificationEmail","registerHere","haventGotAnAccount","forgottenPassword","forgotPassword","resetForgottenPassword","resetPassword","resetPasswordFormHeaderLabel","newPasswordRequired","changePassword","saveUserDetails","editUserDetails","upgradeTicketingUserDetails","upgradeMemberPlusUserDetails","seeDetails","viewTickets","noAddressesFound","addNewAddress","saveAddress","updateAddress","editAddress","removeAddress","cannotRemoveLastAddress","cannotRemoveMainAddress","cannotRemoveShippingAddress","cannotRemoveBillingAddress","emailAddressLabel","passwordLabel","confirmPasswordLabel","verificationCodeLabel","updateNotificationSettings","submitOneClubFormButtonText","updateOneClubDetails","submitDefaultFormButtonText","submitTicketingFormButtonText","submitBallotSummaryFormButtonText","upgradeAccount","upgradeAccountResale","updateAccount","or","socialRegistrationMessage","submitFacebookFormButtonText","submitGoogleFormButtonText","oneClubRegisterSuccessText","ballotOneClubSignInSuccessText","registrationSuccessText","forgotPasswordSuccessText","newPasswordRequiredSuccessText","updateUserDetailsSuccessText","somethingWentWrong","encounteredAnIssueTO","encounteredAnIssueWO","upgradeToTicketingAccount","upgradeToTicketingAccountFromResale","personaliseYourExperienceMessage","alreadyHaveATicketingAccount","upgradeToOneClubAccount","alreadyHaveAOneClubAccount","completeToOneClubAccount","noOrdersFoundText","noProductsFoundText","noPaymentSummaryFoundText","noDeliveryDataFoundText","noHistoryDataFoundText","noActionsToPerformText","noUpcomingEventText","emptyString","defaultNumberValue","upcoming","actionsToPerform","actions","fileSummary","paymentSummary","installments","delivery","changeHistory","unitPrice","subTotal","qty","invoice","order","documentsPdf","confirmed","documents","deliveryMethod","shipmentState","deliveryAddress","totalAmountPaid","dueDate","amountDue","amountPaid","paymentDate","payByCreditCard","amountInvoiced","paymentMethod","lastStatus","lastPayment","billingContactName","billingContactDetails","billingAddress","addressLine1","addressLine2","addressLine3","city","country","county","printSummary","payReservation","lastOrderText","fileNumber","fileContent","channel","fileStatus","fileContact","lastUpdate","created","file","fileAmount","expirationDate","expiryDate","viewFileDetails","information","cancel","saveAndContinue","canceledFiles","hideOldTickets","ticketNumber","firstName","lastName","verifyEmailSuccessText","conflictHTTPStatusCode","removeAddressConfirmationMessage","formDateConstants","weekday","year","month","day","region","fileState","RUNNING","SUSPENDED","IN_OPTION","IN_RESERVATION","OPTION_RESERV","CONFIRMED","SOLD","NOT_SOLD","PART_SOLD","CANCELED","ABANDONED","TECH_ERROR","orderType","SALE","REFUND_CLIENT","REFUND_ORGANIZATION","EXCHANGE_ORGANIZATION","EXCHANGE_CLIENT","RESERVATION","RENEWAL","OPTION","RESERVATION_FREEING","OPTION_FREEING","ST_TRANSFER","getMainAddress","currentUser","addresses","getPropertyFromMainAddress","mainAddres","propertyName","getTitle","title","getDateOfBirth","dateOfBirth","dateOfBirthDay","dateOfBirthMonth","dateOfBirthYear","dayAsNumber","monthAsNumber","getMobilePhone","formData","formConstants","mobilePhone","countryCodeMobilePhonePrefix","userMobilePhone","selectedCountry","isFormDataCountryOptionsAvailable","_","isEmpty","phonePrefix","code","hasValue","getSelectedCountry","phoneNumber","hasOneClubRequiredFields","mainAddress","agreedToTermsAndConditions","currencyIsoCodes","freeze","GBP","CurrencyHelper","price","toFixed","origin","poundsCount","total","masterCardDiscount","getMinusPounds","updateInterests","existingInterests","favoritePlayer","venues","selectedFavoritePlayer","selectedVenues","getFormattedUserSignInDetailsData","LastLogInDate","LastLogInDevice","LastLogInPlatform","getValueOrDefault","defaultValue","getActiveMemberships","membership","getDefaultChampionships","userRegistrationData","ssoEmailNotificationSettingsFields","championshipSection","getDefaultInterests","interestsSection","getChampionshipInterests","_userRegistrationData","Id","Value","isInSelection","selectedValue","toUpperCase","getUserInterests","interestSection","_userRegistrationData3","getPreferenceCentreBasedOnOptIns","preferences","optedTheOpenOffersByEmail","optedPartnerOffersByEmail","channels","getPreferencesForOptIn","getPreferencesForOptOut","updateMainAddress","address","isNewAddress","mainAddressIndex","getAddressIndex","postcode","shippingAddress","addressForFind","addressForFindJSON","addressIndex","getFormattedMonetaryAmount","amount","amountToFormat","Intl","NumberFormat","currency","format","getFormattedDate","dateToFormat","createDateFromExisting","DateTimeFormat","getCountryCodeMobilePhonePrefix","getFormattedEmailRemoveSpaces","email","addMembershipType","activeMemberships","membershipToAdd","getUserZoneInfo","registerFormData","zoneInfo","userDataCookieConstants","USER_DATA_COOKIE_CHANGE_EVENT","USER_DATA_COOKIE_NAME","appState","ssoConfig","cookieStorage","userDataCookieName","getIsOneClubMemberFromCookie","userData","cookie","cookieHelper","safeParseJSON","getUserDataCookie","isOneClubMember","updateUserDataCookie","regeneratorRuntime","mark","_callee","emitEventBusEvent","bypassCache","_args","_context","currentAuthenticatedUser","user","updateUserDetailsCookie","stop","attributes","isOneClub","MembershipTypes","OneClub","userDataCookieValue","given_name","family_name","isSignedIn","isRandaMember","hasRaMemberId","userService","setUserDataCookie","eventBus","emit","Account","account_component_classCallCheck","account_component_getPrototypeOf","account_component_assertThisInitialized","setOauthSignOutReturnUrl","removeDataFromLocalStorage","SECUTIX_CONTACT_ID","USER_ID","CookieNames","UserId","tooltip","signInLink","updateMyOneClubLink","showOneClubHubLink","setTOCHUserMembershipsInLocalStorage","isUseCognito","cookieName","userOrderHistoryCallbackUrl","ssoDomain","checkSignIn","useCognito","AmplifyClient","getUserState","onUserButtonClick","onSignOut","onkeydown","outerClickHandle","tochDataChangedHandle","Oauth","handleOauthSignedOut","allowReload","purgeValue","useDefaultRedirectUri","checkOauthFlow","OauthQueryConstants","COMPLETE_FORGOT_PASSWORD","COMPLETE_REGISTER","handleOauthCompleteFlow","Hub","listen","payload","getUserStateCognito","updateLastVisitInfo","getUserStateSecutix","cookieStx","Cookies","accountinfoShow","signInLinkShow","handleOauthSignedIn","setDataInLocalStorage","sub","ticketingAccountId","newMembershipList","getDataFromLocalStorage","TOCH_USER_MEMBERSHIPS","loadUserOrderHistory","href","encodeURIComponent","oneClubHeaderElement","getElementById","isNullOrUndefined","userDataCookie","app","getUserOrderHistory","loadTicketsInfo","userTicketsCallbackUrl","username","textContent","storedLastVisitDate","LAST_VISIT_DATE","storedDate","currentDate","toDateString","needsToUpdateLastVisit","_getLastLogInData","lastLoggedInDataCallBackUrl","updateUserResponse","hasErrors","updateUserError","_getLastLogInData2","ModalTriggerLoginComponent","ModalTriggerComponent","asyncUrl","modal_trigger_login_component_getPrototypeOf","failedReturnUrlParam","UrlHelper","getUrlByParams","modal_trigger_login_component_defineProperty","getRelativeUrl","QueryConstants","SHOW_POPUP","status","OauthHandlerComponent","oauth_handler_component_classCallCheck","oauth_handler_component_getPrototypeOf","handleCustomOAuthState","oauth_handler_component_assertThisInitialized","redirectAfterSignOut","returnUrl","getHostedUIReturnUrlFromSessionStorage","AccountComponent","SSOSignInComponent","AccountProfileComponent","account_profile_component_classCallCheck","account_profile_component_getPrototypeOf","pageSpinner","isLoggedInPromise","isSecuTixLoggedIn","getCurrentUser","setStylesProfileBlock","_user","_isLoggedInToSecuTix","applyModel","rejectUser","profileBlock","insertAdjacentHTML","redirectTo","signInUrl","_objectSpread","hasTicketingAccount","loggedInToSecuTix","isLoggedInToSecuTix","initials","doNotOptedTheOpenOffersByEmail","applyOneClubStyling","applyConditions","applyBindings","cond","getModelValue","bindElements","inputElements","textElements","applyInputsBindings","applyTextBindings","applyInputValue","applyCheckboxValue","modelValue","inputValue","checked","getModel","oneClubClass","AlertBar","model","react_default","subtitle","linkUrl","onClick","gtm","linkText","propTypes","PropTypes","shape","AlertBarsLayout","React","Component","ScoringLoader","endpointNames","LIVE_SCANNER","liveScanner","ArrayHelper","alertBars","alertBar","alert_bar","lastUpdated","AlertBarsLayoutContainer","connect","scoring","AlertBarsComponent","alert_bars_component_classCallCheck","alert_bars_component_getPrototypeOf","ReactDOM","unmountComponentAtNode","alert_bars_layout","AntiForgeryTokenComponent","anti_forgery_token_component_classCallCheck","anti_forgery_token_component_getPrototypeOf","endpointUrl","updateToken","getOldToken","oldToken","url","axios","_response$data","formInputToken","cookieTokenValue","tokenInput","expires","secure","PRODUCT_TYPE_TICKET","PRODUCT_TYPE_HOSPITALITY","PRODUCT_TAG_CAR","PRODUCT_TAG_MOTORCYCLE","PRODUCT_TAG_COACH","PRODUCT_TAG_MINIBUS","MAX_HOSPITALITY_TICKET_PLUS_EXTRA","PRODUCT_TAG_TICKET_PLUS_EXTRA","HOSPITALITY_PRODUCTS","BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME","DEFAULT_BASKET","productGroups","ValidationHelper","products","totalSelected","ticket","curProducts","quantity","sortOrder","product","maxQuantity","maxAvailable","totalAvailable","updatedProductType","updatedProductTag","setToZero","basketProductGroup","juniorProduct","basketJuniorProduct","curBasketProduct","ThrottleMessage","throttle_message_classCallCheck","throttleElement","basket_service","BasketService","basket_service_classCallCheck","onBasketUpdateSubscribers","onBallotBasketUpdateSubscribers","_basket","_ballotbasket","_dateCreated","_ballotBasketDateCreated","isConfiguredForBallot","ballotBasketDateCreated","localStorage","getItem","dateCreated","setItem","now","storedProductGroups","getBasketDateCreated","setBasket","isBasketExpired","cleanBasket","basket","updateBasketDateCreated","triggerOnBasketUpdate","getBasket","mc","productGroup","preparedProducts","productId","passId","audienceSubcategoryId","audienceSubcategoryIdMc","basket_service_toConsumableArray","throttleCheckout","Promise","resolve","reject","token","getUserAccessToken","sent","throttle","api","post","getRequiredConfig","redirectUri","getOauthReturnUrl","noUrlAnchor","recievedBasket","THROTTLE_TIME_INTERVAL","THROTTLE_RETRY_ATTEMPTS","isResponseHandled","_x","_x2","BasketController","basket_controller_classCallCheck","basket_controller_getPrototypeOf","getPreparedBasket","basketService","getProductGroups","isCheckoutInProgress","setCheckoutConfigCookies","onProductGroupsUpdate","basket_controller_assertThisInitialized","onUpdateProductQuantity","onCheckout","redirectToBasket","urlParams","URLSearchParams","checkoutConfigUid","resetJunior","setProductGroups","resetJuniorProducts","clearEmptyProductGroups","saveProductGroups","preparedBasket","setState","hasStandardTickets","productGroupId","basketProductSum","basketProduct","productSum","sum","totalMc","getTotalMcFromTotal","basketProductGroups","basket_controller_objectSpread","bProduct","basketProductExtra","isNeedResetJunior","throttleMessage","checkout","message","basketUrl","Fragment","isLocalStorageAvailable","redirectToBasketOnPay","BasketProduct","basket_product_classCallCheck","basket_product_getPrototypeOf","onRemoveClick","basket_product_assertThisInitialized","onQuantityChange","carProductsArray","oldQuantity","quantityDelta","ecommerceEventTypes","ADD_TO_CART","REMOVE_FROM_CART","productGroupYear","productPrice","pushEcommerceEvent","item_id","item_name","onQuantityUpdate","startQuantity","hospitalityProduct","quantityMultiplier","hasBallotConfiguration","groupHasMoreTypesOfProducts","aria-label","getProductQuantities","convertToPounds","renderControl","focusable","xlinkHref","isRequired","bool","BasketProductGroup","getPreparedProductsList","groupHasDifferentTypesOfProducts","existOtherProductsThanParkingInGroup","basket_product_BasketProduct","existOtherProductsThanParking","productElement","BasketGroups","basket_product_group_BasketProductGroup","BasketTotal","BulletPointList","uniqueId","BasketDialogBoxContentBody","basketDialogBoxTitle","basketDialogBoxMessage","basketDialogBoxLogo","basketDialogBoxMessageSplit","getMultilineText","hasBoxTitle","hasBoxLogo","utility_BulletPointList","RegisterFormBanner","displayBanner","formBanner","_props$formBanner","bannerTitle","bannerMessage","bannerBackgroundImageSrc","displayMessageUnderImage","displayHeadingOverImage","headingColor","textColor","react","backgroundImage","displayBannerTitle","displayBannerMessage","displayBannerMessageWithCssClass","addMarginTop","colorValue","getColor","color","dangerouslySetInnerHTML","__html","ConfirmationModal","inputText","onModalClose","onApproveClick","isApproveDanger","isApproveButtonDisabled","onCancelClick","isCancelButtonDisabled","masterCardDialogBoxBanner","react_modal","onCloseCb","one_club_register_RegisterFormBanner","data-dc-form-sso-ref","BasketPayButtons","basket_pay_buttons_classCallCheck","basket_pay_buttons_getPrototypeOf","showModal","toggleConfirmationModal","basket_pay_buttons_assertThisInitialized","toggleCloseModal","removeDataCookie","showAlertBoxBeforePayment","utility_ConfirmationModal","dialogBoxBanner","basket_dialog_box_content_body","dialogBoxTitle","dialogBoxMessage","dialogBoxLogo","BasketErrors","productName","audienceSubcategoryName","TrackingHelper","accumulator","flatten","Basket","basket_classCallCheck","basket_getPrototypeOf","basket_assertThisInitialized","productGroupList","getProductGroupList","basketItems","getBasketProducts","BEGIN_CHECKOUT","productsGroupList","basket_errors_BasketErrors","basket_groups_BasketGroups","basket_total_BasketTotal","basket_pay_buttons_BasketPayButtons","tBoxBeforePayment","renderEmpty","BasketProductsHelper","secutixBallotReservedProducts","getCookie","addReservedProductsToBallotProductsList","removeReservedProductsFromBallotProductsList","ballotBasketReservedProducts","ballotBasket","isBallotLocalStorageEmpty","basketBallot","secutixBallotProducts","secutixBallotProductsList","BasketComponent","basket_component_classCallCheck","basket_component_getPrototypeOf","_this$options","isBallotBasketType","stringToBoolean","errorsCookie","hasAlertBoxBeforePayment","basketProductsHelper","setSecutixReservedProducts","basket_controller_BasketController","basket_Basket","BasketBuyLinksComponent","basket_buy_links_component_classCallCheck","basket_buy_links_component_getPrototypeOf","secutixConfigCookie","secutixConfig","buyticketsurl","buyTicketsLink","buyhospitalityurl","buyHospitalityLink","BasketCleanerComponent","basket_cleaner_component_classCallCheck","basket_cleaner_component_getPrototypeOf","BasketIcon","basket_icon_componenet_classCallCheck","basket_icon_componenet_getPrototypeOf","basket_icon_componenet_defineProperty","basket_icon_componenet_assertThisInitialized","basketIsEmpty","ballotBasketIsEmpty","removeListeners","ballotBasketUrl","basketTooltip","basketLink","onBasketStateUpdate","onBallotBasketStateUpdate","basketItem","isBallotBasket","onBasketUpdate","onBallotBasketUpdate","BasketIconComponent","NEXT_SLIDE_CLICK","PREV_SLIDE_CLICK","ContextualManagerComponent","contextual_manager_component_classCallCheck","contextual_manager_component_getPrototypeOf","minToShowCount","mainCount","replacementCount","getReplacementCount","isEditMode","splitMainToGroups","getMainCount","showMain","showReplacement","ref","groupName","replacement","hiddenWrapper","randomIndex","round","makeVisible","showRandomInGroup","replacementStack","diff","_loop","replacementRef","ContextualStatsLayout","contextual_stats_layout_classCallCheck","cardType","contextual_stats_layout_getPrototypeOf","filteredCards","getStatsCards","statsCard","card","getRadomCard","STATISTICS","COURSE","activeRoundId","getRoundById","scoringStats","rounds","statsTypesList","statsTypes","_this$props$options","players","holes","getRandomType","PLAYER","HOLE","statsName","_this$props$options2","getRound","stats","getStatsByIds","getTopStats","ids","idKey","statsModel","mappedStat","cloneDeep","sitecoreData","getSitecoreData","getStats","targetUrl","viewAllUrl","_this$props","block_placeholder","minHeight","block_spinner","generateCard","live_stats","ContextualStatsLayoutContainer","courseStats","ContextualStats","contextual_stats_component_classCallCheck","contextual_stats_component_getPrototypeOf","contextual_stats_layout","COOKIE_WARNING_AGREED","CookieWarningComponent","cookie_warning_component_classCallCheck","cookie_warning_component_getPrototypeOf","onCloseCookieWarning","cookie_warning_component_assertThisInitialized","closeSlideoutCookiePanelHandler","acceptCookiesHandler","cookieWarningSettingsAgreedTitle","getCookieWarningOption","requiredCookiesForGoogleAnalytics","setTimeout","isSiteVisited","overlay","agreeButton","getElementsByClassName","agreeLink","cookieExpiryDays","getCookieExpiryDays","_this3$options","civicukCloseButtonId","civicukAcceptAllButtonId","slideoutCloseButton","acceptAllButton","addClickEventListener","once","cookieControlValue","cookieControlObj","cookieWarningAgreedValue","optionalCookies","requiredCookie","optionalCookie","optionName","SitecoreImageField","img","alt","SitecoreLinkField","calculateRemainingDate","countdownTimer","countdownTimerDate","utc","getTime","getTimezoneOffset","ukTimeNowAsDate","isBSTinEffect","minutes","hours","days","delta","lSoM","lSoO","tmp","getDay","CountdownAlertBar","CountdownAlertBar_classCallCheck","CountdownAlertBar_getPrototypeOf","getRemainingDate","CountdownAlertBar_assertThisInitialized","newDate","refreshTime","refresh","interval","setInterval","clearInterval","_this$props$data","countdownDaysText","countdownHoursText","countdownMinutesText","link","logo","isInEditMode","_this$state","isExpired","checkIfExpired","daysValue","hoursValue","minutesValue","sitecore_image_field","CountdownAlertBarComponent","countdown_alertbar_component_classCallCheck","countdown_alertbar_component_getPrototypeOf","countdown_alertbar_CountdownAlertBar","CountriesComponent","countries_component_classCallCheck","countries_component_getPrototypeOf","countries","filterCounties","counties","countries_component_assertThisInitialized","onCountriesChange","getCountriesList","countriesSelect","$","empty","StepFreeForm","step_free_form_classCallCheck","step_free_form_getPrototypeOf","inputElement","step_free_form_assertThisInitialized","updateResult","answerValue","initialResult","handleAnswerChange","isOptional","itemDestinationName","answers","canGoToNextStep","itemLabel","answerFieldLabel","textMaximumLength","viewErrors","currentAnswer","isFilled","rows","maxLength","htmlFor","handleLabelClick","StepDropdown","step_dropdown_classCallCheck","step_dropdown_getPrototypeOf","answer","currentTarget","step_dropdown_assertThisInitialized","possibleChoices","data-dc-component","data-form-control","required","aria-hidden","data-icon","xmlns","viewBox","fill","formValidationConstants","dateOfBirthErrorMessage","membersMustBeOVer16","minimumValidAge","minimumValidMonth","maximumValidMonth","privacyPolicyErrorMessage","oneClubTermsAndServicesErrorMessage","pleaseInputAValue","emailPattern","emailAddressErrorMessage","blockedDomainMessage","confirmEmailErrorMessage","passwordPattern","passwordErrorMessage","confirmPasswordErrorMessage","newPasswordErrorMessage","oldPasswordErrorMessage","none","titleErrorMessage","countryErrorMessage","countyErrorMessage","stateErrorMessage","venuesErrorMessage","championshipSectionErrorMessage","channelSectionErrorMessage","interestSectionErrorMessage","firstNameErrorMessage","lastNameErrorMessage","addressLine1ErrorMessage","postcodeErrorMessage","mobilePhoneErrorMessage","cityErrorMessage","favoritePlayerErrorMessage","verificationCodeErrorMessage","specialCharactersErrorMessage","specialCharactersNumbersErrorMessage","specialCharactersNumbersLettersErrorMessage","raMemberIdEmptyErrorMessage","raMemberIdInvalidErrorMessage","captchaInvalidErrorMessage","suttonixDomain","ecrypseDomain","dogpilezDomain","validateEmail","emailText","isValid","validateOldPassword","password","oldPassword","validateConfirmPassword","confirmPassword","validateCountry","validateCounty","validateState","stateValue","validateAddressLine1","validateEmptyString","validateTextValue","validatePostcode","postCodeText","validateMobilePhone","mobilePhoneValue","validateCity","validateUserChoices","every","x","validateRaMemberId","hasWhiteSpace","validateCaptchaBox","validateMastercard","mastercardNumber","mastercardRegex","notMastercardMessage","RandomSeedMaxValue","ContactInfoStep","step_details_classCallCheck","step_details_getPrototypeOf","step_details_defineProperty","step_details_assertThisInitialized","param","emailAddress","firstnameField","lastnameField","checkbox1Field","checkbox2Field","randomSeedNumber","agreedToC1","agreedToC2","handleFirstnameChange","handleLastnameChange","handleEmailChange","handleCheckbox1Change","handleCheckbox2Change","nameFieldsAreOptional","hideNameFields","checkbox1IsOptional","hideCheckbox1","checkbox2IsOptional","hideCheckbox2","firstnameLabel","firstnameError","lastnameLabel","lastnameError","emailLabel","emailError","checkbox1Label","checkbox1Error","checkbox2Label","checkbox2Error","_this$state2","_this$props2","isFilledFirstname","isFilledLastname","isFilledEmail","isValidEmail","checkbox1withRandomSeed","checkbox2withRandomSeed","inputFirstnameElement","focusOnElement","inputLastnameElement","inputEmailElement","createMarkup","termsAndConditionsInformation","StepFinishStatus","step_finish_status_classCallCheck","step_finish_status_getPrototypeOf","statusClass","StepQuiz","step_quiz_classCallCheck","step_quiz_getPrototypeOf","handleChange","step_quiz_assertThisInitialized","_event$target","FormSpinner","spinnerRef","WrappedComponent","withDataCapture","WizardDashboard","wizard_dashboard_classCallCheck","wizard_dashboard_getPrototypeOf","parameterName","parameterValue","newEmailAddress","partialResult","wizardIndex","wizard_dashboard_assertThisInitialized","steps","templateName","handleNextButtonClick","handlePreviousButtonClick","displayCurrentStep","nextProps","responseReceived","nextStep","handleDataCapture","addressBookID","succeeded","step_details_ContactInfoStep","successfullySubmittedMessage","errorSubmissionMessage","step_finish_status_StepFinishStatus","step_dropdown_StepDropdown","step_quiz_StepQuiz","step_free_form_StepFreeForm","nextButtonText","submitButtonText","hasTheOneClubLayout","pagesBackgroundImageSource","showNextButton","showBackButton","nextSubmitButtonText","utility_FormSpinner","description","backButtonText","_React$Component","_class","with_data_capture_classCallCheck","with_data_capture_getPrototypeOf","with_data_capture_assertThisInitialized","buildApiData","with_data_capture_inherits","addressBookId","dataCapture","apiData","ok","DataCaptureComponent","data_capture_component_classCallCheck","data_capture_component_getPrototypeOf","imageSource","wizard_dashboard","DfpBanner","dfp_banner_component_classCallCheck","dfp_banner_component_getPrototypeOf","targetId","generate","googletag","gptAdSlots","cmd","bottomAdSizes","sizeMapping","addSize","adUnitDesktopSize","adUnitMobileSize","build","defineSlot","slot","defineSizeMapping","addService","pubads","enableSingleRequest","companionAds","setRefreshUnfilledSlots","enableVideoAds","enableServices","refreshRate","loadScipt","apiReady","script","async","NewsCard","news_card_classCallCheck","news_card_getPrototypeOf","onCardLinkClick","news_card_assertThisInitialized","rootRef","createRef","destroy","_this$props$model","contentType","mediaTypes","VIDEO_PLAYER","GALLERY","content_type","bemModifiers","bemCss","onClickRoot","data-srcset","bgImage","data-sizes","renderContentType","ctaText","schema_org","schemaOrg","FactCard","fact_card_classCallCheck","fact_card_getPrototypeOf","fact_card_assertThisInitialized","isDark","PlayerCard","player_card_classCallCheck","player_card_getPrototypeOf","player_card_assertThisInitialized","frontImage","data-size","SocialCard","social_card_classCallCheck","social_card_getPrototypeOf","getFullTitle","social_card_assertThisInitialized","theme","iconCssName","getIconCssName","renderTheme","renderArticle","StandaloneFactCard","standalone_fact_card_classCallCheck","standalone_fact_card_getPrototypeOf","NewsFeedListing","news_feed_listing_classCallCheck","news_feed_listing_getPrototypeOf","news_feed_listing_assertThisInitialized","slotModifiers","news_card","news_feed_listing_toConsumableArray","player_card","fact_card","standalone_fact_card","social_card","fullTitle","trackingCategory","getTrackingCategory","itemIndex","slotIndex","cur","slots","row","cardsList","rowCss","modifiers","gridCss","slotCss","getCardByTheme","grid","rowPattern","getRowPattern","renderRow","renderCards","row_patterns_defineProperty","_rowPattern","getPatternByDeviceType","patternName","deviceType","DEVICE_TYPE_DESKTOP_WIDE","getTwoThirdsAndOneThird","getOneThirdAndTwoThirds","FeatureContentCopmonent","feature_content_component_classCallCheck","feature_content_component_getPrototypeOf","updatePattern","feature_content_component_assertThisInitialized","getData","EVENT_DEVICE_TYPE_CHANGED","onChangeDeviceType","rowData","getRowData","deviceTypeByViewport","removeDataAttr","news_feed_listing","FeatureContentComponent","ForceSignInComponent","force_sign_in_component_classCallCheck","force_sign_in_component_getPrototypeOf","accountType","redirectUrl","checkIsUserLoggedIn","raMemberUpdatedInfoCookie","RA_MEMBER_UPDATED_INFO","isUserLoggedIn","isRandaMemberLoggedIn","memberLoginFailedLink","appId","FB","onload","xfbml","fb","getLoginStatus","authResponse","login","loginResponse","expiresIn","scope","meta1","head","clientIdString","meta2","defer","gapi","load","auth2","client_id","cookiepolicy","attachClickHandler","googleUser","getAuthResponse","profile","getBasicProfile","getId","getGivenName","getFamilyName","getEmail","host","onAmazonLoginReady","amazon","Login","setClientId","setSiteDomain","authorize","retrieveProfile","CustomerId","Name","PrimaryEmail","timeout","withCredentials","PROFILE_API_URL","userProfileApiUrl","CHECK_EMAIL_URL","REGISTRATION_URL","UPDATE_ACCOUNT_URL","GET_USER_PROFILE_URL","CREATE_TICKET_ACCOUNT_URL","CHANGE_PASSWORD_URL","CONFIRM_PASSWORD_URL","FORGOT_PASSWORD_URL","HEADERS","Access-Control-Allow-Origin","Content-Type","SERVER_ERROR_MESSAGE","FormSsoComponent","form_sso_component_classCallCheck","form_sso_component_getPrototypeOf","form_sso_component_defineProperty","form_sso_component_assertThisInitialized","provider","facebook","authObject","getUserObject","federatedSignIn","google","socialProvider","expiresAt","credentials","requestGeneratedPassword","generatedPassword","err","showCompleteRegister","hideErrorsSummary","revalidateForm","formType","Title","FirstName","Surname","EmailAddress","AddressLine1","AddressLine2","Postcode","City","Country","County","Password","interests","getVenuesObject","checkboxesValuesObject","collectCheckboxesData","OptedTheOpenOffersByEmail","OptedPartnersOffersByEmail","AgreedToPrivacyPolicy","createTicketingAccount","antiForgeryToken","fieldsData","raMemberId","register","passwordResetSuccess","forgotPasswordInput","errorsSummary","formNode","setFormFieldTracking","forgotPasswordSubmit","sendFormTracking","showPasswordCodeField","showServerError","completePassword","completePasswordSubmit","newPassword","completeNewPassword","redirect","OldPassword","getAccessToken","setAuthorizationHeader","changePasswordSuccess","setHostedUIReturnUrl","SIGN_OUT_URL","optInValue","OptInToTheOneClub","userAttributesObject","updateUserObject","LastName","Email","getParsleyForm","_parsleyForm","fields","field","$element","fieldName","emailRequest","emailJson","errorList","emailInput","showFieldError","setUrl","setFormType","FormComponent","ACCOUNT_SIGNIN_URL","COMPLETE_DETAILS_URL","DEFAULT_REDIRECT_URL","forgotPasswordLink","onShowForgotPassword","onSubmit","submitButton","optInToOneClub","onOptInOneClub","updateButton","onUpdateConsents","onChangePassword","updateAddressSubmit","onUpdateAddress","updateDetailsSubmit","onUpdateDetails","completeDetailsSubmit","onCompleteDetails","onEmailFocusOut","onSocialSignin","clientId","general","onUserNotConfirmed","userName","challengeName","onShowCompletePassword","setupTOTP","loginFailedReturnUrl","secuTixSignInRequest","__RequestVerificationToken","secutixSignIn","checkRequiredSecutixFields","signInRequest","qs","json","formString","syncForm","HtmlHelper","submit","put","emailConfirmationWorkflow","showRegistrationCodeField","showSuccessMessage","codeWrap","registrationCodeSubmit","confirmSignUp","successMessage","completeButton","newPasswordInput","newPasswordInputConfirm","codeSubmit","confirmationCode","Code","on","onFieldError","validate","form_sso_component_toConsumableArray","checkbox","groupped","groupErrors","errorsSummaryTemplate","errorListOld","createErrorItem","form_sso_component_typeof","errorItem","GTM","getTrackCategory","getTrackAction","getTrackLabel","trackFields","sendFormFieldTracking","form_sso_component_extends","Authorization","_trackCategory","_trackAction","_trackLabel","venue","ChoicesWrapper","choices_wrapper_classCallCheck","choicesInstance","MutationObserver","mutations","mutation","attributeName","updateChoicesDisabled","observe","disconnect","FormCustomSelectComponent","form_custom_select_component_classCallCheck","form_custom_select_component_getPrototypeOf","choicesWrapperInstance","native","baseItemTemplate","baseChoiseTemplate","getChoicesInstance","FormFieldComponent","form_field_component_classCallCheck","form_field_component_getPrototypeOf","form_field_component_assertThisInitialized","onFocus","onBlur","hideFormFieldTooltip","checkFill","FormFileComponent","form_file_component_classCallCheck","form_file_component_getPrototypeOf","defaultCaption","dataset","fileInput","captionContainer","caption","onFileChange","updateCaption","files","FormPhoneInputComponent","form_phone_input_component_classCallCheck","form_phone_input_component_getPrototypeOf","getChoices","itemContentTemplate","choiseContentTemplate","_ref$selected","GtmTriggerComponent","gtm_trigger_component_classCallCheck","gtm_trigger_component_getPrototypeOf","getCategory","getAction","getLabel","gtm_trigger_component_assertThisInitialized","category","Header","header_component_classCallCheck","header_component_getPrototypeOf","header_component_defineProperty","header_component_assertThisInitialized","clickedItem","itemText","innerText","locationLatest","locationPanelHeight","visibleLocation","marginTop","visibleLocationLatest","keyboardEvent","toggleLocationsPanel","dynamicButton","setFocus","locationLink","dynamicButtonLatest","locationLinkLatest","headerCanBeAnimated","menuCanBeAnimated","onClickDynamicButton","onKeypressDynamicButton","onClickDynamicButtonLatest","onKeypressDynamicButtonLatest","gtmLeftMenuClick","saveActionToGtm","removeListener","arrayItems","boolean","header_component_toConsumableArray","closingMenuAnimation","closeOtherMenuAnimation","openingMenuAnimation","ariaExpandedTrigger","setAnimation","dynamicIconsLatest","locationItemLatest","dynamicIcons","locationItem","HeaderComponent","Hero","hero_component_classCallCheck","hero_component_getPrototypeOf","getOneClubMemberValueFromCookie","sticky","stickyIsShown","observerIsCreated","promptScroller","onResize","hero_component_assertThisInitialized","onClickPrompt","disableButtonsWhenUserIsOneClubMember","checkViewportWidth","addBottomPadding","prompt","initScroller","parsedCookie","disableCta1","cta1","cta1sticky","disableCta2","cta2","cta2sticky","viewportWidth","clientWidth","innerWidth","removeBottomPadding","createObserver","IntersectionObserver","changes","intersectionRatio","hideSticky","disableStickyHeader","showSticky","translateY","blockToShow","Scroller","blankElement","HeroComponent","ImageGallery","image_gallery_component_classCallCheck","image_gallery_component_getPrototypeOf","slides","setImage","slide","labelCurrent","labelTotal","counter","ImgeGallery","initialiseEventCentreInstance","clipTag","eventCenterParams","shotViewElement","imga_iframe_helpers_objectSpread","eventCentre","IMGAiFrameHolder","imga_iframe_holder_classCallCheck","imga_iframe_holder_getPrototypeOf","clipTagContainerDiv","loadRouteToHoleClipTag","imga_iframe_holder_assertThisInitialized","updateProps","frontRowSeatESModuleCallback","initHolderDivId","loadShotViewScripts","eventCentreParameters","targetElementSelector","targetElement","liveShotViewConfig","setHtmlIdAttribute","setClipTagContainerId","frontRowSeat","routeHolder","shouldLoadRouteToHoleClipTag","formattedEventCenterParams","formattedParams","operator","sport","eventId","targetModule","imgaVersion","imgaLanguage","isValidEventCentreParameters","language","environment","env","contextView","initialContext","view","formatEventCentreParameters","shotViewScripts","scriptSourceUrl","scriptType","getIMGArenaESModuleScriptInnerHTML","isScriptEmbedded","loadScriptAsync","useNoModule","embedScript","isMobile","IMGAiFrameComponent","imga_iframe_component_classCallCheck","imga_iframe_component_getPrototypeOf","updateIframeSize","iFrameAspectRatioWdith","iFrameAspectRatioHeight","mobileIFrameAspectRatioHeight","mobileIFrameAspectRatioWidth","desktopPaddingTopPercent","mobilePaddingTopPercent","paddingTop","_this$options2","imga_iframe_holder","base64UrlDecode","base64","decodeURIComponent","getAtob","char","atob","stripToken","allowedAttributes","secret","overWriteHeader","decoded","tokenParts","header","signature","decodeJWT","filteredPayload","sHeader","sPayload","KJUR","jws","JWS","sign","encodeJWT","jwt_utils_objectSpread","IMGAMatchupsGameLayout","allowedUserAttributes","iFrameDatasource","tokenHeader","tokenQueryKey","_useState2","useState","userIdTokenShortened","setUserIdTokenShortened","useEffect","getCurrentUserAttributes","idToken","stringToArray","iFrameSrc","addQueryParams","IMGAMatchupsGameComponent","imga_matchups_game_component_classCallCheck","imga_matchups_game_component_getPrototypeOf","updatePaddingTop","iFrameAspectRatioWidth","LargeHero","large_hero_component_classCallCheck","large_hero_component_getPrototypeOf","largeHeroStickyRef","sortAsc","checkRule","sortingStrategies_toConsumableArray","compareCutResult","compareByCut","aVal","bVal","aPropValue","bPropValue","sortDesc","sortAscAZ","playerA","playerB","cutProperty","aCutVal","bCutVal","statusCompare","compareByStatus","playerAStatus","playerBStatus","sortingStrategies","sortingStrategies_defineProperty","_sortingStrategies","cellTypes","POSITION","filteringFunc","isAsc","MOVERS","sortDescAZ","PAR","TOTAL","TODAY","R1","R2","R3","R4","LeaderboardAlphaList","player","playerId","livePlayer","country_flag","childCss","countryFlagSrc","isAmateur","sortedPlayers","FavoriteButton","stateFavoriteButtonClassName","stateFavoriteButton","sprite_svg","iconName","defaultProps","LeaderboardHbhButton","toggleHoleByHoleView","stateCss","is-active","viewTypes","HOLE_BY_HOLE","lazy_image","FLAG_IMAGE_PATH","LeaderboardCellHoleTitle","sortingHandlerProps","processingState","sortingType","is-top","isSortingAscending","LeaderboardRScore","toggleRScore","is-close","R_SCORE","LeaderboardCellPlayerTitle","leaderboard_r_score","LeaderboardCellMoversTitle","sorted","LeaderboardCellScoresTitle","scoringCourseRound","holePars","holePar","holeId","par","LeaderboardCellTitleBasic","sortingHandler","modifier","getCellModifierByType","getTitleByType","LeaderboardRowTitle","renderTitleBasic","leaderboard_cell_title_basic","leaderboard_cell_movers_title","leaderboard_cell_player_title","leaderboard_cell_scores_title","leaderboard_cell_hole_title","LeaderboardCellPos","displayValue","LeaderboardMoversBasicIcon","stateIcon","LeaderboardMoversExtendedIcon","LeaderboardCellSort","movers","leaderboard_movers_extended_icon","leaderboard_movers_basic_icon","moversValue","getMovers","LeaderboardFeaturedGroupLive","LeaderboardCellPlayerExtra","leaderboard_cell_player_extra_classCallCheck","leaderboard_cell_player_extra_getPrototypeOf","oldDeviceType","newDeviceType","leaderboard_cell_player_extra_assertThisInitialized","onDeviceTypeChanged","hasChampion","playerSD","playerSitecoreData","suddenDeathStatus","playOffStatuses","NOT_PLAYING","playOffStatus","isPlayOff","currentRound","scoringLeaderboard","selectedRound","featuredGroupLiveUrl","leaderboard_featured_group_live","leaderboard_tee_times_group","renderPlayOffStatus","LeaderboardCellPlayerBasic","rest","_objectWithoutProperties","favouriteTheme","favoritePlayerService","isFavourite","isWhite","favorite_player_button","DEVICE_TYPE_MOBILE","DEVICE_TYPE_MOBILE_WIDE","DEVICE_TYPE_TABLET","fullnameCss","is-lengthy","renderNameComponent","sponsorLogoSrc","leaderboard_cell_player_extra","leaderboard_cell_player_basic_extends","LeaderboardPlayerResult","leaderboard_player_result_classCallCheck","leaderboard_player_result_getPrototypeOf","leaderboard_player_result_defineProperty","leaderboard_player_result_assertThisInitialized","_this$rootRef$current","scrollWidth","scrollLeft","playOffRound","playerPar","setScrollToEnd","playerResult","LeaderboardCellPlayerLeaders","leaderboard_cell_player_leaders_objectWithoutProperties","foundRound","playOffRoundId","liveComponents","leaderboard","playoffRoundId","lastNameCss","is-long","trackCategory","trackAction","trackLabel","cutoutSrc","leaderboard_cell_player_leaders_extends","leaderboard_player_result","renderIndicatorsComponent","LeaderboardCellPlayer","isChampion","isEnhanced","leaderboard_cell_player_objectWithoutProperties","playOffHoles","cellStateCss","is-leaders","is-play-off","is-play-off-res","is-champion","is-champion-play-off","championLabels","mobile","desktop","leaderboard_cell_player_leaders","leaderboard_cell_player_extends","leaderboard_cell_player_basic","LeaderboardCellToPar","playOffText","toPar","playOffToPar","LeaderboardCellToday","today","LeaderboardCellTotal","bemList","LeaderboardCellHole","hole","LeaderboardCellScores","scoringPlayerRound","LeaderboardCellRound","scoreText","LeaderboardCellRoundTotal","playerTotal","roundTotal","totalPar","difference","getTotalBemClass","LeaderboardRows","cutStatus","playersCut","isPlayOffMode","renderRows","playersList","getIsPlayOff","isLostPlayOff","LOST","getIsLostPlayOff","isFavorite","isEnhancedListings","getIsEnhanced","isCut","rowStateCss","is-cut","is-favorite","CHAMPION_IMAGE_PATH","leaderboard_cell_pos","leaderboard_cell_sort","leaderboard_cell_player","leaderboard_cell_to_par","leaderboard_cell_round","r1","r2","r3","r4","leaderboard_cell_scores","SUMMARY","leaderboard_cell_hole","leaderboard_cell_today","leaderboard_cell_total","leaderboard_cell_round_total","LeaderboardTable","scoringCourse","favoritePlayers","favoriteState","leaderboard_table_objectWithoutProperties","courseRounds","hasTeeTime","checkIfRoundHasTeeTimes","is-active-mobile","leaderboard_row_title","leaderboard_table_extends","leaderboard_rows","LeaderboardTableWrapper","leaderboard_table_wrapper_classCallCheck","leaderboard_table_wrapper_getPrototypeOf","viewState","leaderboard_table_wrapper_assertThisInitialized","wrapperRef","scrollable","Scrollable","update","leaderboard_table_wrapper_objectWithoutProperties","tableWrapperStateCss","is-favorite-state","getViewState","leaderboard_table","leaderboard_table_wrapper_extends","LeaderboardInfoButton","leaderboard_info_button_classCallCheck","leaderboard_info_button_getPrototypeOf","leaderboard_info_button_assertThisInitialized","isSpecialStatus","SUBLAYOUT_FULLWIDTH_ENABLE","SUBLAYOUT_FULLWIDTH_DISABLE","LeaderboardContainer","leaderboard_container_classCallCheck","leaderboard_container_getPrototypeOf","leaderboard_container_defineProperty","leaderboard_container_assertThisInitialized","selectedRoundId","DEVICE_TYPE_DESKTOP","roundId","applyFavourite","playersData","favoritePlayerList","getAll","activePlayerId","isModalOpen","completeSuggestions","getSuggestionList","search_suggestions","processSearchResults","filteredDataList","terms","predictiveSearchResults","isPredictive","roundChoices","notify","EVENT_FAVOURITE_PLAYER_SERVICE_ADD","renderFavoritePlayers","EVENT_FAVOURITE_PLAYER_SERVICE_REMOVE","changedRenderedViews","updateChoices","prevChoices","isRoundChoiceAvailable","setSelectedChoice","isRoundChoicesEqual","processedPlayers","filterByFavorite","predictivePlayer","sortStateInit","currentRoundStatus","cutLine","processData","cutPlayers","getCutStatus","splittedPlayers","cutLineState","scoringPlayersCopy","partition","sortValue","getCutLineData","splitPlayers","generateBemCss","controlPanelCss","is-predictive","live_event_select","setRound","patronLogo","search_autocomplete","defaultCallback","getDefaultCallback","suggestions","prepareSuggestions","onToggleState","onSearchToggleState","favorite_button","toggleFilterByFavourite","leaderboard_info_button","onInfoButtonClick","leaderboard_hbh_button","live_pre_message","noFavoriteMessage","leaderboard_table_wrapper","toggleRScoreView","showPlayerCard","LeaderboardLayout","PLAYERS","LEADERBOARD","suddenDeathtatus","sitecorePlayers","messageModel","bemClasses","LIGHT","NTT","leaderboard_alpha_list","leaderboard_container","LeaderboardLayoutWrapper","getPlayerSitecoreData","LeaderboardComponent","leaderboard_component_classCallCheck","leaderboard_component_getPrototypeOf","leaderboard_layout","LeaderboardWidgetAlphaList","targetsConfig","getPlayerExternalLink","rel","LeaderboardWidgetLayout","leaderboard_widget_layout_classCallCheck","leaderboard_widget_layout_getPrototypeOf","playerIds","topPlayersToShow","topPlayersToShowState","leaderboard_widget_layout_assertThisInitialized","numberOfCells","stateTypes","TEE","TO_PAR","textTitle","ccpShow","showAlphaListOnLeaderboardWidget","leaderboard_widget_alpha_list","getPlayers","leaderboard_widget","datePublished","titleText","textOverride","fullLeaderboardLinkText","fullLeaderboardLink","liveComponentLeaderboard","liveComponentSubtitle","LeaderboardWidgetLayoutWrapper","LeaderboardWidgetComponent","leaderboard_widget_component_classCallCheck","leaderboard_widget_component_getPrototypeOf","leaderboard_widget_layout","ListingLoadMore","ListingLoadMore_classCallCheck","ListingLoadMore_getPrototypeOf","onLoadMoreClick","ListingLoadMore_assertThisInitialized","PureComponent","pagination","currentPage","pageCount","isLoadingMore","onLoadMore","CONTROL_TYPE_CHECKLIST","CONTROL_TYPE_SELECT","LiveHeaderTitle","liveHeader","eventLogoSrc","ALiveHeaderTitleContainer","LiveHeaderComponent","live_header_component_classCallCheck","live_header_component_getPrototypeOf","live_header_title","LiveNavigation","live_navigation_component_classCallCheck","live_navigation_component_getPrototypeOf","live_navigation_component_defineProperty","live_navigation_component_assertThisInitialized","clearSelection","getActiveLink","calculateSelectorPosition","navigate","unsubscribeHisporyChange","highlightSelected","spaLoad","subscribeOnHistoryChange","onNavigationLinkClick","pathname","getNormalizedPathname","aliasesAttribute","nodesArray","currentAnimation","pause","leftCoord","updateContent","itemWidth","navigationCoords","LiveNavigationComponent","LiveSubmenu","live_submenu_component_classCallCheck","live_submenu_component_getPrototypeOf","live_submenu_component_defineProperty","live_submenu_component_assertThisInitialized","scrollTo","checkIfItemIsSelected","onLinkClick","LiveSubmenuComponent","LiveVideoWidget","live_video_widget_component_classCallCheck","live_video_widget_component_getPrototypeOf","live_video_widget_component_defineProperty","live_video_widget_component_assertThisInitialized","isLive","pageUrl","imageUrl","partner","partnersLogoUrl","onRootClick","onStoreUpdate","LiveWidgetVideos","live_widget_posts_classCallCheck","live_widget_posts_getPrototypeOf","live_widget_posts_assertThisInitialized","batches","nextBatchId","isFetching","showSpinner","getDataAfterTimeout","clearTimeout","timeoutId","cancelGetData","topBatch","newBatches","topBatchId","getTopBatchId","newBatch","foundBatch","batch","posts","unshift","updateInSeconds","isLoadMore","context","qsProps","cancelableGetData","makeCancelable","promise","_batches","live_widget_posts_toConsumableArray","getUpdatedBatches","nextBatch","isCanceled","getPosts","showLoadMore","maxPosts","loadMoreCss","is-loading","liveText","hasOverlay","live_text","mediaContentType","LiveWidgetPostsWrapper","LiveWidgetEmbeddedContent","embedCode","LiveWidgetComponent","live_widget_component_classCallCheck","live_widget_component_getPrototypeOf","embeddedContent","live_widget_embedded_content_LiveWidgetEmbeddedContent","live_widget_posts","EASING_DEFAULT","DURATION_DEFAULT","MainNavComponent","main_nav_component_classCallCheck","main_nav_component_getPrototypeOf","main_nav_component_defineProperty","main_nav_component_assertThisInitialized","contentBlocker","block","nav","opacity","begin","opener","setFocusTrap","unblock","removeFocusTrap","closeMenu","focusTrap","closers","openMenu","createFocusTrap","escapeDeactivates","activate","deactivate","MakeStoriesLayout","widgetId","useRef","useLayoutEffect","playerWrapper","styleLink","scriptUrls","scriptsToLoad","inlineScript","onScriptsLoaded","MakeStoriesComponent","make_stories_component_classCallCheck","make_stories_component_getPrototypeOf","make_stories_layout","renderType","WINDOW","POPUP","modal_spa","ModalSpa","modal_spa_classCallCheck","modal_spa_defineProperty","innerState","historyController","modalCache","setInitialHistoryState","modalUrl","getPreviousOpenedModalUrl","setHistoryState","prevState","newState","shouldClean","cleanContent","isOpenning","currentModal","unregisterHistroyController","sessionId","nanoid","chainStartUrl","onHistoryChange","modal_spa_objectSpread","openLinkInPopup","openModal","getModal","modal_spa_slicedToArray","modal","sendCurrentLocationAsVirtualUrl","contentUrl","getOverlayUrl","Modal","previousOpenedModal","MOBILE_FIXED","DEKSTOP_WIDE","delegateControl","onClose","isHtmlContentType","responseHtml","modifySocialElementsStyleFromPopupHtml","getTitleFromPopupHtml","forceHideErrorsSummary","showThrottleMessage","serverErrors","pushState","removeElementsFromDom","closeModal","reloadPage","ModalSpaTrigger","modal_spa_trigger_component_classCallCheck","modal_spa_trigger_component_getPrototypeOf","modalSpa","modal_spa_trigger_component_assertThisInitialized","onClickElement","ModalSpaTriggerComponent","ModalTriggerPromoPanelWrapper","setCurrentUser","_useScreenDetector","useScreenDetector","isTablet","getCurrentAuthenticatedUser","tabletImage","mobileImage","heading","subHeading","ctaButtonLabel","ctaButtonActionResource","desktopImageOpacity","mobileImageOpacity","mobileOpacity","imageOpacity","imgStyle","imageSrc","getImageSrc","data-dc-modal-trigger-login-failed-return-url-param","ModalTriggerPromoPanelComponent","modal_trigger_promo_panel_component_classCallCheck","modal_trigger_promo_panel_component_getPrototypeOf","modal_trigger_promo_panel_wrapper","displayPromoBanner","MultimediaCarouselComponent","multimedia_carousel_component_classCallCheck","multimedia_carousel_component_getPrototypeOf","multimedia_carousel_component_defineProperty","multimedia_carousel_component_assertThisInitialized","gallery","goTo","sliderInfo","getInfo","isSliderEnd","handleLastSlide","lastSlide","currentSlidePosition","slidesContainerPosition","tns","autoWidth","loop","controls","touch","responsive","579","slideBy","1023","prevBtn","onClickPrevBtn","nextBtn","onClickNextBtn","slideCount","slideItems","_this$getTranslateVal","getTranslateValues","y","z","notCurrentSlideDisplayedOk","setCurrentSlidePosition","isFullyShown","setLastSlidePosition","matrix","webkitTransform","mozTransform","matrixType","matrixValues","currentX","currentY","currentZ","setNewTranslate","lastSlidePosition","right","newX","newY","newZ","elementPosition","containerPosition","PlayerCarouselComponent","MyAccountUrlComponent","my_account_url_component_classCallCheck","my_account_url_component_getPrototypeOf","secutixCookie","secutixConfiguration","myAccountUrl","getPattern","getDefaultFilters","filters","defaultFilters","filterConfig","defaultItem","isDefault","isFiltersDirty","filtersConfigs","parameter1","parameter2","ObjectHelper","isEqual","PAGINATION_DEFAULT","perPage","totalCount","LISTING_ID","Listing","Listing_classCallCheck","Listing_getPrototypeOf","Listing_defineProperty","Listing_assertThisInitialized","setFilters","getFiltersFromLocation","hasInitialItems","initialItems","getInitialFilters","isFiltersApplied","isInitialRequestFulfilled","lastRequestCancel","onFiltersChange","animateChange","baseUrl","exceptParams","searchObject","getSearchFromLocation","paramsObject","getPathWithQueryString","loadItems","listElement","getListElement","changeAction","timeline","focusSection","fade","getItems","isCancel","Listing_toConsumableArray","Listing_objectSpread","getFiltersByLocation","filterObject","passedFilters","getValidFilters","updatedFilters","searchableFilters","getSearchableParams","loadNextPageItems","page","customParams","CancelToken","customHeaders","cancelToken","paramsSerializer","params1","NewsFeedTypeFilter","selectedFilters","renderControls","NewsFeedTagFilter","NewsFeedHeader","filterName","changedCheckboxValue","isChecked","news_feed_header_defineProperty","translations","shortDate","news_feed_tag_filter","getConfigByName","news_feed_type_filter","BannerCard","banner","NewsFeedLayout","news_feed_layout_classCallCheck","news_feed_layout_getPrototypeOf","news_feed_layout_defineProperty","news_feed_layout_assertThisInitialized","onLoadMoreFromProps","news_feed_layout_objectSpread","groupsList","totalGroups","patternSize","startIndex","endIndex","groupItems","renderBanner","banner_card","Listing_Listing","onFiltersDirtyChange","createPortal","news_feed_header","filtersNode","data-content","aria-live","renderGroupsListing","renderNoResults","ListingLoadMore_ListingLoadMore","instanceOf","NewsFeedComponent","news_feed_component_classCallCheck","news_feed_component_getPrototypeOf","news_feed_component_defineProperty","news_feed_component_assertThisInitialized","isDirty","components","component","hidden","renderSection","listingOptions","articles","news_feed_layout","placeholderNode","listing","NewsFeedLiveLayout","news_feed_live_layout_classCallCheck","news_feed_live_layout_getPrototypeOf","news_feed_live_layout_defineProperty","news_feed_live_layout_assertThisInitialized","tags","showPartialPattern","NewsFeedService","onNewsFeedServiceChange","newsfeedParentItemGuid","paginationQs","tagsQs","news_feed_live_layout_toConsumableArray","newsfeedParentItemGuidQs","seeAllUrl","_this$state$paginatio","onSeeAllClick","NewsFeedLiveComponent","news_feed_live_component_classCallCheck","news_feed_live_component_getPrototypeOf","news_feed_live_layout","NewsFeedLiveSelector","news_feed_live_selector_component_classCallCheck","news_feed_live_selector_component_getPrototypeOf","news_feed_live_selector_component_assertThisInitialized","onInputChange","NewsFeedPreview","news_feed_preview_component_classCallCheck","news_feed_preview_component_getPrototypeOf","news_feed_preview_component_defineProperty","news_feed_preview_component_assertThisInitialized","statePrimaryButton","newsCardsList","reactDOMRender","renderCardsList","primaryButton","onClickPrimaryButton","primaryWrapper","totalItems","player_carousel_component_classCallCheck","player_carousel_component_getPrototypeOf","player_carousel_component_defineProperty","player_carousel_component_assertThisInitialized","PlayerHeroComponent","player_hero_component_classCallCheck","player_hero_component_getPrototypeOf","age_latest","calculate_age","age","dob","birthDate","getUTCFullYear","QualLeaderboardDefaultView","countryFlag","playerStatus","deviceTypes","MOBILE","qualificationTypes","REGIONAL","FINAL","R1_TEE_TIME","R2_TEE_TIME","QualDrawSearchInput","qual_draw_search_input_classCallCheck","qual_draw_search_input_getPrototypeOf","qual_draw_search_input_defineProperty","qual_draw_search_input_assertThisInitialized","clearValueSearchInput","defaultSearchValue","searchBehavior","searchBehaviorState","animationState","inputRef","searchMobileBehavior","renderAnimationState","handleSearch","onKeyPress","handleKeyPress","startSearchBehavior","renderIcon","QualDrawSelect","qual_draw_select_classCallCheck","qual_draw_select_getPrototypeOf","getValue","qual_draw_select_assertThisInitialized","selectRef","getOptionValue","qsObj","optionItems","Boolean","locationName","choicesInitial","choiceIndex","course","sortByTeeTime","r1TeeTime","r2TeeTime","teeTime","teeTimeGroups","filtering_strategies_toConsumableArray","curTeeTime","r1StartHole","filteringStrategies","selectCourse","selectValue","courseItem","searchPlayers","searchQuery","filterBy","QualDrawContainer","qual_draw_container_classCallCheck","qual_draw_container_getPrototypeOf","qual_draw_container_defineProperty","qual_draw_container_assertThisInitialized","isFinalQualificationDraw","startHole","isScoringCompleted","r1MatchNo","roundNoIdentifier","renderStartHole","teeTimeR1","teeTimeR2","nationality","clubName","renderMatchNumber","renderField","r2StartHole","arrowRightRef","arrowLeftRef","lastScroll","chainStartHash","history","selectedCourse","term","applySearchPlayers","filteringType","currentStrategy","ignoreQueryPrefix","searchAnimationState","initState","filteredStateInit","is-search-active","qual_draw_select","handleChangeSelect","qual_draw_search_input","infoPopupUrl","qual_draw_table_player","onScroll","onScrollLeftElement","renderItem","QualDrawLayout","scoringDraw","DARK","localeCompare","qual_draw_container","qual_draw_layout_extends","QualDrawLayoutWrapper","ownProps","QualDrawComponent","qual_draw_component_classCallCheck","qual_draw_component_getPrototypeOf","qual_draw_layout","QualEventItem","qual_events_item_classCallCheck","qual_events_item_getPrototypeOf","isFirstLinkDefined","link1","isSecondLinkDefined","link2","overviewSrc","firstLinkText","secondLinkText","QualEventsContainer","scoringSummary","locations","sortAlfa","qual_events_item","locationId","QualEventsContainerWrapper","QualEventsComponent","qual_events_component_classCallCheck","qual_events_component_getPrototypeOf","cardsRootContainer","qual_events_container","qualLeaderboardScoringInfo","isVisible","clicked","scoringInfoClassName","DEFAULT_VIEW","HOLES_VIEW","getPlayerRoundById","roundNo","getRoundParsById","roundPars","getPlayerFormattedTeeTimeByRound","teeTimes","getPlayerTeeTimeByRoundId","holesPlayed","roundToPar","holesNoPlayed","parsedInt","renderQualifiedStatus","q","qualifiedStatus","reservedStatusNumber","QualLeaderboardPlayerRow","renderPlayerPar","renderColorState","entryId","countryFlagUrl","countryName","renderColorStateHoles","REGIONAL_WO","FINAL_WO","NATIONALITY","R1_SCORE","R1_OUT","R1_IN","R1_TO_PAR","R2_SCORE","R2_OUT","R2_IN","R2_TO_PAR","QualLeaderboardRowTitle","inOutTotal","getNationalityTitle","renderClassName","qualifyReserveFlag","teeStartPosition","classNameTable","QualLeaderboardTable","tableWrapper","finalQualificationHole","classNameProps","renderRoundField","renderSortableField","parSum","colorStateToPar","playerRound","contentText","totalColorState","isStartingFromTenthHole","renderStartHoleByRoundId","qual_leaderboard_row_title","clubNameView","parSum1","parSum2","totalViewField","qualifiedReserveFlagView","qualifiedStatusView","teeStartPositionView","fqHoleView","isPlaying","startingHole","showFormattedTeeTime","rqHoleView","inTotal","in","holeNo","getScoreByItemHole","qual_leaderboard_table_objectSpread","outTotal","createHolesField","qual_leaderboard_player_row","QualLeaderboardArticle","competitionStatus","qualSortingStrategies_toConsumableArray","qualSortingStrategies","qualSortingStrategies_defineProperty","_qualSortingStrategie","QualLeaderboardContainer","qual_leaderboard_container_classCallCheck","qual_leaderboard_container_getPrototypeOf","qual_leaderboard_container_defineProperty","qual_leaderboard_container_assertThisInitialized","defaultRoundId","rndAvailable","isBlack","qual_leaderboard_article","renderSelectControl","qual_leaderboard_scoring_info","showScoringInfoContent","changeView","qual_leaderboard_table","qual_leaderboard_container_extends","QualLeaderboardLayout","getLocationById","qual_leaderboard_container","qual_leaderboard_layout_extends","QualLeaderboardLayoutWrapper","QualLeaderboardComponent","qual_leaderboard_component_classCallCheck","qual_leaderboard_component_getPrototypeOf","qual_leaderboard_layout","QualifiedPlayerCard","subtitleModCss","playerURL","getLinkAriaLabel","bg","championOfTheYears","data-src","playerImageSrcSet","missingReason","person","QualifiedPlayerCardItem","QualifiedPlayerCardItem_objectWithoutProperties","QualifiedPlayerCard_QualifiedPlayerCard","QualifiedPlayerCardItem_extends","QualifiedGolfersPlayersList","interpolateWithPlural","single","plural","interpolate","PreviousQualificationEvent","PreviousQualificationEvent_classCallCheck","PreviousQualificationEvent_getPrototypeOf","isGolfersShown","restPlayersRef","PreviousQualificationEvent_assertThisInitialized","onVisibilityTriggerClick","handleRestPlayersVisibility","restPlayersElement","isDesktopWide","isDesktop","golfers","getPlayersToShow","previewPlayers","getPreviewPlayers","restPlayers","getRestPlayers","logoImageSrcSet","getPlayersQualifiedCaption","infoLink","getTriggerButtonCaption","restPlayersCount","_this$props$translati","showPlayers","_this$props$translati2","qualifiedPlayers","PreviousQualificationEvents","events","js_PreviousQualificationEvent","js_actions","showPreviousEvents","changeDeviceType","QualifiedGolfersPreview","morePlayersCount","totalPlayersCount","onShowEventsClick","creators","QualifiedGolfers","isEventsShown","js_PreviousQualificationEvents","js_QualifiedGolfersPreview","INITIAL_STATE","hydrated","reducer_objectSpread","QualifiedGolfersComponent","qualified_golfers_component_classCallCheck","qualified_golfers_component_getPrototypeOf","qualified_golfers_component_assertThisInitialized","js_QualifiedGolfers","QualifiedPlayerCardComponent","qualified_player_card_component_classCallCheck","qualified_player_card_component_getPrototypeOf","QualifiedPlayersListingItem","QualifiedPlayersListingContent","QualifiedPlayersListingItem_QualifiedPlayersListingItem","PredictiveSearch","PredictiveSearch_classCallCheck","PredictiveSearch_getPrototypeOf","PredictiveSearch_assertThisInitialized","onClearButtonClick","formRef","baseElement","predictiveSearchUrl","maxSuggestionsCount","moreSuggestionsAvailableClass","autocompleteInstance","dispose","suggestion","searchType","PredictiveSearch_objectWithoutProperties","PredictiveSearch_objectSpread","$inputElement","devbridgeAutocomplete","minChars","deferRequestBy","zIndex","appendTo","showNoSuggestionNotice","noSuggestionNotice","triggerSelectOnValidInput","lookup","query","spinnerElement","getSuggestions","transformSuggestions","formatResult","renderSuggestion","onSelect","handlePredictiveSelect","suggestionsContainer","isSubmitted","isFocused","isFilledMode","onSearchButtonClick","isMinimized","renderInnerButton","onCollapseButtonClick","onClear","QualifiedPlayersPredictiveSearch","QualifiedPlayersPredictiveSearch_classCallCheck","QualifiedPlayersPredictiveSearch_getPrototypeOf","QualifiedPlayersPredictiveSearch_assertThisInitialized","countryId","QualifiedPlayersPredictiveSearch_objectSpread","suggestionInfo","flagSuggestionTemplate","playerSuggestionTemplate","passProps","QualifiedPlayersPredictiveSearch_objectWithoutProperties","PredictiveSearch_PredictiveSearch","QualifiedPlayersPredictiveSearch_extends","queryType","QualifiedPlayersListingLoadMore","loadMoreElement","QualifiedPlayersListingFiltersTriggerButton","isFiltersVisible","getButtonText","QualifiedPlayersListingControls","QualifiedPlayersListingControls_classCallCheck","QualifiedPlayersListingControls_getPrototypeOf","getIsMinimized","QualifiedPlayersListingControls_assertThisInitialized","onPredictiveSearchBlur","onPredictiveSearchFocus","isTriggerButtonVisible","QualifiedPlayersListingFiltersTriggerButton_QualifiedPlayersListingFiltersTriggerButton","onFiltersTogglerClick","QualifiedPlayersPredictiveSearch_QualifiedPlayersPredictiveSearch","predictiveEndpointUrl","ListingSelect","ListingSelect_classCallCheck","ListingSelect_getPrototypeOf","ListingSelect_assertThisInitialized","ListingCheckList","ListingCheckList_classCallCheck","ListingCheckList_getPrototypeOf","ListingCheckList_assertThisInitialized","QualifiedPlayersListingFilters","QualifiedPlayersListingFilters_classCallCheck","QualifiedPlayersListingFilters_getPrototypeOf","filtersRef","QualifiedPlayersListingFilters_assertThisInitialized","filtersElement","prevProps","handleFiltersVisibility","ListingCheckList_ListingCheckList","ListingSelect_ListingSelect","renderFilter","QualifiedPlayersListingHeader","QualifiedPlayersListingHeader_classCallCheck","QualifiedPlayersListingHeader_getPrototypeOf","QualifiedPlayersListingHeader_assertThisInitialized","QualifiedPlayersListingControls_QualifiedPlayersListingControls","itemsCount","QualifiedPlayersListingFilters_QualifiedPlayersListingFilters","QualifiedPlayersListing","QualifiedPlayersListing_classCallCheck","QualifiedPlayersListing_getPrototypeOf","QualifiedPlayersListing_objectSpread","QualifiedPlayersListingHeader_QualifiedPlayersListingHeader","QualifiedPlayersListingContent_QualifiedPlayersListingContent","QualifiedPlayersListingLoadMore_QualifiedPlayersListingLoadMore","QualifiedPlayersListingComponent","qualified_players_listing_component_classCallCheck","qualified_players_listing_component_getPrototypeOf","listingElement","loadmore","SearchApiUrl","PredictiveSearchApiUrl","filtersConfig","Filters","playersListingOptions","QualifiedPlayersListing_QualifiedPlayersListing","RecaptchaComponent","ResetPasswordUrlComponent","reset_password_url_component_classCallCheck","reset_password_url_component_getPrototypeOf","resetPasswordUrl","resetPasswordLink","toggleRightHeaderLink","mainRightHeaderLinkItem","memberRightHeaderLinkItem","displayMemberLinkItemCondition","toggleCssClass","getAllMainRightLinkItems","getElementsByQuery","rightHeaderLinkItem","getSiblingMemberRightLinkItem","getSiblingByQuery","RightHeaderLinkItem","right_header_link_item_component_classCallCheck","right_header_link_item_component_getPrototypeOf","right_header_link_item_component_assertThisInitialized","getElementByQuery","getMainRightLinkItem","getMemberRightLinkItem","displayRightHeaderLinkByOneClubMembership","RightHeaderLinks","right_header_links_component_classCallCheck","right_header_links_component_getPrototypeOf","mainRightHeaderLinkItems","mainLinkItem","memberLinkItem","right_header_links_component_assertThisInitialized","handleUserDataCookieChange","RolexWatchComponent","rolex_watch_component_classCallCheck","rolex_watch_component_getPrototypeOf","intervalId","thresholdDate","isSimple","shouldShowCountdown","lazyloadIframes","setSeconds","getSeconds","iframes","activityHelper","timeoutHandle","isOnPage","_onChange","maxIdleTimeInSeconds","parsedMaxIdleTimeInSeconds","NaN","_timeOutFunction","signInFormApi","setAccessTokenCookie","reloadToBasePage","handleUserIdleTime","onpageshow","onpagehide","refreshMyAccountStyle","currentAddress","randaPage","SSOFormContext","createContext","addressesFormCallbackFunctions","HandleShowDisplayAddressForm","HandleShowAddAddressForm","HandleAddNewAddress","HandleShowUpdateAddressForm","HandleUpdateAddress","HandleRemoveAddress","initial_state","oneClubRegisterFormState","isSaving","availableCounties","availableStates","formHasErrors","defaultRegisterFormState","ballotRegisterFormState","emailCheckInProgress","ticketingRegisterFormState","privacyPolicy","oneClubTermsAndServices","raMembersRegisterFormState","userDetailsFormState","isConfirmationPopUpOpen","isUserUpdatingEmail","changePasswordFormState","userAddressesFormState","formState","accountData","emailNotificationSettingsFormState","theOneClubFormState","leaveOneClubCheck","orderHistoryFormState","orderHistoryData","orderHistoryActivePageNumber","displayCancelledFiles","fileNumberForDisplay","userTicketsFormState","isTicketPrintModalOpen","printOptions","modalFormData","addUserAddressesFormState","updateUserAddressesFormState","upgradeAccountFormState","userAccountData","isSubmitAction","upgradeBallotFormState","ssoItemListFormState","upgradeRaMembersFormState","signInFormState","isProcessing","newPasswordRequiredFormState","forgotPasswordFormState","resetPasswordFormState","verificationCode","verifyEmailFormState","FormMessage","isSuccessMessage","messages","classType","fieldClass","messagesToDisplay","displayFormMessages","ssoFieldTypes","Username","ConfirmEmailAddress","ConfirmPassword","DateOfBirth","AddressLine3","MobilePhone","MainAddress","ShippingAddress","BillingAddress","FavoritePlayer","Venues","Consent","OffersDetails","AcceptOffers","OffersConsent","RefuseOffers","Policy","PrivacyPolicy","OneClubTermsAndServices","ContactDetails","VerificationCode","BecomeOneClubMember","SelectOption","MultipleChoiceOption","LookupSuggestion","FrequentlyAskedQuestion","HTMLText","BecomeOneClubMemberInfo","MainAddressLabel","ChampionshipSection","ChannelSection","InterestSection","RaMemberId","Captcha","Mastercard","State","TextAndImageTile","formStyleConstants","smallField","isSuccess","isInvalid","isOpened","fieldHeaderClassName","customFieldClassName","FieldHeader","headerTitle","headerText","textClassName","fieldClassName","FormTextInput","FormTextInput_classCallCheck","FormTextInput_getPrototypeOf","validState","handleBlur","FormTextInput_assertThisInitialized","handleChangeCallback","handleFieldIsFilled","getFieldType","initialState","FormTextInput_objectSpread","isPassword","autocompleteValue","isHidden","size","tooltipText","utility_FieldHeader","data-tip","data-for","data-place","react_fontawesome_index_es","icon","faInfoCircle","index_es","autoComplete","FormCaptchaField","FormCaptchaField_classCallCheck","FormCaptchaField_getPrototypeOf","recaptchaPublicKey","recaptchaStyle","esm","sitekey","FormOffers","offersDetails","refuseOffersName","acceptOffersName","FormOffers_slicedToArray","setIsDirty","_useState4","refuseOffers","setRefuseOffers","_useState6","acceptOffers","setAcceptOffers","refuseOffersDefaultValueFromProps","acceptOffersDefaultValueFromProps","acceptOffersFieldTitle","fieldHeaderTitle","acceptOffersFieldText","fieldHeaderText","refuseOffersFieldTitle","refuseOffersFieldText","checkboxValue","getDestructuredText","emailConsent","FormPolicy","policy","showConsent","consentLabel","policyName","getDestructuredTextWithMultipleLinks","defaultChecked","FormConsentDetails","FormConsentDetails_classCallCheck","FormConsentDetails_getPrototypeOf","handleClick","FormConsentDetails_assertThisInitialized","consentDetails","data-dc-accordion-ref","aria-expanded","FormSelectField","FormSelectField_classCallCheck","FormSelectField_getPrototypeOf","selectedOption","FormSelectField_assertThisInitialized","FormSelectField_objectSpread","propertyForValue","FormDateField","FormDateField_classCallCheck","FormDateField_getPrototypeOf","FormDateField_assertThisInitialized","dayValue","monthValue","yearValue","FormDateField_objectSpread","FormDateField_defineProperty","FormMultipleInterests","FormMultipleInterests_classCallCheck","FormMultipleInterests_getPrototypeOf","displayVenues","FormMultipleInterests_assertThisInitialized","displayHeader","interestsData","indexOfVenue","_this$props3","_this$props4","FormContactInfo","contactDetails","FormCheckboxInput","FormLookupField","FormLookupField_classCallCheck","FormLookupField_getPrototypeOf","lookupValue","areSuggestionsVisible","FormLookupField_assertThisInitialized","displaySuggestedPlayers","handleCloseSuggestions","newLookupValue","updatedLookUpValue","FormLookupField_objectSpread","filteredSuggestions","isAllWhiteSpace","filteredSuggestion","FormHTML","hasEmptyValues","FormMobilePhoneInput","FormMobilePhoneInput_classCallCheck","FormMobilePhoneInput_getPrototypeOf","FormMobilePhoneInput_defineProperty","FormMobilePhoneInput_assertThisInitialized","box","flagsListContainer","handleFlagContainerClick","handleFlagsListContainer","handleListItemEnter","handleListItemLeave","handleCountryItemClick","getProcessedDefaultValue","getRetrievedDefaultValue","processedDefaultValue","FormMobilePhoneInput_objectSpread","handleOutsideClick","retrievedDefaultValue","toggle","targetChildren","selectedCountryItem","selectedCountryPhonePrefix","selectedCountryItemValue","selectedCountryPhonePrefixValue","onMouseEnter","onMouseLeave","FormMastercardField","FormMastercardField_classCallCheck","FormMastercardField_getPrototypeOf","FormMastercardField_assertThisInitialized","FormMastercardField_objectSpread","mastercardLogo","FormTextAndImageField","FormTextAndImageField_classCallCheck","FormTextAndImageField_getPrototypeOf","backgroundColor","displayTag","inlineTagMessageStyle","getTagStyle","formFields","fieldProperties","utility_FormTextInput","formReference","fieldLabel","fieldSize","fieldChangeCallback","fieldValidStateCallback","handleOnBlur","confirmEmailAddress","utility_FormSelectField","fieldOptions","utility_FormDateField","utility_FormMobilePhoneInput","FormChecboxInput","utility_FormLookupField","fieldSuggestions","common_FormMultipleInterests","consent","common_FormConsentDetails","common_FormOffers","common_FormPolicy","common_FormContactInfo","becomeOneClubMember","becomeOneClubMemberInfo","utility_FormHTML","mainAddressLabel","channelSection","reCaptcha","utility_FormCaptchaField","mastercard","utility_FormMastercardField","textAndImageTile","utility_FormTextAndImageField","findOptionInSelectField","selectField","optionValue","propertyToReturn","findElementByProperty","getProperty","FormBuilder","formReferences","countyData","stateData","countryData","handleFieldChange","handleConfirmEmailChange","handleOldPasswordChange","handleConfirmPasswordChange","handleDateChange","handleMobilePhoneChange","handleCountryChange","handleCaptchaChange","handleFieldValidState","handleMastercardNumberChange","isReadOnly","form_builder_slicedToArray","fieldType","getOrderNo","formDataKey","formDataValue","ssoFieldType","getObjectKeyByValue","isTextAndImageField","formField","formFieldsConfig","titlePropertyForValue","countryPropertyForValue","countyPropertyForValue","statePropertyForValue","fieldKey","getFieldProperties","orderNo","MAX_SAFE_INTEGER","buildForm","REGISTER_USER_SUCCESS","REGISTER_USER_ERROR","LOAD_REGISTER_FORM_DATA_SUCCESS","LOAD_REGISTER_FORM_DATA_ERROR","RESEND_EMAIL_VERIFICATION_SUCCESS","RESEND_EMAIL_VERIFICATION_ERROR","RESET_REGISTER_FORM_STATE","SIGN_IN_USER_SUCCESS","SIGN_IN_USER_ERROR","LAST_LOG_IN_UPDATE_SUCCESS","LAST_LOG_IN_UPDATE_ERROR","NEW_PASSWORD_SAVED_SUCCESS","NEW_PASSWORD_SAVED_ERROR","RESET_SIGN_IN_FORM_STATE","SIGN_OUT_USER_SUCCESS","SIGN_OUT_USER_ERROR","LOAD_SIGN_IN_FORM_DATA_SUCCESS","LOAD_SIGN_IN_FORM_DATA_ERROR","LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_SUCCESS","LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_ERROR","LOAD_SIGN_IN_SUCCESS_FORM_DATA_SUCCESS","FORGOT_PASSWORD_SUCCESS","FORGOT_PASSWORD_ERROR","RESET_FORGOT_PASSWORD_FORM_STATE","LOAD_FORGOT_PASSWORD_FORM_SUCCESS","LOAD_FORGOT_PASSWORD_FORM_ERROR","RESET_PASSWORD_SUCCESS","RESET_PASSWORD_ERROR","LOAD_RESET_PASSWORD_FORM_SUCCESS","LOAD_RESET_PASSWORD_FORM_ERROR","RESET_RESET_PASSWORD_FORM_STATE","LOAD_HOME_PAGE_TICKETS_DATA_SUCCESS","LOAD_HOME_PAGE_TICKETS_DATA_ERROR","LOAD_USER_DATA_SUCCESS","LOAD_USER_DATA_ERROR","LOAD_ORDER_HISTORY_SUCCESS","LOAD_ORDER_HISTORY_ERROR","LOAD_ORDER_HISTORY_PAGES_SUCCESS","LOAD_ORDER_HISTORY_PAGES_ERROR","LOAD_ORDER_DETAILS_SUCCESS","LOAD_ORDER_DETAILS_ERROR","LOAD_USER_TICKETS_SUCCESS","LOAD_USER_TICKETS_ERROR","DOWNLOAD_PDF_FILE_SUCCESS","DOWNLOAD_PDF_FILE_ERROR","RESUME_PAYMENT_BY_FILE_NUMBER_ERROR","RESUME_PAYMENT_BY_FILE_NUMBER_SUCCESS","UPDATE_USER_DETAILS_SUCCESS","UPDATE_USER_DETAILS_ERROR","REMOVE_USER_ACCOUNT_SUCCESS","REMOVE_USER_ACCOUNT_ERROR","UPDATE_USER_ADDRESSES_SUCCESS","UPDATE_USER_ADDRESSES_ERROR","RESET_USER_ADDRESSES_FORM_STATE","USER_ADDRESSES_ERROR_MESSAGE","RESET_USER_DETAILS_FORM_STATE","CHANGE_PASSWORD_SUCCESS","CHANGE_PASSWORD_ERROR","RESET_HOME_PAGE_TICKETS_DATA_FORM_STATE","UPGRADE_TO_TICKETING_ACCOUNT_SUCCESS","UPGRADE_TO_TICKETING_ACCOUNT_ERROR","RESET_UPGRADE_ACCOUNT_FORM","LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_SUCCESS","LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_ERROR","RESET_RETRIEVE_USER_ADDRESS","PURCHASE_ATTEMPT_SUCCESS","PURCHASE_ATTEMPT_ERROR","BEGIN_API_CALL","API_CALL_ERROR","LOAD_VERIFY_EMAIL_FORM_SUCCESS","LOAD_VERIFY_EMAIL_FORM_ERROR","VERIFY_EMAIL_SUCCESS","VERIFY_EMAIL_ERROR","RESET_VERIFY_EMAIL_FORM_STATE","UPDATER_USER_EMAIL_SUCCESS","UPDATE_ONE_CLUB_MEMBERSHIP_ERROR","UPDATE_ONE_CLUB_MEMBERSHIP_SUCCESS","UPDATE_OPTINS_ERROR","UPDATE_OPTINS_SUCCESS","VERIFY_IF_USER_EMAIL_EXISTS_ERROR","VERIFY_IF_USER_EMAIL_EXISTS_SUCCESS","SAVE_USER_TO_ADDRESS_BOOK_SUCCESS","SAVE_USER_TO_ADDRESS_BOOK_ERROR_MESSAGE","LOAD_ITEM_LIST_FORM_DATA_SUCCESS","LOAD_ITEM_LIST_FORM_DATA_ERROR","UPDATE_USER_DETAILS_SUCCESSFULLY","SIGN_OUT_USER_SUCCESSFULLY","RESET_PASSWORD_SUCCESSFULLY","UPGRADE_TO_TICKETING_ACCOUNT_SUCCESSFULLY","PASSWORD_RESET_REQUIRED","MUST_CONFIRM_EMAIL_MESSAGE","MISSING_USER","beginApiCall","types","apiCallError","loadSSORegisterFormDataSuccess","loadSSORegisterFormDataError","registerUserError","userRegistrationMessages","resendEmailVerificationError","resendEmailVerificationMessages","resetRegisterFormState","verifyIfUserEmailExistsError","verifyIfUserEmailExistsErrorMessages","loadSSODefaultRegisterFormData","loadDefaultRegisterFormDataUrl","loadSSOOneClubRegisterFormData","formDataUrl","registerFormApi","loadSSOTicketingRegisterFormData","loadTicketingRegisterFormDataUrl","loadSSORaMembersRegisterFormData","loadRaMembersRegisterFormDataUrl","resendEmailVerification","callBackUrl","actionSuccessText","userEmailData","userEmail","website","dataFormatHelper","apiResponseMessages","registerNewUser","OneClubAdvantage","currentWebsite","toISOString","championships","getFormattedOneClubUserRegistrationData","ssoFormTypes","TicketingRegister","getFormattedTicketingRegistrationData","getFormattedRaMembersRegistrationData","DefaultRegister","getFormattedDefaultUserRegistrationData","registerUserSuccess","verifyIfEmailAddressExists","verifyIfUserEmailExistsSuccess","validateDate","userSetDate","userSetValues","yearAsNumber","parseUserSetDate","createDate","getTodayAsDate","isUserOfAge","validateBooleanValue","formFieldValidators","form_field_validators_defineProperty","_formFieldValidators","passwordText","defaultValuePropertyName","eventTarget","form_state_helper_defineProperty","handleFieldChangeWithValidation","fieldData","_objectSpread5","valueToUpdate","form_state_helper_objectSpread","fieldValidator","handleOldPasswordFieldChange","_objectSpread7","handleConfirmPasswordFieldChange","_objectSpread8","validationResult","_objectSpread10","mastercardError","_objectSpread12","stateField","_objectSpread14","countryCode","handleAddressDataChange","retrievedUserAddress","countyField","_objectSpread15","retrievedCountry","retrievedCounty","retrievedState","availableCounty","availableState","selectedCounty","selectedState","handleFormValidation","formDataKeys","formValues","validateField","validator","fieldValue","selectedCountryCode","validateSelectedCounty","validateSelectedState","mastercardValidationError","FormValidator","updateFormFields","updatedState","isFormField","offersDetailsDefaultValue","updateAvailableCounties","receivedCountry","updateAvailableStates","updateActiveMemberships","updateFormData","updateSavingState","updateProcessingState","updateAddressesFormState","addressForUpdate","toggleKey","handleSubmit","getFormReferences","scrollToInvalidField","scrollToReference","scrollToField","captcha","scrollIntoView","behavior","HeaderLinkDisplay","headerMessage","headerLink","headerLinkText","SSOFormHeader","linkCallBackUrl","secondLinkCallBackUrl","headerSubtitle","headerSecondMessage","headerSecondLinkText","messageOnNewRow","displaySecondMessageAndLink","header_link_display","SSOFormFooter","footerButtonText","footerLinkText","useYellowButton","_ref$isSubmit","isSubmit","buttonClass","utility_GTMUserActions","eventLabel","modalConstants","dataModal","MODAL_BEM_CLASS_WIDE","WIDE","MODAL_BEM_CLASS_DESKTOP_WIDE","MODAL_BEM_CLASS_MOBILE_FIXED","MODAL_BEM_CLASS_CLOSE_OUTSIDE","CLOSE_OUTSIDE","MODAL_BEM_CLASS_TITLE","TITLE","MODAL_BEM_CLASS_AUTO","AUTO","MODAL_BEM_CLASS_SPLIT","SPLIT","toggleBemClassForWrapperModal","addClass","wrapperModal","isHtmlElement","getParent","getWrapperModalElement","bemClass","getModalContentClassListForSSOForm","baseClassList","getFormDataForSSOForm","desktopImageSrc","getFormContainerWideLeftClassList","mobileImageSrc","toggleBemClassesForSSOFormModal","_getBemClassesToToggl","getBemClassesToToggle","addBemList","removeBemList","_getInitialBemClasses","getInitialBemClassesToToggle","mergeBemList","getRemoveBemClasses","OneClubRegister","UpgradeToOneClubAccountFromDefault","UpgradeToOneClubAccountFromTicketing","UpgradeToTicketingAccount","SignIn","BallotSignInForm","BallotLiteRegister","BallotFullRegister","BallotSummaryForm","initialBemList","bemListToMerge","finalBemList","signInFormData","formDataObject","OneClubRegisterForm","OneClubRegisterForm_classCallCheck","OneClubRegisterForm_getPrototypeOf","OneClubRegisterForm_objectSpread","isModalStylingUpdated","formMessageRef","formScrollHelpers","displayOneClubRegisterForm","OneClubRegisterForm_assertThisInitialized","displayForm","loadFormData","handleValidationResult","submitRegisterData","finalizeSubmitData","handleUserRegisterSuccess","resetForm","ssoFormType","getFormDataUrl","loadSSORegisterFormData","isRegisterSuccessful","previousRegisterFormData","formStateHelpers","onUserRegisterSuccess","_this$props$registerF","requestEmailVerificationCallbackUrl","requestEmailVerificationActionSuccessText","bannerSuccessRegistration","registerFormType","successText","emailVerificationCallbackUrl","emailVerificationActionSuccessText","reCaptchaToken","captchaRef","grecaptcha","callBackUrlPost","GTMUserActions","trackJoinTheOneClubAction","onSignIn","onForgotPassword","formHeader","utility_SSOFormHeader","utility_FormMessage","utility_SSOFormFooter","copyOfFormData","deepCopyObject","stateFieldDefaultValue","formFieldDisplayHelpers","_this$props5","apiStatus","apiCallsInProgress","registerForm","registerFormActions","UserRegisterSuccessForm","onBallotSignIn","isBallotRegister","isResendEmailVerificationSuccessful","BallotRegisterForm","BallotRegisterForm_classCallCheck","BallotRegisterForm_getPrototypeOf","BallotRegisterForm_objectSpread","displayBallotRegisterForm","BallotRegisterForm_assertThisInitialized","getHeaderLink","isUserEmailAlreadyUsed","updatedErrors","emailValidation","emailHeaderLink","signInMessage","previousCheckedEmail","emailValue","emailValidationEndpoint","displayForgotPasswordLink","emptyForm","UNAUTHORIZED_STATUS_CODE","TOO_MANY_REQUESTS_STATUS_CODE","getServerErrorMessages","statusCode","isString","isTextJSON","parsedResponse","allErrors","loadSSOUpgradeToOneClubFormDataError","upgradeToTicketingAccountSuccess","accountUpgradeMessages","upgradeToTicketingAccountError","updateOneClubMembershipError","oneClubMembershipUpdateMessages","updatePrivacyPolicyAndTermsAndConditionsError","privacyPolicyAndTermsUpdateMessages","resetUpgradeAccountFormState","loadSSOUpgradeToOneClubFormData","userAccountApi","ssoUpgradeToOneClubFormData","serverErrorMessages","messageHelper","uniqueMemberships","userDetailsFormType","getUpgradeToOneClubFormType","upgradeBallotSummaryAccount","copyOfAccountData","preferenceCentre","getDateAsISOString","upgradeRaMembersSummaryAccount","reload","joinOneClub","agreePrivacyPolicyAndTermsAndCoditions","agreePrivaciPolicy","agreeTermsAndConditions","resetRetrievedUserAddress","NO_CURRENT_USER_MESSAGE","loadHomePageTicketsDataError","loadHomePageTicketsDataErrorMessages","loadUserDataError","isUserNotSignedIn","loadOrderHistoryError","loadOrderHistoryErrorMessages","loadOrderHistoryPagesError","loadOrderHistoryPagesErrorMessages","loadOrderDetailsError","loadOrderDetailsErrorMessages","loadUserTicketsError","loadUserTicketsErrorMessages","downloadPdfFileSuccess","downloadPdfFileError","downloadPdfFileErrorMessages","updateUserDetailsSuccess","updateUserDetailsMessages","resumePaymentByFileNumberError","errorMessages","updateUserDetailsError","removeUserAccountError","updateUserAddressesError","updateUserAddressesMessages","resetAddressesFormState","displayUserAddressesErrorMessage","resetUserDetailsFormState","changePasswordMessages","changePasswordError","saveUserToAddressBookErrorMessages","getHomePageTicketsData","secuTixErrorMessage","domainConstants","womensOpen","homePageTicketsData","ticketsData","actionItems","actionItem","theOpen","orderTypeIndex","lastOrder","fileStateIndex","formattedFileAmount","loadHomePageTicketsDataSuccess","resetHomePageTicketsData","getUserAccountData","isAccountPageRefresh","loadUserDataSuccess","getOrderHistory","pageNumber","orders","formattedLastUpdate","lastUpdateDate","loadOrderHistorySuccess","getOrderHistoryPages","orderHistoryPages","loadOrderHistoryPagesSuccess","getOrderDetails","orderDetails","orderDetailsData","formattedTotalAmountPaid","formattedAmountInvoiced","formattedLastPaymentDate","lastPaymentDate","installment","formattedDueDate","formattedAmountDue","formattedAmountPaid","currentHistory","formattedConfirmed","formattedOpen","formattedTotalAmount","fileContentItems","fileContentItem","formattedUnitPrice","formattedSubTotal","subtotal","getUserTickets","userTicketsData","loadUserTicketsSuccess","eventTickets","downloadTicketPdf","ticketId","ticketForPrint","firstNameValue","lastNameValue","downloadPdfDocumentById","updateUserAddresses","updateUserDetails","emailChangedConflictMessage","updatedUserEmailChanged","joinTheOneClub","updateMainAddressToJoinOneClub","oneClubIndex","updateUserEmailNotificationSettings","_userRegistrationData2","getChannelInterests","getOptInBasedOnChannels","getOptInPartnersBasedOnChannels","removeAccount","changeUserPassword","passwordDetails","displayVerifyUserEmail","handleRedirectToResaleTickets","resaleTicketsUrl","secutixResaleUrl","secutixPointOfSaleId","secutixVirtualOperator","requestUrl","resumePaymentByFileNumber","urls","request","resumePaymentCallbackUrl","secutixAuthUrl","promises","resumePaymentPromise","authPromise","responseValues","orderId","orderToken","saveUserToAddressBook","formattedRequestModel","dotDigitalAddressBookData","addressBookData","UserDetails","AddressBookID","getSaveUserToAddressBookRequestModel","userAttributes","dotDigitalAttributes","attribute","Key","getFormattedDotdigitalUserAttribute","getFormattedDotdigitalUserAttributeList","getUserDetailsForSaveToAddressBookRequest","saveUserToDotDigitalCallbackUrl","BallotSummaryDetailsFormData","_formData$formConstan","userCountryCodeMobilePhonePrefix","foundAddress","ballot_summary_form_data_defineProperty","getBallotSummaryUserDetailsFieldsWithDefaultValues","_objectSpread2","BallotSummaryForm_classCallCheck","BallotSummaryForm_getPrototypeOf","upgradeFormHelper","BallotSummaryForm_objectSpread","BallotSummaryForm_defineProperty","displayBallotSummaryForm","BallotSummaryForm_assertThisInitialized","handleUserUpdateBallotSummarySuccess","submitBallotSummaryData","userProfileCallbackUrl","isUpgradeSuccessful","isUserAddressRetrieveSuccessful","isUserAccountDataLoadedSuccessful","userDataLoaded","updateUserAccountData","nextUserAccountData","userDetailsFormData","alreadyMastercardMemberText","handleBallotSummarySuccess","handleBallotPortalRedirect","callBackUrlPut","purchaseAttemptMessages","_this$props6","upgradeAccountForm","userAddressSearchData","retrieveAddressMessages","userAccount","upgradeAccountActions","userAddressActions","userAccountActions","loadSSOItemListFormDataError","loadSSOItemListFormData","formId","loadSSOItemListFormDataUrl","itemListFormApi","itemListFormData","SSOItemListForm","SSOItemListForm_classCallCheck","SSOItemListForm_getPrototypeOf","SSOItemListForm_objectSpread","SSOItemListForm_assertThisInitialized","buildFormRefs","displayItemListForm","handleModalClose","isFormLoadSuccessful","itemListErrorMessages","loadFields","hideModalCloseButton","oldItemList","newItemList","parametersDidUpdate","fieldCounter","keyValuedFields","getKeyValuedTextAndImageFields","hideCloseButton","closeButton","hasFormFields","isFromBallot","reloadPageWithoutQueryParams","itemListForm","itemListFormActions","BallotSignInForm_classCallCheck","BallotSignInForm_getPrototypeOf","BallotSignInForm_objectSpread","BallotSignInForm_assertThisInitialized","handleOauthSignUp","preventFormSubmit","handleOauthSignIn","sessionStorage","ballotSignInStorageItem","hrefAttribute","isBallotFlow","BallotSignInForm_extends","componentToRenderUrl","getComponentToRenderAfterSignIn","nextFormTypeAfterSignIn","getPageUrlWithoutQueryParams","oAuthRegisterRoute","signUp","nextFormTypeToDisplay","BallotSignInSuccessForm","ballotSignInSuccessFormDataUrl","ballotSummaryFormDataUrl","headingText","getHeadingText","getButton","signInButtonText","getFooterLink","forgottenPasswordLinkText","registerHeadingText","registerButtonText","submitAction","buttonText","getButtonContent","onRegister","OneClubMemberMessage","messageParagraphs","oneClubMessage","MultiLineMessage","NonOneClubMemberMessage","BallotSignInSuccessForm_slicedToArray","hideSaveButton","setHideSaveButton","_useState8","setShowSuccessMessage","nonOneClubMessage","nonOneClubSuccessfulMessage","successMessageParagraphs","joinButtonMessage","setIsOneClubMember","setDisplayForm","loadSSOForgotPasswordFormDataError","handleUserForgotPasswordError","forgotPasswordMessages","resetForgotPasswordFormState","loadSSOForgotPasswordFormData","loadForgotPasswordFormDataUrl","forgotPasswordFormData","handleUserForgotPassword","userForgotPasswordData","forgotPasswordFormApi","ForgotPasswordForm","ForgotPasswordForm_classCallCheck","ForgotPasswordForm_getPrototypeOf","ForgotPasswordForm_assertThisInitialized","displayForgotPasswordForm","submitForgotPasswordData","loadForgotPasswordFormData","isForgotPasswordSuccessful","forgotPasswordForm","forgotPasswordFormActions","loadSSOResetPasswordFormDataError","handleResetPasswordError","resetPasswordMessages","resetResetPasswordFormState","loadSSOResetPasswordFormData","loadResetPasswordFormDataUrl","resetPasswordFormData","handleResetPassword","userResetPasswordData","resetPasswordFormApi","NEW_PASSWORD_REQUIRED","PASSWORD_RESET_REQUIRED_EXCEPTION","USER_LAMBDA_VALIDATION_EXCEPTION","USER_NOT_FOUND_EXCEPTION","loadSSOSignInFormDataSuccess","loadSSOSignInFormDataError","loadNewPasswordRequiredFormDataError","loadPasswordRequiredFormDataMessages","signInUserSuccess","signInProperties","signInUserError","signInMessages","lastLogInDataUpdateError","newPasswordSavedError","newPasswordSavedMessages","resetSignInFormState","loadSSOSignInFormData","loadRaMembersSignInFormData","loadRaMembersSignInFormDataUrl","loadSSOSignInSuccessFormData","signInSuccessFromDataUrl","signInFormDataSuccess","loadNewPasswordRequiredFormData","loadNewPasswordRequiredFormDataUrl","newPasswordRequiredFormData","handleNewPasswordRequired","cognitoUser","finalizeNewPasswordChange","lastLogInProperties","isUserLastLogInDataUpdated","signInUser","userSignInData","cognitoChallengeNames","finalizeUserSignIn","signOutMessages","ResetPasswordForm","ResetPasswordForm_classCallCheck","ResetPasswordForm_getPrototypeOf","displayResetPasswordForm","ResetPasswordForm_assertThisInitialized","loadResetPasswordForm","submitResetPasswordData","getFormHeaderLabel","handleSignInSuccessful","isResetPasswordSuccessful","getParameterByName","_userSignInData","ResetPasswordForm_defineProperty","formText","resetPasswordForm","signInForm","resetPasswordFormActions","signInFormActions","ChangePasswordFooter","ChangePasswordForm","ChangePasswordForm_classCallCheck","ChangePasswordForm_getPrototypeOf","displayChangePasswordForm","ChangePasswordForm_assertThisInitialized","submitPasswordData","isUserPasswordChangedSuccessful","change_password_ChangePasswordFooter","formTitle","loadSSOVerifyEmailFormDataError","handleUserVerifyEmailError","verifyEmailMessages","resetVerifyEmailFormState","loadSSOVerifyEmailFormData","loadVerifyEmailFormDataUrl","verifyEmailFormData","handleUserVerifyEmail","verifyEmailData","verifyCurrentUserAttributeSubmit","emailAttributeName","VerifyEmailForm","VerifyEmailForm_classCallCheck","VerifyEmailForm_getPrototypeOf","VerifyEmailForm_assertThisInitialized","displayVerifyEmailForm","loadVerifyEmailFormData","isVerifyEmailSuccessful","submitVerifyEmailData","verifyEmailForm","verifyEmailFormActions","signInActions","UserDetailsForm","UserDetailsForm_classCallCheck","UserDetailsForm_getPrototypeOf","UserDetailsForm_objectSpread","isWomensOpen","displayUserDetailsForm","UserDetailsForm_assertThisInitialized","handleRemoveAccountClick","handleUserDetailsUpdateSuccess","handleUserDetailsEmailUpdateSuccess","submitUserDetailsData","handleSSOUpgradeToMemberPlusRedirect","handleSSOUpdateTicketingAccountRedirect","handleSSOUpdateAccountRedirect","isUserDetailsUpdatedSuccessful","isUserAccountRemovedSuccessful","refreshAccountPage","updateAccountData","IdentityBrokerConfig","upgradeToTicketingRoute","upgradeToOneClubAdvantageRoute","updateAccountRoute","formattedActionSuccessText","removeAccountCallbackUrl","verify_email_VerifyEmailForm","_objectSpread6","confirmEmail","removeAccountInputText","removeAccountInputWarning","removeAccountModalWarning","removeAccountModalWarningSplit","data-prefix","LastOrder","fileStateValues","orderTypeValues","onViewLastOrderSummaryClick","hasOrders","lastUpdateText","Upcoming","upcomingTicket","showParkingButton","showParkingButtonText","parkingButtonUrl","onViewTicketsClick","detailsText","eventName","eventLocation","FileActionsTable","onViewFileSummaryClick","showExpiryDate","isLast","expiryDateText","handleViewFileSummaryClick","AccountHomePage","AccountHomePage_classCallCheck","AccountHomePage_getPrototypeOf","loadHomePageTicketsData","AccountHomePage_assertThisInitialized","getHomePageTicketsDataCallbackUrl","isTicketsDataLoadedSuccessful","actionsToPerformValue","formSubTitle","actionOrderType","formSubtitleSplit","shouldDisplayHomePageTicketsData","account_home_page_FileActionsTable","account_home_page_Upcoming","account_home_page_LastOrder","SSOCloseButton","onCloseButtonClick","AddAddressForm","AddAddressForm_classCallCheck","AddAddressForm_getPrototypeOf","displayAddAddressForm","AddAddressForm_assertThisInitialized","submitAddressData","buildNewAddress","onAddAddressClick","newAddress","onCloseAddAddressFormClick","utility_SSOCloseButton","FormAddressDisplayField","FormAddressDisplayField_classCallCheck","FormAddressDisplayField_getPrototypeOf","mainValue","shippingAddressValue","billingAddressValue","handleEditAddress","FormAddressDisplayField_assertThisInitialized","handleRemoveAddress","handleUpdateAddress","updateAddressValues","displayCitySection","displayCountrySection","onEditAddressClick","onRemoveAddressClick","addressType","onUpdateAddressClick","updatedAddress","addressFlaggedForUpdate","stateName","UpdateAddressForm","UpdateAddressForm_classCallCheck","UpdateAddressForm_getPrototypeOf","UpdateAddressForm_assertThisInitialized","displayUpdateAddressForm","getAddressForUpdate","onCloseUpdateAddressFormClick","addressesFormConstants","addressDisplayForm","accountFormData","callbackFunctions","displayUserAddresses","addressAddForm","handleAddNewAddress","handleShowDisplayAddressForm","user_addresses_AddAddressForm","addressUpdateForm","getUpdateAddressFormData","user_addresses_UpdateAddressForm","handleShowAddAddressForm","noAddressFoundText","displayAddresses","handleShowUpdateAddressForm","addressesDisplayForm","user_addresses_FormAddressDisplayField","UserAddressesForm","UserAddressesForm_classCallCheck","UserAddressesForm_getPrototypeOf","submitAddressesData","UserAddressesForm_assertThisInitialized","displayAddressesForm","handleUpdateFinish","removeAddressConfirmation","addressToRemove","addAddress","getUpdatedAddresses","flaggedForUpdate","canUpdatedAddresses","canRemoveAddress","addressToRemoveIndex","cannotRemoveLastAddressMessage","cannotRemoveMainAddressMessage","cannotRemoveShippingAddressMessage","cannotRemoveBillingAddressMessage","addressFlaggedForUpdateIndex","updateUserAddressesSuccessText","userAddressesFormStateConstants","resetAddressesFormStateConstants","areUserAddressesUpdatedSuccessful","removeAddressInputText","removeAddressModalWarning","removeAddressModalWarningSplit","EmailNotificationSettingsForm","EmailNotificationSettingsForm_classCallCheck","EmailNotificationSettingsForm_getPrototypeOf","getSelectedFormData","EmailNotificationSettingsForm_objectSpread","displayEmailNotificationSettingsFrom","EmailNotificationSettingsForm_assertThisInitialized","submitUserData","_accountData$preferen","getSelectedValues","getSelectedValuesFromProperty","defaultChoices","selectedValues","updatedNotificationSuccessMessage","eventTarge","PushNotificationsForm","ResaleTicketsButton","onResaleClick","buttonColor","ResaleTicketsFAQ","questions","question","checkId","shouldDisplayResaleButton","buttonCriteria","ballotCriteria","showResaleButton","userMemberships","criteriaList","criterion","ResaleTickets","ResaleTickets_classCallCheck","ResaleTickets_getPrototypeOf","handleTicketsResaleBuy","ResaleTickets_assertThisInitialized","handleTicketsResaleSell","getOauthResaleRedirectUri","buyLink","renderedComponent","returnUri","useEncode","addQueryParam","sellLink","resaleTicketsTitle","resaleTicketsInformationOpen","sellButtonCriteria","buyButtonCriteria","resaleTicketsImageSource","resaleTicketsImageText","resaleTicketsFAQTitle","resaleTicketsFAQs","resaleTicketsIntro","showBuyLink","showSellLink","texts","introText","resale_tickets_ResaleTicketsButton","sizes","srcSet","resale_tickets_ResaleTicketsFAQ","Order","orderItem","onViewFileDetailsClick","handleViewFileDetailsClick","OrdersPagination","numberOfPages","activePageNumber","onPageNumberChange","shouldDisplayPaginator","goToPage","pageNumberButtons","getPageNumberButtons","updatedPagination","displayPagination","OrdersList","handleDisplayCancelledFilesChange","handlePageNumberChange","orderHistoryItem","order_history_display_Order","displayOrderList","order_history_display_OrdersPagination","FileSummary","onPrintSummaryButtonClick","onCancelButtonClick","onPayReservationClick","showCancelButton","SecutixReservationStatus","SecutixReservationOrderType","SecutixReservationRunningStatus","FileContentSummary","fileContents","details","Type","InstallmentTable","paymentUrl","displayInstallmentRow","PaymentSummary","isPaymentSummaryEmpty","foundCountry","file_summary_display_InstallmentTable","ChangeHistorySection","historyContentsLength","isHistoryContentsEmpty","historyContents","onPrintDocumentInvoiceButtonClick","historyContent","orderHistoryFormConstants","orderHistoryDisplayForm","order_history_display_OrdersList","fileDetailsDisplayForm","orderHistoryForDisplay","handlePrintSummaryButton","handlePrintDocumentInvoiceButtonClick","handleCloseFormButton","handlePayReservationClick","file_summary_display_FileSummary","file_summary_display_FileContentSummary","file_summary_display_PaymentSummary","file_summary_display_ChangeHistorySection","UserOrderHistory","UserOrderHistory_classCallCheck","UserOrderHistory_getPrototypeOf","showPopup","loadOrderHistoryData","UserOrderHistory_assertThisInitialized","reloadOrderHistoryData","displayOrderHistoryForm","loadFileDetails","handleCloseFileDetailsDisplayForm","toggleModalClose","handlePayReservation","areOrderDetailsLoadedSuccessful","loadOrders","getOrderHistoryPagesCallbackUrl","UserOrderHistory_defineProperty","getOrderHistoryCallbackUrl","getOrderDetailsCallbackUrl","downloadFileSummaryPdfCallbackUrl","showDialogBox","documentId","_this$props7","downloadDocumentPdfCallbackUrl","_this$props8","orderHistoryDisplayData","_this$props9","logoSrc","masterCardDialogBox","areOrderHistoryPagesLoadedSuccessful","isOrderHistoryLoadedSuccessful","UserDetailsFormData","ssoUserDetailsFields","updateUserDetailsCallbackUrl","user_details_form_data_defineProperty","getUserDetailsFieldsWithDefaultValues","paymentStatus","WAITING","IN_PROGRESS","AUTHORIZED","PAID","CANCELLED_BY_USER","FAILED","WAITING_MANUAL_VALIDATION","FAILED_REJECTED","getFileStates","runningFileStateText","suspendedFileStateText","inOptionFileStateText","inReservationFileStateText","optionReservFileStateText","confirmedFileStateText","soldFileStateText","notSoldFileStateText","partSoldFileStateText","canceledFileStateText","abandonedFileStateText","techErrorFileStateText","fileStates","getPaymentStatuses","waitingPaymentStatusText","inProgressPaymentStatusText","authorizedPaymentStatusText","paidPaymentStatusText","cancelledByUserPaymentStatusText","failedPaymentStatusText","abandonedPaymentStatusText","waitingManualValidationPaymentStatusText","failedRejectedPaymentStatusText","paymentStatuses","getOrderTypes","saleOrderTypeText","refundClientOrderTypeText","refundOrganizationOrderTypeText","exchangeOrganizationOrderTypeText","exchangeClientOrderTypeText","reservationOrderTypeText","renewalOrderTypeText","optionOrderTypeText","reservationFreeingOrderTypeText","optionFreeingOrderTypeText","stTransferOrderTypeText","orderTypes","AccountHomePageFormData","saleActionOrderTypeText","refundClientActionOrderTypeText","refundOrganizationActionOrderTypeText","exchangeOrganizationActionOrderTypeText","exchangeClientActionOrderTypeText","reservationActionOrderTypeText","renewalActionOrderTypeText","optionActionOrderTypeText","reservationFreeingActionOrderTypeText","optionFreeingActionOrderTypeText","stTransferActionOrderTypeText","actionOrderTypes","ssoAccountHomePageFields","ssoOrderHistoryFields","UserAddressesDisplayFormData","ssoUserAddressesFields","addAddressCallBackUrl","addAddressActionSuccessText","updateAddressCallBackUrl","updateAddressActionSuccessText","TicketOwnerDialog","TicketOwnerDialog_classCallCheck","TicketOwnerDialog_getPrototypeOf","displayTicketsDialogForm","TicketOwnerDialog_assertThisInitialized","handleSaveAndContinue","onSaveAndContinueClick","handleCloseTicketDialog","printTicketDialogText","TicketsDisplay","TicketsDisplay_classCallCheck","TicketsDisplay_getPrototypeOf","getTicketStatusTexts","TicketsDisplay_assertThisInitialized","handlePrintTicket","ticketIsPrintableText","ticketIsNotPrintableText","ticketIsAlreadyPrintedText","isPrintable","isAlreadyPrinted","TicketsDisplay_objectSpread","tickets","ticketType","fileId","user_tickets_TicketOwnerDialog","TicketGroups","TicketGroups_classCallCheck","TicketGroups_getPrototypeOf","ticketGroups","ticketGroup","scrollToRef","ticketEvent","user_tickets_TicketsDisplay","TicketModalBody","printTicketModalText","UserTickets","UserTickets_classCallCheck","UserTickets_getPrototypeOf","loadUserTicketsData","UserTickets_assertThisInitialized","reloadUserTicketsData","displayUserTicketsForm","displayAvailableTicketsData","displayConfirmationModal","handleHideOldTicketsChange","handlePrintTicketClick","isPdfFileDownloadedSuccessful","isUserTicketsDataLoadedSuccessful","noTicketsFoundText","shouldDisplayAvailableTickets","shouldDisplayNoTicketsFound","userTicket","user_tickets_TicketGroups","printTicketInputText","user_tickets_TicketModalBody","_this$props$formData","UserTickets_objectSpread","downloadTicketPdfCallbackUrl","getTicketsCallbackUrl","ChangePasswordFormData","ssoChangePasswordFields","TheOneClubIntro","imageText","TheOneClubMotivation","reasons","reason","htmlText","TheOneClubFAQ","LeaveOneClubModalBody","leaveTheOneClubDialogBoxTitle","leaveTheOneClubDialogBoxMessage","leaveOneClubDialogBoxCheckText","onLeaveOneClubClick","leaveTheOneClubDialogBoxMessageSplit","TheOneClub","TheOneClub_classCallCheck","TheOneClub_getPrototypeOf","TheOneClub_objectSpread","shouldLeaveOneClub","displayTheOneClubForm","TheOneClub_assertThisInitialized","handleJoinNowClick","scrollToForm","handleApproveLeaveOneClub","handleLeaveOneClubCheck","hasOneClubAccount","userAddedToAddressBookSuccessful","joinTheOneClubActionSuccessText","leaveTheOneClubActionSuccessText","updateDetailsActionSuccessText","_objectSpread16","_this$state3","leaveTheOneClubDialogBoxAgreeButton","the_one_club_LeaveOneClubModalBody","_this$state4","joinTheOneClubInputLabelText","theOneClubImageSource","theOneClubImageText","theOneClubMotivationTitle","theOneClubMotivationImageSource","theOneClubReasons","theOneClubFAQTitle","theOneClubFAQs","_this$state5","the_one_club_TheOneClubIntro","the_one_club_TheOneClubMotivation","the_one_club_TheOneClubFAQ","OrderHistoryDisplayFormData","mastercardDialogBox","mastercardDialogBoxBanner","UserTicketsDisplayFormData","ssoUserTicketsFields","TheOneClubFormData","ssoTheOneClubFields","theOneClubVideoText","theOneClubVideoWebmSource","theOneClubThumbnailSource","theOneClubVideoSource","getFieldsWithDefaultValues","TicketsResaleFormData","displayResaleCriteria","ssoAccountResaleTicketsFields","EmailNotificationSettingsFormData","updateNotificationSettingsDataCallbackUrl","channelsSection","userAccountContentConstants","accountHomePage","userDetailsForm","changePasswordForm","userAddressesForm","emailNotificationSettings","pushNotifications","userOrderHistory","userTickets","theOneClub","resaleTickets","userAccountMenuConstants","userAccountFormConstants","handleViewTicketsClick","account_home_page_AccountHomePage","user_details_UserDetailsForm","change_password_ChangePasswordForm","_accountFormData$ssoU","getCountry","selectedStateName","user_addresses_UserAddressesForm","the_one_club_TheOneClub","resale_tickets_ResaleTickets","email_notification_settings_EmailNotificationSettingsForm","user_order_history_UserOrderHistory","user_tickets_UserTickets","AccountMenuLinks","accountMenu","displayResaleTicketsMenuItem","componentToRender","handleChangeAccountDetailsContent","menuItem","theOneClubChildItem","resaleTicketsChildItem","childItem","accountDetailsLink","shouldDisplayTag","newUrl","onMouseDown","displayMenuChildren","shouldDisplayMenu","AccountMenu","toggleDisplayMenu","fullName","handleHashChange","user_account_AccountMenuLinks","UserAccountPage","UserAccountPage_classCallCheck","UserAccountPage_getPrototypeOf","modalTriggerPromoPanelRef","modalTrigger","UserAccountPage_assertThisInitialized","updateComponentToRenderDisplay","updateComponentToRender","displayMyAccountPage","displayAccountDetailsContent","isRefMounted","removeParameterByName","titleLabel","getTitleLabel","getInitials","customEvent","UserAccountPage_objectSpread","nexComponentToRender","callbackFunction","shouldRefreshComponent","getUserDataCallbackUrl","modalTriggerPromoPanel","dataLoadedSuccessful","data-dc-modal-trigger-promo-panel-options","user_account_AccountMenu","copyOfAccountFormData","copyOfUserAccountData","DefaultRegisterForm","DefaultRegisterForm_classCallCheck","DefaultRegisterForm_getPrototypeOf","DefaultRegisterForm_objectSpread","loadRegisterFormData","DefaultRegisterForm_assertThisInitialized","displayDefaultRegisterForm","updateState","TicketingRegisterForm","TicketingRegisterForm_classCallCheck","TicketingRegisterForm_getPrototypeOf","TicketingRegisterForm_objectSpread","TicketingRegisterForm_assertThisInitialized","displayTicketingRegisterForm","finishFormSubmit","trackTicketingAccountAction","trackTicketingAccountActionClick","copyOfRegisterFormData","SignInForm","SignInForm_classCallCheck","SignInForm_getPrototypeOf","SignInForm_objectSpread","gtmTrigger","displaySignInForm","SignInForm_assertThisInitialized","submitSignInData","handleSignInSuccess","updateLastLogInUserDetails","loadSignInFormData","getNextComponentToRender","onNewPasswordRequired","userLastLogInDataErrorMessages","signInFormHelpers","_signInFormHelpers$ge","cognitUser","onSignInSuccess","signInSuccessFormData","upgradeToOneClubFormData","redirectToAddress","REDIRECT_TO","TOCH_USER_EMAIL","SignInSuccess","upgradeAccountFormActions","purchaseAttemptError","retryPurchase","UpgradeToTicketingAccountForm","UpgradeToTicketingAccountForm_classCallCheck","UpgradeToTicketingAccountForm_getPrototypeOf","UpgradeToTicketingAccountForm_objectSpread","UpgradeToTicketingAccountForm_defineProperty","displayUpgradeToTicketingAccountForm","UpgradeToTicketingAccountForm_assertThisInitialized","handleAccountUpgradeSuccess","isFromResale","isPaymentAttemptSuccessful","hostname","basketActions","UpgradeToOneClubAccountForm","UpgradeToOneClubAccountForm_classCallCheck","UpgradeToOneClubAccountForm_getPrototypeOf","UpgradeToOneClubAccountForm_objectSpread","UpgradeToOneClubAccountForm_defineProperty","displayUpgradeToOneClubAccountForm","UpgradeToOneClubAccountForm_assertThisInitialized","updateTOCHUserMemberships","oneClubHubData","IsOneClubHubUpgrade","ReturnUrl","NewPasswordRequiredForm","NewPasswordRequiredForm_classCallCheck","NewPasswordRequiredForm_getPrototypeOf","NewPasswordRequiredForm_assertThisInitialized","displayNewPasswordRequiredForm","submitNewPasswordData","loadNewPasswordRequiredForm","isNewPasswordSavedSuccessful","onResetSuccess","challengeParam","isNewPasswordRequiredFormDataLoadedSuccessful","RaMembersRegisterForm","RaMembersRegisterForm_classCallCheck","RaMembersRegisterForm_getPrototypeOf","RaMembersRegisterForm_objectSpread","RaMembersRegisterForm_assertThisInitialized","displayRaMembersRegisterForm","isRAMembersRegister","RaMembersSignInForm","RaMembersSignInForm_classCallCheck","RaMembersSignInForm_getPrototypeOf","RaMembersSignInForm_assertThisInitialized","RaMembersSummaryDetailsFormData","ra_members_summary_form_data_defineProperty","getRaMembersSummaryUserDetailsFieldsWithDefaultValues","RaMembersSummaryForm","RaMembersSummaryForm_classCallCheck","RaMembersSummaryForm_getPrototypeOf","RaMembersSummaryForm_objectSpread","RaMembersSummaryForm_defineProperty","displayRaMembersSummaryForm","RaMembersSummaryForm_assertThisInitialized","handleUserUpdateRaMembersSummarySuccess","submitRaMembersSummaryData","handleRaMemberIdChange","toggleModalCloseButton","displayButton","PrivacyPolicyMessage","_useState10","SignInSuccessForm_slicedToArray","_useState12","privacyAndPolicy","privacyPolicyMessage","SignInSuccessForm_MultiLineMessage","privacyPolicyConsentText","agreeToPrivacyPolicyAndTermsAndConditions","updateButtonText","PrivacyPolicyAndTermsAndConditionsMessage","_useState14","_useState16","privacyPolicyAndTermsAndConditions","privacyAndTermsMessage","agreedPrivacyPolicy","setAgreePrivacyPolicy","agreedTermsAndConditions","setAgreeTermsAndConditions","ssoFormConstants","sso_form_constants_defineProperty","_ssoFormConstants","handleSignIn","handleForgotPassword","one_club_register_OneClubRegisterForm","default_register_DefaultRegisterForm","ticketing_register_TicketingRegisterForm","RaMembersRegister","handleRaMembersRegisterSuccess","handleRaMembersSignIn","ra_members_RaMembersRegisterForm","upgrade_to_ticketing_UpgradeToTicketingAccountForm","upgrade_to_one_club_UpgradeToOneClubAccountForm","handleRegister","handleSignInSucces","sign_in_SignInForm","ra_members_RaMembersSignInForm","sign_in_SignInSuccessForm","NewPasswordRequired","new_password_required_NewPasswordRequiredForm","ForgotPassword","forgot_password_ForgotPasswordForm","BallotForgotPassword","handleBallotSignIn","ResetPassword","reset_password_ResetPasswordForm","VerifyEmail","_ref15","OneClubRegisterSuccess","_ref16","user_register_success_form_UserRegisterSuccessForm","RaMembersRegisterSuccess","_ref17","UserAccount","_ref18","user_account_UserAccountPage","_ref19","ballot_BallotRegisterForm","_ref20","_ref21","_ref22","ballot_BallotSummaryForm","_ref23","item_list_SSOItemListForm","_ref24","ra_members_RaMembersSummaryForm","_ref25","handleCognitoHostedUISignIn","handleBallotForgotPassword","handleBallotRegister","ballot_BallotSignInForm","_ref26","ballot_BallotSignInSuccessForm","PreRegisterForm","_ref27","SSOForm","SSOForm_classCallCheck","SSOForm_getPrototypeOf","ssoContext","currentScenarioTitle","IsPopup","initialFormType","isFormDataDirty","modalOpen","displaySSOForm","SSOForm_assertThisInitialized","onModalOpen","getTransitionToForm","SSOForm_objectSpread","transitionToForm","nextFormTypeAfterRegister","_this$props$formData2","nextFormTypeAfterSubmit","nextFormAfterSubmit","nextFormType","isBallotForm","ballotRedirectUrl","_this$props$formData3","formForTransitionTo","_this$props$formData4","_this$props$formData5","isFromButtonEvent","onSignInLinkClickAction","shouldDisplayForm","Provider","reducers_initial_state","userAddress","isUserAddressSearchSuccessful","suggestedAddresses","searchAddressMessages","isSignOutSuccessful","apiErrorMessages","rootReducer","register_form_reducer_objectSpread","item_list_form_reducer_objectSpread","upgrade_account_reducer_objectSpread","isUpgradeToOneClubFormDataLoadedSuccessful","basket_reducer_objectSpread","user_address_reducer_objectSpread","searchAddressMessage","addressData","sign_in_form_reducer_objectSpread","forgot_password_form_reducer_objectSpread","reset_password_form_reducer_objectSpread","verify_email_form_reducer_objectSpread","user_account_reducer_objectSpread","api_status_reducer_objectSpread","apiErrorMessage","SSOFormComponent","sso_form_component_classCallCheck","sso_form_component_getPrototypeOf","thunk","components_SSOForm","section","StickyButtonTriggerComponent","sticky_button_trigger_component_classCallCheck","sticky_button_trigger_component_getPrototypeOf","sticky_button_trigger_component_defineProperty","sticky_button_trigger_component_assertThisInitialized","radio","showWindow","windowObjectReference","openInPopup","closed","innerHeight","SubNav","sub_nav_component_classCallCheck","sub_nav_component_getPrototypeOf","links","scroller","scrollOffset","SubNavComponent","SubPageNav","sub_page_nav_component_classCallCheck","sub_page_nav_component_getPrototypeOf","sub_page_nav_component_defineProperty","sub_page_nav_component_assertThisInitialized","venueHeroSticky","venueHeroStickyRef","setStyles","heroSticky","currentId","activeNavLinkNode","showContent","currentContentNode","elementCoordinateTop","createBrowserHistory","stickyfill","venueHeroInit","largeHeroInit","onPopstate","tabsInit","Stickyfill","indent","activeNavLink","contentNode","SublayoutComponent","sublayout_component_classCallCheck","sublayout_component_getPrototypeOf","sublayout_component_defineProperty","sublayout_component_assertThisInitialized","enableFullwidth","disableFullwidth","TabsComponent","tabs_component_classCallCheck","tabs_component_getPrototypeOf","tab","loadShotView","shotViewCreator","shotViewHolder","PopupLink","popup_link_classCallCheck","popup_link_getPrototypeOf","linkRef","data-dc-modal-trigger-href","ariaLabel","PopupLinkInfo","popup_link_PopupLink","oneOfType","arrayOf","ROUTE_DAYS","ROUTE_TICKETS","CheckboxPanel","additional","selectBtnLabel","selectBtnText","noSpacesTitle","replaceAll","soldOutLabel","cssClasses","data-sold-out-label","bracketsText","renderAdditional","renderButton","ProductGroupPanel","product_group_panel_classCallCheck","product_group_panel_getPrototypeOf","product_group_panel_assertThisInitialized","SELECT_ITEM","productTag","isSoldOut","getProductGroupTag","inlineTagStyle","isComplete","stateCssClass","rootCssModificator","productGroupTag","useBlueHighlight","isComlete","checkbox_panel_CheckboxPanel","summaryText","renderProductGroupTag","SelectDaysForm","select_days_form_classCallCheck","select_days_form_getPrototypeOf","formHeading","onSelectDay","select_days_form_assertThisInitialized","foundProductGroup","categoriesList","categorie","onSelectProductGroup","currentScenario","generateStandardSummary","generateHospitalitySummary","generateParkingSummary","adultTariff","youthTariff","juniorTariff","tarrifs","hospitalityTariff","parkingTariff","parking","priceLabel","renderProductGroups","productGroupsList","newProductGroup","select_days_form_extends","generateSummaryText","cProductGroup","product_group_panel_ProductGroupPanel","dictionary","selectDaysSubtitle","helpMeChooseLinkUrl","helpMeChooseLinkText","renderCategories","TicketBuilderContext","TicketBuilderAside","ticket_builder_aside_classCallCheck","ticket_builder_aside_getPrototypeOf","onContinue","ticket_builder_aside_assertThisInitialized","preparedProductGroups","getPreparedProductGroups","renderProduct","mergedWithTempGroups","ticket_builder_aside_objectSpread","actionCaption","fromRoute","basketValue","getBasketTotalValue","onToggleBasketMobile","tb","withTicketBuilderContext","Consumer","ticket_builder_context_extends","SelectDaysPage","select_days_page_classCallCheck","select_days_page_getPrototypeOf","onClickContinue","select_days_page_assertThisInitialized","hasPreselectedProductGroup","isNextStepAvailable","getNextRoute","nextRoute","standardTicketsTitle","continueBtnDisabledCC","select_days_form_SelectDaysForm","generateFormTitle","ticket_builder_aside","react_router_dom_es","isParkingStandaloneConfiguration","DaysLinks","BackLink","route","ButtonClear","SelectPanel","select_panel_classCallCheck","select_panel_getPrototypeOf","onSelectBtnClick","select_panel_assertThisInitialized","isDecreaseButtonDisabled","isIncreaseButtonDisabled","currentQuantity","newQuantity","quantityModifierProp","quantityModifier","maxQuantityOnHospitality","roundedQuantity","ecommerceEventState","handleEcommerceEvent","onApplyProductsQuantity","eventState","juniorTicketsText","juniorTicketsLinkUrl","juniorTicketsLinkText","swingBadgeTicketsText","swingBadgeGuestTicketsText","swingBadgeAdditionalGuestTicketsText","stateCCDecrease","stateCC","buttonsNodes","renderSelectButton","rootCssClass","renderSummary","renderSelectButtons","renderCopy","TicketsPanels","ticketsList","select_panel_SelectPanel","SelectTicketsFormStandard","select_tickets_standard_classCallCheck","select_tickets_standard_getPrototypeOf","days_links","selectTicketsSubtitle","ticketsInformationLinkUrl","ticketsInformationLinkText","toLocaleLowerCase","ticketExtraInformation","onClearSelection","selectStandardTicketsText","selectStandardTicketsLinkUrl","selectStandardTicketsLinkText","editDaysTitle","SelectTicketsFormHospitality","select_tickets_hospitality_classCallCheck","select_tickets_hospitality_getPrototypeOf","selectHospitalityTicketsText","selectHospitalityTicketsLinkUrl","selectHospitalityTicketsLinkText","ProductsHelper","selectedGroups","basketGroups","filterFunction","latestAddedTickets","getLatestAddedTickets","firstSelectedProductGroup","foundTicket","getTicketItemBasedOnQueryParam","productList","selectedGroup","CheckoutButton","onStartCheckout","checkoutBtnRef","SelectTicketsAside","select_tickets_aside_classCallCheck","select_tickets_aside_getPrototypeOf","select_tickets_aside_assertThisInitialized","triggerContinue","isReadyToPay","inlineStyle","pointerEvents","renderNextStepPanel","renderCheckoutPanel","renderPanel","SelectTicketsPage","isHospitality","isStandardWithExtras","paramsList","select_tickets_page_extends","hasSelectedTickets","hasParkingTickets","getProductsList","select_tickets_hospitality_SelectTicketsFormHospitality","onClearTicketsSelection","select_tickets_standard_SelectTicketsFormStandard","select_tickets_aside_SelectTicketsAside","TicketListProvider","select_tickets_page_SelectTicketsPage","ExtraPanel","extra_panel_classCallCheck","extra_panel_getPrototypeOf","wasSelected","onSelectExtraProduct","extraGroup","extraItem","getProductSummaryText","onProductGroupClick","unitText","SelectExtrasForm","select_extras_form_classCallCheck","select_extras_form_getPrototypeOf","select_extras_form_defineProperty","select_extras_form_assertThisInitialized","mainProductInBasket","mainProduct","currentProductType","setExtraProductQuantity","extrasById","extrasProduct","select_extras_form_objectSpread","extrasList","productKey","grandstandText","getDictionaryFromProps","parseDictionaryItem","parkingProductsList","currentProductGroupsIds","currentBasketProductGroups","ticketProductsList","getGroupedExtrasList","extra_panel_ExtraPanel","getParkingList","getTicketsList","addExtrasSubtitle","addExtrasTitle","extrasParkingText","privateTableTitle","privateTableText","privateTableLinkText","privateTableLinkUrl","_this$getDictionaryFr2","renderTicketsPanel","renderExtrasPanels","productsList","SelectExtrasAside","select_extras_aside_classCallCheck","select_extras_aside_getPrototypeOf","select_extras_aside_assertThisInitialized","SelectExtrasPage","select_extras_form_SelectExtrasForm","select_extras_aside_SelectExtrasAside","accordion_classCallCheck","accordion_getPrototypeOf","accordion","accordionRef","onAccordionStateChange","accordion_assertThisInitialized","AccordionComponent","data-dc-lazy","triggerOpenedText","triggerText","SelectParkingForm","select_parking_form_classCallCheck","select_parking_form_getPrototypeOf","prevRoute","parkingList","carParking","parkingProduct","filteredParkingList","accordion_Accordion","renderCarPanels","parkingStepTitle","parkingInformationLinkUrl","parkingInformationLinkText","renderCarPanel","ParkingText","renderAccordion","getPrevRoute","SelectParkingPage","select_parking_page_classCallCheck","select_parking_page_getPrototypeOf","focusCheckout","onSelectParkingQuantity","select_parking_page_assertThisInitialized","select_parking_page_extends","onClearParkingSelection","checkoutBtn","select_parking_form_SelectParkingForm","onConfirmationModal","checkoutRef","onRejectParkingClick","SelectParkingStandaloneForm","select_parking_standalone_form_classCallCheck","select_parking_standalone_form_getPrototypeOf","parkingProductsGroup","parkingListGroupProducts","groupParkingProducts","getGroupParkingProducts","firstParkingProduct","getFirstParkingProduct","accordeonParkingProducts","renderParkingProductsPanels","standaloneParkingStepTitle","standaloneParkingSubtitle","standaloneParkingInformationLinkUrl","standaloneParkingInformationLinkText","renderParkingProductPanel","standaloneParkingClearSelectionText","StandaloneParkingText","SelectParkingStandalonePage","select_parking_standalone_page_classCallCheck","select_parking_standalone_page_getPrototypeOf","select_parking_standalone_page_assertThisInitialized","select_parking_standalone_page_extends","getStandaloneProductsList","select_parking_standalone_form_SelectParkingStandaloneForm","TicketBuilder","ticket_builder_classCallCheck","ticket_builder_getPrototypeOf","isBasketExpanded","ticket_builder_assertThisInitialized","getCurrentProductType","getSelectedProductGroups","isBasketToggling","setHasPreselectedProductGroup","updateBasketDesign","tbContext","getCurrentScenarioTitle","productType","isProductGroupHasProductsInBasket","isProductGroupPreselected","currentScenarioProducts","getParamFromLocation","preselectedGroupId","getPreselectedProductGroupId","clearPreselectedProductGroupId","hasCurrentScenarioProducts","selProductGroup","productGroupIndex","findIndexByProp","resetProducts","productsParams","filteredProduct","newProduct","basketProductIndex","removeTypesList","getRemoveTypesList","select_days_page_SelectDaysPage","select_extras_page_SelectExtrasPage","select_parking_page_SelectParkingPage","select_parking_standalone_page_SelectParkingStandalonePage","TicketBuilderWithRouter","withRouter","TicketBuilderWithHashRouter","TicketBuilderComponent","ticket_builder_component_classCallCheck","ticket_builder_component_getPrototypeOf","categories","VIEW_ITEM_LIST","item_list_id","item_list_name","secutixProductsList","getBallotProductsList","secutixProductsGroups","ticket_builder","getCategoriesList","getCurrentScenario","newCategoriesList","ballotProductsList","stepsData","getStepsData","scenario","hasTickets","hasHospitality","hasExtras","hasParking","Deferred","deferred_classCallCheck","ModalWithResult","modal_with_result_classCallCheck","modal_with_result_getPrototypeOf","deferred","modal_with_result_get","cleanupPromise","CONTROL_BUTTON_HTML_PLAY","CONTROL_BUTTON_HTML_MUTE","VideoComponent","video_component_classCallCheck","video_component_getPrototypeOf","playBtn","modalContent","control","playControl","muteControl","onPlayClick","video_component_assertThisInitialized","onClickPlayControl","onClickMuteControl","canPlayType","EVENT_MODAL_CLOSE","_pause","_play","paused","ended","muted","_unmute","_mute","play","modalContainer","ViewOrderUrlComponent","view_order_url_component_classCallCheck","view_order_url_component_getPrototypeOf","fileName","viewOrderUrl","vodeNavEvents","TOGGLE_TO_SEE_ALL","vodNavModeTypes","VOD","VodNav","vod_nav_component_classCallCheck","vod_nav_component_getPrototypeOf","vod_nav_component_assertThisInitialized","toggleView","WeglotScript","weglotCdn","weglotSrcScript","weglotInitScript","apiKey","WeglotComponent","weglot_component_classCallCheck","weglot_component_getPrototypeOf","weglot_script","require","spriteNode","3","5","7","9","alias4","blockHelperMissing","ssoSignIn","handleOnSignInClick","ssoRegister","handleOnRegisterClick","handleForceSignIn","handleForceSignUp","forceSignInQueryParams","FORCE_SIGN_IN","forceSignUpQueryParams","FORCE_SIGN_UP","finally"],"mappings":"0FAAA,IAAAA,EAAiBC,EAAQ,KAEzBC,EAAAC,SAAAH,EAAA,SAAAA,GAAAI,SAAA,CAAiEC,EAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACjE,IAAAC,EAEA,8HACAL,EAAAM,iBAAAN,EAAAO,OAAA,OAAAF,EAAA,OAAAA,EAAA,MAAAJ,IAAAG,KAAAH,GAAAI,EAAAG,iBAAAH,KAAAI,MAAAJ,EAAAJ,IACA,mCACCS,SAAA,eAAAC,KAAA,SAAAX,EAAAC,EAAAC,EAAAC,EAAAC,GACD,IAAAC,EAEA,iDACwU,OAAxUA,EAAAH,EAAA,GAAAU,KAAA,MAAAX,IAAAD,EAAAa,aAAA,GAA0F,OAAAR,EAAA,OAAAA,EAAA,MAAAJ,IAAAG,KAAAH,GAAAI,EAAAG,iBAAAH,KAAAI,MAAAJ,EAAA,CAAgJS,KAAA,KAAAC,KAAA,GAAqBC,GAAAhB,EAAAiB,QAAA,EAAAb,EAAA,GAAAc,QAAAlB,EAAAmB,KAAAf,UAAyEC,EAAA,IACxU,cACCe,SAAA,0BCdD,IAAA1B,EAAiBC,EAAQ,KAEzBC,EAAAC,SAAAH,EAAA,SAAAA,GAAAI,SAAA,CAAiEC,EAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACjE,IAAAC,EAEA,2EACAL,EAAAM,iBAAAN,EAAAO,OAAA,OAAAF,EAAA,OAAAA,EAAA,MAAAJ,IAAAG,KAAAH,GAAAI,EAAAG,iBAAAH,KAAAI,MAAAJ,EAAAJ,IACA,iBACCS,SAAA,eAAAC,KAAA,SAAAX,EAAAC,EAAAC,EAAAC,EAAAC,GACD,IAAAC,EAAAgB,EAAArB,EAAAO,OAAAe,EAAAtB,EAAAM,iBAEA,sGACwU,OAAxUD,EAAAH,EAAA,GAAAU,KAAA,MAAAX,IAAAD,EAAAa,aAAA,GAA0F,OAAAR,EAAA,OAAAA,EAAA,MAAAJ,IAAAG,KAAAH,GAAAI,EAAAG,iBAAAH,KAAAI,MAAAJ,EAAA,CAAgJS,KAAA,KAAAC,KAAA,GAAqBC,GAAAhB,EAAAiB,QAAA,EAAAb,EAAA,GAAAc,QAAAlB,EAAAmB,KAAAf,UAAyEC,EAAA,IACxU,oFACAiB,EAAAD,EAAA,OAAAhB,EAAA,MAAAJ,IAAAG,KAAAH,GAAAI,EAAAkB,MAAAlB,EAAAJ,IACA,gFACAqB,EAAAD,EAAA,OAAAhB,EAAA,MAAAJ,IAAAG,KAAAH,GAAAI,EAAAmB,MAAAnB,EAAAJ,IACA,4CACCmB,SAAA,0BClBD,IAAA1B,EAAiBC,EAAQ,KAEzBC,EAAAC,SAAAH,EAAA,SAAAA,GAAAI,SAAA,CAAiEY,SAAA,eAAAC,KAAA,SAAAX,EAAAC,EAAAC,EAAAC,EAAAC,GACjE,IAAAC,EAAAoB,EAAAJ,EAAArB,EAAAM,iBAAAgB,EAAA,MAAArB,IAAAD,EAAAa,aAAA,GAAwHa,EAAAxB,EAAAyB,cAExH,qEACAN,EAAArB,EAAAO,OAAA,OAAAF,EAAA,OAAAA,EAAA,MAAAJ,IAAA2B,KAAA3B,GAAAI,EAAAwB,KAAAxB,KAAAyB,IAAAzB,EAAAJ,IACA,UACAoB,EALwH,mBAKxHI,EAAA,OAAAA,EAAAvB,EAAA6B,OAAA,MAAA9B,IAAA8B,KAAA9B,IAAAwB,EAAAC,GAAAD,EAAAb,KAAAU,EAAA,CAAsKR,KAAA,OAAAC,KAAA,GAAuBX,SAAaqB,GAC1M,kBAC+O,OAA/OpB,EAPwH,mBAOxHoB,EAAA,OAAAA,EAAAvB,EAAA8B,kBAAA,MAAA/B,IAAA+B,gBAAA/B,IAAAwB,EAAAC,GAAAD,EAAAb,KAAAU,EAAA,CAAgMR,KAAA,kBAAAC,KAAA,GAAkCX,SAAaqB,GAAApB,EAAA,IAC/O,yBACCe,SAAA,0BCZD,IAAA1B,EAAiBC,EAAQ,KAEzBC,EAAAC,SAAAH,EAAA,SAAAA,GAAAI,SAAA,CAAiEY,SAAA,eAAAC,KAAA,SAAAX,EAAAC,EAAAC,EAAAC,EAAAC,GACjE,IAAAC,EAAAoB,EAEA,mEACmT,OAAnTpB,EAAA,mBAAAoB,EAAA,OAAAA,EAAAvB,EAAA8B,kBAAA,MAAA/B,IAAA+B,gBAAA/B,IAAAwB,EAAAvB,EAAAyB,eAAAF,EAAAb,KAAA,MAAAX,IAAAD,EAAAa,aAAA,GAAiQ,CAAGC,KAAA,kBAAAC,KAAA,GAAkCX,SAAaqB,GAAApB,EAAA,IACnT,6KACCe,SAAA,wBCRDa,OAAOC,QAAU,SAACC,GACdC,QAAQC,IAAR,uBAAAC,OAAmCH,yDCAvCI,EAAAC;;;AAAAD,EAaA,oBAAAE,eAAAC,EAbAF,EAaA,WCdA,gBAAAG,GAEA,IAAAC,EAAA,GAGA,SAAAjD,EAAAkD,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAAhD,QAGA,IAAAD,EAAAgD,EAAAC,GAAA,CACAC,EAAAD,EACAE,GAAA,EACAlD,QAAA,IAUA,OANA8C,EAAAE,GAAAjC,KAAAhB,EAAAC,QAAAD,IAAAC,QAAAF,GAGAC,EAAAmD,GAAA,EAGAnD,EAAAC,eAKAF,EAAAqD,EAAAL,EAGAhD,EAAAsD,EAAAL,EAGAjD,EAAAuD,EAAA,SAAArD,EAAAiB,EAAAqC,GACAxD,EAAAyD,EAAAvD,EAAAiB,IACAuC,OAAAC,eAAAzD,EAAAiB,EAAA,CACAyC,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAxD,EAAA+D,EAAA,SAAA9D,GACA,IAAAuD,EAAAvD,KAAA+D,WACA,kBAAA/D,EAAA,SACA,kBAAAA,GAEA,OADAD,EAAAuD,EAAAC,EAAA,IAAAA,GACAA,GAIAxD,EAAAyD,EAAA,SAAAQ,EAAAC,GAAA,OAAAR,OAAAS,UAAAC,eAAAnD,KAAAgD,EAAAC,IAGAlE,EAAAqE,EAAA,oCA3DA,kBCCA,IAAAC,EAAAtE,EAAA,GAAAA,CAAA,OACAuE,EAAAvE,EAAA,IACAwE,EAAAxE,EAAA,GAAAyE,OACAC,EAAA,mBAAAF,GAEAvE,EAAAC,QAAA,SAAAiB,GACA,OAAAmD,EAAAnD,KAAAmD,EAAAnD,GACAuD,GAAAF,EAAArD,KAAAuD,EAAAF,EAAAD,GAAA,UAAApD,gFCLA,IA4IAwD,EA5IAC,EAAA1E,EAAA0E,gBAAA,SAAAC,EAAAC,GACA,OAAAC,KAAAC,MAAAD,KAAAE,UAAAH,EAAAD,OAGAK,EAAAhF,EAAAgF,cAAA,SAAAC,GAGA,IAFA,IAAAC,EAAA,GAEAjC,EAAA,EAAAA,EAAAgC,EAAAhC,IAEAiC,GADAR,EAAA,MACAS,SAAA,IAGA,OAAAD,GAcAE,GAXApF,EAAAqF,WAAA,SAAAC,EAAAC,GAQA,OAFAA,EAAA,KAFAD,EAAAE,IAAAF,EAAArE,MAAAqE,EAAArE,KAAA,IAAA+D,EAAA,IAAAA,EAAA,IACAS,QAAA,uBAMAzF,EAAAoF,QAAA,SAAAM,GACA,OAAAlC,OAAAS,UAAAkB,SAAApE,KAAA2E,GAAAC,MAAA,QAGAC,EAAA5F,EAAA4F,OAAA,SAAAC,EAAAH,GACA,IAAAI,EAAAV,EAAAM,GACA,OAAAA,SAAAI,IAAAD,GAmGAE,GAhGA/F,EAAAgG,UAAA,SAAAV,GACA,OAAAA,aAAAW,SAGAjG,EAAAkG,OAAA,SAAAA,IAsBA,IArBA,IAAAC,EAAA,GACAlB,EAAAmB,UAAAnB,OAMAoB,EAAA,SAAAX,GACA,QAAAY,KAAAZ,EACAlC,OAAAS,UAAAC,eAAAnD,KAAA2E,EAAAY,KAEAV,EAAA,SAAAF,EAAAY,IACAH,EAAAG,GAAAJ,GAAA,EAAAC,EAAAG,GAAAZ,EAAAY,IAEAH,EAAAG,GAAAZ,EAAAY,KAOArD,EAAA,EAAAA,EAAAgC,EAAAhC,IAAA,CAEA,IAAAyC,EAAAU,UAAAnD,GAGA2C,EAAA,SAAAF,IACAW,EAAAX,GAIA,OAAAS,GAGAnG,EAAAuG,KAAA,SAAAjB,EAAAkB,GAOA,OANAA,KAAAC,SAAAC,cAAA,OACApB,EAAAqB,YACArB,EAAAsB,WAAAC,aAAAL,EAAAlB,EAAAqB,aAEArB,EAAAsB,WAAAE,YAAAN,GAEAA,EAAAM,YAAAxB,IAGAtF,EAAA+G,aAAA,SAAAC,EAAAC,GACA,MAAAD,IAAAE,iBAAAF,EAAAG,UAAAC,SAAAH,KACA,OAAAD,GAGAhH,EAAAqH,uBAAA,SAAAL,EAAAM,GAGA,IAFA,IAAAC,EAAAP,EAEAO,GAAA,CACA,GAAAA,EAAAC,aAAAF,GACA,OAAAC,EAGAA,IAAAL,cAGA,aAEAlH,EAAAyH,cAAA,SAAAC,EAAAC,GACA,IAAAC,EAAAxB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,KACA,GAAAsB,GAAAC,EAAA,CAEA,IAAAE,EAAAH,EAAAd,sBACAkB,EAAAC,MAAAC,KAAAH,EAAAI,iBAAAN,IAEAO,EAAAJ,EAAAK,QAAAT,GAGA,OAAAI,EAAAI,GAFAN,EAAA,WAIA5H,EAAAoI,mBAAA,SAAApB,EAAAa,GACA,IAAAD,EAAAxB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,KACA,GAAAY,EAaA,OATAY,EAAA,EAGAC,EAAAQ,UAAAR,EAAAS,cAAAtB,EAAAuB,UAAAvB,EAAAsB,aAGAtB,EAAAuB,WAAAV,EAAAQ,WAKArI,EAAA+F,UAAA,SAAAyC,GAAA,OAAAA,EAAA/C,QAAA,cAAAA,QAAA,aAAAA,QAAA,aAAAA,QAAA,iBAQAgD,EAAAzI,EAAAyI,SACAhE,EAAAgC,SAAAC,cAAA,OACA,SAAAgC,GACA,IACAC,EADAC,EAAAF,EAAAG,OAKA,IAHApE,EAAAqE,UAAAF,EACAD,EAAAlE,EAAAqD,SAAA,GAEArD,EAAAsE,YACAtE,EAAAuE,YAAAvE,EAAAsE,YAGA,OAAAJ,IAQA3I,EAAAiJ,iBAAA,SAAAC,EAAAC,GACA,IAAAxH,EAAAuH,EAAAvH,OAAAuH,EAAAE,YACAC,EAAAH,EAAAI,YAEA,GAAA3H,EAAA,CACA,IAAA4H,EAAAd,EAAA,SAAA1C,EAAApE,GAAA,WAQA,GAPA4H,EAAAC,MAAAC,SAAA,WACAF,EAAAC,MAAAE,QAAA,IACAH,EAAAC,MAAAG,IAAA,UACAJ,EAAAC,MAAAI,KAAA,UACAL,EAAAC,MAAAH,MAAA,OACAE,EAAAC,MAAAK,WAAA,MAEApD,SAAAqD,KAAA1C,SAAA8B,IAAA9G,OAAA2H,iBAAA,CACA,IAAAC,EAAA5H,OAAA2H,iBAAAb,GAEAc,IACAT,EAAAC,MAAAS,SAAAD,EAAAC,SACAV,EAAAC,MAAAU,WAAAF,EAAAE,WACAX,EAAAC,MAAAW,WAAAH,EAAAG,WACAZ,EAAAC,MAAAY,UAAAJ,EAAAI,UACAb,EAAAC,MAAAa,cAAAL,EAAAK,cACAd,EAAAC,MAAAc,cAAAN,EAAAM,cACAf,EAAAC,MAAAE,QAAAM,EAAAN,SAIAjD,SAAAqD,KAAAhD,YAAAyC,GAEAgB,sBAAA,WACA5I,GAAA4H,EAAAD,cAAAJ,EAAAI,cACAD,EAAAE,EAAAD,YAAA,GAGA7C,SAAAqD,KAAAd,YAAAO,GAEAJ,EAAApI,UAAA8B,EAAAwG,EAAA,aAGAF,EAAApI,UAAA8B,EAAAwG,EAAA,OAIArJ,EAAAwK,YAAA,SAAAC,EAAAC,GACA,IAAAC,GAAAF,EAAA/I,OAAA+I,EAAA9I,OAAAiJ,cACAC,GAAAH,EAAAhJ,OAAAgJ,EAAA/I,OAAAiJ,cAEA,OAAAD,EAAAE,GACA,EAGAF,EAAAE,EACA,EAGA,GAEA7K,EAAA8K,YAAA,SAAAL,EAAAC,GAAA,OAAAD,EAAAM,MAAAL,EAAAK,OAEA/K,EAAAgL,cAAA,SAAA1F,EAAAO,GACA,IAAAoF,EAAA7E,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,QACA8E,EAAA,IAAAC,YAAAtF,EAAA,CACAuF,OAAAH,EACAI,SAAA,EAHAC,YAAA,IAOA,OAAAhG,EAAA0F,cAAAE,IAGAlL,EAAAuL,YAAA,SAAA5J,EAAA6J,GACA,SAAA7J,IAAA6J,IAIA,IAAAC,OAAAD,EAAAE,OAAA,KACAC,KAAAhK,IAGA3B,EAAA4L,gBAAA,WACA,IAAA9B,EAAArD,SAAAqD,KACAtB,EAAA/B,SAAAoF,gBAOA,OAAAhH,KAAAD,IAAAkF,EAAAgC,aAAAhC,EAAAxB,aAAAE,EAAAuD,aAAAvD,EAAAsD,aAAAtD,EAAAF,eAEAtI,EAAAgM,eAAA,SAAAC,GACA,IAAAC,EAAA9F,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,WAMA,OALA6F,EAAAE,OAAA,SAAAC,EAAAC,GAEA,OADAD,EAAAE,KAAAD,EAAAH,IACAE,GACA,KAKApM,EAAAuM,gBAAA,SAAAA,EAAAxI,EAAAyI,GACA,IAAAC,EAAAD,EAAArE,QAAA,KAEA,OAAAsE,GAAA,EAIAF,EAAAxI,EAAAyI,EAAAE,UAAA,EAAAD,IAAAD,EAAAG,OAAAF,EAAA,IAGA1I,EAAAyI,IAEAxM,EAAA4M,OAAA,oBAAAC,UAAAC,UAAAC,MAAA,aAAAF,UAAAC,UAAAC,MAAA,cAMA/M,EAAAgN,cAAA,SAAAC,EAAAtL,GAAA,IAAAuK,EAAA9F,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,WAEA,OAAA6G,EAAAC,KAAA,SAAAC,GACA,OAAAvH,EAAA,SAAAjE,GACAwL,EAAAjB,KAAAvK,EAAAkH,OAGAsE,EAAAjB,KAAAvK,KAEA3B,EAAAoN,YAAA,SAAA1H,GAAA,OAAA2H,KAAAC,MAAAD,KAAAE,UAAA7H,KAGA1F,EAAAwN,YAAA,SAAA/C,EAAAC,GACA,IAAA+C,EAAAjK,OAAAkK,KAAAjD,GAAAkD,OACAC,EAAApK,OAAAkK,KAAAhD,GAAAiD,OACA,OAAAN,KAAAE,UAAAE,KAAAJ,KAAAE,UAAAK,mBCtSA,IAAAC,EAAA9N,EAAAC,QAAA,CAAA8N,QAAA,sDCCA,IAAAC,EAAAhO,EAAAC,QAAA,oBAAAoC,eAAAyC,WACAzC,OAAA,oBAAAQ,WAAAiC,WAAAjC,KAEAoL,SAAA,cAAAA,kDCJA,IAAAC,EAAAnO,EAAA,GACAoO,EAAApO,EAAA,IACAC,EAAAC,QAAAF,EAAA,aAAAiE,EAAAmI,EAAAvK,GACA,OAAAsM,EAAAE,EAAApK,EAAAmI,EAAAgC,EAAA,EAAAvM,KACA,SAAAoC,EAAAmI,EAAAvK,GAEA,OADAoC,EAAAmI,GAAAvK,EACAoC,wKCNA,IAAAqK,EAAAtO,EAAA,GAEAuO,EAAArO,EAAAqO,mBAAA,CACAC,eAAA,UACAC,eAAA,iBACArF,MAAA,iBACAsF,YAAA,yBACAC,KAAA,gBACAC,UAAA,0BACAC,WAAA,wBACAC,aAAA,0BACAzB,KAAA,gBACA0B,eAAA,4BACAC,aAAA,0BACAC,WAAA,wBACA3F,YAAA,uBACA4F,MAAA,iBACAC,aAAA,mBACAC,OAAA,kBACAC,YAAA,YACAC,WAAA,aACAC,UAAA,UACAC,cAAA,cACAC,iBAAA,iBACAC,YAAA,YACAC,aAAA,aACAC,aAAA,aACAC,UAAA,iBA1BAC,UAAA,kBA8BA5P,EAAA6P,eAAA,CACA5D,MAAA,GACA6D,QAAA,GACAC,QAAA,EACAC,mBAAA,EACAC,cAAA,EACAC,UAAA,EACAC,aAAA,EACAC,kBAAA,EACAC,WAAA,EACAC,uBAAA,EACAC,UAAA,IACAC,OAAA,EACAC,eAAA,EACAC,eAAA,EACAC,YAAA,EACAC,kBAAA,EACAC,aAAA,kBACApH,SAAA,OACAqH,qBAAA,EACAvF,YAAA,KACAwF,YAAA,EACAC,iBAAA,EACAC,OAAA7C,EAAA5D,YACApB,aAAA,EACA8H,iBAAA,KACAC,uBAAA,KACAC,aAAA,KACAC,YAAA,KACAC,sBAAA,OACAC,YAAA,aACAC,cAAA,mBACAC,cAAA,4BACAC,eAAA,kBACAC,eAAA,kCAAAC,YAAA,SAAAjQ,GAAA,mCAAAyM,EAAArI,WAAApE,GAAA,SACAkQ,YAAA,SAAA5B,GAAA,cAAAA,EAAA,wBACA6B,aAAA,SAAAC,EAAA5E,GAAA,OAAA4E,IAAA5E,GAEA6E,YAAA,CADAC,cAAA,GAIAC,eAAA,KACAC,0BAAA,KA3CAC,WAAA/D,GA+CArO,EAAAqS,OAAA,CACAC,aAAA,eACAC,aAAA,eACAC,OAAA,SACAT,OAAA,SACAU,OAAA,SACAC,QAAA,UACAC,WAAA,aACAC,cAAA,gBATAC,gBAAA,mBAaA7S,EAAA8S,aAAA,CACAC,WAAA,aACAC,eAAA,iBACAC,iBAAA,mBACAC,cAAA,gBACAC,UAAA,YACAC,SAAA,WACAC,YAAA,cACAC,eAAA,iBATAC,UAAA,aAaAvT,EAAAwT,UAAA,CACAC,SAAA,GACAC,WAAA,EACAC,UAAA,GACAC,MAAA,GACAC,QAAA,GACAC,OAAA,GACAC,SAAA,GACAC,YAAA,GATAC,cAAA,yCCpGA,IAAAlG,EAAAjO,EAAA,GACA+N,EAAA/N,EAAA,GACAoU,EAAApU,EAAA,GACAqU,EAAArU,EAAA,IACAsU,EAAAtU,EAAA,IAGAuU,EAAA,SAAAA,EAAAxO,EAAA5E,EAAAyK,GACA,IAQAQ,EAAAoI,EAAAC,EAAAC,EARAC,EAAA5O,EAAAwO,EAAAK,EACAC,EAAA9O,EAAAwO,EAAAO,EAEAC,EAAAhP,EAAAwO,EAAAS,EACAC,EAAAlP,EAAAwO,EAAAW,EACAzN,EAAAoN,EAAA5G,EAHAlI,EAAAwO,EAAAY,EAGAlH,EAAA9M,KAAA8M,EAAA9M,GAAA,KAAA8M,EAAA9M,IAAA,cACAjB,EAAA2U,EAAA9G,IAAA5M,KAAA4M,EAAA5M,GAAA,IACAiU,EAAAlV,EAAA,YAAAA,EAAA,cAGA,IAAAkM,KADAyI,IAAAjJ,EAAAzK,GACAyK,EAIA6I,IAFAD,GAAAG,GAAAlN,QAAA1E,IAAA0E,EAAA2E,IAEA3E,EAAAmE,GAAAQ,GAEAsI,EAAAO,GAAAT,EAAAF,EAAAG,EAAAxG,GAAA8G,GAAA,mBAAAN,EAAAH,EAAApG,SAAAjN,KAAAwT,KAEAhN,GAAA4M,EAAA5M,EAAA2E,EAAAqI,EAAA1O,EAAAwO,EAAAc,GAEAnV,EAAAkM,IAAAqI,GAAAL,EAAAlU,EAAAkM,EAAAsI,GACAK,GAAAK,EAAAhJ,IAAAqI,IAAAW,EAAAhJ,GAAAqI,IAGAxG,EAAAF,OAEAwG,EAAAK,EAAA,EACAL,EAAAO,EAAA,EACAP,EAAAY,EAAA,EACAZ,EAAAS,EAAA,EACAT,EAAAW,EAAA,GACAX,EAAAe,EAAA,GACAf,EAAAc,EAAA,GACAd,EAAAgB,EAAA,iCCzCA,IAAAC,EAAAxV,EAAA,GACAyV,EAAAzV,EAAA,IACA0V,EAAA1V,EAAA,IACAmO,EAAAzK,OAAAC,eAEAzD,EAAAmO,EAAArO,EAAA,IAAA0D,OAAAC,eAAA,SAAAgS,EAAAX,EAAAY,GAIA,GAHAJ,EAAAG,GACAX,EAAAU,EAAAV,GAAA,GACAQ,EAAAI,GACAH,EAAA,IACA,OAAAtH,EAAAwH,EAAAX,EAAAY,GACA,MAAAC,IACA,WAAAD,GAAA,QAAAA,EAAA,MAAAE,UAAA,4BAEA,MADA,UAAAF,IAAAD,EAAAX,GAAAY,EAAA/T,OACA8T,oBCdA,IAAAI,EAAA/V,EAAA,GACAC,EAAAC,QAAA,SAAA8V,GACA,IAAAD,EAAAC,GAAA,MAAAF,UAAAE,EAAA,sBACA,OAAAA,kBCHA/V,EAAAC,QAAA,SAAA8V,GACA,iBAAAC,EAAAD,GAAA,OAAAA,EAAA,mBAAAA,oBCAA/V,EAAAC,SAAAF,EAAA,GAAAA,CAAA,WACA,UAAA0D,OAAAC,eAAA,QAAAG,IAAA,uBAAA6G,mBCFA,IAAAvG,EAAA,GAAAA,eACAnE,EAAAC,QAAA,SAAA8V,EAAA5J,GACA,OAAAhI,EAAAnD,KAAA+U,EAAA5J,mBCFAnM,EAAAC,QAAA,SAAAgW,EAAArU,GACA,OACAgC,aAAA,EAAAqS,GACAtS,eAAA,EAAAsS,GACAC,WAAA,EAAAD,GACArU,yBCLA,IAAA6D,EAAA,EACA0Q,EAAArR,KAAAE,SACAhF,EAAAC,QAAA,SAAAkM,GACA,gBAAAzJ,YAAAI,IAAAqJ,EAAA,GAAAA,EAAA,QAAA1G,EAAA0Q,GAAA/Q,SAAA,uBCFA,IAAAgR,EAAArW,EAAA,IACAC,EAAAC,QAAA,SAAAmB,EAAAiV,EAAAnR,GAEA,GADAkR,EAAAhV,QACA0B,IAAAuT,EAAA,OAAAjV,EACA,OAAA8D,GACA,uBAAAwF,GACA,OAAAtJ,EAAAJ,KAAAqV,EAAA3L,IAEA,uBAAAA,EAAAC,GACA,OAAAvJ,EAAAJ,KAAAqV,EAAA3L,EAAAC,IAEA,uBAAAD,EAAAC,EAAAtH,GACA,OAAAjC,EAAAJ,KAAAqV,EAAA3L,EAAAC,EAAAtH,IAGA,kBACA,OAAAjC,EAAAkV,MAAAD,EAAAhQ,4BCjBA,IAAAjB,EAAA,GAAAA,SAEApF,EAAAC,QAAA,SAAA8V,GACA,OAAA3Q,EAAApE,KAAA+U,GAAAnQ,MAAA,wBCFA,IAAA2Q,EAAAxW,EAAA,IACAC,EAAAC,QAAA,SAAA8V,GACA,OAAAtS,OAAA8S,EAAAR,oBCFA/V,EAAAC,QAAA,SAAA8V,GACA,GAAAjT,MAAAiT,EAAA,MAAAF,UAAA,yBAAAE,GACA,OAAAA,oBCFA,IAAAS,EAAAzW,EAAA,IACA6E,EAAAE,KAAAF,IACA5E,EAAAC,QAAA,SAAA8V,GACA,OAAAA,EAAA,EAAAnR,EAAA4R,EAAAT,GAAA,oCCHA,IAAAU,EAAA3R,KAAA2R,KACA1R,EAAAD,KAAAC,MACA/E,EAAAC,QAAA,SAAA8V,GACA,OAAAW,MAAAX,MAAA,GAAAA,EAAA,EAAAhR,EAAA0R,GAAAV,iDCJA,IAAAY,EAAA5W,EAAA,GAAAA,CAAA,QACAuE,EAAAvE,EAAA,IACAC,EAAAC,QAAA,SAAAkM,GACA,OAAAwK,EAAAxK,KAAAwK,EAAAxK,GAAA7H,EAAA6H,oBCHAnM,EAAAC,QAAA,SAAA2W,GACA,IACA,QAAAA,IACA,MAAAhB,GACA,4BCJA,IAAAE,EAAA/V,EAAA,GACA2G,EAAA3G,EAAA,GAAA2G,SAEAmQ,EAAAf,EAAApP,IAAAoP,EAAApP,EAAAC,eACA3G,EAAAC,QAAA,SAAA8V,GACA,OAAAc,EAAAnQ,EAAAC,cAAAoP,GAAA,qBCLA,IAAA/H,EAAAjO,EAAA,GACAoU,EAAApU,EAAA,GACA+W,EAAA/W,EAAA,IACAgX,EAAAhX,EAAA,GAAAA,CAAA,OAEAiX,EAAA/I,SAAA,SACAgJ,GAAA,GAAAD,GAAAE,MAFA,YAIAnX,EAAA,GAAAoX,cAAA,SAAApB,GACA,OAAAiB,EAAAhW,KAAA+U,KAGA/V,EAAAC,QAAA,SAAAyV,EAAAvJ,EAAAiL,EAAAC,GACA,IAAAC,EAAA,mBAAAF,EACAE,IAAAR,EAAAM,EAAA,SAAAjD,EAAAiD,EAAA,OAAAjL,IACAuJ,EAAAvJ,KAAAiL,IACAE,IAAAR,EAAAM,EAAAL,IAAA5C,EAAAiD,EAAAL,EAAArB,EAAAvJ,GAAA,GAAAuJ,EAAAvJ,GAAA8K,EAAAM,KAAAC,OAAArL,MACAuJ,IAAA1H,EACA0H,EAAAvJ,GAAAiL,EACAC,EAGA3B,EAAAvJ,GACAuJ,EAAAvJ,GAAAiL,EAEAjD,EAAAuB,EAAAvJ,EAAAiL,WALA1B,EAAAvJ,GACAgI,EAAAuB,EAAAvJ,EAAAiL,OAOAnJ,SAAA/J,UAxBA,WAwBA,WACA,yBAAAuT,WAAAV,IAAAC,EAAAhW,KAAAyW,yBC5BA,IAAAC,EAAA3X,EAAA,IAEAC,EAAAC,QAAAwD,OAAA,KAAAkU,qBAAA,GAAAlU,OAAA,SAAAsS,GACA,gBAAA2B,EAAA3B,KAAAmB,MAAA,IAAAzT,OAAAsS,qBCJA,IAAAjI,EAAA/N,EAAA,GACAiO,EAAAjO,EAAA,GAEAsE,EAAA2J,EADA,wBACAA,EADA,sBACA,KAEAhO,EAAAC,QAAA,SAAAkM,EAAAvK,GACA,OAAAyC,EAAA8H,KAAA9H,EAAA8H,QAAArJ,IAAAlB,IAAA,MACA,eAAA2K,KAAA,CACAwB,QAAAD,EAAAC,QACA6J,KAAA7X,EAAA,oBACA8X,UAAA,sFCTA,IAAAC,EAAA/X,EAAA,EAAAA,CAAA,eACAgY,EAAA/P,MAAA9D,UACApB,MAAAiV,EAAAD,IAAA/X,EAAA,EAAAA,CAAAgY,EAAAD,EAAA,IACA9X,EAAAC,QAAA,SAAAkM,GACA4L,EAAAD,GAAA3L,IAAA,oBCJA,IAAA6L,EAAAjY,EAAA,IACAwW,EAAAxW,EAAA,IACAC,EAAAC,QAAA,SAAA8V,GACA,OAAAiC,EAAAzB,EAAAR,sBCFA,IAAAkC,EAAAlY,EAAA,IACAmY,EAAAnY,EAAA,IACAoY,EAAApY,EAAA,IACAC,EAAAC,QAAA,SAAAmY,GACA,gBAAAC,EAAApR,EAAAqR,GACA,IAGA1W,EAHA8T,EAAAuC,EAAAI,GACAnT,EAAAgT,EAAAxC,EAAAxQ,QACAwH,EAAAyL,EAAAG,EAAApT,GAIA,GAAAkT,GAAAnR,MAAA,KAAA/B,EAAAwH,GAGA,IAFA9K,EAAA8T,EAAAhJ,OAEA9K,EAAA,cAEA,KAAAsD,EAAAwH,MAAA,IAAA0L,GAAA1L,KAAAgJ,IACAA,EAAAhJ,KAAAzF,EAAA,OAAAmR,GAAA1L,GAAA,EACA,OAAA0L,IAAA,mBCnBApY,EAAAC,QACA,4HCFA,IAAAsY,EAAAxY,EAAA,GAAAqO,EACA0I,EAAA/W,EAAA,IACAyY,EAAAzY,EAAA,EAAAA,CAAA,eAEAC,EAAAC,QAAA,SAAA8V,EAAA0C,EAAAC,GACA3C,IAAAe,EAAAf,EAAA2C,EAAA3C,IAAA7R,UAAAsU,IAAAD,EAAAxC,EAAAyC,EAAA,CAAA7U,cAAA,EAAA/B,MAAA6W,2ECGAE,EAAAC,UCLAC,EAAA,+BAAAhW,KAAA,YAAAmT,EAAAnT,mBAAAY,iBAAAZ,QAGAiW,EAAA,GAAAD,GAAA5K,SAAA,cAAAA,ICHAzJ,OCAAuU,EAAAtV,OAAAS,UAGA8U,EAAAD,EAAA5U,eAOA8U,EAAAF,EAAA3T,SAGA8T,EAAAC,IAAAC,iBAAAtW,ECRAuW,EAPA5V,OAAAS,UAOAkB,SCCAkU,EAAAH,IAAAC,iBAAAtW,KLDA6V,EMLAlV,OAAA8V,eNKAX,EMLAnV,ONMA,SAAA+V,GACA,OAAAb,EAAAC,EAAAY,MOFAC,EAAAxL,SAAA/J,UACAwV,EAAAjW,OAAAS,UAGAyV,EAAAF,EAAArU,SAGAwU,EAAAF,EAAAvV,eAGA0V,EAAAF,EAAA3Y,KAAAyC,UA8BA,SAAA7B,GACA,ICzBA,SAAAA,GACA,aAAAA,GAAA,UAAAoU,EAAApU,GDwBAkY,CAAAlY,IA5CA,mBFaA,SAAAA,GACA,aAAAA,OACAkB,IAAAlB,EAdA,qBADA,gBAiBA0X,QAAA7V,OAAA7B,GFGA,SAAAA,GACA,IAAAmY,EAAAf,EAAAhY,KAAAY,EAAAsX,GACAT,EAAA7W,EAAAsX,GAEA,IACAtX,EAAAsX,QAAApW,EACA,IAAAkX,GAAA,EACA,MAAApE,IAEA,IAAAqE,EAAAhB,EAAAjY,KAAAY,GAQA,OAPAoY,IACAD,EACAnY,EAAAsX,GAAAT,SAEA7W,EAAAsX,IAGAe,EEnBAC,CAAAtY,GDNA,SAAAA,GACA,OAAAyX,EAAArY,KAAAY,GCMAuY,CAAAvY,GEyBAwY,CAAAxY,GACA,SAEA,IAAAyY,EAAAC,EAAA1Y,GACA,UAAAyY,EACA,SAEA,IAAAE,EAAAX,EAAA5Y,KAAAqZ,EAAA,gBAAAA,EAAAG,YACA,yBAAAD,mBACAZ,EAAA3Y,KAAAuZ,IAAAV,WEjDAY,EAAA,CACAC,KAAA,gBA2BA,SAAAC,EAAAC,EAAAC,EAAAC,GACA,IAAAC,EAOA,GALA,mBAAAF,QAAA,IAAAC,IACAA,EAAAD,EACAA,OAAA/X,QAGA,IAAAgY,EAAA,CACA,sBAAAA,EACA,UAAAE,MAAA,2CAGA,OAAAF,EAAAH,EAAAG,CAAAF,EAAAC,GAGA,sBAAAD,EACA,UAAAI,MAAA,0CAGA,IAAAC,EAAAL,EACAM,EAAAL,EACAM,EAAA,GACAC,EAAAD,EACAE,GAAA,EAEA,SAAAC,IACAF,IAAAD,IACAC,EAAAD,EAAAvV,SASA,SAAA2V,IACA,OAAAL,EA0BA,SAAAM,EAAAC,GACA,sBAAAA,EACA,UAAAT,MAAA,uCAGA,IAAAU,GAAA,EAKA,OAHAJ,IACAF,EAAA7O,KAAAkP,GAEA,WACA,GAAAC,EAAA,CAIAA,GAAA,EAEAJ,IACA,IAAA5O,EAAA0O,EAAAhT,QAAAqT,GACAL,EAAAO,OAAAjP,EAAA,KA6BA,SAAAkP,EAAAC,GACA,IAAAC,EAAAD,GACA,UAAAb,MAAA,2EAGA,YAAAa,EAAA/V,KACA,UAAAkV,MAAA,sFAGA,GAAAK,EACA,UAAAL,MAAA,sCAGA,IACAK,GAAA,EACAH,EAAAD,EAAAC,EAAAW,GAFA,QAIAR,GAAA,EAIA,IADA,IAAAU,EAAAZ,EAAAC,EACAlY,EAAA,EAAAA,EAAA6Y,EAAA7W,OAAAhC,KAEAuY,EADAM,EAAA7Y,MAIA,OAAA2Y,EAkEA,OAFAD,EAAA,CAAA9V,KAAA2U,EAAAC,QAEAK,EAAA,CACAa,WACAJ,YACAD,WACAS,eAzDA,SAAAC,GACA,sBAAAA,EACA,UAAAjB,MAAA,8CAGAC,EAAAgB,EACAL,EAAA,CAAA9V,KAAA2U,EAAAC,UAoDAwB,EAAA,GA3CA,WACA,IAAAC,EAEAC,EAAAZ,EACA,OAAAW,EAAA,CASAX,UAAA,SAAAa,GACA,cAAArG,EAAAqG,GACA,UAAAxG,UAAA,0CAGA,SAAAyG,IACAD,EAAAE,MACAF,EAAAE,KAAAhB,KAMA,OAFAe,IAEA,CAAAE,YADAJ,EAAAE,OAGAJ,EAAA,cACA,OAAAzE,MACA0E,GAaApB,EClPA,SAAA0B,EAAAtQ,EAAA0P,GACA,IAAAa,EAAAb,KAAA/V,KAGA,uBAFA4W,GAAA,IAAAA,EAAAtX,WAAA,kBAEA,cAAA+G,EAAA,iLA4DA,SAAAwQ,EAAAC,GAGA,IAFA,IAAAC,EAAApZ,OAAAkK,KAAAiP,GACAE,EAAA,GACA5Z,EAAA,EAAAA,EAAA2Z,EAAA3X,OAAAhC,IAAA,CACA,IAAAiJ,EAAA0Q,EAAA3Z,GAQA,mBAAA0Z,EAAAzQ,KACA2Q,EAAA3Q,GAAAyQ,EAAAzQ,IAGA,IAAA4Q,EAAAtZ,OAAAkK,KAAAmP,GAOAE,OAAA,EACA,KAxDA,SAAAJ,GACAnZ,OAAAkK,KAAAiP,GAAAK,QAAA,SAAA9Q,GACA,IAAAyO,EAAAgC,EAAAzQ,GAGA,YAFAyO,OAAA9X,EAAA,CAAAgD,KAAA2U,EAAAC,OAGA,UAAAM,MAAA,YAAA7O,EAAA,iRAIA,YAAAyO,OAAA9X,EAAA,CAAAgD,KADA,gCAAAhB,KAAAE,SAAAI,SAAA,IAAAuH,UAAA,GAAAuK,MAAA,IAAAK,KAAA,OAEA,UAAAyD,MAAA,YAAA7O,EAAA,6EAAAsO,EAAAC,KAAA,iTA8CAwC,CAAAJ,GACA,MAAAlH,GACAoH,EAAApH,EAGA,kBACA,IAAAuH,EAAA9W,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,MACAwV,EAAAxV,UAAA,GAEA,GAAA2W,EACA,MAAAA,EAYA,IAFA,IAAAI,GAAA,EACAC,EAAA,GACAC,EAAA,EAAAA,EAAAP,EAAA7X,OAAAoY,IAAA,CACA,IAAAC,EAAAR,EAAAO,GACA1C,EAAAkC,EAAAS,GACAC,EAAAL,EAAAI,GACAE,EAAA7C,EAAA4C,EAAA3B,GACA,YAAA4B,EAAA,CACA,IAAAC,EAAAjB,EAAAc,EAAA1B,GACA,UAAAb,MAAA0C,GAEAL,EAAAE,GAAAE,EACAL,KAAAK,IAAAD,EAEA,OAAAJ,EAAAC,EAAAF,GC/HA,SAAAQ,EAAAC,EAAAhC,GACA,kBACA,OAAAA,EAAAgC,EAAAtH,WAAAxT,EAAAuD,aAyBA,SAAAwX,EAAAC,EAAAlC,GACA,sBAAAkC,EACA,OAAAH,EAAAG,EAAAlC,GAGA,cAAA5F,EAAA8H,IAAA,OAAAA,EACA,UAAA9C,MAAA,iFAAA8C,EAAA,OAAA9H,EAAA8H,IAAA,8FAKA,IAFA,IAAAnQ,EAAAlK,OAAAkK,KAAAmQ,GACAC,EAAA,GACA7a,EAAA,EAAAA,EAAAyK,EAAAzI,OAAAhC,IAAA,CACA,IAAAiJ,EAAAwB,EAAAzK,GACA0a,EAAAE,EAAA3R,GACA,mBAAAyR,IACAG,EAAA5R,GAAAwR,EAAAC,EAAAhC,IAGA,OAAAmC,EClCA,SAAAC,IACA,QAAAC,EAAA5X,UAAAnB,OAAAgZ,EAAAlW,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IACAW,EAAAX,GAAAlX,UAAAkX,GAGA,WAAAW,EAAAhZ,OACA,SAAAsU,GACA,OAAAA,GAIA,IAAA0E,EAAAhZ,OACAgZ,EAAA,GAGAA,EAAA9R,OAAA,SAAA1B,EAAAC,GACA,kBACA,OAAAD,EAAAC,EAAA2L,WAAAxT,EAAAuD,eC5BA,IAAA8X,EAAA1a,OAAA2a,QAAA,SAAA5W,GAAA,QAAAtE,EAAA,EAAAA,EAAAmD,UAAAnB,OAAAhC,IAAA,KAAAyI,EAAAtF,UAAAnD,GAAA,QAAAiJ,KAAAR,EAAAlI,OAAAS,UAAAC,eAAAnD,KAAA2K,EAAAQ,KAAA3E,EAAA2E,GAAAR,EAAAQ,IAAA,OAAA3E,GAoBA,SAAA6W,IACA,QAAAJ,EAAA5X,UAAAnB,OAAAoZ,EAAAtW,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IACAe,EAAAf,GAAAlX,UAAAkX,GAGA,gBAAAgB,GACA,gBAAA3D,EAAAC,EAAAC,GACA,IAEA0D,EAFAna,EAAAka,EAAA3D,EAAAC,EAAAC,GACA2D,EAAApa,EAAAuX,SAGA8C,EAAA,CACAnD,SAAAlX,EAAAkX,SACAK,SAAA,SAAAC,GACA,OAAA4C,EAAA5C,KAQA,OALA2C,EAAAF,EAAAK,IAAA,SAAAC,GACA,OAAAA,EAAAF,KAEAD,EAAAT,EAAA1H,WAAAxT,EAAA0b,EAAAR,CAAA3Z,EAAAuX,UAEAuC,EAAA,GAAA9Z,EAAA,CACAuX,SAAA6C,MC5CA1e,EAAAuD,EAAAub,EAAA,gCAAAlE,IAAA5a,EAAAuD,EAAAub,EAAA,oCAAAlC,IAAA5c,EAAAuD,EAAAub,EAAA,uCAAAhB,IAAA9d,EAAAuD,EAAAub,EAAA,oCAAAR,IAAAte,EAAAuD,EAAAub,EAAA,4BAAAb,mBCCA,IAAAc,EAGAA,EAAA,WACA,OAAArH,KADA,GAIA,IAEAqH,KAAA7Q,SAAA,cAAAA,KAAA,EAAA8Q,MAAA,QACA,MAAAnJ,GAEA,gCAAAvT,OAAA,YAAA2T,EAAA3T,WACAyc,EAAAzc,+UCbAgM,EAAAtO,EAAA,GAEAif,EAAA,oBAAAA,EAAA7C,GAAA,IAAA5W,EAAA4W,EAAA5W,QACA8M,EAAA8J,EAAA9J,WAGA,mCAHA2M,4DAAAC,CAAAxH,MACAyH,EAAAzH,KAAA,CAAAlS,UAAA8M,iBAEA,EAAAhE,EAAApI,WAAAV,GACA,UAAAsQ,UAAA,0BAGA4B,KAAA0H,YAAA,eAMAhT,IAAA,UACAvK,MAAA,WAEA6V,KAAAlS,QAAA6B,UAAAgY,IAAA3H,KAAApF,WAAAlJ,OACAsO,KAAAlS,QAAA6B,UAAAgY,IAAA3H,KAAApF,WAAA5C,aAGAgI,KAAAlS,QAAA8Z,SAAA,KAGA,IAAAC,EAAA7H,KAAAlS,QAAAga,aAAA,SAEAD,GACA7H,KAAAlS,QAAAia,aAAA,yBAAAF,GAGA7H,KAAAlS,QAAAia,aAAA,sBACA/H,KAAAlS,QAAAia,aAAA,2BAEArT,IAAA,SACAvK,MAAA,WAEA6V,KAAAlS,QAAA6B,UAAAqY,OAAAhI,KAAApF,WAAAlJ,OACAsO,KAAAlS,QAAA6B,UAAAqY,OAAAhI,KAAApF,WAAA5C,aACAgI,KAAAlS,QAAAma,gBAAA,YAGA,IAAAJ,EAAA7H,KAAAlS,QAAAga,aAAA,0BAEAD,GACA7H,KAAAlS,QAAAma,gBAAA,0BACAjI,KAAAlS,QAAAia,aAAA,QAAAF,IAEA7H,KAAAlS,QAAAma,gBAAA,SAEAjI,KAAAlS,QAAAma,gBAAA,eACAjI,KAAAlS,QAAAma,gBAAA,eAGAjI,KAAAlS,QAAA3D,MAAA6V,KAAAlS,QAAA3D,SAEAuK,IAAA,SACAvK,MAAA,WACA6V,KAAAlS,QAAAma,gBAAA,YACAjI,KAAAlS,QAAAoa,UAAA,EACAlI,KAAA0H,YAAA,KAEAhT,IAAA,UACAvK,MAAA,WACA6V,KAAAlS,QAAAia,aAAA,eACA/H,KAAAlS,QAAAoa,UAAA,EACAlI,KAAA0H,YAAA,KAEAhT,IAAA,eACAvK,MAAA,SAAAge,EAAApf,IACA,EAAA6N,EAAApD,eAAAwM,KAAAlS,QAAAqa,EAAApf,MA3DA2L,IAAA,QACAtI,IAAA,WACA,OAAA4T,KAAAlS,QAAA3D,YAZA,oGCFA,WAAA7B,EAAA,iCACAsO,EAAAtO,EAAA,2HAEA,IAAA8f,EAAA5f,EAAA4f,UAAA,CAQAtR,eAAA,SAAAuR,EAAAjY,EAAAkY,EAAAC,EAAAtP,EAAAuP,GACA,IAAAZ,EAAAW,EAAA,kBACAE,EAAAH,EAAA,oBACAI,EAAA,GAmBA,OAjBAJ,GAAArP,IACAwP,EAAA,kBACAC,EAAA,6BAeA,EAAA9R,EAAA3F,SAAA,gCAAAoX,EAAAvR,eAAA,yBAAA0R,EAAA,cAAAC,EAAA,aAAAb,EAAA,aAAAc,EAAA,+EAAAtY,EAAA,qCAEA2G,eAAA,SAAAsR,GAGA,SAAAzR,EAAA3F,SAAA,uBAAAoX,EAAAtR,eAAA,mBACA4R,SAAA,SAAAN,EAAAE,GACA,IAAAK,EACAC,GAAA,EAAAC,EAAAC,SAAAV,EAAApR,MAAA+R,EAAAJ,EAAA,GAAAP,EAAAlR,WAAAoR,GAAAS,EAAAJ,EAAAP,EAAAnR,WAAAqR,GAAAK,IAOA,SAAAhS,EAAA3F,SAAA,uBAAA4X,EAAA,mBAEAjX,YAAA,SAAAyW,EAAAle,GAKA,SAAAyM,EAAA3F,SAAA,uBAAAoX,EAAAzW,YAAA,eAAAzH,EAAA,yBACAwL,KAAA,SAAA0S,EAAAtf,EAAA6P,GACA,IAAAqQ,EAUAC,EATAC,EAAApgB,EAAAqgB,OAAA,0BACAC,EAAAtgB,EAAAmf,SAAA,0BAEAW,GAAA,EAAAC,EAAAC,SAAAV,EAAA1S,MAAAqT,EAAAC,EAAA,GAAAZ,EAAAtQ,iBAAAhP,EAAAugB,aAAAN,EAAAC,EAAAZ,EAAAhR,gBAAAtO,EAAAugB,aAAAN,EAAAC,EAAAZ,EAAAzW,YAAA7I,EAAA6I,aAAAqX,IAKA,OAAArQ,GAEAiQ,GAAA,EAAAC,EAAAC,SAAAV,EAAA1S,MAAAqT,EAAAE,EAAA,GAAAb,EAAAtQ,iBAAAhP,EAAAugB,aAAAN,EAAAE,EAAAb,EAAAhR,gBAAAtO,EAAAmf,UAAAc,EAAAE,EAAAb,EAAAzW,YAAA7I,EAAA6I,aAAAsX,KA0BA,EAAAtS,EAAA3F,SAAA,oCAAA4X,EAAA,8CAAA9f,EAAAiF,GAAA,4BAAAjF,EAAAoB,MAAA,0CAAAgf,EAAA,eAAAE,EAAA,4BAAAtgB,EAAAmB,MAAA,gFAAAme,EAAA3Q,OAAA,sEAAA3O,EAAAoB,MAAA,8FAcA,EAAAyM,EAAA3F,SAAA,gCAAA4X,EAAA,0CAAA9f,EAAAiF,GAAA,0BAAAjF,EAAAoB,MAAA,cAAAgf,EAAA,aAAAE,EAAA,wBAAAtgB,EAAAmB,MAAA,yBAEAqf,WAAA,SAAAlB,EAAAE,GACA,IAAAiB,EAAAjB,EAAA,iCAYA,SAAA3R,EAAA3F,SAAA,gCAAAoX,EAAApR,KAAA,yDAAAuS,EAAA,oCAEAC,YAAA,SAAApB,EAAAtf,GACA,IAAAsgB,EAAAtgB,EAAAmf,SAAA,0BACAW,GAAA,EAAAC,EAAAC,SAAAV,EAAA7Q,MAAAwR,EAAA,GAAAX,EAAA/Q,aAAAvO,EAAAmf,WAeA,SAAAtR,EAAA3F,SAAA,gCAAA4X,EAAA,2CAAA9f,EAAAiF,GAAA,0BAAAjF,EAAAoB,MAAA,oCAAAkf,EAAA,oCAAAhB,EAAA5Q,aAAA,KAAA1O,EAAAoB,MAAA,+BACAoQ,OAAA,SAAA8N,EAAAtf,EAAAmR,GACA,IAAAwP,EACAjB,EAAA1f,EAAA4gB,QAAA,oCACAd,GAAA,EAAAC,EAAAC,SAAAV,EAAA1S,KAAA0S,EAAA9Q,YAAAyR,EAAAU,EAAA,GAAArB,EAAA/Q,aAAAvO,EAAAmf,UAAAc,EAAAU,EAAArB,EAAAhR,gBAAAtO,EAAAmf,UAAAc,EAAAU,EAAArB,EAAAzW,YAAA7I,EAAA6I,aAAA8X,IA2BA,SAAA9S,EAAA3F,SAAA,gCAAA4X,EAAA,gCAAA3O,EAAA,4CAAAnR,EAAAiF,GAAA,0BAAAjF,EAAAoB,MAAA,eAAApB,EAAAmf,SAAA,uFAAAnf,EAAA6gB,UAAA,cAAAnB,EAAA,wBAAA1f,EAAAmB,MAAA,yBAEAwH,MAAA,SAAA2W,GACA,IAAAQ,GAAA,EAAAC,EAAAC,SAAAV,EAAA3W,MAAA2W,EAAArR,aAeA,SAAAJ,EAAA3F,SAAA,uDAAA4X,EAAA,uKAEAgB,SAAA,SAAAxB,GACA,IAAAQ,GAAA,EAAAC,EAAAC,SAAAV,EAAApR,KAAAoR,EAAAjR,cAWA,SAAAR,EAAA3F,SAAA,gCAAA4X,EAAA,oEACAiB,OAAA,SAAAzB,EAAAne,GACA,IAAA6f,EAAA1b,EAAAO,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,MACAia,GAAA,EAAAC,EAAAC,SAAAV,EAAA1S,KAAA0S,EAAA9Q,YAAAyR,EAAAe,EAAA,GAAA1B,EAAAlQ,UAAA,eAAA9J,GAAA2a,EAAAe,EAAA1B,EAAAjQ,UAAA,eAAA/J,GAAA0b,IAaA,SAAAnT,EAAA3F,SAAA,uBAAA4X,EAAA,eAAA3e,EAAA,yBAEA8f,OAAA,SAAAjhB,GAKA,SAAA6N,EAAA3F,SAAA,0BAAAlI,EAAAoB,MAAA,MAAApB,EAAAqgB,OAAA,oBAAArgB,EAAAmf,SAAA,mBAAAnf,EAAAmB,MAAA,gVCpOA5B,EAAA,SACAA,EAAA,KAEAA,EAAA,IACA,QAAAA,EAAA,KACA2hB,EAAA3hB,EAAA,IAQA4hB,EAAA5hB,EAAA,GACA6hB,EAAA7hB,EAAA,IACA8hB,EAAA9hB,EAAA,IAMA+hB,EAAA/hB,EAAA,IACAgiB,EAAAhiB,EAAA,IACAiiB,EAAAjiB,EAAA,IACAsO,EAAAtO,EAAA,sSAsBA,IAAAkiB,EAAA,oBAAAA,IAAA,IAAA1c,EAAAc,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,mBACA6b,EAAA7b,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,MACA,mCADA4b,4DAAAhD,CAAAxH,OACA,EAAApJ,EAAAxI,QAAA,SAAAN,GAAA,CACA,IAAA4c,EAAAna,MAAAC,KAAAvB,SAAAwB,iBAAA3C,IAIA,GAAA4c,EAAAjd,OAAA,EACA,OAAAuS,KAAA2K,mBAAAD,EAAAD,GAIAzK,KAAA4K,OAAAC,EAAA9B,QAAA+B,IAAA,CAAAZ,EAAA7R,eAAAmS,EAAAO,aAAAN,KAEA,EAAA7T,EAAAZ,aAAAgK,KAAA4K,OAAAV,EAAA7R,iBACAtN,QAAAigB,KAAA,mCAGA,kBAAAC,SAAAjL,KAAA4K,OAAA9Q,yBACAkG,KAAA4K,OAAA9Q,sBAAA,QAIA,IAAAoR,GAAA,EAAAtU,EAAAxI,QAAA,SAAAN,GAAAmB,SAAAkc,cAAArd,KAIA,OAAAod,GAMAlL,KAAAoL,eAAA,SAAAF,EAAA7c,KACA2R,KAAAqL,oBAAA,eAAAH,EAAA7c,KACA2R,KAAAsL,yBAAA,oBAAAJ,EAAA7c,KACA2R,KAAAuL,iBAAAvL,KAAAqL,qBAAArL,KAAAsL,yBAGAtL,KAAAoL,eACApL,KAAAkL,cAAA,IAAAjB,EAAAuB,aAAA,CACA1d,QAAAod,EACAtQ,WAAAoF,KAAA4K,OAAAhQ,WAHA7B,UAAAiH,KAAA4K,OAAA7R,YAMAiH,KAAAuL,mBACAvL,KAAAkL,cAAA,IAAAjB,EAAAwB,cAAA,CACA3d,QAAAod,EAFAtQ,WAAAoF,KAAA4K,OAAAhQ,cAOAsQ,IAQA,IAAAlL,KAAA4K,OAAApR,iBAAAwG,KAAAqL,sBAAArL,KAAA4K,OAAArS,QAGAxN,QAAAigB,KAAA,sFAGAhL,KAAA0L,aAAA,EAEA1L,KAAA2L,OAAA,IAAAC,EAAA7C,QAAA/I,KAAA6L,QACA7L,KAAA8L,cAAA,GACA9L,KAAA+L,cAAA,GACA/L,KAAAgM,WAAA,GACAhM,KAAAiM,cAAA,GACAjM,KAAAkM,WAAAlM,KAAA4K,OAAA3R,cACA+G,KAAAmM,kBAAA,EACAnM,KAAAoM,mBAAA,EACApM,KAAAqM,SAAA,EACArM,KAAAsM,kBAAAtM,KAAAuM,4BACAvM,KAAAwM,SAAA,EAAA5V,EAAA/I,YAAAmS,KAAAkL,cAAApd,QAAA,YACAkS,KAAAyM,WAAAzM,KAAAkL,cAAApd,QAAAga,aAAA,cACA9H,KAAA0M,SAAA,CADAnV,WAAA,eAKAyI,KAAA2M,eAAA3M,KAAA4K,OAAAtS,QAEA0H,KAAA4M,aAAA5M,KAAA4K,OAAAnW,MAEAuL,KAAAkL,cAAA/gB,QAGA6V,KAAA4M,aAAA5M,KAAA4M,aAAA3hB,OAAA+U,KAAAkL,cAAA/gB,MAAAsV,MAAAO,KAAA4K,OAAA7R,aAGAiH,KAAA6M,QAAA7M,KAAA6M,QAAAC,KAAA9M,MACAA,KAAA+M,SAAA/M,KAAA+M,SAAAD,KAAA9M,MACAA,KAAAgN,QAAAhN,KAAAgN,QAAAF,KAAA9M,MACAA,KAAAiN,SAAAjN,KAAAiN,SAAAH,KAAA9M,MACAA,KAAAkN,WAAAlN,KAAAkN,WAAAJ,KAAA9M,MACAA,KAAAmN,SAAAnN,KAAAmN,SAAAL,KAAA9M,MACAA,KAAAoN,aAAApN,KAAAoN,aAAAN,KAAA9M,MACAA,KAAAqN,YAAArN,KAAAqN,YAAAP,KAAA9M,MACAA,KAAAsN,aAAAtN,KAAAsN,aAAAR,KAAA9M,MACAA,KAAAuN,aAAAvN,KAAAuN,aAAAT,KAAA9M,MACAA,KAAAwN,aAAAxN,KAAAwN,aAAAV,KAAA9M,MACAA,KAAAyN,QAAAzN,KAAAyN,QAAAX,KAAA9M,MACAA,KAAA0N,YAAA1N,KAAA0N,YAAAZ,KAAA9M,MACAA,KAAA2N,aAAA3N,KAAA2N,aAAAb,KAAA9M,MACAA,KAAA4N,gBAAA5N,KAAA4N,gBAAAd,KAAA9M,MACAA,KAAA6N,aAAA7N,KAAA6N,aAAAf,KAAA9M,MAGA,WAAAA,KAAAkL,cAAApd,QAAAga,aAAA,gBAGA/c,QAAAigB,KAAA,oEAIAhL,KAAA8N,QAlEA/iB,QAAAgjB,MAAA,0CAvBAhjB,QAAAgjB,MAAA,uFA+FArZ,IAAA,OACAvK,MAAA,WACA,IAAA6V,KAAA0L,YAAA,CAIA1L,KAAAgO,mBACAhO,KAAAiO,kBACAjO,KAAAkO,mBAIAlO,KAAA8L,eAAA,EAAAlV,EAAAhB,aAAAoK,KAAA2L,OAAAjG,OACA1F,KAAA2L,OAAA5H,UAAA/D,KAAA6M,SACA7M,KAAA6M,UACA7M,KAAAmO,uBAEAnO,KAAA4K,OAAAlS,UAAAsH,KAAAkL,cAAApd,QAAAkC,aAAA,cAKAgQ,KAAAoO,UAGApO,KAAA0L,aAAA,EAEA,IAAAhR,EAAAsF,KAAA4K,OAAAlQ,eAEAA,IAAA,EAAA9D,EAAAxI,QAAA,WAAAsM,IACAA,EAAAnR,KAAAyW,UAGAtL,IAAA,UACAvK,MAAA,WACA6V,KAAA0L,cAIA1L,KAAAqO,wBACArO,KAAAkL,cAAAoD,SACAtO,KAAAlJ,eAAAyX,OAAAvO,KAAAkL,cAAApd,SAEAkS,KAAAuL,mBACAvL,KAAAkL,cAAAsD,QAAAxO,KAAA2M,gBAGA3M,KAAAyO,aAEAzO,KAAA4K,OAAA8D,UAAA,KACA1O,KAAA0L,aAAA,MAEAhX,IAAA,SACAvK,MAAA,WAWA,OAVA6V,KAAAkL,cAAAxD,YACA1H,KAAAkL,cAAAyD,SAGA3O,KAAAlJ,eAAA4Q,aACA1H,KAAAmO,qBACAnO,KAAAtO,MAAAid,SACA3O,KAAAlJ,eAAA6X,UAGA3O,QAEAtL,IAAA,UACAvK,MAAA,WAWA,OAVA6V,KAAAkL,cAAAxD,YACA1H,KAAAkL,cAAAkD,UAGApO,KAAAlJ,eAAA4Q,aACA1H,KAAAqO,wBACArO,KAAAtO,MAAA0c,UACApO,KAAAlJ,eAAAsX,WAGApO,QAEAtL,IAAA,gBAAAvK,MAAA,SAAAwL,GACA,IAAAiZ,IAAAhgB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,KAAAA,UAAA,GACA,IAAA+G,EACA,OAAAqK,KAHA,IAAAhS,EAAA2H,EAAA3H,GAAA6gB,EAAAlZ,EAAAgU,eAAAte,IAAAwjB,GAAA,EAAAA,EAAAC,EAAAnZ,EAAAxL,aAAAkB,IAAAyjB,EAAA,GAAAA,EAAAC,EAAApZ,EAAAzL,MACAA,OAAAmB,IAAA0jB,EAAA,GAAAA,EAMAvX,EAAAmS,GAAA,EAAA3J,KAAA2L,OAAAqD,aAAArF,GAAA,KAaA,OAXA3J,KAAA2L,OAAAxH,UAAA,EAAAkG,EAAAjP,eAAApN,GAAA,IAEA4gB,GACA5O,KAAAkL,cAAA+D,aAAA/E,EAAArP,OAAAO,cAAA,CACApN,KACA7D,QACAD,QAJAglB,WAAA1X,KAAArN,MAAAqN,EAAArN,MAAA,OASA6V,QAEAtL,IAAA,kBACAvK,MAAA,SAAAwL,GACA,IAAAA,EACA,OAAAqK,KAHA,IAAAhS,EAAA2H,EAAA3H,GAAAmhB,EAAAxZ,EAAAgU,eAAAte,IAAA8jB,GAAA,EAAAA,EAAAC,EAAAzZ,EAAAxL,aAAAkB,IAAA+jB,EAAA,GAAAA,EAAAC,EAAA1Z,EAAAzL,MACAA,OAAAmB,IAAAgkB,EAAA,GAAAA,EAMA7X,EAAAmS,GAAA,EAAA3J,KAAA2L,OAAAqD,aAAArF,GAAA,KAUA,OARA3J,KAAA2L,OAAAxH,UAAA,EAAAkG,EAAAjP,eAAApN,GAAA,IACAgS,KAAAkL,cAAA+D,aAAA/E,EAAArP,OAAAO,cAAA,CACApN,KACA7D,QACAD,QAJAglB,WAAA1X,KAAArN,MAAAqN,EAAArN,MAAA,OAQA6V,QAEAtL,IAAA,eAAAvK,MAAA,WACA,IAAAmlB,EAAAtP,KAEA,OAFAA,KAAA2L,OAAAlX,MAAA+Q,QAAA,SAAA7P,GAAA,OAAA2Z,EAAAlU,cAAAzF,KAEAqK,QAEAtL,IAAA,iBAAAvK,MAAA,WACA,IAAAolB,EAAAvP,KAEA,OAFAA,KAAA2L,OAAAlX,MAAA+Q,QAAA,SAAA7P,GAAA,OAAA4Z,EAAAC,gBAAA7Z,KAEAqK,QAEAtL,IAAA,2BAAAvK,MAAA,SAAAA,GACA,IAAAslB,EAAAzP,KAKA,OAJAA,KAAA2L,OAAA+D,YAAAC,OAAA,SAAAha,GAAA,OAAAA,EAAAxL,YACAqb,QAAA,SAAA7P,GAAA,OAAA8Z,EAAAG,YAAAja,KAGAqK,QAEAtL,IAAA,oBAAAvK,MAAA,SAAA0lB,GACA,IAAAC,EAAA9P,KAKA,OAJAA,KAAA2L,OAAA+D,YAAAC,OAAA,SAAAjL,GAAA,OAAAA,EAAA1W,KAAA6hB,IACArK,QAAA,SAAA7P,GAAA,OAAAma,EAAAF,YAAAja,KAGAqK,QAEAtL,IAAA,yBAAAvK,MAAA,WACA,IAAA4lB,EAAA/P,KAAA4O,EAAAhgB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,IAAAA,UAAA,GAUA,OATAoR,KAAA2L,OAAAqE,uBAAAxK,QAAA,SAAA7P,GACAoa,EAAAH,YAAAja,GAGAiZ,GACAmB,EAAAE,eAAAta,EAAAxL,SAIA6V,QAEAtL,IAAA,eAAAvK,MAAA,SAAA+lB,GACA,IAAAC,EAAAnQ,KACA,OAAAA,KAAA6J,SAAAuG,SACApQ,MAGAjN,sBAAA,WACAod,EAAAtG,SAAAwG,OACAF,EAAArZ,eAAAwZ,KAAAH,EAAAtG,SAAA0G,0BAEAL,GAAAC,EAAAjE,YACAiE,EAAAze,MAAA8e,QAGAL,EAAAjF,cAAA+D,aAAA/E,EAAArP,OAAAC,aAAA,MAGAkF,SAEAtL,IAAA,eAAAvK,MAAA,SAAAsmB,GACA,IAAAC,EAAA1Q,KACA,OAAAA,KAAA6J,SAAAuG,UAIArd,sBAAA,WACA2d,EAAA7G,SAAAnN,OACAgU,EAAA5Z,eAAA6Z,SAEAF,GAAAC,EAAAxE,aACAwE,EAAAhf,MAAAkf,yBACAF,EAAAhf,MAAAmf,QAGAH,EAAAxF,cAAA+D,aAAA/E,EAAArP,OAAAE,aAAA,MAGAiF,MAfAA,QAiBAtL,IAAA,iBACAvK,MAAA,WAEA,OADA6V,KAAA6J,SAAAuG,SAAApQ,KAAAjF,eAAAiF,KAAAlF,eACAkF,QAEAtL,IAAA,WAAAvK,MAAA,WACA,IAAA2mB,EAAAliB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,IAAAA,UAAA,GACAmiB,EAAA/Q,KAAA2L,OAAA+D,YAAA/a,OAAA,SAAAqc,EAAArb,GACA,IAAAsb,EAAAH,EAAAnb,EAAAxL,MAAAwL,EAEA,OADAqb,EAAAlc,KAAAmc,GACAD,GACA,IAEA,OAAAhR,KAAAqL,oBAAA0F,EAAA,GAAAA,KAEArc,IAAA,WAAAvK,MAAA,SAAA+mB,GACA,IAAAC,EAAAnR,KACA,OAAAA,KAAA0L,aAGA,GAAAzgB,OAAAmmB,EAAAF,IAAA1L,QAAA,SAAArb,GAAA,OAAAgnB,EAAAE,iBAAAlnB,KAEA6V,MAJAA,QAMAtL,IAAA,mBAAAvK,MAAA,SAAAA,GACA,IAAAmnB,EAAAtR,KACA,OAAAA,KAAA0L,aAAA1L,KAAAoL,eACApL,QAIA,EAAApJ,EAAAxI,QAAA,QAAAjE,KAAA,CAAAA,IAEAqb,QAAA,SAAA7F,GAAA,OAAA2R,EAAAC,4BAAA5R,KAGAK,SAEAtL,IAAA,aAAAvK,MAAA,eAAAmO,EAAA1J,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,MACAzE,EAAAyE,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,MAAA4iB,EAAAxR,KADA9V,EAAA0E,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,MACA6iB,EAAA7iB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,IAAAA,UAAA,GACA,OAAAoR,KAAAuL,kBAAAjT,EAAA7K,QAAAtD,GAKAsnB,GACAzR,KAAA0R,gBAGA1R,KAAAlJ,eAAA6a,qBAqBArZ,EAAAkN,QApBA,SAAAoM,GACAA,EAAAtZ,QACAkZ,EAAAK,UAAA,CACAra,MAAAoa,EACA5jB,GAAA4jB,EAAA5jB,IAAA,KACA8jB,SAAA3nB,EAJA4nB,SAAA7nB,IAQAsnB,EAAAQ,WAAA,CACA7nB,MAAAynB,EAAAznB,GACAD,MAAA0nB,EAAA1nB,GACA+nB,WAAAL,EAAAM,SACAxK,WAAAkK,EAAA1J,SACA/e,iBAAAyoB,EAAAzoB,iBANAyI,YAAAggB,EAAAhgB,gBAcAoO,MA/BAA,QAiCAtL,IAAA,aACAvK,MAAA,WAEA,OADA6V,KAAA2L,OAAAxH,UAAA,EAAAoG,EAAA4H,aACAnS,QAEAtL,IAAA,aACAvK,MAAA,WACA,IAAAioB,GAAApS,KAAAqL,oBAQA,OAPArL,KAAAtO,MAAA2gB,MAAAD,IAEApS,KAAAoL,gBAAApL,KAAAkM,aACAlM,KAAAsS,cAAA,EACAtS,KAAA2L,OAAAxH,UAAA,EAAAiG,EAAAmI,kBAAA,KAGAvS,QAEAtL,IAAA,OAAAvK,MAAA,SAAAR,GACA,IAAA6oB,EAAAxS,KACA,OAAAA,KAAA0L,aAAA1L,KAAAuL,kBAAA5hB,GAGAoJ,sBAAA,kBAAAyf,EAAAC,qBAAA,KAEA9oB,EAAAqW,KAAA0S,iBAEA1S,MANAA,QAcAtL,IAAA,UACAvK,MAAA,WACA6V,KAAA+L,cAAA/L,KAAA2L,OAAAjG,MAKA,IAAAiN,EAAA3S,KAAA+L,cAAAzT,UAAA0H,KAAAgM,WAAA1T,SAAA0H,KAAA+L,cAAA6G,SAAA5S,KAAAgM,WAAA4G,QAAA5S,KAAA+L,cAAAtX,QAAAuL,KAAAgM,WAAAvX,MACAoe,EAAA7S,KAAAuL,iBACAuH,EAAA9S,KAAA+L,cAAAtX,QAAAuL,KAAAgM,WAAAvX,MAGAke,IAIAE,GACA7S,KAAA+S,iBAGAD,GACA9S,KAAAgT,eAGAhT,KAAAgM,WAAAhM,KAAA+L,kBAEArX,IAAA,iBAAAvK,MAAA,WACA,IAAA8oB,EAAAjT,KADA2L,EAAA3L,KAAA2L,OAAAuH,EAAAvH,EAAAuH,aACAC,EAAAxH,EAAAwH,cAEAC,EAAAnkB,SAAAokB,yBASA,GAPArT,KAAAuJ,WAAA8I,QAEArS,KAAA4K,OAAAtR,qBAAAvG,sBAAA,kBAAAkgB,EAAA1J,WAAA+J,gBAKAJ,EAAAzlB,QAAA,IAAAuS,KAAAsS,aAAA,CAEA,IAAAiB,EAAAJ,EAAAxD,OAAA,SAAA6D,GAAA,WAAAA,EAAA5hB,cAAA,IAAA4hB,EAAA7J,UAIA4J,EAAA9lB,QAAA,IAIA2lB,EAAApT,KAAAyT,uBAAAF,EAAAH,IAMAA,EAAApT,KAAA0T,sBAAAR,EAAAC,EAAAC,QACAD,EAAA1lB,QAAA,IAIA2lB,EAAApT,KAAAyT,uBAAAN,EAAAC,IAOA,GAAAA,EAAAO,YAAAP,EAAAO,WAAAlmB,OAAA,GACA,IAAAiiB,EAAA1P,KAAA2L,OAAA+D,YACAkE,EAAA5T,KAAA6T,YAAAnE,EAAA1P,KAAAtO,MAAAvH,OAGAypB,EAAAE,UAEA9T,KAAAuJ,WAAAwK,OAAAX,GACApT,KAAAgU,oBAGAhU,KAAAuJ,WAAAwK,OAAA/T,KAAAiU,aAAA,SAAAL,EAAA9J,aAEA,CAEA,IAAAoK,OAAA,EACApK,OAAA,EAEA9J,KAAAsS,cACAxI,GAAA,EAAAlT,EAAAxI,QAAA,WAAA4R,KAAA4K,OAAA5Q,eAAAgG,KAAA4K,OAAA5Q,gBAAAgG,KAAA4K,OAAA5Q,cAIAka,EAAAlU,KAAAiU,aAAA,SAAAnK,EAAA,gBAEAA,GAAA,EAAAlT,EAAAxI,QAAA,WAAA4R,KAAA4K,OAAA3Q,eAAA+F,KAAA4K,OAAA3Q,gBAAA+F,KAAA4K,OAAA3Q,cAIAia,EAAAlU,KAAAiU,aAAA,SAAAnK,EAAA,eAGA9J,KAAAuJ,WAAAwK,OAAAG,OAGAxf,IAAA,eACAvK,MAAA,WACA,IAAAulB,EAAA1P,KAAA2L,OAAA+D,aAAA,GACA1P,KAAA2I,SAAA0J,QAIA,IAAA8B,EAAAnU,KAAAoU,qBAAA1E,GAGAyE,EAAAR,YACA3T,KAAA2I,SAAAoL,OAAAI,MAGAzf,IAAA,wBAAAvK,MAAA,SAAAyoB,EAAAta,EAAA+b,GACA,IAAAC,EAAAtU,KACAuU,EAAAF,GAAAplB,SAAAokB,yBA0BA,OAbArT,KAAA4K,OAAArR,YACAqZ,EAAAzc,KAAA6J,KAAA4K,OAAAnR,QAGAmZ,EAAApN,QAAA,SAAAhO,GACA,IAAAgd,EAlBA,SAAAhd,GAEA,OAAAc,EAAAqX,OAAA,SAAApV,GACA,OAAA+Z,EAAAjJ,oBACA9Q,EAAAoP,UAAAnS,EAAAxJ,GAKAuM,EAAAoP,UAAAnS,EAAAxJ,KAAA,WAAAsmB,EAAA1J,OAAA9Q,wBAAAS,EAAA2X,YASAuC,CAAAjd,GACA,GAAAgd,EAAA/mB,QAAA,GACA,IAAAinB,EAAAJ,EAAAL,aAAA,cAAAzc,GACA+c,EAAAjlB,YAAAolB,GACAJ,EAAAb,uBAAAe,EAAAD,GAAA,MAIAA,KAEA7f,IAAA,yBAAAvK,MAAA,SAAAmO,EAAA+b,GACA,IAAAM,EAAA3U,KAAA4U,EAAAhmB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,IAAAA,UAAA,GADAimB,EAAAR,GAAAplB,SAAAokB,yBAAAyB,EAAA9U,KAAA4K,OAAA9Q,EAAAgb,EAAAhb,sBAAAV,EAAA0b,EAAA1b,kBACAZ,EAAAsc,EAAAtc,kBAQAmX,EAAA3P,KAAAsS,aAAA1b,EAAAtD,YAAA0M,KAAA4K,OAAAnR,OACAsb,EAAA,SAAAxa,GAKA,GADA,SAAAT,GAAA6a,EAAAtJ,sBAAA9Q,EAAA2X,SACA,CAKA,IAAAgC,EAAAS,EAAAV,aAAA,SAAA1Z,EAAAoa,EAAA/J,OAAA1Q,gBACA2a,EAAAvlB,YAAA4kB,KAIAc,EAAA1c,EAEA,SAAAwB,GAAAkG,KAAAqL,sBAAA2J,EAAA1c,EAAAqX,OAAA,SAAApV,GAAA,OAAAA,EAAA2X,YAMA,IAAA+C,EAAAD,EAAArgB,OAAA,SAAAugB,EAAA3a,GAMA,OALAA,EAAA3I,YACAsjB,EAAAC,mBAAArgB,KAAAyF,GAEA2a,EAAAE,cAAAtgB,KAAAyF,GAEA2a,GAvCA,CAAAC,mBAAA,GAAAC,cAAA,KAAAD,EAAAF,EAAAE,mBACAC,EAAAH,EAAAG,eA4CApV,KAAA4K,OAAArR,YAAAyG,KAAAsS,eACA8C,EAAAjf,KAAAwZ,GAGA,IAAA0F,EAAAL,EAAAvnB,OAGA6nB,EAAA,GAAArqB,OAAAmmB,EAAA+D,GAAA/D,EAAAgE,IAEApV,KAAAsS,aACA+C,EAAAjc,EACAZ,EAAA,IAAAoc,IACAS,EAAA7c,GAIA,QAAA/M,EAAA,EAAAA,EAAA4pB,EAAA5pB,GAAA,EACA6pB,EAAA7pB,IACAspB,EAAAO,EAAA7pB,IAIA,OAAAopB,KAEAngB,IAAA,uBAAAvK,MAAA,SAAAsK,GACA,IAAA8gB,EAAAvV,KAAAqU,EAAAzlB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,QADA4mB,EAAAxV,KAAA4K,OAAApR,EAAAgc,EAAAhc,gBAAAC,EAAA+b,EAAA/b,OACAb,EAAA4c,EAAA5c,iBAGAub,EAAAE,GAAAplB,SAAAokB,yBAyBA,OAtBA7Z,IAAAwG,KAAAqL,qBACA5W,EAAA0B,KAAAsD,GAGAuG,KAAAoL,eAEApL,KAAAkL,cAAA/gB,MAAAsK,EAGAuL,KAAAkL,cAAAsD,QAAA/Z,EAUAA,EAAA+Q,QAAA,SAAA7P,GAAA,OAPA,SAAAA,GAEA,IAAA8f,EAAAF,EAAAtB,aAAA,OAAAte,EAAAiD,GAEAub,EAAA7kB,YAAAmmB,GAGAC,CAAA/f,KAGAwe,KAEAzf,IAAA,iBACAvK,MAAA,SAAAA,GACAA,SAIA6V,KAAAkL,cAAA+D,aAAA/E,EAAArP,OAAAG,OAAA,CADA7Q,aAKAuK,IAAA,2BACAvK,MAAA,WACA,IAAAwrB,EAAA3V,KAAA2L,OAAAgK,kBAEAA,IACA3V,KAAA4V,SAAA,CACAzrB,MAAAwrB,EAAAxrB,MACAD,MAAAyrB,EAAAzrB,MACA2rB,SAAAF,EAAA3nB,GACA2b,QAAAgM,EAAAhM,QALA/X,YAAA+jB,EAAA/jB,cASAoO,KAAAiQ,eAAA0F,EAAAxrB,WAGAuK,IAAA,sBACAvK,MAAA,SAAAulB,EAAA5hB,GAMA,GAAA4hB,GAAA5hB,GAAAkS,KAAA4K,OAAAjS,aAAAqH,KAAA4K,OAAAhS,iBAAA,CAIA,IAAAkd,EAAAhoB,EAAAsB,WAAA0Y,aAAA,WACAiO,EAAArG,EAAAsG,KAAA,SAAArgB,GAAA,OAAAA,EAAA3H,KAAAioB,SAAAH,EAAA,MAKA9V,KAAA4P,YAAAmG,GACA/V,KAAAiQ,eAAA8F,EAAA5rB,OAEA6V,KAAAqL,qBACArL,KAAAkW,+BAGAxhB,IAAA,oBAAAvK,MAAA,SAAAulB,EAAA5hB,GACA,IAAAqoB,EAAAnW,KAAAoW,EAAAxnB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,IAAAA,UAAA,GAMA,GAAA8gB,GAAA5hB,GAAAkS,KAAA4K,OAAAjS,cAAAqH,KAAAqL,oBAAA,CAIA,IAAAgL,EAAAvoB,EAAAga,aAAA,WAKA4H,EAAAlK,QAAA,SAAA7P,GACAA,EAAA3H,KAAAioB,SAAAI,EAAA,KAAA1gB,EAAA2T,aAEA8M,GAAAzgB,EAAA2T,aACA6M,EAAA3G,gBAAA7Z,GAFAwgB,EAAA/a,cAAAzF,KAQAqK,KAAAtO,MAAA8e,YAEA9b,IAAA,sBACAvK,MAAA,SAAAulB,EAAA5hB,GACA,GAAA4hB,GAAA5hB,EAAA,CAKA,IAAAE,EAAAF,EAAAga,aAAA,WACAvN,EAAAyF,KAAA2L,OAAA2K,cAAAtoB,GAEAuoB,EAAA7G,EAAA,IAAAA,EAAA,GAAA8G,QAAA9G,EAAA,GAAA8G,QAAA,KACAC,EAAAzW,KAAA6J,SAAAuG,SAGA7V,EAAAic,QAAAD,EAEAvW,KAAAkL,cAAA+D,aAAA/E,EAAArP,OAAAN,OAAA,CADAA,YAKAA,KAAA2X,UAAA3X,EAAA2N,UACAlI,KAAA6T,YAAAnE,EAAAnV,EAAApQ,OAEA2pB,WACA9T,KAAA4V,SAAA,CACAzrB,MAAAoQ,EAAApQ,MACAD,MAAAqQ,EAAArQ,MACA2rB,SAAAtb,EAAAvM,GACA2b,QAAApP,EAAAoP,QACAxgB,iBAAAoR,EAAApR,iBACAyI,YAAA2I,EAAA3I,YAPA4kB,QAAAjc,EAAAic,UAWAxW,KAAAiQ,eAAA1V,EAAApQ,QAIA6V,KAAA0W,aAGAD,GAAAzW,KAAAqL,sBACArL,KAAAjF,cAAA,GACAiF,KAAAlJ,eAAA0Z,aAGA9b,IAAA,mBACAvK,MAAA,SAAAulB,GACA,GAAA1P,KAAA4K,OAAAjS,aAAA+W,EAAA,CAIA,IAAAiH,EAAAjH,IAAAjiB,OAAA,GAAAmpB,EAAAlH,EAAAha,KAAA,SAAAC,GAAA,OAAAA,EAAA2T,cAKAtJ,KAAA4K,OAAA/R,YAAA+d,GAAAD,GACA3W,KAAAtO,MAAAvH,MAAAwsB,EAAAxsB,MACA6V,KAAAtO,MAAAmlB,WACA7W,KAAA4P,YAAA+G,GACA3W,KAAAiQ,eAAA0G,EAAAxsB,SAEAysB,GAEA5W,KAAA5E,cAAAub,GAAA,GAEA3W,KAAA8W,wBAAA,QAGApiB,IAAA,sBAAAvK,MAAA,WACA,IAAA4sB,IAAAnoB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,KAAAA,UAAA,GACAooB,EAAAhX,KAAA2I,SAAAsO,SAAA,IAAAjX,KAAA4K,OAAAhQ,WAAAhJ,aAIAmlB,GACA/W,KAAAoO,UACApO,KAAAlJ,eAAAogB,kBAEAlX,KAAAqL,oBACA2L,EAOAA,EAAA1lB,UAAA0O,KAAA4K,OAAA7Q,aAHAid,EAAAhX,KAAAiU,aAAA,cAAAjU,KAAA4K,OAAA7Q,aACAiG,KAAA2I,SAAAoL,OAAAiD,IAKAhX,KAAAtO,MAAAE,YAAAoO,KAAA4K,OAAA7Q,cAGAiG,KAAA2O,SACA3O,KAAAlJ,eAAA6a,qBAEA3R,KAAAqL,oBACA2L,EAAA1lB,UAAA0O,KAAAsM,mBAAA,GAEAtM,KAAAtO,MAAAE,YAAAoO,KAAAsM,mBAAA,OAIA5X,IAAA,gBACAvK,MAAA,SAAAA,GACA,GAAAA,GAAA6V,KAAAtO,MAAAylB,WAAA,CAFA,IAAA7e,EAAA0H,KAAA2L,OAAArT,QAAA8e,EAAApX,KAAA4K,OAAAzR,EAAAie,EAAAje,YACAD,EAAAke,EAAAle,cAMAme,EAAA/e,EAAA5C,KAAA,SAAAsU,GAAA,OAAAA,EAAAZ,SAIA,GAAAjf,KAAAsD,QAAA0L,EAAA,CACA,IAAAme,EAAApe,EAAA8G,KAAAuX,eAAAptB,GAAA,EAEA6V,KAAAkL,cAAA+D,aAAA/E,EAAArP,OAAAI,OAAA,CACA9Q,QAFAmtB,qBAKAD,IAEArX,KAAAsS,cAAA,EACAtS,KAAA2L,OAAAxH,UAAA,EAAAiG,EAAAmI,kBAAA,SAGA7d,IAAA,cACAvK,MAAA,SAAAulB,EAAAvlB,GACA,IAAAypB,GAAA,EACA9J,GAAA,EAAAlT,EAAAxI,QAAA,WAAA4R,KAAA4K,OAAAxQ,aAAA4F,KAAA4K,OAAAxQ,YAAAjQ,GAAA6V,KAAA4K,OAAAxQ,YAIA,IAAA4F,KAAAqL,oBAAA,CACA,IAAAmM,GAAA,EAAA5gB,EAAApB,eAAAka,EAAAvlB,GAKA6V,KAAA4K,OAAAnS,aAAA,GAAAuH,KAAA4K,OAAAnS,cAAAiX,EAAAjiB,SAGAmmB,GAAA,EAGA9J,GAAA,EAAAlT,EAAAxI,QAAA,WAAA4R,KAAA4K,OAAAvQ,aAAA2F,KAAA4K,OAAAvQ,YAAA2F,KAAA4K,OAAAnS,cAAAuH,KAAA4K,OAAAvQ,aAQA2F,KAAA4K,OAAA7W,aAAAiM,KAAAoL,gBAAApL,KAAA4K,OAAAlS,UAAAkb,IAIAA,GAAA,EAAAhd,EAAA7C,aAAA5J,EAAA6V,KAAA4K,OAAA7W,eAOAiM,KAAA4K,OAAA9R,uBAAA0e,GAAA5D,IACAA,GAAA,EAGA9J,GAAA,EAAAlT,EAAAxI,QAAA,WAAA4R,KAAA4K,OAAAzQ,gBAAA6F,KAAA4K,OAAAzQ,eAAAhQ,GAAA6V,KAAA4K,OAAAzQ,gBAIA,OACA2Z,SAAAF,EAFA9J,aAMApV,IAAA,gBAAAvK,MAAA,WACA,IAAAstB,EAAAzX,KACA,gBAAA0X,EAAAvtB,EAAAD,GACA,GAAAwtB,GAAAvtB,EAAA,CAIA,IAAAwtB,GAAA,EAAA/gB,EAAAxI,QAAA,SAAAspB,GAAA,CAAAA,KAMAC,IAAA,EAAA/gB,EAAAxI,QAAA,QAAAupB,MAAAlqB,QAEAgqB,EAAAhF,qBAAA,GAEAkF,EAAAnS,QAAA,SAAAhD,GACAA,EAAAlK,QACAmf,EAAA5F,UAAA,CACAra,MAAAgL,EACAxU,GAAAwU,EAAAxU,IAAA,KACA8jB,SAAA3nB,EAJA4nB,SAAA7nB,IAQAutB,EAAAzF,WAAA,CACA7nB,OAAA,EAAAyM,EAAA7B,iBAAAyN,EAAArY,GACAD,OAAA,EAAA0M,EAAA7B,iBAAAyN,EAAAtY,GACA+nB,WAAAzP,EAAA0P,SACAxK,WAAAlF,EAAA0F,SACA/e,iBAAAqZ,EAAArZ,iBANAyI,YAAA4Q,EAAA5Q,gBAYA6lB,EAAApM,qBACAoM,EAAAvB,4BAIAuB,EAAAhF,qBAAA,QAIA/d,IAAA,iBACAvK,MAAA,SAAAA,GACA,IAAAytB,GAAA,EAAAhhB,EAAAxI,QAAA,SAAAjE,KAAAkH,OAAAlH,EACA0tB,GAAA,EAAAjhB,EAAAxI,QAAA,SAAA4R,KAAAiM,eAAAjM,KAAAiM,cAAA5a,OAAA2O,KAAAiM,cAIA,GAAA2L,EAAAnqB,OAAA,GAAAmqB,IAAAC,EAAA,IACA,SAIA,IAAAC,EAAA9X,KAAA2L,OAAAoM,kBACAC,EAAAJ,EACA1hB,EAAA,GAAAjL,OAAAmmB,EAAApR,KAAA4K,OAAAvR,eACAmV,EAAA/G,EAAAzH,KAAA4K,OAAApQ,YAAA,CAAAtE,SAEAwhB,EADA,IAAAO,EAAAlP,QAAA+O,EAAAtJ,GACAvT,OAAA+c,GAOA,OALAhY,KAAAiM,cAAA2L,EACA5X,KAAAoM,mBAAA,EACApM,KAAAsS,cAAA,EACAtS,KAAA2L,OAAAxH,UAAA,EAAAiG,EAAA8N,eAAAR,IAEAA,EAAAjqB,UAEAiH,IAAA,qBACAvK,MAAA,WACA8E,SAAAkpB,iBAAA,QAAAnY,KAAAiN,UACAhe,SAAAkpB,iBAAA,UAAAnY,KAAAkN,YACAje,SAAAkpB,iBAAA,QAAAnY,KAAAmN,UACAle,SAAAkpB,iBAAA,YAAAnY,KAAAoN,cACAne,SAAAkpB,iBAAA,WAAAnY,KAAAqN,aACApe,SAAAkpB,iBAAA,YAAAnY,KAAAsN,cACAre,SAAAkpB,iBAAA,YAAAnY,KAAAuN,cAEAvN,KAAAqL,sBACArL,KAAAlJ,eAAAhJ,QAAAqqB,iBAAA,QAAAnY,KAAA+M,UACA/M,KAAAlJ,eAAAhJ,QAAAqqB,iBAAA,OAAAnY,KAAAgN,UAGAhN,KAAAtO,MAAA5D,QAAAqqB,iBAAA,QAAAnY,KAAA+M,UACA/M,KAAAtO,MAAA5D,QAAAqqB,iBAAA,OAAAnY,KAAAgN,SAEAhN,KAAAtO,MAAA5D,QAAAsqB,MACApY,KAAAtO,MAAA5D,QAAAsqB,KAAAD,iBAAA,QAAAnY,KAAAwN,cAGAxN,KAAAtO,MAAA2mB,uBAEA3jB,IAAA,wBACAvK,MAAA,WACA8E,SAAAqpB,oBAAA,QAAAtY,KAAAiN,UACAhe,SAAAqpB,oBAAA,UAAAtY,KAAAkN,YACAje,SAAAqpB,oBAAA,QAAAtY,KAAAmN,UACAle,SAAAqpB,oBAAA,YAAAtY,KAAAoN,cACAne,SAAAqpB,oBAAA,WAAAtY,KAAAqN,aACApe,SAAAqpB,oBAAA,YAAAtY,KAAAsN,cACAre,SAAAqpB,oBAAA,YAAAtY,KAAAuN,cAEAvN,KAAAqL,sBACArL,KAAAlJ,eAAAhJ,QAAAwqB,oBAAA,QAAAtY,KAAA+M,UACA/M,KAAAlJ,eAAAhJ,QAAAwqB,oBAAA,OAAAtY,KAAAgN,UAGAhN,KAAAtO,MAAA5D,QAAAwqB,oBAAA,QAAAtY,KAAA+M,UACA/M,KAAAtO,MAAA5D,QAAAwqB,oBAAA,OAAAtY,KAAAgN,SAEAhN,KAAAtO,MAAA5D,QAAAsqB,MACApY,KAAAtO,MAAA5D,QAAAsqB,KAAAE,oBAAA,QAAAtY,KAAAwN,cAGAxN,KAAAtO,MAAA6mB,0BAEA7jB,IAAA,aAAAvK,MAAA,SAAAuJ,GACA,IAAA8kB,EADAzoB,EAAA2D,EAAA3D,OAAAymB,EAAA9iB,EAAA8iB,QAAAiC,EAAA/kB,EAAA+kB,QACAC,EAAAhlB,EAAAglB,QAMA,GAAA3oB,IAAAiQ,KAAAtO,MAAA5D,SAAAkS,KAAAlJ,eAAAhJ,QAAA8B,SAAAG,GAAA,CAIA,IAAA2f,EAAA1P,KAAA2L,OAAA+D,YACAiJ,EAAA3Y,KAAAtO,MAAAylB,WACAV,EAAAzW,KAAA6J,SAAAuG,SACAwI,EAAA5Y,KAAA2I,SAAAkQ,YACAC,EAAA/Y,OAAAgZ,aAAAvC,GAfAva,EAAAiO,EAAAlO,UAAAC,SAAAC,EAAAgO,EAAAlO,UAAAE,WAAAC,EAAA+N,EAAAlO,UAAAG,UAAAC,EAAA8N,EAAAlO,UAAAI,MAAAC,EAAA6N,EAAAlO,UAAAK,QAAAC,EAAA4N,EAAAlO,UAAAM,OAAAC,EAAA2N,EAAAlO,UAAAO,SAAAC,EAAA0N,EAAAlO,UAAAQ,YACAC,EAAAyN,EAAAlO,UAAAS,cA2BAuc,EAAAP,GAAAC,GAGA1Y,KAAAoL,gBAAA,iBAAAjX,KAAA2kB,IACA9Y,KAAAlF,eAIA,IAAAme,GAAAjQ,EAAAwP,EAAA,GAAApc,EAAA4D,KAAAyN,SAAAzE,EAAAwP,EAAArc,EAAA6D,KAAA0N,aAAA1E,EAAAwP,EAAAnc,EAAA2D,KAAA2N,cAAA3E,EAAAwP,EAAAlc,EAAA0D,KAAA4N,iBAAA5E,EAAAwP,EAAAhc,EAAAwD,KAAA4N,iBAAA5E,EAAAwP,EAAAjc,EAAAyD,KAAA4N,iBAAA5E,EAAAwP,EAAA/b,EAAAuD,KAAA4N,iBAAA5E,EAAAwP,EAAAtc,EAAA8D,KAAA6N,cAAA7E,EAAAwP,EAAAvc,EAAA+D,KAAA6N,cAAA2K,GAaAS,EAAAzC,IACAyC,EAAAzC,GAAA,CACAzmB,SACAymB,UACAkC,UACAhJ,cACAiJ,kBACAlC,oBACAmC,WARAI,8BAaAtkB,IAAA,WAAAvK,MAAA,SAAAmZ,GAAA,IAAAvT,EAAAuT,EAAAvT,OACAymB,EAAAlT,EAAAkT,QACA,GAAAzmB,IAAAiQ,KAAAtO,MAAA5D,QAAA,CAIA,IAAA3D,EAAA6V,KAAAtO,MAAAvH,MACAulB,EAAA1P,KAAA2L,OAAA+D,YACAkE,EAAA5T,KAAA6T,YAAAnE,EAAAvlB,GAIA,GAAA6V,KAAAoL,eACA,GAAAjhB,EAAA,CACA,GAAAypB,EAAA9J,OAAA,CACA,IAAAoK,EAAAlU,KAAAiU,aAAA,SAAAL,EAAA9J,QACA9J,KAAA6J,SAAA/b,QAAAwD,UAAA4iB,EAAAgF,WAGA,IAAAtF,EAAAE,SACA9T,KAAAlF,cAAA,GACA8Y,EAAA9J,QACA9J,KAAAjF,cAAA,QAGAiF,KAAAjF,cAAA,OAEA,CACA,IAAAoe,EAAAjP,EAAAlO,UAAAC,SACAmd,EAAAlP,EAAAlO,UAAAE,WAGAsa,IAAA2C,GAAA3C,IAAA4C,GAAArpB,EAAA5F,MAKA6V,KAAAkM,YAAA0H,EAAAE,UACA9T,KAAAqZ,cAAArZ,KAAAtO,MAAAvH,QALA6V,KAAAoL,gBAAApL,KAAAsS,eACAtS,KAAAsS,cAAA,EACAtS,KAAA2L,OAAAxH,UAAA,EAAAiG,EAAAmI,kBAAA,KAOAvS,KAAAkM,WAAAlM,KAAA4K,OAAA3R,kBAEAvE,IAAA,UAAAvK,MAAA,SAAAmvB,GAAA,IAAAV,EAAAU,EAAAV,SACAU,EAAAN,uBAEAJ,IACA5Y,KAAAkM,YAAA,EAKAlM,KAAA4K,OAAAjS,cAAAqH,KAAAtO,MAAAvH,OAAA6V,KAAAtO,MAAA5D,UAAAmB,SAAAsqB,eAEAvZ,KAAAwZ,mBAIA9kB,IAAA,cAAAvK,MAAA,SAAAsvB,GAAA,IAAA1pB,EAAA0pB,EAAA1pB,OAAA2f,EAAA+J,EAAA/J,YAAA+G,EAAAgD,EAAAhD,kBAEAiD,EAAAxP,EAAAlO,UAAAG,UAEA,GAAA6D,KAAAoL,gBAAArb,EAAA5F,MAAA,CACA,IAAAA,EAAA6V,KAAAtO,MAAAvH,MACA6V,KAAA6T,YAAAnE,EAAAvlB,GAGA2pB,WACA9T,KAAAjF,cAAA,GACAiF,KAAA4V,SAAA,CAAAzrB,UACA6V,KAAAiQ,eAAA9lB,GACA6V,KAAA0W,cASA,GALA3mB,EAAAC,aAAA,iBACAgQ,KAAA2Z,oBAAAjK,EAAA3f,GACA2D,MAAAkmB,kBAGAnD,EAAA,CACA,IAAAnN,EAAAtJ,KAAA6J,SAAAoN,SAAA,IAAAjX,KAAA4K,OAAAhQ,WAAA7C,kBAKAuR,IAEAoG,EAAA,KACAA,EAAA,GAAA8G,QAAAkD,GAEA1Z,KAAA6Z,oBAAAnK,EAAApG,IAGA5V,MAAAkmB,sBACA5Z,KAAAqL,sBAEArL,KAAAlF,eACApH,MAAAkmB,qBAGAllB,IAAA,eAAAvK,MAAA,SAAA2vB,GACAA,EAAArD,oBAEAzW,KAAAjF,cAAA,GACAiF,KAAAlJ,eAAA0Z,YAGA9b,IAAA,kBAAAvK,MAAA,SAAA4vB,GAAA,IAAAtD,EAAAsD,EAAAtD,kBAAAD,EAAAuD,EAAAvD,QAAAkC,EAAAqB,EAAArB,QAAAsB,EAAA9P,EAAAlO,UAAAO,SAAA0d,EAAA/P,EAAAlO,UAAAQ,YACA0d,EAAAhQ,EAAAlO,UAAAS,cAQA,GAAAga,GAAAzW,KAAAqL,oBAAA,CACArL,KAAAlF,eACAkF,KAAAkM,YAAA,EAGA,IAAAiO,EAAA3D,IAAAwD,GAAAxD,IAAA0D,EAAA,KAKAE,OAAA,EACA,GAJA1B,GAAAlC,IAAA0D,GAAA1D,IAAAyD,EAQAG,EAHAD,EAAA,EAGA5pB,MAAAC,KAAAwP,KAAA6J,SAAA/b,QAAA2C,iBAPA,6BAOA4pB,MAIAra,KAAA6J,SAAA/b,QAAAqd,cAXA,gCAaA,CAGA,IAAAmP,EAAAta,KAAA6J,SAAA/b,QAAAqd,cAAA,IAAAnL,KAAA4K,OAAAhQ,WAAA7C,kBAMAqiB,EALAE,GAKA,EAAA1jB,EAAA3G,eAAAqqB,EAtBA,2BAsBAH,GAIAna,KAAA6J,SAAA/b,QAAAqd,cA1BA,4BA8BAiP,KAKA,EAAAxjB,EAAAhG,oBAAAwpB,EAAApa,KAAAuJ,WAAAzb,QAAAqsB,IACAna,KAAAuJ,WAAAgR,eAAAH,EAAAD,GAEAna,KAAAgU,iBAAAoG,IAKA1mB,MAAAkmB,qBAGAllB,IAAA,eAAAvK,MAAA,SAAAqwB,GAAA,IAAAzqB,EAAAyqB,EAAAzqB,OAAA4oB,EAAA6B,EAAA7B,gBACAjJ,EAAA8K,EAAA9K,aAEAiJ,GAAA5oB,EAAA5F,OAAA6V,KAAAqL,sBACArL,KAAAya,iBAAA/K,GACAhc,MAAAkmB,qBAGAllB,IAAA,eACAvK,MAAA,YACA,IAAA6V,KAAAqM,UACArM,KAAAqM,SAAA,MAGA3X,IAAA,cACAvK,MAAA,SAAAuJ,GACA,IAAA3D,EAAA2D,EAAA3D,QAAA2D,EAAAgnB,QAAA,GAAA3qB,QAGA,IAAAiQ,KAAAqM,SAAArM,KAAAlJ,eAAAhJ,QAAA8B,SAAAG,MAGAA,IAAAiQ,KAAAlJ,eAAAhJ,SAAAiC,IAAAiQ,KAAAjJ,eAAAjJ,WAIAkS,KAAAqL,sBACArL,KAAAoL,eAEApL,KAAAtO,MAAA8e,QAGAxQ,KAAAlF,gBAIApH,EAAAinB,mBAGA3a,KAAAqM,SAAA,KAEA3X,IAAA,eAAAvK,MAAA,SAAAuJ,GAAA,IAAA3D,EAAA2D,EAAA3D,OAEA6qB,EAAAlnB,EAAAknB,SASA,GAPA7qB,IAAAiQ,KAAAuJ,aAAA,EAAA3S,EAAAxB,YACA4K,KAAAmM,kBAAA,GAMAnM,KAAAlJ,eAAAhJ,QAAA8B,SAAAG,QAAAiQ,KAAAtO,MAAA5D,QAAA,CAIA,IAAA4hB,EAAA1P,KAAA2L,OAAA+D,YACA0G,EAAAwE,EAEAC,GAAA,EAAAjkB,EAAA/G,wBAAAE,EAAA,eACA+qB,GAAA,EAAAlkB,EAAA/G,wBAAAE,EAAA,aACAgrB,GAAA,EAAAnkB,EAAA/G,wBAAAE,EAAA,eAEA8qB,EACA7a,KAAA2Z,oBAAAjK,EAAAmL,GACAC,EACA9a,KAAAgb,kBAAAtL,EAAAoL,EAAA1E,GACA2E,GACA/a,KAAA6Z,oBAAAnK,EAAAqL,GAGArnB,EAAAkmB,qBAEAllB,IAAA,eAAAvK,MAAA,SAAA8wB,GACA,IAAAlrB,EAAAkrB,EAAAlrB,QAEAA,IAAAiQ,KAAA6J,UAAA7J,KAAA6J,SAAA/b,QAAA8B,SAAAG,KACAA,EAAAC,aAAA,gBAIAgQ,KAAAgU,iBAAAjkB,MAGA2E,IAAA,WAAAvK,MAAA,SAAA+wB,GACA,IAAAnrB,EAAAmrB,EAAAnrB,OACAiQ,KAAAlJ,eAAAhJ,QAAA8B,SAAAG,GACAiQ,KAAA6J,SAAAuG,UAAApQ,KAAAlJ,eAAA4Q,WAaA1H,KAAAqL,qBAAAtb,IAAAiQ,KAAAtO,MAAA5D,UAAAkS,KAAA6J,SAAA/b,QAAA8B,SAAAG,IACAiQ,KAAAjF,eAbAiF,KAAAoL,eACAnc,SAAAsqB,gBAAAvZ,KAAAtO,MAAA5D,SACAkS,KAAAtO,MAAA8e,SAGAxQ,KAAAlF,eACAkF,KAAAlJ,eAAA0Z,UAUAxQ,KAAA2L,OAAAqE,wBAGAhQ,KAAAmb,iBAGAnb,KAAAlJ,eAAAskB,mBACApb,KAAAjF,cAAA,OAGArG,IAAA,WAAAvK,MAAA,SAAAkxB,GACA,IAAAC,EAAAtb,KAAAjQ,EAAAsrB,EAAAtrB,OACAiQ,KAAAlJ,eAAAhJ,QAAA8B,SAAAG,IAIA,CACArF,KAAA,WACAqF,IAAAurB,EAAA5pB,MAAA5D,SACAwtB,EAAAxkB,eAAAykB,iBAGAC,aAAA,WACAF,EAAAxkB,eAAAykB,gBACAxrB,IAAAurB,EAAA5pB,MAAA5D,SACAwtB,EAAAxgB,cAAA,IAGA2gB,kBAAA,WACA1rB,IAAAurB,EAAA5pB,MAAA5D,UACAwtB,EAAAxgB,cAAA,GAGAwgB,EAAAxkB,eAAAykB,mBAKAvb,KAAAkL,cAAApd,QAAAO,WAEAqG,IAAA,UAAAvK,MAAA,SAAAuxB,GACA,IAAAC,EAAA3b,KAAAjQ,EAAA2rB,EAAA3rB,OAKA,GAAAiQ,KAAAlJ,eAAAhJ,QAAA8B,SAAAG,KAAAiQ,KAAAmM,iBAAA,CACA,IAAAyK,EAAA5W,KAAA2L,OAAA+D,YAAAha,KAAA,SAAAC,GAAA,OAAAA,EAAA2T,eAEA,CACA5e,KAAA,WACAqF,IAAA4rB,EAAAjqB,MAAA5D,UACA6tB,EAAA7kB,eAAAskB,mBACAxE,GACA+E,EAAAR,iBAEAQ,EAAA5gB,cAAA,KAGAygB,aAAA,WACAG,EAAA7kB,eAAAskB,oBAIArrB,IAAA4rB,EAAAjqB,MAAA5D,SAAAiC,IAAA4rB,EAAA7kB,eAAAhJ,UAAA6tB,EAAAzP,aACAyP,EAAA5gB,cAAA,IAGA0gB,kBAAA,WACA1rB,IAAA4rB,EAAAjqB,MAAA5D,UACA6tB,EAAA7kB,eAAAskB,mBACAO,EAAA5gB,cAAA,GACA6b,GACA+E,EAAAR,qBAMAnb,KAAAkL,cAAApd,QAAAO,aAKA2R,KAAAmM,kBAAA,EACAnM,KAAAtO,MAAA5D,QAAA0iB,WAGA9b,IAAA,eACAvK,MAAA,WACA6V,KAAA2L,OAAAxH,UAAA,EAAAoG,EAAAqR,SAAA5b,KAAA8L,mBAEApX,IAAA,mBAAAvK,MAAA,WACA,IAAA0xB,EAAA7b,KAAAxQ,EAAAZ,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,QACA0J,EAAA/H,MAAAC,KAAAwP,KAAA6J,SAAA/b,QAAA2C,iBAAA,6BAIA,GAAA6H,EAAA7K,OAAA,CAIA,IAAAquB,EAAAtsB,EACAe,MAAAC,KAAAwP,KAAA6J,SAAA/b,QAAA2C,iBAAA,IAAAuP,KAAA4K,OAAAhQ,WAAA7C,mBAOAyN,QAAA,SAAAjL,GACAA,EAAA5K,UAAAqY,OAAA6T,EAAAjR,OAAAhQ,WAAA7C,kBACAwC,EAAAwN,aAAA,2BAGA+T,EACA9b,KAAAoM,mBAAA9T,EAAA3H,QAAAmrB,IAKAA,EAFAxjB,EAAA7K,OAAAuS,KAAAoM,mBAEA9T,EAAA0H,KAAAoM,oBAGA9T,IAAA7K,OAAA,MAIAquB,EAAAxjB,EAAA,IAIAwjB,EAAAnsB,UAAAgY,IAAA3H,KAAA4K,OAAAhQ,WAAA7C,kBACA+jB,EAAA/T,aAAA,wBACA/H,KAAAkL,cAAA+D,aAAA/E,EAAArP,OAAAQ,gBAAA,CAAA7L,GAAAssB,IAEA9b,KAAA6J,SAAAuG,WAGApQ,KAAAtO,MAAAqqB,oBAAAD,EAAA9tB,IACAgS,KAAAlJ,eAAAilB,oBAAAD,EAAA9tB,SAWA0G,IAAA,WAAAvK,MAAA,SAAA6xB,GAAA,IAAA7xB,EAAA6xB,EAAA7xB,MAAA8xB,EAAAD,EAAA9xB,aAAAmB,IAAA4wB,EAAA,KAAAA,EAAAC,EAAAF,EAAAnG,gBAAAxqB,IAAA6wB,GAAA,EAAAA,EAAAC,EAAAH,EAAArS,eAAAte,IAAA8wB,GAAA,EAAAA,EAAAC,EAAAJ,EAAA7yB,wBAAAkC,IAAA+wB,EAAA,KAAAA,EAAAC,EAAAL,EAAApqB,mBAAAvG,IAAAgxB,KAAAC,EAAAN,EAAAxF,QACAA,OAAAnrB,IAAAixB,EAAA,KAAAA,EACAC,GAAA,EAAA3lB,EAAAxI,QAAA,SAAAjE,KAAAkH,OAAAlH,EAEAosB,EAAAC,EACAgG,EAAArzB,EACAsL,EAAAuL,KAAA2L,OAAAlX,MACAgoB,EAAAvyB,GAAAqyB,EACAG,EAAAzG,SAAAJ,EAAA,QACAre,EAAAmS,GAAA,EAAA3J,KAAA2L,OAAAqD,aAAArF,GAAA,KACA3b,EAAAyG,IAAAhH,OAAA,IAiDA,OA9CAuS,KAAA4K,OAAAhR,eACA2iB,EAAAvc,KAAA4K,OAAAhR,aAAA2iB,EAAA5uB,YAIAqS,KAAA4K,OAAA/Q,cACA0iB,GAAAvc,KAAA4K,OAAA/Q,YAAAlM,YAIAqS,KAAA2L,OAAAxH,UAAA,EAAAkG,EAAAnP,SAAA,CACA/Q,MAAAoyB,EACAryB,MAAAuyB,EACAzuB,KACA6nB,SAAA6G,EACA/S,UACAxgB,mBACAyI,cARA4kB,QAAAD,KAaAvW,KAAAqL,qBACArL,KAAA2c,kBAAA3uB,GAIAwJ,KAAArN,MACA6V,KAAAkL,cAAA+D,aAAA/E,EAAArP,OAAAK,QAAA,CACAlN,KACA7D,MAAAoyB,EACAryB,MAAAuyB,EACAtzB,iBAAAqzB,EACAtN,WAAA1X,EAAArN,MANAqsB,QAAAD,IAUAvW,KAAAkL,cAAA+D,aAAA/E,EAAArP,OAAAK,QAAA,CACAlN,KACA7D,MAAAoyB,EACAryB,MAAAuyB,EACAtzB,iBAAAqzB,EALAhG,QAAAD,IAUAvW,QAEAtL,IAAA,cACAvK,MAAA,SAAAwL,GACA,IAAAA,KAAA,EAAAiB,EAAAxI,QAAA,SAAAuH,GACA,OAAAqK,KAHA,IAAAhS,EAAA2H,EAAA3H,GAAA7D,EAAAwL,EAAAxL,MAAAD,EAAAyL,EAAAzL,MAAA2rB,EAAAlgB,EAAAkgB,SACAlM,EAAAhU,EAAAgU,QAMAnS,EAAAmS,GAAA,EAAA3J,KAAA2L,OAAAqD,aAAArF,GAAA,KAmBA,OAjBA3J,KAAA2L,OAAAxH,UAAA,EAAAkG,EAAAlP,YAAAnN,EAAA6nB,IAEAre,KAAArN,MACA6V,KAAAkL,cAAA+D,aAAA/E,EAAArP,OAAAM,WAAA,CACAnN,KACA7D,QACAD,QAJAglB,WAAA1X,EAAArN,QAQA6V,KAAAkL,cAAA+D,aAAA/E,EAAArP,OAAAM,WAAA,CACAnN,KACA7D,QAHAD,UAQA8V,QAWAtL,IAAA,aAAAvK,MAAA,SAAAyyB,GAAA,IAAAzyB,EAAAyyB,EAAAzyB,MAAA0yB,EAAAD,EAAA1yB,aAAAmB,IAAAwxB,EAAA,KAAAA,EAAAC,EAAAF,EAAA3K,kBAAA5mB,IAAAyxB,KAAAC,EAAAH,EAAAlV,kBAAArc,IAAA0xB,KAAAC,EAAAJ,EAAAjT,eAAAte,IAAA2xB,GAAA,EAAAA,EAAAC,EAAAL,EAAAzzB,wBAAAkC,IAAA4xB,EAAA,KAAAA,EAAAC,EAAAN,EAAAhrB,mBAAAvG,IAAA6xB,KAAAC,EAAAP,EAAApG,QACAA,OAAAnrB,IAAA8xB,EAAA,KAAAA,EACA,SAAAhzB,EAAA,CAKA,IAAAmO,EAAA0H,KAAA2L,OAAArT,QACA8kB,EAAAlzB,GAAAC,EACA0rB,EAAAvd,IAAA7K,OAAA,IACA4vB,EAAArd,KAAAwM,QAAA,IAAAxM,KAAA0M,SAAAnV,WAAA,IAAAse,EAKA7V,KAAA2L,OAAAxH,UAAA,EAAAiG,EAAAkT,WAAA,CACAnzB,QACAD,MAAAkzB,EACApvB,GAAA6nB,EACAlM,UACAzB,SAAAR,EACAkC,UAAAyT,EACAl0B,mBACAyI,cATA4kB,aAcAvE,GACAjS,KAAA4V,SAAA,CACAzrB,QACAD,MAAAkzB,EACAvH,WACA1sB,mBACAyI,cANA4kB,gBAWA9hB,IAAA,gBACAvK,MAAA,WACA6V,KAAA2L,OAAAxH,UAAA,EAAAiG,EAAAmT,oBAEA7oB,IAAA,YAAAvK,MAAA,SAAAqzB,GACA,IAAAC,EAAAzd,KADAxI,EAAAgmB,EAAAhmB,MAAAxJ,EAAAwvB,EAAAxvB,GAAA0vB,EAAAF,EAAA1L,gBAAAzmB,IAAAqyB,EAAA,QAAAA,EAAAC,EAAAH,EAAAzL,SACAA,OAAA1mB,IAAAsyB,EAAA,QAAAA,EAGAnJ,GAAA,EAAA5d,EAAAxI,QAAA,SAAAoJ,KAAAc,QAAA/H,MAAAC,KAAAgH,EAAAomB,qBAAA,WACAjU,EAAA3b,GAAAX,KAAAC,OAAA,IAAAuwB,MAAAC,UAAAzwB,KAAAE,UACAma,IAAAlQ,EAAA0Q,UAAA1Q,EAAA0Q,SAEAsM,GACAxU,KAAA2L,OAAAxH,UAAA,EAAAmG,EAAAyT,UAAAvmB,EAAAtN,MAAAyf,GAAA,EAAAjC,IAiBA8M,EAAAhP,QAfA,SAAAjL,GACA,IAAAyjB,EAAAzjB,EAAA2N,UAAA3N,EAAAnL,YAAAmL,EAAAnL,WAAA8Y,SAGAuV,EAAAzL,WAAA,CACA7nB,MAAAoQ,EAAAuX,GACA5nB,OAAA,EAAA0M,EAAAxI,QAAA,SAAAmM,KAAAwX,GAAAxX,EAAAjJ,UACA2gB,WAAA1X,EAAA2X,SACAxK,WAAAsW,EACArU,UACAxgB,iBAAAoR,EAAApR,iBAPAyI,YAAA2I,EAAA3I,iBAgBAoO,KAAA2L,OAAAxH,UAAA,EAAAmG,EAAAyT,UAAAvmB,EAAAtN,MAAAsN,EAAAxJ,IAAA,EAAAwJ,EAAA0Q,cAGAxT,IAAA,eAAAvK,MAAA,SAAA1B,GACA,IAAAw1B,EACA,IAAAx1B,EACA,YAHA,QAAAy1B,EAAAle,KAAA4K,OAAA8D,EAAAwP,EAAAxP,UACA9T,EAAAsjB,EAAAtjB,WADA4L,EAAA5X,UAAAnB,OAAAyjB,EAAA3gB,MAAAiW,EAAA,EAAAA,EAAA,KAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAAAoL,EAAApL,EAAA,GAAAlX,UAAAkX,GAOA,OAAAmY,EAAAvP,EAAAjmB,IAAAc,KAAAsV,MAAAof,EAAA,CAAAje,KAAApF,GAAA3P,OAAAimB,OAEAxc,IAAA,mBAAAvK,MAAA,WACA,IAAAwQ,EAAAqF,KAAA4K,OAAAjQ,0BAEAwjB,EAAA,GAKAxjB,IAAA,EAAA/D,EAAAxI,QAAA,WAAAuM,KACAwjB,EAAAxjB,EAAApR,KAAAyW,KAAApJ,EAAA3F,UAGA+O,KAAA4K,OAAA8D,WAAA,EAAA9X,EAAAlI,QAAAyb,EAAA/B,UAAA+V,MAEAzpB,IAAA,kBACAvK,MAAA,WACA6V,KAAAlJ,eAAA,IAAAmT,EAAAmU,UAAA,CAQAtwB,QAAAkS,KAAAiU,aAAA,iBAAAjU,KAAAyM,WAAAzM,KAAAuL,iBAAAvL,KAAAqL,oBAAArL,KAAA4K,OAAA3R,cAAA+G,KAAAkL,cAAApd,QAAAO,MACAuM,WAAAoF,KAAA4K,OAAAhQ,WACAvM,KAAA2R,KAAAkL,cAAApd,QAAAO,KAXA4D,SAAA+N,KAAA4K,OAAA3Y,WAeA+N,KAAAjJ,eAAA,IAAAkT,EAAAmU,UAAA,CACAtwB,QAAAkS,KAAAiU,aAAA,kBACArZ,WAAAoF,KAAA4K,OAAAhQ,WACAvM,KAAA2R,KAAAkL,cAAApd,QAAAO,KAJA4D,SAAA+N,KAAA4K,OAAA3Y,WAQA+N,KAAAtO,MAAA,IAAAuY,EAAAoU,MAAA,CACAvwB,QAAAkS,KAAAiU,aAAA,SACArZ,WAAAoF,KAAA4K,OAAAhQ,WAHAvM,KAAA2R,KAAAkL,cAAApd,QAAAO,OAOA2R,KAAAuJ,WAAA,IAAAU,EAAAqU,KAAA,CADAxwB,QAAAkS,KAAAiU,aAAA,aAAAjU,KAAAqL,uBAKArL,KAAA2I,SAAA,IAAAsB,EAAAqU,KAAA,CADAxwB,QAAAkS,KAAAiU,aAAA,WAAAjU,KAAAqL,uBAKArL,KAAA6J,SAAA,IAAAI,EAAAsU,SAAA,CACAzwB,QAAAkS,KAAAiU,aAAA,YACArZ,WAAAoF,KAAA4K,OAAAhQ,WAHAvM,KAAA2R,KAAAkL,cAAApd,QAAAO,UAOAqG,IAAA,mBACAvK,MAAA,WAEA6V,KAAAkL,cAAAsT,UAEAxe,KAAAjJ,eAAAhI,KAAAiR,KAAAkL,cAAApd,SAEAkS,KAAAlJ,eAAA/H,KAAAiR,KAAAjJ,eAAAjJ,SAEAkS,KAAAqL,oBACArL,KAAAtO,MAAAE,YAAAoO,KAAA4K,OAAAjR,wBAAA,GACAqG,KAAAsM,oBACAtM,KAAAtO,MAAAE,YAAAoO,KAAAsM,kBACAtM,KAAAtO,MAAAmlB,UAAA,IAGA7W,KAAAlJ,eAAAhJ,QAAAwB,YAAA0Q,KAAAjJ,eAAAjJ,SACAkS,KAAAlJ,eAAAhJ,QAAAwB,YAAA0Q,KAAA6J,SAAA/b,SACAkS,KAAAjJ,eAAAjJ,QAAAwB,YAAA0Q,KAAA2I,SAAA7a,SAEAkS,KAAAoL,gBACApL,KAAA6J,SAAA/b,QAAAwB,YAAA0Q,KAAAuJ,WAAAzb,SAGAkS,KAAAqL,oBAEArL,KAAA4K,OAAA3R,eAIA+G,KAAA6J,SAAA/b,QAAAuB,aAAA2Q,KAAAtO,MAAA5D,QAAAkS,KAAA6J,SAAA/b,QAAAyD,YALAyO,KAAAjJ,eAAAjJ,QAAAwB,YAAA0Q,KAAAtO,MAAA5D,SAQAkS,KAAAuL,iBACAvL,KAAAye,wBACAze,KAAAoL,gBACApL,KAAA0e,yBAGAhqB,IAAA,wBAAAvK,MAAA,WACA,IAAAw0B,EAAA3e,KACA4e,EAAA5e,KAAAkL,cAAA2T,aAKA,GAHA7e,KAAAoM,mBAAA,EACApM,KAAAsS,cAAA,EAEAsM,KAAAnxB,OAAA,CAEA,IAAAkoB,EAAA3V,KAAAkL,cAAA4T,kBAIAnJ,GAAA,WAAAA,EAAAvmB,WAAA2vB,SACA/e,KAAAgS,WAAA,CACA7nB,MAAAwrB,EAAAxrB,MACAD,MAAAyrB,EAAArkB,UACA2gB,WAAA0D,EAAAzD,SACAxK,WAAAiO,EAAAzN,SALAtW,aAAA,IASAgtB,EAAApZ,QAAA,SAAAhO,GAEA,OAAAmnB,EAAA9M,UAAA,CACAra,QAFAxJ,GAAAwJ,EAAAxJ,IAAA,aAMA,CACA,IAAAgxB,EAAAhf,KAAAkL,cAAAsD,QACAmB,EAAA3P,KAAA4K,OAAAnR,OACAwlB,EAAAjf,KAAA2M,eAGAqS,EAAAxZ,QAAA,SAAAzZ,GACAkzB,EAAAnqB,KAAA,CACA3K,MAAA4B,EAAA5B,MACAD,MAAA6B,EAAAuF,UACA4gB,SAAAnmB,EAAAmmB,SACAhK,SAAAnc,EAAAmc,UAAAnc,EAAAqD,WAAA8Y,SALAtW,YAAA7F,EAAAiE,aAAA,mBAWAgQ,KAAA4K,OAAArR,YACA0lB,EAAA9oB,KAAAwZ,GAGA,IAAAuP,EAAAD,EAAAvpB,KAAA,SAAA6E,GAAA,OAAAA,EAAA2X,WA0CA+M,EAAAzZ,QAAA,SAAAjL,EAAAtF,GAAA,OAzCA,SAAAsF,EAAAtF,GAAA,IAAA9K,EAAAoQ,EAAApQ,MAAAD,EAAAqQ,EAAArQ,MAAAf,EAAAoR,EAAApR,iBACAyI,EAAA2I,EAAA3I,YAGA,GAAA+sB,EAAApT,iBAEA,GAAAhR,EAAAjC,QACAqmB,EAAA9M,UAAA,CACAra,MAAA+C,EAFAvM,GAAAuM,EAAAvM,IAAA,WAKA,CAKA,IAAAmxB,EAAAR,EAAAtT,sBAAA6T,GAAA,IAAAjqB,EACAgd,IAAAkN,GAAA5kB,EAAA2X,SACAxK,GAAAyX,GAAA5kB,EAAA2N,SAEAyW,EAAA3M,WAAA,CACA7nB,QACAD,QACA+nB,aACAvK,aACAve,mBANAyI,qBAWA+sB,EAAA3M,WAAA,CACA7nB,QACAD,QACA+nB,WAAA1X,EAAA2X,SACAxK,WAAAnN,EAAA2N,SACA/e,mBANAyI,gBAYAwtB,CAAA7kB,EAAAtF,SAIAP,IAAA,sBAAAvK,MAAA,WACA,IAAAk1B,EAAArf,KAiBAA,KAAA4M,aAAApH,QAAA,SAAA7P,GAAA,OAhBA,SAAAA,GACA,IAAA2pB,GAAA,EAAA1oB,EAAAhJ,SAAA+H,GACA,WAAA2pB,GAAA3pB,EAAAxL,MACAk1B,EAAAzJ,SAAA,CACAzrB,MAAAwL,EAAAxL,MACAD,MAAAyL,EAAAzL,MACA2rB,SAAAlgB,EAAA3H,GACA7E,iBAAAwM,EAAAxM,iBALAyI,YAAA+D,EAAA/D,cAQA,WAAA0tB,GACAD,EAAAzJ,SAAA,CADAzrB,MAAAwL,IAMA4pB,CAAA5pB,QAGAjB,IAAA,mBAAAvK,MAAA,SAAAwL,GACA,IAAA6pB,EAAAxf,MAEA,CACAzT,OAAA,WACAoJ,EAAAxL,QAMAq1B,EAAApU,eAUAoU,EAAA5J,SAAA,CACAzrB,MAAAwL,EAAAxL,MACAD,MAAAyL,EAAAzL,MACA2rB,SAAAlgB,EAAA3H,GACA7E,iBAAAwM,EAAAxM,iBALAyI,YAAA+D,EAAA/D,cARA4tB,EAAAxN,WAAA,CACA7nB,MAAAwL,EAAAxL,MACAD,MAAAyL,EAAAzL,MACA+nB,YAAA,EACAvK,YAAA,EACAve,iBAAAwM,EAAAxM,iBANAyI,YAAA+D,EAAA/D,gBAmBA6tB,OAAA,WACAD,EAAApU,eAQAoU,EAAA5J,SAAA,CADAzrB,MAAAwL,IANA6pB,EAAAxN,WAAA,CACA7nB,MAAAwL,EACAzL,MAAAyL,EACAsc,YAAA,EAJAvK,YAAA,QA7BA,EAAA9Q,EAAAhJ,SAAA+H,GAAAvC,oBA8CAsB,IAAA,8BAAAvK,MAAA,SAAAwV,GACA,IAAA+f,EAAA1f,KAEA2f,EADA3f,KAAA2L,OAAArT,QACA0d,KAAA,SAAAzb,GAAA,OAAAmlB,EAAA9U,OAAAtQ,aAAAC,EAAApQ,MAAAwV,KAKAggB,MAAAzN,UACAlS,KAAA4V,SAAA,CACAzrB,MAAAw1B,EAAAx1B,MACAD,MAAAy1B,EAAAz1B,MACA8D,GAAA2xB,EAAA3xB,GACA2b,QAAAgW,EAAAhW,QACAxgB,iBAAAw2B,EAAAx2B,iBACAyI,YAAA+tB,EAAA/tB,YAPA4kB,QAAAmJ,EAAAnJ,aAYA9hB,IAAA,qBACAvK,MAAA,SAAAugB,EAAAE,GAEA,OAAAF,EAAA/V,OAAA,SAAAirB,EAAA9xB,GAEA,OADA8xB,EAAA9qB,KAAA,IAAA0V,EAAA1c,EAAA8c,IACAgV,GAGA,CAAA5f,UAEAtL,IAAA,4BACAvK,MAAA,WACA,OAAA6V,KAAAqL,uBAOArL,KAAA4K,OAAAhZ,cAAAoO,KAAA4K,OAAAlR,kBAAAsG,KAAAkL,cAAApd,QAAAga,aAAA,sBA1+DA,GAg/DA0C,EAAAO,aAAA;;;;;;;;;ACthEA,IAAA5f,IASA,WACA,gBAAAG,GAEA,IAAAC,EAAA,GAGA,SAAAjD,EAAAkD,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAAhD,QAGA,IAAAD,EAAAgD,EAAAC,GAAA,CACAC,EAAAD,EACAE,GAAA,EACAlD,QAAA,IAUA,OANA8C,EAAAE,GAAAjC,KAAAhB,EAAAC,QAAAD,IAAAC,QAAAF,GAGAC,EAAAmD,GAAA,EAGAnD,EAAAC,QAwCA,OAnCAF,EAAAqD,EAAAL,EAGAhD,EAAAsD,EAAAL,EAGAjD,EAAAmD,EAAA,SAAAtB,GAAA,OAAAA,GAGA7B,EAAAuD,EAAA,SAAArD,EAAAiB,EAAAqC,GACAxD,EAAAyD,EAAAvD,EAAAiB,IACAuC,OAAAC,eAAAzD,EAAAiB,EAAA,CACAyC,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAxD,EAAA+D,EAAA,SAAA9D,GACA,IAAAuD,EAAAvD,KAAA+D,WACA,kBAAA/D,EAAA,SACA,kBAAAA,GAEA,OADAD,EAAAuD,EAAAC,EAAA,IAAAA,GACAA,GAIAxD,EAAAyD,EAAA,SAAAQ,EAAAC,GAAA,OAAAR,OAAAS,UAAAC,eAAAnD,KAAAgD,EAAAC,IAGAlE,EAAAqE,EAAA,GAGArE,IAAAu3B,EAAA,GAjEA,CAoEA,CAEA,SAAAt3B,EAAAC,EAAAF,GAKAC,EAAAC,QAAA,SAAA0F,GACA,OAAAqC,MAAAuvB,QAAAvvB,MAAAuvB,QAAA5xB,GAAA,mBAAAlC,OAAAS,UAAAkB,SAAApE,KAAA2E,KAKA,SAAA3F,EAAAC,EAAAF,GAKA,IAAAy3B,EAAA,oBAAAC,EAAAjwB,EAAAkwB,GAAA,QAAAx0B,EAAA,EAAAA,EAAAw0B,EAAAxyB,OAAAhC,IAAA,KAAAy0B,EAAAD,EAAAx0B,GAAAy0B,EAAA/zB,WAAA+zB,EAAA/zB,aAAA,EAAA+zB,EAAAh0B,cAAA,YAAAg0B,MAAAzhB,UAAA,GAAAzS,OAAAC,eAAA8D,EAAAmwB,EAAAxrB,IAAAwrB,IAAA,gBAAAC,EAAAC,EAAAC,GAAA,OAAAD,GAAAJ,EAAAG,EAAA1zB,UAAA2zB,GAAAC,GAAAL,EAAAG,EAAAE,GAAAF,GAAA,GAIAG,EAAAh4B,EAAA,GACAi4B,EAAAj4B,EAAA,GACAk4B,EAAAl4B,EAAA,GAEAm4B,EAAA,WACA,SAAAA,EAAAC,EAAAhc,GACA,IAAAic,EAAAjc,EAAAkc,SACAA,OAAAv1B,IAAAs1B,EAAA,EAAAA,EACAE,EAAAnc,EAAAoc,SACAA,OAAAz1B,IAAAw1B,EAAA,IAAAA,EACAE,EAAArc,EAAAsc,UACAA,OAAA31B,IAAA01B,EAAA,GAAAA,EACAE,EAAAvc,EAAAwc,iBACAA,OAAA71B,IAAA41B,EAAA,GAAAA,EACAE,EAAAzc,EAAA0c,gBACAA,OAAA/1B,IAAA81B,KACAE,EAAA3c,EAAA4c,eACAA,OAAAj2B,IAAAg2B,EAAA,MAAAA,EACAE,EAAA7c,EAAA8c,eACAA,OAAAn2B,IAAAk2B,KACAE,EAAA/c,EAAAgd,mBACAA,OAAAr2B,IAAAo2B,EAAA,EAAAA,GAvBA,SAAAE,EAAAxB,GAAA,KAAAwB,aAyBAlB,GAzBA,UAAAriB,UAAA,qCAyBAoJ,CAAAxH,MAEAA,KAAAwO,QAAA,CACAoS,WACAE,WACAE,YACAE,mBACAE,kBACAE,iBACAE,iBACAE,sBAGA1hB,KAAA0gB,QAAA1gB,KAAAwO,QAAA4S,gBAAAV,IAAAttB,cAEA4M,KAAA0gB,QAAAjzB,QAAAyzB,IACAlhB,KAAAwgB,kBAAAxgB,KAAA0gB,UA+CA,OA3CAX,EAAAU,EAAA,EACA/rB,IAAA,SACAvK,MAAA,SAAAO,GAMA,GALAsV,KAAAwO,QAAA4S,kBACA12B,IAAA0I,eAIA4M,KAAA0gB,UAAAh2B,EACA,OACAk3B,SAAA,EACAruB,MAAA,EACAsuB,eAAA,IAAAn3B,EAAA+C,OAAA,KAKA,IAAAq0B,EAAA9hB,KAAAwO,QACA0S,EAAAY,EAAAZ,iBACAI,EAAAQ,EAAAR,eAEA,GAAAthB,KAAA0gB,QAAAjzB,OAAAyzB,EACA,OAAAZ,EAAA51B,EAAAsV,KAAA0gB,QAAAY,GAIA,IAAAS,EAAA/hB,KAAAwO,QACAoS,EAAAmB,EAAAnB,SACAE,EAAAiB,EAAAjB,SACAE,EAAAe,EAAAf,UACAQ,EAAAO,EAAAP,eACAE,EAAAK,EAAAL,mBAEA,OAAAnB,EAAA71B,EAAAsV,KAAA0gB,QAAA1gB,KAAAwgB,gBAAA,CACAI,WACAE,WACAE,YACAQ,iBACAE,2BAKAjB,EAlFA,GAyFAl4B,EAAAC,QAAAi4B,GAIA,SAAAl4B,EAAAC,EAAAF,GAKA,IAAAw3B,EAAAx3B,EAAA,GAoCAC,EAAAC,QAAA,SAAA0F,EAAA8G,GACA,OAnCA,SAAAgtB,EAAA9zB,EAAA8G,EAAAiC,GACA,GAAAjC,EAGA,CACA,IAAAitB,EAAAjtB,EAAArE,QAAA,KACAuxB,EAAAltB,EACAmtB,EAAA,MAEA,IAAAF,IACAC,EAAAltB,EAAA7G,MAAA,EAAA8zB,GACAE,EAAAntB,EAAA7G,MAAA8zB,EAAA,IAGA,IAAA93B,EAAA+D,EAAAg0B,GAEA,GAAA/3B,QACA,GAAAg4B,GAAA,iBAAAh4B,GAAA,iBAAAA,EAEA,GAAA21B,EAAA31B,GAEA,QAAAsB,EAAA,EAAA22B,EAAAj4B,EAAAsD,OAAAhC,EAAA22B,EAAA32B,GAAA,EACAu2B,EAAA73B,EAAAsB,GAAA02B,EAAAlrB,QAEAkrB,GAEAH,EAAA73B,EAAAg4B,EAAAlrB,QARAA,EAAAnC,KAAA3K,EAAAwD,iBAfAsJ,EAAAnC,KAAA5G,GA4BA,OAAA+I,EAIA+qB,CAAA9zB,EAAA8G,EAAA,MAKA,SAAAzM,EAAAC,EAAAF,GAKAC,EAAAC,QAAA,WASA,IARA,IAAA65B,EAAAzzB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,MACA8yB,EAAA9yB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,KAEAizB,EAAA,GACAS,GAAA,EACAC,GAAA,EACA92B,EAAA,EAEA22B,EAAAC,EAAA50B,OAAAhC,EAAA22B,EAAA32B,GAAA,GACA,IAAA8J,EAAA8sB,EAAA52B,GACA8J,IAAA,IAAA+sB,EACAA,EAAA72B,EACA8J,IAAA,IAAA+sB,KACAC,EAAA92B,EAAA,GACA62B,EAAA,GAAAZ,GACAG,EAAA/sB,KAAA,CAAAwtB,EAAAC,IAEAD,GAAA,GASA,OAJAD,EAAA52B,EAAA,IAAAA,EAAA62B,GAAAZ,GACAG,EAAA/sB,KAAA,CAAAwtB,EAAA72B,EAAA,IAGAo2B,IAKA,SAAAt5B,EAAAC,EAAAF,GAKAC,EAAAC,QAAA,SAAAk4B,GAIA,IAHA,IAAA8B,EAAA,GACAJ,EAAA1B,EAAAjzB,OAEAhC,EAAA,EAAAA,EAAA22B,EAAA32B,GAAA,EACA+2B,EAAA9B,EAAA+B,OAAAh3B,IAAA,EAGA,QAAAoa,EAAA,EAAAA,EAAAuc,EAAAvc,GAAA,EACA2c,EAAA9B,EAAA+B,OAAA5c,KAAA,GAAAuc,EAAAvc,EAAA,EAGA,OAAA2c,IAKA,SAAAj6B,EAAAC,EAAAF,GAKA,IAAAo6B,EAAA,sCAEAn6B,EAAAC,QAAA,SAAAkC,EAAAg2B,GACA,IAAAY,EAAA1yB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,SAEAoF,EAAA,IAAAC,OAAAysB,EAAAzyB,QAAAy0B,EAAA,QAAAz0B,QAAAqzB,EAAA,MACAqB,EAAAj4B,EAAA6K,MAAAvB,GACA4tB,IAAAe,EACAd,EAAA,GAEA,GAAAD,EACA,QAAAn2B,EAAA,EAAAm3B,EAAAD,EAAAl1B,OAAAhC,EAAAm3B,EAAAn3B,GAAA,GACA,IAAA8J,EAAAotB,EAAAl3B,GACAo2B,EAAA/sB,KAAA,CAAApK,EAAAiG,QAAA4E,KAAA9H,OAAA,IAIA,OAEA8F,MAAAquB,EAAA,KACAA,UACAC,oBAMA,SAAAt5B,EAAAC,EAAAF,GAKAC,EAAAC,QAAA,SAAAk4B,EAAAhc,GACA,IAAAme,EAAAne,EAAAoe,OACAA,OAAAz3B,IAAAw3B,EAAA,EAAAA,EACAE,EAAAre,EAAAse,gBACAA,OAAA33B,IAAA03B,EAAA,EAAAA,EACAE,EAAAve,EAAAwe,iBACAA,OAAA73B,IAAA43B,EAAA,EAAAA,EACApC,EAAAnc,EAAAoc,SACAA,OAAAz1B,IAAAw1B,EAAA,IAAAA,EAEAsC,EAAAL,EAAApC,EAAAjzB,OACA21B,EAAA/1B,KAAAg2B,IAAAH,EAAAF,GAEA,OAAAlC,EAKAqC,EAAAC,EAAAtC,EAHAsC,EAAA,EAAAD,IAQA,SAAA56B,EAAAC,EAAAF,GAKA,IAAAg7B,EAAAh7B,EAAA,GACAu5B,EAAAv5B,EAAA,GAEAC,EAAAC,QAAA,SAAAkC,EAAAg2B,EAAAF,EAAA9b,GAwBA,IAvBA,IAAAic,EAAAjc,EAAAkc,SACAA,OAAAv1B,IAAAs1B,EAAA,EAAAA,EACAE,EAAAnc,EAAAoc,SACAA,OAAAz1B,IAAAw1B,EAAA,IAAAA,EACAE,EAAArc,EAAAsc,UACAA,OAAA31B,IAAA01B,EAAA,GAAAA,EACAQ,EAAA7c,EAAA8c,eACAA,OAAAn2B,IAAAk2B,KACAE,EAAA/c,EAAAgd,mBACAA,OAAAr2B,IAAAo2B,EAAA,EAAAA,EAEAyB,EAAAtC,EAEA2C,EAAA74B,EAAA+C,OAEA+1B,EAAAxC,EAEAyC,EAAA/4B,EAAAiG,QAAA+vB,EAAAwC,GAEAQ,EAAAhD,EAAAjzB,OAGAk2B,EAAA,GACAl4B,EAAA,EAAAA,EAAA83B,EAAA93B,GAAA,EACAk4B,EAAAl4B,GAAA,EAGA,QAAAg4B,EAAA,CACA,IAAAlwB,EAAA+vB,EAAA5C,EAAA,CACAoC,OAAA,EACAE,gBAAAS,EACAP,mBACApC,aAOA,GALA0C,EAAAn2B,KAAAF,IAAAoG,EAAAiwB,IAKA,KAFAC,EAAA/4B,EAAAk5B,YAAAlD,EAAAwC,EAAAQ,IAEA,CACA,IAAAG,EAAAP,EAAA5C,EAAA,CACAoC,OAAA,EACAE,gBAAAS,EACAP,mBACApC,aAEA0C,EAAAn2B,KAAAF,IAAA02B,EAAAL,IAKAC,GAAA,EAQA,IANA,IAAAK,EAAA,GACAC,EAAA,EACAC,EAAAN,EAAAH,EAEAf,EAAA,GAAAkB,EAAA,EAEA7d,EAAA,EAAAA,EAAA6d,EAAA7d,GAAA,GAOA,IAHA,IAAAoe,EAAA,EACAC,EAAAF,EAEAC,EAAAC,GACAZ,EAAA5C,EAAA,CACAoC,OAAAjd,EACAmd,gBAAAE,EAAAgB,EACAhB,mBACApC,cAGA0C,EACAS,EAAAC,EAEAF,EAAAE,EAGAA,EAAA72B,KAAAC,OAAA02B,EAAAC,GAAA,EAAAA,GAIAD,EAAAE,EAEA,IAAA5B,EAAAj1B,KAAAD,IAAA,EAAA81B,EAAAgB,EAAA,GACAC,EAAA3C,EAAA+B,EAAAl2B,KAAAF,IAAA+1B,EAAAgB,EAAAX,GAAAG,EAGAU,EAAA7zB,MAAA4zB,EAAA,GAEAC,EAAAD,EAAA,OAAAte,GAAA,EAEA,QAAAwe,EAAAF,EAAAE,GAAA/B,EAAA+B,GAAA,GACA,IAAArB,EAAAqB,EAAA,EACAC,EAAA9D,EAAA91B,EAAA+3B,OAAAO,IAcA,GAZAsB,IACAX,EAAAX,GAAA,GAIAoB,EAAAC,IAAAD,EAAAC,EAAA,SAAAC,EAGA,IAAAze,IACAue,EAAAC,KAAAP,EAAAO,EAAA,GAAAP,EAAAO,KAAA,IAAAP,EAAAO,EAAA,IAGAD,EAAAC,GAAA7B,IACAuB,EAAAT,EAAA5C,EAAA,CACAoC,OAAAjd,EACAmd,kBACAE,mBACApC,eAKA0C,EAAA,CAMA,GAJAA,EAAAO,GACAN,EAAAT,IAGAE,EACA,MAIAZ,EAAAj1B,KAAAD,IAAA,IAAA81B,EAAAO,IAeA,GATAH,EAAA5C,EAAA,CACAoC,OAAAjd,EAAA,EACAmd,gBAAAE,EACAA,mBACApC,aAKA0C,EACA,MAGAM,EAAAM,EAMA,OACAxC,QAAA6B,GAAA,EACAlwB,MAAA,IAAAwwB,EAAA,KAAAA,EACAlC,iBAAA8B,EAAAjC,MAMA,SAAAn5B,EAAAC,EAAAF,GAKA,IAAAy3B,EAAA,oBAAAC,EAAAjwB,EAAAkwB,GAAA,QAAAx0B,EAAA,EAAAA,EAAAw0B,EAAAxyB,OAAAhC,IAAA,KAAAy0B,EAAAD,EAAAx0B,GAAAy0B,EAAA/zB,WAAA+zB,EAAA/zB,aAAA,EAAA+zB,EAAAh0B,cAAA,YAAAg0B,MAAAzhB,UAAA,GAAAzS,OAAAC,eAAA8D,EAAAmwB,EAAAxrB,IAAAwrB,IAAA,gBAAAC,EAAAC,EAAAC,GAAA,OAAAD,GAAAJ,EAAAG,EAAA1zB,UAAA2zB,GAAAC,GAAAL,EAAAG,EAAAE,GAAAF,GAAA,GAIAM,EAAAn4B,EAAA,GACA05B,EAAA15B,EAAA,GACAw3B,EAAAx3B,EAAA,GAEAi8B,EAAA,WACA,SAAAA,EAAAttB,EAAAyN,GACA,IAAAic,EAAAjc,EAAAkc,SACAA,OAAAv1B,IAAAs1B,EAAA,EAAAA,EACAE,EAAAnc,EAAAoc,SACAA,OAAAz1B,IAAAw1B,EAAA,IAAAA,EACAE,EAAArc,EAAAsc,UACAA,OAAA31B,IAAA01B,EAAA,GAAAA,EACAE,EAAAvc,EAAAwc,iBACAA,OAAA71B,IAAA41B,EAAA,GAAAA,EACAuD,EAAA9f,EAAA+f,cACAA,OAAAp5B,IAAAm5B,KACAnD,EAAA3c,EAAA4c,eACAA,OAAAj2B,IAAAg2B,EAAA,MAAAA,EACAE,EAAA7c,EAAA8c,eACAA,OAAAn2B,IAAAk2B,KACAE,EAAA/c,EAAAgd,mBACAA,OAAAr2B,IAAAo2B,EAAA,EAAAA,EACAiD,EAAAhgB,EAAA1W,GACAA,OAAA3C,IAAAq5B,EAAA,KAAAA,EACAC,EAAAjgB,EAAAxO,KACAA,OAAA7K,IAAAs5B,EAAA,GAAAA,EACAC,EAAAlgB,EAAAnL,WACAA,OAAAlO,IAAAu5B,KACAC,EAAAngB,EAAAogB,MACAA,OAAAz5B,IAAAw5B,EAAA7C,EAAA6C,EACAE,EAAArgB,EAAAjL,OACAA,OAAApO,IAAA05B,EAAA,SAAA9xB,EAAAC,GACA,OAAAD,EAAAM,MAAAL,EAAAK,OACAwxB,EACAC,EAAAtgB,EAAAugB,SACAA,OAAA55B,IAAA25B,KACAE,EAAAxgB,EAAAygB,eACAA,OAAA95B,IAAA65B,KACAE,EAAA1gB,EAAA2gB,eACAA,OAAAh6B,IAAA+5B,KACAE,EAAA5gB,EAAAjK,aACAA,OAAApP,IAAAi6B,KACAC,EAAA7gB,EAAA8gB,QACAA,OAAAn6B,IAAAk6B,MA7CA,SAAA5D,EAAAxB,GAAA,KAAAwB,aA+CA4C,GA/CA,UAAAnmB,UAAA,qCA+CAoJ,CAAAxH,MAEAA,KAAAwO,QAAA,CACAoS,WACAE,WACAE,YACAE,mBACAE,gBAAAqD,EACAnD,iBACAE,iBACAE,qBACA1zB,KACAkI,OACAmvB,iBACA5qB,eACAlB,aACAurB,QACArrB,SACA+rB,UACAP,WACAE,kBAGAnlB,KAAAylB,cAAAxuB,GAmXA,OAhXA8oB,EAAAwE,EAAA,EACA7vB,IAAA,gBACAvK,MAAA,SAAA8M,GAEA,OADA+I,KAAA/I,OACAA,IAEA,CACAvC,IAAA,SACAvK,MAAA,SAAAu2B,GACA1gB,KAAA0lB,KAAA,+BAAAhF,EAAA,KAEA,IAAAiF,EAAA3lB,KAAA4lB,kBAAAlF,GACAmF,EAAAF,EAAAE,eACAC,EAAAH,EAAAG,aAEAC,EAAA/lB,KAAAgmB,QAAAH,EAAAC,GACAG,EAAAF,EAAAE,QACAvO,EAAAqO,EAAArO,QAQA,OANA1X,KAAAkmB,cAAAD,EAAAvO,GAEA1X,KAAAwO,QAAAjV,YACAyG,KAAAmmB,MAAAzO,GAGA1X,KAAAomB,QAAA1O,KAEA,CACAhjB,IAAA,oBACAvK,MAAA,WACA,IAAAu2B,EAAA9xB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,MAEAi3B,EAAA,GAEA,GAAA7lB,KAAAwO,QAAAyW,SAGA,IADA,IAAAoB,EAAA3F,EAAAjhB,MAAAO,KAAAwO,QAAA8S,gBACA71B,EAAA,EAAA22B,EAAAiE,EAAA54B,OAAAhC,EAAA22B,EAAA32B,GAAA,EACAo6B,EAAA/wB,KAAA,IAAA2rB,EAAA4F,EAAA56B,GAAAuU,KAAAwO,UAMA,OAAAqX,iBAAAC,aAFA,IAAArF,EAAAC,EAAA1gB,KAAAwO,YAIA,CACA9Z,IAAA,UACAvK,MAAA,WACA,IAAA07B,EAAAj3B,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,MACAk3B,EAAAl3B,UAAA,GAEAqI,EAAA+I,KAAA/I,KACAqvB,EAAA,GACA5O,EAAA,GAIA,oBAAAzgB,EAAA,IAEA,QAAAxL,EAAA,EAAA22B,EAAAnrB,EAAAxJ,OAAAhC,EAAA22B,EAAA32B,GAAA,EACAuU,KAAAumB,SAAA,CACA7xB,IAAA,GACAvK,MAAA8M,EAAAxL,GACA+6B,OAAA/6B,EACAwJ,MAAAxJ,GACA,CACA66B,YACA5O,UACAmO,iBACAC,iBAIA,OAAAG,QAAA,KAAAvO,WAMA,IADA,IAAAuO,EAAA,GACApgB,EAAA,EAAAW,EAAAvP,EAAAxJ,OAAAoY,EAAAW,EAAAX,GAAA,EAGA,IAFA,IAAAlQ,EAAAsB,EAAA4O,GAEAwe,EAAA,EAAAoC,EAAAzmB,KAAAwO,QAAAtY,KAAAzI,OAAA42B,EAAAoC,EAAApC,GAAA,GACA,IAAA3vB,EAAAsL,KAAAwO,QAAAtY,KAAAmuB,GACA,oBAAA3vB,EAAA,CAIA,GAHAuxB,EAAAvxB,EAAAjL,MAAA,CACAi9B,OAAA,EAAAhyB,EAAAgyB,QAAA,GAEAhyB,EAAAgyB,QAAA,GAAAhyB,EAAAgyB,OAAA,EACA,UAAAnjB,MAAA,qCAEA7O,IAAAjL,UAEAw8B,EAAAvxB,GAAA,CACAgyB,OAAA,GAIA1mB,KAAAumB,SAAA,CACA7xB,MACAvK,MAAA6V,KAAAwO,QAAAsW,MAAAnvB,EAAAjB,GACA8xB,OAAA7wB,EACAV,MAAA4Q,GACA,CACAygB,YACA5O,UACAmO,iBACAC,iBAKA,OAAAG,UAAAvO,aAEA,CACAhjB,IAAA,WACAvK,MAAA,SAAAmZ,EAAAgW,GACA,IAAA5kB,EAAA4O,EAAA5O,IACAiyB,EAAArjB,EAAAsjB,WACAA,OAAAv7B,IAAAs7B,GAAA,EAAAA,EACAx8B,EAAAmZ,EAAAnZ,MACAq8B,EAAAljB,EAAAkjB,OACAvxB,EAAAqO,EAAArO,MACA4xB,EAAAvN,EAAAuM,eACAA,OAAAx6B,IAAAw7B,EAAA,GAAAA,EACAC,EAAAxN,EAAAwM,aACAA,OAAAz6B,IAAAy7B,EAAA,GAAAA,EACAC,EAAAzN,EAAAgN,UACAA,OAAAj7B,IAAA07B,EAAA,GAAAA,EACAC,EAAA1N,EAAA5B,QACAA,OAAArsB,IAAA27B,EAAA,GAAAA,EAGA,GAAA78B,QAAA,CAIA,IAAA88B,GAAA,EACAC,GAAA,EACAC,EAAA,EAEA,oBAAAh9B,EAAA,CACA6V,KAAA0lB,KAAA,gBAAAhxB,EAAA,IAAAA,IAEA,IAAA0yB,EAAAtB,EAAA7qB,OAAA9Q,GAGA,GAFA6V,KAAA0lB,KAAA,eAAAv7B,EAAA,aAAAi9B,EAAA7zB,OAEAyM,KAAAwO,QAAAyW,SAAA,CAIA,IAHA,IAAAoC,EAAAl9B,EAAAsV,MAAAO,KAAAwO,QAAA8S,gBACAgG,EAAA,GAEA77B,EAAA,EAAAA,EAAAo6B,EAAAp4B,OAAAhC,GAAA,GACA,IAAA87B,EAAA1B,EAAAp6B,GAEAuU,KAAA0lB,KAAA,eAAA6B,EAAA7G,QAAA,KAKA,IAFA,IAAA8G,GAAA,EAEAnD,EAAA,EAAAA,EAAAgD,EAAA55B,OAAA42B,GAAA,GACA,IAAAoD,EAAAJ,EAAAhD,GACAqD,EAAAH,EAAAtsB,OAAAwsB,GACAv5B,EAAA,GACAw5B,EAAA9F,SACA1zB,EAAAu5B,GAAAC,EAAAn0B,MACA0zB,GAAA,EACAO,GAAA,EACAF,EAAAxyB,KAAA4yB,EAAAn0B,SAEArF,EAAAu5B,GAAA,EACAznB,KAAAwO,QAAA2W,gBACAmC,EAAAxyB,KAAA,IAGAkL,KAAA0lB,KAAA,WAAA+B,EAAA,aAAAv5B,EAAAu5B,IAIAD,IACAL,GAAA,GAIAD,EAAAI,EAAA,GAEA,IADA,IAAAK,EAAAL,EAAA75B,OACAm6B,EAAA,EAAAA,EAAAD,EAAAC,GAAA,EACAV,GAAAI,EAAAM,GAEAV,GAAAS,EAEA3nB,KAAA0lB,KAAA,uBAAAwB,GAGA,IAAAnD,EAAAqD,EAAA7zB,MACA2zB,GAAA,IACAnD,KAAAmD,GAAA,GAGAlnB,KAAA0lB,KAAA,iBAAA3B,GAEA,IAAA8D,GAAA7nB,KAAAwO,QAAAyW,WAAAjlB,KAAAwO,QAAA2W,gBAAAgC,GAAAtB,EAAAp4B,OAKA,GAHAuS,KAAA0lB,KAAA,oBAAAmC,IAGAZ,GAAAG,EAAAxF,UAAAiG,EAAA,CAEA,IAAAC,EAAAxB,EAAArxB,GACA6yB,EAGAA,EAAAC,OAAAjzB,KAAA,CACAJ,MACAkyB,aACAz8B,QACAoJ,MAAAwwB,EACAlC,eAAAuF,EAAAvF,kBAIAyE,EAAArxB,GAAA,CACAU,KAAA6wB,EACAuB,OAAA,EACArzB,MACAkyB,aACAz8B,QACAoJ,MAAAwwB,EACAlC,eAAAuF,EAAAvF,kBAIAnK,EAAA5iB,KAAAwxB,EAAArxB,WAGA,GAAA6qB,EAAA31B,GACA,QAAA69B,EAAA,EAAA5F,EAAAj4B,EAAAsD,OAAAu6B,EAAA5F,EAAA4F,GAAA,EACAhoB,KAAAumB,SAAA,CACA7xB,MACAkyB,WAAAoB,EACA79B,QAAA69B,GACAxB,SACAvxB,SACA,CACAqxB,YACA5O,UACAmO,iBACAC,oBAKA,CACApxB,IAAA,gBACAvK,MAAA,SAAA87B,EAAAvO,GACA1X,KAAA0lB,KAAA,0BAEA,QAAAj6B,EAAA,EAAA22B,EAAA1K,EAAAjqB,OAAAhC,EAAA22B,EAAA32B,GAAA,GAOA,IANA,IAAAs8B,EAAArQ,EAAAjsB,GAAAs8B,OACAE,EAAAF,EAAAt6B,OAEAy6B,EAAA,EACAC,EAAA,EAEA9D,EAAA,EAAAA,EAAA4D,EAAA5D,GAAA,GACA,IAAAqC,EAAAT,IAAA8B,EAAA1D,GAAA3vB,KAAAgyB,OAAA,EAEA0B,GADA,IAAA1B,EAAAqB,EAAA1D,GAAA9wB,MAAAw0B,EAAA1D,GAAA9wB,OAAA,MACAmzB,EAEA,IAAAA,EACAyB,EAAA96B,KAAAF,IAAAg7B,EAAAC,IAEAL,EAAA1D,GAAA+D,SACAF,GAAAE,GAIA1Q,EAAAjsB,GAAA8H,MAAA,IAAA40B,EAAAD,EAAAC,EAEAnoB,KAAA0lB,KAAAhO,EAAAjsB,OAGA,CACAiJ,IAAA,QACAvK,MAAA,SAAAutB,GACA1X,KAAA0lB,KAAA,mBACAhO,EAAAvhB,KAAA6J,KAAAwO,QAAA/U,UAEA,CACA/E,IAAA,UACAvK,MAAA,SAAAutB,GACA,IAAA2Q,EAAA,GAEAroB,KAAAwO,QAAAgX,SACAxlB,KAAA0lB,KAAA,kBAAA7vB,KAAAE,UAAA2hB,IAGA,IAAA4Q,EAAA,GAEAtoB,KAAAwO,QAAA6W,gBACAiD,EAAAxzB,KAAA,SAAA0N,EAAAzZ,GACA,IAAAg/B,EAAAvlB,EAAAulB,OACAh/B,EAAA45B,QAAA,GAEA,QAAAl3B,EAAA,EAAA22B,EAAA2F,EAAAt6B,OAAAhC,EAAA22B,EAAA32B,GAAA,GACA,IAAAkK,EAAAoyB,EAAAt8B,GAEA,OAAAkK,EAAAksB,eAAAp0B,OAAA,CAIA,IAAAS,EAAA,CACAq6B,QAAA5yB,EAAAksB,eACA13B,MAAAwL,EAAAxL,OAEAwL,EAAAjB,MACAxG,EAAAwG,IAAAiB,EAAAjB,KAEAiB,EAAAjJ,eAAA,eAAAiJ,EAAAixB,YAAA,IACA14B,EAAA04B,WAAAjxB,EAAAixB,YAEA79B,EAAA45B,QAAA7tB,KAAA5G,OAKA8R,KAAAwO,QAAA/T,cACA6tB,EAAAxzB,KAAA,SAAA0N,EAAAzZ,GACAA,EAAAwK,MAAAiP,EAAAjP,QAIA,QAAA9H,EAAA,EAAA22B,EAAA1K,EAAAjqB,OAAAhC,EAAA22B,EAAA32B,GAAA,GACA,IAAA+W,EAAAkV,EAAAjsB,GAMA,GAJAuU,KAAAwO,QAAAxgB,KACAwU,EAAA7M,KAAAqK,KAAAwO,QAAAsW,MAAAtiB,EAAA7M,KAAAqK,KAAAwO,QAAAxgB,IAAA,IAGAs6B,EAAA76B,OAAA,CASA,IAJA,IAAA1E,EAAA,CACA4M,KAAA6M,EAAA7M,MAGA0uB,EAAA,EAAAmE,EAAAF,EAAA76B,OAAA42B,EAAAmE,EAAAnE,GAAA,EACAiE,EAAAjE,GAAA7hB,EAAAzZ,GAGAs/B,EAAAvzB,KAAA/L,QAZAs/B,EAAAvzB,KAAA0N,EAAA7M,MAeA,OAAA0yB,IAEA,CACA3zB,IAAA,OACAvK,MAAA,WAEA,IAAAs+B,EADAzoB,KAAAwO,QAAAgX,UAGAiD,EAAA19B,SAAAC,IAAA6T,MAAA4pB,EAAA75B,eAKA21B,EAnbA,GAsbAh8B,EAAAC,QAAA+7B,MA19BAh8B,EAAAC,QAAA2C,qBCXAa,OAAAC,eAAAmb,EAAA,cAAAjd,OAAA,IACA,IAAAu+B,EAAA,SAAAv+B,GACA,OAIA,SAAAA,GACA,QAAAA,GAAA,WAAAoU,EAAApU,GALAw+B,CAAAx+B,KAQA,SAAAA,GACA,IAAAy+B,EAAA58B,OAAAS,UAAAkB,SAAApE,KAAAY,GAEA,0BAAAy+B,GACA,kBAAAA,GAQA,SAAAz+B,GACA,OAAAA,EAAA0+B,WAAAC,EARAC,CAAA5+B,GAZA6+B,CAAA7+B,IAiBA2+B,EADA,mBAAA/7B,eAAAk8B,IACAl8B,OAAAk8B,IAAA,uBAUA,SAAAC,EAAA/+B,EAAAqkB,GACA,WAAAA,EAAA2a,OAAA3a,EAAAka,kBAAAv+B,GACAi/B,GANAzpB,EAMAxV,EALAoG,MAAAuvB,QAAAngB,GAAA,OAKAxV,EAAAqkB,GACArkB,EAPA,IAAAwV,EAUA,SAAA0pB,EAAAt5B,EAAAmE,EAAAsa,GACA,OAAAze,EAAA9E,OAAAiJ,GAAAgT,IAAA,SAAApZ,GACA,OAAAo7B,EAAAp7B,EAAA0gB,KAqBA,SAAA4a,EAAAr5B,EAAAmE,EAAAsa,IACAA,KAAA,IACA8a,WAAA9a,EAAA8a,YAAAD,EACA7a,EAAAka,kBAAAla,EAAAka,qBAEA,IAAAa,EAAAh5B,MAAAuvB,QAAA5rB,GAIA,OAFAq1B,IADAh5B,MAAAuvB,QAAA/vB,GAKAw5B,EACA/a,EAAA8a,WAAAv5B,EAAAmE,EAAAsa,GA7BA,SAAAze,EAAAmE,EAAAsa,GACA,IAAAgb,EAAA,GAaA,OAZAhb,EAAAka,kBAAA34B,IACA/D,OAAAkK,KAAAnG,GAAAyV,QAAA,SAAA9Q,GACA80B,EAAA90B,GAAAw0B,EAAAn5B,EAAA2E,GAAA8Z,KAGAxiB,OAAAkK,KAAAhC,GAAAsR,QAAA,SAAA9Q,GACA8Z,EAAAka,kBAAAx0B,EAAAQ,KAAA3E,EAAA2E,GAGA80B,EAAA90B,GAAA00B,EAAAr5B,EAAA2E,GAAAR,EAAAQ,GAAA8Z,GAFAgb,EAAA90B,GAAAw0B,EAAAh1B,EAAAQ,GAAA8Z,KAKAgb,EAiBAC,CAAA15B,EAAAmE,EAAAsa,GAJA0a,EAAAh1B,EAAAsa,GAQA4a,EAAAte,IAAA,SAAArV,EAAA+Y,GACA,IAAAje,MAAAuvB,QAAArqB,GACA,UAAA8N,MAAA,qCAGA,OAAA9N,EAAAd,OAAA,SAAAC,EAAAkQ,GACA,OAAAskB,EAAAx0B,EAAAkQ,EAAA0J,IACA,KAGA,IAAAkb,EAAAN,+BCtFA9gC,EAAA,IACAA,EAAA,IACAA,EAAA,2BCFAA,EAAA,+CCEA,IAAAuU,EAAAvU,EAAA,GACAqhC,EAAArhC,EAAA,GAAAA,CAAA,GAEAshC,GAAA,EADA,QAGA,IAAAr5B,MAAA,mBAAAq5B,GAAA,IACA/sB,IAAAS,EAAAT,EAAAK,EAAA0sB,EAAA,SACA5T,KAAA,SAAA6T,GACA,OAAAF,EAAA3pB,KAAA6pB,EAAAj7B,UAAAnB,OAAA,EAAAmB,UAAA,QAAAvD,YANA,yBCJA9C,EAAAC,SAAAF,EAAA,MAAAA,EAAA,GAAAA,CAAA,WACA,UAAA0D,OAAAC,eAAA3D,EAAA,GAAAA,CAAA,YAAA8D,IAAA,uBAAA6G,qBCAA,IAAAoL,EAAA/V,EAAA,GAGAC,EAAAC,QAAA,SAAA8V,EAAAb,GACA,IAAAY,EAAAC,GAAA,OAAAA,EACA,IAAA3U,EAAAgW,EACA,GAAAlC,GAAA,mBAAA9T,EAAA2U,EAAA3Q,YAAA0Q,EAAAsB,EAAAhW,EAAAJ,KAAA+U,IAAA,OAAAqB,EACA,sBAAAhW,EAAA2U,EAAAwf,WAAAzf,EAAAsB,EAAAhW,EAAAJ,KAAA+U,IAAA,OAAAqB,EACA,IAAAlC,GAAA,mBAAA9T,EAAA2U,EAAA3Q,YAAA0Q,EAAAsB,EAAAhW,EAAAJ,KAAA+U,IAAA,OAAAqB,EACA,MAAAvB,UAAA,2DCVA7V,EAAAC,QAAA,SAAA8V,GACA,sBAAAA,EAAA,MAAAF,UAAAE,EAAA,uBACA,OAAAA,oBCKA,IAAA1B,EAAAtU,EAAA,IACAiY,EAAAjY,EAAA,IACAwhC,EAAAxhC,EAAA,IACAmY,EAAAnY,EAAA,IACAyhC,EAAAzhC,EAAA,IACAC,EAAAC,QAAA,SAAAwhC,EAAAC,GACA,IAAAC,EAAA,GAAAF,EACAG,EAAA,GAAAH,EACAI,EAAA,GAAAJ,EACAK,EAAA,GAAAL,EACAM,EAAA,GAAAN,EACAO,EAAA,GAAAP,GAAAM,EACAE,EAAAP,GAAAF,EACA,gBAAAnpB,EAAAipB,EAAAjrB,GAQA,IAPA,IAMAe,EAAA8qB,EANAxsB,EAAA6rB,EAAAlpB,GACAxV,EAAAmV,EAAAtC,GACAtH,EAAAiG,EAAAitB,EAAAjrB,EAAA,GACAnR,EAAAgT,EAAArV,EAAAqC,QACAwH,EAAA,EACAuN,EAAA0nB,EAAAM,EAAA5pB,EAAAnT,GAAA08B,EAAAK,EAAA5pB,EAAA,QAAAvV,EAEAoC,EAAAwH,MAAA,IAAAs1B,GAAAt1B,KAAA7J,KAEAq/B,EAAA9zB,EADAgJ,EAAAvU,EAAA6J,GACAA,EAAAgJ,GACA+rB,GACA,GAAAE,EAAA1nB,EAAAvN,GAAAw1B,OACA,GAAAA,EAAA,OAAAT,GACA,gBACA,cAAArqB,EACA,cAAA1K,EACA,OAAAuN,EAAA1N,KAAA6K,QACA,GAAA0qB,EAAA,SAGA,OAAAC,GAAA,EAAAF,GAAAC,IAAA7nB,qBCxCA,IAAAkoB,EAAApiC,EAAA,IAEAC,EAAAC,QAAA,SAAAmiC,EAAAl9B,GACA,WAAAi9B,EAAAC,GAAA,CAAAl9B,qBCJA,IAAA4Q,EAAA/V,EAAA,GACAw3B,EAAAx3B,EAAA,IACAsiC,EAAAtiC,EAAA,EAAAA,CAAA,WAEAC,EAAAC,QAAA,SAAAmiC,GACA,IAAAE,EASA,OARA/K,EAAA6K,KAGA,mBAFAE,EAAAF,EAAA5nB,cAEA8nB,IAAAt6B,QAAAuvB,EAAA+K,EAAAp+B,aAAAo+B,OAAAx/B,GACAgT,EAAAwsB,IAEA,QADAA,IAAAD,MACAC,OAAAx/B,SAEAA,IAAAw/B,EAAAt6B,MAAAs6B,oBCbA,IAAA5qB,EAAA3X,EAAA,IACAC,EAAAC,QAAA+H,MAAAuvB,SAAA,SAAA/d,GACA,eAAA9B,EAAA8B,qBCHAzZ,EAAA,IACAA,EAAA,+CCAA,IAAAwiC,EAAAxiC,EAAA,GAAAA,EAAA,GAGAA,EAAA,GAAAA,CAAAyX,OAAA,kBAAAgrB,GACA/qB,KAAAgrB,GAAAjrB,OAAAgrB,GACA/qB,KAAA6F,GAAA,GAEA,WACA,IAEAolB,EAFAhtB,EAAA+B,KAAAgrB,GACA/1B,EAAA+K,KAAA6F,GAEA,OAAA5Q,GAAAgJ,EAAAxQ,OAAA,CAAAtD,WAAAkB,EAAA6/B,MAAA,IACAD,EAAAH,EAAA7sB,EAAAhJ,GACA+K,KAAA6F,IAAAolB,EAAAx9B,OACA,CAAAtD,MAAA8gC,EAAAC,MAAA,uBCfA,IAAAnsB,EAAAzW,EAAA,IACAwW,EAAAxW,EAAA,IAGAC,EAAAC,QAAA,SAAA2iC,GACA,gBAAAvsB,EAAAwsB,GACA,IAGAn4B,EAAAC,EAHA2sB,EAAA9f,OAAAjB,EAAAF,IACAnT,EAAAsT,EAAAqsB,GACA1/B,EAAAm0B,EAAApyB,OAEA,OAAAhC,EAAA,GAAAA,GAAAC,EAAAy/B,EAAA,QAAA9/B,GACA4H,EAAA4sB,EAAAwL,WAAA5/B,IACA,OAAAwH,EAAA,OAAAxH,EAAA,IAAAC,IAAAwH,EAAA2sB,EAAAwL,WAAA5/B,EAAA,WAAAyH,EAAA,MACAi4B,EAAAtL,EAAA4C,OAAAh3B,GAAAwH,EACAk4B,EAAAtL,EAAA1xB,MAAA1C,IAAA,GAAAyH,EAAA,OAAAD,EAAA,oCCbA,IAAAq4B,EAAAhjC,EAAA,IACAuU,EAAAvU,EAAA,GACAqU,EAAArU,EAAA,IACAoU,EAAApU,EAAA,GACAijC,EAAAjjC,EAAA,IACAkjC,EAAAljC,EAAA,IACAmjC,EAAAnjC,EAAA,IACAwZ,EAAAxZ,EAAA,IACAojC,EAAApjC,EAAA,EAAAA,CAAA,YACAqjC,IAAA,GAAAz1B,MAAA,WAAAA,QAKA01B,EAAA,kBAAA5rB,MAEAzX,EAAAC,QAAA,SAAAqjC,EAAAC,EAAA3L,EAAArb,EAAAinB,EAAAC,EAAAC,GACAT,EAAArL,EAAA2L,EAAAhnB,GACA,IAeAonB,EAAAx3B,EAAAy3B,EAfAC,EAAA,SAAAC,GACA,IAAAV,GAAAU,KAAAzpB,EAAA,OAAAA,EAAAypB,GACA,OAAAA,GACA,IAVA,OAWA,IAVA,SAUA,6BAAAlM,EAAAngB,KAAAqsB,IACA,6BAAAlM,EAAAngB,KAAAqsB,KAEAtrB,EAAA+qB,EAAA,YACAQ,EAdA,UAcAP,EACAQ,GAAA,EACA3pB,EAAAipB,EAAAp/B,UACA+/B,EAAA5pB,EAAA8oB,IAAA9oB,EAnBA,eAmBAmpB,GAAAnpB,EAAAmpB,GACAU,EAAAD,GAAAJ,EAAAL,GACAW,EAAAX,EAAAO,EAAAF,EAAA,WAAAK,OAAAphC,EACAshC,EAAA,SAAAb,GAAAlpB,EAAAgqB,SAAAJ,EAwBA,GArBAG,IACAR,EAAArqB,EAAA6qB,EAAApjC,KAAA,IAAAsiC,OACA7/B,OAAAS,WAAA0/B,EAAArnB,OAEA2mB,EAAAU,EAAAprB,GAAA,GAEAuqB,GAAA,mBAAAa,EAAAT,IAAAhvB,EAAAyvB,EAAAT,EAAAE,IAIAU,GAAAE,GAjCA,WAiCAA,EAAA/iC,OACA8iC,GAAA,EACAE,EAAA,kBAAAD,EAAAjjC,KAAAyW,QAGAsrB,IAAAW,IAAAN,IAAAY,GAAA3pB,EAAA8oB,IACAhvB,EAAAkG,EAAA8oB,EAAAe,GAGAlB,EAAAO,GAAAW,EACAlB,EAAAxqB,GAAA6qB,EACAG,EAMA,GALAG,EAAA,CACAnb,OAAAub,EAAAG,EAAAL,EA9CA,UA+CAl2B,KAAA81B,EAAAS,EAAAL,EAhDA,QAiDAQ,QAAAF,GAEAT,EAAA,IAAAv3B,KAAAw3B,EACAx3B,KAAAkO,GAAAjG,EAAAiG,EAAAlO,EAAAw3B,EAAAx3B,SACAmI,IAAAS,EAAAT,EAAAK,GAAAyuB,GAAAY,GAAAT,EAAAI,GAEA,OAAAA,oBClEA,IAAA1B,EAAAliC,EAAA,IACA43B,EAAA53B,EAAA,IACAmjC,EAAAnjC,EAAA,IACA6jC,EAAA,GAGA7jC,EAAA,EAAAA,CAAA6jC,EAAA7jC,EAAA,EAAAA,CAAA,8BAAA0X,OAEAzX,EAAAC,QAAA,SAAA23B,EAAA2L,EAAAhnB,GACAqb,EAAA1zB,UAAA+9B,EAAA2B,EAAA,CAAArnB,KAAAob,EAAA,EAAApb,KACA2mB,EAAAtL,EAAA2L,EAAA,+BCVA,IAAAhuB,EAAAxV,EAAA,GACAukC,EAAAvkC,EAAA,IACAwkC,EAAAxkC,EAAA,IACAykC,EAAAzkC,EAAA,GAAAA,CAAA,YACA0kC,EAAA,aAIAC,EAAA,WAEA,IAIAC,EAJAC,EAAA7kC,EAAA,GAAAA,CAAA,UACAmD,EAAAqhC,EAAAr/B,OAcA,IAVA0/B,EAAAn7B,MAAAo7B,QAAA,OACA9kC,EAAA,IAAAgH,YAAA69B,GACAA,EAAA1iC,IAAA,eAGAyiC,EAAAC,EAAAE,cAAAp+B,UACAqhB,OACA4c,EAAAI,MAAAC,uCACAL,EAAAvc,QACAsc,EAAAC,EAAAhwB,EACAzR,YAAAwhC,EAAA,UAAAH,EAAArhC,IACA,OAAAwhC,KAGA1kC,EAAAC,QAAAwD,OAAAw+B,QAAA,SAAAvsB,EAAAuvB,GACA,IAAAhrB,EAQA,OAPA,OAAAvE,GACA+uB,EAAA,UAAAlvB,EAAAG,GACAuE,EAAA,IAAAwqB,EACAA,EAAA,eAEAxqB,EAAAuqB,GAAA9uB,GACAuE,EAAAyqB,SACA5hC,IAAAmiC,EAAAhrB,EAAAqqB,EAAArqB,EAAAgrB,qBCvCA,IAAA/2B,EAAAnO,EAAA,GACAwV,EAAAxV,EAAA,GACAmlC,EAAAnlC,EAAA,IAEAC,EAAAC,QAAAF,EAAA,IAAA0D,OAAAg0B,iBAAA,SAAA/hB,EAAAuvB,GACA1vB,EAAAG,GAKA,IAJA,IAGAX,EAHApH,EAAAu3B,EAAAD,GACA//B,EAAAyI,EAAAzI,OACAhC,EAAA,EAEAgC,EAAAhC,GAAAgL,EAAAE,EAAAsH,EAAAX,EAAApH,EAAAzK,KAAA+hC,EAAAlwB,IACA,OAAAW,oBCVA,IAAAyvB,EAAAplC,EAAA,IACAwkC,EAAAxkC,EAAA,IAEAC,EAAAC,QAAAwD,OAAAkK,MAAA,SAAA+H,GACA,OAAAyvB,EAAAzvB,EAAA6uB,qBCLA,IAAAztB,EAAA/W,EAAA,IACAkY,EAAAlY,EAAA,IACAqlC,EAAArlC,EAAA,GAAAA,EAAA,GACAykC,EAAAzkC,EAAA,GAAAA,CAAA,YAEAC,EAAAC,QAAA,SAAA+D,EAAAqhC,GACA,IAGAl5B,EAHAuJ,EAAAuC,EAAAjU,GACAd,EAAA,EACA+W,EAAA,GAEA,IAAA9N,KAAAuJ,EAAAvJ,GAAAq4B,GAAA1tB,EAAApB,EAAAvJ,IAAA8N,EAAA1N,KAAAJ,GAEA,KAAAk5B,EAAAngC,OAAAhC,GAAA4T,EAAApB,EAAAvJ,EAAAk5B,EAAAniC,SACAkiC,EAAAnrB,EAAA9N,IAAA8N,EAAA1N,KAAAJ,IAEA,OAAA8N,oBCfA,IAAAzD,EAAAzW,EAAA,IACA8E,EAAAC,KAAAD,IACAD,EAAAE,KAAAF,IACA5E,EAAAC,QAAA,SAAAyM,EAAAxH,GAEA,OADAwH,EAAA8J,EAAA9J,IACA,EAAA7H,EAAA6H,EAAAxH,EAAA,GAAAN,EAAA8H,EAAAxH,qBCLA,IAAAwB,EAAA3G,EAAA,GAAA2G,yDCCA,IAAAoQ,EAAA/W,EAAA,IACAwhC,EAAAxhC,EAAA,IACAykC,EAAAzkC,EAAA,GAAAA,CAAA,YACAulC,EAAA7hC,OAAAS,UAEAlE,EAAAC,QAAAwD,OAAA8V,gBAAA,SAAA7D,GAEA,OADAA,EAAA6rB,EAAA7rB,GACAoB,EAAApB,EAAA8uB,GAAA9uB,EAAA8uB,GACA,mBAAA9uB,EAAA8E,aAAA9E,eAAA8E,YACA9E,EAAA8E,YAAAtW,UACAwR,aAAAjS,OAAA6hC,EAAA,uBCVA,IAAAjxB,EAAAtU,EAAA,IACAuU,EAAAvU,EAAA,GACAwhC,EAAAxhC,EAAA,IACAiB,EAAAjB,EAAA,IACAwlC,EAAAxlC,EAAA,IACAmY,EAAAnY,EAAA,IACAylC,EAAAzlC,EAAA,IACA0lC,EAAA1lC,EAAA,IAEAuU,IAAAY,EAAAZ,EAAAK,GAAA5U,EAAA,GAAAA,CAAA,SAAA2lC,GAAA19B,MAAAC,KAAAy9B,KAAA,SAEAz9B,KAAA,SAAA09B,GACA,IAOAzgC,EAAA+U,EAAA2rB,EAAAC,EAPAnwB,EAAA6rB,EAAAoE,GACArD,EAAA,mBAAA7qB,UAAAzP,MACA89B,EAAAz/B,UAAAnB,OACA6gC,EAAAD,EAAA,EAAAz/B,UAAA,QAAAvD,EACAkjC,OAAAljC,IAAAijC,EACAr5B,EAAA,EACAu5B,EAAAR,EAAA/vB,GAIA,GAFAswB,IAAAD,EAAA1xB,EAAA0xB,EAAAD,EAAA,EAAAz/B,UAAA,QAAAvD,EAAA,IAEAA,MAAAmjC,GAAA3D,GAAAt6B,OAAAu9B,EAAAU,GAMA,IAAAhsB,EAAA,IAAAqoB,EADAp9B,EAAAgT,EAAAxC,EAAAxQ,SACAA,EAAAwH,MACA84B,EAAAvrB,EAAAvN,EAAAs5B,EAAAD,EAAArwB,EAAAhJ,MAAAgJ,EAAAhJ,SANA,IAAAm5B,EAAAI,EAAAjlC,KAAA0U,GAAAuE,EAAA,IAAAqoB,IAAAsD,EAAAC,EAAAtpB,QAAAomB,KAAAj2B,IACA84B,EAAAvrB,EAAAvN,EAAAs5B,EAAAhlC,EAAA6kC,EAAAE,EAAA,CAAAH,EAAAhkC,MAAA8K,IAAA,GAAAk5B,EAAAhkC,OASA,OADAqY,EAAA/U,OAAAwH,EACAuN,sBCjCA,IAAA1E,EAAAxV,EAAA,GACAC,EAAAC,QAAA,SAAA4lC,EAAAzkC,EAAAQ,EAAAyiC,GACA,IACA,OAAAA,EAAAjjC,EAAAmU,EAAA3T,GAAA,GAAAA,EAAA,IAAAR,EAAAQ,GAEA,MAAAgU,GACA,IAAAswB,EAAAL,EAAA,OAEA,WADA/iC,IAAAojC,GAAA3wB,EAAA2wB,EAAAllC,KAAA6kC,IACAjwB,qBCRA,IAAAotB,EAAAjjC,EAAA,IACAojC,EAAApjC,EAAA,EAAAA,CAAA,YACAgY,EAAA/P,MAAA9D,UAEAlE,EAAAC,QAAA,SAAA8V,GACA,YAAAjT,IAAAiT,IAAAitB,EAAAh7B,QAAA+N,GAAAgC,EAAAorB,KAAAptB,qBCLA,IAAAowB,EAAApmC,EAAA,GACAoO,EAAApO,EAAA,IAEAC,EAAAC,QAAA,SAAA+D,EAAA0I,EAAA9K,GACA8K,KAAA1I,EAAAmiC,EAAA/3B,EAAApK,EAAA0I,EAAAyB,EAAA,EAAAvM,IACAoC,EAAA0I,GAAA9K,oBCNA,IAAAwkC,EAAArmC,EAAA,IACAojC,EAAApjC,EAAA,EAAAA,CAAA,YACAijC,EAAAjjC,EAAA,IACAC,EAAAC,QAAAF,EAAA,GAAAsmC,kBAAA,SAAAtwB,GACA,GAAAjT,MAAAiT,EAAA,OAAAA,EAAAotB,IACAptB,EAAA,eACAitB,EAAAoD,EAAArwB,sBCLA,IAAA2B,EAAA3X,EAAA,IACAyY,EAAAzY,EAAA,EAAAA,CAAA,eAEAumC,EAAA,aAAA5uB,EAAA,kBAAArR,UAAA,IASArG,EAAAC,QAAA,SAAA8V,GACA,IAAAL,EAAA6wB,EAAAtxB,EACA,YAAAnS,IAAAiT,EAAA,mBAAAA,EAAA,OAEA,iBAAAwwB,EAVA,SAAAxwB,EAAA5J,GACA,IACA,OAAA4J,EAAA5J,GACA,MAAAyJ,KAOA4wB,CAAA9wB,EAAAjS,OAAAsS,GAAAyC,IAAA+tB,EAEAD,EAAA5uB,EAAAhC,GAEA,WAAAT,EAAAyC,EAAAhC,KAAA,mBAAAA,EAAA+wB,OAAA,YAAAxxB,oBCrBA,IAAAkuB,EAAApjC,EAAA,EAAAA,CAAA,YACA2mC,GAAA,EAEA,IACA,IAAAC,EAAA,IAAAxD,KACAwD,EAAA,kBAAAD,GAAA,GAEA1+B,MAAAC,KAAA0+B,EAAA,qBACA,MAAA/wB,IAEA5V,EAAAC,QAAA,SAAA2W,EAAAgwB,GACA,IAAAA,IAAAF,EAAA,SACA,IAAArvB,GAAA,EACA,IACA,IAAAwvB,EAAA,IACAnB,EAAAmB,EAAA1D,KACAuC,EAAAnpB,KAAA,kBAAAomB,KAAAtrB,GAAA,IACAwvB,EAAA1D,GAAA,kBAAAuC,GACA9uB,EAAAiwB,GACA,MAAAjxB,IACA,OAAAyB,oBCpBAtX,EAAA,mDCEA,IAAAuU,EAAAvU,EAAA,GACA+mC,EAAA/mC,EAAA,GAAAA,EAAA,GAEAuU,IAAAS,EAAA,SACA2N,SAAA,SAAAzb,GACA,OAAA6/B,EAAArvB,KAAAxQ,EAAAZ,UAAAnB,OAAA,EAAAmB,UAAA,QAAAvD,uCCDA,IACA,IAAAikC,EAAA,IAAA1kC,OAAA+I,YAAA,QAEA,GADA27B,EAAA1V,kBACA,IAAA0V,EAAAC,iBAGA,UAAAhsB,MAAA,6BAEA,MAAApF,GACA,IAAAxK,EAAA,SAAAD,EAAA87B,GACA,IAAAC,EAAAC,EAsBA,OArBAF,KAAA,CACA37B,SAAA,EACAC,YAAA,EACAF,YAAAvI,IAGAokC,EAAAxgC,SAAA0gC,YAAA,gBACAC,gBAAAl8B,EAAA87B,EAAA37B,QAAA27B,EAAA17B,WAAA07B,EAAA57B,QACA87B,EAAAD,EAAA7V,eACA6V,EAAA7V,eAAA,WACA8V,EAAAnmC,KAAAyW,MACA,IACAhU,OAAAC,eAAA+T,KAAA,oBACA5T,IAAA,WACA,YAGA,MAAA+R,GACA6B,KAAAuvB,kBAAA,IAGAE,GAGA97B,EAAAlH,UAAA7B,OAAAilC,MAAApjC,UACA7B,OAAA+I,4UC1CAm8B,EAAAxnC,EAAA,SACAA,EAAA,iCAEAynC,EAAA,oBAAAA,qCACAA,4DAAAvoB,CAAAxH,MAIAA,KAAA2L,QAAA,EAAAmkB,EAAAhpB,aAAAkpB,EAAAjnB,QAAAne,OAAAqlC,kBAAArlC,OAAAqlC,yBAAA5kC,gBAOAqJ,IAAA,YACAvK,MAAA,SAAA+lC,GACAlwB,KAAA2L,OAAA5H,UAAAmsB,MAOAx7B,IAAA,WACAvK,MAAA,SAAAia,GACApE,KAAA2L,OAAAxH,SAAAC,0BA6GAja,MAAA,SAAA6D,GACA,QAAAA,GACAgS,KAAAmT,cACA6C,KAAA,SAAAzb,GAAA,OAAAA,EAAAvM,KAAAioB,SAAAjoB,EAAA,SAYA0G,IAAA,eACAvK,MAAA,SAAA6D,GAAA,OAAAgS,KAAA4S,OAAAoD,KAAA,SAAAxe,GAAA,OAAAA,EAAAxJ,KAAAioB,SAAAjoB,EAAA,SAvHA0G,IAAA,QACAtI,IAAA,WACA,OAAA4T,KAAA2L,OAAA7H,cAMApP,IAAA,QACAtI,IAAA,WACA,OAAA4T,KAAA0F,MAAAjR,SAMAC,IAAA,cACAtI,IAAA,kBAAA4T,KAAAvL,MAAAkb,OAAA,SAAAha,GAAA,WAAAA,EAAAyT,YAOA1U,IAAA,yBACAtI,IAAA,kBAAA4T,KAAAvL,MAAAkb,OAAA,SAAAha,GAAA,OAAAA,EAAAyT,QAAAzT,EAAA2T,iBAOA5U,IAAA,UACAtI,IAAA,WACA,OAAA4T,KAAA0F,MAAApN,WAMA5D,IAAA,gBACAtI,IAAA,WAIA,OAHA4T,KAAA1H,QAAAqX,OAAA,SAAApV,GAAA,WAAAA,EAAA6O,YASA1U,IAAA,oBACAtI,IAAA,kBAAA4T,KAAA1H,QAAAqX,OAAA,SAAApV,GAAA,WAAAA,EAAA2N,cAOAxT,IAAA,oBACAtI,IAAA,kBAAA4T,KAAAmwB,kBAAAxgB,OAAA,SAAApV,GAAA,WAAAA,EAAA3I,iBAOA8C,IAAA,oBACAtI,IAAA,WAEA,SAAAnB,6HAAAmmB,CAAApR,KAAA1H,UAAA83B,UAAApa,KAAA,SAAAzb,GAAA,WAAAA,EAAA3I,iBAOA8C,IAAA,SACAtI,IAAA,WACA,OAAA4T,KAAA0F,MAAAkN,UAMAle,IAAA,eACAtI,IAAA,WACA,IAAAwmB,EAAA5S,KAAA4S,OACAta,EAAA0H,KAAA1H,QAEA,OAAAsa,EAAAjD,OAAA,SAAAnY,GACA,IAAA4Y,GAAA,IAAA5Y,EAAA4R,SAAA,IAAA5R,EAAA0Q,SACAmoB,EAAA/3B,EAAA5C,KAAA,SAAA6E,GAAA,WAAAA,EAAA6O,SAAA,IAAA7O,EAAA2N,WAGA,OAAAkI,GAAAigB,GACA,UA7HA,iCCHA,SAAA95B,GACA,IAAA+5B,EAAA,UAAA/xB,EAAAhI,SAAAvK,iBAAAuK,0CCFA,SAAAA,EAAAhO,GAAA,IAIA2C,EAJAqlC,EAAAjoC,EAAA,IAOA4C,EADA,oBAAAE,KACAA,KACA,oBAAAR,OACAA,YACA,IAAA2L,EACAA,EAEAhO,EAKA,IAAAia,EAAAxW,OAAAukC,EAAA,EAAAvkC,CAAAd,iDCjBA3C,EAAAC,QAAA,SAAAgoC,GACA,IAAAA,EAAAC,gBAAA,CACA,IAAAloC,EAAAyD,OAAAw+B,OAAAgG,GAEAjoC,EAAA+H,WAAA/H,EAAA+H,SAAA,IACAtE,OAAAC,eAAA1D,EAAA,UACA4D,YAAA,EACAC,IAAA,WACA,OAAA7D,EAAAmD,KAGAM,OAAAC,eAAA1D,EAAA,MACA4D,YAAA,EACAC,IAAA,WACA,OAAA7D,EAAAkD,KAGAO,OAAAC,eAAA1D,EAAA,WACA4D,YAAA,IAEA5D,EAAAkoC,gBAAA,EAEA,OAAAloC,oBCvBA6e,EAAA,EACA,SAAAlc,GACA,IAAAsX,EACAkuB,EAAAxlC,EAAA6B,OAaA,MAXA,mBAAA2jC,EACAA,EAAAC,WACAnuB,EAAAkuB,EAAAC,YAEAnuB,EAAAkuB,EAAA,cACAA,EAAAC,WAAAnuB,GAGAA,EAAA,eAGAA,qECfA,IAAAstB,EAAAxnC,EAAA,QACAA,EAAA,SACAA,EAAA,SACAA,EAAA,KACAsO,EAAAtO,EAAA,sDAEA,IAAAsoC,GAAA,EAAAd,EAAA5qB,iBAAA,CACAzQ,MAAAo8B,EAAA9nB,QACA6J,OAAAke,EAAA/nB,QAHAzQ,QAAAy4B,EAAAhoB,oBAOA,SAAAioB,EAAA5sB,GACA,IAAAsB,EAAAsrB,EAKA,iBAAA5sB,EAAA/V,KACAqX,OAAAra,OACA,gBAAA+Y,EAAA/V,KACA,SAAAuI,EAAAhB,aAAAwO,EAAAsB,OAGA,OAAAkrB,EAAAlrB,EAAAtB,sECtBA5b,EAAAugB,QADA,eAAArD,EAAA9W,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAAqiC,EACA7sB,EAAAxV,UAAA,GACA,OAAAwV,EAAA/V,MAAA,eAmBA,MAdA,GAAApD,6HAAAmmB,CAAA1L,GAAA,EACA1X,GAAAoW,EAAApW,GACA6nB,SAAAzR,EAAAyR,SACAlM,QAAAvF,EAAAuF,QACAxf,MAAAia,EAAAja,MACAD,MAAAka,EAAAla,MACAkf,QAAA,EACAE,aAAA,EACAngB,iBAAAib,EAAAjb,iBACAyI,YAAAwS,EAAAxS,cAAA,EAVA4kB,QAAA,QAeAtP,IAAA,SAAAhZ,GACA,IAAAyH,EAAAzH,EAEA,OADAyH,EAAA2T,aAAA,EACA3T,IAGA,kBAGA,OAAA+P,EAAAwB,IAAA,SAAAhZ,GACA,IAAAyH,EAAAzH,EAIA,OAHAyH,EAAA3H,KAAAoW,EAAApW,KACA2H,EAAAyT,QAAA,GAEAzT,IAGA,qBACA,IAAAu7B,EAAAxrB,EAAAsQ,KAAA,SAAA9nB,GAAA,OAAAA,EAAAF,KAAAoW,EAAApW,KAEA,OAAAkjC,KAAA5nB,cAAAlF,EAAAkF,YACA5D,EAAAwB,IAAA,SAAAhZ,GACA,IAAAyH,EAAAzH,EAIA,OAHAyH,EAAA3H,KAAAoW,EAAApW,KACA2H,EAAA2T,YAAAlF,EAAAkF,aAEA3T,IAGA+P,EAEA,QAEA,OAAAA,IAvDA,IAAAurB,EAAAzoC,EAAAyoC,aAAA,qECEAzoC,EAAAugB,QADA,eAAArD,EAAA9W,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAAqiC,EACA7sB,EAAAxV,UAAA,GACA,OAAAwV,EAAA/V,MAAA,gBAIA,SAAApD,6HAAAmmB,CAAA1L,GAAA,EACA1X,GAAAoW,EAAApW,GACA7D,MAAAia,EAAAja,MACAif,OAAAhF,EAAAgF,OAJAlB,SAAA9D,EAAA8D,YASA,oBAEA,SAEA,QAEA,OAAAxC,IArBA,IAAAurB,EAAAzoC,EAAAyoC,aAAA,qECEAzoC,EAAAugB,QADA,eAAArD,EAAA9W,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAAqiC,EACA7sB,EAAAxV,UAAA,GACA,OAAAwV,EAAA/V,MAAA,iBASA,SAAApD,6HAAAmmB,CAAA1L,GAAA,EACA1X,GAAAoW,EAAApW,GACA4b,UAAAxF,EAAAwF,UACAD,QAAAvF,EAAAuF,QACAxf,MAAAia,EAAAja,MACAD,MAAAka,EAAAla,OAAAka,EAAAja,MACA+d,SAAA9D,EAAA8D,WAAA,EACAgK,UAAA,EACA9I,QAAA,EACA7V,MAAA,KACApK,iBAAAib,EAAAjb,iBACAyI,YAAAwS,EAAAxS,cAAA,EAZA4kB,QAAA,QAiBA,eAGA,OAAApS,EAAA+sB,gBACAzrB,EAAAwB,IAAA,SAAAhZ,GACA,IAAAqM,EAAArM,EAEA,OADAqM,EAAA6O,OAAAhF,EAAAgF,OACA7O,IAMA6J,EAAAyR,UAAA,EACAnQ,EAAAwB,IAAA,SAAAhZ,GACA,IAAAqM,EAAArM,EAIA,OAHAqM,EAAAvM,KAAAioB,SAAA7R,EAAAyR,SAAA,MACAtb,EAAA2X,UAAA,GAEA3X,IAIAmL,EAEA,kBAIA,OAAAtB,EAAAyR,UAAA,EACAnQ,EAAAwB,IAAA,SAAAhZ,GACA,IAAAqM,EAAArM,EAIA,OAHAqM,EAAAvM,KAAAioB,SAAA7R,EAAAyR,SAAA,MACAtb,EAAA2X,UAAA,GAEA3X,IAIAmL,EAEA,qBAEA,OAAAA,EAAAwB,IAAA,SAAAhZ,GACA,IAAAqM,EAAArM,EAWA,OATAqM,EAAA6O,OAAAhF,EAAAsT,QAAAhiB,KAAA,SAAAgP,GAAA,IAAA/O,EAAA+O,EAAA/O,KACApC,EAAAmR,EAAAnR,MACA,OAAAoC,EAAA3H,KAAAuM,EAAAvM,KACAuM,EAAAhH,SACA,KAKAgH,IAGA,uBAEA,OAAAmL,EAAAwB,IAAA,SAAAhZ,GACA,IAAAqM,EAAArM,EAEA,OADAqM,EAAA6O,OAAAhF,EAAAgF,OACA7O,IAGA,oBAEA,OAAA02B,EAEA,QAEA,OAAAvrB,IApGA,IAAAurB,EAAAzoC,EAAAyoC,aAAA,iJCAA,QAAA3oC,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,wDACAE,EAAA+1B,SAAA6S,EAAAroB,QAAAvgB,EAAA41B,UAAAiT,EAAAtoB,QAAAvgB,EAAA61B,MAAAiT,EAAAvoB,QAAAvgB,EAAA81B,KAAAiT,EAAAxoB,QAAAvgB,EAAAgjB,aAAAgmB,EAAAzoB,6VCNAwV,EAAA,oBAAAA,EAAA7Z,GAAA,IAAA5W,EAAA4W,EAAA5W,QAAAO,EAAAqW,EAAArW,KACAuM,EAAA8J,EAAA9J,4CAAA2jB,4DAAA/W,CAAAxH,MACAyH,EAAAzH,KAAA,CAAAlS,UAAAO,OAAAuM,eAEAoF,KAAAoQ,UAAA,eAOA1b,IAAA,wBACAvK,MAAA,WAKA,OAJA6V,KAAAyxB,WAAAzxB,KAAAlS,QAAA4jC,wBAGA1xB,KAAA/N,SAAA5E,KAAA2R,KAAAgB,KAAAyxB,WAAAt/B,IAAAvH,OAAA+mC,YAAA3xB,KAAAlS,QAAAgD,cACAkP,KAAA/N,YAMAyC,IAAA,WACAvK,MAAA,SAAAynC,GACA,OAAA5xB,KAAAlS,QAAAqd,cAAAymB,MAOAl9B,IAAA,OACAvK,MAAA,WAIA,OAHA6V,KAAAlS,QAAA6B,UAAAgY,IAAA3H,KAAApF,WAAAjD,aACAqI,KAAAlS,QAAAia,aAAA,wBACA/H,KAAAoQ,UAAA,EACApQ,QAOAtL,IAAA,OACAvK,MAAA,WAIA,OAHA6V,KAAAlS,QAAA6B,UAAAqY,OAAAhI,KAAApF,WAAAjD,aACAqI,KAAAlS,QAAAia,aAAA,yBACA/H,KAAAoQ,UAAA,EACApQ,WAjDA,0UCAApJ,EAAAtO,EAAA,GAEA81B,EAAA,oBAAAA,EAAA1Z,GAAA,IAAA5W,EAAA4W,EAAA5W,QAAAO,EAAAqW,EAAArW,KAAAuM,EAAA8J,EAAA9J,WACA3I,EAAAyS,EAAAzS,0CAAAmsB,4DAAA5W,CAAAxH,MACAyH,EAAAzH,KAAA,CAAAlS,UAAA8M,aAAAvM,OAAA4D,aAEA+N,KAAA6xB,QAAA,EACA7xB,KAAA8xB,WAAA,EACA9xB,KAAAmX,YAAA,EACAnX,KAAA0H,YAAA,EACA1H,KAAA+W,WAAA,EAEA/W,KAAA+M,SAAA/M,KAAA+M,SAAAD,KAAA9M,MACAA,KAAAgN,QAAAhN,KAAAgN,QAAAF,KAAA9M,mBAKAtL,IAAA,oBACAvK,MAAA,WACA6V,KAAAlS,QAAAqqB,iBAAA,QAAAnY,KAAA+M,UACA/M,KAAAlS,QAAAqqB,iBAAA,OAAAnY,KAAAgN,YAOAtY,IAAA,uBACAvK,MAAA,WACA6V,KAAAlS,QAAAwqB,oBAAA,QAAAtY,KAAA+M,UACA/M,KAAAlS,QAAAwqB,oBAAA,OAAAtY,KAAAgN,YAQAtY,IAAA,aAAAvK,MAAA,SAAA4nC,GACA,IAAAC,EAAApjC,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,MAAAgI,EAAAxC,mBACA,QAAA/I,IAAA0mC,EACA,SAKA,IAAAE,GAAA,EAOA,MANA,SAAAjyB,KAAA/N,SACAggC,EAAAF,GAAAC,EACA,QAAAhyB,KAAA/N,WACAggC,GAAA,GAGAA,KAMAv9B,IAAA,sBACAvK,MAAA,SAAA+nC,GACAlyB,KAAAlS,QAAAia,aAAA,wBAAAmqB,MAKAx9B,IAAA,yBACAvK,MAAA,WACA6V,KAAAlS,QAAAma,gBAAA,4BAEAvT,IAAA,OACAvK,MAAA,SAAA4nC,GACA/xB,KAAAlS,QAAA6B,UAAAgY,IAAA3H,KAAApF,WAAA/C,WACAmI,KAAAlS,QAAAia,aAAA,wBACA/H,KAAA6xB,QAAA,EAEA7xB,KAAAiyB,WAAAF,KACA/xB,KAAAlS,QAAA6B,UAAAgY,IAAA3H,KAAApF,WAAA3C,cACA+H,KAAA8xB,WAAA,MAGAp9B,IAAA,QACAvK,MAAA,WACA6V,KAAAlS,QAAA6B,UAAAqY,OAAAhI,KAAApF,WAAA/C,WACAmI,KAAAlS,QAAAia,aAAA,yBACA/H,KAAA4Q,yBACA5Q,KAAA6xB,QAAA,EAGA7xB,KAAA8xB,YACA9xB,KAAAlS,QAAA6B,UAAAqY,OAAAhI,KAAApF,WAAA3C,cACA+H,KAAA8xB,WAAA,MAGAp9B,IAAA,QACAvK,MAAA,WACA6V,KAAAmX,YACAnX,KAAAlS,QAAA0iB,WAGA9b,IAAA,gBACAvK,MAAA,WACA6V,KAAAlS,QAAA6B,UAAAgY,IAAA3H,KAAApF,WAAAhD,eAEAlD,IAAA,mBACAvK,MAAA,WACA6V,KAAAlS,QAAA6B,UAAAqY,OAAAhI,KAAApF,WAAAhD,eAKAlD,IAAA,SACAvK,MAAA,WACA6V,KAAAlS,QAAA6B,UAAAqY,OAAAhI,KAAApF,WAAA9C,eACAkI,KAAAlS,QAAAma,gBAAA,iBACA,eAAAjI,KAAA3R,MACA2R,KAAAlS,QAAAia,aAAA,gBAEA/H,KAAA0H,YAAA,KAKAhT,IAAA,UACAvK,MAAA,WACA6V,KAAAlS,QAAA6B,UAAAgY,IAAA3H,KAAApF,WAAA9C,eACAkI,KAAAlS,QAAAia,aAAA,wBACA,eAAA/H,KAAA3R,MACA2R,KAAAlS,QAAAia,aAAA,iBAEA/H,KAAA0H,YAAA,KAEAhT,IAAA,OACAvK,MAAA,SAAA2D,IACA,EAAA8I,EAAA7H,MAAAjB,EAAAkS,KAAAlS,YAEA4G,IAAA,SACAvK,MAAA,SAAA2D,GAEAkS,KAAAlS,QAAAsB,WAAAC,aAAAvB,EAAAkS,KAAAlS,SAEAkS,KAAAlS,QAAAsB,WAAAoC,YAAAwO,KAAAlS,YAKA4G,IAAA,kBACAvK,MAAA,WACA6V,KAAAlS,QAAA6B,UAAAgY,IAAA3H,KAAApF,WAAA1C,cACA8H,KAAAlS,QAAAia,aAAA,oBACA/H,KAAA+W,WAAA,KAKAriB,IAAA,qBACAvK,MAAA,WACA6V,KAAAlS,QAAA6B,UAAAqY,OAAAhI,KAAApF,WAAA1C,cACA8H,KAAAlS,QAAAma,gBAAA,aACAjI,KAAA+W,WAAA,KAKAriB,IAAA,WACAvK,MAAA,WACA6V,KAAAmX,YAAA,KAKAziB,IAAA,UACAvK,MAAA,WACA6V,KAAAmX,YAAA,QA5KA,0UCFAvgB,EAAAtO,EAAA,GAEA+1B,EAAA,oBAAAA,EAAA3Z,GAAA,IAAA5W,EAAA4W,EAAA5W,QAAAO,EAAAqW,EAAArW,KAAAuM,EAAA8J,EAAA9J,WACAlB,EAAAgL,EAAAhL,kDAAA2kB,4DAAA7W,CAAAxH,MACAyH,EAAAzH,KAAA,CAAAlS,UAAAO,OAAAuM,aAAAlB,qBAEAsG,KAAAlS,UACAkS,KAAApF,aACAoF,KAAAmX,WAAAnX,KAAAlS,UAAAmB,SAAAsqB,cACAvZ,KAAA0H,YAAA,EAGA1H,KAAAmyB,SAAAnyB,KAAAmyB,SAAArlB,KAAA9M,MACAA,KAAAoyB,SAAApyB,KAAAoyB,SAAAtlB,KAAA9M,MACAA,KAAA+M,SAAA/M,KAAA+M,SAAAD,KAAA9M,MACAA,KAAAgN,QAAAhN,KAAAgN,QAAAF,KAAA9M,mBAcAtL,IAAA,oBACAvK,MAAA,WACA6V,KAAAlS,QAAAqqB,iBAAA,QAAAnY,KAAAoyB,UACApyB,KAAAlS,QAAAqqB,iBAAA,QAAAnY,KAAAmyB,UACAnyB,KAAAlS,QAAAqqB,iBAAA,QAAAnY,KAAA+M,UACA/M,KAAAlS,QAAAqqB,iBAAA,OAAAnY,KAAAgN,SAEAhN,KAAAlS,QAAAsqB,MACApY,KAAAlS,QAAAsqB,KAAAD,iBAAA,QAAAnY,KAAAwN,iBAGA9Y,IAAA,uBACAvK,MAAA,WACA6V,KAAAlS,QAAAwqB,oBAAA,QAAAtY,KAAAoyB,UACApyB,KAAAlS,QAAAwqB,oBAAA,QAAAtY,KAAAmyB,UACAnyB,KAAAlS,QAAAwqB,oBAAA,QAAAtY,KAAA+M,UACA/M,KAAAlS,QAAAwqB,oBAAA,OAAAtY,KAAAgN,SAEAhN,KAAAlS,QAAAsqB,MACApY,KAAAlS,QAAAsqB,KAAAE,oBAAA,QAAAtY,KAAAwN,iBAGA9Y,IAAA,SACAvK,MAAA,WACA6V,KAAAlS,QAAAma,gBAAA,YACAjI,KAAA0H,YAAA,KAEAhT,IAAA,UACAvK,MAAA,WACA6V,KAAAlS,QAAAia,aAAA,eACA/H,KAAA0H,YAAA,KAEAhT,IAAA,QACAvK,MAAA,WACA6V,KAAAmX,YACAnX,KAAAlS,QAAA0iB,WAGA9b,IAAA,OACAvK,MAAA,WACA6V,KAAAmX,YACAnX,KAAAlS,QAAA+iB,UAQAnc,IAAA,QAAAvK,MAAA,WACA,IAAA0sB,IAAAjoB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,KAAAA,UAAA,GASA,OARAoR,KAAAlS,QAAA3D,QACA6V,KAAAlS,QAAA3D,MAAA,IAGA0sB,GACA7W,KAAA6W,WAGA7W,QAOAtL,IAAA,WAAAvK,MAAA,SAAAkoC,GACA,IAAA/iB,EAAAtP,KACArO,EAAA,SAAAE,GACAyd,EAAAxhB,QAAAkE,MAAAH,SAGA,GAAAmO,KAAAsM,kBAAA,CAGA,IAAAgmB,EAAAtyB,KAAAlS,QAAA3D,MAAAsD,QAAAuS,KAAAsM,kBAAA7e,OAAA,MAGAuS,KAAAlS,QAAA3D,OAAAmoC,GAAAD,IACAryB,KAAAuyB,UAAA5gC,QAIAqO,KAAAuyB,UAAA5gC,MAGA+C,IAAA,YACAvK,MAAA,SAAAwH,GACA,SAAAiF,EAAAnF,kBAAAuO,KAAAlS,QAAA6D,MAEA+C,IAAA,sBACAvK,MAAA,SAAA+nC,GACAlyB,KAAAlS,QAAAia,aAAA,wBAAAmqB,MAEAx9B,IAAA,yBACAvK,MAAA,WACA6V,KAAAlS,QAAAma,gBAAA,4BAEAvT,IAAA,WACAvK,MAAA,WACA,eAAA6V,KAAA3R,MACA2R,KAAA6W,cAGAniB,IAAA,WAAAvK,MAAA,SAAAuJ,GAEAA,EAAA3D,SAEAiQ,KAAAlS,SAAAkS,KAAAwyB,cACA9+B,EAAAkmB,oBAGAllB,IAAA,WACAvK,MAAA,WACA6V,KAAAmX,YAAA,KAEAziB,IAAA,UACAvK,MAAA,WACA6V,KAAAmX,YAAA,KAlIAziB,IAAA,cACA+9B,IAAA,SAAA7gC,GACAoO,KAAAlS,QAAA8D,iBAEA8C,IAAA,QACA+9B,IAAA,SAAAtoC,GACA6V,KAAAlS,QAAA3D,MAAA,GAAAA,GAGAiC,IAAA,WACA,SAAAwK,EAAArI,WAAAyR,KAAAlS,QAAA3D,aAzBA,0UCFA+f,EAAA5hB,EAAA,GAEAg2B,EAAA,oBAAAA,EAAA5Z,GACA,IAAA5W,EAAA4W,EAAA5W,yCAAAwwB,4DAAA9W,CAAAxH,MACAyH,EAAAzH,KAAA,CAAAlS,YAEAkS,KAAA0yB,UAAA1yB,KAAAlS,QAAA+C,UACAmP,KAAA2yB,OAAA3yB,KAAAlS,QAAAgD,aACAkP,KAAA6Y,cAAA7Y,KAAAlS,QAAAwC,sBAEAoE,IAAA,QACAvK,MAAA,WACA6V,KAAAlS,QAAAwD,UAAA,MAEAoD,IAAA,SACAvK,MAAA,SAAAyoC,GACA5yB,KAAAlS,QAAAwB,YAAAsjC,MAEAl+B,IAAA,WACAvK,MAAA,SAAAynC,GACA,OAAA5xB,KAAAlS,QAAAqd,cAAAymB,MAEAl9B,IAAA,cACAvK,MAAA,WACA6V,KAAAlS,QAAA+C,UAAA,KAEA6D,IAAA,iBAAAvK,MAAA,SAAAoQ,EAAAnK,GACA,IAAAkf,EAAAtP,KACA,GAAAzF,EAAA,CAIA,IAAAs4B,EAAA7yB,KAAAlS,QAAAgD,aACAgiC,EAAAv4B,EAAAzJ,aAEAiiC,EAAAx4B,EAAAxJ,UAAA+hC,EAEAE,EAAAhzB,KAAAlS,QAAA+C,UAAAgiC,EAEAI,EAAA7iC,EAAA,EAAA4P,KAAAlS,QAAA+C,UAAAkiC,EAAAC,EAAAz4B,EAAAxJ,UAKAgC,sBAAA,SAAAmgC,GACA5jB,EAAA6jB,eAAAD,EAAAD,EAAA7iC,SAGAsE,IAAA,cACAvK,MAAA,SAAAuoC,EAAAU,EAAAH,GACA,IAAAI,GAAAJ,EAAAP,GAAAU,EACAtS,EAAAuS,EAAA,EAAAA,EAAA,EAEArzB,KAAAlS,QAAA+C,UAAA6hC,EAAA5R,KAEApsB,IAAA,YACAvK,MAAA,SAAAuoC,EAAAU,EAAAH,GACA,IAAAI,GAAAX,EAAAO,GAAAG,EACAtS,EAAAuS,EAAA,EAAAA,EAAA,EAEArzB,KAAAlS,QAAA+C,UAAA6hC,EAAA5R,KAEApsB,IAAA,iBAAAvK,MAAA,SAAA+oC,EAAAD,EAAA7iC,GACA,IAAAmf,EAAAvP,KACAozB,EAAAlpB,EAAAopB,gBACAC,EAAAvzB,KAAAlS,QAAA+C,UACA2iC,GAAA,EAEApjC,EAAA,GACA4P,KAAAyzB,YAAAF,EAAAH,EAAAH,GAEAM,EAAAN,IACAO,GAAA,KAGAxzB,KAAA0zB,UAAAH,EAAAH,EAAAH,GAEAM,EAAAN,IACAO,GAAA,IAIAA,GACAzgC,sBAAA,WACAwc,EAAA4jB,eAAAD,EAAAD,EAAA7iC,WAlFA,iVCFA9H,EAAA,iCACAsO,EAAAtO,EAAA,iBAEA,SAAAkjB,EAAA9G,GAAA,IAAA5W,EAAA4W,EAAA5W,QAAA8M,EAAA8J,EAAA9J,WACA7B,EAAA2L,EAAA3L,2CAAAyS,4DAAAhE,CAAAxH,MAAA,IAAAsP,gKAAAqkB,CAAA3zB,MAAAwL,EAAAooB,WAAA5nC,OAAA8V,eAAA0J,IAAAjiB,KAAAyW,KAAA,CAAAlS,UAAA8M,gBAEA,OAHA0U,EAAAvW,YAGAuW,EAJA,+TACAukB,EAAA9qB,eAKArU,IAAA,QACA+9B,IAAA,SAAAh+B,GACA,IACAq/B,GADA,EAAAl9B,EAAApC,gBAAAC,GACAqL,KAAAE,KAAAjH,WAEAiH,KAAAlS,QAAAia,aAAA,QAAA+rB,GACA9zB,KAAAlS,QAAA3D,MAAA2pC,GAIA1nC,IAAA,WACA,gQAAA2nC,CAAAvoB,EAAA/e,UAAAmnC,WAAA5nC,OAAA8V,eAAA0J,EAAA/e,WAAA,QAAAuT,UAjBAwL,gVCFAljB,EAAA,SACAA,EAAA,0EAEA,SAAAmjB,EAAA/G,GAAA,IAAA5W,EAAA4W,EAAA5W,QACA8M,EAAA8J,EAAA9J,WACA,uCADA6Q,4DAAAjE,CAAAxH,oKACA2zB,CAAA3zB,MAAAyL,EAAAmoB,WAAA5nC,OAAA8V,eAAA2J,IAAAliB,KAAAyW,KAAA,CAAAlS,UAAA8M,gBAHA,+TACAi5B,EAAA9qB,eA+BArU,IAAA,oBACAvK,MAAA,SAAAkqB,GACArU,KAAAlS,QAAAwD,UAAA,GACA0O,KAAAlS,QAAAwB,YAAA+kB,MA9BA3f,IAAA,oBACAtI,IAAA,WACA,OAAA4T,KAAAlS,QAAAqd,cAAA,0BAEAzW,IAAA,eACAtI,IAAA,WACA,OAAAmE,MAAAC,KAAAwP,KAAAlS,QAAA8vB,qBAAA,gBAEAlpB,IAAA,UACAtI,IAAA,WACA,OAAAmE,MAAAC,KAAAwP,KAAAlS,QAAA0gB,UAGAikB,IAAA,SAAAjkB,GACA,IAAA6F,EAAAplB,SAAAokB,yBAQA7E,EAAAhJ,QAAA,SAAAwuB,GAAA,OAPAjrC,EAOAirC,EALAvrC,EAAAwrC,EAAAlrB,QAAAiB,OAAAjhB,QAEAsrB,EAAA/kB,YAAA7G,GAJA,IAAAM,EAEAN,IAQAuX,KAAAk0B,kBAAA7f,OA9BA5I,kCCFA,IAAA0oB;;;;;;;;;;;CAOA,WAGA,IAAAC,EAAA,GAAA1nC,eAEA,SAAAkO,IAGA,IAFA,IAAAy5B,EAAA,GAEA5oC,EAAA,EAAAA,EAAAmD,UAAAnB,OAAAhC,IAAA,CACA,IAAAsW,EAAAnT,UAAAnD,GACA,GAAAsW,EAAA,CAEA,IAAAuyB,EAAA/1B,EAAAwD,GAEA,cAAAuyB,GAAA,WAAAA,EACAD,EAAAv/B,KAAAiN,QACA,GAAAxR,MAAAuvB,QAAA/d,MAAAtU,OAAA,CACA,IAAA8mC,EAAA35B,EAAAiE,MAAA,KAAAkD,GACAwyB,GACAF,EAAAv/B,KAAAy/B,QAEA,cAAAD,EACA,QAAA5/B,KAAAqN,EACAqyB,EAAA7qC,KAAAwY,EAAArN,IAAAqN,EAAArN,IACA2/B,EAAAv/B,KAAAJ,IAMA,OAAA2/B,EAAAv0B,KAAA,UAGA,IAAAvX,KAAAC,SACAoS,EAAAmO,QAAAnO,EACArS,EAAAC,QAAAoS,QAKAvP,KAFA8oC,EAAA,WACA,OAAAv5B,GAAAiE,MAAArW,EADA,OAEAD,EAAAC,QAAA2rC,GAxCA,yICPA,IAAAjqB,EAAA5hB,EAAA,GACAE,EAAA80B,UAAA,SAAA5Y,GAAA,IAAAva,EAAAua,EAAAva,MAAAD,EAAAwa,EAAAxa,MAAA8D,EAAA0W,EAAA1W,GAAA2b,EAAAjF,EAAAiF,QAAAzB,EAAAxD,EAAAwD,SAAA0B,EAAAlF,EAAAkF,UAAAzgB,EAAAub,EAAAvb,iBAAAyI,EAAA8S,EAAA9S,YAAA4kB,EAAA9R,EAAA8R,QAWA,OACAnoB,KAAA6b,EAAA5O,aAAAC,WACApR,QACAD,QACA8D,KACA2b,UACAzB,WACA0B,YACAzgB,mBACAyI,cAVA4kB,YAaAhuB,EAAA0vB,cAAA,SAAAR,GACA,OACArpB,KAAA6b,EAAA5O,aAAAE,eAFAkc,YAKAlvB,EAAA+pB,gBAAA,eAAAnJ,IAAAxa,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,KAAAA,UAAA,GACA,OACAP,KAAA6b,EAAA5O,aAAAG,iBAFA2N,WAKA5gB,EAAA+0B,aAAA,WACA,OADAlvB,KAAA6b,EAAA5O,aAAAI,gIClCA,IAAAwO,EAAA5hB,EAAA,GACAE,EAAA0S,QAAA,SAAAwJ,GAAA,IAAAva,EAAAua,EAAAva,MAAAD,EAAAwa,EAAAxa,MAAA8D,EAAA0W,EAAA1W,GAAA6nB,EAAAnR,EAAAmR,SAAAlM,EAAAjF,EAAAiF,QAAAxgB,EAAAub,EAAAvb,iBAAAyI,EAAA8S,EAAA9S,YAAA4kB,EAAA9R,EAAA8R,QAUA,OACAnoB,KAAA6b,EAAA5O,aAAAM,SACAzR,QACAD,QACA8D,KACA6nB,WACAlM,UACAxgB,mBACAyI,cATA4kB,YAYAhuB,EAAA2S,WAAA,SAAAnN,EAAA6nB,GACA,OACAxnB,KAAA6b,EAAA5O,aAAAO,YACA7N,KAHA6nB,aAMArtB,EAAA4S,cAAA,SAAApN,EAAAsb,GACA,OACAjb,KAAA6b,EAAA5O,aAAAQ,eACA9N,KAHAsb,oGC5BA,IAAAY,EAAA5hB,EAAA,GAEAE,EAAAu1B,SAAA,SAAA5zB,EAAA6D,EAAAob,EAAAlB,GACA,OACA7Z,KAAA6b,EAAA5O,aAAAK,UACAxR,QACA6D,KACAob,SALAlB,+ECHA1f,EAAA2pB,SAAA,WACA,OADA9jB,KAAA,cAIA7F,EAAAozB,QAAA,SAAAlW,GACA,OACArX,KAAA,WAFAqX,c1GDA,gCAAAld,QAAA,YAAA+V,EAAA/V,WAAA,WAAA+V,EAAAhW,GACAA,EAAAC,QAAA2C,IAEA,mBAAAqpC,QAAAlsC,EAAA,MACAksC,OAAA,GAAArpC,GAEA,gCAAA3C,QAAA,YAAA+V,EAAA/V,UACAA,QAAA,QAAA2C,IAGAD,EAAA,QAAAC,88E2GbA5C,EAAAC,QAAiBF,EAAAqE,EAAuB,svBCqG1B8nC,EACAC,EASAC,EACAl0B,oGA7GTlQ,MAAM9D,UAAUupB,MACjBhqB,OAAOC,eAAesE,MAAM9D,UAAW,OAAQ,CAC3CtC,MAD2C,SACrCyqC,GAEF,GAAY,MAAR50B,KACA,MAAM,IAAI5B,UAAU,iCAGxB,IAAMrS,EAAIC,OAAOgU,MAGXoiB,EAAMr2B,EAAE0B,SAAW,EAGzB,GAAyB,mBAAdmnC,EACP,MAAM,IAAIx2B,UAAU,gCAUxB,IANA,IAAMy2B,EAAUjmC,UAAU,GAGtBkmC,EAAI,EAGDA,EAAI1S,GAAK,CAKZ,IAAM2S,EAAShpC,EAAE+oC,GACjB,GAAIF,EAAUrrC,KAAKsrC,EAASE,EAAQD,EAAG/oC,GACnC,OAAOgpC,EAGXD,MAMR5oC,cAAc,EACduS,UAAU,IAMblO,MAAM9D,UAAUuoC,WACjBhpC,OAAOC,eAAesE,MAAM9D,UAAW,YAAa,CAChDtC,MADgD,SAC1CyqC,GAEF,GAAY,MAAR50B,KACA,MAAM,IAAI5B,UAAU,iCAGxB,IAAMrS,EAAIC,OAAOgU,MAGXoiB,EAAMr2B,EAAE0B,SAAW,EAGzB,GAAyB,mBAAdmnC,EACP,MAAM,IAAIx2B,UAAU,gCAUxB,IANA,IAAMy2B,EAAUjmC,UAAU,GAGtBkmC,EAAI,EAGDA,EAAI1S,GAAK,CAKZ,IAAM2S,EAAShpC,EAAE+oC,GACjB,GAAIF,EAAUrrC,KAAKsrC,EAASE,EAAQD,EAAG/oC,GACnC,OAAO+oC,EAGXA,IAIJ,OAAQ,GAEZ5oC,cAAc,EACduS,UAAU,IAMblO,MAAMC,OACPD,MAAMC,MACIikC,EAAQzoC,OAAOS,UAAUkB,SACzB+mC,EAAa,SAAU/qC,GACzB,MAAqB,mBAAPA,GAAwC,sBAAnB8qC,EAAMlrC,KAAKI,IAQ5CgrC,EAAiBtnC,KAAK4nC,IAAI,EAAG,IAAM,EACnCx0B,EAAW,SAAUtW,GACvB,IAAMi4B,EARQ,SAAUj4B,GACxB,IAAM+qC,EAASC,OAAOhrC,GACtB,OAAI8U,MAAMi2B,GAAkB,EACb,IAAXA,GAAiBE,SAASF,IACtBA,EAAS,EAAI,GAAK,GAAK7nC,KAAKC,MAAMD,KAAKg2B,IAAI6R,IADHA,EAKpCn2B,CAAU5U,GACtB,OAAOkD,KAAKF,IAAIE,KAAKD,IAAIg1B,EAAK,GAAIuS,IAI/B,SAAczG,GAEjB,IAGMz5B,EAAQzI,OAAOkiC,GAGrB,GAAiB,MAAbA,EACA,MAAM,IAAI9vB,UAAU,oEAIxB,IACI0wB,EADEuG,EAAQzmC,UAAUnB,OAAS,EAAImB,UAAU,QAAK,EAEpD,QAAqB,IAAVymC,EAAuB,CAG9B,IAAKX,EAAWW,GACZ,MAAM,IAAIj3B,UAAU,qEAIpBxP,UAAUnB,OAAS,IACnBqhC,EAAIlgC,UAAU,IAkBtB,IAZA,IAWImmC,EAXE3S,EAAM3hB,EAAShM,EAAMhH,QAMrB6nC,EAAIZ,EAlCA10B,MAkCgBhU,OAAO,IAlCvBgU,KAkC6BoiB,IAAQ,IAAI7xB,MAAM6xB,GAGrD0S,EAAI,EAGDA,EAAI1S,GACP2S,EAAStgC,EAAMqgC,GAEXQ,EAAER,GADFO,OACoB,IAANvG,EAAoBuG,EAAMN,EAAQD,GAAKO,EAAM9rC,KAAKulC,EAAGiG,EAAQD,GAEpEC,EAEXD,GAAK,EAKT,OAFAQ,EAAE7nC,OAAS20B,EAEJkT,KAKdv1B,OAAOtT,UAAUwe,WAClBlL,OAAOtT,UAAUwe,SAAW,SAAUhQ,EAAQqnB,GAK1C,MAJqB,iBAAVA,IACPA,EAAQ,KAGRA,EAAQrnB,EAAOxN,OAASuS,KAAKvS,UAGO,IAAjCuS,KAAKrP,QAAQsK,EAAQqnB,KAIpC6S,OAAOl2B,MAAQk2B,OAAOl2B,OAAS,SAAS9U,GACpC,MAAwB,iBAAVA,GAAsB8U,MAAM9U,IAGzC6B,OAAO2a,QACR3a,OAAOC,eAAeD,OAAQ,SAAU,CACpCG,YAAY,EACZD,cAAc,EACduS,UAAU,EACVtU,MAAO,SAAS4F,EAAQwlC,GAEpB,GAAIxlC,QACA,MAAM,IAAIqO,UAAU,2CAIxB,IADA,IAAIo3B,EAAKxpC,OAAO+D,GACPtE,EAAI,EAAGA,EAAImD,UAAUnB,OAAQhC,IAAK,CACvC,IAAIgqC,EAAa7mC,UAAUnD,GAC3B,GAAIgqC,QAKJ,IADA,IAAIC,EAAY1pC,OAAOkK,KAAKlK,OAAOypC,IAC1BE,EAAY,EAAGvT,EAAMsT,EAAUjoC,OAAQkoC,EAAYvT,EAAKuT,IAAa,CAC1E,IAAIC,EAAUF,EAAUC,GACpBE,EAAO7pC,OAAO8pC,yBAAyBL,EAAYG,QAC1CvqC,IAATwqC,GAAsBA,EAAK1pC,aAC3BqpC,EAAGI,GAAWH,EAAWG,KAIrC,OAAOJ,KAKd/mC,QAAQhC,UAAUk2B,UACnBl0B,QAAQhC,UAAUk2B,QAAUl0B,QAAQhC,UAAUspC,mBAC1CtnC,QAAQhC,UAAUupC,uBAGrBvnC,QAAQhC,UAAUwpC,UACnBxnC,QAAQhC,UAAUwpC,QAAU,SAASpW,GACjC,IAAIrwB,EAAKwQ,KAET,EAAG,CACC,GAAIxQ,EAAGmzB,QAAQ9C,GAAI,OAAOrwB,EAC1BA,EAAKA,EAAGE,eAAiBF,EAAGJ,iBAChB,OAAPI,GAA+B,IAAhBA,EAAG0mC,UAC3B,OAAO,OAQf,IAAMvhC,EAAS6B,SAASsW,KAAKvjB,KAAKiN,SAASjN,KAAMgH,MAAM9D,UAAUkI,QAC3DwhC,EAAe3/B,SAASsW,KAAKvjB,KAAKiN,SAASjN,KAAMyC,OAAOS,UAAUyT,sBAClEjV,EAASuL,SAASsW,KAAKvjB,KAAKiN,SAASjN,KAAMgH,MAAM9D,UAAUxB,QAC3DiL,EAAOkgC,QAAQC,QAEhBrqC,OAAO+kB,SACR/kB,OAAO+kB,OAAS,SAAgB9S,GAC5B,OAAOtJ,EAAOuB,EAAK+H,GAAI,SAACq4B,EAAGxB,GAAJ,OAAU7pC,EAAOqrC,EAAgB,iBAANxB,GAAkBqB,EAAal4B,EAAG62B,GAAK,CAAC72B,EAAE62B,IAAM,KAAK,MAI1G9oC,OAAO4gC,UACR5gC,OAAO4gC,QAAU,SAAiB3uB,GAC9B,OAAOtJ,EAAOuB,EAAK+H,GAAI,SAACE,EAAG22B,GAAJ,OAAU7pC,EAAOkT,EAAgB,iBAAN22B,GAAkBqB,EAAal4B,EAAG62B,GAAK,CAAC,CAACA,EAAG72B,EAAE62B,KAAO,KAAK,o2BCjQpH,IAAMyB,EAAW,IACXC,EAAS,SA8GR,SAASC,EAAkBC,EAASC,GACnCA,GACAD,EAAQ1kC,MAAM4kC,SAAW,UACzBF,EAAQ1kC,MAAMo7B,QAAU,QACxBsJ,EAAQ1kC,MAAM6kC,UAAY,SAE1BH,EAAQ1kC,MAAM6kC,UAAY,EAC1BH,EAAQ1kC,MAAM4kC,SAAW,SACzBF,EAAQ1kC,MAAMo7B,QAAU,QAIzB,SAAS0J,EAASJ,GAAkE,IAAzDK,EAAyDnoC,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAA5C,KAAMooC,EAAsCpoC,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAA3B2nC,EAAUlD,EAAiBzkC,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAR4nC,EAC/EE,EAAQ1kC,MAAM4kC,SAAW,SACzBF,EAAQ1kC,MAAM6kC,UAAd,GAAA5rC,OAA6ByrC,EAAQpiC,aAArC,MAEA2iC,IAAM,CACFC,QAASR,EACTG,UAAW,CAACH,EAAQpiC,aAAc,GAClC0iC,WACA3D,SACA8D,SAAU,WACNV,EAAkBC,GAAS,GAC3BA,EAAQ1kC,MAAM4kC,SAAW,SACzBF,EAAQ1kC,MAAMo7B,QAAU,OACxBsJ,EAAQ1kC,MAAM6kC,UAAY,IAEtBE,GACAA,OAMT,SAASK,EAAOV,GAAkE,IAAzDK,EAAyDnoC,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAA5C,KAAMooC,EAAsCpoC,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAA3B2nC,EAAUlD,EAAiBzkC,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAR4nC,EAC7EE,EAAQ1kC,MAAMo7B,QAAU,QAExB6J,IAAM,CACFC,QAASR,EACTG,UAAW,CAAC,EAAGH,EAAQpiC,cACvB0iC,WACA3D,SACA8D,SAAU,WACNV,EAAkBC,GAAS,GAEvBK,GACAA,OC9JDM,kBDKX,SAAAA,IAAqB,IAAAC,EAAAhoB,qCAAA+nB,4DAAA7vB,CAAAxH,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjBwJ,OAAAgoB,EAAAC,EAAAF,IAAA9tC,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,8CAATlR,SACKw3B,UAAYloB,EAAKxhB,QAAQ6B,UAAUC,SAAS,eAAgB,EACjE0f,EAAKmoB,cAAe,EACpBnoB,EAAKooB,oBAAqB,EAE1BpoB,EAAKqoB,oBAAsB,GAE3BroB,EAAKsoB,eAAiBtoB,EAAKsoB,eAAe9qB,KAApB+qB,IAAAvoB,KACtBA,EAAKwoB,iBAAmBxoB,EAAKwoB,iBAAiBhrB,KAAtB+qB,IAAAvoB,KACxBA,EAAKyoB,oBAAsBzoB,EAAKyoB,oBAAoBjrB,KAAzB+qB,IAAAvoB,KAC3BA,EAAKxB,OAXYwB,wPADc0oB,oDAgB/B,MAAO,CAAC,UAAW,+CAGhB,IAAAzoB,EAAAvP,KACHy2B,EAAkBz2B,KAAKi4B,KAAKvB,QAAS12B,KAAKw3B,WAErCjnC,MAAMuvB,QAAQ9f,KAAKi4B,KAAKC,WACzBl4B,KAAKi4B,KAAKC,QAAU,CAACl4B,KAAKi4B,KAAKC,UAGnCl4B,KAAKi4B,KAAKC,QAAQ1yB,QAAQ,SAAC0yB,GACvBA,EAAQnwB,aAAa,gBAAiBwH,EAAKioB,UAAU7pC,cAEzDqS,KAAKi4B,KAAKvB,QAAQ3uB,aAAa,cAAe/H,KAAKw3B,UAAU7pC,YAE7DqS,KAAKm4B,sDAGM,IAAA1oB,EAAAzP,KACXA,KAAKi4B,KAAKC,QAAQ1yB,QAAQ,SAAC0yB,GACvBzoB,EAAK2oB,YAAYF,EAAS,QAASzoB,EAAKmoB,gBACxCnoB,EAAK2oB,YAAYF,EAAS,UAAWzoB,EAAKqoB,2DAInCpkC,QACU,IAAVA,GACyB,mBAAzBA,EAAMkmB,gBAEblmB,EAAMkmB,iBAGN5Z,KAAKy3B,eAELz3B,KAAKw3B,UACLx3B,KAAK82B,WAEL92B,KAAKo3B,mDAII1jC,GAGb,OAFgBA,EAAM2kC,OAGlB,KAAK,GACL,KAAK,GACIr4B,KAAK03B,oBACN13B,KAAK43B,eAAelkC,kDAQd,IAAAoc,EAAA9P,KAClBA,KAAKy3B,cAAe,EACpBz3B,KAAKw3B,WAAax3B,KAAKw3B,UAEvBx3B,KAAK23B,oBAAoBnyB,QAAQ,SAAC8yB,GAC9BA,EAAGxoB,EAAK0nB,8CAKZx3B,KAAKy3B,cAAe,EACpBz3B,KAAKi4B,KAAKC,QAAQ1yB,QAAQ,SAAC0yB,GACvBA,EAAQnwB,aAAa,gBAAiB,UAE1C/H,KAAKlS,QAAQ6B,UAAUgY,IAAI,aAC3ByvB,EAAOp3B,KAAKi4B,KAAKvB,QAAS12B,KAAK+3B,wDAI/B/3B,KAAKy3B,cAAe,EACpBz3B,KAAKi4B,KAAKC,QAAQ1yB,QAAQ,SAAC0yB,GACvBA,EAAQnwB,aAAa,gBAAiB,WAE1C/H,KAAKlS,QAAQ6B,UAAUqY,OAAO,aAC9B8uB,EAAS92B,KAAKi4B,KAAKvB,QAAS12B,KAAK+3B,sDAG5BO,GAAI,IAAAvoB,EAAA/P,KAGT,OAFAA,KAAK23B,oBAAoB7iC,KAAKwjC,GAEvB,WACHvoB,EAAK4nB,oBAAsB5nB,EAAK4nB,oBAAoBhoB,OAAO,SAACha,GAAD,OAAUA,IAAS2iC,0CEzG1FC,IAAkBC,cAAchE,OAAO,YAAa6C,uJCFvCoB,EAAkB,SAACC,GAAoB,IAE5CC,EAGAD,EAHAC,mBACAC,EAEAF,EAFAE,sBAIJ,OAFIF,EADAG,UAICD,GACDD,GAGKG,EAAmB,WAC5B,IAAMC,EAAO,IAAIlb,KAMjB,MAAO,CACHmb,cALe,GAAA/tC,OAAM8tC,EAAKE,WAAa,EAAxB,KAAAhuC,OAA6B8tC,EAAKG,UAAlC,KAAAjuC,OAA+C8tC,EAAKI,eAMnEC,kBALsBC,cAMtBC,gBALoB,YASfC,EAAiC,SAACC,GAC3C,YAAqCnuC,IAAjCmuC,EAAOC,wBAAwE,IAAjCD,EAAOC,uCCzBtD,SAASC,IACZ,OAAOC,MAAMC,IAAaC,uBACrBC,KAAKC,KACLC,MAAMC,KA6BR,SAASC,IACZ,OAAOC,IAAKC,UAGT,SAASC,EAAwBC,EAAaC,GAEjD,OAAOJ,IAAKK,iBAAiBV,KAAK,SAAC/wC,GAAS,IAChC0xC,EAAgB1xC,EAAhB0xC,YACR,OAAOd,MAAMY,EAAa,CACtBG,OAAQ,MACRC,QAAS,CACLC,eAAgB,mBAChBC,cAAa,UAAA5vC,OAAYwvC,EAAYK,WAEzCxoC,KAAMuD,KAAKE,UAAUukC,KAEpBR,KAAKC,KACLC,MAAMC,gDCrDNc,GAAuB,CAEhCC,gBAAiB,oBACjBC,kBAAmB,oGAEnBC,YAAa,eACbC,WAAY,eACZC,OAAQ,UACRC,MAAO,QACPC,YAAa,SAEbC,eAAgB,oBAChBC,iBAAkB,0BAClBC,2BAA4B,oCAC5BC,wBAAyB,6BAEzBC,aAAc,gBACdC,mBAAoB,0BAEpBC,kBAAmB,qBACnBC,eAAgB,mBAChBC,uBAAwB,mEAExBC,cAAe,iBACfC,6BAA8B,gFAC9BC,oBAAqB,wBAErBC,eAAgB,kBAChBC,gBAAiB,eACjBC,gBAAiB,eACjBC,4BAA6B,uBAC7BC,6BAA8B,yBAC9BC,WAAY,cACZC,YAAa,eAEbC,iBAAkB,6BAClBC,cAAe,kBACfC,YAAa,eACbC,cAAe,iBACfC,YAAa,eACbC,cAAe,iBAEfC,wBAAyB,kCACzBC,wBAAyB,iCACzBC,4BAA6B,qCAC7BC,2BAA4B,oCAE5BC,kBAAmB,gBACnBC,cAAe,WACfC,qBAAsB,mBACtBC,sBAAuB,oBAEvBC,2BAA4B,+BAE5BC,4BAA6B,oBAC7BC,qBAAsB,SACtBC,4BAA6B,UAC7BC,8BAA+B,UAC/BC,kCAAmC,SACnCC,eAAgB,UAChBC,qBAAsB,SACtBC,cAAe,SACfC,GAAI,KACJC,0BAA2B,gCAC3BC,6BAA8B,WAC9BC,2BAA4B,SAE5BC,2BAA4B,mKAC5BC,+BAAgC,kEAChCC,wBAAyB,8CACzBC,0BAA2B,mEAC3BC,+BAAgC,8CAChCC,6BAA8B,+CAE9BC,mBAAoB,wBACpBC,qBAAsB,mGACtBC,qBAAsB,mGAEtBC,0BAA2B,wBAC3BC,oCAAqC,mCACrCC,iCAAkC,wEAClCC,6BAA8B,mCAE9BC,wBAAyB,8BACzBC,2BAA4B,kCAC5BC,yBAA0B,iCAE1BC,kBAAmB,6CACnBC,oBAAqB,+BACrBC,0BAA2B,2BAC3BC,wBAAyB,yBACzBC,uBAAwB,wBACxBC,uBAAwB,kCACxBC,oBAAqB,6BAErBC,YAAa,GACbC,mBAAoB,EAEpBC,SAAU,WACVC,iBAAkB,6BAClBC,QAAS,UACTC,YAAa,eACbC,eAAgB,kBAChBC,aAAc,eACdC,SAAU,WACVC,cAAe,iBACfC,UAAW,aACXC,SAAU,YACVC,IAAK,MACLC,QAAS,UACT1H,KAAM,OACN2H,MAAO,QACPryC,KAAM,OACNiiB,KAAM,OACNqwB,aAAc,kBACdC,UAAW,YACXC,UAAW,YACXC,eAAgB,kBAChBC,cAAe,iBACfC,gBAAiB,mBACjBC,gBAAiB,oBACjBC,QAAS,WACTC,UAAW,aACXC,WAAY,cACZC,YAAa,eACbC,gBAAiB,qBACjBC,eAAgB,kBAChBC,cAAe,iBACfC,WAAY,cACZC,YAAa,eACbC,mBAAoB,uBACpBC,sBAAuB,0BACvBC,eAAgB,kBAChBC,aAAc,iBACdC,aAAc,iBACdC,aAAc,iBACdC,KAAM,YACNC,QAAS,UACTC,OAAQ,SACRC,aAAc,gBACdC,eAAgB,kBAChBC,cAAe,kBACfC,WAAY,cACZC,YAAa,eACbC,QAAS,UACTC,WAAY,SACZC,YAAa,eACbC,WAAY,cACZC,QAAS,UACTC,KAAM,OACNC,WAAY,cACZC,eAAgB,kBAChBC,WAAY,cACZC,gBAAiB,oBACjBC,YAAa,cACb/V,QAAS,UACTzc,MAAO,QACPyyB,OAAQ,SACRC,gBAAiB,oBACjBC,cAAe,iBACfC,eAAgB,mBAChBC,aAAc,gBACdC,UAAW,aACXC,SAAU,YACVC,uBAAwB,sDACxBC,uBAAwB,IACxBC,iCAAkC,OCtKzBC,GAAoB,CAC7Bt1B,QAAS,CACLu1B,QAAS,OACTC,KAAM,UACNC,MAAO,OACPC,IAAK,WAETC,OAAQ,SCPCC,GAAY,CACrBC,QAAS,EACTC,UAAW,EACXC,UAAW,EACXC,eAAgB,EAChBC,cAAe,EACfC,UAAW,EACXC,KAAM,EACNC,SAAU,EACVC,UAAW,EACXC,SAAU,EACVC,UAAW,GACXC,WAAY,ICZHC,GAAY,CACrBC,KAAM,EACNC,cAAe,EACfC,oBAAqB,EACrBC,sBAAuB,EACvBC,gBAAiB,EACjBC,YAAa,EACbC,QAAS,EACTC,OAAQ,EACRC,oBAAqB,EACrBC,eAAgB,EAChBC,YAAa,+BCRJC,GAAiB,SAACC,GAC3B,OAAKA,GAAgBA,EAAYC,UAIzBD,EAAYC,UAAU/vB,KAAK,SAAC7X,GAAD,OAAOA,EAAE7U,OAHjC,MAMF08C,GAA6B,SAACC,EAAYC,GACnD,OAAKD,EAIEA,EAAWC,GAHP,MAMFC,GAAW,SAAEL,GAEtB,OAAMA,GAAgBA,EAAYM,MAI3BN,EAAYM,MAFR,MAKFC,GAAiB,SAAEP,GAE5B,IAAMA,IAAgBA,EAAYQ,YAE9B,OAAO,KAHf,IAMYC,EAAsDT,EAAtDS,eAAgBC,EAAsCV,EAAtCU,iBAAkBC,EAAoBX,EAApBW,gBACpCC,EAAczwB,SAASswB,EAAgB,IACvCI,EAAgB1wB,SAASuwB,EAAkB,IAGjD,MAAO,CACHxC,KAHiB/tB,SAASwwB,EAAiB,IAI3CxC,MAAO0C,EACPzC,IAAKwC,IAIAE,GAAiB,SAAEC,EAAUC,GAEtC,IAAMD,EAASf,cAAgBe,EAASf,YAAYiB,cAAgBF,EAASf,YAAYkB,6BAErF,OAAO,KAGX,IAAMC,EAAkBJ,EAASf,YAAYiB,YAEvCG,EAsCV,SAA4BL,EAAUC,GAClC,IAAII,EAAkB,KAQtB,OANGC,GAAkCN,EAAUC,KAC3CI,EAAkBL,EAASC,EAAc5E,SAAS1zB,QACjDwH,KAAK,SAACksB,GAAD,OAAckF,EAAEC,QAAQnF,EAAQoF,cAClCpF,EAAQqF,OAASV,EAASf,YAAYkB,gCAG1CQ,YAASN,GACFA,GAERC,GAAkCN,EAAUC,KAC3CI,EAAkBL,EAASC,EAAc5E,SAAS1zB,QACjDwH,KAAK,SAACksB,GAAD,OAAckF,EAAEC,QAAQnF,EAAQoF,cAClCT,EAASf,YAAYiB,YAAY97B,SAASi3B,EAAQoF,gBAGnDJ,GAxDiBO,CAAmBZ,EAAUC,GAErD,OAAKU,YAASN,GAIP,CACHQ,YAAaT,EAAgBh5C,QAAQi5C,EAAgBI,YAAa,IAClEJ,gBAAiBA,GALV,MASFS,GAA2B,SAAC7B,EAAatM,GAElD,IAAM4M,EAAQD,GAASL,GACjB8B,EAAc/B,GAAeC,GAC7BQ,EAAcD,GAAeP,GAEnC,IAAK0B,YAASpB,KAAWoB,YAASI,KAAiBJ,YAASlB,SACdj7C,IAAtCmuC,EAAOqO,6BAAkF,IAAtCrO,EAAOqO,iCACzBx8C,IAAjCmuC,EAAOC,wBAAwE,IAAjCD,EAAOC,sBAEzD,OAAO,EAGX,GAAI+N,YAASI,GACb,CACI,IAAM1F,EAAU8D,GAA2B4B,EAAad,IAAc5E,SAEtE,IAAKsF,YAAStF,GAEV,OAAO,EAIf,OAAO,GAwBLiF,GAAoC,SAACN,EAAUC,GACjD,OAAOU,YAASX,IAAaW,YAASV,IAAkBU,YAASX,EAASC,EAAc5E,WAAasF,YAASX,EAASC,EAAc5E,SAAS1zB,wLCpH3I,IACMs5B,GAAmB97C,OAAO+7C,OAAO,CAC1CC,IAAK,QAGYC,4LACMC,GACnB,MAAwB,iBAAVA,EAAP,IAAAj9C,QAAiCi9C,EAPlB,KAO0CC,QAAQ,IAAO,2CAG7DC,EAAQC,GAC1B,OAAOD,EAXe,IAWNC,8CAGOC,GAA+B,IAAxBC,EAAwB35C,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAH,EACnD,OAAOvB,KAAKD,IAAI4S,KAAKwoC,eAAeF,EAAOC,GAAqB,8BCqQxE,SAASE,GAAgBnO,EAAaoO,GAC7BA,IACDA,EAAoB,CAChBC,eAAgB,GAChBC,OAAQ,KAIhB,IAAMC,EAAyBvO,EAAYwM,IAAc6B,iBAAmBD,EAAkBC,eACxFG,EAAiBxO,EAAYwM,IAAc8B,SAAWF,EAAkBE,OAE9E,MAAO,CACHD,eAAgBvB,IAAEC,QAAQwB,GAA0B9N,GAAqB6E,YAAciJ,EACvFD,OAAQxB,IAAEC,QAAQyB,GAAkB,GAAKA,GAmE1C,SAASC,GAAkC/P,EAAeM,EAAiBF,GAC9E,MAAO,CAAE4P,cAAehQ,EAAeiQ,gBAAiB3P,EAAiB4P,kBAAmB9P,GA0FhG,SAAS+P,GAAkB/C,GACvB,OAAIiB,YAAQjB,EAAMgD,cAAwBhD,EAEnCA,EAAMgD,aAmDjB,SAASC,GAAqBC,GAC1B,OAAOA,EAAW7pC,MAAM,KA4C5B,SAAS8pC,GAAwBC,GAI7B,OAHgCA,EAAqBC,mCAA7CC,oBACApxC,QAEO4O,IAAI,SAACpZ,GAChB,MAAO,CACHE,GAAIF,EAAQE,GACZ7D,OAAO,KAKnB,SAASw/C,GAAoBH,GAAsB,IAEvClxC,EADqBkxC,EAAqBC,mCAA1CG,iBACAtxC,QAEFpK,EAAM,GAMZ,OAJAoK,EAAQkN,QAAQ,SAAC1X,GACbI,EAAIJ,EAAQE,KAAM,IAGfE,EAGX,SAAS27C,GAAyBL,GAAsB,IAC5CE,EAAwBF,EAAxBE,oBAD4CI,EAElBN,EAAqB3C,SAAS6C,oBAAxDpxC,EAF4CwxC,EAE5CxxC,QAAS8wC,EAFmCU,EAEnCV,aAEjB,OAAO9wC,EAAQ4O,IAAI,SAACpZ,GAChB,MAAO,CACHi8C,GAAIj8C,EAAQE,GACZg8C,MAAOC,GAAcn8C,EAAQE,GAAI07C,EAAqBN,MAKlE,SAASa,GAAcj8C,EAAIyH,EAAO2zC,GAC9B,IAAIc,EAAgB,GAMpB,OAAqB,OAJAA,EAAR,MAATz0C,EAAiCA,EACjB2zC,MAOH,MAFJc,EAAcl0B,KAAK,SAACjqB,GAAD,OAAOA,EAAEo+C,gBAAkBn8C,EAAGm8C,iBAkBlE,SAASC,GAAiBZ,GAAsB,IACpCa,EAAoBb,EAApBa,gBADoCC,EAEVd,EAAqB3C,SAASwD,gBAAxD/xC,EAFoCgyC,EAEpChyC,QAAS8wC,EAF2BkB,EAE3BlB,aAEXl7C,EAAM,GAMZ,OAJAoK,EAAQkN,QAAQ,SAAC1X,GACbI,EAAIJ,EAAQE,IAAMi8C,GAAcn8C,EAAQE,GAAIq8C,EAAiBjB,KAG1Dl7C,EAGX,SAASq8C,GAAiCC,EAAaC,EACnDC,GACA,OAAIA,EAmBR,SAAgCF,GAK5B,OAJAx+C,OAAOkK,KAAKs0C,EAAYG,UAAUnlC,QAAQ,SAAC9Q,GACvC81C,EAAYG,SAASj2C,IAAO,IAGzB81C,EAxBiCI,CAAuBJ,GAE3DC,EAAoCD,EAEZ,MAAxBA,EAAYG,SAA2BH,EAE3CA,EAKJ,SAAiCA,GAK7B,OAJAx+C,OAAOkK,KAAKs0C,EAAYG,UAAUnlC,QAAQ,SAAC9Q,IACL,IAA9B81C,EAAYG,SAASj2C,KAAiB81C,EAAYG,SAASj2C,IAAO,KAGnE81C,EAVOK,CAAwBL,GAqB1C,SAASM,GAAkBtB,EAAsBzD,GACzCsB,YAAQtB,KACRA,EAAY,IAGhB,IAAI6B,EAAc7B,EAAU/vB,KAAK,SAAC+0B,GAAD,OAAaA,EAAQzhD,OAChD0hD,EAAe3D,YAAQO,GACvBqD,EAAmBD,EAAe,EAAIE,GAAgBtD,EAAa7B,GAiBzE,OAfA6B,EAAc,CACV9F,aAAc0H,EAAqB1C,IAAchF,cACjDC,aAAcyH,EAAqB1C,IAAc/E,cACjDC,aAAcwH,EAAqB1C,IAAc9E,cACjDmJ,SAAU3B,EAAqB1C,IAAcqE,UAC7ClJ,KAAMuH,EAAqB1C,IAAc7E,MACzCC,QAASsH,EAAqB1C,IAAc5E,SAC5CC,OAAQqH,EAAqB1C,IAAc3E,QAC3Cz8B,MAAO8jC,EAAqB1C,IAAcphC,OAC1Cpc,OAAM0hD,GAAsBpD,EAAYt+C,KACxC8hD,kBAAiBJ,GAAsBpD,EAAYwD,gBACnDvJ,iBAAgBmJ,GAAsBpD,EAAY/F,gBAGtDkE,EAAUkF,GAAoBrD,EACvB7B,EA+BX,SAASmF,GAAgBG,EAAgBtF,GACrC,IAAMuF,EAAqBz1C,KAAKE,UAAUs1C,GACtCE,GAAgB,EAEpB,OAAIlE,YAAQtB,IACA,GAGZA,EAAUvgC,QAAQ,SAACulC,EAAS91C,GACpBq2C,IAAuBz1C,KAAKE,UAAUg1C,KACtCQ,EAAet2C,KAIhBs2C,GAkFJ,SAASC,GAA2BC,GACvC,IAAMC,EAAiBD,GAAU,EACjC,OAAO,IAAIE,KAAKC,aAAa,KAAM,CAC/B55C,MAAO,WACP65C,SAAU/D,GAAiBE,MAC5B8D,OAAOJ,GAGP,SAASK,GAAiBhT,GAC7B,GAAIsO,YAAQtO,GACR,OAAOgC,GAAqB6E,YAGhC,IAAMoM,EAAeC,aAAuBlT,GAC5C,OAAO,IAAI4S,KAAKO,eAAepI,GAAkBK,OAAQL,GAAkBt1B,SAASs9B,OAAOE,GAO/F,SAASG,GAAgCpjD,GACrC,OAAOA,EAAK+9C,IAAcC,cAAgBh+C,EAAK+9C,IAAcC,aAAaG,gBAAkBn+C,EAAK+9C,IAAcC,aAAaG,gBAAgBK,KAAOxM,GAAqB6E,YAG5K,SAASgH,GAAe79C,GACpB,OAAOA,EAAK+9C,IAAcC,cAAgBh+C,EAAK+9C,IAAcC,aAAaG,kBAAoBG,YAAQt+C,EAAK+9C,IAAcC,aAAaW,aAA/H,GAAAz8C,OACAlC,EAAK+9C,IAAcC,aAAaG,gBAAgBI,aADhDr8C,OAC8DlC,EAAK+9C,IAAcC,aAAaW,aAAgB3M,GAAqB6E,YAQvI,SAASwM,GAA8BC,GAK1C,OAJchF,YAAQgF,EAAMjD,cAAgBiD,EAAQA,EAAMjD,cAE7Bn7C,QAAQ,KAAM,IAErBmF,cAgB1B,SAASk5C,GAAkBC,EAAmBC,GAO1C,OANKD,EAAkBthC,SAASuhC,IAAoBD,EAAkBz3C,KAAK03C,GAEjDD,EAAkB58B,OAAO,SAAC2mB,EAAG7qC,GAAJ,OAAU8gD,EAAkB57C,QAAQ2lC,KAAO7qC,IAErDqU,KAAK,KAKlD,SAAS2sC,GAAgBC,GACrB,OAAIA,EAA2BA,EAAiBC,SAEzC,4CCx2BEC,GAA0B,CACnCC,8BAA+B,uBAC/BC,sBAAuBliD,OAAOmiD,SAASC,UAAUC,cAAcC,uJCM5D,IAUMC,GAA+B,WACxC,IAAMC,EAXuB,WAC7B,IAAMC,EAASC,KAAuBV,GAAwBE,uBAE9D,GAAKtF,YAAS6F,GAId,OAAOE,YAAcF,GAIJG,GAEjB,QAAKhG,YAAS4F,IAIPA,EAASK,iBAGPC,GAAoB,iBAAAhpC,KAAAipC,mBAAAC,KAAG,SAAAC,IAAA,IAAAC,EAAAC,EAAAC,EAAAp/C,UAAA,OAAA++C,mBAAA5+C,KAAA,SAAAk/C,GAAA,cAAAA,EAAAr5C,KAAAq5C,EAAAnpC,MAAA,cAAOgpC,EAAPE,EAAAvgD,OAAA,QAAApC,IAAA2iD,EAAA,IAAAA,EAAA,GAAkCD,EAAlCC,EAAAvgD,OAAA,QAAApC,IAAA2iD,EAAA,IAAAA,EAAA,GAAAC,EAAAnpC,KAAA,EAC1Bq1B,IAAK+T,yBAAyB,CAChCH,gBAECjU,KAAK,SAACqU,GACHC,GAAwBD,EAAML,KAEjC9T,MAAM,SAAC77B,GACJpT,QAAQC,IAAImT,KARY,wBAAA8vC,EAAAI,SAAAR,EAAA7tC,uLAAH,yBAAA0E,EAAA7F,MAAAmB,KAAApR,YAAA,GAYpBw/C,GAA0B,SAACD,GAAoC,IAA9BL,EAA8Bl/C,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,IAAAA,UAAA,GACxE,GAAK44C,YAAS2G,IAAU3G,YAAS2G,EAAKG,YAAtC,CADwE,IAIhEA,EAAeH,EAAfG,WACFC,EAAYD,EAAW,qBAAqBrjC,SAASujC,KAAgBC,SACrEC,EAAsB74C,KAAKE,UAAU,CACvC0tC,UAAW6K,EAAWK,WACtBjL,SAAU4K,EAAWM,YACrBC,YAAY,EACZpB,gBAAiBc,EACjBO,eAAe,EACfC,gBAAuD,OAApCT,EAAW,2BAAqEjjD,IAApCijD,EAAW,wBAG9EU,IAAYC,kBAAkBP,GAE1BZ,GACAoB,KAASC,KAAKvC,GAAwBC,y4BCnCzBuC,eACjB,SAAAA,IAAqB,IAAA9X,EAAAhoB,qCAAA8/B,4DAAAC,CAAArvC,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAgY,GAAAF,IAAA7lD,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,QADiBgJ,GAAAumC,MAAAjgC,IAAA,YA2IT,SAAC5b,GACTA,EAAMkmB,iBAEN41B,eAEAR,IAAY5U,UAEZ4U,IAAYS,2BAA2BC,KACvCV,IAAYS,2BAA2BE,KAEvCrC,KAA0BsC,KAAYC,UArJrB7mC,GAAAumC,MAAAjgC,IAAA,oBAgKD,WACXA,EAAK2oB,KAAK6X,UAEXxgC,EAAK2oB,KAAK6X,QAAQngD,UAAUC,SAAS,cACrC0f,EAAK2oB,KAAK6X,QAAQngD,UAAUqY,OAAO,cAEnCsH,EAAK2oB,KAAK6X,QAAQngD,UAAUgY,IAAI,iBAtKnBqB,GAAAumC,MAAAjgC,IAAA,YA0KT,SAAC5b,GACT,GAAsB,KAAlBA,EAAM8iB,QAAgB,CACtB,IAAKlH,EAAK2oB,KAAK6X,QAAS,OACxBxgC,EAAK2oB,KAAK6X,QAAQngD,UAAUqY,OAAO,iBA7KtBgB,GAAAumC,MAAAjgC,IAAA,mBAiLF,SAAC5b,GAEX4b,EAAK2oB,KAAK6X,UAAYxgC,EAAK2oB,KAAK6X,QAAQlgD,SAAS8D,EAAM3D,SACvDuf,EAAK2oB,KAAKvgC,SAAW4X,EAAK2oB,KAAKvgC,OAAO9H,SAAS8D,EAAM3D,SACrDuf,EAAK2oB,KAAK8X,aAAezgC,EAAK2oB,KAAK8X,WAAWngD,SAAS8D,EAAM3D,SAE9Duf,EAAK2oB,KAAK6X,QAAQngD,UAAUqY,OAAO,gBAvLtBgB,GAAAumC,MAAAjgC,IAAA,wBA2LG,SAAC5b,GACrB4b,EAAK0gC,oBAAoBt8C,EAAME,OAAOq8C,oBACtCjB,IAAYkB,qCAAqCr6C,KAAKE,UAAUrC,EAAME,OAAO01C,eA1L7Eh6B,EAAK6gC,cAAe,EACpB7gC,EAAK+9B,OAAS/9B,EAAKd,QAAQ4hC,WAC3B9gC,EAAK+gC,4BAA8B/gC,EAAKd,QAAQ6hC,4BAChD/gC,EAAKghC,UAAYhhC,EAAKd,QAAQ8hC,UAE9BhhC,EAAKxB,OACLwB,EAAKihC,cATYjhC,yPADY0oB,oDAc7B,MAAO,CACH,aACA,SACA,OACA,+CAID,IAAAzoB,EAAAvP,KACHA,KAAKmwC,aAAenwC,KAAKwO,QAAQgiC,WAEjCC,IAAc3iC,OAEd9N,KAAK0wC,eAGL1wC,KAAKo4B,YAAYp4B,KAAKi4B,KAAKvgC,OAAQ,QAASsI,KAAK2wC,mBAEjD3wC,KAAKo4B,YAAYp4B,KAAKi4B,KAAKmC,QAAS,QAASp6B,KAAK4wC,WAClD5wC,KAAKo4B,YAAYp4B,KAAKi4B,KAAK8X,WAAY,QAAS/vC,KAAK2wC,mBAErD3wC,KAAKo4B,YAAYnpC,SAAU,UAAW+Q,KAAK6wC,WAC3C7wC,KAAKo4B,YAAYnpC,SAAU,QAAS+Q,KAAK8wC,kBACzC9wC,KAAKo4B,YAAYnpC,SAAU,aAAc+Q,KAAK8wC,kBAC9C9wC,KAAKo4B,YAAYnpC,SAAU,kBAAmB+Q,KAAK+wC,uBAEnDC,IAAMC,qBAAqB,CAAEC,aAAa,EAAOC,YAAY,EAAMC,uBAAuB,KAGtFC,aAAeC,KAAoBC,2BACnCF,aAAeC,KAAoBE,qBAEnCR,IAAMS,0BAGVC,IAAIC,OAAO,OAAQ,SAAAjtC,GACf,OAD2CA,EAAzBktC,QAAWl+C,OAEzB,IAAK,SACD6b,EAAKsiC,sBACL,MACJ,IAAK,eACDtiC,EAAKuiC,gEASb9xC,KAAKmwC,aACLnwC,KAAK6xC,sBAEL7xC,KAAK+xC,+DAKT/xC,KAAKi4B,KAAK8X,WAAWpgD,UAAUgY,IAAI,cACnC3H,KAAKlS,QAAQ6B,UAAUqY,OAAO,wDAGlBmmC,GACZnuC,KAAKi4B,KAAKxuC,KAAK+b,QAAQ,SAAC/b,GACpBA,EAAK6H,UAAY68C,IAErBnuC,KAAKi4B,KAAKvgC,OAAO/H,UAAUgY,IAAI,cAC/B3H,KAAKlS,QAAQ6B,UAAUgY,IAAI,gBAE3B3H,KAAKi4B,KAAK8X,WAAWpgD,UAAUqY,OAAO,4DAItC,IAAMgqC,EAAYC,IAAQ7lD,IAAI4T,KAAKqtC,QAEnC,GAAK2E,EAAL,CAKA,IAAM5E,EAAWv3C,KAAKC,MAAMk8C,GAE5BhyC,KAAKkyC,gBAAgB9E,EAAS3J,gBAN1BzjC,KAAKmyC,+DASS,IAAA1iC,EAAAzP,KAElBm6B,IAAK+T,yBAAyB,CAAEH,aAAa,IACxCjU,KAAK,SAACqU,GACHC,GAAwBD,GACxB1+B,EAAKyiC,gBAAgB/D,EAAKG,WAAWK,YACrCqC,IAAMoB,oBAAoB,CAAElB,aAAa,EAAOE,uBAAuB,IAEvEpC,IAAYqD,sBAAsB1C,IAASxB,EAAKG,WAAWgE,KAC3DhF,KAA8BsC,KAAYC,OAAQ1B,EAAKG,WAAWgE,KAElE,IAAMC,EAAqBpE,EAAKG,WAAW,6BAEvCiE,GACAvD,IAAYqD,sBAAsB3C,IAAoB6C,GAG1D,IAAMC,EAAoBrE,EAAKG,WAAW,qBACpC2B,EAAqBuC,EAAkB/yC,MAAM,KAAKwL,SAASujC,KAAgBC,SAG7E+D,IAFsB38C,KAAKC,MAAMk5C,IAAYyD,wBAAwB7C,KAAY8C,0BAGjF1D,IAAYkB,qCAAqCr6C,KAAKE,UAAUy8C,IAChE/iC,EAAKugC,oBAAoBC,MAGhCjW,MAAM,WACHvqB,EAAK0iC,iEAIK,IAAAriC,EAAA9P,KAClB,OAAOm6B,IAAK+T,2BACPpU,KAAK,WACFkV,IAAY2D,qBAAqB7iC,EAAKugC,4BAA6BvgC,EAAKwgC,aAE3EtW,MAAM,SAACjsB,GACJhjB,QAAQC,IAAI+iB,8CAkBpB,OAAInjB,OAAOg2B,SAASgyB,KAAK3nC,SAAS,mBACvB4nC,mBAAmBjoD,OAAOg2B,SAASwnB,QAGvCyK,mBAAmBjoD,OAAOg2B,SAASgyB,kDAmC1B3C,GAChB,IAAM6C,EAAuB7jD,SAAS8jD,eAAe,oBAEjDC,YAAkBF,KAIlB7C,EACA6C,EAAqBnjD,UAAUqY,OAAO,UAEtC8qC,EAAqBnjD,UAAUgY,IAAI,iDAKvC,IAAMsrC,EAAiBhB,IAAQ7lD,IAAI8mD,IAAIxtC,MAAMwnC,oBAC7C,IAAI9F,IAAEC,QAAQ4L,GAAd,CAIA,IAAM7F,EAAWv3C,KAAKC,MAAMm9C,GACxB7L,IAAEC,QAAQ+F,IAITA,EAASyB,aAId7uC,KAAKmzC,sBACLnE,IAAYoE,gBAAgBpzC,KAAKwO,QAAQ6kC,wBAEzCrzC,KAAKlS,QAAQ6B,UAAUgY,IAAI,gBAC3B3H,KAAKi4B,KAAKvgC,OAAO/H,UAAUgY,IAAI,gBAC/B3H,KAAKi4B,KAAK6X,QAAQngD,UAAUgY,IAAI,gBAC3By/B,IAAEC,QAAQrnC,KAAKi4B,KAAKqb,YACrBtzC,KAAKi4B,KAAKqb,SAASC,aAAe,IAAMnG,EAAS3J,8DAKrD,IAAM+P,EAAsBxE,IAAYyD,wBAAwBgB,KAChE,GAAID,EAAqB,CACrB,IAAME,EAAa,IAAI71B,KAAK21B,GACtBG,EAAc,IAAI91B,KAExB,GAAI61B,EAAWE,iBAAmBD,EAAYC,eAC1C,OAAO,EAIf,OAAO,gDAMP,GAFoB5zC,KAAK6zC,yBAEzB,CAHkB,IAAAC,EAO4Chb,IAAtDE,EAPU8a,EAOV9a,cAAeI,EAPL0a,EAOK1a,kBAAmBE,EAPxBwa,EAOwBxa,gBAC1CI,IACKI,KAAK,SAAChmB,GAAa,IACRigC,EAAgCjgC,EAAS/qB,KAAzCgrD,4BACR1Z,EACI0O,GAAkC/P,EAAeM,EAAiBF,GAClE2a,GACFja,KAAK,SAACka,GACAA,EAAmBC,WACvBjF,IAAYqD,sBAAsBoB,IAAiBza,KAElDgB,MAAM,SAACka,GACJnpD,QAAQgjB,MAAMmmC,OAGzBla,MAAM,SAACjsB,GACJhjB,QAAQgjB,MAAMA,uDAKtB,IAAMylC,EAAsBxE,IAAYyD,wBAAwBgB,KAChE,GAAID,EAAqB,CACrB,IAAME,EAAa,IAAI71B,KAAK21B,GACtBG,EAAc,IAAI91B,KAExB,GAAI61B,EAAWE,iBAAmBD,EAAYC,eAC1C,OAAO,EAIf,OAAO,gDAMP,GAFoB5zC,KAAK6zC,yBAEzB,CAHkB,IAAAM,EAO4Crb,IAAtDE,EAPUmb,EAOVnb,cAAeI,EAPL+a,EAOK/a,kBAAmBE,EAPxB6a,EAOwB7a,gBAC1CI,IACKI,KAAK,SAAChmB,GAAa,IACRigC,EAAgCjgC,EAAS/qB,KAAzCgrD,4BACR1Z,EACI0O,GAAkC/P,EAAeM,EAAiBF,GAClE2a,GACFja,KAAK,SAACka,GACAA,EAAmBC,WACvBjF,IAAYqD,sBAAsBoB,IAAiBza,KAElDgB,MAAM,SAACka,GACJnpD,QAAQgjB,MAAMmmC,OAGzBla,MAAM,SAACjsB,GACJhjB,QAAQgjB,MAAMA,k8BC1UTqmC,+kBAAmCC,oDAEhD,IAAMC,EAAQvgB,GAAAwgB,GAAAH,EAAA3nD,WAAA,oBAAAuT,MAAAzW,KAAAyW,MACRw0C,EAAuBx0C,KAAK8H,aAAa9H,KAAKlS,QAAS,2BAC7D,OAAO2mD,KAAUC,eACbJ,EADGK,GAAA,GAGEH,EAAuBC,KAAUC,eAC9BD,KAAUG,eAAehqD,OAAOg2B,UADZ+zB,GAAA,GAC0BE,KAAeC,WAAaL,KAAUC,eAAeJ,EAAU,CAAES,OAAQ,oyBCNtHC,eACjB,SAAAA,IAAqB,IAAA1d,EAAAhoB,yCAAA0lC,4DAAAC,CAAAj1C,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAA4d,GAAAF,IAAAzrD,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,UAKG,WACHywC,IAAc3iC,OACd4jC,IAAIC,OAAO,OAAQ,SAAAjtC,GACf,OAD2CA,EAAzBktC,QAAWl+C,OAEzB,IAAK,SAGL,IAAK,mBACD4b,EAAK6lC,6BAdA,WAAAC,MAAA9lC,6BAAA,qEAGjBA,EAAKxB,OAHYwB,qPAD0B0oB,4DA2B3CgX,IAAYqG,wEAIZlb,IAAK+T,yBAAyB,CAAEH,aAAa,IACxCjU,KAAK,WACF,IAAMwb,EAAYtG,IAAYuG,wCAAuC,GAEhElO,YAAQiO,IAAc1qD,OAAOg2B,SAASgyB,OAAS0C,IAChD1qD,OAAOg2B,SAASgyB,KAAO0C,KAG9Btb,MAAM,SAACjsB,GACJhjB,QAAQgjB,MAAMA,mMCvC9BwqB,IAAkBC,cAAchE,OAAO,UAAWghB,IAClDjd,IAAkBC,cAAchE,OAAO,sBAAuB4f,IAC9D7b,IAAkBC,cAAchE,OAAO,cAAeihB,MACtDld,IAAkBC,cAAchE,OAAO,gBAAiBwgB,ymCCFxD,IAOqBU,eACjB,SAAAA,IAAqB,IAAApe,EAAAhoB,qCAAAomC,4DAAAC,CAAA31C,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAse,GAAAF,IAAAnsD,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,yPAD4B0oB,oDAQ7C,MAAO,uCAGJ,IAAAzoB,EAAAvP,KACH61C,KAAYxlC,OACZ,IAAMylC,EAAoB9G,IAAY+G,oBACtC/G,IAAYgH,iBAAiBlc,KAAK,SAACqU,GAC/B5+B,EAAK0mC,sBAAsB9H,GAC3B5+B,EAAK2mC,MAAQ/H,EACb2H,EAAkBhc,KAAK,SAACib,GACpBxlC,EAAK4mC,qBAAuBpB,EAC5BxlC,EAAK6mC,aACL7mC,EAAKzhB,QAAQ6B,UAAUgY,IAAI,cAC3BkuC,KAAYn5C,UAEjB,WACC6S,EAAK8mC,6DAISlI,GACbA,EAAKV,kBACVztC,KAAKi4B,KAAKqe,aAAa,GAAG3mD,UAAUgY,IAAI,sBACxC3H,KAAKi4B,KAAKqb,SAASiD,mBAAmB,WAAY,0GAIlDC,aAAWhP,YAASxnC,KAAKwO,QAAQioC,WAAaz2C,KAAKwO,QAAQioC,UAAY,mDAIvE,OAAOz2C,KAAKm2C,wDAIZ,IAAMhI,EAAOnuC,KAAKk2C,MACdzL,EAA4Br+C,IAAI+hD,EAAM,oCAAoC,GAK9E,OAJkC,OAA9B1D,IACAA,GAA4B,sUAGhCiM,CAAA,GACOvI,EADP,CAEIwI,oBAAqB3H,IAAY2H,oBAAoBxI,GACrDyI,kBAAmB52C,KAAK62C,sBACxBC,SAAU3I,EAAK1K,WAAa0K,EAAKzK,SAAvB,GAAAz4C,OAAqCkjD,EAAK1K,UAAU,IAApDx4C,OAAyDkjD,EAAKzK,SAAS,IAAO,GACxFqT,gCAAiCtM,yCAKrCzqC,KAAKg3C,sBACLh3C,KAAKi3C,kBACLj3C,KAAKk3C,0DAGS,IAAAznC,EAAAzP,KACSoR,GAAOpR,KAAKlS,QAAQ2C,iBAAb,IAAAxF,OAnEV,UAmEU,OACZua,QAAQ,SAAChW,GACvB,IAAI2nD,GAAO,EACPttD,GAAU,EAEViF,EAAOU,EAAGsY,aAxEE,WAyEZhZ,IACgB,MAAZA,EAAK,KACLjF,GAAU,EACViF,EAAOA,EAAKoG,UAAU,IAE1BiiD,EAAO1nC,EAAK2nC,cAActoD,GAAM,KAGpCqoD,EAAOttD,GAAWstD,EAAOA,KAErB3nD,EAAGwC,MAAMo7B,QAAU,kDAM3B,IAAMiqB,EAAYjmC,GAAOpR,KAAKlS,QAAQ2C,iBAAb,IAAAxF,OA3FV,YA2FU,OACnBqsD,EAAgB,GAChBC,EAAe,GAErBF,EAAa7xC,QAAQ,SAAC1X,GACdA,EAAQ60B,QAnGA,6BAmG6B70B,EAAQ60B,QAlG5B,iFAmGjB20B,EAAcxiD,KAAKhH,GAEnBypD,EAAaziD,KAAKhH,KAI1BkS,KAAKw3C,oBAAoBF,GACzBt3C,KAAKy3C,kBAAkBF,+CAGP7sC,GAAU,IAAAoF,EAAA9P,KAC1B0K,EAASlF,QAAQ,SAAChW,GACd,IAAMV,EAAOU,EAAGsY,aA7GL,aA8GXgI,EAAK4nC,gBAAgBloD,EAAIsgB,EAAKsnC,cAActoD,8CAIpC4C,EAAOvH,GACnB,OAAQuH,EAAMrD,MACV,IAAK,WACD2R,KAAK23C,mBAAmBjmD,EAAOvH,GAC/B,MACJ,IAAK,QAEL,IAAK,kBACD,MACJ,QACIuH,EAAMvH,MAAQA,GAAS,GAE/BuH,EAAM8B,cAAcm8B,aAAY,sDAGjBj+B,EAAOvH,GACtB,GAAIuH,EAAM1B,aAjIc,sBAiIyB,CAC7C,IAAM4nD,EAAaztD,GAAS,GACtB0tD,EAAanmD,EAAMvH,MACzBuH,EAAMomD,QAAUF,EAAW3sC,SAAS4sC,QAEpCnmD,EAAMomD,QAAU3tD,IAAS,wCAInB2E,EAAMs6C,GAChB,OAAOh9C,IAAI4T,KAAK+3C,WAAYjpD,EAAMs6C,6CAGpB1+B,GAAU,IAAAqF,EAAA/P,KACxB0K,EAASlF,QAAQ,SAAChW,GACd,IAAMV,EAAOU,EAAGsY,aAjJL,aAkJPhZ,IACAU,EAAG8B,UAAYye,EAAKqnC,cAActoD,EAAM,qDAMpBkR,KAAK+3C,WAAzBtK,iBAEJztC,KAAKlS,QAAQ6B,UAAUgY,IAAI3H,KAAKwO,QAAQwpC,qDClKpDzf,IAAkBC,cAAchE,OAAO,kBAAmBkhB,6GCApDuC,GAAW,SAAAvzC,GAAe,IAAZwzC,EAAYxzC,EAAZwzC,MAKhB,OACIC,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,aACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,aACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBACXgoD,GAAAllD,EAAA/D,cAAA,cAASgpD,EAAM9R,OACf+R,GAAAllD,EAAA/D,cAAA,gBAAagpD,EAAME,UAEfF,EAAMG,SACNF,GAAAllD,EAAA/D,cAAA,KACIiB,UAAU,kBACVyiD,KAAMsF,EAAMG,QACZC,QAfJ,WAChBC,KAAIzjD,KAAK,YAAa,YAAaojD,EAAM9R,SAepB8R,EAAMM,cASnCP,GAASQ,UAAY,CACjBP,MAAOQ,KAAUC,MAAM,CACnBvS,MAAOsS,KAAUj5B,OACjB24B,SAAUM,KAAUj5B,OACpB44B,QAASK,KAAUj5B,OACnB+4B,SAAUE,KAAUj5B,UAIbw4B,sdCjCTW,+kBAAwBC,KAAMC,yDAE5BC,IAAch1C,UAAUi1C,IAAcC,6DAItCF,IAAch0C,YAAYi0C,IAAcC,+CAGnC,IACGC,EAAgBl5C,KAAKigB,MAArBi5B,YAER,OAAKA,GAAeC,KAAY9R,QAAQ6R,EAAYE,WAAmB,KAEhEF,EAAYE,UAAUlyC,IAAI,SAACmyC,GAC9B,OAAOlB,GAAAllD,EAAA/D,cAACoqD,GAAD,CAAUpB,MAAOmB,EAAU3kD,IAAK2kD,EAASE,8MAc7CC,GALkBC,aAJT,SAAC/zC,GAAD,MAAY,CAChCwzC,YAAaxzC,EAAMg0C,QAAQV,IAAcC,gBAKzC,KAF6BQ,CAG/Bb,gdCDae,eAxBX,SAAAA,IAAqB,IAAAriB,EAAAhoB,qCAAAqqC,4DAAAC,CAAA55C,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAuiB,GAAAF,IAAApwD,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,qPADQ0oB,sCAQzBh4B,KAAK6L,2CAILiuC,KAASC,uBAAuB/5C,KAAKlS,0CAIrCgsD,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAACuV,GAAA,EAAD,CAAU7X,MAAOA,MACburD,GAAAllD,EAAA/D,cAAC8qD,GAAD,OAEJh6C,KAAKlS,uMCvBjByqC,IAAkBC,cAAchE,OAAO,aAAcmlB,oeCArD,IAsCeM,eAnCX,SAAAA,IAAqB,IAAA3iB,EAAAhoB,qCAAA2qC,4DAAAC,CAAAl6C,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAGjB,KAFA9F,QAAAs3B,EAAA6iB,GAAAF,IAAA1wD,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEUwO,QAAQ4rC,YACd,MAAM,IAAI72C,MAAM,gCAJH,OAOjB+L,EAAKxB,OAPYwB,qPADe0oB,sCAYhCh4B,KAAKq6C,YAAYr6C,KAAKs6C,qDAItB,OAAOrI,IAAQ7lD,IAAI4T,KAAKwO,QAAQ4hC,gDAGxBmK,GAAU,IAAAhrC,EAAAvP,KACZw6C,EAAG,GAAAvvD,OAAM+U,KAAKwO,QAAQ4rC,YAAnB,oBAAAnvD,OAAiDsvD,GAE1DE,KACKruD,IAAIouD,GACJ1gB,KAAK,SAAChmB,GAAa,IAAA4mC,EAC6B5mC,EAAS/qB,KAA9C4xD,EADQD,EACRC,eAAgBC,EADRF,EACQE,iBAExBrrC,EAAK0oB,KAAK4iB,WAAW1wD,MAAQwwD,EAEJ,OAArBC,GACA3I,IAAQxf,IAAIljB,EAAKf,QAAQ4hC,WAAYwK,EAAkB,CAAEE,QAhCtD,WAgC+EC,QAAQ,oMChC9GxiB,IAAkBC,cAAchE,OAAO,qBAAsBylB,kDCJhDe,iCAAsB,UACtBC,GAA2B,cAO3BC,GAAkB,aAClBC,GAAyB,oBACzBC,GAAoB,eACpBC,GAAsB,iBAetBC,GAAoC,EAKpCC,GAAgC,kBAIhCC,GAAuB,GAOvBC,GAAuC,yBAKvCC,GAAiB,CAC1BC,cAAe,GACftU,SAAS,8KCnCQuU,oMACcC,GAC3B,IAAMC,EAAgBD,EACjBlsC,OAAO,SAACosC,GAAD,MDZa,UCYDA,EAAO/6C,KDXN,UCWmC+6C,EAAO/6C,MAC9DrM,OAAO,SAAC2zC,EAAO0T,GAAR,OAAyBA,EAAYC,SAAW3T,EAAQ0T,EAAYC,SAAW3T,GAAQ,GAmDnG,OAjDAuT,EACK1lD,KAAK,SAAClD,EAAGC,GAAJ,OAAUD,EAAEipD,UAAYhpD,EAAEgpD,YAC/B12C,QAAQ,SAAC22C,GACN,GAAIA,EAAQ9tD,OAAS4sD,IDpBF,WCqBfkB,EAAQ9tD,KAER,OAAQ8tD,EAAQn7C,KACZ,IDde,aCeXm7C,EAAQC,YDVU,GCWlBD,EAAQE,aDPK,ECQb,MACJ,IDjBqB,kBCkBjBF,EAAQC,YDdU,GCelBD,EAAQE,aDVW,ECWnB,MACJ,IDpBgC,4BCqB5BF,EAAQC,YDlBU,GCmBlBD,EAAQE,aDbsB,ECc9B,MACJ,QACIF,EAAQC,YDpBG,QCuBnBD,EAAQC,YD1BQ,GC6BpB,GAAID,EAAQ9tD,OAAS2sD,IACjBmB,EAAQ9tD,OAAS4sD,GACnB,CACEkB,EAAQE,aAAe,EACvB,IAAIC,EAAiB,EAEjBH,EAAQ9tD,OAAS2sD,KACjBsB,EDnCsB,GCmC4BR,EDlCrB,GCqC7BK,EAAQ9tD,OAAS4sD,KACjBqB,EDpCyB,GCoC4BR,GAGzDK,EAAQE,aAAeF,EAAQF,SAAWK,EDrD5B,WCuDVH,EAAQn7C,MACRm7C,EAAQC,YD5CqB,EC6C7BD,EAAQE,aAAgC,EAAhBP,ED7CK,IC6C+G,EAAhBA,MAKrID,4CAGcU,EAAoBC,GACzC,OAAQD,IAAuBvB,KDpEN,UCqEhBwB,GDpEgB,UCoE2BA,IDvEzB,WCwEtBD,GD9D0B,eC+DtBC,8CAGcb,GAAkC,IAAnBc,EAAmB7tD,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,IAAAA,UAAA,GACzD5C,OAAOkK,KAAKylD,GAAen2C,QAAQ,SAACmE,GAChC,IAAM+yC,EAAqBf,EAAchyC,GAEd+yC,EAAmBb,SAASlsC,OAAO,SAACwsC,GAAD,OACzDA,EAAQ9tD,OAAS2sD,ID7EA,WC8ElBmB,EAAQn7C,KDlFW,WCmFlBm7C,EAAQ9tD,MDxEoB,oBCyE7B8tD,EAAQn7C,MAEOwE,QAAQ,SAACm3C,GACxB,IAAMC,EAAsBF,EAAmBb,SAAS7lC,KAAK,SAAC6mC,GAAD,OACzDA,EAAiBxuD,OAASsuD,EAActuD,MACxCwuD,EAAiB77C,MAAQ27C,EAAc37C,MAEvC47C,IAEIA,EAAoBX,SADpBQ,EAC+B,EAEA,6BC7ExC96B,GADE,eAnBb,SAAAm7B,qCAAcA,4DAAAC,CAAA/8C,mDAIVA,KAAKg9C,gBAAkB/tD,SAASkc,cAAc,aAC1CnL,KAAKg9C,iBACLh9C,KAAKg9C,gBAAgBrtD,UAAUgY,IAAI,2CAKvC3H,KAAKg9C,gBAAkB/tD,SAASkc,cAAc,aAC1CnL,KAAKg9C,iBAAmBh9C,KAAKg9C,gBAAgBrtD,UAAUC,SAAS,aAEhEoQ,KAAKg9C,gBAAgBrtD,UAAUqY,OAAO,wqBCgMnCi1C,GAAA,eA5LX,SAAAC,qCAAcA,4DAAAC,CAAAn9C,MACVA,KAAKo9C,0BAA4B,GACjCp9C,KAAKq9C,gCAAkC,GACvCr9C,KAAKs9C,QAAU,KACft9C,KAAKu9C,cAAgB,KACrBv9C,KAAKw9C,aAAe,KACpBx9C,KAAKy9C,yBAA2B,gEAGfC,GACjB,GAAIA,EAAuB,CACvB,GAAsC,OAAlC19C,KAAKy9C,yBAAmC,CACxC,IAAME,EAA0BC,aAAaC,QHSf,iCGR1BF,IACA39C,KAAKy9C,yBAA2BxnC,SAAS0nC,EAAyB,KAG1E,OAAO39C,KAAKy9C,yBAEhB,GAA0B,OAAtBz9C,KAAKw9C,aAAuB,CAC5B,IAAMM,EAAcF,aAAaC,QHAN,+BGCvBC,IACA99C,KAAKw9C,aAAevnC,SAAS6nC,EAAa,KAGlD,OAAO99C,KAAKw9C,6DAGQE,GACpBA,EAAwBE,aAAaG,QHRC,gCGQuClgC,KAAKmgC,OAC9EJ,aAAaG,QHVc,8BGUmBlgC,KAAKmgC,yCAGjDN,GACN,GAAIA,EAAuB,CACvB,GAA2B,OAAvB19C,KAAKu9C,cAAwB,CAC7B,IAAMU,EAAsBpoD,KAAKC,MAAM8nD,aAAaC,QHjB3B,uBGkBnBF,EAA0B39C,KAAKk+C,qBAAqBR,GAEtDO,EAAqBj+C,KAAKm+C,UAAU,CAAExC,cAAesC,GAAuBP,GAC3E19C,KAAKu9C,cAAgB7B,GACtBiC,GAA2B39C,KAAKo+C,gBAAgBT,IAA0B39C,KAAKq+C,YAAYX,GAGnG,OAAO19C,KAAKu9C,cAEhB,GAAqB,OAAjBv9C,KAAKs9C,QAAkB,CACvB,IAAMW,EAAsBpoD,KAAKC,MAAM8nD,aAAaC,QH7B9B,qBG8BhBC,EAAc99C,KAAKk+C,qBAAqBR,GAE1CO,EAAqBj+C,KAAKm+C,UAAU,CAAExC,cAAesC,GAAuBP,GAC3E19C,KAAKs9C,QAAU5B,GAChBoC,GAAe99C,KAAKo+C,gBAAgBN,IAAgB99C,KAAKq+C,YAAYX,GAG7E,OAAO19C,KAAKs9C,0CAGNgB,EAAQZ,GACVA,GACA19C,KAAKu9C,cAAgBe,EACrBt+C,KAAKu9C,cAAclW,UAAUrnC,KAAKu9C,eAA6D,IAA7CvxD,OAAOkK,KAAKooD,EAAO3C,eAAeluD,SAGpFuS,KAAKs9C,QAAUgB,EACft+C,KAAKs9C,QAAQjW,UAAUrnC,KAAKs9C,SAAuD,IAA7CtxD,OAAOkK,KAAKooD,EAAO3C,eAAeluD,gDAKhEqwD,GACZ,OAAOjgC,KAAKmgC,MAASF,EH9CA,iDGiDPnC,EAAe+B,GAC7B,GAAIE,aAAc,CACd,IAAME,EAAc99C,KAAKk+C,qBAAqBR,GAEzCI,IAAe99C,KAAKo+C,gBAAgBN,IAAc99C,KAAKu+C,wBAAwBb,GAEnFA,EAAyBE,aAAaG,QH7DV,qBG6D6CloD,KAAKE,UAAU4lD,IACrFiC,aAAaG,QH/DK,mBG+DuBloD,KAAKE,UAAU4lD,IAE5D37C,KAAKm+C,UAAU,CAAExC,iBAAiB+B,GAClC19C,KAAKw+C,sBAAsBd,6CAIlBA,GACb,OAAO19C,KAAKy+C,UAAUf,GAAuB/B,+CAGxCA,EAAe+C,GACpB,IAAM7C,EAAW7vD,OAAOkK,KAAKylD,GAAehnD,OAAO,SAAC6N,EAAQmH,GACxD,IAAMg1C,EAAehD,EAAchyC,GAEnC,GAAIg1C,EAAa9C,UAAY8C,EAAa9C,SAASpuD,OAAS,EAAG,CAC3D,IAAMmxD,EAAmBD,EAAa9C,SAAS30C,IAAI,SAACi1C,GAAD,MAAc,CAC7D9tD,KAAM8tD,EAAQ9tD,KACdwwD,UAAW1C,EAAQ0C,UACnB5C,SAAUE,EAAQF,SAClB6C,OAAQ3C,EAAQ2C,OAChBC,sBAAuBL,GAAMvC,EAAQ6C,wBACjC7C,EAAQ6C,wBACR7C,EAAQ4C,yBAGhBv8C,EAAM,GAAAvX,OAAAg0D,GAAOz8C,GAAPy8C,GAAkBL,IAG5B,OAAOp8C,GACR,IAEH,OAAOxC,KAAKk/C,iBAAiBrD,4CAGhBA,GACb,OAAO,IAAIsD,QAAJ,iBAAAz6C,KAAAipC,mBAAAC,KAAY,SAAAC,EAAOuR,EAASC,GAAhB,IAAAC,EAAA,OAAA3R,mBAAA5+C,KAAA,SAAAk/C,GAAA,cAAAA,EAAAr5C,KAAAq5C,EAAAnpC,MAAA,cAAAmpC,EAAAnpC,KAAA,EACKkqC,IAAYuQ,qBADjB,OACTD,EADSrR,EAAAuR,KAGfC,YAAS,kBAAMC,KAAIC,KAAKzM,IAAI0M,kBH7FR,eG6F6C,CAC7DC,YAAaC,aAAkB,CAAEC,aAAa,IAC9CC,eAAgBnE,GACjB,CACClhB,QAAS,CACLC,eAAgB,mBAChBC,cAAa,UAAA5vC,OAAYq0D,OAE7BW,IAAwBC,KACvBpmB,KAAK,SAAChmB,GACH,IAAKqsC,aAAkBrsC,GACnB,OAAOurC,EAAO,IAAI97C,MAAM,mCAG5B67C,KACD,SAACrxC,GACA,OAAIA,GAASA,EAAMw5B,MAAuB,MAAfx5B,EAAMw5B,KACtB8X,EAAO,IAAI97C,MAAM,QAErB87C,MAtBA,wBAAApR,EAAAI,SAAAR,EAAA7tC,uLAAZ,gBAAAogD,EAAAC,GAAA,OAAA37C,EAAA7F,MAAAmB,KAAApR,YAAA,2CA2BI+C,GAAU,IAAA2d,EAAAtP,KAIrB,OAHArO,EAASqO,KAAKy+C,WAAU,IACxBz+C,KAAKo9C,0BAA0BtoD,KAAKnD,GAE7B,WACH2d,EAAK8tC,0BAA4B9tC,EAAK8tC,0BAA0BztC,OAAO,SAACha,GAAD,OACnEA,IAAShE,kDAIAA,GAAU,IAAA4d,EAAAvP,KAI3B,OAHArO,EAASqO,KAAKy+C,WAAU,IACxBz+C,KAAKq9C,gCAAgCvoD,KAAKnD,GAEnC,WACH4d,EAAK8tC,gCAAkC9tC,EAAK8tC,gCAAgC1tC,OAAO,SAACha,GAAD,OAC/EA,IAAShE,mDAIC+rD,GAAuB,IAAAjuC,EAAAzP,KACzC09C,EAAwB19C,KAAKq9C,gCAAgC73C,QAAQ,SAAC8yB,GAAD,OAAQA,EAAG7oB,EAAKgvC,UAAUf,MAC3F19C,KAAKo9C,0BAA0B53C,QAAQ,SAAC8yB,GAAD,OAAQA,EAAG7oB,EAAKgvC,UAAUf,0CAG7DA,GACJA,GACA19C,KAAKu9C,cAAgB7B,GACjBkC,eACAA,aAAaziD,WH1JY,sBG2JzByiD,aAAaziD,WHzJiB,oCG4JlC6E,KAAKs9C,QAAU5B,GACXkC,eACAA,aAAaziD,WHjKK,oBGkKlByiD,aAAaziD,WHhKU,iCGoK/B6E,KAAKw+C,sBAAsBd,qsCClMnC,IAGqB4C,eACjB,SAAAA,EAAYrgC,GAAO,IAAA3Q,qCAAAgxC,4DAAAC,CAAAvgD,MAEf,IAAMs+C,GADNhvC,MAAAkxC,GAAAF,GAAA/2D,KAAAyW,KAAMigB,+CAANjgB,SACoBygD,kBAAkBC,GAAcC,iBAAiBrxC,EAAK2Q,MAAMy9B,wBAFjE,OAGfpuC,EAAK5J,MAAQ,CACT44C,UAGJhvC,EAAKsxC,sBAAuB,EAC5BtxC,EAAKuxC,2BACLvxC,EAAKwxC,sBAAwBxxC,EAAKwxC,sBAAsBh0C,KAA3Bi0C,MAAAzxC,KAC7BA,EAAK0xC,wBAA0B1xC,EAAK0xC,wBAAwBl0C,KAA7Bi0C,MAAAzxC,KAC/BA,EAAK2xC,WAAa3xC,EAAK2xC,WAAWn0C,KAAhBi0C,MAAAzxC,KAClBA,EAAK4xC,iBAAmB5xC,EAAK4xC,iBAAiBp0C,KAAtBi0C,MAAAzxC,KAZTA,qPADuBupC,KAAMC,gEAiB5C,IAAMqI,EAAY,IAAIC,gBAAgBx2D,OAAOg2B,SAAS3lB,QAEtD,GAAKkmD,EAAU9hD,IAAI,kBAAnB,CAIA,IAAMgiD,EAAoBF,EAAU/0D,IAAI,kBAGe,OAAnDi1D,EAAkB9rD,MAFQ,gCAM9B08C,IAAQxf,IAhCe,iBAgCa4uB,EAAmB,CAAEtG,QAAQ,mDAG/CY,GAAoC,IAArB2F,EAAqB1yD,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,IAAAA,UAAA,GACtDoR,KAAKuhD,iBAAiB5F,EAAe2F,GAAa,4CAGrC3F,EAAe2F,GAAgC,IAAnB7E,EAAmB7tD,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,IAAAA,UAAA,GACxD0yD,GACA1F,GAAiB4F,oBAAoB7F,EAAec,GAExDz8C,KAAKyhD,wBAAwB9F,GAC7B+E,GAAcgB,kBAAkB/F,EAAe37C,KAAKigB,MAAMy9B,uBAC1D,IAAMiE,EAAiB3hD,KAAKygD,kBAAkB9E,GAC9C37C,KAAK4hD,SAAS,CAAEtD,OAAQqD,oDAOJhG,GACpB3vD,OAAO+kB,OAAO4qC,GAAen2C,QAAQ,SAACm5C,GAClCA,EAAa9C,SAAW8C,EAAa9C,SAASlsC,OAAO,SAACwsC,GAAD,OAAaA,EAAQF,UAAYE,EAAQF,SAAW,IACpE,IAAjC0C,EAAa9C,SAASpuD,eACfkuD,EAAcgD,EAAa3wD,gDAK5B2tD,GACd,IAAIrT,EAAQ,EACRuZ,GAAqB,EAEzB71D,OAAOkK,KAAKylD,GAAen2C,QAAQ,SAACs8C,GAChC,IAAIC,EAAmB,EAEvBpG,EAAcmG,GAAgBjG,SAAS1lD,KAAK,SAAClD,EAAGC,GAAJ,OAAUD,EAAEipD,UAAYhpD,EAAEgpD,YACjE12C,QAAQ,SAACw8C,GACN,IAAMC,EAAaD,EAAc9Z,MAAQ8Z,EAAc/F,SAEvD+F,EAAcE,IAAMD,EAEpBF,GAAoBE,EAGpB3Z,GAAS2Z,EAELD,EAAc3zD,OAAS2sD,KACvB6G,GAAqB,KAGjClG,EAAcmG,GAAgBI,IAAMH,IAGxC,IAAMzD,EAAS,CACX3C,gBACArT,SAOJ,OAJIuZ,IACAvD,EAAO6D,QAAUla,GAAema,oBAAoB9Z,EAAOtoC,KAAKigB,MAAMsoB,qBAGnE+V,kDAIanC,EAASwC,EAAc1C,GAC3C,IAAMoG,EAAsBriD,KAAK0F,MAAM44C,OAAO3C,cAGzC0G,EAAoB1D,EAAa3wD,MAClCq0D,EAAoB1D,EAAa3wD,IAAjCs0D,GAAA,GAA4C3D,GAC5C0D,EAAoB1D,EAAa3wD,IAAI6tD,SAAW,IAGpD,IAAMa,EAAqB2F,EAAoB1D,EAAa3wD,IACtDg0D,EAAgBtF,EAAmBb,SAAS7lC,KAAK,SAACusC,GAAD,OAAcA,EAASv0D,KAAOmuD,EAAQnuD,KAE7F,GAAIg0D,EAAe,CACf,GJ7F2B,eI6FvBA,EAAchhD,KAAgD,IAAbi7C,EAAgB,CACjE,IAAMuG,EAAqB9F,EAAmBb,SAAS7lC,KAAK,SAACusC,GAAD,OAAcA,EAASvhD,MAAQu6C,KAEvFiH,IACAA,EAAmBvG,SAAWA,GAItC+F,EAAc/F,SAAWA,OAGzBoG,EAAoB1D,EAAa3wD,IAAI6tD,SAAS/mD,KAA9CwtD,GAAA,GACOnG,EADP,CAEIF,cAIRj8C,KAAKuhD,iBAAiBc,EAAqBzG,GAAiB6G,kBAAkBtG,EAAQ9tD,KAAM8tD,EAAQn7C,2CAGjF,IAAAuO,EAAAvP,KAAZ0+C,EAAY9vD,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,IAAAA,UAAA,GACnB8zD,GAAgBhmD,OAEXsD,KAAK4gD,uBACN5gD,KAAK4gD,sBAAuB,EAC5B/K,KAAYxlC,OACZqwC,GAAciC,SAAS3iD,KAAK0F,MAAM44C,OAAO3C,cAAe+C,GACnD5kB,KAAK,WACF+b,KAAYn5C,OACZ6S,EAAKqxC,sBAAuB,GAC7B,SAAC7yC,GACA8nC,KAAYn5C,OACU,QAAlBqR,EAAM60C,SACNF,GAAgBryC,OAEpBd,EAAKqxC,sBAAuB,IAC7B5mB,MAAM,WACL6b,KAAYn5C,OACZ6S,EAAKqxC,sBAAuB,gDAMxCh2D,OAAOg2B,SAAW5gB,KAAKigB,MAAM4iC,4DAI7B,IAGI,OAFAjF,aAAaG,QAnKK,eAmK0B,KAC5CH,aAAaziD,WApKK,iBAqKX,EACT,MAAO4S,GACL,OAAO,oCAMX,OACIoqC,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KAEQ9iD,KAAK+iD,0BACD/iD,KAAKigB,MAAMpU,OAAO,CACdyyC,OAAQt+C,KAAK0F,MAAM44C,OACnBwC,sBAAuB9gD,KAAK8gD,sBAC5BE,wBAAyBhhD,KAAKghD,wBAC9BC,WAAYjhD,KAAKigB,MAAM+iC,sBAAwBhjD,KAAKkhD,iBAAmBlhD,KAAKihD,aAEhF9I,GAAAllD,EAAA/D,cAAA,+5BClLH+zD,eACjB,SAAAA,EAAYhjC,GAAO,IAAA3Q,IAAA,uCAAA2zC,4DAAAC,CAAAljD,OACfsP,MAAA6zC,GAAAF,GAAA15D,KAAAyW,KAAMigB,+CAANjgB,SAEKojD,cAAgB9zC,EAAK8zC,cAAct2C,KAAnBu2C,MAAA/zC,KACrBA,EAAKg0C,iBAAmBh0C,EAAKg0C,iBAAiBx2C,KAAtBu2C,MAAA/zC,KACxBA,EAAKi0C,iBAAmB,CAACrI,GAAiBC,GAAwBC,GAAmBC,IALtE/rC,qPADoBupC,KAAMC,sDAS5B36C,GACb,IAAI89C,EAAWhmC,SAAS9X,EAAEpO,OAAO5F,MAAO,IACxC8xD,EAAY9mB,OAAOl2B,MAAMg9C,GAAuB,EAAXA,EAErC,IAAME,EAAUn8C,KAAKigB,MAAMk8B,QACrBqH,EAAcrH,EAAQF,SAExB9zC,EAAY,GACZs7C,EAAgB,EAEhBxH,EAAWuH,GACXr7C,EAAYu7C,KAAoBC,YAChCF,EAAgBxH,EAAWuH,GACpBvH,EAAWuH,IAClBr7C,EAAYu7C,KAAoBE,iBAChCH,EAAgBD,EAAcvH,GAGlC,IAAM4H,EAAmB7jD,KAAKigB,MAAM0+B,aAAavY,MAAM3mC,MAAM,KAAK,GAC5DqkD,EAAe3H,EAAQjU,MrB1CP,IqB4CtBqQ,KAAIwL,mBAAmB57C,EAAW,CAC9B0jC,SAAU/D,GAAiBE,IAC3B79C,MAAO25D,EAAeL,EACtBhvD,MAAO,CACH,CACIuvD,QAAS7H,EAAQ0C,UACjBoF,UAAS,GAAAh5D,OAAKkxD,EAAQ/V,MAAb,KAAAn7C,OAAsB44D,GAC/B3b,MAAO4b,EACP7H,SAAUwH,MAKtBzjD,KAAKigB,MAAMikC,iBAAiBjI,2CAI5B,IAAME,EAAUn8C,KAAKigB,MAAMk8B,QACrB2H,EAAe3H,EAAQjU,MrB9DP,IqB+DhB2b,EAAmB7jD,KAAKigB,MAAM0+B,aAAavY,MAAM3mC,MAAM,KAAK,GAElE84C,KAAIwL,mBAAmBL,KAAoBE,iBAAkB,CACzD/X,SAAU/D,GAAiBE,IAC3B79C,MAAO25D,EAAe3H,EAAQF,SAC9BxnD,MAAO,CACH,CACIuvD,QAAS7H,EAAQ0C,UACjBoF,UAAS,GAAAh5D,OAAKkxD,EAAQ/V,MAAb,KAAAn7C,OAAsB44D,GAC/B3b,MAAO4b,EACP7H,SAAUE,EAAQF,aAK9Bj8C,KAAKigB,MAAMikC,iBAAiB,gDAGX/H,GACjB,IAAM35C,EAAS,GACX2hD,EAAgB,ELtDS,cKwDzBhI,EAAQn7C,MACRmjD,EAAgB,GAGpB,IAAMC,EAAqB5I,GAAqBW,EAAQn7C,UAE7B3V,IAAvB+4D,GACIA,EAAmBC,mBAAqB,GAAM,IAC9CF,EAAgB,GAIxB,IAAK,IAAI14D,EAAI04D,EAAe14D,GAAK0wD,EAAQC,YAAa3wD,GAAK04D,EACvD3hD,EAAO1N,KAAKrJ,GAGhB,OAAO+W,wCAGG25C,EAASmI,GACnB,OACKA,EA8BItkD,KAAKujD,iBAAiB5yD,QAAQwrD,EAAQn7C,MAAQ,EAC3ChB,KAAKigB,MAAMskC,4BACPpM,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCACVgsD,EAAQF,UAGb9D,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,mCAAmChG,MAAOgyD,EAAQF,SAC5D/rB,SAAUlwB,KAAKsjD,iBACfkB,aAAA,GAAAv5D,OAAekxD,EAAQ/V,MAAvB,8BAGIpmC,KAAKykD,qBAAqBtI,GAASj1C,IAAI,SAAC+0C,GAAD,OACnC9D,GAAAllD,EAAA/D,cAAA,UACIwF,IAAKunD,EACL/zC,SAAU+zC,EAAWE,EAAQE,aAC7BlyD,MAAO8xD,GAAWA,MAItC9D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCACVgsD,EAAQF,ULjIU,mBK+E3BE,EAAQn7C,IACJm3C,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,mCAAmChG,MAAOgyD,EAAQF,SAC5D/rB,SAAUlwB,KAAKsjD,iBACfkB,aAAA,GAAAv5D,OAAekxD,EAAQ/V,MAAvB,8BAGI+R,GAAAllD,EAAA/D,cAAA,UACIwF,IAAKynD,EAAQF,SACb/zC,UAAQ,EACR/d,MAAOgyD,EAAQF,UAAWE,EAAQF,WAI9C9D,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,mCAAmChG,MAAOgyD,EAAQF,SAC5D/rB,SAAUlwB,KAAKsjD,iBACfkB,aAAA,GAAAv5D,OAAekxD,EAAQ/V,MAAvB,8BAGIpmC,KAAKykD,qBAAqBtI,GAASj1C,IAAI,SAAC+0C,GAAD,OACnC9D,GAAAllD,EAAA/D,cAAA,UACIwF,IAAKunD,EACL/zC,SAAU+zC,EAAWE,EAAQE,aAC7BlyD,MAAO8xD,GAAWA,uCA+BzC,IACGE,EAAYn8C,KAAKigB,MAAjBk8B,QACR,OACIhE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBACVgsD,EAAQ/V,OAEb+R,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBACV83C,GAAeyc,gBAAgBvI,EAAQjU,QAE5CiQ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,4BACXgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,kCAAhB,QACC6P,KAAK2kD,cAAcxI,EAASn8C,KAAKigB,MAAMqkC,wBACtCtkD,KAAKigB,MAAMqkC,uBAYRtkD,KAAKujD,iBAAiB5yD,QAAQwrD,EAAQn7C,MAAQ,EAC3ChB,KAAKigB,MAAMskC,4BACPpM,GAAAllD,EAAA/D,cAAA,UAAQiB,UAAU,yCAElBgoD,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,gCACV9B,KAAK,SACLiqD,QAASt4C,KAAKojD,eAEdjL,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,mBAAhB,8BACAgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO0B,MAAM,IAAI8gC,OAAO,IAAIiyB,UAAU,SACjDzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,kBAI3B1M,GAAAllD,EAAA/D,cAAA,UAAQiB,UAAU,yCA1BtBgoD,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,gCACV9B,KAAK,SACLiqD,QAASt4C,KAAKojD,eAEdjL,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,mBAAhB,8BACAgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO0B,MAAM,IAAI8gC,OAAO,IAAIiyB,UAAU,SACjDzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,mBAqB/B1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uBAEPgsD,EAAQjU,MAAQ,EACZD,GAAeyc,gBAAgBvI,EAAQ+F,KACvC,+oBAQ5Be,GAAcxK,UAAY,CACtB0D,QAASzD,KAAUnsD,OAAOu4D,WAC1BnG,aAAcjG,KAAUnsD,OAAOu4D,WAC/BZ,iBAAkBxL,KAAUx3C,KAC5BojD,uBAAwB5L,KAAUqM,KAClCR,4BAA6B7L,KAAUqM,UCjNtBC,+kBAA2BnM,KAAMC,8CACzC,IAAAxpC,EAAAtP,KACG2+C,EAAiB3+C,KAAKigB,MAAtB0+B,aAGF9C,EAAWD,GAAiBqJ,wBAAwBtG,EAAa9C,UACjEqJ,EAAmCllD,KAAKmlD,qCAAqCtJ,GAEnF,OACI1D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gBACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,uBACTwuD,EAAavY,OAGdyV,EAASpuD,OAAS,EACd0qD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BACV0rD,EAAS30C,IAAI,SAACi1C,GAAD,OACVhE,GAAAllD,EAAA/D,cAAA,OAAKwF,IAAKynD,EAAQnuD,GAAImC,UAAU,yBAC5BgoD,GAAAllD,EAAA/D,cAACk2D,GAAD,CACIjJ,QAASA,EACTwC,aAAcA,EACduF,iBAAkB,SAACjI,GAAD,OAAc3sC,EAAK2Q,MAAM+gC,wBAAwB7E,EAASwC,EAAc1C,IAC1FqI,uBAAwBh1C,EAAK2Q,MAAMqkC,uBACnCC,4BAA6BW,QAEpC,KAEjB/M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BACXgoD,GAAAllD,EAAA/D,cAAA,0BACAipD,GAAAllD,EAAA/D,cAAA,YAAO+4C,GAAeyc,gBAAgB/F,EAAauD,qEAM9BrG,GACjC,IAAIwJ,GAAgC,EAUpC,OATAxJ,EAASr2C,QAAQ,SAAC8/C,GACVA,EAAetkD,MAAQk6C,IACvBoK,EAAetkD,MAAQm6C,IACvBmK,EAAetkD,MAAQq6C,IACvBiK,EAAetkD,MAAQo6C,KACvBiK,GAAgC,KAIjCA,woBAIfL,GAAmBvM,UAAY,CAC3BkG,aAAcjG,KAAUnsD,OAAOu4D,WAC/B9D,wBAAyBtI,KAAUx3C,KAAK4jD,WACxCR,uBAAwB5L,KAAUqM,UC7DjBQ,+kBAAqB1M,KAAMC,8CACnC,IAAAxpC,EAAAtP,KACL,OACIm4C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBACV6P,KAAKigB,MAAM07B,cAAcz0C,IAAI,SAACy3C,GAAD,OAC1BxG,GAAAllD,EAAA/D,cAAA,OAAKwF,IAAKiqD,EAAa3wD,GAAImC,UAAU,iBACjCgoD,GAAAllD,EAAA/D,cAACs2D,GAAD,CAAoB7G,aAAcA,EAC9BqC,wBAAyB1xC,EAAK2Q,MAAM+gC,wBACpCsD,uBAAwBh1C,EAAK2Q,MAAMqkC,mqBAO/DiB,GAAa9M,UAAY,CACrBkD,cAAejD,KAAUjjD,MAAMqvD,WAC/B9D,wBAAyBtI,KAAUx3C,KAAK4jD,WACxCR,uBAAyB5L,KAAUqM,UClBlBU,+kBAAoB5M,KAAMC,8CAEvC,OACIX,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qBACXgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,2BAAhB,UACAgoD,GAAAllD,EAAA/D,cAAA,YAAO+4C,GAAeyc,gBAAgB1kD,KAAKigB,MAAMq+B,OAAOhW,SAE3D,YAAatoC,KAAKigB,MAAMq+B,OAASnG,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qBAC7CgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,2BAAhB,eACgBgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,0BADhC,KAEAgoD,GAAAllD,EAAA/D,cAAA,YAAO+4C,GAAeyc,gBAAgB1kD,KAAKigB,MAAMq+B,OAAO6D,WACnD,oMAMzBsD,GAAYhN,UAAY,CACpB6F,OAAQ5F,KAAUnsD,OAAOu4D,0BClB7B,SAASY,GAAThhD,GAAwC,IAAbxN,EAAawN,EAAbxN,UACvB,OAAOihD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCAChB+G,EAAUgQ,IAAI,SAACuO,GACZ,OAAO0iC,GAAAllD,EAAA/D,cAAA,MAAIwF,IAAK0yC,IAAEue,YAAa7vD,aAAM2f,OAKjDiwC,GAAgBjN,UAAY,CACxBvhD,UAAWwhD,KAAUjjD,MAAMqvD,YAGhBY,UCZf,SAASE,GAATlhD,GAIG,IAHCmhD,EAGDnhD,EAHCmhD,qBACAC,EAEDphD,EAFCohD,uBACAC,EACDrhD,EADCqhD,oBAEMC,EAA8BC,aAAiBH,GAC/CI,EAAuC,KAAzBL,GAAwD,OAAzBA,EAC7CM,EAAqC,OAAxBJ,QAAwD16D,IAAxB06D,EACnD,OACI5N,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BACVg2D,GACGhO,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAKs7D,EAAqB51D,UAAU,0BAE5C+1D,GACG/N,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,4BAA4B01D,GAE9C1N,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACXgoD,GAAAllD,EAAA/D,cAACk3D,GAAD,CAAiBlvD,UAAW8uD,KAEhC7N,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAW,kDAChBgoD,GAAAllD,EAAA/D,cAAA,YAKZ02D,GAA2BnN,UAAY,CACnCoN,qBAAsBnN,KAAUj5B,OAChCqmC,uBAAwBpN,KAAUj5B,QAGvBmmC,oBC7Bf,SAASS,GAAmBpmC,GACxB,OAAOqmC,GAAcrmC,GAGzB,IAAMqmC,GAAgB,SAACrmC,GAEnB,GAAImnB,IAAEC,QAAQpnB,IAAUmnB,IAAEC,QAAQpnB,EAAMsmC,YACpC,MAAO,GAHkB,IAAAC,EAMsDvmC,EAAMsmC,WADjFE,EALqBD,EAKrBC,YAAaC,EALQF,EAKRE,cAAeC,EALPH,EAKOG,yBAChCC,EANyBJ,EAMzBI,yBAA0BC,EANDL,EAMCK,wBAAyBC,EAN1BN,EAM0BM,aAAcC,EANxCP,EAMwCO,UAErE,OAAIH,EAEIzO,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBAAiB6B,MAAO,CAAEi1D,gBAAe,OAAAh8D,OAAS07D,EAAT,QAExDxO,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uBACV+2D,GAAmBT,EAAaK,GAChCK,GAAqBT,EAAeK,KAMjDF,EAEI1O,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCAAoC6B,MAAO,CAAEi1D,gBAAe,OAAAh8D,OAAS07D,EAAT,OACtEO,GAAmBT,EAAaK,IAEpCM,GAAiCV,EAAeK,GAAW,IAMpE5O,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCAAoC6B,MAAO,CAAEi1D,gBAAe,OAAAh8D,OAAS07D,EAAT,OACtEO,GAAmBT,EAAaK,GAChCK,GAAqBT,EAAeK,KAK3CK,GAAmC,SAACV,EAAeK,EAAWM,GAChE,OAAIjgB,IAAEC,QAAQqf,GACH,KAEJvO,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uBACjBg3D,GAAqBT,EAAeK,EAAWM,KAIlDF,GAAuB,SAACT,EAAeK,GAAmC,IAAxBM,IAAwBz4D,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,KAAAA,UAAA,GAC5E,GAAIw4C,IAAEC,QAAQqf,GACV,MAAO,GAGX,IAAMY,EAAaC,GAASR,GAE5B,OAAO5O,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAWk3D,EAAe,aAAe,OACzCr1D,MAAO,CAAEw1D,MAAOF,GAChBG,wBAAyB,CAAEC,OAAQhB,GAAiB3rB,GAAqBE,sBAGnFisB,GAAqB,SAACT,EAAaK,GACrC,GAAI1f,IAAEC,QAAQof,GACV,MAAO,GAEX,IAAMa,EAAaC,GAAST,GAE5B,OAAO3O,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,QAAQ6B,MAAO,CAAEw1D,MAAOF,IAAeb,GAAe1rB,GAAqBC,kBAG9FusB,GAAW,SAACC,GACd,OAAOpgB,IAAEC,QAAQmgB,GAAS,QAAUA,GAGxCnB,GAAmB5N,UAAY,CAC3B8N,WAAY7N,KAAUnsD,OAAOu4D,YAGlBuB,UCnFf,SAASsB,GAATjjD,GAWG,IAVCmtB,EAUDntB,EAVCmtB,OACAvhC,EASDoU,EATCpU,SACAs3D,EAQDljD,EARCkjD,UACAC,EAODnjD,EAPCmjD,aACAC,EAMDpjD,EANCojD,eACAC,EAKDrjD,EALCqjD,gBACAC,EAIDtjD,EAJCsjD,wBACAC,EAGDvjD,EAHCujD,cACAC,EAEDxjD,EAFCwjD,uBACAC,EACDzjD,EADCyjD,0BAyDA,OAtDSt2B,EAMDsmB,GAAAllD,EAAA/D,cAACk5D,GAAA,EAAD,CAAYv2B,OAAQA,EAAQw2B,UAAWR,GACnC1P,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kCACXgoD,GAAAllD,EAAA/D,cAACo5D,GAAD,CACI/B,WAAY4B,IAEhBhQ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,4CACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oDACVG,EACD6nD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACT+3D,GAA0B/P,GAAAllD,EAAA/D,cAAA,UACxBiB,UAAU,oCACVmoD,QAAS2P,EACTM,uBAAqB,iBACrBpQ,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uCACZgoD,GAAAllD,EAAA/D,cAAA,YAAO,UACPipD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,2BACV0B,MAAM,KACN8gC,OAAO,KACPiyB,UAAU,SACVzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,0BAIzBmD,GACE7P,GAAAllD,EAAA/D,cAAA,UACIiB,UAAS,GAAAlF,OAAK88D,EAAkB,+BAAiC,GAAxD,4DACTzP,QAASwP,EACT5/C,SAAU8/C,EACVO,uBAAqB,iBACrBpQ,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uCACZgoD,GAAAllD,EAAA/D,cAAA,YAAO04D,GACPzP,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,2BACV0B,MAAM,KACN8gC,OAAO,KACPiyB,UAAU,SACVzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,8BA1C5C,KAyDnB8C,GAAkBlP,UAAY,CAC1B5mB,OAAQ6mB,KAAUqM,KAAKD,WACvB8C,UAAWlP,KAAUj5B,OAAOqlC,WAC5B+C,aAAcnP,KAAUx3C,KAAK4jD,WAC7BgD,eAAgBpP,KAAUx3C,KAAK4jD,WAC/BiD,gBAAiBrP,KAAUqM,KAC3BiD,wBAAyBtP,KAAUqM,KAAKD,WACxCmD,cAAevP,KAAUx3C,KAAK4jD,YAGnB6C,klBC/EMa,eACjB,SAAAA,EAAYvoC,GAAO,IAAA3Q,IAAA,uCAAAk5C,4DAAAC,CAAAzoD,OACfsP,MAAAo5C,GAAAF,GAAAj/D,KAAAyW,KAAMigB,+CAANjgB,SACK0F,MAAQ,CACTijD,WAAW,GAEfr5C,EAAKs5C,wBAA0Bt5C,EAAKs5C,wBAAwB97C,KAA7B+7C,MAAAv5C,KAC/BA,EAAKw5C,iBAAmBx5C,EAAKw5C,iBAAiBh8C,KAAtB+7C,MAAAv5C,KANTA,qPADuBupC,KAAMC,+DAW5C9J,IAAY+Z,iBAAiBtN,KACzBz7C,KAAKigB,MAAM+oC,0BACXhpD,KAAK4hD,SAAS,CAAE+G,WAAW,KAE3B3oD,KAAK4hD,SAAS,CAAE+G,WAAW,IAC3B3oD,KAAKigB,MAAMghC,yDAKfjhD,KAAK4hD,SAAS,CAAE+G,WAAW,qCAGtB,IAAAp5C,EAAAvP,KACL,OACIm4C,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KACI3K,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uBACXgoD,GAAAllD,EAAA/D,cAAA,UAAQopD,QAASt4C,KAAK4oD,wBAClBz4D,UAAU,2CACVgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uCACZgoD,GAAAllD,EAAA/D,cAAA,mBACAipD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BAA0B0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SACtEzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,yBAI3B1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACXgoD,GAAAllD,EAAA/D,cAAA,8FAGRipD,GAAAllD,EAAA/D,cAAC+5D,GAAD,CACIp3B,OAAQ7xB,KAAK0F,MAAMijD,UACnBf,UAAW,MACXC,aAAc7nD,KAAK8oD,iBACnBhB,eAAgB,kBAAMv4C,EAAK0Q,MAAMghC,cACjC8G,iBAAiB,EACjBC,yBAAyB,EACzBC,cAAejoD,KAAK8oD,iBACpBZ,wBAAwB,EACxBC,0BAA2BnoD,KAAKigB,MAAMipC,iBAEtC/Q,GAAAllD,EAAA/D,cAACi6D,GAAD,CACItD,qBAAsB7lD,KAAKigB,MAAMmpC,eACjCtD,uBAAwB9lD,KAAKigB,MAAMopC,iBACnCtD,oBAAqB/lD,KAAKigB,MAAMqpC,wpBAQxDd,GAAiB/P,UAAY,CACzB6F,OAAQ5F,KAAUnsD,OAAOu4D,WACzB7D,WAAYvI,KAAUx3C,KAAK4jD,WAC3BkE,0BAA2BtQ,KAAUqM,KAAKD,WAC1CsE,eAAgB1Q,KAAUj5B,OAC1B4pC,iBAAkB3Q,KAAUj5B,OAC5B6pC,cAAe5Q,KAAUj5B,YCzER8pC,+kBAAqB1Q,KAAMC,8CAExC,OAAO94C,KAAKigB,MAAM6C,OAAOr1B,OAAS,EAC9B0qD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBACV6P,KAAKigB,MAAM6C,OAAO5b,IAAI,SAAC6G,EAAOtiB,GAAR,OAAc0sD,GAAAllD,EAAA/D,cAAA,OAAKwF,IAAKjJ,GAC1CsiB,EAAM9H,aAD0B,IACX8H,EAAMy7C,YAAN,OAAAv+D,OAA2B8iB,EAAMy7C,aAAgB,KADtC,IAC6Cz7C,EAAM07C,wBAAN,IAAAx+D,OAAoC8iB,EAAM07C,wBAA1C,KAAuE,SAG7J,mMAIZF,GAAa9Q,UAAY,CACrB31B,OAAQ41B,KAAUjjD,MAAMqvD,kKCbP4E,qtBACY,SAAC/N,GAC1B,OAAOA,EAAchnD,OAAO,SAACg1D,EAAahL,GACtC,OAAOgL,EAAchL,EAAauD,I/BNhB,K+BOnB,QAJUwH,uBAOU,SAAC/N,GACxB,OAAOiO,KAAQjO,EAAcz0C,IAAI,SAACy3C,GAAD,OAC7BA,EAAa9C,SAAS30C,IAAI,SAACi1C,GAAD,MAAc,CACpC6H,QAAS7H,EAAQ0C,UACjBoF,UAAS,GAAAh5D,OAAKkxD,EAAQn7C,IAAb,OAAA/V,OAAsB0zD,EAAavY,OAC5C8B,MAAOiU,EAAQjU,M/BfD,I+BgBd+T,SAAUE,EAAQF,qBCNb4N,eACjB,SAAAA,EAAY5pC,GAAO,IAAA3Q,IAAA,uCAAAu6C,4DAAAC,CAAA9pD,OACfsP,MAAAy6C,GAAAF,GAAAtgE,KAAAyW,KAAMigB,+CAANjgB,SAEKihD,WAAa3xC,EAAK2xC,WAAWn0C,KAAhBk9C,MAAA16C,KAHHA,qPADaupC,KAAMC,mDAQlC,OACIX,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBAAf,6DAKJ,IAAM85D,EAAmBjqD,KAAKkqD,oBAAoBlqD,KAAKigB,MAAMq+B,OAAO3C,eAC9DwO,EAAcT,GAAeU,kBAAkBH,GAErD1R,KAAIwL,mBAAmBL,KAAoB2G,eAAgB,CACvDxe,SAAU/D,GAAiBE,IAC3B79C,MAAO6V,KAAKigB,MAAMq+B,OAAOhW,MhC7BP,IgC8BlB7zC,MAAO01D,IAGXnqD,KAAKigB,MAAMghC,yDAGKtF,GAChB,OAAO3vD,OAAOkK,KAAKylD,GAAez0C,IAAI,SAAClZ,GAAD,OAAQ2tD,EAAc3tD,sCAI5D,IAAMs8D,EAAoBtqD,KAAKkqD,oBAAoBlqD,KAAKigB,MAAMq+B,OAAO3C,eAErE,OACIxD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,UACVm6D,EAAkB78D,OAAS,EACxB0qD,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KACI3K,GAAAllD,EAAA/D,cAACq7D,GAAD,CAAcznC,OAAQ9iB,KAAKigB,MAAM6C,SACjCq1B,GAAAllD,EAAA/D,cAACs7D,GAAD,CACI7O,cAAe2O,EACftJ,wBAAyBhhD,KAAKigB,MAAM+gC,wBACpCsD,uBAAwBtkD,KAAKigB,MAAMqkC,yBAEvCnM,GAAAllD,EAAA/D,cAACu7D,GAAD,CAAanM,OAAQt+C,KAAKigB,MAAMq+B,SAChCnG,GAAAllD,EAAA/D,cAACw7D,GAAD,CACIpM,OAAQt+C,KAAKigB,MAAMq+B,OACnB2C,WAAYjhD,KAAKihD,WACjB0J,kBAAmB3qD,KAAKigB,MAAM+oC,0BAC9BA,0BAA2BhpD,KAAKigB,MAAM+oC,0BACtCI,eAAgBppD,KAAKigB,MAAMmpC,eAC3BC,iBAAkBrpD,KAAKigB,MAAMopC,iBAC7BC,cAAetpD,KAAKigB,MAAMqpC,cAC1BJ,gBAAiBlpD,KAAKigB,MAAMipC,mBAEhBlpD,KAAK4qD,oXAO7Cf,GAAOpR,UAAY,CACf6F,OAAQ5F,KAAUnsD,OAAOu4D,WACzB9D,wBAAyBtI,KAAUx3C,KAAK4jD,WACxC7D,WAAYvI,KAAUx3C,KAAK4jD,WAC3BhiC,OAAQ41B,KAAUjjD,MAClB6uD,uBAAwB5L,KAAUqM,KAClCiE,0BAA2BtQ,KAAUqM,KACrCqE,eAAgB1Q,KAAUj5B,OAC1B4pC,iBAAkB3Q,KAAUj5B,OAC5B6pC,cAAe5Q,KAAUj5B,YCzERorC,uMACiBC,GAC1BlN,eACyD,KAAzD59C,KAAK+qD,UAAUtP,IAA+Cz7C,KAAKgrD,wCAAwCF,GACvG9qD,KAAKirD,gHAI8BH,GAC3C,GAA0D,IAAtD9+D,OAAOkK,KAAK40D,GAA+Br9D,OAAc,CACzD,IAAMy9D,EAA+B,GAMrC,GAJAJ,EAA8BtlD,QAAQ,SAAC1X,GACnCo9D,EAA6Bp9D,EAAQE,IAAMF,IAGS,OAApD8vD,aAAaC,QjBeY,sBiBdzBD,aAAaG,QjBcY,qBiBduBloD,KAAKE,UAAUm1D,IAC/DtN,aAAaG,QjBgBuB,yBiBhBuBloD,KAAKE,UAAUm1D,SACvE,GAAmE,OAA/DtN,aAAaC,QjBegB,0BiBfwC,CAC5E,IAAMsN,EAAet1D,KAAKC,MAAM8nD,aAAaC,QjBWpB,uBiBTzBiN,EAA8BtlD,QAAQ,SAAC1X,GAC9Bq9D,EAAaz+D,eAAeoB,EAAQE,MACrCm9D,EAAar9D,EAAQE,IAAMF,KAInC8vD,aAAaG,QjBGY,qBiBHuBloD,KAAKE,UAAUo1D,IAC/DvN,aAAaG,QjBKuB,yBiBLuBloD,KAAKE,UAAUm1D,6EAMlF,IAAKlrD,KAAKorD,4BAA6B,CACnC,IAAMC,EAAex1D,KAAKC,MAAM8nD,aAAaC,QjBLhB,uBiBMvByN,EAAwBz1D,KAAKC,MAAM8nD,aAAaC,QjBHd,2BiBIlC0N,EAA4B,GAElC,IAAK,IAAMpP,KAAWmP,EAAyBC,EAA0Bz2D,KAAKw2D,EAAsBnP,IAEpGoP,EAA0B/lD,QAAQ,SAAC1X,GAC3Bu9D,EAAa3+D,eAAeoB,EAAQE,YAC7Bq9D,EAAav9D,EAAQE,MAIpC4vD,aAAaziD,WjBd2B,0BiBexCyiD,aAAaG,QjBlBgB,qBiBkBmBloD,KAAKE,UAAUs1D,yDAKnE,OAAmE,OAA/DzN,aAAaC,QjBpB2B,2BiBqBY,OAApDD,aAAaC,QjBxBgB,wDiB6BpBzN,GACb,IAAM/C,EAAS4E,IAAQ7lD,IAAIgkD,GAC3B,OAAO/C,GAAqB,MAAXA,EAAiBA,EAAS,ieC3D9Bme,eACjB,SAAAA,IAAqB,IAAAl0B,EAAAhoB,qCAAAk8C,4DAAAC,CAAAzrD,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAo0B,GAAAF,IAAAjiE,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACK8N,OAFYwB,qPADoB0oB,sCAMlC,IAAAzoB,EAAAvP,KAAA2rD,EAGC3rD,KAAKwO,QADLo9C,EAFDD,EAECC,mBAAoB5C,EAFrB2C,EAEqB3C,0BAA2BI,EAFhDuC,EAEgDvC,eAAgBE,EAFhEqC,EAEgErC,cAAewB,EAF/Ea,EAE+Eb,8BAE5E5B,EAAkB,CACpBvC,yBAA0B3mD,KAAKwO,QAAQm4C,yBACvCD,cAAe1mD,KAAKwO,QAAQk4C,cAC5BD,YAAazmD,KAAKwO,QAAQi4C,YAC1BI,wBAAyBgF,YAAgB7rD,KAAKwO,QAAQq4C,yBACtDD,yBAA0BiF,YAAgB7rD,KAAKwO,QAAQo4C,0BACvDG,UAAW/mD,KAAKwO,QAAQu4C,UACxBD,aAAc9mD,KAAKwO,QAAQs4C,cAEzBgF,EAAe7Z,IAAQ7lD,IAAI,oBAC3Bk4D,EAAyBzuD,KAAKC,MAAM81D,EAAmBx4D,eACvD24D,EAA2Bl2D,KAAKC,MAAMkzD,EAA0B51D,eAChEi2D,EAAmBrpD,KAAKwO,QAAQ66C,iBAAiB5pD,MAAM,WAAWK,KAAK,MAEhDE,KAAK8iB,YAAjBz3B,IAAjBygE,EAA2Cve,YAAcue,GAA8B,GAEvFE,GAAqBC,2BAA2BnB,GAEhDj/C,kBAEQssC,GAAAllD,EAAA/D,cAACg9D,GAAD,CACIxO,sBAAuB4G,EACvB/b,mBAAoBvoC,KAAKwO,QAAQ+5B,mBACjC18B,OAAQ,SAAAnH,GAAA,IAAG45C,EAAH55C,EAAG45C,OAAQ0C,EAAXt8C,EAAWs8C,wBAAyBC,EAApCv8C,EAAoCu8C,WAApC,OACJ9I,GAAAllD,EAAA/D,cAACi9D,GAAD,CAAQ7N,OAAQA,EACZx7B,OAAQvT,EAAKuT,OACbk+B,wBAAyBA,EACzBC,WAAYA,EACZqD,uBAAwBA,EACxB0E,0BAA2B+C,EAC3B3C,eAAgBA,EAChBC,iBAAkBA,EAClBC,cAAeA,EACfJ,gBAAiBA,OAIjClpD,KAAKlS,+oBCrDjByqC,IAAkBC,cAAchE,OAAO,SAAUg3B,QCA5BY,eACjB,SAAAA,IAAqB,IAAA90B,EAAAhoB,qCAAA88C,4DAAAC,CAAArsD,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAg1B,GAAAF,IAAA7iE,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,qPAD4B0oB,sCAQ7C,IAAMu0B,EAAsBta,IAAQ7lD,IAAI,iBAC9C,QAA4Bf,IAAxBkhE,EAAmC,CAC7B,IAAMC,EAAgB32D,KAAKC,MAAMy2D,QACXlhE,IAAlBmhE,SACoBnhE,IAA5B2U,KAAKi4B,KAAKw0B,qBAEuBphE,IAAjCmhE,EAAcE,gBAAiE,KAAjCF,EAAcE,eAC9D1sD,KAAKi4B,KAAKw0B,cAAc1kD,aAAa,QAAQ,iBAG7C/H,KAAKi4B,KAAKw0B,cAAc1kD,aAAa,OAAQykD,EAAcE,sBAIzBrhE,IAAhC2U,KAAKi4B,KAAK00B,yBAE2BthE,IAArCmhE,EAAcI,oBAAyE,KAArCJ,EAAcI,mBAClE5sD,KAAKi4B,KAAK00B,kBAAkB5kD,aAAa,QAAQ,iBAGjD/H,KAAKi4B,KAAK00B,kBAAkB5kD,aAAa,OAAQykD,EAAcI,sBAMnE,IAAM3Z,EAAiBhB,IAAQ7lD,IAAI8mD,IAAIxtC,MAAMwnC,oBAC7C,QAAuB7hD,IAAnB4nD,EAA8B,CACjC,IAAM7F,EAAWv3C,KAAKC,MAAMm9C,QAEX5nD,IAAb+hD,QAAqD/hD,IAA3B+hD,EAAS0B,eAA+B1B,EAAS0B,eAE7E9uC,KAAKi4B,KAAKw0B,cAAc1kD,aAAa,OAAQ,qpBCzClDwwB,IAAkBC,cAAchE,OAAO,mBAAoB43B,QCAtCS,eACjB,SAAAA,IAAqB,IAAAv1B,EAAAhoB,qCAAAu9C,4DAAAC,CAAA9sD,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAy1B,GAAAF,IAAAtjE,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,qPAD2B0oB,sCAQ5C0oB,GAAcrC,aAAY,GAC1BqC,GAAcrC,aAAY,qiCCTlC9lB,IAAkBC,cAAchE,OAAO,iBAAkBq4B,gBCEpCG,eACjB,SAAAA,IAAqB,IAAA11B,EAAAhoB,qCAAA09C,4DAAAC,CAAAjtD,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAA41B,GAAAF,IAAAzjE,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,QADiBmtD,GAAAC,MAAA99C,IAAA,sBAkCC,SAACgvC,GACJ,OAAXA,IAEJA,EAAOjX,QAAU/3B,EAAK+9C,eAAgB,EAAO/9C,EAAK+9C,eAAgB,EAE9D/9C,EAAK+9C,eAAiB/9C,EAAKg+C,qBAAuBh+C,EAAKxhB,QAAQ6B,UAAUqY,OAAO,aAEpFsH,EAAKi+C,kBACLj+C,EAAK6oB,kBA1CYg1B,GAAAC,MAAA99C,IAAA,4BA6CO,SAACgvC,GACV,OAAXA,GAA4E,KAAzDhvC,EAAKy7C,UAAUtP,MAET,KAAzBnsC,EAAKk+C,kBACLlP,EAAOjX,SAAoE,KAAzD/3B,EAAKy7C,UAAUtP,IAA+CnsC,EAAKg+C,qBAAsB,EAAOh+C,EAAKg+C,qBAAsB,GAG7Ih+C,EAAK+9C,eAAiB/9C,EAAKg+C,qBAAuBh+C,EAAKxhB,QAAQ6B,UAAUqY,OAAO,aAEpFsH,EAAKi+C,kBACLj+C,EAAK6oB,kBAvDYg1B,GAAAC,MAAA99C,IAAA,oBA6ED,WACXA,EAAK2oB,KAAKw1B,gBACXn+C,EAAK2oB,KAAKw1B,cAAc99D,UAAUC,SAAS,cAAiB0f,EAAK2oB,KAAKw1B,cAAc99D,UAAUqY,OAAO,cAAwBsH,EAAK2oB,KAAKw1B,cAAc99D,UAAUgY,IAAI,iBA/EtJwlD,GAAAC,MAAA99C,IAAA,YAkFT,SAAC5b,GACT,GAAsB,KAAlBA,EAAM8iB,QAAgB,CACtB,IAAKlH,EAAK2oB,KAAKw1B,cAAe,OAC9Bn+C,EAAK2oB,KAAKw1B,cAAc99D,UAAUqY,OAAO,iBArF5BmlD,GAAAC,MAAA99C,IAAA,mBAyFF,SAAC5b,GACX4b,EAAK2oB,KAAKw1B,gBAAkBn+C,EAAK2oB,KAAKw1B,cAAc79D,SAAS8D,EAAM3D,SACnEuf,EAAK2oB,KAAKy1B,aAAep+C,EAAK2oB,KAAKy1B,WAAW99D,SAAS8D,EAAM3D,SAAYuf,EAAK2oB,KAAKw1B,cAAc99D,UAAUqY,OAAO,gBAxFvHsH,EAAKxB,OACLwB,EAAKq+C,oBAAsBr+C,EAAKq+C,oBAAoB7gD,KAAzBsgD,MAAA99C,KAC3BA,EAAKs+C,0BAA4Bt+C,EAAKs+C,0BAA0B9gD,KAA/BsgD,MAAA99C,KALhBA,yPADe0oB,oDAUhC,MAAO,CACH,aACA,qDAID,IAAAzoB,EAAAvP,KACHA,KAAKqtD,eAAgB,EACrBrtD,KAAKstD,qBAAsB,EAC3BttD,KAAKwtD,gBAAkB,GACvBxtD,KAAK6iD,UAAY,GAEjB7iD,KAAKwO,QAAQhJ,QAAQ,SAACqoD,GAClBA,EAAWC,eACPv+C,EAAKi+C,gBAAkBK,EAAWH,WAAWlT,IAC7CjrC,EAAKszC,UAAYgL,EAAWH,WAAWlT,MAGc,KAAzDx6C,KAAK+qD,UAAUtP,KACM,KAAzBz7C,KAAKwtD,kBAA0BxtD,KAAKstD,qBAAsB,GAE1D5M,GAAcqN,eAAe/tD,KAAK2tD,qBAClCjN,GAAcsN,qBAAqBhuD,KAAK4tD,kEA2B7B,IAAAn+C,EAAAzP,KACPA,KAAKqtD,gBAAkBrtD,KAAKstD,sBAC5BttD,KAAKlS,QAAQ6B,UAAUgY,IAAI,aAC3B3H,KAAKo4B,YAAYp4B,KAAKi4B,KAAKy1B,WAAY,QAAS,WAAQ9sC,SAASgyB,KAAOnjC,EAAK+9C,oBAE5ExtD,KAAKqtD,eAAiBrtD,KAAKstD,sBAC5BttD,KAAKlS,QAAQ6B,UAAUgY,IAAI,aAC3B3H,KAAKo4B,YAAYp4B,KAAKi4B,KAAKy1B,WAAY,QAAS,WAAQ9sC,SAASgyB,KAAOnjC,EAAKozC,aAE5E7iD,KAAKqtD,eAAkBrtD,KAAKstD,sBAC7BttD,KAAKlS,QAAQ6B,UAAUgY,IAAI,aAE3B3H,KAAKo4B,YAAYp4B,KAAKi4B,KAAKy1B,WAAY,QAAS1tD,KAAK2wC,mBACrD3wC,KAAKo4B,YAAYnpC,SAAU,UAAW+Q,KAAK6wC,WAC3C7wC,KAAKo4B,YAAYnpC,SAAU,QAAS+Q,KAAK8wC,kBACzC9wC,KAAKo4B,YAAYnpC,SAAU,aAAc+Q,KAAK8wC,qDAqB5CV,GACN,IAAM/C,EAAS4E,IAAQ7lD,IAAIgkD,GAC3B,OAAO/C,GAAqB,MAAXA,EAAiBA,EAAS,0CClGnD9U,IAAkBC,cAAchE,OAAO,cAAey5B,4BCJxBjiE,OAAO+7C,OAAO,CACxCmmB,iBAAkB,sBAClBC,iBAAkB,8gBCCtB,IAyGeC,eAtGX,SAAAA,IAAqB,IAAA92B,EAAAhoB,qCAAA8+C,4DAAAC,CAAAruD,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAg3B,GAAAF,IAAA7kE,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACK0F,MAAQ,CACT6oD,eAAgBj/C,EAAKd,QAAQ+/C,gBAAkB,EAC/CC,UAAW,EACXC,iBAAkBn/C,EAAKo/C,sBACvB97C,OAAQ,IAGPsgC,IAAIyb,YACLr/C,EAAKxB,OAVQwB,qPADgB0oB,sCAgB7BznC,MAAMuvB,QAAQ9f,KAAKi4B,KAAK3uC,QACxB0W,KAAK4uD,oBACL5uD,KAAK0F,MAAM8oD,UAAYxuD,KAAK6uD,eAC5B7uD,KAAK8uD,YAGL9uD,KAAK0F,MAAM8oD,UAAYxuD,KAAKwO,QAAQ+/C,gBACpCvuD,KAAK+uD,8DAIO,IAAAx/C,EAAAvP,KAChBA,KAAKi4B,KAAK3uC,KAAKkc,QAAQ,SAACwpD,GACpB,IAAMC,EAAY1/C,EAAKzH,aAAaknD,EAAK,SAEpCC,IAEA1/C,EAAK7J,MAAMkN,OAAOq8C,KACnB1/C,EAAK7J,MAAMkN,OAAOq8C,GAAa,IAGnC1/C,EAAK7J,MAAMkN,OAAOq8C,GAAWn6D,KAAKk6D,6CAI3B,IAAAv/C,EAAAzP,KASX,OARkBA,KAAKi4B,KAAK3uC,KAAKmE,OACPzB,OAAOkK,KAAK8J,KAAK0F,MAAMkN,QAAQje,OAAO,SAACC,EAAMq6D,GACnE,MA9Ce,YA8CXA,EAAyCr6D,EAEtCA,EAAQ6a,EAAK/J,MAAMkN,OAAOq8C,GAAWxhE,QAC7C,IACiBzB,OAAOkK,KAAK8J,KAAK0F,MAAMkN,QAAQnlB,OAAS,iDAM5D,OAAQuS,KAAKi4B,KAAKi3B,aAAelvD,KAAKi4B,KAAKi3B,YAAYzhE,QAAW,sCAI1DuhE,GACR,IAAMG,EAAgBH,EAAI/4B,QAAQ,cAE9Bk5B,GACAA,EAAcx/D,UAAUqY,OAAO,uDAIrBxQ,GACd,IAAM43D,EAAc/hE,KAAKgiE,MAAMhiE,KAAKE,UAAYiK,EAAM/J,OAAS,IAC/DuS,KAAKsvD,YAAY93D,EAAM43D,uCAGhB,IAAAt/C,EAAA9P,KACPhU,OAAOkK,KAAK8J,KAAK0F,MAAMkN,QAAQpN,QAAQ,SAACypD,GACpC,IAAMz3D,EAAQsY,EAAKpK,MAAMkN,OAAOq8C,GA3EjB,YA6EXA,EACAz3D,EAAMgO,QAAQ,SAACwpD,GAAD,OAASl/C,EAAKw/C,YAAYN,KAExCl/C,EAAKy/C,kBAAkB/3D,+CAKjB,MAAAuY,EAAA/P,KACd,GAAKzP,MAAMuvB,QAAQ9f,KAAKi4B,KAAKi3B,aAK7B,IAHA,IAAIM,2GAAuBxvD,KAAKi4B,KAAKi3B,mOACjCO,EAAOzvD,KAAK0F,MAAM6oD,eAAiBvuD,KAAK0F,MAAM8oD,UAJpCkB,EAAA,WAOV,IAAMN,EAAc/hE,KAAKgiE,MAAMhiE,KAAKE,UAAYiiE,EAAiB/hE,OAAS,IACpEkiE,EAAiBH,EAAiBJ,GAExCI,EAAmBA,EAAiB7/C,OAAO,SAACq/C,EAAK/5D,GAAN,OAAgBA,IAAUm6D,IAEjEO,GACA5/C,EAAKu/C,YAAYK,GAErBF,KATGD,EAAiB/hE,OAAS,GAAKgiE,EAAO,GAAGC,kMC1FxDn3B,IAAkBC,cAAchE,OAAO,qBAAsB45B,8gBCOvDwB,eACF,SAAAA,EAAY3vC,GAAO,IAAA3Q,mCAAAsgD,4DAAAC,CAAA7vD,MAGf,MAAM8vD,GAFN9vD,OAAA+vD,GAAAH,GAAArmE,KAAAyW,KAAMigB,GAAN3Q,uKAAAtP,SAEsBpS,UAEhBoiE,EADaC,eACctgD,OAAO,SAACugD,GAAD,OAAeA,EAAU7hE,OAASyhE,IAL3D,OAOfxgD,EAAK6gD,KAAO7gD,EAAK8gD,aAAaJ,GAPf1gD,qPADaupC,KAAMC,yDAYlCC,IAAch1C,UAAUi1C,IAAcC,cACtCF,IAAch1C,UAAUi1C,IAAcqX,YACtCtX,IAAch1C,UAAUi1C,IAAcsX,uDAItCvX,IAAch0C,YAAYi0C,IAAcC,cACxCF,IAAch0C,YAAYi0C,IAAcqX,YACxCtX,IAAch0C,YAAYi0C,IAAcsX,2CAIxC,IAAMC,EAAgBnkE,IAAI4T,KAAKigB,MAAO,6BAEtC,OAAOuwC,YAAaxwD,KAAKigB,MAAMwwC,aAAaC,OAAQH,2CAIpD,IAAMI,EAAiB3kE,OAAOkK,KAAK06D,MAC7BxuC,EAAMuuC,EAAeljE,OAErBiH,EAAMi8D,EADQtjE,KAAKgiE,MAAMhiE,KAAKE,UAAY60B,EAAM,KAGtD,OAAOwuC,KAAWl8D,qCAGZ,IAAAm8D,EAC2B7wD,KAAKigB,MAAMzR,QAApCngB,EADFwiE,EACExiE,KAAMyiE,EADRD,EACQC,QAASC,EADjBF,EACiBE,MAEvB,OAAID,EAAQrjE,QAAUsjE,EAAMtjE,OACjBuS,KAAKgxD,gBAGZF,EAAQrjE,OACDmjE,KAAWK,OAGlBF,EAAMtjE,OACCmjE,KAAWM,KAGf7iE,GAAQ2R,KAAKgxD,qDAGX/5D,GACT,OAAOA,EAAK5J,KAAKgiE,MAAMhiE,KAAKE,UAAY0J,EAAKxJ,OAAS,6CAG1C0jE,GACZ,OAAO/kE,IAAI4T,KAAKigB,MAAMwwC,aAAZ,gBAAAxlE,OAA0CkmE,EAA1C,KAAwD,uCAG7DhB,GAAM,IAAAiB,EACgBpxD,KAAKigB,MAAMzR,QAA9BsiD,EADGM,EACHN,QAASC,EADNK,EACML,MACX1B,EAAQrvD,KAAKqxD,WACbC,EAAQllE,IAAIijE,EAAD,IAAApkE,OAAYklE,EAAK1mE,KAAjB,WAAgC,IAGjD,OAAIqnE,EAAQrjE,QAAUsjE,EAAMtjE,OACjB0iE,EAAK9hE,OAASuiE,KAAWK,OAC5BjxD,KAAKuxD,cAAcD,EAAOR,EAAS,YACnC9wD,KAAKuxD,cAAcD,EAAOP,EAAO,UAGlC/wD,KAAKwxD,YAAYF,uCAGhBA,GACR,OAAOA,EAAMnjE,MAAM,EAAG,yCAGZmjE,EAAOG,EAAKC,GACtB,OAAOD,EACFvqD,IAAI,SAAClZ,GAAD,OACDsjE,EAAMt7C,KAAK,SAAC27C,GAAD,OACPA,EAAWD,GAAO/jE,aAAeK,EAAGL,eAC3CgiB,OAAO,SAACiiD,GAAD,YAA+BvmE,IAAfumE,2CAM5B,IAFyB5xD,KAAKigB,MAAtBwwC,aAEW,OAAO,KAE1B,IAAMN,EAAO0B,KAAU7xD,KAAKmwD,MAM5B,OAJAA,EAAK2B,aAAe9xD,KAAK+xD,gBAAgB5B,EAAK1mE,MAC9C0mE,EAAKmB,MAAQtxD,KAAKgyD,SAAS7B,GAC3BA,EAAK8B,UAAYjyD,KAAKigB,MAAMzR,QAAQ0jD,WAE7B/B,mCAGF,IAAAgC,EACiCnyD,KAAKigB,MAAnCi5B,EADHiZ,EACGjZ,YAAauX,EADhB0B,EACgB1B,aAErB,QAAoBplE,IAAhB6tD,QACiB7tD,IAAjBolE,EAEA,OACItY,GAAAllD,EAAA/D,cAACkjE,GAAA,EAAD,CAAkBC,UAAW,KACzBla,GAAAllD,EAAA/D,cAACojE,GAAA,EAAD,OAKZ,IAAKpZ,IACAuX,IACAlgE,MAAMuvB,QAAQ2wC,EAAaC,QAE5B,OAAO,KAGX,IAAMP,EAAOnwD,KAAKuyD,eAElB,OAAOpa,GAAAllD,EAAA/D,cAACsjE,GAAA,EAAD,CAAwBta,MAAOiY,kMAI9CP,GAAsBnX,UAAY,CAC9BjqC,QAASkqC,KAAUnsD,QAGvB,IAWekmE,GALwBhZ,aANf,SAAC/zC,GAAD,MAAY,CAChCwzC,YAAaxzC,EAAMg0C,QAAQV,IAAcC,cACzCwX,aAAc/qD,EAAMg0C,QAAQV,IAAcqX,YAC1CqC,YAAahtD,EAAMg0C,QAAQV,IAAcsX,UAKzC,KAFmC7W,CAGrCmW,gdC3Ha+C,eAxBX,SAAAA,IAAqB,IAAAr7B,EAAAhoB,qCAAAqjD,4DAAAC,CAAA5yD,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAu7B,GAAAF,IAAAppE,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,qPADK0oB,sCAQtBh4B,KAAK6L,6CAILiuC,KAASC,uBAAuB/5C,KAAKlS,0CAIrCgsD,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAACuV,GAAA,EAAD,CAAU7X,MAAOA,MACburD,GAAAllD,EAAA/D,cAAC4jE,GAAD,CAAuBtkD,QAASxO,KAAKwO,WAEzCxO,KAAKlS,uMCxBjByqC,IAAkBC,cAAchE,OAAO,mBAAoBm+B,8lBCE3D,IAAMI,GAAwB,iCAKTC,eACjB,SAAAA,IAAqB,IAAA17B,EAAAhoB,qCAAA0jD,4DAAAC,CAAAjzD,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjBwJ,OAAAgoB,EAAA47B,GAAAF,IAAAzpE,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,gDAATlR,SACKmzD,qBAAuB7jD,EAAK6jD,qBAAqBrmD,KAA1BsmD,MAAA9jD,KAC5BA,EAAK+jD,gCAAkC/jD,EAAK+jD,gCAAgCvmD,KAArCsmD,MAAA9jD,KACvCA,EAAKgkD,qBAAuBhkD,EAAKgkD,qBAAqBxmD,KAA1BsmD,MAAA9jD,KAC5BA,EAAKikD,iCAAmCjkD,EAAKkkD,uBAAuB,wBAAyBT,IAC7FzjD,EAAKmkD,kCAAoCnkD,EAAKkkD,uBAAuB,qCACrElkD,EAAKxB,OAPYwB,qPAD2B0oB,+CAc5C,YADgD3sC,IADpB4mD,IAAQ7lD,IAAI4T,KAAKuzD,iEAK1C,IAAAhkD,EAAAvP,KACH0zD,WAAW,WACP,IAAKnkD,EAAKokD,gBAAgB,CACtBpkD,EAAKzhB,QAAQ6B,UAAUgY,IAAI,cAC3BisD,KAAQvjD,KAAK,WAEb,IAAMwjD,EAAc5kE,SAAS6kE,uBA3BH,gCA2B6D,GACjFC,EAAY9kE,SAAS6kE,uBA3BH,8BA2B2D,GAC/EE,EAAmBzkD,EAAK0kD,sBAE5B1kD,EAAK6oB,YAAYy7B,EAAa,QAAS,WACnC5hB,IAAQxf,IAAIljB,EAAKgkD,iCAAkC,IAAK,CAAEzY,QAASkZ,EAAkBjZ,QAAQ,IAC7FxrC,EAAK4jD,yBAET5jD,EAAK6oB,YAAY27B,EAAW,QAAS,WACjCxkD,EAAK4jD,2BAGd,oDAGgB,IAAA1jD,EAAAzP,KACnB0zD,WAAW,WAAM,IAAAQ,EAC6CzkD,EAAKjB,QAAvD2lD,EADKD,EACLC,qBAAsBC,EADjBF,EACiBE,yBAC1BC,EAAsB,KACtBC,EAAkB,UAEOjpE,IAAzB8oE,GAAuC/sB,IAAEC,QAAQ8sB,KACjDE,EAAsBplE,SAAS8jD,eAAeohB,SAGjB9oE,IAA7B+oE,GAA2ChtB,IAAEC,QAAQ+sB,KACrDE,EAAkBrlE,SAAS8jD,eAAeqhB,IAG9C3kD,EAAK8kD,sBAAsBF,EAAqB5kD,EAAK4jD,iCACrD5jD,EAAK8kD,sBAAsBD,EAAiB7kD,EAAK6jD,sBAEjD7jD,EAAK3hB,QAAQ6B,UAAUgY,IAAI,aAC3B8H,EAAK3hB,QAAQ6B,UAAUqY,OAAO,cAC9B4rD,KAAQl3D,KAAK,YACd,mDAGe5O,EAAS6D,GACZ,OAAZ7D,GACCA,EAAQqqB,iBAAiB,QAASxmB,EAAU,CAAE6iE,MAAM,kDAKxD,IAAIR,EAAmB/9C,SAAS2nC,aAAaC,QAtElB,iCA4E3B,OALImW,UAEAA,EAAmB,IAGhBA,4DAIP,IAAIA,EAAmBh0D,KAAKi0D,sBACxBQ,EAAqBxiB,IAAQ7lD,IAAI,iBACjCsoE,EAAoBttB,IAAEC,QAAQotB,GAAuD,GAAjC5+D,KAAKC,MAAM2+D,GAC/DE,EAA2B,KAE5B30D,KAAKyzD,mCAAsCrsB,IAAEC,QAAQqtB,IAAsBttB,IAAEC,QAAQqtB,EAAiBE,kBACrG50D,KAAKyzD,kCAAkCjuD,QAAQ,SAAAqvD,GACvC7oE,OAAOkK,KAAKw+D,EAAiBE,iBAAiBl/D,KAAK,SAACo/D,GAAD,OAAoBA,IAAmBD,MAC1FF,EAA2B,OAKvC1iB,IAAQxf,IAAIzyB,KAAKuzD,iCAAkCoB,EAA0B,CAAE7Z,QAASkZ,EAAkBjZ,QAAQ,mDAIlH,IAAMiZ,EAAmBh0D,KAAKi0D,sBAE9BhiB,IAAQxf,IAAIzyB,KAAKuzD,iCAAkC,IAAK,CAAEzY,QAASkZ,EAAkBjZ,QAAQ,mDAG1Ega,GAAqC,IAAzB3rB,EAAyBx6C,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,QAAVvD,EAC9C,OAAO2U,KAAKwO,QAAUxO,KAAKwO,QAAQumD,GAAc3rB,gMC3GzD7Q,IAAkBC,cAAchE,OAAO,iBAAkBw+B,uBCDnDgC,GAAqB,SAAC/0C,GAGxB,YAFoC50B,IAAd40B,EAAMg1C,KAAmC,KAAdh1C,EAAMg1C,UAAgC5pE,IAAlB40B,EAAMg1C,IAAIxqE,KAAuC,KAAlBw1B,EAAMg1C,IAAIxqE,KAI1G0tD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAW8vB,EAAM9vB,UACjB+kE,IAAKj1C,EAAMg1C,IAAIC,IACfzqE,IAAKw1B,EAAMg1C,IAAIxqE,OAK3BuqE,GAAmBvc,UAAY,CAC3Bwc,IAAKvc,KAAUnsD,OACf4D,UAAWuoD,KAAUj5B,QAGVu1C,UCJPtc,KAAUnsD,OACHmsD,KAAUj5B,OAGV01C,ICoFFC,GAAyB,SAACC,GACnC,IAAMC,EAAqB,IAAIz3C,KAAKw3C,GAE9BxpE,EAAI,IAAIgyB,KACR03C,EAAM1pE,EAAE2pE,UAAqC,IAAxB3pE,EAAE4pE,oBACvBC,EAAkBC,GAAc9pE,GAAK,IAAIgyB,KAAK03C,EAAO,MAAgB,IAAI13C,KAAK03C,GAEpF,GAAID,EAAqBI,EAOrB,MANkB,CACdE,QAAS,EACTC,MAAO,EACPC,KAAM,GAMd,IAAIC,EAAQ1oE,KAAKg2B,IAAIiyC,EAAqBI,GAAmB,IAEvDI,EAAOzoE,KAAKC,MAAMyoE,EAAQ,OAChCA,GAAgB,MAAPD,EAET,IAAMD,EAAQxoE,KAAKC,MAAMyoE,EAAQ,MAAQ,GACzCA,GAAiB,KAARF,EAET,IAAMD,EAAUvoE,KAAKC,MAAMyoE,EAAQ,IAAM,GASzC,OARAA,GAAmB,GAAVH,EAEO,CACZA,UACAE,OACAD,UAkBKF,GAAgB,SAAC9pE,GAK1B,IAJA,IAAImqE,EAAO,KACPC,EAAO,KAGFxqE,EAAI,GAAIA,EAAI,EAAGA,IAGpB,GAAoB,IAFhByqE,EAAM,IAAIr4C,KAAKhyB,EAAEstC,cAAe,EAAG1tC,IAE/B0qE,SAAe,CAEnBH,EAAOE,EACP,MAKR,IAASzqE,EAAI,GAAIA,EAAI,EAAGA,IAAK,CACzB,IAAIyqE,EAEJ,GAAoB,IAFhBA,EAAM,IAAIr4C,KAAKhyB,EAAEstC,cAAe,EAAG1tC,IAE/B0qE,SAAe,CAEnBF,EAAOC,EACP,OAMR,OAAIrqE,EAAImqE,GAAQnqE,EAAIoqE,EACT,EAGJ,2kBCrFIG,eA5FX,SAAAA,EAAYn2C,GAAO,IAAA3Q,IAAA,uCAAA8mD,4DAAAC,CAAAr2D,OACfsP,MAAAgnD,GAAAF,GAAA7sE,KAAAyW,KAAMigB,+CAANjgB,SAEK0F,MAAQ,CACT2vD,eAAgBx3C,KAAKmgC,MACrB8X,KAAM,KACNF,QAAS,KACTC,MAAO,MAGXvmD,EAAKinD,iBAAmBjnD,EAAKinD,iBAAiBzpD,KAAtB0pD,MAAAlnD,KAVTA,qPADSupC,KAAMC,wDAcf,IACPuc,EAAmBr1D,KAAKigB,MAAMl3B,KAA9BssE,eACFoB,EAAUrB,GAAuBC,GAEvCr1D,KAAK4hD,SAAS,CAAEkU,KAAMW,EAAQX,KAAMD,MAAOY,EAAQZ,MAAOD,QAASa,EAAQb,sDAG3D,IAAArmD,EAAAvP,KACR02D,EAAgB12D,KAAKigB,MAAMl3B,KAA3B2tE,YACFC,EAAWtvB,YAAQqvB,IAARrvB,MAAwBqvB,EAAqD,IAAQA,EAEtG12D,KAAK42D,SAAWC,YAAY,kBAAMtnD,EAAKgnD,oBAAoBI,kDAI3DG,cAAc92D,KAAK42D,2CAGd,IAAAG,EAWD/2D,KAAKigB,MAAMl3B,KATXssE,EAFC0B,EAED1B,eACA2B,EAHCD,EAGDC,kBACAC,EAJCF,EAIDE,mBACAC,EALCH,EAKDG,qBACAC,EANCJ,EAMDI,KACA3e,EAPCue,EAODve,SACA4e,EARCL,EAQDK,KAEA1sE,GAVCqsE,EASDM,aATCN,EAUDrsE,MAVC4sE,EAY4Bt3D,KAAK0F,MAA9BowD,EAZHwB,EAYGxB,KAAMD,EAZTyB,EAYSzB,MAAOD,EAZhB0B,EAYgB1B,QAEf2B,EDwFgB,SAAClC,GAC3B,IAAMC,EAAqB,IAAIz3C,KAAKw3C,GAE9BxpE,EAAI,IAAIgyB,KACR03C,EAAM1pE,EAAE2pE,UAAqC,IAAxB3pE,EAAE4pE,oBAG7B,OAAIH,GAFoBK,GAAc9pE,GAAK,IAAIgyB,KAAK03C,EAAO,MAAgB,IAAI13C,KAAK03C,IC7F9DiC,CAAenC,GAE3BoB,EAAoB,OAATX,GAA2B,OAAVD,GAA8B,OAAZD,EAAoBR,GAAuBC,GAAkB,KAC3GoC,EAAa3B,QAAuCW,EAAQX,KAAOA,EACnE4B,EAAc7B,QAAyCY,EAAQZ,MAAQA,EACvE8B,EAAgB/B,QAA6Ca,EAAQb,QAAUA,EAErF,OACIzd,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBACPgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uBACVzF,GAEK6sE,GACApf,GAAAllD,EAAA/D,cAAA,YACMipD,GAAAllD,EAAA/D,cAAA,aAAKuoE,EAAL,IAAiBT,EAAkB5jE,cAAnC,KAAoDskE,EAApD,IAAiET,EAAmB7jE,eAD1F,QACiH+kD,GAAAllD,EAAA/D,cAAA,aAAKyoE,EAAL,IAAoBT,EAAqB9jE,cAAzC,OAI/H+kD,GAAAllD,EAAA/D,cAAA,WAEsB,OAAbioE,EAAK3c,UAA6BnvD,IAAb8rE,EAAK3c,KAC3BrC,GAAAllD,EAAA/D,cAAA,WAEsB,OAAbkoE,EAAK3sE,UAA6BY,IAAb+rE,EAAK3sE,KAC3B0tD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,sBAAsByiD,KAAMukB,EAAK3c,KAC1CrC,GAAAllD,EAAA/D,cAAC0oE,GAAD,CAAoB3C,IAAKmC,IACxB5e,IAIS,OAAb4e,EAAK3sE,UAA6BY,IAAb+rE,EAAK3sE,MAC3B0tD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,sBAAsByiD,KAAMukB,EAAK3c,KACzChC,KAMC,OAAb2e,EAAK3c,UAA6BnvD,IAAb8rE,EAAK3c,MAC3BrC,GAAAllD,EAAA/D,cAAC0oE,GAAD,CAAoB3C,IAAKmC,gpBC7DlCS,eAxBX,SAAAA,IAAqB,IAAAvgC,EAAAhoB,qCAAAuoD,4DAAAC,CAAA93D,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAygC,GAAAF,IAAAtuE,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,qPADgB0oB,sCAQjCh4B,KAAK6L,6CAILiuC,KAASC,uBAAuB/5C,KAAKlS,0CAIrCgsD,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAACuV,GAAA,EAAD,CAAU7X,MAAOA,MACburD,GAAAllD,EAAA/D,cAAC8oE,GAAD,CAAmBjvE,KAAMiX,KAAKwO,WAElCxO,KAAKlS,uMCvBjByqC,IAAkBC,cAAchE,OAAO,qBAAsBqjC,6mBCDxCI,eACjB,SAAAA,IAAsB,IAAA3gC,EAAAhoB,2CAAA2oD,4DAAAC,CAAAl4D,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UAClBwxB,EAAA6gC,GAAAF,IAAA1uE,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,UA8BgB,SAACtM,IACmC,IAAhD4b,EAAK8oD,UAAUznE,QAAQ+C,EAAM3D,OAAO5F,QACpCmlB,EAAK+oD,eAAe3kE,EAAM3D,OAAO5F,OACjCmlB,EAAK2oB,KAAKqgC,SAAS3oE,UAAUgY,IAAI,cACjC2H,EAAK2oB,KAAKqgC,SAASntD,cAAc,UAAUhhB,MAAQ,MAEnDmlB,EAAK2oB,KAAKqgC,SAAS3oE,UAAUqY,OAAO,kBArCtB,yBAAAuwD,MAAAjpD,2FAGlBA,EAAKkpD,kBAAoBlpD,EAAKkpD,kBAAkB1rD,KAAvByrD,MAAAjpD,KACzBA,EAAKxB,OAJawB,qPADsB0oB,sCASpCh4B,KAAKi4B,KAAKmgC,WAAap4D,KAAKi4B,KAAKqgC,WACjCt4D,KAAKy4D,mBACLz4D,KAAKo4B,YAAYp4B,KAAKi4B,KAAKmgC,UAAW,SAAUp4D,KAAKw4D,+DAI1C,IAAAjpD,EAAAvP,KACT04D,EAAkB14D,KAAKi4B,KAAKmgC,UAAUjtD,cAAc,UACtDnL,KAAKi4B,KAAKkK,SACVniC,KAAKo4D,UAAY,GACjBp4D,KAAKi4B,KAAKkK,OAAO38B,QAAQ,SAAC28B,IAC+C,IAAjE5yB,EAAK6oD,UAAUznE,QAAQwxC,EAAOr6B,aAAa,kBAC3CyH,EAAK6oD,UAAUtjE,KAAKqtC,EAAOr6B,aAAa,oBAIO,IAAnD9H,KAAKo4D,UAAUznE,QAAQ+nE,EAAgBvuE,SACvC6V,KAAKq4D,eAAeK,EAAgBvuE,OACpC6V,KAAKi4B,KAAKqgC,SAAS3oE,UAAUgY,IAAI,uDAe9Bu6B,GACXy2B,KAAE,mBAAmBC,QACrBD,KAAE,mBAAmB5kD,OAAO,0GAE5B/T,KAAKi4B,KAAKkK,OAAO38B,QAAQ,SAAC28B,GAClBA,EAAOr6B,aAAa,kBAAoBo6B,GACxCy2B,KAAE,mBAAmB5kD,OAAOouB,uwBC9C5C5J,IAAkBC,cAAchE,OAAO,YAAayjC,uBCH/BY,eAEnB,SAAAA,EAAY54C,GAAO,IAAA3Q,UAAA,uCAAAupD,4DAAAC,CAAA94D,QACjB+4D,GAAAF,GAAAtvE,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,UAuCiB,WACjBsP,EAAK0pD,aAAaxoD,YAzCD,wBAAAyoD,MAAA3pD,2FAGjBA,EAAK4pD,aAAe5pD,EAAK2Q,MAAMi5C,aAE/B5pD,EAAK5J,MAAQ,CAAEyzD,YAAa7pD,EAAK2Q,MAAMm5C,eACvC9pD,EAAK+pD,mBAAqB/pD,EAAK+pD,mBAAmBvsD,KAAxBmsD,MAAA3pD,KANTA,qPAFqBwpC,2DAWrBplD,GAAO,IAAAm9D,EAIpB7wD,KAAKigB,MAAMzR,QAFb8qD,EAFsBzI,EAEtByI,WACAC,EAHsB1I,EAGtB0I,oBAIEC,EADoBx5D,KAAK0F,MAArByzD,aACkC,GAC1CK,EAAQD,GAAuB7lE,EAAM3D,OAAO5F,MAE5C6V,KAAK4hD,SAAS,CAAEuX,YAAaK,IAC7Bx5D,KAAKk5D,aACoB,KAAvBxlE,EAAM3D,OAAO5F,OAAgBmvE,EAC7BC,EACA7lE,EAAM3D,OAAO5F,oDAII,IAEjBsvE,EACEz5D,KAAKigB,MADPw5C,gBAEKF,EAAuBv5D,KAAKigB,MAAMzR,QAAlC+qD,qBAEFE,GAAoBz5D,KAAK0F,MAAMyzD,aAA8D,IAA/Cn5D,KAAK0F,MAAMyzD,YAAYI,IACxEv5D,KAAKk5D,cACH,oCASG,IAAA3pD,EAAAvP,KAAAoxD,EAOHpxD,KAAKigB,MAAMzR,QALbkrD,EAFKtI,EAELsI,UACAC,EAHKvI,EAGLuI,iBACA1zD,EAJKmrD,EAILnrD,aACAqzD,EALKlI,EAKLkI,WACAC,EANKnI,EAMLmI,oBANKpH,EAWHnyD,KAAKigB,MAFP25C,EATKzH,EASLyH,kBACAC,EAVK1H,EAUL0H,WAEMV,EAAgBn5D,KAAK0F,MAArByzD,YAEFW,EAAgBX,GAAeA,EAAYI,GAAuBJ,EAAYI,GAAuB,GAErGQ,EAAWD,GAAiBA,EAAcrsE,OAAS,EAEzD,OACE0qD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OACbgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YAAYupE,GAC3BvhB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,uCAAAlF,OAAyC8uE,EAAW,YAAc,aAC9E5hB,GAAAllD,EAAA/D,cAAA,YACE8/D,IAAK,SAAAt9D,GAAK,OAAI6d,EAAKypD,aAAetnE,GAClCvB,UAAS,sBAAAlF,QAAyBquE,GAAcO,GAAgC,KAAlBC,EAAuB,mBAAqB,IAC1G3vE,MAAO2vE,EACP5pC,SAAUlwB,KAAKq5D,mBACfW,KAAK,IACLC,UAAWL,IAEbzhB,GAAAllD,EAAA/D,cAAA,SACEiB,UAAU,oBACV+pE,QAAQ,GACR5hB,QAASt4C,KAAKm6D,kBAEbR,IAEDL,GAAcO,GAAgC,KAAlBC,EAAuB3hB,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCACjEgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0B8V,IAClC,6wBCtFGm0D,eACnB,SAAAA,EAAYn6C,GAAO,IAAA3Q,QAAA,uCAAA8qD,4DAAAC,CAAAr6D,QACjBs6D,GAAAF,GAAA7wE,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,UAOS,SAACtM,GAAU,IACZ6lE,EAAwBjqD,EAAK2Q,MAAMzR,QAAnC+qD,oBAGJgB,EADoBjrD,EAAK5J,MAArByzD,aACiC,GACzCoB,EAAOhB,GAAuB7lE,EAAM3D,OAAO5F,MAE3CmlB,EAAKsyC,SAAS,CAAEuX,YAAaoB,IAC7BjrD,EAAK4pD,cACH,EACAK,EACA7lE,EAAM8mE,cAAcrwE,QAnBL,eAAAswE,MAAAnrD,6BAAA,6EAGjBA,EAAK4pD,aAAe5pD,EAAK2Q,MAAMi5C,aAE/B5pD,EAAK5J,MAAQ,CAAEyzD,YAAa7pD,EAAK2Q,MAAMm5C,eALtB9pD,qPADqBupC,KAAMC,8CAwBrC,IAAA+X,EAOH7wD,KAAKigB,MAAMzR,QALbksD,EAFK7J,EAEL6J,gBACAhB,EAHK7I,EAGL6I,UACAtwB,EAJKynB,EAILznB,aACAnjC,EALK4qD,EAKL5qD,aACAszD,EANK1I,EAML0I,oBANKpH,EAYHnyD,KAAKigB,MAFP45C,EAVK1H,EAUL0H,WACAJ,EAXKtH,EAWLsH,gBAGMN,EAAgBn5D,KAAK0F,MAArByzD,YACFW,EAAgBX,GAAeA,EAAYI,GAAuBJ,EAAYI,GAAuBnwB,EAQ3G,OANKqwB,GAAmBK,IAAkB1wB,GACxCppC,KAAKk5D,cACH,GAKF/gB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OACbgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YAAYupE,GAC3BvhB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCAAmCwqE,oBAAkB,aAAaC,oBAAkB,IACjGziB,GAAAllD,EAAA/D,cAAA,UACEiB,UAAU,sBACVnC,GAAG,qBACHvE,KAAK,qBACLoxE,SAAS,WACT1wE,MAAO2vE,EACP5pC,SAAUlwB,KAAKkwB,UAEfioB,GAAAllD,EAAA/D,cAAA,UACEiB,UAAU,sBACV+X,SAAS,WACT/d,MAAOi/C,GAENA,GAEFsxB,EAAgBxzD,IAAI,SAAC8C,EAAQ/U,GAC5B,OACEkjD,GAAAllD,EAAA/D,cAAA,UACEwF,IAAKO,EACL9E,UAAU,sBACVhG,MAAO6f,GAENA,MAKTmuC,GAAAllD,EAAA/D,cAAA,OAAK4rE,cAAY,OAAOlW,UAAU,QAAQmW,YAAU,eAAetyD,KAAK,MAAMuyD,MAAM,6BAA6BC,QAAQ,cAAc9qE,UAAU,oBAC/IgoD,GAAAllD,EAAA/D,cAAA,QAAMgsE,KAAK,GAAGrvE,EAAE,8RAGnBguE,GAAcC,IAAkB1wB,EAAe+O,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCAC5DgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0B8V,IAClC,oMCrFHk1D,WAA0B,CACnCC,wBAAyB,sCACzBC,oBAAqB,8BAErBC,gBAAiB,GACjBC,kBAAmB,EACnBC,kBAAmB,GAEnBC,0BAA2B,uDAC3BC,oCAAqC,2DAErCC,kBAAmB,wBAEnBC,aAAc,0JACdC,yBAA0B,sCAC1BC,qBAAsB,gEACtBC,yBAA0B,2DAE1BC,gBAAiB,8CACjBC,qBAAsB,gIAEtBC,4BAA6B,iEAC7BC,wBAAyB,4DACzBC,wBAAyB,uDACzBC,KAAM,OAENC,kBAAmB,yBACnBC,oBAAqB,8BACrBC,mBAAoB,4BACpBC,kBAAmB,2BAEnBC,mBAAoB,8CACpBC,gCAAiC,uDACjCC,2BAA4B,kDAC5BC,4BAA6B,wCAC7BC,sBAAuB,gCACvBC,qBAAsB,+BACtBC,yBAA0B,6BAC1BC,qBAAsB,+BACtBC,wBAAyB,oDACzBC,iBAAkB,0BAClBC,2BAA4B,iDAC5BC,6BAA8B,+CAC9BC,8BAA+B,gEAC/BC,qCAAsC,8EACtCC,4CAA6C,2EAE7CC,4BAA6B,kCAC7BC,8BAA+B,2BAE/BC,2BAA4B,2CAE5BC,eAAgB,aAChBC,cAAe,WACfC,eAAgB,cC/Cb,SAASC,GAAcC,GAC1B,GAAI32B,GAAQ22B,GACR,MAAO,CAAEC,SAAS,EAAOh4D,aAAck1D,GAAwBQ,mBAGnE,IAAKt0B,GAAQ22B,EAAU50B,cAAe,MAAO,CAAE60B,SAAS,GAGxD,IAAM5xB,EAAQD,GAA8B4xB,GAG5C,OADqB7C,GAAwBS,aAC3BznE,KAAK4L,OAAOssC,IAI1B2xB,EAAU/yD,SAASkwD,GAAwByC,iBAAmBI,EAAU/yD,SAASkwD,GAAwB0C,gBAAkBG,EAAU/yD,SAASkwD,GAAwB2C,gBAC/J,CAAEG,SAAS,EAAOh4D,aAAck1D,GAAwBW,sBAG5D,CAAEmC,SAAS,GAPP,CAAEA,SAAS,EAAOh4D,aAAck1D,GAAwBU,0BAyDhE,SAASqC,GAAoBC,EAAUC,GAC1C,OAAID,IAAaC,EACN,CAAEH,SAAS,EAAOh4D,aAAck1D,GAAwBiB,yBAG/D/0B,GAAQ+2B,GACD,CAAEH,SAAS,EAAOh4D,aAAck1D,GAAwBQ,mBAG3CR,GAAwBa,gBAC3B7nE,KAAK4L,OAAOq+D,IAI1B,CAAEH,SAAS,GAHP,CAAEA,SAAS,EAAOh4D,aAAck1D,GAAwBc,sBAMhE,SAASoC,GAAwBF,EAAUG,GAC9C,OAAIH,IAAaG,EACN,CAAEL,SAAS,EAAOh4D,aAAck1D,GAAwBe,6BAG/D70B,GAAQi3B,GACD,CAAEL,SAAS,EAAOh4D,aAAck1D,GAAwBQ,mBAG3CR,GAAwBa,gBAC3B7nE,KAAK4L,OAAOu+D,IAI1B,CAAEL,SAAS,GAHP,CAAEA,SAAS,EAAOh4D,aAAck1D,GAAwBc,sBAgDhE,SAASsC,GAAgBr8B,GAC5B,OAAImF,GAAQnF,IAAYA,IAAYi5B,GAAwBkB,KACjD,CAAE4B,SAAS,EAAOh4D,aAAck1D,GAAwBoB,qBAG5D,CAAE0B,SAAS,GAGf,SAASO,GAAer8B,GAC3B,OAAIkF,GAAQlF,IAAWA,IAAWg5B,GAAwBkB,KAC/C,CAAE4B,SAAS,EAAOh4D,aAAck1D,GAAwBqB,oBAG5D,CAAEyB,SAAS,GAGf,SAASQ,GAAcC,GAC1B,OAAIr3B,GAAQq3B,IAAeA,IAAevD,GAAwBkB,KACvD,CAAE4B,SAAS,EAAOh4D,aAAck1D,GAAwBsB,mBAG5D,CAAEwB,SAAS,GA+Bf,SAASU,GAAqBj0E,GACjC,IAAMk0E,EAAsBC,GAAkBn0E,EAAMywE,GAAwB6B,0BAC5E,OAAK4B,EAAoBX,QAKpB,IAAIhqE,OAAO,yDAA0DE,KAAK4L,OAAOrV,SAAtF,EACW,CAAEuzE,SAAS,EAAOh4D,aAAck1D,GAAwBoC,sCALxDqB,EAiBR,SAASE,GAAiBC,GAC7B,IAAMH,EAAsBC,GAAkBE,EAAc5D,GAAwB8B,sBACpF,OAAK2B,EAAoBX,QAKpB,IAAIhqE,OAAO,uCAAuCE,KAAK4L,OAAOg/D,SAAnE,EACW,CAAEd,SAAS,EAAOh4D,aAAck1D,GAAwBqC,6CALxDoB,EASR,SAASI,GAAoBC,EAAkB3F,GAClD,OAAKA,IACGjyB,GAAQ43B,IAAqBA,EAAiBxxE,QAAU,GACjD,CAAEwwE,SAAS,EAAOh4D,aAAck1D,GAAwB+B,yBAIlE+B,EAAiBxxE,OAAS,GAAKwxE,EAAiBxxE,OAAS,GAAMwxE,EAAiBxxE,OAAS,GACnF,CACHwwE,SAAS,EAAOh4D,aAAck1D,GAAwB+B,yBAGvD,CAAEe,SAAS,GAGf,SAASiB,GAAax0E,GACzB,IAAMk0E,EAAsBC,GAAkBn0E,EAAMywE,GAAwBgC,kBAC5E,OAAKyB,EAAoBX,QAKpB,IAAIhqE,OAAO,mDAAoDE,KAAK4L,OAAOrV,SAAhF,EACW,CAAEuzE,SAAS,EAAOh4D,aAAck1D,GAAwBmC,+BALxDsB,EAsCf,SAASO,GAAoB7mE,EAASsqD,GAClC,OAAKtqD,GAAWA,EAAQ7K,OAAS,EACtB,CACHwwE,SAAS,EAAOh4D,aAAc28C,GAIlCtqD,EAAQ8mE,MAAM,SAACC,GAAD,OAAa,IAANA,IACd,CACHpB,SAAS,EAAOh4D,aAAc28C,GAI/B,CAAEqb,SAAS,GAkBf,SAASqB,GAAmB50E,GAC/B,OAAI28C,GAAQ38C,GACD,CACHuzE,SAAS,EAAOh4D,aAAck1D,GAAwBsC,6BAI1C,IAAhB/yE,EAAK+C,SAAiB0nC,OAAOzqC,IAuCrC,SAAuBA,GACnB,OAAOA,EAAKiG,QAAQ,MAAQ,EAxCc4uE,CAAc70E,GAC7C,CACHuzE,SAAS,EAAOh4D,aAAck1D,GAAwBuC,oCAF9D,EAOG,SAAS8B,GAAmBvB,GAC/B,OAAIA,EAAgB,CAAEA,SAAS,GAExB,CACHA,SAAS,EAAOh4D,aAAck1D,GAAwBwC,4BAIvD,SAAS8B,GAAmBC,EAAkBC,EAAiBC,GAClE,OAAKv4B,GAAQq4B,SACer0E,IAApBs0E,GAAkC,IAAI1rE,OAAO0rE,GAAiBxrE,KAAK4L,OAAO2/D,IAK3E,CAAEzB,SAAS,GAJH,CAAEA,SAAS,EAAOh4D,aAAc25D,GAQnD,SAASf,GAAkBn0E,EAAMub,GAC7B,OAAIohC,GAAQ38C,GACD,CACHuzE,SAAS,EAAOh4D,gBAGjB,CAAEg4D,SAAS,GAGtB,SAAS52B,GAAQ38C,GACb,OAAQA,GAAiB,KAATA,+rBC3WpB,IAAMm1E,GAAqB,IAENC,eACnB,SAAAA,EAAY7/C,GAAO,IAAA3Q,qCAAAwwD,4DAAAC,CAAA//D,MACjBsP,MAAA0wD,GAAAF,GAAAv2E,KAAAyW,KAAMigB,+CAANjgB,QADiBigE,GAAAC,MAAA5wD,IAAA,eA2IJ,SAAC6wD,GAAY,MAAO,CAAEzY,OAAQyY,KA3I1BF,GAAAC,MAAA5wD,IAAA,iBAyJF,SAACxhB,GAChBA,EAAQ0iB,UA1JS,IAAA2hD,EAGuB7iD,EAAK2Q,MAArCmgD,EAHSjO,EAGTiO,aAAchH,EAHLjH,EAGKiH,cAHLvI,EAIyDvhD,EAAK2Q,MAAMzR,QAA7E6xD,EAJSxP,EAITwP,eAAgBC,EAJPzP,EAIOyP,cAAeC,EAJtB1P,EAIsB0P,eAAgBC,EAJtC3P,EAIsC2P,eAEjDh+D,EAAS42D,GAAgC,GAN9B,OAQjB9pD,EAAK5J,MAAQ,CACX+6D,iBAAkBpzE,KAAKC,MAAMD,KAAKE,SAAWsyE,IAC7Cp8B,UAAWjhC,EAAO69D,GAAkB79D,EAAO69D,GAAkB,GAC7D38B,SAAUlhC,EAAO89D,GAAiB99D,EAAO89D,GAAiB,GAC1DF,aAAcA,GAA8B,GAC5CM,aAAYl+D,EAAO+9D,IAAkB/9D,EAAO+9D,GAC5CI,aAAYn+D,EAAOg+D,IAAkBh+D,EAAOg+D,IAG9ClxD,EAAKsxD,sBAAwBtxD,EAAKsxD,sBAAsB9zD,KAA3BozD,MAAA5wD,KAC7BA,EAAKuxD,qBAAuBvxD,EAAKuxD,qBAAqB/zD,KAA1BozD,MAAA5wD,KAC5BA,EAAKwxD,kBAAoBxxD,EAAKwxD,kBAAkBh0D,KAAvBozD,MAAA5wD,KACzBA,EAAKyxD,sBAAwBzxD,EAAKyxD,sBAAsBj0D,KAA3BozD,MAAA5wD,KAC7BA,EAAK0xD,sBAAwB1xD,EAAK0xD,sBAAsBl0D,KAA3BozD,MAAA5wD,KAE7BA,EAAK2uD,QAAU3uD,EAAK2uD,QAAQnxD,KAAbozD,MAAA5wD,KAEfA,EAAK4pD,aAAe5pD,EAAK2Q,MAAMi5C,aAzBd5pD,qPADwBupC,KAAMC,+CA6BvC,IAAAsY,EAQJpxD,KAAKigB,MAAMzR,QANbyyD,EAFM7P,EAEN6P,sBACAC,EAHM9P,EAGN8P,eACAC,EAJM/P,EAIN+P,oBACAC,EALMhQ,EAKNgQ,cACAC,EANMjQ,EAMNiQ,oBACAC,EAPMlQ,EAONkQ,cAPMhK,EAU8Dt3D,KAAK0F,MAAnE+9B,EAVA6zB,EAUA7zB,UAAWC,EAVX4zB,EAUW5zB,SAAU08B,EAVrB9I,EAUqB8I,aAAcM,EAVnCpJ,EAUmCoJ,WAAYC,EAV/CrJ,EAU+CqJ,WAEvD,OAAQM,GAAyBC,GAAiC,KAAdz9B,GAAiC,KAAbC,IACtEq6B,GAAcqC,GAAcnC,UAC3BkD,GAAuBC,IAAgC,IAAfV,KACxCW,GAAuBC,IAAgC,IAAfX,iDAGvBjtE,GACpBsM,KAAK4hD,SAAS,CACZ6e,iBAAkBzgE,KAAK0F,MAAM+6D,iBAC7Bh9B,UAAW/vC,EAAM3D,OAAO5F,MACxBu5C,SAAU1jC,KAAK0F,MAAMg+B,SACrB08B,aAAcpgE,KAAK0F,MAAM06D,aACzBM,WAAY1gE,KAAK0F,MAAMg7D,WACvBC,WAAY3gE,KAAK0F,MAAMi7D,aAPE,IAUnBN,EAAmBrgE,KAAKigB,MAAMzR,QAA9B6xD,eAERrgE,KAAKk5D,aACHl5D,KAAKi+D,UACLoC,EACA3sE,EAAM3D,OAAO5F,oDAIIuJ,GACnBsM,KAAK4hD,SAAS,CACZ6e,iBAAkBzgE,KAAK0F,MAAM+6D,iBAC7Bh9B,UAAWzjC,KAAK0F,MAAM+9B,UACtBC,SAAUhwC,EAAM3D,OAAO5F,MACvBi2E,aAAcpgE,KAAK0F,MAAM06D,aACzBM,WAAY1gE,KAAK0F,MAAMg7D,WACvBC,WAAY3gE,KAAK0F,MAAMi7D,aAPC,IAUlBL,EAAkBtgE,KAAKigB,MAAMzR,QAA7B8xD,cAERtgE,KAAKk5D,aACHl5D,KAAKi+D,UACLqC,EACA5sE,EAAM3D,OAAO5F,iDAICuJ,GAChBsM,KAAK4hD,SAAS,CACZ6e,iBAAkBzgE,KAAK0F,MAAM+6D,iBAC7Bh9B,UAAWzjC,KAAK0F,MAAM+9B,UACtBC,SAAU1jC,KAAK0F,MAAMg+B,SACrB08B,aAAc1sE,EAAM3D,OAAO5F,MAC3Bu2E,WAAY1gE,KAAK0F,MAAMg7D,WACvBC,WAAY3gE,KAAK0F,MAAMi7D,aAGzB3gE,KAAKk5D,aACHl5D,KAAKi+D,UACL,eACAvqE,EAAM3D,OAAO5F,qDAIKuJ,GACpBsM,KAAK4hD,SAAS,CACZ6e,iBAAkBzgE,KAAK0F,MAAM+6D,iBAC7Bh9B,UAAWzjC,KAAK0F,MAAM+9B,UACtBC,SAAU1jC,KAAK0F,MAAMg+B,SACrB08B,aAAcpgE,KAAK0F,MAAM06D,aACzBM,WAAYhtE,EAAM3D,OAAO+nD,QACzB6oB,WAAY3gE,KAAK0F,MAAMi7D,aAPE,IAUnBJ,EAAmBvgE,KAAKigB,MAAMzR,QAA9B+xD,eAERvgE,KAAKk5D,aACHl5D,KAAKi+D,UACLsC,EACA7sE,EAAM3D,OAAO+nD,uDAIKpkD,GACpBsM,KAAK4hD,SAAS,CACZ6e,iBAAkBzgE,KAAK0F,MAAM+6D,iBAC7Bh9B,UAAWzjC,KAAK0F,MAAM+9B,UACtBC,SAAU1jC,KAAK0F,MAAMg+B,SACrB08B,aAAcpgE,KAAK0F,MAAM06D,aACzBM,WAAY1gE,KAAK0F,MAAMg7D,WACvBC,WAAYjtE,EAAM3D,OAAO+nD,UAPA,IAUnB0oB,EAAmBxgE,KAAKigB,MAAMzR,QAA9BgyD,eAERxgE,KAAKk5D,aACHl5D,KAAKi+D,UACLuC,EACA9sE,EAAM3D,OAAO+nD,uDASX93C,KAAKigB,MADPw5C,iBAGsBz5D,KAAKi+D,WAC3Bj+D,KAAKk5D,aACHl5D,KAAKi+D,4CASF,IAAA1uD,EAAAvP,KAGLwO,EACExO,KAAKigB,MADPzR,QAIA+yD,EAQE/yD,EARF+yD,eAAgBC,EAQdhzD,EARcgzD,eAChBC,EAOEjzD,EAPFizD,cAAeC,EAOblzD,EAPakzD,cACfT,EAMEzyD,EANFyyD,sBAAuBC,EAMrB1yD,EANqB0yD,eACvBS,EAKEnzD,EALFmzD,WAAYC,EAKVpzD,EALUozD,WACZT,EAIE3yD,EAJF2yD,oBAAqBC,EAInB5yD,EAJmB4yD,cACrBS,EAGErzD,EAHFqzD,eAAgBC,EAGdtzD,EAHcszD,eAChBC,EAEEvzD,EAFFuzD,eAAgBC,EAEdxzD,EAFcwzD,eAChBX,EACE7yD,EADF6yD,oBAAqBC,EACnB9yD,EADmB8yD,cAdhBW,EAwBHjiE,KAAK0F,MANP+6D,EAlBKwB,EAkBLxB,iBACAh9B,EAnBKw+B,EAmBLx+B,UACAC,EApBKu+B,EAoBLv+B,SACA08B,EArBK6B,EAqBL7B,aACAM,EAtBKuB,EAsBLvB,WACAC,EAvBKsB,EAuBLtB,WAvBKuB,EA6BHliE,KAAKigB,MAFP25C,EA3BKsI,EA2BLtI,kBACAC,EA5BKqI,EA4BLrI,WAGIsI,EAAoB1+B,GAAaA,EAAUh2C,OAAS,EACpD20E,EAAmB1+B,GAAYA,EAASj2C,OAAS,EACjD40E,EAAgBjC,GAAgBA,EAAa3yE,OAAS,EACtD60E,EAAevE,GAAcqC,GAAcnC,QAE3CsE,EAA0B,YAAc9B,EACxC+B,EAA0B,YAAc/B,EAE9C,OACEtoB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OACbgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,SACbgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,aAEO,IAAnB+wE,GACA/oB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,cACbgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,yBAAAlF,OAA2Bk3E,EAAoB,YAAc,aACzEhqB,GAAAllD,EAAA/D,cAAA,SACE8/D,IAAK,SAAAt9D,GAAK,OAAI6d,EAAKkzD,sBAAwB/wE,GAC3CvB,UAAU,oBACV9B,KAAK,OACLlE,MAAOs5C,EACPw2B,UAAWL,EACX1pC,SAAUlwB,KAAK4gE,wBAEjBzoB,GAAAllD,EAAA/D,cAAA,SACEiB,UAAU,oBACV+pE,QAAQ,GACR5hB,QAAS,kBAAM/oC,EAAKmzD,eAAenzD,EAAKkzD,yBAEvClB,IAEF1H,GAAeoH,GAA0BkB,EAElC,KAFsDhqB,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCAC1EgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0BqxE,KAG5CrpB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,yBAAAlF,OAA2Bm3E,EAAmB,YAAc,aACxEjqB,GAAAllD,EAAA/D,cAAA,SACE8/D,IAAK,SAAAt9D,GAAK,OAAI6d,EAAKozD,qBAAuBjxE,GAC1CvB,UAAU,oBACV9B,KAAK,OACLlE,MAAOu5C,EACPu2B,UAAWL,EACX1pC,SAAUlwB,KAAK6gE,uBAEjB1oB,GAAAllD,EAAA/D,cAAA,SACEiB,UAAU,oBACV+pE,QAAQ,GACR5hB,QAAS,kBAAM/oC,EAAKmzD,eAAenzD,EAAKozD,wBAEvClB,IAEF5H,GAAeoH,GAA0BmB,EAElC,KAFqDjqB,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCACzEgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0BuxE,MAKhDvpB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,yBAAAlF,OAA2Bo3E,EAAgB,YAAc,aACrElqB,GAAAllD,EAAA/D,cAAA,SACE8/D,IAAK,SAAAt9D,GAAK,OAAI6d,EAAKqzD,kBAAoBlxE,GACvCvB,UAAU,oBACV9B,KAAK,QACLlE,MAAOi2E,EACPnG,UAAWL,EACX1pC,SAAUlwB,KAAK8gE,oBAEjB3oB,GAAAllD,EAAA/D,cAAA,SACEiB,UAAU,oBACV+pE,QAAQ,GACR5hB,QAAS,kBAAM/oC,EAAKmzD,eAAenzD,EAAKqzD,qBAEvCjB,GAEF9H,IAAeyI,EAAenqB,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCAC3CgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0ByxE,IAClC,OAGZzpB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCAAmCs3D,wBAAyBznD,KAAK6iE,aAAar0D,EAAQs0D,kCAEjF,IAAlB1B,GACAjpB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gDACbgoD,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,0CAA0CnC,GAAIu0E,EAAyBl0E,KAAK,WAAW5E,KAAK,GAAGU,MAAOu2E,EAAYxwC,SAAUlwB,KAAK+gE,wBAClJ5oB,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,uBAAuB+pE,QAASqI,GAC/CpqB,GAAAllD,EAAA/D,cAAA,OAAKu4D,wBAAyBznD,KAAK6iE,aAAahB,OAEjDhI,GAAesH,GAAwBT,EAEhC,KAF6CvoB,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCACjEgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0B2xE,MAK1B,IAAlBR,GACAnpB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gDACbgoD,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,0CAA0CnC,GAAIw0E,EAAyBn0E,KAAK,WAAW5E,KAAK,GAAGU,MAAOw2E,EAAYzwC,SAAUlwB,KAAKghE,wBAClJ7oB,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,uBAAuB+pE,QAASsI,GAC/CrqB,GAAAllD,EAAA/D,cAAA,OAAKu4D,wBAAyBznD,KAAK6iE,aAAad,OAEjDlI,GAAewH,GAAwBV,EAEhC,KAF6CxoB,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCACjEgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0B6xE,ipBCpSnCe,eACnB,SAAAA,EAAY9iD,GAAO,uCAAA8iD,4DAAAC,CAAAhjE,eAAAijE,GAAAF,GAAAx5E,KAAAyW,KACXigB,sKADWjgB,iQADyB64C,KAAMC,8CAKzC,IAAAqZ,EACwBnyD,KAAKigB,MAA7B2iC,EADAuP,EACAvP,QAASsgB,EADT/Q,EACS+Q,YAEhB,OACE/qB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAW+yE,EAAazb,wBAAyB,CAAEC,OAAQ9E,2wBCRjDugB,eACnB,SAAAA,EAAYljD,GAAO,IAAA3Q,IAAA,uCAAA6zD,4DAAAC,CAAApjE,OACjBsP,MAAA+zD,GAAAF,GAAA55E,KAAAyW,KAAMigB,+CAANjgB,SAEKk5D,aAAe5pD,EAAK2Q,MAAMi5C,aAE/B5pD,EAAK5J,MAAQ,CAAEyzD,YAAa7pD,EAAK2Q,MAAMm5C,eACvC9pD,EAAK4pD,cACH,GAGF5pD,EAAKg0D,aAAeh0D,EAAKg0D,aAAax2D,KAAlBy2D,MAAAj0D,KAVHA,qPADiBwpC,qDAcvBplD,GACXA,EAAMkmB,iBADY,IAAA4pD,EAEQ9vE,EAAM3D,OAAxBtG,EAFU+5E,EAEV/5E,KACR,GAHkB+5E,EAEJ1rB,QACd,CAHkB,IAMVyhB,EAAwBv5D,KAAKigB,MAAMzR,QAAnC+qD,oBAERv5D,KAAKk5D,cACH,EACAK,EACA9vE,GAXgB,IAed8wE,EADoBv6D,KAAK0F,MAArByzD,aACiC,GACzCoB,EAAOhB,GAAuB9vE,EAE9BuW,KAAK4hD,SAAS,iBAAO,CACnBuX,YAAaoB,uCAIR,IAAAhrD,EAAAvP,KACCm5D,EAAgBn5D,KAAK0F,MAArByzD,YADDtI,EAMH7wD,KAAKigB,MAAMzR,QAHbksD,EAHK7J,EAGL6J,gBACAhB,EAJK7I,EAIL6I,UACAH,EALK1I,EAKL0I,oBAGIO,EAAgBX,GAAeA,EAAYI,GAAuBJ,EAAYI,GAAuBmB,EAAgB,GAE3H,OACEviB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OACbgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YAAYupE,GAC3BvhB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gBACZuqE,EAAgBxzD,IAAI,SAAC8C,EAAQ/U,GAC5B,OACEkjD,GAAAllD,EAAA/D,cAAA,SAAOwF,IAAKO,EAAO9E,UAAU,cAC3BgoD,GAAAllD,EAAA/D,cAAA,SACEiB,UAAS,GAAAlF,OAAK6uE,IAAkB9vD,EAAS,sBAAwB,IACjEkmB,SAAU3gB,EAAK+zD,aACfj1E,KAAK,QACL5E,KAAMugB,EACN8tC,QAASgiB,IAAkB9vD,IAE5BA,EACDmuC,GAAAllD,EAAA/D,cAAA,k+BC7DhB,SAASu0E,GAAT/+D,GAAqC,IAAdg/D,EAAch/D,EAAdg/D,WACnB,OAAQvrB,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAK0U,EAAYvzE,UAAU,4BAG5CszE,GAAYhrB,UAAY,CACpBirB,WAAYhrB,KAAUnsD,QAGXk3E,klBCRiBE,GC8OjBC,ID9OiBD,eCO9B,SAAAE,EAAY5jD,GAAO,IAAA3Q,2CAAAu0D,4DAAAC,CAAA9jE,QACjB+jE,GAAAF,GAAAt6E,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,UA8Ea,SAACy5D,EAAiBuK,EAAeC,GAE9C,GAAKD,EAAL,CAWA,IAAME,EAAqC,iBAAlBF,EAAoCC,EAAiB30D,EAAK5J,MAAM06D,aAEzF,GAAsB,iBAAlB4D,GAAoC10D,EAAK5J,MAAMlD,OAAOwhE,KAAmBC,EAAgB,CAC3F,IAAIE,EAAgB70D,EAAK5J,MAAMlD,OAC/B2hE,EAAcH,GAAiBC,EAC/B30D,EAAKsyC,SAAS,CACZwiB,YAAa90D,EAAK5J,MAAM0+D,YACxB3K,gBAAiBA,EACjBI,WAAYvqD,EAAK5J,MAAMm0D,WACvBuG,aAAc8D,EACd1hE,OAAQ2hE,SAIV70D,EAAKsyC,SAAS,CACZwiB,YAAa90D,EAAK5J,MAAM0+D,YACxB3K,gBAAiBA,EACjBI,WAAYvqD,EAAK5J,MAAMm0D,WACvBuG,aAAc8D,EACd1hE,OAAQ8M,EAAK5J,MAAMlD,cA7BrB8M,EAAKsyC,SAAS,CACZwiB,YAAa90D,EAAK5J,MAAM0+D,YACxB3K,gBAAiBA,EACjBI,WAAYvqD,EAAK5J,MAAMm0D,WACvBuG,aAAc9wD,EAAK5J,MAAM06D,aACzB59D,OAAQ8M,EAAK5J,MAAMlD,aAvFN,oBAAA6hE,MAAA/0D,2FAKjB,IALiB,IAETg1D,EAAUrkD,EAAMzR,QAAhB81D,MAEJlL,EAAgB,GACX3tE,EAAI,EAAGA,EAAI64E,EAAM72E,OAAQhC,IAAK,CACrC,IAAMkK,EAAO2uE,EAAM74E,GACnB2tE,EAAczjE,EAAK4jE,qBAA6C,eAAtB5jE,EAAK4uE,aAAgC5uE,EAAK+kE,gBAAgB,GAAK,GAP1F,OAUjBprD,EAAK5J,MAAQ,CACX0+D,YAAa,EACb3K,gBAAiB6K,GAASA,EAAM,IAAMA,EAAM,GAAGhL,WAC/CO,YAAY,EACZuG,aAAc,GACd59D,OAAQ42D,GAEV9pD,EAAKk1D,sBAAwBl1D,EAAKk1D,sBAAsB13D,KAA3Bu3D,MAAA/0D,KAC7BA,EAAKm1D,0BAA4Bn1D,EAAKm1D,0BAA0B33D,KAA/Bu3D,MAAA/0D,KACjCA,EAAKo1D,mBAAqBp1D,EAAKo1D,mBAAmB53D,KAAxBu3D,MAAA/0D,KAC1BA,EAAK4pD,aAAe5pD,EAAK4pD,aAAapsD,KAAlBu3D,MAAA/0D,KApBHA,qPADSupC,KAAMC,+DAwBR6rB,IACnBA,EAAU9rC,SAAW8rC,EAAUC,kBAClC5kE,KAAK4hD,SAAS,CACZwiB,YAAapkE,KAAK0F,MAAM0+D,YAAc,EACtC3K,iBAAiB,EACjBI,WAAY75D,KAAK0F,MAAMm0D,WACvBuG,aAAcpgE,KAAK0F,MAAM06D,aACzB59D,OAAQxC,KAAK0F,MAAMlD,uDAKH9O,GACpBA,EAAMkmB,iBADqB,IAAA09C,EAEct3D,KAAK0F,MAAtC0+D,EAFmB9M,EAEnB8M,YAAa3K,EAFMnC,EAENmC,gBACb6K,EAAUtkE,KAAKigB,MAAMzR,QAArB81D,MAER,GAAK7K,EAYL,GAAI2K,GAAeE,EAAM72E,OAAzB,CAIA,IAAMo3E,EAAW7kE,KAAKigB,MAAMzR,QAAQ81D,MAAMtkE,KAAK0F,MAAM0+D,YAAc,GAEnEpkE,KAAK4hD,SAAS,CACZwiB,YAAapkE,KAAK0F,MAAM0+D,YAAc,EACtC3K,gBAAiBoL,IAAaA,EAASvL,YAAwC,eAA1BuL,EAASN,cAC9D1K,YAAY,EACZuG,aAAcpgE,KAAK0F,MAAM06D,aACzB59D,OAAQxC,KAAK0F,MAAMlD,cAVnBxC,KAAKigB,MAAM6kD,kBAAkB9kE,KAAK0F,MAAMlD,OAAQxC,KAAK0F,MAAM06D,aAAcpgE,KAAKigB,MAAMzR,QAAQu2D,oBAZ5F/kE,KAAK4hD,SAAS,CACZwiB,YAAapkE,KAAK0F,MAAM0+D,YACxB3K,iBAAiB,EACjBI,YAAY,EACZuG,aAAcpgE,KAAK0F,MAAM06D,aACzB59D,OAAQxC,KAAK0F,MAAMlD,2DAqBC9O,GACxBA,EAAMkmB,iBAEN5Z,KAAK4hD,SAAS,CACZwiB,YAAapkE,KAAK0F,MAAM0+D,YAAc,EACtC3K,iBAAiB,EACjBI,YAAY,EACZuG,aAAcpgE,KAAK0F,MAAM06D,aACzB59D,OAAQxC,KAAK0F,MAAMlD,sDAyCF,IAAA2vD,EACYnyD,KAAKigB,MAA5BzR,EADW2jD,EACX3jD,QAASw2D,EADE7S,EACF6S,UADE/C,EAEwDjiE,KAAK0F,MAAxE0+D,EAFWnC,EAEXmC,YAAahE,EAFF6B,EAEE7B,aAAc3G,EAFhBwI,EAEgBxI,gBAAiBj3D,EAFjCy/D,EAEiCz/D,OAAQq3D,EAFzCoI,EAEyCpI,WAK5D,GAAIuK,IAAgB51D,EAAQ81D,MAAM72E,OAChC,OAAO0qD,GAAAllD,EAAA/D,cAAC+1E,GAAD,CACLz2D,QAASA,EACT0qD,aAAcl5D,KAAKk5D,aACnBkH,aAAcA,EACdhH,cAAe52D,EACfq3D,WAAYA,EACZJ,gBAAiBA,IAIrB,GAAI2K,IAAgB51D,EAAQ81D,MAAM72E,OAAS,EAAG,CAC5C,IAAMm1D,EAAUoiB,EAAYx2D,EAAQ02D,6BAA+B12D,EAAQ22D,uBACrEjC,EAAc8B,EAAY,kBAAoB,gBAEpD,OAAO7sB,GAAAllD,EAAA/D,cAACk2E,GAAD,CAAkBxiB,QAASA,EAASsgB,YAAaA,IAE1D,IAAMvtE,EAAO6Y,EAAQ81D,MAAMF,GAE3B,MAA0B,kBAAtBzuE,EAAK4uE,aACApsB,GAAAllD,EAAA/D,cAACm2E,GAAD,CACL72D,QAAS7Y,EACTyjE,cAAep5D,KAAK0F,MAAMlD,OAC1B02D,aAAcl5D,KAAKk5D,aACnBW,WAAYA,EACZJ,gBAAiBA,IAIK,eAAtB9jE,EAAK4uE,aACApsB,GAAAllD,EAAA/D,cAACo2E,GAAD,CACL92D,QAAS7Y,EACTyjE,cAAep5D,KAAK0F,MAAMlD,OAC1B02D,aAAcl5D,KAAKk5D,aACnBW,WAAYA,EACZJ,gBAAiBA,IAIK,cAAtB9jE,EAAK4uE,aACApsB,GAAAllD,EAAA/D,cAACq2E,GAAD,CACL/2D,QAAS7Y,EACTyjE,cAAep5D,KAAK0F,MAAMlD,OAC1B02D,aAAcl5D,KAAKk5D,aACnBW,WAAYA,EACZJ,gBAAiBA,EACjBG,kBAAmBprD,EAAQorD,yBAP/B,mCAYO,IAAAsI,EACsBliE,KAAKigB,MAA1BzR,EADD0zD,EACC1zD,QAASqqB,EADVqpC,EACUrpC,QAEf2sC,EAIEh3D,EAJFg3D,eACAC,EAGEj3D,EAHFi3D,iBACAC,EAEEl3D,EAFFk3D,oBACAC,EACEn3D,EADFm3D,2BAEMvB,EAAgBpkE,KAAK0F,MAArB0+D,YAEJwB,EAAiBxB,EAAc51D,EAAQ81D,MAAM72E,OAAS,EACtDo4E,EAAiBzB,EAAc,GAAKA,EAAc51D,EAAQ81D,MAAM72E,OAAS,EAEzEq4E,EACF1B,IAAgB51D,EAAQ81D,MAAM72E,OAASg4E,EAAmBD,EAE5D,OACErtB,GAAAllD,EAAA/D,cAAA,OACEiB,UAAS,WAAAlF,OAAay6E,EAAsB,eAAiB,MAC7D1zE,MAAO,CACLi1D,gBAAiB,OAAS0e,EAA6B,MAGxD9sC,EAAUsf,GAAAllD,EAAA/D,cAAC62E,GAAD,MAA8B,KACzC5tB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,SAASqe,EAAQ43B,OAChC+R,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,aAAaqe,EAAQw3D,aACpC7tB,GAAAllD,EAAA/D,cAAA,OAAKlB,GAAG,UAAUoW,OAAO,IACtBpE,KAAK0kE,qBACNvsB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBAEX01E,GACA1tB,GAAAllD,EAAA/D,cAAA,UACEiB,UAAU,yBACV9B,KAAK,SACLL,GAAG,UACHsqD,QAASt4C,KAAKykE,2BACbj2D,EAAQy3D,gBAIXL,GACAztB,GAAAllD,EAAA/D,cAAA,UACEiB,UAAU,yBACV9B,KAAK,SACLL,GAAG,UACHsqD,QAASt4C,KAAKwkE,uBAEbsB,oMDlOb,SAAAI,GACI,SAAAC,EAAYlmD,GAAO,IAAA3Q,IAAA,uCAAA62D,4DAAAC,CAAApmE,OACfsP,MAAA+2D,GAAAF,GAAA58E,KAAAyW,KAAMigB,+CAANjgB,SACK8kE,kBAAoBx1D,EAAKw1D,kBAAkBh4D,KAAvBw5D,MAAAh3D,KACzBA,EAAKi3D,aAAej3D,EAAKi3D,aAAaz5D,KAAlBw5D,MAAAh3D,KACpBA,EAAK5J,MAAQ,CACTmzB,SAAS,EACT+rC,kBAAkB,EAClB77E,KAAM,GACN+5B,OAAQ,IARGxT,QADvB,0OAAAk3D,CAAAL,EAAqBttB,KAAMC,cAA3B,EAAApkD,IAAA,eAAAvK,MAAA,SAaiB+D,GACT,OAAKA,EAIElC,OAAOkK,KAAKhI,GAAKgZ,IAAI,SAAAxS,GAAG,MAAK,CAChCA,IAAOA,EACPvK,MAAS+D,EAAIwG,GAAK/G,cALX,KAfnB,CAAA+G,IAAA,oBAAAvK,MAAA,SAwBsBqY,EAAQ49D,EAAcqG,GAAe,IAAAl3D,EAAAvP,KAC7C0mE,EAAc,CAChBtG,aAAgBA,EAChB2E,cAAiB0B,EACjBE,QAAW3mE,KAAKumE,aAAa/jE,IAGjCxC,KAAK4hD,SAAS,CAAE/oB,SAAS,GAAQ,WAC7Bc,MAAM,+CAAgD,CAClDe,OAAQ,OACRC,QAAS,CAAEC,eAAgB,oBAC3BtoC,KAAMuD,KAAKE,UAAU2wE,KAEpB5sC,KAAK,SAAChmB,GACHvE,EAAKqyC,SAAS,CACV/oB,SAAS,EACT+rC,kBAAkB,EAClBI,UAAWlxD,EAAS8yD,OAG3B5sC,MAAM,SAACjsB,GACJwB,EAAKqyC,SAAS,CACV/oB,SAAS,EACT+rC,kBAAkB,EAClBI,WAAW,UAhDnC,CAAAtwE,IAAA,SAAAvK,MAAA,WAsDa,IAAAmtE,EAC4Ct3D,KAAK0F,MAA9Cs/D,EADH1N,EACG0N,UAAWnsC,EADdy+B,EACcz+B,QAAS+rC,EADvBtN,EACuBsN,iBAC5B,OAAOzsB,GAAAllD,EAAA/D,cAACy0E,GAADj9D,GAAA,CACHs+D,UAAWA,EAAWnsC,QAASA,EAAS+rC,iBAAkBA,EAAkBE,kBAAmB9kE,KAAK8kE,mBAAuB9kE,KAAKigB,kLAzD5IkmD,iBAAA,gdE0CWU,eAvCX,SAAAA,IAAqB,IAAAvvC,EAAAhoB,qCAAAu3D,4DAAAC,CAAA9mE,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAyvC,GAAAF,IAAAt9E,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACK8N,OAFYwB,qPADU0oB,sCAO3Bh4B,KAAK6L,6CAILiuC,KAASC,uBAAuB/5C,KAAKlS,0CAIrC,IAAM0gB,EAAUxO,KAAKwO,QAChBA,EAAQ81D,QACT91D,EAAQ81D,MAAQ,IAHf,IAKG0C,EAAgBx4D,EAAhBw4D,YACRltB,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAACuV,GAAA,EAAD,CAAU7X,MAAOA,MACburD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBACXgoD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,aACV6B,MAAO,CACHi1D,gBAAiB,OAAS+f,EAAc,OAIhD7uB,GAAAllD,EAAA/D,cAAC+3E,GAAD,CAAiBz4D,QAASA,OAItCxO,KAAKlS,uMCtCjByqC,IAAkBC,cAAchE,OAAO,eAAgBqyC,0fC2DxCK,eA3DX,SAAAA,IAAqB,IAAA5vC,EAAAhoB,qCAAA43D,4DAAAC,CAAAnnE,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAA8vC,GAAAF,IAAA39E,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACK8N,OAFYwB,qPADD0oB,sCAMb,IAAAzoB,EAAAvP,KACHA,KAAKqnE,SAAWC,KAAS,uDAAwD,IACjFtnE,KAAKlS,QAAQE,GAAKgS,KAAKqnE,SAEvBz8E,OAAO28E,UAAY38E,OAAO28E,WAAa,GACvC38E,OAAO48E,WAAa,GACpB58E,OAAO28E,UAAUE,IAAM78E,OAAO28E,UAAUE,KAAO,GAC/C78E,OAAO28E,UAAUE,IAAI3yE,KAAK,WACtB,IAAM4yE,EAAgB98E,OAAO28E,UAAUI,cAClCC,QAAQ,CAAC,IAAK,GAAIr4D,EAAKf,QAAQq5D,mBAC/BD,QAAQ,CAAC,EAAG,GAAIr4D,EAAKf,QAAQs5D,kBAC7BC,QAELn9E,OAAO48E,WAAW,GAAK58E,OAAO28E,UACzBS,WACGz4D,EAAKf,QAAQy5D,KAAM,CACf14D,EAAKf,QAAQs5D,iBACbv4D,EAAKf,QAAQq5D,mBAEjBt4D,EAAK83D,UAGTz8E,OAAO48E,WAAW,IAClB58E,OAAO48E,WAAW,GAAGU,kBAAkBR,GAClCS,WAAWv9E,OAAO28E,UAAUa,UAGrCx9E,OAAO28E,UAAUa,SAASC,sBAC1Bz9E,OAAO28E,UAAUe,eAAeC,yBAAwB,GACxD39E,OAAO28E,UAAUa,SAASI,iBAC1B59E,OAAO28E,UAAUkB,iBAEjB5R,YAAY,WACRjsE,OAAO28E,UAAUa,SAASzR,WAC3BpnD,EAAKf,QAAQk6D,eAGpB99E,OAAO28E,UAAUE,IAAI3yE,KAAK,WACtBlK,OAAO28E,UAAUn6C,QAAQ7d,EAAK83D,YAGlCrnE,KAAK2oE,gDAIL,IAAI/9E,OAAO28E,YAAa38E,OAAO28E,UAAUqB,SAAzC,CAEA,IAAMC,EAAS55E,SAASC,cAAc,UACtC25E,EAAOp+E,IAAM,4CACbo+E,EAAOC,OAAQ,EACf75E,SAASqD,KAAKhD,YAAYu5E,kMCvDlCtwC,IAAkBC,cAAchE,OAAO,aAAc0yC,gpBCI/C6B,eACF,SAAAA,EAAY9oD,GAAO,IAAA3Q,UAAA,uCAAAy5D,4DAAAC,CAAAhpE,QACfipE,GAAAF,GAAAx/E,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,UAaU,WAAM,IAAAmyD,EACmB7iD,EAAK2Q,OACxCipD,EAFgB/W,EACR+W,iBADQ/W,EACSja,WAfV,mBAAAixB,MAAA75D,2FAGfA,EAAK85D,QAAUvwB,KAAMwwB,YAHN/5D,qPADAupC,KAAMC,yDAQrBvgB,IAAkBC,cAAc1qB,KAAK9N,KAAKopE,QAAQv0E,wDAIlD0jC,IAAkBC,cAAc8wC,QAAQtpE,KAAKopE,QAAQv0E,gDAQ1C,IAAA00E,EACiBvpE,KAAKigB,MAAMi4B,MAA/B9R,EADGmjC,EACHnjC,MAAOgS,EADJmxB,EACInxB,SACf,OAAOhS,GAASgS,EAAQ,MAAAntD,OAASmtD,GAAa,gDAG9BoxB,GAChB,OAAQA,GACJ,KAAKC,KAAWC,aACZ,MAAO,eACX,KAAKD,KAAWE,QACZ,MAAO,UACX,QACI,MAAO,qDAIDzxB,GACd,OAAIA,EAAM7pD,OAASo7E,KAAWE,SAC1BzxB,EAAM7pD,OAASo7E,KAAWC,aAGtBvxB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACXgoD,GAAAllD,EAAA/D,cAAC06E,GAAA,EAAD,CAAav7E,KAAM6pD,EAAM7pD,QAK9B,sCAGF,IAAA6zE,EAC2BliE,KAAKigB,MAA7Bi4B,EADHgqB,EACGhqB,MAAO2xB,EADV3H,EACU2H,aACXC,EAAS,GAMb,OAJIv5E,MAAMuvB,QAAQ+pD,KACdC,EAASD,EAAa3iE,IAAI,SAACm4D,GAAD,oBAAAp0E,OAAqBo0E,KAAKv/D,KAAK,MAIzDq4C,GAAAllD,EAAA/D,cAAA,KACIiB,UAAS,aAAAlF,OAAe6+E,GACxBl3B,KAAMsF,EAAMsC,IACZwU,IAAKhvD,KAAKopE,QACV9wB,QAASt4C,KAAK+pE,aAEd5xB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBACXgoD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,2BACV65E,cAAa9xB,EAAM+xB,QACnB/U,IAAI,GACJgV,aAAW,SAEdlqE,KAAKmqE,kBAAkBjyB,IAE5BC,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sBACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,oBAAoB+nD,EAAMhuD,OACvCiuD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,4BACVgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,oBAAoB+nD,EAAM9R,OACvC+R,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,wBAAhB,KACAgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uBAAuB+nD,EAAME,WAEjDD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BACXgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uBAAuB+nD,EAAMkyB,SAC7CjyB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCAAgC0B,MAAM,KAAK8gC,OAAO,KAC7DiyB,UAAU,SACVzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,0BAK/B1M,GAAAllD,EAAA/D,cAACm7E,GAAA,EAAD,CAAWnyB,MAAOA,EAAMoyB,2MAMxCvB,GAAStwB,UAAY,CACjBP,MAAOQ,KAAUnsD,OAAOu4D,WACxB+kB,aAAcnxB,KAAUjjD,MACxByzE,gBAAiBxwB,KAAUx3C,MAGhB6nE,klBC3GTwB,eACF,SAAAA,EAAYtqD,GAAO,IAAA3Q,UAAA,uCAAAi7D,4DAAAC,CAAAxqE,QACfyqE,GAAAF,GAAAhhF,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,UAaU,WAAM,IAAAmyD,EACmB7iD,EAAK2Q,OACxCipD,EAFgB/W,EACR+W,iBADQ/W,EACSja,WAfV,mBAAAwyB,MAAAp7D,2FAGfA,EAAK85D,QAAUvwB,KAAMwwB,YAHN/5D,qPADAupC,KAAMC,yDAQrBvgB,IAAkBC,cAAc1qB,KAAK9N,KAAKopE,QAAQv0E,wDAIlD0jC,IAAkBC,cAAc8wC,QAAQtpE,KAAKopE,QAAQv0E,0CAQhD,IAAAqtE,EAC2BliE,KAAKigB,MAA7Bi4B,EADHgqB,EACGhqB,MAAO2xB,EADV3H,EACU2H,aACXC,EAAS,GAUb,OARIv5E,MAAMuvB,QAAQ+pD,KACV3xB,EAAMyyB,QACNd,EAAa/0E,KAAK,QAGtBg1E,EAASD,EAAa3iE,IAAI,SAACm4D,GAAD,oBAAAp0E,OAAqBo0E,KAAKv/D,KAAK,MAIzDq4C,GAAAllD,EAAA/D,cAAA,KACIiB,UAAS,aAAAlF,OAAe6+E,GACxBl3B,KAAMsF,EAAMsC,IACZmgB,oBAAkB,oBAClB3L,IAAKhvD,KAAKopE,QACV9wB,QAASt4C,KAAK+pE,aAEd5xB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sBACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,oBAAoB+nD,EAAMhuD,OACvCiuD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,sBACVgoD,GAAAllD,EAAA/D,cAAA,SAAIgpD,EAAM9R,QAEd+R,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBACXgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uBAAuB+nD,EAAMkyB,SAC7CjyB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BAA2B0B,MAAM,KAAK8gC,OAAO,KACxDiyB,UAAU,SACVzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,yBAI3B1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,WAAW+kE,IAAI,GAAG8U,cAAa9xB,EAAM+xB,QAASC,aAAW,yMAO5FK,GAAS9xB,UAAY,CACjBP,MAAOQ,KAAUnsD,OAAOu4D,WACxB+kB,aAAcnxB,KAAUjjD,MACxByzE,gBAAiBxwB,KAAUx3C,MAGhBqpE,klBCjETK,eACF,SAAAA,EAAY3qD,GAAO,IAAA3Q,UAAA,uCAAAs7D,4DAAAC,CAAA7qE,QACf8qE,GAAAF,GAAArhF,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,UAaU,WAAM,IAAAmyD,EACmB7iD,EAAK2Q,OACxCipD,EAFgB/W,EACR+W,iBADQ/W,EACSja,WAfV,mBAAA6yB,MAAAz7D,2FAGfA,EAAK85D,QAAUvwB,KAAMwwB,YAHN/5D,qPADEupC,KAAMC,yDAQvBvgB,IAAkBC,cAAc1qB,KAAK9N,KAAKopE,QAAQv0E,wDAIlD0jC,IAAkBC,cAAc8wC,QAAQtpE,KAAKopE,QAAQv0E,mDAQvCqjD,GACd,OAAIA,EAAM7pD,OAASo7E,KAAWE,SAC1BzxB,EAAM7pD,OAASo7E,KAAWC,aAGtBvxB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACXgoD,GAAAllD,EAAA/D,cAAC06E,GAAA,EAAD,CAAav7E,KAAM6pD,EAAM7pD,QAK9B,sCAGF,IAAA6zE,EAC2BliE,KAAKigB,MAA7Bi4B,EADHgqB,EACGhqB,MAAO2xB,EADV3H,EACU2H,aACXC,EAAS,GAMb,OAJIv5E,MAAMuvB,QAAQ+pD,KACdC,EAASD,EAAa3iE,IAAI,SAACm4D,GAAD,sBAAAp0E,OAAuBo0E,KAAKv/D,KAAK,MAI3Dq4C,GAAAllD,EAAA/D,cAAA,KACIiB,UAAS,eAAAlF,OAAiB6+E,GAC1Bl3B,KAAMsF,EAAMsC,IACZmgB,oBAAkB,oBAClB3L,IAAKhvD,KAAKopE,QACV9wB,QAASt4C,KAAK+pE,aAEd5xB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,WAAW+kE,IAAI,GAAG8U,cAAa9xB,EAAM+xB,QAASC,aAAW,UAGxEhyB,EAAM8yB,YACN7yB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,WAAW+kE,IAAI,GAAG8U,cAAa9xB,EAAM8yB,WAAYC,YAAU,UAIlF9yB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,sBAAsB+nD,EAAMhuD,OACzCiuD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,wBACVgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,sBAAsB+nD,EAAM9R,OACxC8R,EAAME,UAAYD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,wBAAhB,KAClB+nD,EAAME,UAAYD,GAAAllD,EAAA/D,cAAA,YAAOgpD,EAAME,WAEpCD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oBACXgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,yBAAyB+nD,EAAMkyB,SAC/CjyB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6B0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SACzEzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,wBAGtB7kD,KAAKmqE,kBAAkBjyB,oMAQhD0yB,GAAWnyB,UAAY,CACnBP,MAAOQ,KAAUnsD,OAAOu4D,WACxB+kB,aAAcnxB,KAAUjjD,MACxByzE,gBAAiBxwB,KAAUx3C,MAGhB0pE,klBCxFTM,eACF,SAAAA,EAAYjrD,GAAO,IAAA3Q,UAAA,uCAAA47D,4DAAAC,CAAAnrE,QACforE,GAAAF,GAAA3hF,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,UAaU,SAACtM,GACX,IAAMxJ,EAAK,GAAAe,OAAMqkB,EAAK+7D,eAAX,OAAApgF,OAA+BL,OAAOg2B,SAASgyB,MAC1D2F,KAAIzjD,KAAK,cAAe,QAAS5K,GAE7BgpD,IAAIyb,YACJj7D,EAAMkmB,qBAnBK,mBAAA0xD,MAAAh8D,2FAGfA,EAAK85D,QAAUvwB,KAAMwwB,YAHN/5D,qPADEupC,KAAMC,yDAQvB94C,KAAKopE,QAAQv0E,QAAQsjB,iBAAiB,QAASnY,KAAK+pE,4DAIpD/pE,KAAKopE,QAAQv0E,QAAQyjB,oBAAoB,QAAStY,KAAK+pE,oDAY5C,IAAAR,EACiBvpE,KAAKigB,MAAMi4B,MAA/B9R,EADGmjC,EACHnjC,MAAOgS,EADJmxB,EACInxB,SACf,OAAOhS,GAASgS,EAAQ,MAAAntD,OAASmtD,GAAa,2CAGnCmzB,GACX,OAAQA,GACJ,IChCC,UDiCG,MAAO,UACX,ICjCG,YDkCC,MAAO,YACX,IClCE,WDmCE,MAAO,WACX,QACI,MAAO,0CAILrzB,GAaV,MCvDO,cD6CHA,EAAMqzB,MAEFpzB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACXgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,6BAA6B+nD,EAAM8tB,cAIhD,yCAMP9tB,GACR,IAAMszB,EAAcxrE,KAAKyrE,eAAevzB,EAAMqzB,OAE9C,OAAKC,EAGDrzB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACXgoD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAS,wCAAAlF,OAA0CitD,EAAMqzB,MAAMn4E,cAAtD,SACTvB,MAAM,OAAO8gC,OAAO,OAAOiyB,UAAU,SACrCzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAS,SAAA55D,OAAWugF,OAPZ,sCAapB,IAAArZ,EAC2BnyD,KAAKigB,MAA7Bi4B,EADHia,EACGja,MAAO2xB,EADV1X,EACU0X,aACXC,EAAS,GAMb,OAJIv5E,MAAMuvB,QAAQ+pD,KACdC,EAASD,EAAa3iE,IAAI,SAACm4D,GAAD,sBAAAp0E,OAAuBo0E,KAAKv/D,KAAK,MAI3Dq4C,GAAAllD,EAAA/D,cAAA,KACIiB,UAAS,eAAAlF,OAAiB6+E,GAC1Bl3B,KAAMsF,EAAMsC,IACZwU,IAAKhvD,KAAKopE,QACV9wB,QAASt4C,KAAK+pE,aAEd5xB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACXgoD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,WACV65E,cAAa9xB,EAAM+xB,QACnB/U,IAAI,GACJgV,aAAW,UAGnB/xB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACV6P,KAAK0rE,YAAYxzB,IAEtBC,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sBACV6P,KAAK0rE,YAAYxzB,IAEtBC,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,sBACVgoD,GAAAllD,EAAA/D,cAAA,SAAIgpD,EAAM9R,OACV+R,GAAAllD,EAAA/D,cAAA,gBAAQgpD,EAAME,WAEjBp4C,KAAK2rE,cAAczzB,sMAUpDgzB,GAAWzyB,UAAY,CACnBP,MAAOQ,KAAUnsD,OAAOu4D,WACxB+kB,aAAcnxB,KAAUjjD,OAGby1E,sdEhITU,eACF,SAAAA,EAAY3rD,GAAO,IAAA3Q,IAAA,uCAAAs8D,4DAAAC,CAAA7rE,OACfA,OAAA8rE,GAAAF,GAAAriF,KAAAyW,KAAMigB,GAAN3Q,uKAAAtP,SAEKopE,QAAUvwB,KAAMwwB,YAHN/5D,qPADUupC,KAAMC,yDAQ/BvgB,IAAkBC,cAAc1qB,KAAK9N,KAAKopE,QAAQv0E,wDAIlD0jC,IAAkBC,cAAc8wC,QAAQtpE,KAAKopE,QAAQv0E,0CAGhD,IAAAs9D,EAC2BnyD,KAAKigB,MAA7Bi4B,EADHia,EACGja,MAAO2xB,EADV1X,EACU0X,aACXC,EAAS,GAUb,OARIv5E,MAAMuvB,QAAQ+pD,KACV3xB,EAAMyyB,QACNd,EAAa/0E,KAAK,QAGtBg1E,EAASD,EAAa3iE,IAAI,SAACm4D,GAAD,oBAAAp0E,OAAqBo0E,KAAKv/D,KAAK,MAIzDq4C,GAAAllD,EAAA/D,cAAA,QACIiB,UAAS,kCAAAlF,OAAoC6+E,GAC7C9a,IAAKhvD,KAAKopE,SAEVjxB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sBACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,gDAAgD+nD,EAAMhuD,OACnEiuD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,oDACVgoD,GAAAllD,EAAA/D,cAAA,SAAIgpD,EAAM9R,SAGlB+R,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,WAAW+kE,IAAI,GAAG8U,cAAa9xB,EAAM+xB,QAASC,aAAW,yMAO5F0B,GAAmBnzB,UAAY,CAC3BP,MAAOQ,KAAUnsD,OAAOu4D,WACxB+kB,aAAcnxB,KAAUjjD,OAGbm2E,w6BC5CTG,eACF,SAAAA,EAAY9rD,GAAO,IAAA3Q,IAAA,uCAAAy8D,4DAAAC,CAAAhsE,OACfsP,MAAA28D,GAAAF,GAAAxiF,KAAAyW,KAAMigB,+CAANjgB,SAEKkpE,gBAAkB55D,EAAK45D,gBAAgBp8D,KAArBo/D,MAAA58D,KAHRA,qPADOupC,KAAMC,oDAOjBZ,EAAOi0B,GAClB,OAAQj0B,EAAMqzB,OACV,IFnBF,OEoBM,OACIpzB,GAAAllD,EAAA/D,cAACk9E,GAAD,CAAUl0B,MAAOA,EACb2xB,aAAYwC,GAAMF,GAClBjD,gBAAiBlpE,KAAKkpE,kBAElC,IFxBA,SEyBI,OACI/wB,GAAAllD,EAAA/D,cAACo9E,GAAD,CAAYp0B,MAAOA,EACf2xB,aAAYwC,GAAMF,GAClBjD,gBAAiBlpE,KAAKkpE,kBAElC,IF7BF,OE8BM,OACI/wB,GAAAllD,EAAA/D,cAACq9E,GAAD,CAAUr0B,MAAOA,EACb2xB,aAAYwC,GAAMF,GAClBjD,gBAAiBlpE,KAAKkpE,kBAElC,IFlCS,kBEmCL,OACI/wB,GAAAllD,EAAA/D,cAACs9E,GAAD,CAAoBt0B,MAAOA,EAAO2xB,aAAYwC,GAAMF,KAE5D,IFrCC,UEsCG,OACIh0B,GAAAllD,EAAA/D,cAACu9E,GAAD,CAAYv0B,MAAOA,EAAO2xB,aAAY,GAAA5+E,OAAAohF,GAAMF,GAAN,CAAqB,cAEnE,IFxCG,YEyCC,OACIh0B,GAAAllD,EAAA/D,cAACu9E,GAAD,CAAYv0B,MAAOA,EAAO2xB,aAAY,GAAA5+E,OAAAohF,GAAMF,GAAN,CAAqB,gBAEnE,IF3CE,WE4CE,OACIh0B,GAAAllD,EAAA/D,cAACu9E,GAAD,CAAYv0B,MAAOA,EAAO2xB,aAAY,GAAA5+E,OAAAohF,GAAMF,GAAN,CAAqB,eAEnE,QAEI,OADAphF,QAAQC,IAAR,uBAAAC,OAAmCitD,EAAMqzB,MAAzC,kCACO,8CAIHrzB,GACZ,IACMw0B,EAAY1sE,KAAKqrE,aAAanzB,GAC9Bl1B,EAAkBp4B,OAAOg2B,SAASgyB,KAClC+5B,EAAmB3sE,KAAK4sE,oBAAoB10B,EAAM7pD,MAClDnE,EAAK,GAAAe,OAAMyhF,EAAN,OAAAzhF,OAAqB+3B,GAEhCu1B,KAAIzjD,KAAK63E,EANW,QAMoBziF,wCAG/BguD,GAAO,IACR9R,EAAoB8R,EAApB9R,MAAOgS,EAAaF,EAAbE,SACf,OAAOhS,GAASgS,EAAQ,MAAAntD,OAASmtD,GAAa,gDAG9BoxB,GAChB,OAAQA,GACJ,KAAKC,KAAWC,aACZ,MAAO,eACX,KAAKD,KAAWE,QACZ,MAAO,UACX,QACI,MAAO,iDAILkD,GACV,IAAMnsD,EAAU1gB,KAAKigB,MAAMS,QAE3B,IAAKnwB,MAAMuvB,QAAQY,GAAU,OAAO,KAMpC,IAJA,IACMosD,EAAYD,EADCnsD,EAAQ/rB,OAAO,SAACugB,EAAK63D,GAAN,OAAc73D,EAAM63D,EAAIC,MAAMv/E,QAAQ,GAEpE66C,EAAQ,EAEH78C,EAAI,EAAGA,EAAIi1B,EAAQjzB,OAAQhC,IAAK,CACrC,IAAMwhF,EAAMvsD,EAAQj1B,GAIpB,GAAIqhF,IAFJxkC,GAAS2kC,EAAID,MAAMv/E,QAEM,EACrB,OAAOw/E,EAIf,OAAO,uCAGDvsD,EAASwsD,EAAWj4E,GAAO,IAAAsa,EAAAvP,KAC3BmtE,EAASzsD,EAAQ0sD,UAAUlmE,IAAI,SAACm4D,GAAD,wBAAAp0E,OAAyBo0E,KAAKv/D,KAAK,KAClEutE,EAAU3sD,EAAQ0sD,UAAUlmE,IAAI,SAACm4D,GAAD,yBAAAp0E,OAA0Bo0E,KAAKv/D,KAAK,KAE1E,OACIq4C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,iBAAAlF,OAAmBkiF,GAAUz4E,IAAKO,GAC5CkjD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,kBAAAlF,OAAoBoiF,IAE1BH,EAAUhmE,IAAI,SAACipD,EAAM1kE,GACjB,IAAMw8E,EAAOvnD,EAAQssD,MAAMvhF,GACrB6hF,EAAUrF,EAAKmF,UAAUlmE,IAAI,SAACm4D,GAAD,yBAAAp0E,OAA0Bo0E,KAAKv/D,KAAK,KAEvE,OACIq4C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,kBAAAlF,OAAoBqiF,GAAW54E,IAAKy7D,EAAKniE,IAClDuhB,EAAKg+D,eAAepd,EAAM8X,EAAKmF,sDAgB5D,IALA,IAAMF,EAAYltE,KAAKigB,MAAMxrB,OAAS,GAChC+4E,EAAO,GACT/hF,EAAI,EACJwJ,EAAQ,EAELxJ,EAAIyhF,EAAUz/E,QAAQ,CACzB,IAAMggF,EAAaztE,KAAK0tE,cAAcjiF,GAEtC,IAAKgiF,EAAY,OAAO,KAExBD,EAAK14E,KAAKkL,KAAK2tE,UACXF,EACAP,EAAU/+E,MAAM1C,EAAGA,EAAIgiF,EAAWT,MAAMv/E,QACxCwH,IAGJxJ,GAAKgiF,EAAWT,MAAMv/E,OACtBwH,IAGJ,OAAOu4E,mCAIP,OACIr1B,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KACK9iD,KAAK4tE,6MAMtB7B,GAAgBtzB,UAAY,CACxBhkD,MAAOikD,KAAUjjD,MAAMqvD,WACvBpkC,QAASg4B,KAAUjjD,MAAMqvD,YAGdinB,sICxKR,IAWD0B,IAAUI,GAAAC,GAAA,GAVN,OAWW,CACbV,UAAW,CAAC,QACZJ,MAAO,CACH,CACI3+E,KAAM,OACN++E,UAAW,CAAC,YANZS,GAAAC,GATE,eAmBW,CACrBV,UAAW,CAAC,gBACZJ,MAAO,CACH,CACI3+E,KAAM,OACN++E,UAAW,CAAC,OAAQ,oBAfpBS,GAAAC,GARJ,SA2BW,CACfV,UAAW,CAAC,UACZJ,MAAO,CACH,CACI3+E,KAAM,SACN++E,UAAW,CAAC,cAxBZS,GAAAC,GAPI,iBAmCW,CACvBV,UAAW,CAAC,kBACZJ,MAAO,CACH,CACI3+E,KAAM,SACN++E,UAAW,CAAC,SAAU,sBAjCtBS,GAAAC,GANc,2BA2CW,CACjCV,UAAW,CAAC,4BACZJ,MAAO,CACH,CACI3+E,KAAM,aACN++E,UAAW,CAAC,eAEhB,CACI/+E,KAAM,YACN++E,UAAW,CAAC,iBA9CZS,GAAAC,GALc,2BAuDW,CACjCV,UAAW,CAAC,4BACZJ,MAAO,CACH,CACI3+E,KAAM,YACN++E,UAAW,CAAC,cAEhB,CACI/+E,KAAM,aACN++E,UAAW,CAAC,kBA3DZS,GAAAC,GAJO,oBAmEW,CAC1BV,UAAW,CAAC,qBACZJ,MAAO,CACH,CACI3+E,KAAM,aACN++E,UAAW,CAAC,eAEhB,CACI/+E,KAAM,aACN++E,UAAW,CAAC,kBAxEZS,GAAAC,GAHM,mBA+EW,CACzBV,UAAW,CAAC,oBACZJ,MAAO,CACH,CACI3+E,KAAM,YACN++E,UAAW,CAAC,cAEhB,CACI/+E,KAAM,YACN++E,UAAW,CAAC,cAEhB,CACI/+E,KAAM,YACN++E,UAAW,CAAC,iBAzFZU,IAoJHC,GAAyB,SAACC,EAAaC,GAChD,OAAQD,GACJ,IAhKE,OAiKE,OArDOP,GAAU,KAsDrB,IAjKU,eAkKN,OAhDOA,GAAU,aAiDrB,IAlKI,SAmKA,OA3COA,GAAU,OA4CrB,IAnKY,iBAoKR,OAtCOA,GAAU,eAuCrB,IApKsB,2BAqKlB,OApCoB,SAACQ,GAC7B,OAAQA,GACJ,KAAKC,IACD,OAAOT,GAAU,yBACrB,QACI,OAAOA,GAAU,mBA+BVU,CAAwBF,GACnC,IArKsB,2BAsKlB,OA7BoB,SAACA,GAC7B,OAAQA,GACJ,KAAKC,IACD,OAAOT,GAAU,yBACrB,QACI,OAAOA,GAAU,mBAwBVW,CAAwBH,GACnC,IArKc,mBAsKV,OAnBOR,GAAU,iBAoBrB,QAEI,OADA1iF,QAAQC,IAAI,4BACL,svBCjFJqjF,eAzFX,SAAAA,IAAqB,IAAA/2C,EAAAhoB,2CAAA++D,4DAAAC,CAAAtuE,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAi3C,GAAAF,IAAA9kF,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,UA6DiB,WACjBsP,EAAKk/D,gBACLl/D,EAAKzD,aAhEY,0BAAA4iE,MAAAn/D,2FAGjBA,EAAKvmB,KAAOumB,EAAKo/D,UAEjBp/D,EAAKxB,OALYwB,yPADa0oB,oDAU9B,MAAO,uCAIPh4B,KAAK6L,SAELqjC,KAAS9W,YAAYu2C,IAA2B3uE,KAAK4uE,sDAG/C,IAAAr/D,EAAAvP,KACAjX,EAAO,GAEb,OAAKwH,MAAMuvB,QAAQ9f,KAAKi4B,KAAKg1C,MAE7BjtE,KAAKi4B,KAAKg1C,IAAIznE,QAAQ,SAACynE,GACnB,IAAM4B,EAAUt/D,EAAKu/D,WAAW7B,GAEhC,GAAI4B,GAAWt+E,MAAMuvB,QAAQ+uD,EAAQp6E,OAAQ,CACzC,IAAMisB,EAAU,CAACqtD,GACbc,EAAQb,YACR96B,IAAI67B,uBAGRx/D,EAAKy/D,eAAe/B,GAEpBlkF,EAAK+L,KAAK,CACN4rB,QAASA,GAAW,GACpBstD,YAAaa,EAAQb,YACrBv5E,MAAOo6E,EAAQp6E,MACfm+B,KAAMq6C,OAKXlkF,GAtBmCA,qCAyBnCkkF,GACP,IAAIlkF,EAAO,KAEX,IACIA,EAAO8M,KAAKC,MAAMkK,KAAK8H,aAAamlE,EAAK,SAC3C,MAAOl/D,GACLhjB,QAAQC,IAAI+iB,GAGhB,OAAOhlB,yCAGIkkF,GACXjtE,KAAKiI,gBAAgBglE,EAAK,gDAS1BjtE,KAAKjX,KAAKyc,QAAQ,SAACynE,GACfA,EAAIvsD,QAAU,CAACqtD,GAAuBd,EAAIe,YAAa96B,IAAI67B,0DAK/D/uE,KAAKjX,KAAKyc,QAAQ,SAACynE,GACfnzB,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAAC+/E,GAAD,CAAiBx6E,MAAOw4E,EAAIx4E,MAAOisB,QAASusD,EAAIvsD,UAChDusD,EAAIr6C,4CAMZ5yB,KAAKjX,KAAKyc,QAAQ,SAACynE,GACfnzB,KAASC,uBAAuBkzB,EAAIr6C,ufCzFhD2F,IAAkBC,cAAchE,OAAO,kBAAmB06C,wBCGrCC,eACjB,SAAAA,IAAqB,IAAA73C,EAAAhoB,qCAAA6/D,4DAAAC,CAAApvE,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAA+3C,GAAAF,IAAA5lF,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEKsvE,YAAchgE,EAAKxH,aAAawH,EAAKxhB,QAAS,gBACnDwhB,EAAKigE,YAAcjgE,EAAKxH,aAAawH,EAAKxhB,QAAS,gBACnDwhB,EAAKkgE,sBALYlgE,qPADyB0oB,qDAU1C,IAAMib,EAAiBhB,IAAQ7lD,IAAI8mD,IAAIxtC,MAAMwnC,oBACvCuiC,EAA4Bx9B,IAAQ7lD,IAAIsjF,KAE9C,OAAQ1vE,KAAKsvE,aACT,ICrBgB,cDsBZ,GAAItvE,KAAK2vE,eAAe18B,GAAiB,CACrC,GAAIjzC,KAAK4vE,sBAAsB38B,EAAgBw8B,GAC3C,OAAO,EAEX,GAAyB,KAArBzvE,KAAKuvE,YAEL,OADA/4B,aAAWtD,IAAIxtC,MAAMmqE,wBACd,EAKf,OADAr5B,aAAgC,KAArBx2C,KAAKuvE,YAAqBr8B,IAAIxtC,MAAMmqE,sBAAwB7vE,KAAKuvE,cACrE,EACX,ICjCY,WDmCZ,IClCc,aDmCV,OAAO,EACX,QAAS,OAAO,0CAITt8B,GACX,QAAuB5nD,IAAnB4nD,EAA8B,CAC9B,IAAM7F,EAAWv3C,KAAKC,MAAMm9C,GAC5B,QAAiB5nD,IAAb+hD,GAA0BA,EAASyB,WACnC,OAAO,EAIf,OAAO,gDAGWoE,EAAgBw8B,GAClC,IAAMriC,EAAWv3C,KAAKC,MAAMm9C,GAE5B,aAA+B5nD,IAA3B+hD,EAAS0B,gBAA+B1B,EAAS0B,uBAGtBzjD,IAA3B+hD,EAAS2B,gBAA+B3B,EAAS2B,mBAGjD0gC,GAA2D,SAA9BA,iME3DzCl3C,IAAkBC,cAAchE,OAAO,gBAAiB26C,+LC4EzCxtD,GAFE,0JA5EN,SAACmuD,GACJ,OAAO,IAAI3wB,QAAQ,SAACC,GAChB,IAAKx0D,OAAOmlF,GAAI,CACZ,IAAMlH,EAAS55E,SAASC,cAAc,UACtC25E,EAAOp+E,IAAM,4CACbo+E,EAAOC,OAAQ,EACfD,EAAOmH,OAAS,WACZ1gE,EAAKxB,KAAKgiE,GAAOh2C,KAAK,WAClBslB,OAGRnwD,SAASqD,KAAKhD,YAAYu5E,GAE9BzpB,uBAID,SAAC0wB,GACJ,OAAO,IAAI3wB,QAAQ,SAACC,GAChBx0D,OAAOmlF,GAAGjiE,KAAK,CACXgiE,QACA/6B,QAAQ,EACR1H,QAAQ,EACR4iC,OAAO,EACP35E,QAAS,SAEb8oD,uDAKJ,IAAM8wB,EAAKtlF,OAAOmlF,GAElB,OAAO,IAAI5wB,QAAQ,SAACC,EAASC,GACzB6wB,EAAGC,eAAe,SAACr8D,GACS,cAApBA,EAASihC,QACTqK,EAAQtrC,EAASs8D,cAGrBF,EAAGG,MAAM,SAACC,GACDA,GAAkBA,EAAcF,cACjC/wB,IAEJ,IAAM5kB,EAAc61C,EAAcF,aAAa31C,YACzC81C,EAAYD,EAAcF,aAAaG,UAK7CnxB,EAJmB,CACf3kB,cACA81C,eAIR,CAEIC,MAAO,sDAOnB,IAAMN,EAAKtlF,OAAOmlF,GAElB,OAAO,IAAI5wB,QAAQ,SAACC,GAChB8wB,EAAGxwB,IAAI,2BAA4B,SAAC5rC,GAChC,IAAMw/B,EAAWx/B,EAASrqB,KAAKwE,QAAQ,MAAO,IACxCD,EAAK8lB,EAAS9lB,GAKpBoxD,EAJa,CACTpxD,KACAslD,6UCUL3xB,GAFE,0JA5EN,SAACmuD,GACJ,OAAO,IAAI3wB,QAAQ,SAACC,EAASC,GACzB,IAAMoxB,EAAQxhF,SAASC,cAAc,QACrCuhF,EAAMhnF,KAAO,sBACbgnF,EAAM/5C,QAAU,gBAChBznC,SAASyhF,KAAKphF,YAAYmhF,GAE1B,IAAME,EAAiBb,EAAQ,8BACzBc,EAAQ3hF,SAASC,cAAc,QACrC0hF,EAAMnnF,KAAO,0BACbmnF,EAAMl6C,QAAUi6C,EAChB1hF,SAASyhF,KAAKphF,YAAYshF,GAE1B,IAAM/H,EAAS55E,SAASC,cAAc,UACtC25E,EAAOp+E,IAAM,yCACbo+E,EAAOC,OAAQ,EACfD,EAAOgI,OAAQ,EACfhI,EAAOmH,OAAS,WACZ1gE,EAAKxB,KAAKgiE,GAAOh2C,KAAK,WAClBslB,OAGRnwD,SAASqD,KAAKhD,YAAYu5E,sBAI3B,SAACiH,GACJ,IAAMa,EAAiBb,EAAQ,8BAE/B,OAAO,IAAI3wB,QAAQ,SAACC,EAASC,GACzByxB,KAAKC,KAAK,eAAgB,WAEtBzhE,EAAK0hE,MAAQF,KAAKE,MAAMljE,KAAK,CACzBmjE,UAAWN,EACXO,aAAc,uBAElB9xB,uDAKLtxD,GAAS,IAAAyhB,EAAAvP,KACZ,OAAO,IAAIm/C,QAAQ,SAACC,EAASC,GACzB9vC,EAAKyhE,MAAMG,mBAAmBrjF,EAAS,GACnC,SAACsjF,GACG7hE,EAAK6hE,WAAaA,EAClB,IAAMhB,EAAegB,EAAWC,kBAC1B52C,EAAc21C,EAAY,SAC1BG,EAAYH,EAAY,WAK9BhxB,EAJmB,CACf3kB,cACA81C,eAGL,SAACxiE,GACAsxC,EAAOxpD,KAAKE,UAAUgY,OAAO1iB,EAAW,gDAKxC,IAAAokB,EAAAzP,KACZ,OAAO,IAAIm/C,QAAQ,SAACC,GAChB,IAAMkyB,EAAU7hE,EAAK2hE,WAAWG,kBAShCnyB,EALa,CACTpxD,GAJOsjF,EAAQE,QAKfl+B,SAJag+B,EAAQG,eAAiB,IAAMH,EAAQI,gBAKpDrlC,MAJUilC,EAAQK,kNCHnBhwD,GAFE,wIA1DN,SAACmuD,GAEJ,OADellF,OAAOg2B,SAASgyB,KAAKjlD,WAAW8R,MAAM7U,OAAOg2B,SAASgxD,MAAM,GACpE,IAAIzyB,QAAQ,SAACC,GAMhB,IAAUvzD,EACAoH,EANVrI,OAAOinF,mBAAqB,WACxBC,OAAOC,MAAMC,YAAYlC,GACzBgC,OAAOC,MAAME,cAAc,6BAIrBh/E,GADApH,EAUPoD,UATaC,cAAc,WACxBb,KAAO,kBACT4E,EAAE61E,OAAQ,EACV71E,EAAEjF,GAAK,mBACPiF,EAAExI,IAAM,sDACRwI,EAAE+8E,OAAS,WACP5wB,KAEJvzD,EAAEyG,KAAKhD,YAAY2D,sKAM3B,IAAMub,EAAU,CAAEgiE,MAAQ,WAE1B,OAAO,IAAIrxB,QAAQ,SAACC,EAASC,GACzByyB,OAAOC,MAAMG,UAAU1jE,EAAS,SAACsF,GACzBA,EAAS/F,OACTsxC,EAAOvrC,EAAS/F,OAEpB,IAAM0sB,EAAc3mB,EAAQ,aACtBy8D,EAAYz8D,EAAQ,WAK1BsrC,EAJmB,CACf3kB,cACA81C,0DAQZ,OAAO,IAAIpxB,QAAQ,SAACC,GAChB0yB,OAAOC,MAAMI,gBAAgB,SAACr+D,GAC1B,IAAM9lB,EAAK8lB,EAASw9D,QAAQc,WACtB9+B,EAAWx/B,EAASw9D,QAAQe,KAAKpkF,QAAQ,MAAO,IAChDo+C,EAAQv4B,EAASw9D,QAAQgB,aAM/BlzB,EALa,CACTpxD,KACAslD,WACAjH,s8CCpCpB,IAAMqT,GAAMjF,KAAMjwB,OAAO,CACrB+nD,QAAS,IACTC,iBAAiB,IAGfC,GAAkB7nF,OAAOmiD,SAASC,UAAU0lC,kBAC5CC,GAAkBF,GAAkB,yBACpCG,GAAmBH,GAAkB,cACrCI,GAAqBJ,GAAkB,cACvCK,GAAuBL,GAAkB,cACzCM,GAA4BN,GAAkB,qCAC9CO,GAAsBP,GAAkB,6BACxCQ,GAAuBR,GAAkB,oCACzCS,GAAsBT,GAAkB,6BAExCU,GAAU,CACZC,8BAA+BxoF,OAAOg2B,SAASwnB,OAC/CirC,eAAgB,oBAGdC,GAAuB,uBAMRC,eACjB,SAAAA,IAAqB,IAAAj8C,EAAAhoB,qCAAAikE,4DAAAC,CAAAxzE,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAm8C,GAAAF,IAAAhqF,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,QADiB0zE,GAAAC,MAAArkE,IAAA,iBAgGJ,SAACskE,GACG,aAAbA,EACAC,GAASz4C,SAAStB,KAAK,SAACg6C,GACpBD,GAASE,gBAAgBj6C,KAAK,SAACqU,GAE3B7+B,EAAK0kE,gBAAgBJ,EAAUE,EAAWr5C,YAAaq5C,EAAWvD,UAAWpiC,EAAKmF,SAAUnF,EAAKngD,QAGrF,WAAb4lF,EACPK,GAAO74C,OAAO9rB,EAAK2oB,KAAKg8C,QAAQn6C,KAAK,SAACg6C,GAClCG,GAAOF,gBAAgBj6C,KAAK,SAACqU,GAEzB7+B,EAAK0kE,gBAAgBJ,EAAUE,EAAWr5C,YAAaq5C,EAAWvD,UAAWpiC,EAAKmF,SAAUnF,EAAKngD,OAEtG,SAAC+f,GACAhjB,QAAQC,IAAI+iB,KAEI,WAAb6lE,GACP9B,GAAO12C,SAAStB,KAAK,SAACg6C,GAClBhC,GAAOiC,gBAAgBj6C,KAAK,SAACqU,GAEzB7+B,EAAK0kE,gBAAgBJ,EAAUE,EAAWr5C,YAAaq5C,EAAWvD,UAAWpiC,EAAKmF,SAAUnF,EAAKngD,OAEtG,SAAC+f,GACAhjB,QAAQC,IAAI+iB,OAxHH2lE,GAAAC,MAAArkE,IAAA,kBA6HH,SAAC4kE,EAAgBz5C,EAAa81C,EAAWj9B,GACvD,IACM6gC,EAAwB,IAAZ5D,GADL,IAAI1yD,MACyB23C,UAE1C3f,KAAYxlC,OAEZ8pB,IAAK65C,gBAAgBE,EAAgB,CAAE50B,MAAO7kB,EAAa05C,aAAa7gC,GACnExZ,KAAK,SAACs6C,GACHrpF,QAAQC,IAAIopF,GACZ9kE,EAAK+kE,2BAA2Bv6C,KAAK,SAACw6C,GAClC,IAAMnW,EAAWmW,EAAkBvrF,KAAK4E,WACxC2hB,EAAK8rB,OAAOkY,EAAU6qB,EAAU+V,OAGvCl6C,MAAM,SAACu6C,GACJxpF,QAAQC,IAAIupF,GACA,sBAARA,GACAjlE,EAAK+kE,2BAA2Bv6C,KAAK,SAACw6C,GAClC,IAAMnW,EAAWmW,EAAkBvrF,KAAK4E,WACxC2hB,EAAKklE,qBAAqBN,EAAgB5gC,EAAU6qB,SAhJnDuV,GAAAC,MAAArkE,IAAA,WA8JV,SAAC5b,GAGR,OAFAA,EAAMkmB,mBAEFtK,EAAK2oB,KAAK7f,MAAQ9I,EAAK2oB,KAAK7f,KAAKzoB,UAAUC,SAAS,eAExD0f,EAAKmlE,oBACLnlE,EAAKolE,iBAAiB56C,KAAK,WAGvB,GAFA+b,KAAYxlC,OAEU,aAAlBf,EAAKqlE,SAAyB,CAC9B,IAAMvuC,EAAQ92B,EAAKu3B,SAAS+tC,MAAQtlE,EAAKu3B,SAAS+tC,MAAQ,GACpDnxC,EAAYn0B,EAAKu3B,SAASguC,UAC1BnxC,EAAWp0B,EAAKu3B,SAASiuC,QACzBzoC,EAAQ/8B,EAAKu3B,SAASkuC,aAAa3hF,cACnC23C,EAAU,CACZjJ,aAAcxyB,EAAKu3B,SAASmuC,aAAe1lE,EAAKu3B,SAASmuC,aAAe,GACxEjzC,aAAczyB,EAAKu3B,SAASouC,aAAe3lE,EAAKu3B,SAASouC,aAAe,GACxE9pC,SAAU77B,EAAKu3B,SAASquC,SAAW5lE,EAAKu3B,SAASquC,SAAW,GAC5DjzC,KAAM3yB,EAAKu3B,SAASsuC,KAAO7lE,EAAKu3B,SAASsuC,KAAO,GAChDjzC,QAAS5yB,EAAKu3B,SAASuuC,QACvBjzC,OAAQ7yB,EAAKu3B,SAASwuC,OAAS/lE,EAAKu3B,SAASwuC,OAAS,IAEpD/uC,EAAch3B,EAAK+2B,iBACnB83B,EAAW7uD,EAAKu3B,SAASyuC,SACzBC,EAAYjmE,EAAKkmE,kBACjBC,EAAyBnmE,EAAKomE,wBAC9Bl8C,EAAS,CACXiR,2BAA4BgrC,EAAuBE,0BACnDjrC,0BAA2B+qC,EAAuBG,2BAClDn8C,sBAAuBg8C,EAAuBI,uBAE5CpoC,IAAkBn+B,EAAK2oB,KAAKwV,iBAAkBn+B,EAAK2oB,KAAKwV,gBAAgBtjD,MACxE2rF,EAA0E,SAAhDxmE,EAAKxH,aAAawH,EAAKxhB,QAAS,YAC1DioF,EAAmBzmE,EAAKxhB,QAAQqd,cAAc,4CAA8CmE,EAAKxhB,QAAQqd,cAAc,4CAA4ChhB,MAAQ,GAE3K6rF,EAAa,CACf7nC,KAAM,CACF/H,QACAiG,QACA5I,YACAC,WACAqH,UACAzE,cACA9M,SACA+7C,YACAhjC,mBAAoB,GACpB9E,mBAEJ0wB,WACA2X,yBACAG,WAhBe3mE,EAAKu3B,SAASovC,YAmBjC3mE,EAAK4mE,SAASF,EAAYD,QACvB,GAAsB,mBAAlBzmE,EAAKqlE,SAA+B,CAC3C,IACMlxC,EAAYn0B,EAAKu3B,SAASguC,UAC1BnxC,EAAWp0B,EAAKu3B,SAASiuC,QACzBxuC,EAAch3B,EAAK+2B,iBACnBgG,EAAQ/8B,EAAKu3B,SAASkuC,aAAa3hF,cACnC23C,EAAU,CACZ7I,QAAS5yB,EAAKu3B,SAASuuC,QACvBjzC,OAAQ7yB,EAAKu3B,SAASwuC,OAAS/lE,EAAKu3B,SAASwuC,OAAS,IAEpDlX,EAAW7uD,EAAKu3B,SAASyuC,SACzBG,EAAyBnmE,EAAKomE,wBAC9Bl8C,EAAS,CACXiR,2BAA4BgrC,EAAuBE,0BACnDjrC,0BAA2B+qC,EAAuBG,2BAClDn8C,sBAAuBg8C,EAAuBI,uBAI5CE,EAAmBzmE,EAAKxhB,QAAQqd,cAAc,4CAA8CmE,EAAKxhB,QAAQqd,cAAc,4CAA4ChhB,MAAQ,GAC3K6rF,EAAa,CACf7nC,KAAM,CACF/H,MArBM,GAsBNiG,QACA5I,YACAC,WACA4C,cACAyE,UACAvR,SACA+Y,mBAAoB,GACpB9E,iBAbgB,GAepB0wB,WACA2X,wBAf2B,GAkB/BxmE,EAAK4mE,SAASF,EAAYD,QACvB,GAAsB,WAAlBzmE,EAAKqlE,SAAuB,CACnC,IAAMrhC,EAAWhkC,EAAKu3B,SAASkuC,aAAa3hF,cACtC+qE,EAAW7uD,EAAKu3B,SAASyuC,SACzBS,EAAmBzmE,EAAKxhB,QAAQqd,cAAc,4CAA8CmE,EAAKxhB,QAAQqd,cAAc,4CAA4ChhB,MAAQ,GACjLmlB,EAAK8rB,OAAOkY,EAAU6qB,EAAU4X,GAGpC,OAAO,IAGJ,MAnQUrC,GAAAC,MAAArkE,IAAA,uBAiiBE,SAAC5b,GAChBA,GACAA,EAAMkmB,iBAGVtK,EAAK2oB,KAAKk+C,qBAAqBxmF,UAAUqY,OAAO,cAChDsH,EAAK2oB,KAAKm+C,oBAAoBjsF,MAAQ,GAElCmlB,EAAK+mE,eACL/mE,EAAK+mE,cAAc7wE,QAAQ,SAAC6wE,GACxBA,EAAc/kF,UAAY,GAC1B+kF,EAAc1mF,UAAUqY,OAAO,cAIvCsH,EAAK2oB,KAAK7f,KAAKzoB,UAAUgY,IAAI,aAE7B2H,EAAK2oB,KAAK6D,eAAensC,UAAUgY,IAAI,cAEvC2H,EAAKgnE,SAAWhnE,EAAK2oB,KAAK6D,eAE1BxsB,EAAKinE,uBAELjnE,EAAK8oB,YAAY9oB,EAAK2oB,KAAKu+C,qBAAsB,QAAS,SAACr4E,GACvDA,EAAEyb,iBAEFtK,EAAKolE,iBAAiB56C,KAAK,WACvB,IAAMuS,EAAQ,CACV+zB,aAAc9wD,EAAKu3B,SAASkuC,cAEhCl/B,KAAYxlC,OACZqvC,GAAIC,KAAKuzB,GAAqB7mC,EAAO,CACjC1R,QAASw4C,KAERr5C,KAAK,WACF+b,KAAYn5C,OACZ4S,EAAKmnE,mBACLnnE,EAAKonE,sBAAsBrqC,GAC3B/8B,EAAKmlE,qBACN,SAAC1mE,GACA8nC,KAAYn5C,OAERqR,EAAM+F,UAAsC,MAA1B/F,EAAM+F,SAASihC,QACjCzlC,EAAKmnE,mBACLnnE,EAAKonE,sBAAsBrqC,IACpBt+B,EAAM+F,UAAsC,MAA1B/F,EAAM+F,SAASihC,OACxCzlC,EAAKqnE,gBAAgB5oE,GAAO,GAE5BuB,EAAKqnE,gBAAgB5oE,WAjlBxB2lE,GAAAC,MAAArkE,IAAA,yBAwlBI,SAAC6+B,GACtB0H,KAAYn5C,OACZ4S,EAAK2oB,KAAK7f,KAAKzoB,UAAUgY,IAAI,aAC7B2H,EAAK2oB,KAAK2+C,iBAAiBjnF,UAAUgY,IAAI,cACzC2H,EAAKgnE,SAAWhnE,EAAK2oB,KAAK2+C,iBAC1BtnE,EAAKinE,uBAELjnE,EAAK8oB,YAAY9oB,EAAK2oB,KAAK4+C,uBAAwB,QAAS,SAAC14E,GACzDA,EAAEyb,iBAEFtK,EAAKolE,iBAAiB56C,KAAK,WACvB,IAAMg9C,EAAcxnE,EAAKu3B,SAASyuC,SAElCz/B,KAAYxlC,OACZ8pB,IAAK48C,oBACD5oC,EACA2oC,EACA,CACIzqC,MAAO8B,EAAK9B,QAElBvS,KAAK,WACH+b,KAAYn5C,OACZ4S,EAAKmnE,mBACLnnE,EAAK0nE,aACNh9C,MAAM,WACL6b,KAAYn5C,OACZ4S,EAAKqnE,gBAAgBrD,YAlnBhBI,GAAAC,MAAArkE,IAAA,mBAiqBF,SAAC5b,GAChBA,EAAMkmB,iBAENtK,EAAKolE,iBAAiB56C,KAAK,WACvB,IAAMskC,EAAc9uD,EAAKu3B,SAASowC,YAC5BH,EAAcxnE,EAAKu3B,SAASyuC,SAElChmE,EAAK4nE,iBACAp9C,KAAK,SAACwlB,GACH,IAAM3kB,EAAUrrB,EAAK6nE,uBAAuB73B,GAE5CI,GAAIC,KAAKqzB,GAAqB,CAC1B5U,cACA0Y,eACD,CACCn8C,YAECb,KAAK,WACExqB,EAAK2oB,KAAKm/C,uBACV9nE,EAAK2oB,KAAK7f,KAAKzoB,UAAUgY,IAAI,aAC7B2H,EAAK2oB,KAAKm/C,sBAAsBznF,UAAUgY,IAAI,cAC9C2H,EAAKgnE,SAAWhnE,EAAK2oB,KAAKm/C,sBAC1B9nE,EAAKmlE,oBACLnlE,EAAKinE,wBAELjnE,EAAK0nE,YAEV,SAACjpE,GACIA,EAAM+F,UAAY/F,EAAM+F,SAAS/qB,KACjCumB,EAAKqnE,gBAAgB5oE,EAAM+F,SAAS/qB,MAEpCumB,EAAKqnE,gBAAgB5oE,OAIpCisB,MAAM,WACH1qB,EAAKqnE,gBAAgBrD,UArsBhBI,GAAAC,MAAArkE,IAAA,YA0sBT,SAAC5b,GACTA,EAAMkmB,iBAENo1B,IAAYqoC,qBAAqB/nE,EAAKgoE,cAEtCtoC,IAAY5U,UACPN,KAAK,cAELE,MAAM,SAACu6C,GACJjlE,EAAKqnE,gBAAgBpC,OAntBZb,GAAAC,MAAArkE,IAAA,iBAutBJ,SAAC5b,GACdA,EAAMkmB,iBAENtK,EAAKolE,iBAAiB56C,KAAK,WACvB,IACMy9C,EADyBjoE,EAAKomE,wBACM8B,kBAE1CloE,EAAK4nE,iBAAiBp9C,KAAK,SAACwlB,GACxB,IAAMm4B,EAAuB,CACzBtpC,KAAM,CACFV,gBAAiB8pC,IAGzBjoE,EAAKooE,iBAAiBD,EAAsBn4B,SApuBnCo0B,GAAAC,MAAArkE,IAAA,mBAyuBF,SAAC5b,GAChBA,EAAMkmB,iBAENtK,EAAKolE,iBAAiB56C,KAAK,WACvB,IAAM27C,EAAyBnmE,EAAKomE,wBAC9BH,EAAYjmE,EAAKkmE,kBAEjBh8C,EAAS,CACXiR,2BAA4BgrC,EAAuBE,0BACnDjrC,0BAA2B+qC,EAAuBG,4BAGtDtmE,EAAK4nE,iBAAiBp9C,KAAK,SAACwlB,GACxB,IAAMm4B,EAAuB,CACzBtpC,KAAM,CACFonC,YACA/7C,WAIRlqB,EAAKooE,iBAAiBD,EAAsBn4B,SA7vBnCo0B,GAAAC,MAAArkE,IAAA,kBAkwBH,SAAC5b,GACfA,EAAMkmB,iBAENtK,EAAKolE,iBAAiB56C,KAAK,WACvB,IAAMiR,EAAU,CACZjJ,aAAcxyB,EAAKu3B,SAASmuC,aAC5BjzC,aAAczyB,EAAKu3B,SAASouC,aAC5B9pC,SAAU77B,EAAKu3B,SAASquC,SACxBjzC,KAAM3yB,EAAKu3B,SAASsuC,KACpBjzC,QAAS5yB,EAAKu3B,SAASuuC,QACvBjzC,OAAQ7yB,EAAKu3B,SAASwuC,OAAS/lE,EAAKu3B,SAASwuC,OAAS,IAG1D/lE,EAAK4nE,iBAAiBp9C,KAAK,SAACwlB,GACxB,IAAMm4B,EAAuB,CACzBtpC,KAAM,CACFpD,YAIRz7B,EAAKooE,iBAAiBD,EAAsBn4B,SAtxBnCo0B,GAAAC,MAAArkE,IAAA,kBA2xBH,SAAC5b,GACfA,EAAMkmB,iBACN,IAAM0sB,EAAch3B,EAAK+2B,iBAEzB/2B,EAAKolE,iBAAiB56C,KAAK,WACvBxqB,EAAK4nE,iBAAiBp9C,KAAK,SAACwlB,GACxB,IAAMm4B,EAAuB,CACzBtpC,KAAM,CACF/H,MAAO92B,EAAKu3B,SAAS+tC,MACrBnxC,UAAWn0B,EAAKu3B,SAASguC,UACzBnxC,SAAUp0B,EAAKu3B,SAAS8wC,SACxBtrC,MAAO/8B,EAAKu3B,SAAS+wC,MACrBtxC,gBAIRh3B,EAAKooE,iBAAiBD,EAAsBn4B,SA3yBnCo0B,GAAAC,MAAArkE,IAAA,oBAgzBD,SAAC5b,GACjBA,EAAMkmB,iBAENtK,EAAKolE,iBAAiB56C,KAAK,WAEvB,IAAIwM,EADJh3B,EAAKinE,uBAIDjwC,EADAh3B,EAAKxhB,QAAQqd,cAAc,iCACbmE,EAAK+2B,iBAEL/2B,EAAKxhB,QAAQqd,cAAc,sBAAsBhhB,MAGnE,IAAMs5C,EAAYn0B,EAAKu3B,SAASguC,UAC1BnxC,EAAWp0B,EAAKu3B,SAAS8wC,SAEzBpC,EAAYjmE,EAAKkmE,kBAEjBzqC,EAAU,CACZjJ,aAAcxyB,EAAKu3B,SAASmuC,aAC5BjzC,aAAczyB,EAAKu3B,SAASouC,aAC5B9pC,SAAU77B,EAAKu3B,SAASquC,SACxBjzC,KAAM3yB,EAAKu3B,SAASsuC,KACpBjzC,QAAS5yB,EAAKu3B,SAASuuC,QACvBjzC,OAAQ7yB,EAAKu3B,SAASwuC,OAAS/lE,EAAKu3B,SAASwuC,OAAS,IAG1D/lE,EAAK4nE,iBAAiBp9C,KAAK,SAACwlB,GACxB,IAAMm4B,EAAuB,CACzBtpC,KAAM,CACF/H,MAAO92B,EAAKu3B,SAAS+tC,MACrBnxC,YACAC,WACAqH,UACAzE,cACAivC,aAEJO,yBAAwBxmE,EAAK2oB,KAAK69C,wBAAyBxmE,EAAK2oB,KAAK69C,uBAAuB3rF,OAGhGmlB,EAAKmnE,mBACLnnE,EAAKooE,iBAAiBD,EAAsBn4B,SAz1BnCo0B,GAAAC,MAAArkE,IAAA,kBA81BH,WACdA,EAAKuoE,iBAAiBvO,UACtBh6D,EAAKwoE,aAAe,KACpBxoE,EAAKuoE,iBAAiBE,OAAOvyE,QAAQ,SAACwyE,GAClC,IAAMvuF,EAAOuuF,EAAMC,SAAS,GAAGxuF,KAC/B,GAAIA,EAAM,CACN,IAAMyuF,EAAYzuF,EAAKyL,UAAUzL,EAAKkH,QAAQ,KAAO,GACrD2e,EAAKu3B,SAASqxC,GAAaF,EAAMC,SAAS,GAAG9tF,SAIrD,IAAMguF,EAAe,CACjB/X,aAAc9wD,EAAKu3B,SAASkuC,aAAezlE,EAAKu3B,SAASkuC,aAAezlE,EAAKu3B,SAAS+wC,OAEpFQ,EAAYviF,KAAKE,UAAUoiF,GAEjCz4B,GAAIC,KAAKgzB,GAAiByF,EAAW,CACjCz9C,QAASw4C,KAERr5C,KAAK,WACF,IAAMu+C,EAAY/oE,EAAK2oB,KAAKqgD,WAAWntE,cAAc,MACjDktE,GACAA,EAAUrwE,WAGjBgyB,MAAM,SAACjsB,GAC0B,MAA1BA,EAAM+F,SAASihC,OACfzlC,EAAKipE,eAAejpE,EAAK2oB,KAAKqgD,WAAYvqE,EAAM+F,SAAS/qB,MAEzDumB,EAAKqnE,gBAAgBrD,QAx3BjChkE,EAAKu3B,SAAW,GAChBv3B,EAAKgnE,SAAWhnE,EAAK2oB,KAAK7f,KAAO9I,EAAK2oB,KAAK7f,KAAO9I,EAAKxhB,QAEvD2iD,IAAc3iC,OAEdwB,EAAKinE,uBAELjnE,EAAKkpE,SACLlpE,EAAKmpE,cACLnpE,EAAK6oB,eAZY7oB,qPADqBopE,yCAkBtC14E,KAAK24E,mBAAqB34E,KAAK8H,aAAa9H,KAAKlS,QAAS,cAC1DkS,KAAK44E,qBAAuB54E,KAAK8H,aAAa9H,KAAKlS,QAAS,wBAC5DkS,KAAKs3E,aAAet3E,KAAKi4B,KAAKmC,QAAUp6B,KAAK8H,aAAa9H,KAAKi4B,KAAKmC,QAAS,WAAa,GAC1Fp6B,KAAK64E,qBAAuB,0CAI5B74E,KAAKk3E,iBAE2C,aAA5Cl3E,KAAK8H,aAAa9H,KAAKlS,QAAS,SAChCkS,KAAK20E,SAAW,WAChB30E,KAAKs2E,SAAWt2E,KAAKi4B,KAAK7f,MACyB,mBAA5CpY,KAAK8H,aAAa9H,KAAKlS,QAAS,SACvCkS,KAAK20E,SAAW,iBAChB30E,KAAKs2E,SAAWt2E,KAAKi4B,KAAK7f,MACyB,WAA5CpY,KAAK8H,aAAa9H,KAAKlS,QAAS,UACvCkS,KAAK20E,SAAW,SAChB30E,KAAKo4B,YAAYp4B,KAAKi4B,KAAK6gD,mBAAoB,QAAS94E,KAAK+4E,sBAC7D/4E,KAAKs2E,SAAWt2E,KAAKi4B,KAAK7f,6CAK9BpY,KAAKo4B,YAAYp4B,KAAKlS,QAAS,SAAUkS,KAAKg5E,UAE1Ch5E,KAAKi4B,KAAKghD,cACVj5E,KAAKo4B,YAAYp4B,KAAKi4B,KAAKghD,aAAc,QAASj5E,KAAKg5E,UAGvDh5E,KAAKi4B,KAAKihD,gBACVl5E,KAAKo4B,YAAYp4B,KAAKi4B,KAAKihD,eAAgB,QAASl5E,KAAKm5E,gBAGzDn5E,KAAKi4B,KAAKmC,SACVp6B,KAAKo4B,YAAYp4B,KAAKi4B,KAAKmC,QAAS,QAASp6B,KAAK4wC,WAGlD5wC,KAAKi4B,KAAKmhD,cACVp5E,KAAKo4B,YAAYp4B,KAAKi4B,KAAKmhD,aAAc,QAASp5E,KAAKq5E,kBAGvDr5E,KAAKi4B,KAAKkE,gBACVn8B,KAAKo4B,YAAYp4B,KAAKi4B,KAAKkE,eAAgB,QAASn8B,KAAKs5E,kBAGzDt5E,KAAKi4B,KAAKshD,qBACVv5E,KAAKo4B,YAAYp4B,KAAKi4B,KAAKshD,oBAAqB,QAASv5E,KAAKw5E,iBAG9Dx5E,KAAKi4B,KAAKwhD,qBACVz5E,KAAKo4B,YAAYp4B,KAAKi4B,KAAKwhD,oBAAqB,QAASz5E,KAAK05E,iBAG9D15E,KAAKi4B,KAAK0hD,uBACV35E,KAAKo4B,YAAYp4B,KAAKi4B,KAAK0hD,sBAAuB,QAAS35E,KAAK45E,mBAGhE55E,KAAKi4B,KAAKqgD,YACVt4E,KAAKo4B,YAAYp4B,KAAKi4B,KAAKqgD,WAAY,WAAYt4E,KAAK65E,yDAIhD,IAAAtqE,EAAAvP,KACZ6zE,GAAS9C,KAAK/wE,KAAKwO,QAAQqlE,SAAS/D,OAAOh2C,KAAK,WACvCvqB,EAAK0oB,KAAK47C,UACftkE,EAAK6oB,YAAY7oB,EAAK0oB,KAAK47C,SAAU,QAAStkE,EAAKuqE,eAAehtE,KAAKyC,EAAM,eAGjF0kE,GAAOlD,KAAK/wE,KAAKwO,QAAQylE,OAAO8F,UAAUjgD,KAAK,WACtCvqB,EAAK0oB,KAAKg8C,QACf1kE,EAAKuqE,eAAe,YAGxBhI,GAAOf,KAAK/wE,KAAKwO,QAAQsjE,OAAOiI,UAAUjgD,KAAK,WACtCvqB,EAAK0oB,KAAK65C,QACfviE,EAAK6oB,YAAY7oB,EAAK0oB,KAAK65C,OAAQ,QAASviE,EAAKuqE,eAAehtE,KAAKyC,EAAM,yDA2D3EvP,KAAKq2E,eACLr2E,KAAKq2E,cAAc7wE,QAAQ,SAAC6wE,GACxBA,EAAc1mF,UAAUqY,OAAO,+CA6GlCguE,EAAYD,GAAkB,IAAAtmE,EAAAzP,KACnC0/C,GAAIC,KAAKizB,GAAkBoD,EAAY,CACnCr7C,QAASw4C,KAERr5C,KAAK,SAACt3B,GACHqzC,KAAYn5C,OACZ+S,EAAKgnE,mBACL,IAAM3zD,EAAS12B,IAAIoW,EAAOzZ,KAAM,SAAU,MACtC+5B,EACArT,EAAKknE,gBAAgB7zD,EAAOk3D,SAC2B,SAAhDvqE,EAAK3H,aAAa2H,EAAK3hB,QAAS,YACvC2hB,EAAK2rB,OAAO46C,EAAW7nC,KAAK9B,MAAO2pC,EAAW7X,SAAU4X,GAExD/mC,IAAY5U,UACPN,KAAK,WACFrqB,EAAKwqE,uBAERjgD,MAAM,SAACu6C,GACJ9kE,EAAKknE,gBAAgBpC,MAGlC,SAACA,GAC4B,MAAxBA,EAAIzgE,SAASihC,QACbc,KAAYn5C,OACZ+S,EAAKknE,gBAAgBpC,EAAIzgE,SAAS/qB,QAElC8sD,KAAYn5C,OACZ+S,EAAKknE,gBAAgBrD,0DAMjC,OAAO5zB,GAAItzD,IA3SW,0CA4SjB0tC,KAAK,SAAChmB,GACH,OAAOqrC,QAAQC,QAAQtrC,IACxB,SAAC/F,GACA,OAAOoxC,QAAQE,OAAOtxC,oCAI3BulC,EAAU6qB,EAAU4X,GAAuC,IAAAjmE,EAAA9P,KAArBk0E,EAAqBtlF,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAJ,GACpDsrF,EAAW5mC,EAASjiD,OAE1B2O,KAAKuwC,cAAczW,KAAK,WACpBK,IAAKiB,OAAO8+C,EAAU/b,GAAUrkC,KAAK,SAACqU,GAGlC,GAFAr+B,EAAKq+B,KAAOA,EAEe,YAAvBA,EAAKgsC,eACkB,uBAAvBhsC,EAAKgsC,oBAYF,GAA2B,0BAAvBhsC,EAAKgsC,cACZrqE,EAAKsqE,uBAAuBjsC,QACzB,GAA2B,cAAvBA,EAAKgsC,cAIZhgD,IAAKkgD,UAAUlsC,OACZ,CAEH,IAAMiyB,EAAe9sB,EACfgC,EAAYxlC,EAAKmoB,KAAKqd,UAAYxlC,EAAKmoB,KAAKqd,UAAUnrD,MAAQ,IAC9DmwF,EAAuBxqE,EAAKmoB,KAAKqiD,qBAAuBxqE,EAAKmoB,KAAKqiD,qBAAqBnwF,MAAQ,IAErG2lB,EAAKonE,iBAAiBp9C,KAAK,SAACwlB,GACxBxvC,EAAKkmC,eAAesJ,GAAOxlB,KAAK,SAACgM,GAC7B,IAAMy0C,EAAuB,CACzBna,eACAjC,WACA7oB,YACAglC,uBACAE,2BAA4BzE,GAGhC,GAAoD,SAAhDjmE,EAAKhI,aAAagI,EAAKhiB,QAAS,YAChC,GAAIg4C,EAAYyM,mBACZziC,EAAK2qE,cAAcF,QAChB,GAAKzqE,EAAK4qE,2BAA2B50C,GAErC,CACH,IAAMnL,EAAU7qB,EAAKqnE,uBAAuB73B,GAE5CI,GAAIC,KAAKozB,GAA2B,CAAE3S,eAAcjC,YAAY,CAC5DxjC,YAECb,KAAK,WACFhqB,EAAK2qE,cAAcF,IACpB,WACCzqE,EAAK6mE,gBAAgBrD,WAV7B98B,aAAW1mC,EAAK8oE,2BAcpB9oE,EAAK2mE,mBACL3mE,EAAKknE,iBAKtB,SAACzC,GACiB,8BAAbA,EAAIhtC,MAAwC2sC,EAI5CpkE,EAAK0kE,qBAAqBN,EAAgB5gC,EAAU6qB,GAChC,8BAAboW,EAAIhtC,KACXz3B,EAAKmqE,mBAAmB3mC,EAAU6qB,GACd,mCAAboW,EAAIhtC,KAIXz3B,EAAKipE,uBACe,0BAAbxE,EAAIhtC,MAAoC2sC,EAC/CpkE,EAAK0kE,qBAAqBN,EAAgB5gC,EAAU6qB,GAChC,0BAAboW,EAAIhtC,KACXz3B,EAAK6mE,gBAxYY,2DA0YjB7mE,EAAK6mE,gBAAgBpC,6CAMvBoG,GAAe,IAAA5qE,EAAA/P,KACnB6mC,EAAW+zC,KAAG7kF,UAAU4kF,GAE9BhhD,MAAM35B,KAAK24E,mBAAoB,CAC3Bh+C,QAAS,CACLC,eAAgB,qCAEpBF,OAAQ,OACRpoC,KAAMu0C,IACP/M,KAAK,SAAChmB,GACL,GAAIA,EAAS8yD,GACT,OAAO9yD,EAAS+mE,OAGpB,MAAM,IAAIt3E,MAAM,6BACjBu2B,KAAK,SAAC/wC,GAEL,GADAgnB,EAAK0mE,mBA7ZS,gBA8ZV1tF,EAAKqb,OAA8B,CACnC,IAAM02E,EAAa/xF,EAAK2tC,QAAQnhC,MAAM,kCAEtC,IAAKulF,IAAeA,EAAWrtF,OAC3B,MAAM,IAAI8V,MAAM,gCAGpB,IAAMw3E,EAAWC,KAAW9rF,cAAc4rF,EAAW,IAErD7rF,SAASqD,KAAKhD,YAAYyrF,GAC1BA,EAASE,+DAKM9sC,GACvB,OACIA,EAAK/H,OACL+H,EAAKpD,QAAQjJ,cACbqM,EAAKpD,QAAQI,UACbgD,EAAKpD,QAAQ9I,MACbkM,EAAKpD,QAAQ7I,SACbiM,EAAKonC,UAAU3sC,QACfuF,EAAK3U,OAAOC,+DAIHg+C,EAAsBn4B,GAAO,IAAAnvC,EAAAnQ,KAC1C61C,KAAYxlC,OAEZ,IAAMsqB,EAAU36B,KAAKm3E,uBAAuB73B,GAE5CI,GAAIw7B,IAAIrI,GAAoB4E,EAAsB,CAC9C98C,YAECb,KAAK,WACF+b,KAAYn5C,OACZyT,EAAK6mE,YACN,SAACzC,GACAxpF,QAAQC,IAAI6K,KAAKE,UAAUw+E,EAAIzgE,SAAS/qB,KAAK+5B,SAC7C+yB,KAAYn5C,OACgB,MAAxB63E,EAAIzgE,SAASihC,OACb5kC,EAAKwmE,gBAAgBpC,EAAIzgE,SAAS/qB,KAAK+5B,QAEvC3S,EAAKwmE,gBAAgBrD,iDAKlBhgC,EAAU6qB,GACsB,SAA3Cn+D,KAAKwO,QAAQ2sE,0BACbn7E,KAAKo7E,0BAA0B9nC,EAAU6qB,GAEzCn+D,KAAKq7E,uEAIa/nC,EAAU6qB,GAAU,IAAAztD,EAAA1Q,KAC1CA,KAAKi4B,KAAK7f,KAAKzoB,UAAUgY,IAAI,aAC7B3H,KAAKi4B,KAAKqjD,SAAS3rF,UAAUgY,IAAI,cACjC3H,KAAKs2E,SAAWt2E,KAAKi4B,KAAKqjD,SAC1Bt7E,KAAKu2E,uBAELv2E,KAAKo4B,YAAYp4B,KAAKi4B,KAAKsjD,uBAAwB,QAAS,SAAC7nF,GACzDA,EAAMkmB,iBAEN,IAAM2tB,EAAO72B,EAAKunB,KAAKsP,KAAKp9C,MAY5B,OAXA0rD,KAAYxlC,OAEZ8pB,IAAKqhD,cAAcloC,EAAU/L,GACxBzN,KAAK,WACFppB,EAAK0qB,OAAOkY,EAAU6qB,KAEzBnkC,MAAM,SAACu6C,GACJ1+B,KAAYn5C,OACZgU,EAAKimE,gBAAgBpC,MAGtB,iDAKX1+B,KAAYn5C,OACZsD,KAAKi4B,KAAK7f,KAAKzoB,UAAUgY,IAAI,aAC7B3H,KAAKi4B,KAAKwjD,eAAe9rF,UAAUgY,IAAI,cACvC3H,KAAKi4B,KAAKd,SAASxnC,UAAUqY,OAAO,2DAGnBksE,EAAgB5gC,EAAU6qB,GAAU,IAAAhtD,EAAAnR,KACrD61C,KAAYn5C,OACZsD,KAAKi4B,KAAK7f,KAAKzoB,UAAUgY,IAAI,aAC7B3H,KAAKi4B,KAAKd,SAASxnC,UAAUgY,IAAI,cACjC3H,KAAKs2E,SAAWt2E,KAAKi4B,KAAKd,SAC1Bn3B,KAAKu2E,uBAELv2E,KAAKo4B,YAAYp4B,KAAKi4B,KAAKyjD,eAAgB,QAAS,SAAChoF,GACjDA,EAAMkmB,iBAENzI,EAAKujE,iBAAiB56C,KAAK,WACvB,IAAM2J,EAAYtyB,EAAK01B,SAASguC,UAC1BnxC,EAAWvyB,EAAK01B,SAASiuC,QACzBzoC,EAAQl7B,EAAK01B,SAASkuC,aACtBU,EAAyBtkE,EAAKukE,wBAC9Bl8C,EAAS,CACXiR,2BAA4BgrC,EAAuBE,0BACnDjrC,0BAA2B+qC,EAAuBG,2BAClDn8C,sBAAuBg8C,EAAuBI,uBAE5CN,EAAYpkE,EAAKqkE,kBAoBvB,OAjBArkE,EAAK+kE,SAAS,CACV/nC,KAAM,CACF/H,MAAO,GACPiG,QACA5I,YACAC,WACAqH,QAAS,GACTzE,YAAa,GACb9M,SACA+7C,YACAhjC,mBAAoB,GACpB9E,iBAbgB,GAepB0wB,WACA2X,wBAAwB,KAGrB,oDA4FGzpC,GAAO,IAAA/6B,EAAAtR,KACzBA,KAAKi4B,KAAK7f,KAAKzoB,UAAUgY,IAAI,aAC7B3H,KAAKi4B,KAAK6D,eAAensC,UAAUqY,OAAO,cAC1ChI,KAAKi4B,KAAKqjD,SAAS3rF,UAAUgY,IAAI,cACjC3H,KAAKs2E,SAAWt2E,KAAKi4B,KAAKqjD,SAC1Bt7E,KAAKu2E,uBAELv2E,KAAKi4B,KAAKsP,KAAKp9C,MAAQ,GACvB6V,KAAKi4B,KAAK0jD,iBAAiBxxF,MAAQ,GACnC6V,KAAKi4B,KAAK2jD,wBAAwBzxF,MAAQ,GAE1C6V,KAAKo4B,YAAYp4B,KAAKi4B,KAAK4jD,WAAY,QAAS,SAACnoF,GAC7CA,EAAMkmB,iBAENtI,EAAKojE,iBAAiB56C,KAAK,WACvB+b,KAAYxlC,OAEZqvC,GAAIC,KAAKszB,GAAsB,CAC3B7S,aAAc/zB,EAAM+zB,aACpB0b,iBAAkBxqE,EAAKu1B,SAASk1C,KAChCjF,YAAaxlE,EAAKu1B,SAASyuC,UAC5B,CACC36C,QAASw4C,KAERr5C,KAAK,WACF+b,KAAYn5C,OACZ4U,EAAKmlE,mBACLnlE,EAAK2mB,KAAKk+C,qBAAqBxmF,UAAUgY,IAAI,cAC7C2J,EAAK2mB,KAAK7f,KAAKzoB,UAAUqY,OAAO,aAChCsJ,EAAK2mB,KAAKqjD,SAAS3rF,UAAUqY,OAAO,cACpCsJ,EAAKmjE,oBACLnjE,EAAKglE,SAAWhlE,EAAK2mB,KAAK7f,KAC1B9G,EAAKilE,wBACN,SAAChC,GACA1+B,KAAYn5C,OACZ4U,EAAKqlE,gBAAgBpC,EAAIzgE,SAAS/qB,qDAqOrC,IAAAyoB,EAAAxR,KACb,OAAO,IAAIm/C,QAAQ,SAACC,GAChB5tC,EAAKqmE,iBAAiBvO,UACtB93D,EAAKsmE,aAAe,KACpBtmE,EAAKqmE,iBAAiBE,OAAOvyE,QAAQ,SAACwyE,GAClC,IAAMvuF,EAAOuuF,EAAMC,SAAS,GAAGxuF,KAC/B,GAAIA,EAAM,CACN,IAAMyuF,EAAYzuF,EAAKyL,UAAUzL,EAAKkH,QAAQ,KAAO,GACrD6gB,EAAKq1B,SAASqxC,GAAaF,EAAMC,SAAS,GAAG9tF,SAIrDqnB,EAAKqmE,iBAAiBmE,GAAG,cAAexqE,EAAKyqE,eACJ,IAArCzqE,EAAKqmE,iBAAiBqE,YACtB98B,sDAYR,OANyB+8B,GAAIn8E,KAAKs2E,SAAS7lF,iBAAiB,2BAMpCkE,OAAO,SAAC6N,EAAQ45E,GAJxC,IAAyB3yF,EAQrB,OARqBA,EAKA2yF,EAAS3yF,KAJvB,eAAe0K,KAAK1K,KAKvB+Y,EAAO45E,EAAS3yF,MAAQ2yF,EAAStkC,SAE9Bt1C,GACR,8CAGW65E,GAAU,IAAA7pE,EAAAxS,KACpBA,KAAKq2E,eACLr2E,KAAKq2E,cAAc7wE,QAAQ,SAAC6wE,GACxB,GAAIrqF,OAAOkK,KAAKmmF,GAAU5uF,OAAQ,CAC9B,IAAMq1B,EAAS92B,OAAOkK,KAAKmmF,GAAU1nF,OAAO,SAAC2nF,EAAa5nF,GAAd,SAAAzJ,OAAAkxF,GACpCG,GADoCH,GACpBE,EAAS3nF,MAAO,IACxC2hF,EAAc/kF,UAAYirF,KAAsB,CAAEz5D,WAClDuzD,EAAc1mF,UAAUgY,IAAI,iBAE5B6K,EAAKiiE,8DAMLF,GAAmB,IAAdxrF,EAAc6F,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,IAAAA,UAAA,GAC/BinD,KAAYn5C,OAERsD,KAAKq2E,eACLr2E,KAAKq2E,cAAc7wE,QAAQ,SAAC6wE,GAEpBA,EAAc/kF,UADdvI,EAC0BwrF,EAAIzgE,SAAS/qB,KAAOwrF,EAAIzgE,SAAS/qB,KAAOwrF,EAExCA,EAAI3xB,QAAU2xB,EAAI3xB,QAAU2xB,EAG1D8B,EAAc1mF,UAAUgY,IAAI,qDAKzBqxD,EAAcl2C,GAAQ,IAAA7P,EAAAjT,KAC3Bw8E,EAAexjB,EAAa7tD,cAAc,MAC5CqxE,GACAA,EAAax0E,SAEjB,IAAMqwE,EAAYppF,SAASC,cAAc,MACzCmpF,EAAU1oF,UAAUgY,IAAI,0BACxB0wE,EAAU1oF,UAAUgY,IAAI,UACxBqxD,EAAa1pE,YAAY+oF,GACH,iBAAXv1D,EACP9iB,KAAKy8E,gBAAgB35D,EAAQu1D,GACJ,WAAlBqE,GAAO55D,IACd92B,OAAO+kB,OAAO+R,GAAQtd,QAAQ,SAACuI,GAC3BkF,EAAKwpE,gBAAgB1uE,EAAOsqE,6CAKxBtqE,EAAOsqE,GACnB,IAAMsE,EAAY1tF,SAASC,cAAc,MACzCytF,EAAUhtF,UAAUgY,IAAI,0BACxBg1E,EAAUrrF,UAAYyc,EACtBsqE,EAAU/oF,YAAYqtF,sCAItB,IAAMrnC,EAAYt1C,KAAKi4B,KAAKqd,UAAYt1C,KAAKi4B,KAAKqd,UAAUnrD,MAAQ6V,KAAK8H,aAAa9H,KAAKlS,QAAS,cAEpG0oD,aAAWlB,GAAat1C,KAAK64E,iEAIzB74E,KAAK8H,aAAa9H,KAAKs2E,SAAU,UACjCsG,KAAI9nF,KAAKkL,KAAK68E,mBAAoB78E,KAAK88E,iBAAkB98E,KAAK+8E,gEAI/C,IAAAzoE,EAAAtU,KACfA,KAAKi4B,KAAK+kD,aAAeh9E,KAAK8H,aAAa9H,KAAKs2E,SAAU,UAC1Dt2E,KAAKi4B,KAAK+kD,YAAYx3E,QAAQ,SAACwyE,GACvB1jE,EAAKgiE,SAAS1mF,SAASooF,IACvBA,EAAM7/D,iBAAiB,UAAW7D,EAAK2oE,uEAMjC9+E,GAClB,IAAMpO,EAASoO,EAAEpO,OACjB,GAAIiQ,KAAKi4B,KAAK+kD,cAA0D,IAA3Ch9E,KAAKi4B,KAAK+kD,YAAYrsF,QAAQZ,GAAgB,CACvE,IAAM7F,EAAQ8V,KAAK8H,aAAa/X,EAAQ,eACpC7F,GACA0yF,KAAI9nF,KAAKkL,KAAK68E,mBAAoB,cAAe3yF,mDAKtCo1D,GACnB,OAAO49B,GAAc/J,GAAS,CAAEgK,cAAe,UAAY79B,+CAK3D,OADAt/C,KAAKo9E,eAAiBp9E,KAAK8H,aAAa9H,KAAKs2E,SAAU,kBAChDt2E,KAAKo9E,wDAKZ,OADAp9E,KAAKq9E,aAAer9E,KAAK8H,aAAa9H,KAAKs2E,SAAU,gBAC9Ct2E,KAAKq9E,qDAKZ,OADAr9E,KAAKs9E,YAAct9E,KAAK8H,aAAa9H,KAAKs2E,SAAU,eAC7Ct2E,KAAKs9E,qDAIZ,OAAOtuC,IAAYkoC,wDAGR53B,GAAO,IAAA3qC,EAAA3U,KACZ26B,EAAU36B,KAAKm3E,uBAAuB73B,GAE5C,OAAOI,GAAItzD,IAAI0mF,GAAsB,CACjCn4C,YAECb,KAAK,SAAChmB,GACH,OAAOqrC,QAAQC,QAAQtrC,EAAS/qB,QAEnCixC,MAAM,WACHrlB,EAAKgiE,gBAAgBrD,4CAInB,IAAA/9D,EAAAvV,KACV,OAAOm6B,IAAKK,iBACPV,KAAK,WACFkV,IAAY5U,UAAUJ,MAAM,SAACu6C,GACzBh/D,EAAKohE,gBAAgBpC,OAG5Bv6C,MAAM,WACH,OAAOmlB,QAAQC,qDAKvB,IAAMlb,EAAMlkC,KAAKlS,QAAQqd,cAAc,iCAAiChhB,MAClE85C,EAAQjkC,KAAKlS,QAAQqd,cAAc,mCAAmChhB,MACtE65C,EAAOhkC,KAAKlS,QAAQqd,cAAc,kCAAkChhB,MAC1E,SAAAc,OAAU+4C,EAAV,KAAA/4C,OAAkBg5C,EAAlB,KAAAh5C,OAA2Bi5C,6CAI3B,IAAMqxC,EAAY,CACd3sC,OAAQ,IAOZ,OALA5oC,KAAKi4B,KAAK2Q,OAAOpjC,QAAQ,SAAC+3E,GAClBA,EAAMzlC,SACNy9B,EAAU3sC,OAAO9zC,KAAKyoF,EAAMpzF,SAG7BorF,gMCjmCfh9C,IAAkBC,cAAchE,OAAO,OAAQkkD,MAC/CngD,IAAkBC,cAAchE,OAAO,WAAY++C,wCCP9BiK,cACjB,SAAAA,EAAY1vF,EAAS0gB,oCAASgvE,4DAAAC,CAAAz9E,MAC1BA,KAAKlS,QAAUA,EAEf,IAAM4Z,EAAa1H,KAAKlS,QAAQoa,SAC5BR,IACA1H,KAAKlS,QAAQoa,UAAW,GAG5BlI,KAAK09E,gBAAkB,IAAI9yF,OAAO4f,QAAQ1c,EAAS0gB,GAC/C9G,IACA1H,KAAKlS,QAAQoa,UAAW,EACxBlI,KAAK09E,gBAAgBtvE,WAGzBpO,KAAKm4B,0EAIL,OAAOn4B,KAAK09E,uDAGD,IAAApuE,EAAAtP,KACXA,KAAK4E,SAAW,IAAI+4E,iBAAiB,SAACC,GAClCA,EAAUp4E,QAAQ,SAACq4E,GACO,eAAlBA,EAASxvF,MAAoD,aAA3BwvF,EAASC,eAC3CxuE,EAAKyuE,sBAAsBzuE,EAAKxhB,QAAQoa,cAIpDlI,KAAK4E,SAASo5E,QAAQh+E,KAAKlS,QAAS,CAAEwgD,YAAY,kDAGhC5mC,GACdA,EACA1H,KAAK09E,gBAAgBtvE,UAErBpO,KAAK09E,gBAAgB/uE,2CAKzB3O,KAAK4E,SAASq5E,w2BCrCDC,eACjB,SAAAA,IAAqB,IAAA5mD,EAAAhoB,qCAAA4uE,4DAAAC,CAAAn+E,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAA8mD,GAAAF,IAAA30F,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,yPAD8B0oB,oDAQ/C,MAAO,CAAC,8CAGL,IAAAzoB,EAAAvP,KACHA,KAAKq+E,uBAAyB,IAAIb,GAAex9E,KAAKi4B,KAAKqmD,OAAQ,CAC/D5kF,iBAAkBsG,KAAKwO,QAAQ5c,YAC/BgH,iBAAmB,qBAAsBoH,KAAKwO,SAAWxO,KAAKwO,QAAQ5V,iBACtEW,YAAY,EACZW,eAAgB,GAChBU,WAAY,CACR5C,YAAa,mBAEjB2C,0BAR+D,SAQrC1J,GACtB,IAAMiJ,EAAiB8F,KAAK4K,OAAO1Q,eACnC,MAAO,CACHvE,KADG,SACEiF,EAAY7R,EAAM6P,GACnB,OAAO3H,EAAQstF,KAAiB,CAC5B3jF,aACA7R,OACA2tC,QAAS3tC,EAAKmB,MACd0O,uBAGR2B,OATG,SASIK,EAAY7R,GACf,OAAOkI,EAAQutF,KAAmB,CAC9B5jF,aACA7R,OACAmR,iBACAw8B,QAAS3tC,EAAKmB,cAMlC8V,KAAK09E,gBAAkB19E,KAAKq+E,uBAAuBI,qBAEnDz+E,KAAKi4B,KAAKqmD,OAAOnmE,iBAAiB,SAAU,WACxC5I,EAAKmuE,gBAAgB3iF,iBACtB,uCAIHiF,KAAKq+E,uBAAuB/U,4xBCnDpC/wC,IAAkBC,cAAchE,OAAO,qBAAsB0pD,wBCDxCQ,eACjB,SAAAA,IAAqB,IAAApnD,EAAAhoB,qCAAAovE,4DAAAC,CAAA3+E,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjBwJ,OAAAgoB,EAAAsnD,GAAAF,IAAAn1F,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,gDAATlR,SAEKkwB,SAAW5gB,EAAK4gB,SAASpjB,KAAd+xE,MAAAvvE,KAChBA,EAAKwvE,QAAUxvE,EAAKwvE,QAAQhyE,KAAb+xE,MAAAvvE,KACfA,EAAKyvE,OAASzvE,EAAKyvE,OAAOjyE,KAAZ+xE,MAAAvvE,KAEdA,EAAKxB,OAPYwB,yPADuB0oB,oDAYxC,MAAO,CAAC,8CAIRkX,KAAS9W,YAAY,0BAA2Bp4B,KAAKg/E,qBAAqBlyE,KAAK9M,OAE/EA,KAAKm4B,eACLn4B,KAAKi/E,2DAIL,IAAKj/E,KAAKi4B,KAAK6X,QAAS,OAAO,EAC/B9vC,KAAKi4B,KAAK6X,QAAQngD,UAAUgY,IAAI,oDAIhC3H,KAAKo4B,YAAYp4B,KAAKi4B,KAAKqmD,OAAQ,SAAUt+E,KAAKkwB,UAClDlwB,KAAKo4B,YAAYp4B,KAAKi4B,KAAKqmD,OAAQ,QAASt+E,KAAK8+E,SACjD9+E,KAAKo4B,YAAYp4B,KAAKi4B,KAAKqmD,OAAQ,OAAQt+E,KAAK++E,2CAIhD/+E,KAAKi/E,8CAOL,GAHAj/E,KAAKlS,QAAQ6B,UAAUgY,IAAI,cAC3B3H,KAAKlS,QAAQ6B,UAAUgY,IAAI,2BAEtB3H,KAAKi4B,KAAK6X,SAAW9vC,KAAKlS,QAAQ6B,UAAUC,SAAS,cACtD,OAAO,EAGXoQ,KAAKi4B,KAAK6X,QAAQngD,UAAUqY,OAAO,8CAQnC,GAJAhI,KAAKlS,QAAQ6B,UAAUqY,OAAO,cAC9BhI,KAAKlS,QAAQ6B,UAAUqY,OAAO,0BAC9BhI,KAAKi/E,aAEAj/E,KAAKi4B,KAAK6X,QAAS,OAAO,EAE/B9vC,KAAKi4B,KAAK6X,QAAQngD,UAAUgY,IAAI,iDAID,KAA3B3H,KAAKi4B,KAAKqmD,OAAOn0F,OACjB6V,KAAKlS,QAAQ6B,UAAUqY,OAAO,aAC9BhI,KAAKlS,QAAQ6B,UAAUgY,IAAI,cAE3B3H,KAAKlS,QAAQ6B,UAAUgY,IAAI,aAC3B3H,KAAKlS,QAAQ6B,UAAUqY,OAAO,mqBC/D1CuwB,IAAkBC,cAAchE,OAAO,aAAckqD,gBCFhCQ,eACjB,SAAAA,IAAqB,IAAA5nD,EAAAhoB,qCAAA4vE,4DAAAC,CAAAn/E,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAA8nD,GAAAF,IAAA31F,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACKq/E,eAAiB/vE,EAAKxhB,QAAQwxF,QAAQ1tF,aAAe,iBAC1D0d,EAAKxB,OAHYwB,yPADsB0oB,oDAQvC,MAAO,CAAC,SAAU,+CAIlBh4B,KAAKu/E,UAAYv/E,KAAKi4B,KAAKqmD,OAC3Bt+E,KAAKw/E,iBAAmBx/E,KAAKi4B,KAAKwnD,QAElCz/E,KAAKy/E,QAAUxwF,SAASC,cAAc,QACtC8Q,KAAKw/E,iBAAiBlwF,YAAY0Q,KAAKy/E,SAGvCz/E,KAAKu/E,UAAUpnE,iBAAiB,SAAUnY,KAAK0/E,aAAa5yE,KAAK9M,OACjEA,KAAK2/E,uDAIL3/E,KAAK2/E,wDAIL,IAAIF,EAEAA,EADAz/E,KAAKu/E,UAAUK,OAAS5/E,KAAKu/E,UAAUK,MAAMnyF,OAAS,EAC/C,GAAAxC,OAAM+U,KAAKu/E,UAAUK,MAAMnyF,OAA3B,mBAEGuS,KAAKu/E,UAAUp1F,MAAMsV,MAAM,MAAM4a,MAG3Cra,KAAKy/E,QAAQnuF,UADbmuF,GAGyBz/E,KAAKq/E,sDCnC1C9mD,IAAkBC,cAAchE,OAAO,YAAa0qD,urBCG/BW,eACjB,SAAAA,IAAqB,IAAAvoD,EAAAhoB,qCAAAuwE,4DAAAC,CAAA9/E,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAyoD,GAAAF,IAAAt2F,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEKo4D,UAAY9oD,EAAKd,QAAQ4pD,WAAa,GAC3C9oD,EAAKxB,OAJYwB,yPAD4B0oB,oDAS7C,MAAO,CAAC,+CAIRh4B,KAAKq+E,uBAAyB,IAAIb,GAAex9E,KAAKi4B,KAAKiK,QAAS,CAChE5pC,QAAS0H,KAAKggF,aACd/mF,eAAe,EACfM,YAAY,EACZW,eAAgB,GAChBS,0BALgE,SAKtC1J,GACtB,IAAMiJ,EAAiB8F,KAAK4K,OAAO1Q,eACnC,MAAO,CACHvE,KADG,SACEiF,EAAY7R,GACb,OAAOkI,EAAQstF,KAAiB,CAC5B3jF,aACA7R,OACA2tC,QAASupD,KAAoB,CAAErlF,aAAY7R,aAGnDwR,OARG,SAQIK,EAAY7R,GACf,OAAOkI,EAAQutF,KAAmB,CAC9B5jF,aACA7R,OACAmR,iBACAw8B,QAASwpD,KAAsB,CAAEtlF,aAAY7R,OAAMmR,gEASvE,OAAO8F,KAAKo4D,UAAUlxD,IAAI,SAAAxC,GAAA,IACtBva,EADsBua,EACtBva,MAAOD,EADewa,EACfxa,MAAOd,EADQsb,EACRtb,MADQ+2F,EAAAz7E,EACDwN,SADC,MAEnB,CACH/nB,QACAD,QACAgoB,cALsB,IAAAiuE,KAMtBj4E,UAAU,EACV/e,iBAAkB,CAAEC,gDAKxB4W,KAAKq+E,uBAAuB/U,qnBCzDpC/wC,IAAkBC,cAAchE,OAAO,mBAAoBqrD,wDCDtCO,eACjB,SAAAA,IAAqB,IAAA9oD,EAAAhoB,yCAAA8wE,4DAAAC,CAAArgF,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAgpD,GAAAF,IAAA72F,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,UAYM,WACNu4C,KAAIzjD,KAAKwa,EAAKixE,cAAejxE,EAAKkxE,YAAalxE,EAAKmxE,aAdnC,cAAAC,MAAApxE,6BAAA,2EAGjBA,EAAKqxE,SAAW,KAChBrxE,EAAKlL,OAAS,KACdkL,EAAKplB,MAAQ,KACbolB,EAAKxB,OANYwB,qPADwB0oB,sCAWzCh4B,KAAKo4B,YAAYp4B,KAAKlS,QAAS,QAASkS,KAAKs4C,+CAY7C,OAHsB,OAAlBt4C,KAAK2gF,WACL3gF,KAAK2gF,SAAW3gF,KAAK8H,aAAa9H,KAAKlS,QAAS,aAE7CkS,KAAK2gF,6CAOZ,OAHoB,OAAhB3gF,KAAKoE,SACLpE,KAAKoE,OAASpE,KAAK8H,aAAa9H,KAAKlS,QAAS,WAE3CkS,KAAKoE,0CAOZ,OAHmB,OAAfpE,KAAK9V,QACL8V,KAAK9V,MAAQ8V,KAAK8H,aAAa9H,KAAKlS,QAAS,UAE1CkS,KAAK9V,qhDCrCpBquC,IAAkBC,cAAchE,OAAO,MAAO4rD,YCG9C,IAAM5pD,GAAS,cAKMoqD,eACjB,SAAAA,IAAqB,IAAAtpD,EAAAhoB,qCAAAsxE,4DAAAC,CAAA7gF,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAwpD,GAAAF,IAAAr3F,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,QADiB+gF,GAAAC,MAAA1xE,IAAA,kBAmCH,SAAC5b,GACf,IAAMutF,EAAcvtF,EAAM3D,OACpBmxF,EAAWD,EAAYE,WAAaF,EAAY1tC,YAEtDgF,KAAIzjD,KAAK,aAAc,QAASosF,KAvCfH,GAAAC,MAAA1xE,IAAA,qBA0CA,WACjBA,EAAK2oB,KAAKrX,SAASjxB,UAAUqY,OAAO,aACpCsH,EAAK2oB,KAAKmpD,eAAezxF,UAAUqY,OAAO,aAC1CsH,EAAK+xE,oBAAsB/xE,EAAK2oB,KAAKrX,SAAS9vB,aAEzCwe,EAAKgyE,iBACNrqD,IAAM,CACFC,QAAS5nB,EAAK2oB,KAAKrX,SACnB2gE,WAAYjyE,EAAK+xE,oBACjBrqD,SAAU,EACV3D,OAAQmD,KAGXlnB,EAAKkyE,uBACNvqD,IAAM,CACFC,QAAS5nB,EAAK2oB,KAAKmpD,eACnBG,WAAYjyE,EAAK+xE,oBACjBrqD,SAAU,EACV3D,OAAQmD,OA5DCuqD,GAAAC,MAAA1xE,IAAA,0BA0HK,SAAC5b,GACvB4b,EAAKmyE,eAAgB,EACrB/tF,EAAMkmB,iBACNtK,EAAKoyE,qBAAqBpyE,EAAK2oB,KAAKrX,SAAUtR,EAAK2oB,KAAK0pD,cAAeryE,EAAKsyE,SAAStyE,EAAK2oB,KAAK4pD,iBA7H9Ed,GAAAC,MAAA1xE,IAAA,gCAgIW,SAAC5b,GAC7B4b,EAAKmyE,eAAgB,EAErB/tF,EAAMkmB,iBACNtK,EAAKoyE,qBAAqBpyE,EAAK2oB,KAAKmpD,eAAgB9xE,EAAK2oB,KAAK6pD,oBAAqBxyE,EAAKsyE,SAAStyE,EAAK2oB,KAAK8pD,uBApI1FhB,GAAAC,MAAA1xE,IAAA,uBAuIE,SAAC5b,GAChB4b,EAAKmyE,gBAET/tF,EAAMkmB,iBACNtK,EAAKoyE,qBAAqBpyE,EAAK2oB,KAAKrX,SAAUtR,EAAK2oB,KAAK0pD,kBA3IvCZ,GAAAC,MAAA1xE,IAAA,6BA8IQ,SAAC5b,GACtB4b,EAAKmyE,gBAET/tF,EAAMkmB,iBACNtK,EAAKoyE,qBAAqBpyE,EAAK2oB,KAAKmpD,eAAgB9xE,EAAK2oB,KAAK6pD,wBAlJ7Cf,GAAAC,MAAA1xE,IAAA,WAsOV,SAACuyE,GACRA,EAAa,GAAGrxE,UArOhBlB,EAAKgyE,iBAAkB,EACvBhyE,EAAKkyE,uBAAwB,EAC7BlyE,EAAK+xE,oBAAsB/xE,EAAK2oB,KAAKrX,SAAS9vB,aAC9Cwe,EAAK0yE,qBAAsB,EAC3B1yE,EAAK2yE,mBAAoB,EACzB3yE,EAAKmyE,eAAgB,EAErBnyE,EAAKxB,OATYwB,2PADW0oB,0CAazB,IAAAzoB,EAAAvP,KACCA,KAAKi4B,KAAK0pD,eACV3hF,KAAKi4B,KAAK0pD,cAAcn8E,QAAQ,SAAC9N,GAC7B6X,EAAK6oB,YAAY1gC,EAAQ,QAAS6X,EAAK2yE,sBACvC3yE,EAAK6oB,YAAY1gC,EAAQ,WAAY6X,EAAK4yE,2BAI9CniF,KAAKi4B,KAAK6pD,qBACV9hF,KAAKi4B,KAAK6pD,oBAAoBt8E,QAAQ,SAAC9N,GACnC6X,EAAK6oB,YAAY1gC,EAAQ,QAAS6X,EAAK6yE,4BACvC7yE,EAAK6oB,YAAY1gC,EAAQ,WAAY6X,EAAK8yE,iCAIlDnzC,KAAS9W,YAAYu2C,IAA2B3uE,KAAK4uE,oBACrD5uE,KAAKo4B,YAAYp4B,KAAKi4B,KAAKqqD,iBAAkB,QAAStiF,KAAKuiF,qDAI3DrzC,KAASszC,eAAe7T,IAA2B3uE,KAAK4uE,yDAiC/C6T,EAAYC,GACjBA,EACAC,GAAIF,GAAYj9E,QAAQ,SAAC7P,GACrBA,EAAKhG,UAAUgY,IAAI,kBAGvBg7E,GAAIF,GAAYj9E,QAAQ,SAAC7P,GACrBA,EAAKhG,UAAUqY,OAAO,8DAKdvS,EAAOiQ,GACvBjQ,EAAM+P,QAAQ,SAAC7P,GACXA,EAAKoS,aAAa,gBAAiBrC,kFAIhBkb,EAAU+gE,EAAerpD,qFAChDt4B,KAAKqhF,oBAAsBzgE,EAAS9vB,cAEhCkP,KAAKgiF,qCACLhiF,KAAKgiF,qBAAsB,OAEnBphE,EAASzwB,UAAU8a,SAAS,oBAC3B,YAaA,gCAZGjL,KAAKwhF,uCACLxhF,KAAK4iF,qBAAqBhiE,EAAU+gE,GACpC3hF,KAAKwhF,uBAAwB,8BAEzBxhF,KAAK6iF,wBAAwBjiE,qCACvB5gB,KAAKuyE,QAnGhB,aAsGCvyE,KAAK8iF,qBAAqBliE,EAAU+gE,EAAerpD,GACnDt4B,KAAKwhF,uBAAwB,kDAI7BxhF,KAAKshF,iCACLthF,KAAK4iF,qBAAqBhiE,EAAU+gE,GACpC3hF,KAAKshF,iBAAkB,8BAEnBthF,KAAK6iF,wBAAwBjiE,qCACvB5gB,KAAKuyE,QAhHhB,aAmHCvyE,KAAK8iF,qBAAqBliE,EAAU+gE,EAAerpD,GACnDt4B,KAAKshF,iBAAkB,0LAoCtB1gE,EAAU+gE,EAAerpD,GAAI,IAAA7oB,EAAAzP,KAC9CA,KAAK+iF,oBAAoBpB,EAAe,QAExC/gE,EAASjxB,UAAUqY,OAAO,aAC1B4Y,EAASjxB,UAAUgY,IAAI,cAEnBiZ,EAASzwB,UAAU8a,SAAS,aAC5BjL,KAAKgjF,aAAahjF,KAAKi4B,KAAKgrD,oBAAoB,GAChDr4F,OAAO8oE,WAAW,WACdjkD,EAAKuzE,aAAavzE,EAAKwoB,KAAKirD,oBAAoB,IACjD,GACHljF,KAAKgjF,aAAahjF,KAAKi4B,KAAK8pD,oBAAoB,KAEhD/hF,KAAKgjF,aAAahjF,KAAKi4B,KAAKkrD,cAAc,GAC1Cv4F,OAAO8oE,WAAW,WACdjkD,EAAKuzE,aAAavzE,EAAKwoB,KAAKmrD,cAAc,IAC3C,GACHpjF,KAAKgjF,aAAahjF,KAAKi4B,KAAK4pD,cAAc,IAG9C5qD,IAAM,CACFC,QAAStW,EACT2gE,UAAW,EACXvqD,SAjLU,IAkLV3D,OAAQmD,GACRW,SAAU,WACN1nB,EAAKgyE,eAAgB,EACrBhyE,EAAKuyE,qBAAsB,EACT,mBAAP1pD,GACPA,oDAMK1X,EAAU+gE,GAAe,IAAA7xE,EAAA9P,KAC1CA,KAAK+iF,oBAAoBpB,EAAe,SAEpC/gE,EAASzwB,UAAU8a,SAAS,aAC5BjL,KAAKgjF,aAAahjF,KAAKi4B,KAAKgrD,oBAAoB,GAChDjjF,KAAKgjF,aAAahjF,KAAKi4B,KAAKirD,oBAAoB,GAChDljF,KAAKgjF,aAAahjF,KAAKi4B,KAAK8pD,oBAAoB,KAEhD/hF,KAAKgjF,aAAahjF,KAAKi4B,KAAKkrD,cAAc,GAC1CnjF,KAAKgjF,aAAahjF,KAAKi4B,KAAKmrD,cAAc,GAC1CpjF,KAAKgjF,aAAahjF,KAAKi4B,KAAK4pD,cAAc,IAG9C5qD,IAAM,CACFC,QAAStW,EACT2gE,WAAYvhF,KAAKqhF,oBACjBrqD,SA5MW,IA6MX3D,OAAQmD,GACRW,SAAU,WACNvW,EAASjxB,UAAUqY,OAAO,cAC1B4Y,EAASjxB,UAAUgY,IAAI,aACvBmI,EAAK2xE,eAAgB,EACrB3xE,EAAKkyE,qBAAsB,qDAKfphE,GACpB,GAAIA,EAASzwB,UAAU8a,SAAS,aAC5B,GAAIjL,KAAKshF,gBAGL,OAFAthF,KAAK4iF,qBAAqB5iF,KAAKi4B,KAAKrX,SAAU5gB,KAAKi4B,KAAK0pD,eACxD3hF,KAAKshF,iBAAkB,GAChB,OAER,GAAIthF,KAAKwhF,sBAGZ,OAFAxhF,KAAK4iF,qBAAqB5iF,KAAKi4B,KAAKmpD,eAAgBphF,KAAKi4B,KAAK6pD,qBAC9D9hF,KAAKwhF,uBAAwB,GACtB,EAEX,OAAO,kEAGG5qB,2GACH,IAAIzX,QAAQ,SAACC,GAAD,OAAasU,WAAWtU,EAASwX,8RC3O5Dr+B,IAAkBC,cAAchE,OAAO,SAAU6uD,kmBCC5BC,eACjB,SAAAA,IAAqB,IAAAhsD,EAAAhoB,qCAAAg0E,4DAAAC,CAAAvjF,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjBwJ,OAAAgoB,EAAAksD,GAAAF,IAAA/5F,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,gDAATlR,SACK0F,MAAQ,CACT+nC,gBAAiBn+B,EAAKm0E,mCAG1Bn0E,EAAKo0E,OAASp0E,EAAK2oB,KAAKyrD,OACxBp0E,EAAKq0E,eAAgB,EACrBr0E,EAAKs0E,mBAAoB,EACzBt0E,EAAKu0E,eAAiB,KAEtBv0E,EAAKw0E,SAAWx0E,EAAKw0E,SAASh3E,KAAdi3E,MAAAz0E,KAChBA,EAAK00E,cAAgB10E,EAAK00E,cAAcl3E,KAAnBi3E,MAAAz0E,KAErBA,EAAKw0E,WACLx0E,EAAKxB,OAfYwB,qPADS0oB,sCAoB1Bh4B,KAAKikF,wCACLjkF,KAAKkkF,qBACLlkF,KAAKmkF,mBAELnkF,KAAKo4B,YAAYxtC,OAAQ,SAAUoV,KAAK8jF,UAEpC9jF,KAAKi4B,KAAKmsD,QACVpkF,KAAKqkF,yEAKT,IAAMh3C,EAASC,KAAuB,YAChCg3C,EAAezuF,KAAKC,MAAMu3C,GAEhC,OAAoB,MAAhBi3C,GACOA,EAAa72C,gFAOpBztC,KAAK0F,MAAM+nC,iBAAgD,SAA7BztC,KAAKwO,QAAQ+1E,cAC3CvkF,KAAKi4B,KAAKusD,KAAK70F,UAAUgY,IAAI,UAC7B3H,KAAKi4B,KAAKwsD,WAAW90F,UAAUgY,IAAI,WAGnC3H,KAAK0F,MAAM+nC,iBAAgD,SAA7BztC,KAAKwO,QAAQk2E,cAC3C1kF,KAAKi4B,KAAK0sD,KAAKh1F,UAAUgY,IAAI,UAC7B3H,KAAKi4B,KAAK2sD,WAAWj1F,UAAUgY,IAAI,wDAKvC3H,KAAK6kF,cAAgBx3F,KAAKD,IAAI6B,SAASoF,gBAAgBywF,YAAal6F,OAAOm6F,YAAc,sCAIzF/kF,KAAKkkF,qBAEDlkF,KAAK6kF,cAAgB,MAAQ7kF,KAAK4jF,mBAClC5jF,KAAKglF,sBACLhlF,KAAKilF,kBACEjlF,KAAK6kF,cAAgB,KAAO7kF,KAAK4jF,oBACxC5jF,KAAKmkF,mBACLnkF,KAAK4E,SAASq5E,aACdj+E,KAAK0jF,OAAO/zF,UAAUqY,OAAO,YAC7BhI,KAAK4jF,mBAAoB,4CAIhB,IAAAr0E,EAAAvP,KACbA,KAAK4E,SAAW,IAAIsgF,qBAAqB,SAACC,GACvBA,EAAQ,GACZC,kBAAoB,EAC3B71E,EAAK81E,aACG91E,EAAK7J,MAAM+nC,gBAEyB,UAArCl+B,EAAKf,QAAQ82E,qBACpB/1E,EAAKg2E,aAFLh2E,EAAKg2E,eAKbvlF,KAAK4E,SAASo5E,QAAQh+E,KAAKlS,SAC3BkS,KAAK4jF,mBAAoB,uCAIzB5jF,KAAK2jF,eAAgB,EACrB3jF,KAAK0jF,OAAO/zF,UAAUgY,IAAI,YAE1BsvB,IAAM,CACFC,QAASl3B,KAAK0jF,OACd8B,WAAY,EAAE,IAAK,GACnBxuD,SAAU,IACV3D,OAAQ,gDAIH,IAAA5jB,EAAAzP,KACLA,KAAK2jF,gBACL3jF,KAAK2jF,eAAgB,EACrB1sD,IAAM,CACFC,QAASl3B,KAAK0jF,OACd8B,WAAY,CAAC,GAAI,KACjBxuD,SAAU,IACV3D,OAAQ,SACR8D,SAAU,WACN1nB,EAAKi0E,OAAO/zF,UAAUqY,OAAO,uDAOzC,IAAM4B,EAAY5J,KAAKi4B,KAAKmsD,OAAOt8E,aAAa,QAC1C29E,EAAcx2F,SAASkc,cAAcvB,GAEvC67E,IACAzlF,KAAK6jF,eAAiB,IAAI6B,KAASD,GACnCzlF,KAAKo4B,YAAYp4B,KAAKi4B,KAAKmsD,OAAQ,QAASpkF,KAAKgkF,sDAI3CtwF,GACVA,EAAMkmB,iBACN5Z,KAAK6jF,eAAevwE,yDAIpBtT,KAAK2lF,aAAe12F,SAASC,cAAc,OAC3C8Q,KAAK2lF,aAAa3zF,MAAM2gC,OAAxB,GAAA1nC,OAAoC+U,KAAK0jF,OAAOnvF,aAAhD,MACAtF,SAASqD,KAAKhD,YAAY0Q,KAAK2lF,4DAI3B3lF,KAAK2lF,cACL12F,SAASqD,KAAKd,YAAYwO,KAAK2lF,2zBC1I3CptD,IAAkBC,cAAchE,OAAO,OAAQoxD,uCCD1BC,eACjB,SAAAA,IAAqB,IAAAvuD,EAAAhoB,qCAAAu2E,4DAAAC,CAAA9lF,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAyuD,GAAAF,IAAAt8F,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEKsoC,MAAQh5B,EAAK2oB,KAAK+tD,OAAOv4F,OAC9B6hB,EAAK22E,SAAS,GAEd32E,EAAK2oB,KAAKrjC,KAAKujB,iBAAiB,QAAS,WACrC7I,EAAK22E,UAAW32E,EAAKza,QAAU,EAAKya,EAAKg5B,OAASh5B,EAAKg5B,SAG3Dh5B,EAAK2oB,KAAKnzB,KAAKqT,iBAAiB,QAAS,WACrC7I,EAAK22E,UAAW32E,EAAKza,QAAU,GAAMya,EAAKg5B,SAX7Bh5B,yPADiB0oB,oDAiBlC,MAAO,CAAC,gDAGHnjC,GAAS,IAAA0a,EAAAvP,KACdA,KAAKnL,QAAUA,EAEfmL,KAAKi4B,KAAK+tD,OAAOxgF,QAAQ,SAAC0gF,EAAOjxF,GACzBsa,EAAK1a,UAAYI,EACjBixF,EAAMv2F,UAAUgY,IAAI,aAEpBu+E,EAAMv2F,UAAUqY,OAAO,eAI/B,IAAMm+E,EAAenmF,KAAKnL,QAAU,EAAK,KAAOmL,KAAKnL,QAAU,IAAOmL,KAAKnL,QAAU,GAAGlH,WAClFy4F,EAAapmF,KAAKsoC,MAAQ,GAAM,IAAMtoC,KAAKsoC,MAAStoC,KAAKsoC,MAAM36C,WAErEqS,KAAKi4B,KAAKouD,QAAQ/0F,UAAY60F,EAAe,gBAAkBC,gfCjCvE7tD,IAAkBC,cAAchE,OAAO,gBAAiB8xD,YCEjD,IAAMC,GACT,SAACC,EAASC,GAAV,OAAgC,SAAC/gF,GAAU,IAC/BghF,EAAoBhhF,EAApBghF,gBAER,OAAIl/C,YAASi/C,IAAsBzzC,YAAkB0zC,GACjDC,GAAA,GACOjhF,EADP,CAEIghF,gBAAiBF,EAAQI,YAAYH,KAI7CE,GAAA,GACOjhF,ulBCATmhF,eACF,SAAAA,EAAY5mE,GAAO,IAAA3Q,IAAA,uCAAAu3E,4DAAAC,CAAA9mF,OACfsP,MAAAy3E,GAAAF,GAAAt9F,KAAAyW,KAAMigB,+CAANjgB,SAEK0F,MAAQ,CACTghF,gBAAiB,MAGrBp3E,EAAK03E,oBAAsBnuC,KAAMwwB,YAEjC/5D,EAAK23E,uBAAyB33E,EAAK23E,uBAAuBn6E,KAA5Bo6E,MAAA53E,KAC9BA,EAAK63E,YAAc73E,EAAK63E,YAAYr6E,KAAjBo6E,MAAA53E,KAEnB1kB,OAAOw8F,6BAA+B93E,EAAK23E,uBAZ5B33E,qPADQupC,KAAMC,yDAiB7B94C,KAAKmnF,cACLnnF,KAAKqnF,kBACLrnF,KAAKsnF,4DAGK,IACFC,EAA0BvnF,KAAKigB,MAA/BsnE,sBAGJA,UAGAA,EAAsBC,sBAClBD,EAAsBE,yDAIhB,IACNF,EAA0BvnF,KAAKigB,MAA/BsnE,sBACJ//C,YAAS+/C,IDhCgB,SACjCG,EACAV,GAEA,GAAKx/C,YAASkgD,GAAd,CADC,IAGOH,EAA0BG,EAA1BH,sBAER,GAAK//C,YAAS+/C,GAAd,CALC,IAOOE,EAAkBF,EAAlBE,cAERE,YAAmBX,EAAqBS,KCqBhCG,CAAsB5nF,KAAKigB,MAAOjgB,KAAKgnF,oBAAoBnyF,0DAK/D,IAAM2xF,EAAU57F,OAAOi9F,aACjBC,EAAc9nF,KAAKgnF,oBAAoBnyF,QACrC0yF,EAA0BvnF,KAAKigB,MAA/BsnE,sBAER,GAAIQ,aAA6BD,EAAatB,GAAU,CACpD,IAAMwB,ED5ByB,WAAkC,IAAjCT,EAAiC34F,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAT,KAC1Dq5F,EA6BkC,WAAkC,IAAjCV,EAAiC34F,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAT,KACjE,OACI44C,YAAS+/C,IACT//C,YAAS+/C,EAAsBW,WAC/B1gD,YAAS+/C,EAAsBY,QAC/B3gD,YAAS+/C,EAAsBa,UAC/B5gD,YAAS+/C,EAAsBc,eAC/B7gD,YAAS+/C,EAAsBe,cAC/B9gD,YAAS+/C,EAAsBgB,eAC/B/gD,YAAS+/C,EAAsBC,uBAtCXgB,CAA6BjB,GACjD,CACIW,SAAUX,EAAsBW,SAChCC,MAAOZ,EAAsBY,MAC7BC,QAASb,EAAsBa,QAC/BC,aAAcd,EAAsBc,aACpC/xF,QAASixF,EAAsBe,YAC/BG,SAAUlB,EAAsBgB,aAChCf,sBAAqB,IAAAv8F,OAAMs8F,EAAsBC,wBAErD,GAEJ,OAAKhgD,YAASygD,IAIVzgD,YAAS+/C,EAAsBmB,eAC/BT,EAAgBU,IAAMpB,EAAsBmB,aAG5ClhD,YAAS+/C,EAAsBqB,eAC/BX,EAAgBY,eAAiB,CAC7BC,KAAMvB,EAAsBqB,cAI7BX,GAbIA,ECcgCc,CAC/BxB,GAGJvnF,KAAK4hD,SACD2kC,GACIC,EACAwB,mDAOM,IAAAz4E,EAAAvP,KACVgpF,EAAoBhpF,KAAKigB,MAAzB+oE,gBAEHxhD,YAASwhD,IAIdA,EAAgBxjF,QAAQ,SAACqjE,GAAW,IACxBogB,EAAgCpgB,EAAhCogB,gBAAiBC,EAAergB,EAAfqgB,WACrB53F,EAAY,GAMhB,GAJmB,WAAf43F,IACA53F,EAAY63F,aAAmCF,KAG9CG,YAAiBH,EAAiB33F,GAAY,KACvC+3F,EAAiCxgB,EAAjCwgB,gBAAiBC,EAAgBzgB,EAAhBygB,YAEzBC,YACIN,EACAI,EACA95E,EAAK03E,uBACLqC,EACAJ,EACA53F,uCAOZ,OACI6mD,GAAAllD,EAAA/D,cAAA,OACI8/D,IAAKhvD,KAAKgnF,oNAM1BH,GAAiBpuC,UAAY,CACzB8uC,sBAAuB7uC,KAAUnsD,OACjCy8F,gBAAiBtwC,KAAUjjD,OAGhBoxF,UC3HR,SAAS2C,KACZ,OAAO5+F,OAAOm6F,YAAc,gdC0DjB0E,eApDX,SAAAA,IAAqB,IAAAnyD,EAAAhoB,qCAAAm6E,4DAAAC,CAAA1pF,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAqyD,GAAAF,IAAAlgG,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACK8N,OAFYwB,qPADS0oB,sCAO1Bh4B,KAAK6L,SACL7L,KAAK4pF,8DAGU,IAAAj+B,EAMX3rD,KAAKwO,QAJLq7E,EAFWl+B,EAEXk+B,uBACAC,EAHWn+B,EAGXm+B,wBACAC,EAJWp+B,EAIXo+B,8BACAC,EALWr+B,EAKXq+B,6BAGJ,GAAgC,MAA5BF,GAC2B,MAA3BD,GACkC,MAAlCE,GACiC,MAAjCC,EAEAhqF,KAAKlS,QAAQkE,MAAM2gC,OAAS,YACzB,CACH,IAAMs3D,EAAwB,GAAAh/F,OAAO6+F,EAA0BD,EAA0B,IAA3D,KACxBK,EAAuB,GAAAj/F,OAAO8+F,EAAgCC,EAAgC,IAAvE,KAE7BhqF,KAAKlS,QAAQkE,MAAMm4F,WAAaX,KAAaU,EAA0BD,uCAM3EnwC,KAASC,uBAAuB/5C,KAAKlS,0CAGhC,IAAAs8F,EAC8CpqF,KAAKwO,QAAhDw6E,EADHoB,EACGpB,gBAAiBzB,EADpB6C,EACoB7C,sBAEzBztC,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAACm7F,GAAD,CACI9C,sBAAuBA,EACvByB,gBAAiBA,KAGzBhpF,KAAKlS,uMClDjByqC,IAAkBC,cAAchE,OAAO,cAAei1D,gDCEzCa,GAAkB,SAACp5F,GAC5B,IANQQ,EAMF64F,EAASr5F,EAAIjD,QAAQ,KAAM,KAAKA,QAAQ,KAAM,KAEpD,OAAOu8F,oBARC94F,EAUS64F,EATNE,KAAU/4F,IAUZ+N,MAAM,IACNyH,IAAI,SAACwjF,GAAD,UAAAz/F,OAAc,KAAAA,OAAKy/F,EAAKr/D,WAAW,GAAG19B,SAAS,KAAMQ,OAAO,MAChE2R,KAAK,MAIL2qF,GAAU,WAEnB,MAAsB,oBAAX7/F,QAAiD,mBAAhBA,OAAO+/F,KACxC//F,OAAO+/F,KAIE,mBAATA,KACAA,UADX,4HCrBG,IA0CMC,GAAa,SAACtrC,EAAOurC,GAAgE,IAA7CC,EAA6Cl8F,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAApC,GAAIm8F,EAAgCn8F,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,QAAdvD,EAC1E2/F,EA3Ce,SAAC1rC,GACtB,GAAK9X,YAAS8X,GAAd,CAIA,IAAM2rC,EAAa3rC,EAAM7/C,MAAM,KAE/B,GAA0B,IAAtBwrF,EAAWx9F,OAKf,IAKI,MAAO,CACHE,SAAU,kBAAM2xD,GAChB4rC,OANW39C,YAAc+8C,GAAgBW,EAAW,KAOpDr5C,QANYrE,YAAc+8C,GAAgBW,EAAW,KAOrDE,UANcF,EAAW,IAQ/B,MAAO1W,GAEL,YADAxpF,QAAQgjB,MAAMwmE,QAhBdxpF,QAAQgjB,MAAM,kBAmCFq9E,CAAU9rC,GAE1B,GAAK0rC,EAAL,CAH8F,IAQtFE,EAAoBF,EAApBE,OAAQt5C,EAAYo5C,EAAZp5C,QAEVy5C,EAAkBr/F,OAAOkK,KAAK07C,GAC/BjiC,OAAO,SAACjb,GAAD,OAASm2F,EAAkB5/E,SAASvW,KAC3CC,OAAO,SAACzG,EAAKwG,GAEV,OADAxG,EAAIwG,GAAOk9C,EAAQl9C,GACZxG,GACR,IAOP,OAnCqB,SAACg9F,EAAQt5C,GAAyB,IAAhBk5C,EAAgBl8F,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAP,GAChD,IACI,IAAM08F,EAAUz1F,KAAKE,UAAUm1F,GACzBK,EAAW11F,KAAKE,UAAU67C,GAGhC,OAFa45C,KAAKC,IAAIC,IAAIC,KAAK,KAAML,EAASC,EAAUT,GAG1D,MAAO/8E,GAEL,YADAhjB,QAAQgjB,MAAM,sBAAuBA,IA2BlC69E,oUALgBC,CAAA,GAChBX,EACAH,GAG0BM,EAAiBP,GAlB9C//F,QAAQgjB,MAAM,kBC5Cf,SAAS+9E,GAAuB7rE,GAAO,MAEtC8rE,EAIA9rE,EAJA8rE,sBACAC,EAGA/rE,EAHA+rE,iBACAC,EAEAhsE,EAFAgsE,YACAC,EACAjsE,EADAisE,cALsCC,GAAA,8CAQcC,yBAAS/gG,6UAA1DghG,EARmCF,EAAA,GAQbG,EARaH,EAAA,GA2B1C,GAjBAI,qBAAU,WACNC,sCACK1yD,KAAK,SAACqU,GACHm+C,EACI1B,GACIz8C,EAAKs+C,QACLC,YAAcX,GACd,GACAx+C,YAAc0+C,OAIzBjyD,MAAM,SAAC77B,GACJpT,QAAQgjB,MAAM5P,MAEvB,KAGEqpC,YAAS6kD,KACT7kD,YAASwkD,KACTxkD,YAASwkD,EAAiB93F,QAC3B,OAAO,KAGX,IAAMy4F,EAAYC,aAAeZ,EAAiB93F,OAAQ,CACtD,CACIQ,IAAKw3F,EACL/hG,MAAOkiG,KAIf,OACIl0C,GAAAllD,EAAA/D,cAAA,UAAQzE,IAAKkiG,gdCHNE,eAtCX,SAAAA,IAAqB,IAAAv1D,EAAAhoB,qCAAAu9E,4DAAAC,CAAA9sF,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAy1D,GAAAF,IAAAtjG,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACK8N,OAFYwB,qPADe0oB,sCAOhCh4B,KAAKgtF,mBACLhtF,KAAK6L,oDAGU,IAAA8/C,EAMX3rD,KAAKwO,QAJLy+E,EAFWthC,EAEXshC,uBACAnD,EAHWn+B,EAGXm+B,wBACAC,EAJWp+B,EAIXo+B,8BACAC,EALWr+B,EAKXq+B,6BAGEC,EAAwB,GAAAh/F,OAAO6+F,EAA0BmD,EAA0B,IAA3D,KACxB/C,EAAuB,GAAAj/F,OAAO8+F,EAAgCC,EAAgC,IAAvE,KAE7BhqF,KAAKlS,QAAQkE,MAAMm4F,WAAaX,KAAaU,EAA0BD,sCAIvEnwC,KAASC,uBAAuB/5C,KAAKlS,0CAIrCgsD,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAC48F,GAA2B9rF,KAAKwO,UAErCxO,KAAKlS,+oBCpCjByqC,IAAkBC,cAAchE,OAAO,qBAAsBq4D,wBCDxCK,eACjB,SAAAA,IAAqB,IAAA51D,EAAAhoB,qCAAA49E,4DAAAC,CAAAntF,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAA81D,GAAAF,IAAA3jG,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,qPADc0oB,sCAQ/BkX,KAASC,KAAK,kBAAmB,CAC7Bk+C,mBAAoBrtF,KAAKi4B,KAAKyrD,uMCR1CnrD,IAAkBC,cAAchE,OAAO,aAAc04D,khBCArD,IAAMI,GAAU,SAACx8B,EAAStkE,EAAU+gG,GAChC,OAAOC,GAAI18B,GAAS36D,KAAK,SAAClD,EAAGC,GACzB,GAAiB,uBAAb1G,EAAmC,CACnC,IAAIihG,EAAmBC,GAAaz6F,EAAGC,GAEvC,GAAwB,GAApBu6F,EACA,OAAOA,EAIf,IAAIE,EAAO,EACPC,EAAO,EACX,GAAIvuF,KAAIpM,EAAGzG,GAAW,CAClB,IAAMqhG,EAAazhG,IAAI6G,EAAGzG,GAEtBmhG,EADAJ,QACOA,EAAUM,GAEV53E,SAAS43E,EAAY,IAGpC,GAAIxuF,KAAInM,EAAG1G,GAAW,CAClB,IAAMshG,EAAa1hG,IAAI8G,EAAG1G,GAEtBohG,EADAL,QACOA,EAAUO,GAEV73E,SAAS63E,EAAY,IAIpC,OAAOH,EAAOC,KAIhBG,GAAW,SAACj9B,EAAStkE,EAAU+gG,GACjC,OAAOC,GAAI18B,GAAS36D,KAAK,SAAClD,EAAGC,GACzB,GAAiB,uBAAb1G,EAAmC,CACnC,IAAIihG,EAAmBC,GAAaz6F,EAAGC,GAEvC,GAAwB,GAApBu6F,EACA,OAAOA,EAIf,IAAIE,EAAO,EACPC,EAAO,EACX,GAAIvuF,KAAIpM,EAAGzG,GAAW,CAClB,IAAMqhG,EAAazhG,IAAI6G,EAAGzG,GAEtBmhG,EADAJ,QACOA,EAAUM,GAEV53E,SAAS43E,EAAY,IAGpC,GAAIxuF,KAAInM,EAAG1G,GAAW,CAClB,IAAMshG,EAAa1hG,IAAI8G,EAAG1G,GAEtBohG,EADAL,QACOA,EAAUO,GAEV73E,SAAS63E,EAAY,IAIpC,OAAOF,EAAOD,KAITK,GAAY,SAACl9B,EAAStkE,GAC/B,OAAOghG,GAAI18B,GAAS36D,KAAK,SAAClD,EAAGC,GACzB,GAAiB,uBAAb1G,EAAmC,CACnC,IAAIihG,EAAmBC,GAAaz6F,EAAGC,GAEvC,GAAwB,GAApBu6F,EACA,OAAOA,EAIf,IAAIE,EAAO,IACPC,EAAO,IAOX,OANIvuF,KAAIpM,EAAGzG,KACPmhG,EAAOvhG,IAAI6G,EAAGzG,IAEd6S,KAAInM,EAAG1G,KACPohG,EAAOxhG,IAAI8G,EAAG1G,IAEXmhG,EAAKv6F,cAAgBw6F,EAAKx6F,cAAgB,GAAK,KA0B9D,SAASs6F,GAAaO,EAASC,GAC3B,IAAIC,EAAc,wBACdC,EAAU,IACVC,EAAU,IASd,GAPIhvF,KAAI4uF,EAASE,KACbC,EAAUhiG,IAAI6hG,EAASE,IAEvB9uF,KAAI6uF,EAASC,KACbE,EAAUjiG,IAAI8hG,EAASC,IAGZ,MAAXC,GAA8B,MAAXC,EACnB,OAAO,EAIX,GAAsB,KADtBC,EAAgBC,GAAgBH,EAASC,EAAS,YAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,QAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,UAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,QAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,QAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,QAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,OAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,OAE9C,OAAOC,EAGX,IAAIA,EAAgBC,GAAgBH,EAASC,EAAS,OACtD,OAAsB,IAAlBC,EACOA,EAGJ,EAGX,SAASC,GAAgBC,EAAeC,EAAe15C,GACnD,OAAIy5C,EAAcp7F,gBAAkB2hD,GAAU05C,EAAcr7F,eAAiB2hD,EAClE,EAGPy5C,EAAcp7F,eAAiB2hD,GAAU05C,EAAcr7F,gBAAkB2hD,GACjE,EAGL,EAGJ,IAAM25C,IAAiBC,GAAAC,GAAA,GACzBC,KAAUC,SAAW,CAClBC,cAAe,SAACj+B,EAASk+B,GACrB,OAAOA,EACH1B,GAAQx8B,EAAS,sBACjBi9B,GAASj9B,EAAS,yBALJ69B,GAAAC,GAQzBC,KAAUI,OAAS,CAChBF,cAAe,SAACj+B,EAASk+B,GACrB,OAAOA,EAAQ1B,GAAQx8B,EAAS,UAAYi9B,GAASj9B,EAAS,aAV5C69B,GAAAC,GAazBC,KAAU59B,OAAS,CAChB89B,cAAe,SAACj+B,EAASk+B,GACrB,OAAOA,EACHhB,GAAUl9B,EAAS,yBAlHhB,SAACA,EAAStkE,GACzB,OAAOghG,GAAI18B,GAAS36D,KAAK,SAAClD,EAAGC,GAErB,IAAIu6F,EAAmBC,GAAaz6F,EAAGC,GAEvC,GAAwB,GAApBu6F,EACA,OAAOA,EAIf,IAAIE,EAAO,GACPC,EAAO,GAOX,OANIvuF,KAAIpM,EAAGzG,KACPmhG,EAAOvhG,IAAI6G,EAAGzG,IAEd6S,KAAInM,EAAG1G,KACPohG,EAAOxhG,IAAI8G,EAAG1G,IAEXohG,EAAKx6F,cAAgBu6F,EAAKv6F,cAAgB,GAAK,IAiG9C87F,CAAWp+B,EAAS,4BAjBN69B,GAAAC,GAoBzBC,KAAUM,IAAM,CACbJ,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GAEf,OAAKA,GAA6B,OAAtBA,EAAIwqC,cAED,MAARxqC,EAAc,EAAIsW,SAAStW,EAAK,IAFQ,KAKnD,OAAOqvF,EACH1B,GAAQx8B,EAAS,QAASy8B,GAC1BQ,GAASj9B,EAAS,QAASy8B,MA/BboB,GAAAC,GAkCzBC,KAAU39B,KAAO,CACd69B,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GACf,OAAKA,GAAe,MAARA,EAIG,MAARA,EAAc,GAAKsW,SAAStW,EAAK,IAH7B,GAMf,OAAOqvF,EACH1B,GAAQx8B,EAAS,OAAQy8B,GAAaQ,GAASj9B,EAAS,OAAQy8B,MA7ClDoB,GAAAC,GAgDzBC,KAAUO,MAAQ,CACfL,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GACf,OAAKA,GAAe,MAARA,EAELsW,SAAStW,EAAK,IAFW,GAKpC,OAAOqvF,EACH1B,GAAQx8B,EAAS,QAASy8B,GAAaQ,GAASj9B,EAAS,QAASy8B,MAzDpDoB,GAAAC,GA4DzBC,KAAUQ,MAAQ,CACfN,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GAEf,OAAKA,GAAe,MAARA,EAEG,MAARA,EAAc,EAAIsW,SAAStW,EAAK,IAFP,KAKpC,OAAOqvF,EACH1B,GAAQx8B,EAAS,QAASy8B,GAC1BQ,GAASj9B,EAAS,QAASy8B,MAvEboB,GAAAC,GA0EzBC,KAAUS,GAAK,CACZP,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GACf,OAAKA,GAAe,MAARA,EAELsW,SAAStW,EAAK,IAFW,GAKpC,OAAOqvF,EAAQ1B,GAAQx8B,EAAS,KAAMy8B,GAAaQ,GAASj9B,EAAS,KAAMy8B,MAlFzDoB,GAAAC,GAqFzBC,KAAUU,GAAK,CACZR,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GACf,OAAKA,GAAe,MAARA,EAELsW,SAAStW,EAAK,IAFW,GAKpC,OAAOqvF,EAAQ1B,GAAQx8B,EAAS,KAAMy8B,GAAaQ,GAASj9B,EAAS,KAAMy8B,MA7FzDoB,GAAAC,GAgGzBC,KAAUW,GAAK,CACZT,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GACf,OAAKA,GAAe,MAARA,EAELsW,SAAStW,EAAK,IAFW,GAKpC,OAAOqvF,EAAQ1B,GAAQx8B,EAAS,KAAMy8B,GAAaQ,GAASj9B,EAAS,KAAMy8B,MAxGzDoB,GAAAC,GA2GzBC,KAAUY,GAAK,CACZV,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GACf,OAAKA,GAAe,MAARA,EAELsW,SAAStW,EAAK,IAFW,GAKpC,OAAOqvF,EAAQ1B,GAAQx8B,EAAS,KAAMy8B,GAAaQ,GAASj9B,EAAS,KAAMy8B,MAnHzDqB,gdC1Ifc,+kBA/CoB72C,KAAMC,+CAC3B62C,GACN,OACIx3C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2CAA2CuE,IAAKi7F,EAAOC,UAClEz3C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8EACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,4BACXgoD,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,gCACV9B,KAAK,SACLiqD,QAAS,kBAAMu3C,KAAWx/E,KAAKs/E,EAAOC,YAEtCz3C,GAAAllD,EAAA/D,cAAC4gG,EAAA,EAAD,CACIC,SAAU,0EACV3mG,MAAOumG,EAAOK,iBAElB73C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qCAAqCw/F,EAAOjsD,UAC3DyU,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,sCAAhB,KACAgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCAAsCw/F,EAAOlsD,WAC1DksD,EAAOM,WAAa93C,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,oCAAhB,8CAY7C,IAAAmf,EAAAtP,KACG8wD,EAAY9wD,KAAKigB,MAAjB6wC,QAER,IAAKvgE,MAAMuvB,QAAQgxC,GAAU,OAAO,KAEpC,IAAMo/B,EAAgBlC,GAAUl9B,EAAS,YAEzC,OACI3Y,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,eACV+/F,EAAchpF,IAAI,SAACyoF,GAAD,OAAYrgF,EAAKq+D,UAAUgiB,qSC3CxDQ,GAAiB,SAAAzrF,GAAgD,IAE3D0rF,EAFcL,EAA6CrrF,EAA7CqrF,SAAUz3C,EAAmC5zC,EAAnC4zC,QAAS+3C,EAA0B3rF,EAA1B2rF,oBASzC,OACIl4C,GAAAllD,EAAA/D,cAAA,UACAiB,UAAS,GAAAlF,OAAK8kG,EAAL,qEAAA9kG,QATLmlG,EAA+B,GAC/BC,IACAD,EAA+B,aAE5BA,IAMP93C,QAASA,GAELH,GAAAllD,EAAA/D,cAACohG,GAAA,EAAD,CAAWC,SAAS,OAAO1+F,MAAM,KAAK8gC,OAAO,SAKzDw9D,GAAeK,aAAe,CAC1BT,SAAU,IAGCI,oBCcAM,GAjCc,SAAA/rF,GAAoC,IAAjCokF,EAAiCpkF,EAAjCokF,KAAM4H,EAA2BhsF,EAA3BgsF,qBAC5BC,EAAW/1F,KAAW,CACxBg2F,YAAa9H,IAAS+H,KAAUC,eAGpC,OACI34C,GAAAllD,EAAA/D,cAAA,UACAiB,UAAS,6EAAAlF,OAA+E0lG,GACpFtiG,KAAK,SACLiqD,QAASo4C,GAETv4C,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uCACZgoD,GAAAllD,EAAA/D,cAAA,4BAEI45F,IAAS+H,KAAUC,cACnB34C,GAAAllD,EAAA/D,cAACohG,GAAA,EAAD,CACIP,SAAU,qCACVQ,SAAU,QACV1+F,MAAM,KACN8gC,OAAO,OAIXm2D,IAAS+H,KAAUC,cACnB34C,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,wDACZgoD,GAAAllD,EAAA/D,cAAC6hG,GAAA,EAAD,CAAW3nG,MAAO4nG,qBCA3BC,GA5BkB,SAAAvsF,GAA8C,IAA3CwsF,EAA2CxsF,EAA3CwsF,oBAAqBC,EAAsBzsF,EAAtBysF,gBAC/C/gF,EAAW+gF,EAAgBC,cAAgBvC,KAAU39B,KACrDy/B,EAAW/1F,KAAW,CACxBg2F,YAAaxgF,EACbihF,SAAUjhF,GAAY+gF,EAAgBG,qBAG1C,OACIn5C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,sEAAAlF,OAAwE0lG,IAClFx4C,GAAAllD,EAAA/D,cAAA,UACIb,KAAK,SACL8B,UAAU,kCACVmoD,QAAS,kBAAM44C,EAAoBrC,KAAU39B,QAE7C/Y,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BAAf,QACAgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCAAoC0B,MAAM,IAAI8gC,OAAO,IAAIiyB,UAAU,SAC9EzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,sBAK3B1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAAf,UCiBGohG,GAvCW,SAAA7sF,GAA4B,IAAzBokF,EAAyBpkF,EAAzBokF,KAAM0I,EAAmB9sF,EAAnB8sF,aAsBzBb,EAAW/1F,KAAW,CACxB62F,WAAY3I,IAAS+H,KAAUa,UAGnC,OACIv5C,GAAAllD,EAAA/D,cAAA,UACIiB,UAAS,6BAAAlF,OAA+B0lG,GACxCtiG,KAAK,SACLiqD,QAASk5C,GAETr5C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uCA9Bf24F,IAAS+H,KAAUa,QAEfv5C,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KACI3K,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCAAf,eACAgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0CACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCAAsC0B,MAAM,KAAK8gC,OAAO,IAAIiyB,UAAU,SACjFzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,wBAQ/B1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCAAsC0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SAClFzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,oBCuBhB8sC,GAvCoB,SAAAjtF,GAO9B,IALGokF,EAKHpkF,EALGokF,KACA0I,EAIH9sF,EAJG8sF,aACAN,EAGHxsF,EAHGwsF,oBACAC,EAEHzsF,EAFGysF,gBAGE/gF,EAAW+gF,EAAgBC,cAAgBvC,KAAU59B,OACrD0/B,EAAW/1F,KAAW,CACxBg2F,YAAaxgF,EACbihF,SAAUjhF,GAAY+gF,EAAgBG,qBAG1C,OACIn5C,GAAAllD,EAAA/D,cAAA,OACIiB,UAAS,mFAAAlF,OAAqF0lG,IAC9Fx4C,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,kCACV9B,KAAK,SACLiqD,QAAS,kBAAM44C,EAAoBrC,KAAU59B,UAE7C9Y,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BAAf,UACAgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCAAoC0B,MAAM,IAAI8gC,OAAO,IAAIiyB,UAAU,SAC9EzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,sBAKvBikC,IAAS+H,KAAUC,cACnB34C,GAAAllD,EAAA/D,cAAC0iG,GAAD,CAAmB9I,KAAMA,EAAM0I,aAAcA,IAGjDr5C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAAf,YCAG0hG,GAnCoB,SAAAntF,GAAiC,IAA9BotF,EAA8BptF,EAA9BotF,OAAQX,EAAsBzsF,EAAtBysF,gBACpC/gF,EAAW+gF,EAAgBC,cAAgBvC,KAAUI,OACrD0B,EAAW/1F,KAAW,CACxBg2F,YAAaxgF,EACbihF,SAAUjhF,GAAY+gF,EAAgBG,qBAG1C,OACIn5C,GAAAllD,EAAA/D,cAAA,OACIiB,UAAS,wEAAAlF,OAA0E0lG,IACnFx4C,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,kCACV9B,KAAK,SACLiqD,QAAS,kBAAMw5C,EAAOjD,KAAUI,UAEhC92C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yCAAyC0B,MAAM,IAAI8gC,OAAO,IAAIiyB,UAAU,SACnFzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,oBAEnB1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yCAAyC0B,MAAM,IAAI8gC,OAAO,IAAIiyB,UAAU,SACnFzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,sBAI3B1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCAAoC0B,MAAM,IAAI8gC,OAAO,IAAIiyB,UAAU,SAC9EzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,wBCZxBktC,GAjBoB,SAAArtF,GAA4B,IAAzBstF,EAAyBttF,EAAzBstF,mBAClC,OACI75C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAW,wEAER6hG,EAAmBC,SAAS/qF,IAAI,SAACgrF,GAC7B,OACI/5C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCAAgCuE,IAAKw9F,EAAQC,QACxDh6C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BAA2B+hG,EAAQC,QAClDh6C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCAAiC+hG,EAAQE,UC8BrEC,GApCmB,SAAA3tF,GAM7B,IAJGrW,EAIHqW,EAJGrW,KACAikG,EAGH5tF,EAHG4tF,eACAnB,EAEHzsF,EAFGysF,gBAGE/gF,EAAW+gF,EAAgBC,cAAgB/iG,EAC3CsiG,EAAW/1F,KAAW,CACxBg2F,YAAaxgF,EACbihF,SAAUjhF,GAAY+gF,EAAgBG,qBAGpCiB,EAAWC,aAAsBnkG,GACjC+3C,EAAQqsD,aAAepkG,GAE7B,OACI8pD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAS,iEAAAlF,OAAmEsnG,EAAnE,KAAAtnG,OAA+E0lG,IACxFx4C,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,kCACV9B,KAAK,SACLiqD,QAAS,kBAAMg6C,EAAejkG,KAE9B8pD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BAA2Bi2C,GAC1C+R,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCAAoC0B,MAAM,IAAI8gC,OAAO,IAAIiyB,UAAU,SAC9EzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,sBAI3B1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6Bi2C,KCgCzCssD,GA3Da,SAAAhuF,GAQvB,IANGokF,EAMHpkF,EANGokF,KACAkJ,EAKHttF,EALGstF,mBACAR,EAIH9sF,EAJG8sF,aACAN,EAGHxsF,EAHGwsF,oBACAC,EAEHzsF,EAFGysF,gBAGEwB,EAAmB,SAACtkG,EAAMikG,GAC5B,OACIn6C,GAAAllD,EAAA/D,cAAC0jG,GAAD,CACIvkG,KAAMA,EACNikG,eAAgBA,EAChBnB,gBAAiBA,KAK7B,OACIh5C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BAEVwiG,EAAiB9D,KAAUC,SAAUoC,GAEtC/4C,GAAAllD,EAAA/D,cAAC2jG,GAAD,CACIf,OAAQZ,EACRC,gBAAiBA,IAGrBh5C,GAAAllD,EAAA/D,cAAC4jG,GAAD,CACItB,aAAcA,EACd1I,KAAMA,EACNoI,oBAAqBA,EACrBC,gBAAiBA,IAGpBwB,EAAiB9D,KAAUM,IAAK+B,GAEhCpI,IAAS+H,KAAUa,SAAWiB,EAAiB9D,KAAUS,GAAI4B,GAC7DpI,IAAS+H,KAAUa,SAAWiB,EAAiB9D,KAAUU,GAAI2B,GAC7DpI,IAAS+H,KAAUa,SAAWiB,EAAiB9D,KAAUW,GAAI0B,GAC7DpI,IAAS+H,KAAUa,SAAWiB,EAAiB9D,KAAUY,GAAIyB,GAE7DpI,IAAS+H,KAAUC,cAAgB34C,GAAAllD,EAAA/D,cAAC6jG,GAAD,CAA4Bf,mBAAoBA,IAGhFlJ,IAAS+H,KAAUa,SACnB5I,IAAS+H,KAAUC,cACnB34C,GAAAllD,EAAA/D,cAAC8jG,GAAD,CACI9B,oBAAqBA,EACrBC,gBAAiBA,IAGxBrI,IAAS+H,KAAUa,SAAWiB,EAAiB9D,KAAUO,MAAO8B,GAChEpI,IAAS+H,KAAUa,SAAWiB,EAAiB9D,KAAUQ,MAAO6B,KClD9D+B,GAVY,SAAAvuF,GAAc,IAAX3b,EAAW2b,EAAX3b,KACpBkJ,EAAYlJ,EAAKkJ,UAAYlJ,EAAKkJ,SAASihG,cAAiB,IAElE,OACI/6C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,4CACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6B8B,KCKzCkhG,GAVoB,SAAAzuF,GAAmB,IAAhB0uF,EAAgB1uF,EAAhB0uF,UAClC,OACIj7C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,kCAAAlF,OAAoCmoG,IAC9Cj7C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8BAA8B0B,MAAM,IAAI8gC,OAAO,IAAIiyB,UAAU,SACxEzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,sBCYhBwuC,GAhBuB,SAAA3uF,GAAmB,IAAhB0uF,EAAgB1uF,EAAhB0uF,UACrC,OACIj7C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,uCAAAlF,OAAyCmoG,IACnDj7C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCAAmC0B,MAAM,IAAI8gC,OAAO,IAAIiyB,UAAU,SAC7EzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,oBAEnB1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCAAmC0B,MAAM,IAAI8gC,OAAO,IAAIiyB,UAAU,SAC7EzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,oBAEnB1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCAAmC0B,MAAM,IAAI8gC,OAAO,IAAIiyB,UAAU,SAC7EzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,sBC8ChByuC,GAtDa,SAAA5uF,GAAuB,IACzB6uF,EADKxqG,EAAoB2b,EAApB3b,KAAMylB,EAAc9J,EAAd8J,QAwCjC,OACI2pC,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+CACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAEPgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6CA3CTojG,EA4CYxqG,EAAKwqG,QA1CtB,GAAKlmG,KAAKg2B,IAAIkwE,IAAW/kF,EAAQwS,UACnCm3B,GAAAllD,EAAA/D,cAACskG,GAAD,CAA+BJ,UAAW,gBAGjDG,EAAS,GAAKlmG,KAAKg2B,IAAIkwE,GAAU/kF,EAAQwS,UAClCm3B,GAAAllD,EAAA/D,cAACukG,GAAD,CAA4BL,UAAW,gBAG9CG,EAAS,GAAKlmG,KAAKg2B,IAAIkwE,IAAW/kF,EAAQwS,UACnCm3B,GAAAllD,EAAA/D,cAACskG,GAAD,CAA+BJ,UAAW,KAGjDG,EAAS,GAAKlmG,KAAKg2B,IAAIkwE,GAAU/kF,EAAQwS,UAClCm3B,GAAAllD,EAAA/D,cAACukG,GAAD,CAA4BL,UAAW,KAG3C,KA2BSj7C,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,wCAxBlB,SAACojG,GACf,IAAIG,EAAc,IAElB,OAAKH,GAAqB,IAAXA,GAIXA,EAAS,IACTG,EAAcH,GAGdA,EAAS,IACTG,EAAcH,EAAO5lG,WAAWM,QAAQ,IAAK,KAG1CylG,GAXIA,EAoB6DC,CAAU5qG,EAAKwqG,uBCzBhFK,GAtBsB,SAAAlvF,GAAmB,IAAhButD,EAAgBvtD,EAAhButD,UACpC,OAAKA,EAGD9Z,GAAAllD,EAAA/D,cAAA,KACIiB,UAAU,mCACVyiD,KAAMqf,GACN9Z,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yCAAf,kBAGAgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iDACXgoD,GAAAllD,EAAA/D,cAACohG,GAAA,EAAD,CACIP,SAAS,wCACTQ,SAAS,QACT1+F,MAAM,KACN8gC,OAAO,SAdA,wlBCsEZkhE,eA/DX,SAAAA,EAAY5zE,GAAO,IAAA3Q,UAAA,uCAAAukF,4DAAAC,CAAA9zF,QACf+zF,GAAAF,GAAAtqG,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,UAekB,SAACg0F,EAAeC,GAClC3kF,EAAKsyC,SAAS,CACVqsB,WAAYgmB,QAlBD,2BAAAC,MAAA5kF,2FAGfA,EAAK5J,MAAQ,CACTuoE,WAAY/6B,IAAI67B,sBAJLz/D,qPADkBupC,KAAMC,yDAUvC5J,KAAS9W,YAAYu2C,IAA2B3uE,KAAKm0F,oEAIrDjlD,KAASszC,eAAe7T,IAA2B3uE,KAAKm0F,mEAStC,IAAAhiC,EACcnyD,KAAKigB,MAA7B0vE,EADUx9B,EACVw9B,OAAQyE,EADEjiC,EACFiiC,YACVC,EAAW1E,EAAO79B,cAAgBwiC,KAExC,OAAIF,EAAoB,KAEpBC,EAASE,mBACTF,EAASE,oBAAsBC,KAAgBC,YACxC,eAGPJ,EAASK,eACTL,EAASK,gBAAkBF,KAAgBC,YACpC,WAGJ,sCAGF,IAAAvyB,EACiEliE,KAAKigB,MAAnE0vE,EADHztB,EACGytB,OAAQ7G,EADX5mB,EACW4mB,KAAM6L,EADjBzyB,EACiByyB,UAAWC,EAD5B1yB,EAC4B0yB,aAAcC,EAD1C3yB,EAC0C2yB,mBACzCC,EAAgB1oG,IAAIyoG,EAAoB,gBACxCE,EAAuB3oG,IAAIujG,EAAQ,qCAEzC,OACIx3C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wCACXgoD,GAAAllD,EAAA/D,cAAC8lG,GAAD,CAA8B/iC,UAAW8iC,IAEpCH,GAAgBE,GACjB38C,GAAAllD,EAAA/D,cAAC+lG,GAAA,EAA6Bj1F,KAAKigB,OAGnC00E,GACA7L,IAAS+H,KAAUC,cACnB34C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BAA+B6P,KAAKk1F,uaCjDvE,IAoFeC,GApFoB,SAAAzwF,GAI7B,ICtB6B3b,EDmB/BgmF,EAGErqE,EAHFqqE,qBACA4gB,EAEEjrF,EAFFirF,OACGyF,oXACDC,CAAA3wF,EAAA,mCAuCI4wF,EAAiB,GAQvB,OANIC,KAAsBC,YAAY7F,EAAO3hG,GAAGL,YAC5C2nG,EAAeG,SAAU,EAEzBH,EAAe3qB,QAAS,EAIxBxyB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oDACXgoD,GAAAllD,EAAA/D,cAACwmG,GAAA,EAAD,CACI9F,SAAUD,EAAO3hG,GAAGL,WACpB49E,MAAO+pB,KAGfn9C,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,gCACV9B,KAAK,SACLiqD,QAAS,kBAAMu3C,KAAWx/E,KAAKs/E,EAAO3hG,MAEtCmqD,GAAAllD,EAAA/D,cAAC4gG,EAAA,EAAD,CACIC,SAAU,gCACV3mG,OCrFWL,EDqFe4mG,ECpF1C5mG,EAAK+oE,aACE/oE,EAAK+oE,aAAL,eAGJ,QDkBqB,WACxB,IAAMuiC,EAAW1E,EAAO79B,aAExB,IAAKuiC,EAAU,OAAO,KAEtB,IAAI5wD,EAAY4wD,EAAS5wD,UAErBsrC,IAAyB4mB,KACzB5mB,IAAyB6mB,KACzB7mB,IAAyB8mB,MACzBpyD,EAAYA,EAAUhhB,OAAO,IAGjC,IAAMqzE,EAAcl7F,KAAW,CAE3Bm7F,aAAc1B,EAAS3wD,SAASj2C,OAAS,KAG7C,OACI0qD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,qCAAAlF,OAAuC6qG,IACjD39C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAW,qCACXkkG,EAAS3wD,UAGVD,GACA0U,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,sCAAhB,KAEJgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAW,sCACXszC,GAGD4wD,EAASpE,WACT93C,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,oCAAhB,QAgCC6lG,GAEGrG,EAAO79B,cACP69B,EAAO79B,aAAamkC,gBACpB99C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAAC6hG,GAAA,EAAD,CAAW3nG,MAAOumG,EAAO79B,aAAamkC,oBAKtD99C,GAAAllD,EAAA/D,cAACgnG,GAADC,GAAA,GAAgCf,EAAhC,CAAsCzF,OAAQA,itBErC3CyG,eAxDX,SAAAA,EAAYn2E,GAAO,IAAA3Q,IAAA,uCAAA8mF,4DAAAC,CAAAr2F,QACfs2F,GAAAF,GAAA7sG,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,QADeu2F,GAAAC,MAAAlnF,IAAA,iBAaF,WAAM,IAAAmnF,EACkBnnF,EAAK85D,QAAQv0E,QAA1C6hG,EADWD,EACXC,YAAa5kG,EADF2kG,EACE3kG,YAErBwd,EAAK85D,QAAQv0E,QAAQ8hG,WAAaD,EAAc5kG,IAhBjCykG,GAAAC,MAAAlnF,IAAA,eAmBJ,WAAM,IACTsnF,EAAiBtnF,EAAK2Q,MAAtB22E,aAER,OAAKA,GAAiBrmG,MAAMuvB,QAAQ82E,EAAarsG,MAG7CqsG,EAAarsG,KAAK2c,IAAI,SAACvR,EAAMV,GACzB,OACIkjD,GAAAllD,EAAA/D,cAAA,OACIwF,IAAKO,GAELkjD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCAAmCwF,EAAKw8F,SAE3Dh6C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCAAmCwF,EAAKu8F,UAE3D/5C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0EACXgoD,GAAAllD,EAAA/D,cAACo4B,GAAA,EAAD,CAAiB4qE,QAASv8F,EAAKu8F,QAAS2E,UAAWlhG,EAAKkhG,iBAhBjB,OApB/DvnF,EAAK85D,QAAUvwB,KAAMwwB,YAFN/5D,qPADeupC,KAAMC,yDAOpC94C,KAAK82F,8DAIL92F,KAAK82F,kDAsCL,OACI3+C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6B6+D,IAAKhvD,KAAKopE,SACjDppE,KAAK+2F,+ZCxCtB,IAyHeC,GAzHsB,SAAAtyF,GAShC,IAPGirF,EAOHjrF,EAPGirF,OACAqC,EAMHttF,EANGstF,mBACA4C,EAKHlwF,EALGkwF,aACAD,EAIHjwF,EAJGiwF,UACAz7C,EAGHx0C,EAHGw0C,YACGk8C,oXAEN6B,CAAAvyF,EAAA,0EACD,IAAKirF,GAAUx2C,KAAY9R,QAAQsoD,EAAOj/B,QAAS,OAAO,KAE1D,IAAM2jC,EAAW1E,EAAO79B,cAAgBwiC,KAClC4C,EAAa1mC,YAAam/B,EAAOj/B,OAAQkkC,GACzCuC,OAA4D9rG,IAA3C6tD,EAAYk+C,eAAeC,YAA4Bn+C,EAAYk+C,eAAeC,YAAYC,eAAiB,IAuChIhC,EAAiB,GAEnBC,KAAsBC,YAAY7F,EAAO3hG,GAAGL,YAC5C2nG,EAAeG,SAAU,EAEzBH,EAAe3qB,QAAS,EAG5B,IAAM4sB,EAAc38F,KAAW,CAC3B48F,UAAWnD,EAAS3wD,SAASj2C,OAAS,KAG1C,OACI0qD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yCACXgoD,GAAAllD,EAAA/D,cAACwmG,GAAA,EAAD,CACI+B,cAAc,SACdC,YAAY,aACZC,WAAU,GAAA1sG,OAAKopG,EAAS5wD,UAAd,KAAAx4C,OAA2BopG,EAAS3wD,UAC9CksD,SAAUD,EAAO3hG,GAAGL,WACpB49E,MAAO+pB,KAIfn9C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0CACXgoD,GAAAllD,EAAA/D,cAAC6hG,GAAA,EAAD,CAAW3nG,MAAOirG,EAASuD,aAG/Bz/C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,4CACXgoD,GAAAllD,EAAA/D,cAAC4gG,EAAA,EAAD,CACIC,SAAU,wCACV3mG,MAAOirG,EAASrE,iBAEpB73C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACXgoD,GAAAllD,EAAA/D,cAACgnG,GAAD2B,GAAA,GAAgCzC,EAAhC,CAAsCzF,OAAQA,EAAQiF,aAAcA,MAGxEz8C,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,gDACV9B,KAAK,SACLiqD,QAAS,kBAAMu3C,KAAWx/E,KAAKs/E,EAAO3hG,MAEtCmqD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+CACVkkG,EAAS5wD,WAEd0U,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sDACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,8CAAAlF,OAAgDssG,IACzDlD,EAAS3wD,SAEN2wD,EAASpE,WACT93C,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,4CAAhB,QAIJkkG,EAAS4B,gBACT99C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAAC6hG,GAAA,EAAD,CAAW3nG,MAAOirG,EAAS4B,oBA9ErB,WAC9B,IAAKiB,GAAc/9C,KAAY9R,QAAQ6vD,EAAW3sG,MAAO,OAAO,KAEhE,GAAIoqG,EAAW,CACX,IAAMiC,EAAepmC,YAAam/B,EAAOj/B,OAAQymC,GAEjD,OAAOh/C,GAAAllD,EAAA/D,cAAC4oG,GAAD,CAAyBlB,aAAcA,IAGlD,OACIz+C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uDACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kDAAf,IACMykG,GAENz8C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oDA5BhB6hG,EAAmBC,SAAS/qF,IAAI,SAACgrF,EAASzmG,GAC7C,IAAMorG,EAAYzqG,IAAI8qG,EAAD,QAAAjsG,OAAqBQ,EAArB,iBAAwC,KAE7D,OACI0sD,GAAAllD,EAAA/D,cAACo4B,GAAA,EAAD,CACIyoE,SAAS,mDACTr7F,IAAKw9F,EAAQC,OACbD,QAASA,EAAQE,IACjByE,UAAWA,QA0FdkB,uNC1HjB,IAuFeC,GAvFe,SAAAtzF,GAUzB,IARGirF,EAQHjrF,EARGirF,OACA7G,EAOHpkF,EAPGokF,KACAmP,EAMHvzF,EANGuzF,WACAtD,EAKHjwF,EALGiwF,UACAuD,EAIHxzF,EAJGwzF,WACAh/C,EAGHx0C,EAHGw0C,YACGk8C,oXAEN+C,CAAAzzF,EAAA,uEACG0zF,EAAe,KACbjB,OAA4D9rG,IAA3C6tD,EAAYk+C,eAAeC,YAA4Bn+C,EAAYk+C,eAAeC,YAAYC,eAAiB,IAElI/mG,MAAMuvB,QAAQ6vE,EAAOj/B,UACrB0nC,EAAezI,EAAOj/B,OAAO16C,KAAK,SAACq5C,GAAD,OAAWA,EAAMrhE,KAAOmpG,KAG9D,IAiDMkB,EAAez9F,KAAW,CAC5B09F,aAAcxP,IAAS+H,KAAUC,cAAgBoH,EACjDK,cAAe5D,GAAa7L,IAAS+H,KAAUC,aAC/C0H,qBAnDK7D,GAAasD,IAEXG,GAAgBA,EAAa3qG,OAAS,EAkD7CgrG,cAAeR,EACfS,uBA/COT,GACHnP,IAAS+H,KAAUC,cACnBsH,GACAA,EAAa3qG,OAAS,IA+C9B,OACI0qD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,+CAAAlF,OAAiDotG,IAC3DlgD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAtBd8nG,GAAcnP,IAAS+H,KAAUC,aAGlC34C,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,6CACVgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yCAAyC+iD,IAAIxtC,MAAMizF,eAAeC,QACjFzgD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wCACXgoD,GAAAllD,EAAA/D,cAAA,WAAMgkD,IAAIxtC,MAAMizF,eAAeE,WANgB,KAwBnD1gD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,4BA/CnB+nG,GAAcpP,IAAS+H,KAAUC,aAE7B34C,GAAAllD,EAAA/D,cAAC4pG,GAADC,GAAA,GACQ3D,EADR,CAEItM,KAAMA,EACN6G,OAAQA,EACRgF,UAAWA,EACXz7C,YAAaA,KAMrBf,GAAAllD,EAAA/D,cAAC8pG,GAADD,GAAA,GACQ3D,EADR,CAEItM,KAAMA,EACN6G,OAAQA,EACRgF,UAAWA,SCZZsE,GAxCc,SAAAv0F,GAOxB,IAEOw0F,EAPJvJ,EAKHjrF,EALGirF,OACA0E,EAIH3vF,EAJG2vF,SACAvL,EAGHpkF,EAHGokF,KACA6L,EAEHjwF,EAFGiwF,UAuBJ,OACIx8C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,4CACXgoD,GAAAllD,EAAA/D,cAACo4B,GAAA,EAAD,CAAgByoE,SAAS,8BAA8BqC,IAAKzC,EAAOwJ,QAE/DxE,GACA7L,IAAS+H,KAAUC,eAxBvBoI,EAAc,GAEd7E,EAASE,kBACT2E,EAAc,eACP7E,EAASK,gBAChBwE,EAAc,WAId/gD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCAAsC+oG,GACrD/gD,GAAAllD,EAAA/D,cAACo4B,GAAA,EAAD,CACIyoE,SAAS,sCACTqC,IAAKzC,EAAOyJ,mBCfjBC,GARc,SAAA30F,GAAc,IAAX3b,EAAW2b,EAAX3b,KAC5B,OACIovD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8CACXgoD,GAAAllD,EAAA/D,cAACo4B,GAAA,EAAD,CAAgByoE,SAAS,0BAA0BqC,IAAKrpG,EAAKuwG,UCU1DC,GAbc,SAAA70F,GAAc,IAAX3b,EAAW2b,EAAX3b,KAC5B,OACIovD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8CACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACXgoD,GAAAllD,EAAA/D,cAACo4B,GAAA,EAAD,CACIyoE,SAAS,wDACTyJ,QAAS,CAAC,UAAW,eACvBzwG,EAAKu/C,OAAS,QCCjBmxD,GARa,SAAA/0F,GAAc,IAAX3b,EAAW2b,EAAX3b,KAC3B,OACIovD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6CACXgoD,GAAAllD,EAAA/D,cAACo4B,GAAA,EAAD,CAAWkyE,QAAS,CAAC,UAAW,eAAgBzwG,EAAK2wG,MAAQ,OCiB1DC,GAnBe,SAAAj1F,GAAgD,IAA7CstF,EAA6CttF,EAA7CstF,mBAAoB4H,EAAyBl1F,EAAzBk1F,mBACjD,OACIzhD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAW,+CAER6hG,EAAmBC,SAAS/qF,IAAI,SAACgrF,EAASzmG,GACtC,IAAMorG,EAAYzqG,IAAIwtG,EAAD,QAAA3uG,OAA6BQ,EAA7B,iBAAgD,KAErE,OAAO0sD,GAAAllD,EAAA/D,cAACo4B,GAAA,EAAD,CACHyoE,SAAS,0BACTr7F,IAAKw9F,EAAQC,OACbD,QAASA,EAAQE,IACjByE,UAAWA,QCOpBgD,GAnBc,SAAAn1F,GAAc,IAAX3b,EAAW2b,EAAX3b,KACxB+wG,EAAY/wG,EAMhB,OAJKA,GAAiB,MAATA,IACT+wG,EAAY,KAIZ3hD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8CACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACXgoD,GAAAllD,EAAA/D,cAACo4B,GAAA,EAAD,CACIyoE,SAAS,0BACTyJ,QAAS,CAAC,UAAW,eACvBM,MCSHC,GAtBmB,SAAAr1F,GAAkD,IAA/CstF,EAA+CttF,EAA/CstF,mBAAoBrC,EAA2BjrF,EAA3BirF,OAAQiF,EAAmBlwF,EAAnBkwF,aACvDoF,EAAcrK,EAAM,IAAA1kG,OAAK2pG,IACzBqF,EAAajI,EAAmBkI,SAChCC,EAAaH,EAAcC,EAC7BT,EAAU,CAAC,UAAW,cAM1B,OAJIQ,GAAeC,IAAe9kE,OAAOl2B,MAAMk7F,KAC3CX,EAAU,CAACY,aAAiBD,GAAa,eAIzChiD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8CACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACXgoD,GAAAllD,EAAA/D,cAACo4B,GAAA,EAAD,CACIyoE,SAAS,0BACTyJ,QAASA,GACXQ,GAAe,QC0JlBK,GA1JS,SAAA31F,GAenB,IAbG8J,EAaH9J,EAbG8J,QACAwjF,EAYHttF,EAZGstF,mBACA6C,EAWHnwF,EAXGmwF,mBACAD,EAUHlwF,EAVGkwF,aACA0F,EASH51F,EATG41F,UACAvrB,EAQHrqE,EARGqqE,qBACAje,EAOHpsD,EAPGosD,QACAypC,EAMH71F,EANG61F,WACAzR,EAKHpkF,EALGokF,KACAsL,EAIH1vF,EAJG0vF,YACAoG,EAGH91F,EAHG81F,cACAthD,EAEHx0C,EAFGw0C,YAiCEuhD,EAAa,SAACC,GAChB,OAAOA,EAAYxzF,IAAI,SAACyoF,EAAQ16F,GAC5B,IAAM2kG,EAAqBppC,YAAam/B,EAAOj/B,OAAQkkC,GACjDP,EAAW1E,EAAO79B,cAAgBwiC,KAClC2D,EAAa5D,EAAS4D,aAAc,EACpCtD,EAnCO,SAACN,GAClB,SAAKA,KAEDA,EAASK,eACTL,EAASK,gBAAkBF,KAAgBC,aAKrCJ,EAASE,mBACfF,EAASE,oBAAsBC,KAAgBC,cAyB7BkG,CAAatG,GACzBuG,EAvBW,SAACvG,GACtB,SAAKA,KAEDA,EAASK,eACTL,EAASK,gBAAkBF,KAAgBqG,MAKrCxG,EAASE,mBACfF,EAASE,oBAAsBC,KAAgBqG,OAazBC,CAAiBzG,GACjC0G,EAAaxF,KAAsBC,YAAY7F,EAAO3hG,IACtDkqG,EAAavI,EAAOqL,oBAZZ,SAACrG,EAAWsD,EAAY8C,GAC1C,OAAO9C,GAActD,GAAaoG,EAY1BE,CAAchD,EAAYtD,EAAWoG,GAErCG,EAA0B,IAAlBvL,EAAO56C,OAEfylD,IAAkBpG,KACbO,GAAcA,GAAaiG,KAC5BM,GAAQ,GAIhB,IAAMC,EAAcvgG,KAAW,CAC3BwgG,SAAUF,EACV5C,aAAcxP,IAAS+H,KAAUC,cAAgBoH,EACjDK,cAAe5D,EACf8D,cAAeR,EACfoD,cAAeN,IAEnB,GAAI1G,EAAS5wD,UACT,OACI0U,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,oBAAAlF,OAAsBkwG,GAAezmG,IAAKi7F,EAAO3hG,IAEvDiqG,GACAnP,IAAS+H,KAAUC,cACnB34C,GAAAllD,EAAA/D,cAAC6hG,GAAA,EAAD,CAAW3nG,MAAOkyG,OAGtBnjD,GAAAllD,EAAA/D,cAACqsG,GAAD,CAAoBxyG,KAAM4mG,IAC1Bx3C,GAAAllD,EAAA/D,cAACssG,GAAD,CAAqBzyG,KAAM4mG,EAAQnhF,QAASA,IAC5C2pC,GAAAllD,EAAA/D,cAACusG,GAAD,CACIzJ,mBAAoBA,EACpB6C,mBAAoBA,EACpBD,aAAcA,EACd7lB,qBAAsBA,EACtB4gB,OAAQA,EACR0E,SAAUA,EACVvL,KAAMA,EACN7zF,MAAOA,EACPulG,cAAeA,EACftC,WAAYA,EACZvD,UAAWA,EACXsD,WAAYA,EACZ/+C,YAAaA,IAGjBf,GAAAllD,EAAA/D,cAACwsG,GAAD,CACI/L,OAAQA,EACR0E,SAAUA,EACVvL,KAAMA,EACN6L,UAAWA,IAGd7L,IAAS+H,KAAUa,SAAWv5C,GAAAllD,EAAA/D,cAACysG,GAAD,CAAsB5yG,KAAM4mG,EAAOiM,KACjE9S,IAAS+H,KAAUa,SAAWv5C,GAAAllD,EAAA/D,cAACysG,GAAD,CAAsB5yG,KAAM4mG,EAAOkM,KACjE/S,IAAS+H,KAAUa,SAAWv5C,GAAAllD,EAAA/D,cAACysG,GAAD,CAAsB5yG,KAAM4mG,EAAOmM,KACjEhT,IAAS+H,KAAUa,SAAWv5C,GAAAllD,EAAA/D,cAACysG,GAAD,CAAsB5yG,KAAM4mG,EAAOoM,KAG9DjT,IAAS+H,KAAUC,cACnB34C,GAAAllD,EAAA/D,cAAC8sG,GAAD,CACIhK,mBAAoBA,EACpB4H,mBAAoBA,IAI3B9Q,IAAS+H,KAAUoL,SAAW9jD,GAAAllD,EAAA/D,cAACgtG,GAAD,CAAqBnzG,KAAM4mG,IAEzD7G,IAAS+H,KAAUoL,SAAW9jD,GAAAllD,EAAA/D,cAACitG,GAAD,CAAsBpzG,KAAM4mG,IAC1D7G,IAAS+H,KAAUa,SAAWv5C,GAAAllD,EAAA/D,cAACktG,GAAD,CAAsBrzG,KAAM4mG,IAEvD7G,IAAS+H,KAAUC,cACnB34C,GAAAllD,EAAA/D,cAACmtG,GAAD,CACIrK,mBAAoBA,EACpBrC,OAAQA,EACRiF,aAAcA,QAgB1C,OACIz8C,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KACK23C,EAAW3pC,GACG,cAAdwpC,GAVEniD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCAAf,iBAWY,QAAdmqG,GAPEniD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oBAAf,OAQFsqG,EAAWF,sNCjKxB,IAoDe+B,GApDU,SAAA53F,GAenB,IAdF8J,EAcE9J,EAdF8J,QACA+tF,EAaE73F,EAbF63F,cACA3H,EAYElwF,EAZFkwF,aACA7lB,EAWErqE,EAXFqqE,qBACAje,EAUEpsD,EAVFosD,QACAypC,EASE71F,EATF61F,WACAiC,EAQE93F,EARF83F,gBACAC,EAOE/3F,EAPF+3F,cACAlsC,EAME7rD,EANF6rD,cACAihC,EAKE9sF,EALF8sF,aACAN,EAIExsF,EAJFwsF,oBACAC,EAGEzsF,EAHFysF,gBACAj4C,EAEEx0C,EAFFw0C,YACGk8C,oXACDsH,CAAAh4F,EAAA,iNACIstF,EAAqBxhC,YAAa+rC,EAAcI,aAAc/H,GAEpE,IAAK5C,GAAsB74C,KAAY9R,QAAQ2qD,EAAmBC,UAAW,OAAO,KAEpF,IAAM2K,EAAaC,YAAwB/rC,GAErC6/B,EAAW/1F,KAAW,CACxBkiG,oBAAqBF,IAGzB,OACIzkD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,sBAAAlF,OAAwB0lG,IAClCx4C,GAAAllD,EAAA/D,cAAC6tG,GAADC,GAAA,CACIhL,mBAAoBA,EACpBR,aAAcA,EACdN,oBAAqBA,EACrBC,gBAAiBA,GACbiE,IAERj9C,GAAAllD,EAAA/D,cAAC+tG,GAADD,GAAA,CACIxuF,QAASA,EACTwjF,mBAAoBA,EACpB4C,aAAcA,EACd7lB,qBAAsBA,EACtBje,QAASA,EACTypC,WAAYA,EACZiC,gBAAiBA,EACjBC,cAAeA,EACflsC,cAAeA,EACfrX,YAAaA,GACTk8C,+xBCkCL8H,eAhFX,SAAAA,EAAYj9E,GAAO,IAAA3Q,UAAA,uCAAA4tF,4DAAAC,CAAAn9F,QACfo9F,GAAAF,GAAA3zG,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,UAwBW,WAAM,IAGbq9F,EAAY,GAEhB,OAJiB/tF,EAAK2Q,MAAd6oE,MAKJ,KAAK+H,KAAUC,aACXuM,EAAY,2CACZ,MACJ,KAAKxM,KAAUa,QACX2L,EAAY,sCACZ,MACJ,QACIA,EAAY,GAGpB,OAAOA,MAzCQ,oBAAAC,MAAAhuF,2FAEfA,EAAK85D,QAAUvwB,KAAMwwB,YACrB/5D,EAAKiuF,WAAa1kD,KAAMwwB,YAHT/5D,qPADeupC,KAAMC,yDAQpC94C,KAAKw9F,WAAa,IAAIC,KAClBz9F,KAAKopE,QAAQv0E,QACbmL,KAAKu9F,WAAW1oG,sDAKhBmL,KAAKw9F,YACLx9F,KAAKw9F,WAAWE,wDAKhB19F,KAAKw9F,YACLx9F,KAAKw9F,WAAWl0B,2CAuBf,IAAAnX,EAODnyD,KAAKigB,MALLw8E,EAFCtqC,EAEDsqC,cACAjC,EAHCroC,EAGDqoC,cACA1R,EAJC32B,EAID22B,KACA5vC,EALCiZ,EAKDjZ,YACGk8C,oXANFuI,CAAAxrC,EAAA,wDASCyrC,EAAuBhjG,KAAW,CACpC29F,cAAeiC,EACfqD,oBAAqB/U,IAAS+H,KAAUC,cAAgB2L,IAG5D,OACItkD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAW,+BACX6+D,IAAKhvD,KAAKopE,SAEVjxB,GAAAllD,EAAA/D,cAAA,OACIiB,UAAS,8BAAAlF,OAAgC+U,KAAK89F,eAArC,KAAA7yG,OAAuD2yG,GAChE5uC,IAAKhvD,KAAKu9F,YAEVplD,GAAAllD,EAAA/D,cAAC6uG,GAADC,GAAA,GACQ5I,EADR,CAEItM,KAAMA,EACN0R,cAAeA,EACfiC,cAAeA,EACfvjD,YAAaA,6wBCrCtB+kD,eAtCX,SAAAA,EAAYh+E,GAAO,IAAA3Q,QAAA,uCAAA2uF,4DAAAC,CAAAl+F,QACfm+F,GAAAF,GAAA10G,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,UAaM,WACFsP,EAAK2Q,MAAMq4B,SACXhpC,EAAK2Q,MAAMq4B,WAhBA,cAAA8lD,MAAA9uF,6BAAA,2EAGfA,EAAK85D,QAAUvwB,KAAMwwB,YAHN/5D,qPADaupC,KAAMC,yDAQlCvgB,IAAkBC,cAAc1qB,KAAK9N,KAAKopE,QAAQv0E,wDAIlD0jC,IAAkBC,cAAc8wC,QAAQtpE,KAAKopE,QAAQv0E,0CAUrD,OACIsjD,GAAAllD,EAAA/D,cAAA,KACIiB,UAAU,kDACVyiD,KAAK,uCACLoc,IAAKhvD,KAAKopE,QACVzO,oBAAkB,gBAClBriB,QAASt4C,KAAKs4C,SAEdH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qCAAqC0B,MAAM,KAAK8gC,OAAO,KAClEiyB,UAAU,SACVzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,iOCH7Bw5C,GAAkB,SAAC1O,GACrB,MAAwC,OAAjCA,EAAO19F,SAASihG,cAA0D,QAAjCvD,EAAO19F,SAASihG,cAA2D,QAAjCvD,EAAO19F,SAASihG,cAA2D,OAAjCvD,EAAO19F,SAASihG,2sBCOxJ,IAAMoL,GAA6B,6BAC7BC,GAA8B,8BAsXrBC,eAnXX,SAAAA,EAAYv+E,GAAO,IAAA3Q,IAAA,uCAAAkvF,4DAAAC,CAAAz+F,QACf0+F,GAAAF,GAAAj1G,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,QADe2+F,GAAAC,MAAAtvF,IAAA,uBA8DI,WACnB,IAAIw5E,EAAO+H,KAAUC,aAEjBxhF,EAAK5J,MAAMojF,OAAS+H,KAAUC,cAC9BhI,EAAO+H,KAAUoL,QACjB/sD,KAASC,KAAKovD,MAEdrvD,KAASC,KAAKmvD,IACd/lD,KAAIzjD,KAAK,cAAe,eAAgB,wBAG5Cwa,EAAKsyC,SAAS,CAAEknC,OAAM+V,gBAAiBvvF,EAAK5J,MAAMkvF,iBAzEnC+J,GAAAC,MAAAtvF,IAAA,uBA4EI,WACb4jC,IAAI67B,uBAAyB+vB,KAC/B5rD,IAAI67B,uBAAyBb,KAC7B5+D,EAAK5J,MAAMojF,OAAS+H,KAAUC,cAE9BxhF,EAAKsyC,SAAS,CACVknC,KAAM+H,KAAUoL,YAlFT0C,GAAAC,MAAAtvF,IAAA,mBAuFA,WACf,IAAIw5E,EAAO+H,KAAUa,QAEjBpiF,EAAK5J,MAAMojF,OAAS+H,KAAUa,QAC9B5I,EAAO+H,KAAUoL,QAEjB1jD,KAAIzjD,KAAK,cAAe,SAAU,eAGtCwa,EAAKsyC,SAAS,CAAEknC,WAhGD6V,GAAAC,MAAAtvF,IAAA,WAmGR,SAACyvF,GACRzvF,EAAKsyC,SAAS,CAAEi9C,gBAAiBE,MApGlBJ,GAAAC,MAAAtvF,IAAA,0BAuGO,WACjBA,EAAK5J,MAAMs5F,gBACZzmD,KAAIzjD,KAAK,cAAe,aAAc,qBAE1Cwa,EAAKsyC,SAAS,CAAEo9C,gBAAiB1vF,EAAK5J,MAAMs5F,mBA3G7BL,GAAAC,MAAAtvF,IAAA,mBA8GA,SAAC2vF,GAChB,OAAOA,EAAYtvF,OAAO,SAACggF,GAAD,OACtB4F,KAAsBC,YAAY7F,EAAO3hG,GAAGL,gBAhHjCgxG,GAAAC,MAAAtvF,IAAA,gBAmHH,SAAC2vF,GAEb,OADwBvQ,GAAkBp/E,EAAK5J,MAAM0rF,aAC9BrC,cAAckQ,EAAa3vF,EAAK5J,MAAM4rF,sBArH9CqN,GAAAC,MAAAtvF,IAAA,iBA4IF,SAACjhB,GACd,IAAIijG,EAAqBhiF,EAAK5J,MAAM4rF,mBAGhCA,EADAhiF,EAAK5J,MAAM0rF,cAAgB/iG,IACLijG,EAK1BhiF,EAAKsyC,SAAS,CACVwvC,YAAa/iG,EACbijG,yBAvJWqN,GAAAC,MAAAtvF,IAAA,wBA2JK,WACpBA,EAAKsyC,SAAS,CACVs9C,mBAAoB3J,KAAsB4J,aA7J/BR,GAAAC,MAAAtvF,IAAA,iBAiKF,SAACsgF,GACdtgF,EAAKsyC,SAAS,CAAEw9C,eAAgBxP,EAAUyP,aAAa,MAlKxCV,GAAAC,MAAAtvF,IAAA,qBAqKE,SAACwhD,GAClB,IAAMwuC,EAAsBC,aACxBzuC,EACA,KACA,CAAC,yBAA0B,yBAC3B,SAACn7D,GAAD,OAAUwiD,GAAAllD,EAAA/D,cAACswG,GAAA,EAAD,CAAkBtnD,MAAOviD,EAAKm8D,gBACxCxiD,EAAKmwF,sBACL,GAGErnC,EAAYmnC,aACdzuC,EACA,uBACA,CAAC,uBAAwB,+BACzB,SAACn7D,GAAD,OAAUwiD,GAAAllD,EAAA/D,cAACswG,GAAA,EAAD,CAAmBtnD,MAAOviD,EAAKm8D,gBACzCxiD,EAAKmwF,sBAGT,OAAOH,EAAoBr0G,OAAOmtE,KAvLnBumC,GAAAC,MAAAtvF,IAAA,uBA0LI,SAACowF,EAAkBC,GACtCrwF,EAAKsyC,SAAS,CAAEg+C,wBAAyBF,IACrCC,GAASA,EAAMlyG,OAAS,GACxB8qD,KAAIzjD,KAAK,cAAe,SAAU6qG,EAAM7/F,KAAK,QA7LlC6+F,GAAAC,MAAAtvF,IAAA,sBAiMG,SAACc,GACnBd,EAAKsyC,SAAS,CAAEi+C,aAAczvF,MAlMfuuF,GAAAC,MAAAtvF,IAAA,oBA2NC,WAChBipC,KAAIzjD,KAAK,cAAe,cAAe,wBAzNvCwa,EAAK5J,MAAQ,CACTojF,KAAM+H,KAAUoL,QAChB6D,aAAc,KACdjB,gBAAiB,KACjBK,mBAAoB3J,KAAsB4J,SAC1C/N,YAAavC,KAAUC,SACvBwC,oBAAoB,EACpBuO,cAAc,EACdD,wBAAyB,GACzBZ,gBAAgB,EAChBe,QAAQ,GAbGzwF,qPADYupC,KAAMC,yDAmBjC5J,KAAS9W,YAAY4nE,KAAoChgG,KAAKigG,uBAC9D/wD,KAAS9W,YAAY8nE,KAAuClgG,KAAKigG,uBACjE/wD,KAAS9W,YAAYu2C,IAA2B3uE,KAAKmgG,sBACrDngG,KAAKogG,6DAILpgG,KAAKogG,+DAILlxD,KAASszC,eAAewd,KAAoChgG,KAAKigG,uBACjE/wD,KAASszC,eAAe0d,KAAuClgG,KAAKigG,uBACpE/wD,KAASszC,eAAe7T,IAA2B3uE,KAAKmgG,8DAG5C,IACJjnD,EAAgBl5C,KAAKigB,MAArBi5B,YACA2lD,EAAoB7+F,KAAK0F,MAAzBm5F,gBAER,GAAK3lD,EAAL,CAEA,IAAMmnD,EAAcrgG,KAAK0F,MAAMo6F,aACzBA,EAAe1zG,IAAI8sD,EAAa,2CAEtC,GAAIl5C,KAAK0F,MAAMm5F,iBACXyB,YAAuBR,EAAcjB,GAOrC,OALA0B,YAAkB1uC,KAAUiuC,GAAejB,QAEtC2B,YAAoBH,EAAaP,IAClC9/F,KAAK4hD,SAAS,CAAEk+C,kBAKpBU,YAAoBH,EAAaP,IAErC9/F,KAAK4hD,SAAS,CACVk+C,eACAjB,gBAAiB,4CA8Db/tC,GAAS,IAAAwG,EACmCt3D,KAAK0F,MAAjDs5F,EADS1nC,EACT0nC,eAAgBY,EADPtoC,EACOsoC,wBACpBa,EAAmB3vC,EAevB,OAbIkuC,IACAyB,EAAmBzgG,KAAK0gG,iBAAiBD,IAGzCb,EAAwBnyG,SACxBgzG,EAAmBA,EAAiB9wF,OAAO,SAACggF,GACxC,OAAOiQ,EAAwB5pF,KAAK,SAAC2qF,GAAD,OAChCA,EAAiB3yG,KAAO2hG,EAAO3hG,QAIxBgS,KAAK4gG,cAAcH,0CA8D3B,IACH5L,EAAuB70F,KAAKigB,MAA5B40E,mBACAD,EAAqCC,EAArCD,aAAciM,EAAuBhM,EAAvBgM,mBAEtB,OAAsB,IAAjBjM,GACuB,IAAvBiM,GAAmD,IAAvBA,GAC7BhM,EAAmBiM,QAEZ,aAGNlM,EAAe,GACE,IAAjBA,IAC2B,IAAvBiM,GAAmD,IAAvBA,KACjChM,EAAmBiM,QAEZ,MAGJ,oCAOF,IAAAvxF,EAAAvP,KAAAmyD,EAODnyD,KAAKigB,MALLi5B,EAFCiZ,EAEDjZ,YACA27C,EAHC1iC,EAGD0iC,mBACA0H,EAJCpqC,EAIDoqC,cACAnI,EALCjiC,EAKDiiC,YACA5lF,EANC2jD,EAMD3jD,QANCyzD,EAQ2CjiE,KAAK0F,MAA7CojF,EARH7mB,EAQG6mB,KAAMgX,EART79B,EAQS69B,aAAcjB,EARvB58B,EAQuB48B,gBAExB/tC,EAAU9wD,KAAK+gG,YAAYlM,EAAmB/jC,SAC9CkwC,EAAa,GACb1G,EAAY,GAEhB,GAAIt6F,KAAK0F,MAAM0rF,cAAgBvC,KAAUC,UACrC9uF,KAAK0F,MAAM4rF,qBACVtxF,KAAK0F,MAAMk6F,wBAAwBnyG,SACnCuS,KAAK0F,MAAMs5F,iBAEZ1E,EAAYt6F,KAAKihG,gBAEF,CACX,IAAMC,ED7PM,SAACC,EAAcC,GASvC,OA3CmB,SAACtwC,EAASgwC,GAC7B,OAAOO,KAAUvwC,EAAS,SAAC5iE,GACvB,IAAIglG,EASJ,GAPIA,EADDhlG,EAAI+D,SAASihG,aACImL,GAAgBnwG,GAAkEA,EAAI+D,SAASihG,aAAxEj9E,SAAS/nB,EAAI+D,SAASihG,aAAajlG,QAAQ,IAAK,IAAK,IAG7E,GAIfgR,MAAMi0F,IAAkC,KAAjBA,EAAoB,CAC3C,IAAImL,GAAgBnwG,GAChB,OAAO,EAEX,GAAGA,EAAI+D,SAASqvG,UAAYR,EACxB,OAAO,EAIf,OAAO5N,EAAe4N,IAkBTS,CAAeH,EAJ8CxyG,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAT,MC6PjC4yG,EAAa,EAAM3M,EAAmB/jC,QAAS+jC,EAAmBiM,SAE1FhwC,EAAUowC,EAAgB,GAC1BF,EAAaE,EAAgB,GAIrC,IAAM1H,EAAU,CAACx5F,KAAK0F,MAAMojF,MAExB9oF,KAAKigB,MAAMu6E,gBAAkBpG,GAC7BoF,EAAQ1kG,KAAK,YAGbs/F,GACAoF,EAAQ1kG,KAAK,gBAGjB,IAAMg1E,EAAS23B,YAAe,cAAejI,GACvCkI,EAAkB9mG,KAAW,CAC/B+mG,gBAAiB3hG,KAAK0F,MAAMm6F,eAG5BjL,EAAe17C,EAAYqX,cAM/B,OAJIu4B,IAAS+H,KAAUC,cAAgB9wF,KAAK0F,MAAMm5F,kBAC9CjK,EAAeiK,GAIf1mD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAW25E,GACZ3xB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,8BAAAlF,OAAgCy2G,IAC1CvpD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qCAEP24F,IAAS+H,KAAUC,cACnB34C,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KAEgC,IAAxBg9C,EAAaryG,QACb0qD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iDAAiD2vG,EAAa,GAAG51G,OAGhF41G,EAAaryG,OAAS,GACtB0qD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACXgoD,GAAAllD,EAAA/D,cAAC0yG,GAAA,EAAD,CACItpG,QAASwnG,EACT5vE,SAAUlwB,KAAK6hG,aAMnC1pD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qCACXgoD,GAAAllD,EAAA/D,cAAC6hG,GAAA,EAAD,CAAW3nG,MAAOolB,EAAQszF,eAGlC3pD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCACXgoD,GAAAllD,EAAA/D,cAAC6yG,GAAA,EAAD,CACIC,gBACIC,aACIpN,EAAmB/jC,QACnB,CACI,yBACA,yBAEJ9wD,KAAKy/F,sBAGbyC,YAAaliG,KAAKmiG,mBAAmBtN,EAAmB/jC,SACxDsxC,cAAepiG,KAAKqiG,uBAI5BlqD,GAAAllD,EAAA/D,cAACozG,GAAD,CACIvS,SAAU,0BACVM,oBAAqBrwF,KAAK0F,MAAMs5F,eAChC1mD,QAASt4C,KAAKuiG,0BAGlBpqD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCACXgoD,GAAAllD,EAAA/D,cAACszG,GAAD,CAAuBlqD,QAASt4C,KAAKyiG,qBAGzCtqD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCACXgoD,GAAAllD,EAAA/D,cAACwzG,GAAD,CACI5Z,KAAM9oF,KAAK0F,MAAMojF,KACjB4H,qBAAsB1wF,KAAK0wF,0BAMvC1wF,KAAK0F,MAAMs5F,iBACVluC,EAAQrjE,QACT0qD,GAAAllD,EAAA/D,cAACyzG,GAAA,EAAD,CAAgBzqD,MAAO0qD,OAGvB9xC,EAAQrjE,QACR0qD,GAAAllD,EAAA/D,cAAC2zG,GAAD,CACIr0F,QAASxO,KAAKigB,MAAMzR,QACpBqmF,mBAAoB70F,KAAKigB,MAAM40E,mBAC/B0H,cAAeA,EACf3H,aAAcA,EACd7lB,qBAAsB77B,IAAI67B,qBAC1BurB,UAAWA,EACXxpC,QAASA,EACTypC,WAAYyG,EACZxE,gBAAiBx8F,KAAK0F,MAAMw5F,mBAC5BzC,cAAez8F,KAAK0F,MAAMs5F,eAC1BxE,cAAex6F,KAAKigB,MAAMu6E,cAC1BpG,YAAap0F,KAAKigB,MAAMm0E,YACxBtL,KAAM9oF,KAAK0F,MAAMojF,KACjBqI,gBAAiB,CACbC,YAAapxF,KAAK0F,MAAM0rF,YACxBE,mBAAoBtxF,KAAK0F,MAAM4rF,oBAEnCE,aAAcxxF,KAAK8iG,iBACnB5R,oBAAqB,SAAC7iG,GAAD,OAAUkhB,EAAK+iF,eAAejkG,IACnD00G,eAAgB/iG,KAAK+iG,eACrB7pD,YAAaA,+oBCzY/B8pD,+kBAA0BnqD,KAAMC,yDAE9BC,IAAch1C,UAAUi1C,IAAcC,cACtCF,IAAch1C,UAAUi1C,IAAciqD,SACtClqD,IAAch1C,UAAUi1C,IAAckqD,aACtCnqD,IAAch1C,UAAUi1C,IAAcsX,uDAItCvX,IAAch0C,YAAYi0C,IAAcC,cACxCF,IAAch0C,YAAYi0C,IAAciqD,SACxClqD,IAAch0C,YAAYi0C,IAAckqD,aACxCnqD,IAAch0C,YAAYi0C,IAAcsX,gDAIxC,OAAOtwD,KAAKigB,MAAM40E,mBAAmB/jC,QAAQp7D,KAAK,SAACi6F,GAC/C,OAAQA,EAAO79B,eACV69B,EAAO79B,aAAa4iC,eACjB/E,EAAO79B,aAAaqxC,kBACpBxT,EAAO79B,aAAammC,oDAKhC,OAAOj4F,KAAKigB,MAAM40E,mBAAmB/jC,QAAQp7D,KAAK,SAACi6F,GAC/C,OAAOA,EAAO79B,cAAgB69B,EAAO79B,aAAammC,8CAIjD,IAAA9lC,EAODnyD,KAAKigB,MALLi5B,EAFCiZ,EAEDjZ,YACA27C,EAHC1iC,EAGD0iC,mBACA0H,EAJCpqC,EAIDoqC,cACA6G,EALCjxC,EAKDixC,gBACA50F,EANC2jD,EAMD3jD,QAGJ,QAAoBnjB,IAAhB6tD,QACoB7tD,IAApB+3G,QACkB/3G,IAAlBkxG,QACuBlxG,IAAvBwpG,EAEA,OACI18C,GAAAllD,EAAA/D,cAACkjE,GAAA,EAAD,CAAkBC,UAAW,KACzBla,GAAAllD,EAAA/D,cAACojE,GAAA,EAAD,OAKZ,IAAM1nD,EAASxe,IAAI8sD,EAAa,8BAEhC,IAAKtuC,EAAOyF,OACP6oC,EAAYqX,gBACZ6yC,IACA7G,IACA1H,GACD17C,KAAY9R,QAAQk1D,EAAcI,cACpC,CACE,IAAM0G,EAAe,CACjBj9D,MAAOx7B,EAAOw7B,MACd9zC,KAAMsY,EAAOwtC,SACb2O,UAAWn8C,EAAOm8C,WAEtB,OAAO5O,GAAAllD,EAAA/D,cAACyzG,GAAA,EAAD,CACHzqD,MAAOmrD,EACP7J,QAAS,CAAC8J,KAAWC,MAAOD,KAAWE,KACvC1B,WAActzF,EAAQszF,aAI9B,GAAI3oD,KAAY9R,QAAQwtD,EAAmB/jC,SACvC,OAAO3Y,GAAAllD,EAAA/D,cAACu0G,GAAD,CAAsB3yC,QAASsyC,EAAgBtyC,UAG1D,IAAM0pC,EAAgBx6F,KAAKw6F,gBACrBpG,EAAcp0F,KAAKo0F,cAEzB,OACIj8C,GAAAllD,EAAA/D,cAACw0G,GAAD,CACIl1F,QAASA,EACT0qC,YAAaA,EACbqjD,cAAeA,EACf1H,mBAAoBA,EACpB2F,cAAeA,EACfpG,YAAaA,kMAM7B4O,GAAkBvqD,UAAY,CAC1BjqC,QAASkqC,KAAUnsD,OAAOu4D,YAG9B,IA+Be6+C,GALkBlqD,aA1BT,SAAC/zC,GACrB,IAAM09F,EAAkB19F,EAAMg0C,QAAQV,IAAciqD,SAC9CpO,EAAqBnvF,EAAMg0C,QAAQV,IAAckqD,aAEvD,YAAwB73G,IAApB+3G,EAAsC,IAGtCA,GACAvO,IACC17C,KAAY9R,QAAQwtD,EAAmB/jC,UAExC+jC,EAAmB/jC,QAAQtrD,QAAQ,SAACmqF,GAChCA,EAAO79B,aACH8xC,YAAsBR,EAAiBzT,EAAO3hG,KAC9CsmG,OAIJ,CACJp7C,YAAaxzC,EAAMg0C,QAAQV,IAAcC,cACzCsjD,cAAe72F,EAAMg0C,QAAQV,IAAcsX,QAC3CukC,qBACAuO,qBAMJ,KAF6B3pD,CAG/BupD,gdC5Gaa,eAvBX,SAAAA,IAAqB,IAAAvsE,EAAAhoB,qCAAAu0F,4DAAAC,CAAA9jG,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAysE,GAAAF,IAAAt6G,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACK8N,OAFYwB,qPADU0oB,sCAO3Bh4B,KAAK6L,6CAILiuC,KAASC,uBAAuB/5C,KAAKlS,0CAIrCgsD,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAACuV,GAAA,EAAD,CAAU7X,MAAOA,MACburD,GAAAllD,EAAA/D,cAAC80G,GAAD,CAAmBx1F,QAASxO,KAAKwO,WAErCxO,KAAKlS,uMCtBjByqC,IAAkBC,cAAchE,OAAO,cAAeqvE,wfC+CvCI,+kBA9C0BprD,KAAMC,+CACjC62C,GAAQ,IACNnhF,EAAYxO,KAAKigB,MAAjBzR,QACJyjD,EAAY,KAMhB,OAJIzjD,EAAQ01F,gBACRjyC,EAAYkyC,aAAsB31F,EAAQ01F,cAAc1pD,IAAKm1C,EAAOC,WAIpEz3C,GAAAllD,EAAA/D,cAAA,KACIiB,UAAU,yDACVyiD,KAAMqf,EACNliE,OAAO,SACPq0G,IAAI,sBACJ1vG,IAAKi7F,EAAOC,UAEZz3C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCACXgoD,GAAAllD,EAAA/D,cAAC4gG,EAAA,EAAD,CACIC,SAAU,mCACV3mG,MAAOumG,EAAOK,iBAElB73C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8CAA8Cw/F,EAAOjsD,SAApE,KACAyU,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+CAA+Cw/F,EAAOlsD,+CAOhF,IAAAn0B,EAAAtP,KACG8wD,EAAY9wD,KAAKigB,MAAjB6wC,QAER,IAAKvgE,MAAMuvB,QAAQgxC,GAAU,OAAO,KAEpC,IAAMo/B,EAAgBlC,GAAUl9B,EAAS,YAEzC,OACI3Y,GAAAllD,EAAA/D,cAAA,WACKghG,EAAc/hG,MAAM,EAAG,IAAI+Y,IAAI,SAACyoF,GAAD,OAAYrgF,EAAKq+D,UAAUgiB,4wBChCrE0U,eACF,SAAAA,EAAYpkF,GAAO,IAAA3Q,UAAA,uCAAA+0F,4DAAAC,CAAAtkG,QACfukG,GAAAF,GAAA96G,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,UA0BS,SAAC8wD,GAAY,IACdtiD,EAAYc,EAAK2Q,MAAjBzR,QACJksF,EAAc,GAElB,OAAKvhD,KAAY9R,QAAQ74B,EAAQg2F,WAO7BrrD,KAAY9R,QAAQypB,GAAmB4pC,EAEpC5pC,EAAQ3iE,MAAM,EAAGqgB,EAAQi2F,mBAR5Bn1F,EAAKo1F,uBAAwB,EAC7BhK,EAAc5pC,EAAQnhD,OAAO,SAACggF,GAAD,OAAanhF,EAAQg2F,UAAUv5F,SAAS0kF,EAAO3hG,WAjCjE,kBAAA22G,MAAAr1F,2FAGfA,EAAKwhD,QAAU,GACfxhD,EAAKo1F,uBAAwB,EAC7Bp1F,EAAKs1F,cAAgB,CACjB,CAAE52G,GAAI62G,KAAW/V,UACjB,CAAE9gG,GAAI62G,KAAW/4E,MACjB,CAAE99B,GAAI62G,KAAWC,KACjB,CAAE92G,GAAI62G,KAAWE,OAAQC,UAAW,OACpC,CAAEh3G,GAAI62G,KAAW3zC,KAAM8zC,UAAW,QAClC,CAAEh3G,GAAI62G,KAAWxV,MAAO2V,UAAW,UAXxB11F,qPADeupC,KAAMC,yDAiBpCC,IAAch1C,UAAUi1C,IAAcC,cACtCF,IAAch1C,UAAUi1C,IAAciqD,SACtClqD,IAAch1C,UAAUi1C,IAAckqD,4DAItCnqD,IAAch0C,YAAYi0C,IAAcC,cACxCF,IAAch0C,YAAYi0C,IAAciqD,SACxClqD,IAAch0C,YAAYi0C,IAAckqD,8CAmBnC,IAAA/wC,EAMDnyD,KAAKigB,MAJLzR,EAFC2jD,EAED3jD,QACA0qC,EAHCiZ,EAGDjZ,YACA27C,EAJC1iC,EAID0iC,mBACAuO,EALCjxC,EAKDixC,gBAGJ,QAAoB/3G,IAAhB6tD,QACuB7tD,IAAvBwpG,QACoBxpG,IAApB+3G,EAEA,OACIjrD,GAAAllD,EAAA/D,cAACkjE,GAAA,EAAD,CAAkBC,UAAW,KACzBla,GAAAllD,EAAA/D,cAACojE,GAAA,EAAD,OAIZ,IAAM1nD,EAASxe,IAAI8sD,EAAa,8BAEhC,OAAKtuC,IACiB,eAAjB4D,EAAQngB,MAA0Buc,EAAOq6F,UACzCpQ,GACAuO,EAKDlqD,EAAYgsD,kCAAoC/rD,KAAY9R,QAAQwtD,EAAmB/jC,SAChF3Y,GAAAllD,EAAA/D,cAACi2G,GAAD,CACH32F,QAASA,EACTsiD,QAASsyC,EAAgBtyC,WAKjC9wD,KAAK8wD,QAAU9wD,KAAKolG,WAAWvQ,EAAmB/jC,SAG9C3Y,GAAAllD,EAAA/D,cAACm2G,GAAA,EAAD,CACIT,cAAe5kG,KAAK4kG,cACpB/P,mBAAoBA,EACpB6P,sBAAuB1kG,KAAK0kG,sBAC5BY,cAAe,GACfC,UAAWvlG,KAAK0kG,sBAAwBl2F,EAAQi2F,iBAAmBj2F,EAAQg3F,aAC3E10C,QAAS9wD,KAAK8wD,QACd20C,wBAAyBj3F,EAAQi3F,wBACjCC,oBAAqBl3F,EAAQk3F,oBAC7BxB,cAAe11F,EAAQ01F,cACvBpC,WAAatzF,EAAQszF,WACrB6D,yBAA4B/6F,EAAOyF,KACnCu1F,sBAAyBh7F,EAAOwtC,YA1B7B,mMAgCnBisD,GAAwB5rD,UAAY,CAChCjqC,QAASkqC,KAAUnsD,QAGvB,IA4Bes5G,GALwBpsD,aAvBf,SAAC/zC,GACrB,IAAM09F,EAAkB19F,EAAMg0C,QAAQV,IAAciqD,SAC9CpO,EAAqBnvF,EAAMg0C,QAAQV,IAAckqD,aAEvD,YAAwB73G,IAApB+3G,EAAsC,IAGtCA,GACAvO,IACC17C,KAAY9R,QAAQwtD,EAAmB/jC,UAExC+jC,EAAmB/jC,QAAQtrD,QAAQ,SAACmqF,GAChCA,EAAO79B,aAAe8xC,YAAsBR,EAAiBzT,EAAO3hG,MAIpE,CACJkrD,YAAaxzC,EAAMg0C,QAAQV,IAAcC,cACzC47C,qBACAuO,qBAMJ,KAFmC3pD,CAGrC4qD,gdCjHayB,eAvBX,SAAAA,IAAqB,IAAAxuE,EAAAhoB,qCAAAw2F,4DAAAC,CAAA/lG,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAA0uE,GAAAF,IAAAv8G,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACK8N,OAFYwB,qPADgB0oB,sCAOjCh4B,KAAK6L,6CAILiuC,KAASC,uBAAuB/5C,KAAKlS,0CAIrCgsD,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAACuV,GAAA,EAAD,CAAU7X,MAAOA,MACburD,GAAAllD,EAAA/D,cAAC+2G,GAAD,CAAyBz3F,QAASxO,KAAKwO,WAE3CxO,KAAKlS,2wBCtBjByqC,IAAkBC,cAAchE,OAAO,qBAAsBsxE,gBCDxCI,eACjB,SAAAA,EAAYjmF,GAAO,IAAA3Q,IAAA,uCAAA42F,4DAAAC,CAAAnmG,OACfsP,MAAA82F,GAAAF,GAAA38G,KAAAyW,KAAMigB,+CAANjgB,SAEKqmG,gBAAkB/2F,EAAK+2F,gBAAgBv5F,KAArBw5F,MAAAh3F,KAHRA,qPADsBupC,KAAM0tD,kDAW3C,OAH6BvmG,KAAKigB,MAAMumF,YACnCxmG,KAAKigB,MAAMumF,WAAWC,YAAczmG,KAAKigB,MAAMumF,WAAWE,UAIvDvuD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAS,6BAAAlF,OAA+B+U,KAAKigB,MAAM0mF,cAAgB,aAAe,KAClFxuD,GAAAllD,EAAA/D,cAAA,UAAQb,KAAK,SACT8B,UAAU,mDACVmoD,QAASt4C,KAAKqmG,iBAFlB,cAQL,+CAIPrmG,KAAKigB,MAAM2mF,2MAInBV,GAAgBztD,UAAY,CACxBkuD,cAAejuD,KAAUqM,KAAKD,WAC9B0hD,WAAY9tD,KAAUnsD,OAAOu4D,WAC7B8hD,WAAYluD,KAAUx3C,KAAK4jD,YCrCxB,IAAM+hD,GAAyB,YACzBC,GAAsB,+dCI7BC,+kBAAwBluD,KAAMC,yDAE5BC,IAAch1C,UAAUi1C,IAAcC,6DAItCF,IAAch0C,YAAYi0C,IAAcC,+CAGnC,IACGC,EAAgBl5C,KAAKigB,MAArBi5B,YAER,IAAKA,IAAgBA,EAAY8tD,WAAY,OAAO,KAEpD,IAAM9uD,EAAQgB,EAAY8tD,WAE1B,OACI7uD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,oBAAoByiD,KAAMsF,EAAMG,SACzCF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACXgoD,GAAAllD,EAAA/D,cAAC6hG,GAAA,EAAD,CAAW3nG,MAAO8uD,EAAM+uD,gBAE5B9uD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8BACXgoD,GAAAllD,EAAA/D,cAAA,SAAIgpD,EAAM9R,MAAV,KACA+R,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,+BAA+B+nD,EAAME,0MAgB1D8uD,GALmBztD,aAJV,SAAC/zC,GAAD,MAAY,CAChCwzC,YAAaxzC,EAAMg0C,QAAQV,IAAcC,gBAKzC,KAF8BQ,CAGhCstD,gdCRaI,eA1BX,SAAAA,IAAqB,IAAA7vE,EAAAhoB,qCAAA63F,4DAAAC,CAAApnG,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAA+vE,GAAAF,IAAA59G,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,qPADS0oB,sCAQ1Bh4B,KAAK6L,2CAILiuC,KAASC,uBAAuB/5C,KAAKlS,0CAIjCkS,KAAKi4B,KAAKmO,OACV0T,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAACuV,GAAA,EAAD,CAAU7X,MAAOA,MACburD,GAAAllD,EAAA/D,cAACo4G,GAAD,OAEJtnG,KAAKi4B,KAAKmO,qMCxB1B7N,IAAkBC,cAAchE,OAAO,cAAe2yE,s4BCEtD,IAEqBI,eACjB,SAAAA,IAAqB,IAAAjwE,EAAAhoB,qCAAAi4F,4DAAAC,CAAAxnG,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAmwE,GAAAF,IAAAh+G,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,QADiB0nG,GAAAC,MAAAr4F,IAAA,kBA4BH,SAAC5b,GACf,IAAMutF,EAAcvtF,EAAM3D,OACpBmxF,EAAWD,EAAYE,WAAaF,EAAY1tC,YAClD0tC,GAAuC,MAAxBA,EAAYliE,SAC3Bw5B,KAAIzjD,KAAK,aAAc,QAASosF,KAhCnBwmB,GAAAC,MAAAr4F,IAAA,oBAoCD,WAChBA,EAAKs4F,eAAet4F,EAAK2oB,KAAKk/B,MAC9B7nD,EAAK2oB,KAAKrG,SAASjiC,UAAUqY,OAAO,cAEpC,IAAMmvD,EAAO7nD,EAAKu4F,gBACd1wC,IACAA,EAAKxnE,UAAUgY,IAAI,aACnB2H,EAAK2oB,KAAKrG,SAAS5/B,MAAMI,KAAOkd,EAAKw4F,0BAA0B3wC,GAC/D7nD,EAAK2oB,KAAKrG,SAASjiC,UAAUgY,IAAI,iBA5CpB+/F,GAAAC,MAAAr4F,IAAA,wBAiGG,SAAC5b,GACjBw/C,IAAIyb,YAEkE,SAAxDj7D,EAAM8mE,cAAc1yD,aAAa,qBAG/CpU,EAAMkmB,iBACNtK,EAAKy4F,SAASr0G,EAAM3D,WArGxBuf,EAAKxB,OAHYwB,yPADmB0oB,oDAQpC,MAAO,CACH,iDAKJh4B,KAAKgoG,0DAGF,IAAAz4F,EAAAvP,KACHA,KAAKioG,oBACLjoG,KAAKgoG,yBAA2BE,KAAQC,yBAAyB,WAC7D54F,EAAK04F,sBAGTjoG,KAAKi4B,KAAKk/B,KAAK3xD,QAAQ,SAAC2xD,GACpB5nD,EAAK6oB,YAAY++B,EAAM,QAAS5nD,EAAK64F,uBACrC74F,EAAK6oB,YAAY++B,EAAM,QAAS5nD,EAAKgzE,2DAyBzC,IAAI//E,EAAS,KACP6lG,EAAWroG,KAAKsoG,wBACtB,IAAK,IAAM78G,KAAKuU,KAAKi4B,KAAKk/B,KAAM,CAC5B,IAAMA,EAAOn3D,KAAKi4B,KAAKk/B,KAAK1rE,GAE5B,GAAI0rE,EAAKrvD,aAAa,UAAYugG,EAAU,CACxC7lG,EAAS20D,EACT,MAEA,IAAMoxC,EAAmBvoG,KAAK8H,aAAaqvD,EAAM,WACjD,GAAIoxC,GACgB1yG,KAAKC,MAAMyyG,GACCvyF,KAAK,SAAC/iB,GAAD,OAAOo1G,EAASp9F,SAAShY,KACzC,CACbuP,EAAS20D,EACT,OAMhB,OAAO30D,kDAWP,IAAI6lG,EAAWz9G,OAAOg2B,SAASynF,SAK/B,OAJIA,EAAS56G,OAAS,GAAuC,MAAlC46G,EAASA,EAAS56G,OAAS,KAClD46G,EAAWA,EAASl6G,MAAM,EAAGk6G,EAAS56G,OAAS,IAG5C46G,yCAGIG,GACXA,EAAWhjG,QAAQ,SAACotB,GACZA,EAAKjjC,UAAUC,SAAS,cACxBgjC,EAAKjjC,UAAUqY,OAAO,gDAgBzBmvD,GAAM,IAAA1nD,EAAAzP,KACX,GAAKm3D,EAAL,CAIIn3D,KAAKyoG,mBACLzoG,KAAKyoG,iBAAiBC,QACtB1oG,KAAKyoG,iBAAmB,MAG5B,IAAME,EAAY3oG,KAAK8nG,0BAA0B3wC,GACjDn3D,KAAKyoG,iBAAmBxxE,IAAM,CAC1BC,QAASl3B,KAAKi4B,KAAKrG,SACnBx/B,KAAMu2G,EACN3xE,SAAU,IACV3D,OA9HG,cA+HH8D,SAAU,WACN+wE,KAAQU,cAAczxC,EAAKrvD,aAAa,SACxC2H,EAAKg5F,iBAAmB,2DAKV9yG,GACtB,IAAMkzG,EAAYlzG,EAAKmvF,YACjBgkB,EAAmB9oG,KAAKlS,QAAQ4jC,wBAKtC,OAJmB/7B,EAAK+7B,wBACQt/B,KAAO02G,EAAiB12G,KAGjCy2G,EAAY,EAFb7oG,KAAKi4B,KAAKrG,SAASkzD,YAEgB,EAAK,g5BC/ItEvsD,IAAkBC,cAAchE,OAAO,kBAAmBu0E,gBCCrCC,eACjB,SAAAA,IAAqB,IAAA1xE,EAAAhoB,qCAAA05F,4DAAAC,CAAAjpG,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAA4xE,GAAAF,IAAAz/G,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,QADiBmpG,GAAAC,MAAA95F,IAAA,kBAqBH,SAAC5b,GACf,IAAMutF,EAAcvtF,EAAM3D,OACpBmxF,EAAWD,EAAYE,WAAaF,EAAY1tC,YACtDgF,KAAIzjD,KAAK,aAAc,QAASosF,KAxBfioB,GAAAC,MAAA95F,IAAA,wBA2BG,WACpBA,EAAKs4F,eAAet4F,EAAK2oB,KAAKk/B,MAE9B7nD,EAAK2oB,KAAKk/B,KAAK3xD,QAAQ,SAAC2xD,GAChBA,EAAKrvD,aAAa,UAAYld,OAAOg2B,SAASynF,UAC9Cz9G,OAAOy+G,SAAS,EAAG,GACnBlyC,EAAKxnE,UAAUgY,IAAI,cACZ2H,EAAKxH,aAAaqvD,EAAM,YACfthE,KAAKC,MAAMwZ,EAAKxH,aAAaqvD,EAAM,YACvClsD,SAASrgB,OAAOg2B,SAASynF,WACjClxC,EAAKxnE,UAAUgY,IAAI,iBArCdwhG,GAAAC,MAAA95F,IAAA,cAmDP,SAAC5b,GACPw/C,IAAIyb,YAEkE,SAAxDj7D,EAAM8mE,cAAc1yD,aAAa,qBAG/CpU,EAAMkmB,iBACNsuF,KAAQU,cAAcl1G,EAAM3D,OAAO+X,aAAa,SAChDwH,EAAKg6F,2BAxDTh6F,EAAKxB,OAHYwB,yPADgB0oB,oDAQjC,MAAO,CACH,4CAID,IAAAzoB,EAAAvP,KACHA,KAAKspG,wBAELtpG,KAAKi4B,KAAKk/B,KAAK3xD,QAAQ,SAAC2xD,GACpB5nD,EAAK6oB,YAAY++B,EAAM,QAAS5nD,EAAKg6F,aACrCh6F,EAAK6oB,YAAY++B,EAAM,QAAS5nD,EAAKgzE,0DA0B9BimB,GACXA,EAAWhjG,QAAQ,SAACotB,GACZA,EAAKjjC,UAAUC,SAAS,cACxBgjC,EAAKjjC,UAAUqY,OAAO,sDChDtCuwB,IAAkBC,cAAchE,OAAO,eAAgBg1E,i5BC2DxCC,eAxDX,SAAAA,IAAqB,IAAAnyE,EAAAhoB,qCAAAm6F,4DAAAC,CAAA1pG,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAqyE,GAAAF,IAAAlgH,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,QADiB4pG,GAAAC,MAAAv6F,IAAA,cA0BP,WAAM,IACR82B,EAAU92B,EAAK5J,MAAf0gC,MAEJA,GACAmS,KAAIzjD,KAAK,aAAc,aAAcsxC,KA9BxBwjE,GAAAC,MAAAv6F,IAAA,gBAkCL,WACZ,IAAM5J,EAAQ9Y,KAAMkX,WACd8G,EAASxe,IAAIsZ,EAAO,uCAErBkF,GAED0E,EAAK5J,MAAMokG,SAAWl/F,EAAOk/F,SACzBl/F,EAAOk/F,OACPx6F,EAAKxhB,QAAQ6B,UAAUgY,IAAI,WAE3B2H,EAAKxhB,QAAQ6B,UAAUqY,OAAO,WAElCsH,EAAKxhB,QAAQ8kD,KAAOhoC,EAAOm/F,QAC3Bz6F,EAAKxhB,QAAQkE,MAAMi1D,gBAAnB,OAAAh8D,OAA4C2f,EAAOo/F,SAAnD,KACA16F,EAAK2oB,KAAKmO,MAAM90C,UAAYsZ,EAAOw7B,MACnC92B,EAAK2oB,KAAKgyE,QAAQx/G,IAAMmgB,EAAOs/F,gBAAkBt/F,EAAOs/F,gBAAkB,GAC1E56F,EAAK5J,MAAM0gC,MAAQx7B,EAAOw7B,MAC1B92B,EAAK5J,MAAMokG,OAASl/F,EAAOk/F,UAjD/Bx6F,EAAKvK,YAAc,KACnBuK,EAAK5J,MAAQ,CACTokG,OAAQx6F,EAAKd,QAAQs7F,OACrB1jE,MAAO,MAGX92B,EAAKxB,OARYwB,yPADK0oB,oDAatB,MAAO,CAAC,6CAIRh4B,KAAKlS,QAAQqqB,iBAAiB,QAASnY,KAAKmqG,aAC5CpxD,IAAch1C,UAAUi1C,IAAcC,cACtCj5C,KAAK+E,YAAcnY,KAAMmX,UAAU/D,KAAKoqG,mDAIxCrxD,IAAch0C,YAAYi0C,IAAcC,cACxCj5C,KAAK+E,+8BC1BbwzB,IAAkBC,cAAchE,OAAO,oBAAqBi1E,gBCQtDY,eACF,SAAAA,IAAqB,IAAA/yE,EAAAhoB,2CAAA+6F,4DAAAC,CAAAtqG,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAizE,GAAAF,IAAA9gH,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,UAsBS,WACTsP,EAAKo/D,SAAQ,OAxBI,kBAAA87B,MAAAl7F,2FAEjBA,EAAK5J,MAAQ,CACT+kG,QAAS,GACTC,YAAa,KACbr8G,KAAM,KACNs8G,YAAY,EACZC,aAAa,GAPAt7F,qPADMupC,KAAMC,yDAa7B94C,KAAK0uE,UACL1uE,KAAK6qG,sBACL9xD,IAAch1C,UAAUi1C,IAAcC,6DAItC6xD,aAAa9qG,KAAK+qG,WAClB/qG,KAAKgrG,gBACLjyD,IAAch1C,UAAUi1C,IAAcC,sDAQtC,IAAMgyD,EAAWjrG,KAAK0F,MAAM+kG,QAAQ,GAEpC,OAAQQ,GAAYA,EAASj9G,IAAO,+CAGtBk9G,GAAY,IAClBT,EAAYzqG,KAAK0F,MAAjB+kG,QACFU,EAAanrG,KAAKorG,gBAGxB,IAFoBF,EAAWx1G,KAAK,SAAC21G,GAAD,OAAcA,EAASr9G,KAAOm9G,IAG9D,OAAOD,EAGX,IAT0B,IAAAx7C,EAAA,SASjBjkE,GACL,IAAM4/G,EAAWH,EAAWz/G,GACtB6/G,EAAab,EAAQz0F,KAAK,SAACu1F,GAAD,OAC5BA,EAAMv9G,KAAOq9G,EAASr9G,KAEtBs9G,EACIA,EAAW/xD,cAAgB8xD,EAAS9xD,cACpC+xD,EAAWE,MAAQH,EAASG,MAC5BF,EAAW/xD,YAAc8xD,EAAS9xD,aAGtCkxD,EAAQgB,QAAQJ,IAXf5/G,EAAIy/G,EAAWz9G,OAAS,EAAGhC,GAAK,EAAGA,IAAKikE,EAAxCjkE,GAeT,OAAOg/G,gDAGW,IAAAl7F,EAAAvP,KACZ0rG,EAAkB1rG,KAAKigB,MAAMzR,QAAQk9F,iBAAmB,GAE9DZ,aAAa9qG,KAAK+qG,WAClB/qG,KAAK+qG,UAAYr3C,WAAW,WACxBnkD,EAAKqyC,SAAS,CACVgpD,aAAa,GACdr7F,EAAKm/D,UACS,IAAlBg9B,mCAGCC,GAAY,IAAAl8F,EAAAzP,KACR4rG,EAAY5rG,KAAKigB,MAAMzR,QAAvBo9F,QADQt0C,EAEct3D,KAAK0F,MAA3BglG,EAFQpzC,EAERozC,YAAar8G,EAFLipE,EAEKjpE,KACfw9G,EAAU,CAAED,WACdpxD,EAAMx6C,KAAKigB,MAAMzR,QAAQ4rC,YAEzBuxD,IACAnxD,GAAO,IAAMkwD,GAGbr8G,IACAw9G,EAAQx9G,KAAOA,GAGnBmsD,GAAO,IAAMogC,KAAG7kF,UAAU81G,GAE1B7rG,KAAKgrG,gBACLhrG,KAAK8rG,kBAAoBC,YAAetxD,KAAMruD,IAAIouD,IAClDx6C,KAAK8rG,kBACAE,QACAlyE,KAAK,SAAChmB,GACH,GAAKA,EAAS/qB,MAASwH,MAAMuvB,QAAQhM,EAAS/qB,KAAK0hH,SAAnD,CAIA,IAEgBwB,EAFZxB,EAAU,GAEVkB,GAEAM,EADAxB,EAAUh7F,EAAK/J,MAAM+kG,SACb31G,KAAR+J,MAAAotG,EAAAC,GAAgBp4F,EAAS/qB,KAAK0hH,UAE9BA,EAAUh7F,EAAK08F,kBAAkBr4F,EAAS/qB,KAAK0hH,SAGnDh7F,EAAKmyC,SAAS,CACV6oD,UACAC,YAAa52F,EAAS/qB,KAAKqjH,WAAa,KACxCzB,YAAY,IAEhBl7F,EAAKo7F,yBAER7wE,MAAM,SAACjsB,GACCA,EAAMs+F,aACP58F,EAAKmyC,SAAS,CAAE+oD,YAAY,EAAOC,aAAa,IAChDn7F,EAAKo7F,yBAIjB7qG,KAAK4hD,SAAS,CAAE+oD,YAAY,4CAIxB3qG,KAAK8rG,mBACL9rG,KAAK8rG,kBAAkB1oE,4CAIpB,IACCqnE,EAAYzqG,KAAK0F,MAAjB+kG,QACFe,EAAQ,GAQd,OANAf,EAAQjlG,QAAQ,SAAC+lG,GACTh7G,MAAMuvB,QAAQyrF,EAAMC,QACpBA,EAAM12G,KAAN+J,MAAA2sG,EAAKU,GAASX,EAAMC,UAIrBA,mCAGF,IAAAvpC,EAC+BjiE,KAAK0F,MAAjCilG,EADH1oC,EACG0oC,WAAYD,EADfzoC,EACeyoC,YADfv4C,EAE4BnyD,KAAKigB,MAA9BzR,EAFH2jD,EAEG3jD,QAAS0qC,EAFZiZ,EAEYjZ,YACXsyD,EAAQxrG,KAAKssG,WAEbC,EAAe7B,GAAec,EAAM/9G,OAAS+gB,EAAQg+F,SACrDC,EAAc7xG,KAAW,CAC3B8xG,aAAc/B,IAGlB,OAAKzxD,EAGDA,EAAYk+C,eAAeuV,SAASt8F,KAChC8nC,GAAAllD,EAAA/D,cAACkjE,GAAA,EAAD,CAAkBC,UAAW,KACxBs4C,GAAcxyD,GAAAllD,EAAA/D,cAACojE,GAAA,EAAD,CAAcs6C,YAAU,IACvCz0D,GAAAllD,EAAA/D,cAAC29G,GAAA,EAAD,CAAiBrB,MAAOA,EAAOtH,cAAe11F,EAAQ01F,cAAepC,WAAYtzF,EAAQszF,aAErFyK,GACAp0D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,6BAAAlF,OAA+BwhH,IACzCt0D,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,mDACV9B,KAAK,SACLiqD,QAASt4C,KAAK4mG,YAHlB,eAUZzuD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCACV+oD,EAAYk+C,eAAeuV,SAASv0D,UArBtB,mMA+BnCiyD,GAAiB5xD,UAAY,CACzBjqC,QAASkqC,KAAUnsD,OACnBugH,iBAAkBp0D,KAAUj5B,QAGhC,IAKestF,GALgBtzD,aATP,SAAC/zC,GAAD,MAAY,CAChCwzC,YAAaxzC,EAAMg0C,QAAQV,IAAcC,gBAUzC,KAF2BQ,CAG7B4wD,ICzMW2C,GAA4B,SAAC/sF,GAAU,IACxCgtF,EAAchtF,EAAMzR,QAApBy+F,UACR,OAAO90D,GAAAllD,EAAA/D,cAAA,OAAKu4D,wBAAyB,CAAEC,OAAQulD,kdC8BpCC,eAzBX,SAAAA,IAAqB,IAAA51E,EAAAhoB,qCAAA49F,4DAAAC,CAAAntG,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAA81E,GAAAF,IAAA3jH,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACK8N,OAFYwB,qPADS0oB,sCAOtBh4B,KAAKi4B,KAAKo1E,iBACVvzD,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAACuV,GAAA,EAAD,CAAU7X,MAAOA,MACburD,GAAAllD,EAAA/D,cAACo+G,GAAD,CAA2B9+F,QAASxO,KAAKwO,QAAQ6+F,mBAErDrtG,KAAKi4B,KAAKo1E,iBAGdrtG,KAAKi4B,KAAK00E,UACV7yD,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAACuV,GAAA,EAAD,CAAU7X,MAAOA,MACburD,GAAAllD,EAAA/D,cAACq+G,GAAD,CAAiB/+F,QAASxO,KAAKwO,QAAQ9jB,QAE3CsV,KAAKi4B,KAAK00E,wMCxB1Bp0E,IAAkBC,cAAchE,OAAO,cAAe04E,25BCEtD,IACMM,GAAiB,SACjBh3E,GAAS,cACTi3E,GAAmB,IAEJC,eACjB,SAAAA,IAAqB,IAAAp2E,EAAAhoB,qCAAAo+F,4DAAAC,CAAA3tG,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAs2E,GAAAF,IAAAnkH,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,QADiB6tG,GAAAC,MAAAx+F,IAAA,kBAgCH,SAAC5b,GACf,IAAMutF,EAAcvtF,EAAM3D,OACpBmxF,EAAWD,EAAYE,WAAaF,EAAY1tC,YAElD0tC,GAAuC,MAAxBA,EAAYliE,SAC3Bw5B,KAAIzjD,KAAK,aAAc,QAASosF,KArCnB2sB,GAAAC,MAAAx+F,IAAA,WAyCV,WACPy+F,KAAeC,MAAM,YAErBz1D,KAAIzjD,KAAK,aAAc,OAAQ,mBAE3Bwa,EAAK2yE,oBACL3yE,EAAK2yE,mBAAoB,EACzBhrD,IAAM,CACFC,QAAS5nB,EAAK2oB,KAAKg2E,IACnBC,QAAS,CAAC,EAAG,GACbl3E,SAAUy2E,GACVp6E,OAAQmD,GACR23E,MAAO,WACH7+F,EAAK2oB,KAAKg2E,IAAIt+G,UAAUgY,IAAI,cAEhCwvB,SAAU,WACN7nB,EAAK2oB,KAAKjpC,QAAQW,UAAUgY,IAAI,cAChC2H,EAAK2oB,KAAKg2E,IAAIlmG,aAAa,cAAe,SAC1CuH,EAAK2oB,KAAKm2E,OAAOrmG,aAAa,gBAAiB,QAC/CuH,EAAK2yE,mBAAoB,EACzB3yE,EAAK++F,qBA7DAR,GAAAC,MAAAx+F,IAAA,YAmET,WACRy+F,KAAeO,QAAQ,YACvBh/F,EAAK2oB,KAAKjpC,QAAQW,UAAUqY,OAAO,cAE/BsH,EAAK2yE,oBACL3yE,EAAK2yE,mBAAoB,EACzBhrD,IAAM,CACFC,QAAS5nB,EAAK2oB,KAAKg2E,IACnBC,QAAS,CAAC,EAAG,GACbl3E,SAAUy2E,GACVp6E,OAAQm6E,GACRr2E,SAAU,WACN7nB,EAAK2oB,KAAKg2E,IAAIt+G,UAAUqY,OAAO,aAC/BsH,EAAK2oB,KAAKg2E,IAAIlmG,aAAa,cAAe,QAC1CuH,EAAK2oB,KAAKm2E,OAAOrmG,aAAa,gBAAiB,SAC/CuH,EAAK2yE,mBAAoB,MAKrC3yE,EAAKi/F,oBAvFYV,GAAAC,MAAAx+F,IAAA,YAyGT,SAAC5b,GACa,KAAlBA,EAAM8iB,SACNlH,EAAKk/F,cA3GQX,GAAAC,MAAAx+F,IAAA,mBA+GF,SAAC5b,GACZ4b,EAAK2oB,KAAKg2E,IAAIr+G,SAAS8D,EAAM3D,UAC5Buf,EAAK2oB,KAAKjpC,QAAQY,SAAS8D,EAAM3D,SAClCuf,EAAKk/F,cA/GTl/F,EAAKm/F,UAAY,KACjBn/F,EAAK2yE,mBAAoB,EAEzB3yE,EAAKxB,OAELwB,EAAK++F,aAAe/+F,EAAK++F,aAAavhG,KAAlBghG,MAAAx+F,KARHA,yPADqB0oB,oDAatC,MAAO,CACH,MACA,UACA,8CAID,IAAAzoB,EAAAvP,KACHA,KAAKi4B,KAAKy2E,QAAQlpG,QAAQ,SAAC9N,GACvB6X,EAAK6oB,YAAY1gC,EAAQ,QAAS6X,EAAKi/F,aAG3CxuG,KAAKo4B,YAAYp4B,KAAKi4B,KAAKm2E,OAAQ,QAASpuG,KAAK2uG,UACjD3uG,KAAKo4B,YAAYp4B,KAAKi4B,KAAKg2E,IAAK,QAASjuG,KAAKuiF,iBAE9CviF,KAAKo4B,YAAYnpC,SAAU,UAAW+Q,KAAK6wC,WAC3C7wC,KAAKo4B,YAAYnpC,SAAU,QAAS+Q,KAAK8wC,kBACzC9wC,KAAKo4B,YAAYnpC,SAAU,aAAc+Q,KAAK8wC,yDAnCvC,WAiGH9wC,KAAKwO,QAAQrO,OACbH,KAAKyuG,UAAYG,KAAgB5uG,KAAKi4B,KAAKg2E,IAAK,CAC5CY,mBAAmB,IAEvB7uG,KAAKyuG,UAAUK,sDAKf9uG,KAAKyuG,WACLzuG,KAAKyuG,UAAUM,oDC7G3Bx2E,IAAkBC,cAAchE,OAAO,WAAYk5E,gBCoEpCsB,GAtEW,SAAAtqG,GAEpB,IADF8J,EACE9J,EADF8J,QAEQohF,EAAuBphF,EAAvBohF,SAAUqf,EAAazgG,EAAbygG,SAEZ1R,EAAa2R,kBAAO,MA4D1B,OA1DoC,oBAAXtkH,OACSukH,mBAAkB5iB,cAEtC,WACV,GAAKgR,EAAW1oG,QAAhB,CAEA,IAAMu6G,EAAgBngH,SAASC,cAAc,OAC7CkgH,EAAcphH,GAAd,GAAA/C,OAAsB2kG,GACtBwf,EAAc99G,UAAY,wBAE1BisG,EAAW1oG,QAAQvF,YAAY8/G,GAE/B,IAAMC,EAAYpgH,SAASC,cAAc,QACzCmgH,EAAUz8D,KAAO,qDACjBy8D,EAAUjL,IAAM,aAChBiL,EAAUhhH,KAAO,WACjBY,SAASyhF,KAAKphF,YAAY+/G,GAE1B,IAAMC,EAAa,CACf,oDACA,mDAGAC,EAAgBD,EAAW7hH,OAsB/B,OAZA6hH,EAAW9pG,QAAQ,SAACg1C,GAChB,IAAMquB,EAAS55E,SAASC,cAAc,UACtC25E,EAAOp+E,IAAM+vD,EACbquB,EAAOC,OAAQ,EACfD,EAAOmH,OAAS,WACZu/B,IAbgB,WACpB,GAAsB,IAAlBA,EAAqB,CACrB,IAAMC,EAAevgH,SAASC,cAAc,UAC5CsgH,EAAal+G,UAAb,sBAAArG,OAA+C2kG,EAA/C,kBAAA3kG,OAAwEgkH,EAAxE,SACA1R,EAAW1oG,QAAQvF,YAAYkgH,IAU/BC,IAGJxgH,SAASqD,KAAKhD,YAAYu5E,KAGvB,WACH55E,SAASyhF,KAAKl/E,YAAY69G,GAE1BC,EAAW9pG,QAAQ,SAACg1C,GAChBvrD,SACKwB,iBADL,eAAAxF,OACqCuvD,EADrC,OAEKh1C,QAAQ,SAAChW,GAAD,OAAQP,SAASqD,KAAKd,YAAYhC,OAGnD+tG,EAAW1oG,QAAQrD,YAAY49G,MAEpC,CAACxf,EAAUqf,IAGV92D,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAKuuC,EAAYptG,UAAU,ueCpDzBu/G,eAVX,SAAAA,IAAqB,IAAAp4E,EAAAhoB,qCAAAogG,4DAAAC,CAAA3vG,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,KAAAsP,OAAAgoB,EAAAs4E,GAAAF,IAAAnmH,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,uKAATlR,QAEA85C,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAAC2gH,GAAD,CAAmBrhG,QAASc,EAAKd,UACjCc,EAAKxhB,SALQwhB,+OADU0oB,UCDnCO,IAAkBC,cAAchE,OAAO,eAAgBk7E,mkBCQvD,IAEMI,GAAa9jH,OAAO+7C,OAAO,CAC7BgoE,OAAQ,SACRC,MAAO,UA+NIC,GAAA,eA3NX,SAAAC,IAAc,IAAA5gG,EAAAtP,sCAAAkwG,4DAAAC,CAAAnwG,MAAAowG,GAAApwG,KAAA,UAuKJ,SAACw6C,GACP,IAAM61D,EAAaC,KAAkBxsG,WAErC,GAAIusG,GAAcA,EAAW71D,IAAIpnD,gBAAkBonD,EAAIpnD,cAEnD,GADAkc,EAAKihG,WAAWl2F,MACZ+sB,IAAEC,QAAQ/3B,EAAKihG,YACfjhG,EAAKkhG,6BACF,CACH,IAAMC,EAAWnhG,EAAKohG,4BACtBphG,EAAKqhG,gBAAgBF,MAhLnBL,GAAApwG,KAAA,kBAqLI,SAAC4wG,EAAWC,EAAUC,GAChCA,EACAxhG,EAAKyhG,aAAaH,GAElBthG,EAAKs5F,cAAcgI,EAAWC,KAxLlC7wG,KAAKwO,QAAU,CACXgsC,IAAK,IAETx6C,KAAKgxG,YAAa,EAClBhxG,KAAKuwG,WAAa,GAClBvwG,KAAKixG,aAAe,KACpBjxG,KAAKkxG,4BAA8B,KAEnClxG,KAAKmxG,UAAYC,OACjBpxG,KAAKqxG,cAAgB,GACrBrxG,KAAK8N,oDAILwiG,KAAkBp6B,SAvBL,YAuB4Bl2E,KAAKsxG,mDAIE,mBAArCtxG,KAAKkxG,6BACZlxG,KAAKkxG,2DAIR1iG,GACDxO,KAAKwO,2UAAL+iG,CAAA,GAAoBvxG,KAAKwO,QAAYA,GACrC,IAAMgjG,OAAmDnmH,IAAjC2U,KAAKwO,QAAQgjG,iBAAgCxxG,KAAKwO,QAAQgjG,gBAE7ExxG,KAAKqxG,gBACNrxG,KAAKqxG,cAAgBzmH,OAAOg2B,SAASgyB,MAGpC4+D,GAGDxxG,KAAKyxG,UAAUzxG,KAAKwO,QAAQgsC,KAC5Bx6C,KAAK2wG,gBAAgB3wG,KAAKwO,QAAQgsC,MAHlChE,aAAWx2C,KAAKwO,QAAQgsC,uCAOtBA,GAAK,IAAAjrC,EAAAvP,KACNA,KAAKgxG,aACNhxG,KAAKgxG,YAAa,EAClBhxG,KAAK0xG,SAASl3D,GAAK1gB,KAAK,SAAAp1B,GAAoB,IAAApB,EAAAquG,GAAAjtG,EAAA,GAAlBktG,EAAkBtuG,EAAA,GAAX8iC,EAAW9iC,EAAA,GACxC,IACIsuG,EAAMthG,OACNf,EAAKyhG,YAAa,EAClBzhG,EAAK0hG,aAAeW,EACpBr5D,KAAIs5D,gCAAgCzrE,GACtC,MAAOr4B,GACL,MAAM,IAAIxK,MAAM,0BAErBy2B,MAAM,WACLzqB,EAAKyhG,YAAa,0CAMtBhxG,KAAKixG,cAAcjxG,KAAKixG,aAAatgG,yCAGpC6pC,GAAK,IAAA/qC,EAAAzP,KACJ8xG,EAAar9D,KAAUs9D,cAAcv3D,GAC3C,OAAOx6C,KAAK0uE,QAAQojC,GAAYh4E,KAAK,SAAAxgB,GAAqB,IAAAG,EAAAk4F,GAAAr4F,EAAA,GAAnBvpB,EAAmB0pB,EAAA,GAAX2sB,EAAW3sB,EAAA,GACtD,IACI,IAAMm4F,EAAQ,GAYd,OAXAA,EAAMp3D,GAAO,CACT,IAAIw3D,KAAMjiH,EAAQ,CACdkiH,oBAAqBxiG,EAAKwhG,aAC1BzX,QAAS,CAAC8J,KAAW4O,aAAc5O,KAAW6O,cAC9CC,iBAAiB,EACjB/pD,UAAW,kBAAM54C,EAAK4iG,QAAQ73D,MAElCpU,GAEJ32B,EAAK8gG,WAAWz7G,KAAK88G,GAEdA,EAAMp3D,GACf,MAAOzsC,GACL,OAAOoxC,QAAQE,OAAOtxC,sCAK1BysC,GAAK,IAAA1qC,EAAA9P,KACT,OAAKw6C,GAEL3E,KAAYxlC,OAELovC,YAAS,kBAAMC,KAAItzD,IAAIouD,KAAM1gB,KAAK,SAAChmB,GACtC,GAAIw+F,aAAkBx+F,GAAW,CAC7B,IAAIy+F,EAAez+F,EAAS/qB,KAE5B,MAAO,CADPwpH,EAAev3B,KAAWw3B,uCAAuCD,GAC3Cv3B,KAAWy3B,sBAAsBF,IAE3D,OAAOpzD,QAAQE,OAAO,IAAI97C,MAAM,qCACjCu2B,KAAK,SAACt3B,GAEL,OADAqzC,KAAYn5C,OACL8F,GACR,SAACuL,GASA,OARAhjB,QAAQC,IAAI+iB,GAERA,GAASA,EAAMw5B,MAAuB,MAAfx5B,EAAMw5B,OAC7Bz3B,EAAK4iG,yBACL5iG,EAAK6iG,uBAGT98D,KAAYn5C,OACLyiD,QAAQE,OAAOtxC,MAvBToxC,QAAQE,0DA4BrBr/C,KAAKi4B,KAAK26E,cACV5yG,KAAKi4B,KAAK26E,aAAajjH,UAAUqY,OAAO,0DAKxChI,KAAKi4B,KAAKyqB,iBACV1iD,KAAKi4B,KAAKyqB,gBAAgB/yD,UAAUgY,IAAI,4DAKxC3H,KAAKi4B,KAAKyqB,iBACV1iD,KAAKi4B,KAAKyqB,gBAAgB/yD,UAAUqY,OAAO,oDAInCwyC,GACZ81D,KAAkBuC,UA5IL,YA8IT,KACAr4D,EACA,CACIs1D,WAAYA,GAAWE,MACvBmB,UAAWnxG,KAAKmxG,6DAMxBb,KAAkBuC,UAxJL,YA0JT,KACA7yG,KAAKqxG,cACL,CACIvB,WAAYA,GAAWC,OACvBoB,UAAWnxG,KAAKmxG,YAGxBn2B,KAAW83B,sBAAsB,gBACjC9yG,KAAKqxG,cAAgB,GACrBrxG,KAAKixG,aAAe,yDAIpB,IAAK7pE,IAAEC,QAAQrnC,KAAKuwG,YAAa,CAC7B,IAAM0B,EAAsBjyG,KAAKuwG,WAAWpiH,OAAO,GAAGksB,MACtD,OAAOruB,OAAOkK,KAAK+7G,GAAqB9jH,OAAO,GAAGksB,MAGtD,OAAOra,KAAKqxG,oDAyBFT,EAAWC,GACjBD,GAAaA,EAAUO,YAAcnxG,KAAKmxG,WAC1CN,EAASM,YAAcnxG,KAAKmxG,UAE5BnxG,KAAK+yG,aAILlC,EAASM,YAAcnxG,KAAKmxG,UACxBN,EAASf,aAAeA,GAAWE,MACnChwG,KAAKyxG,UAAUZ,EAASr2D,KACjBq2D,EAASf,aAAeA,GAAWC,QAC1C/vG,KAAK+yG,aAKTC,oDAIKpC,GACLA,EAAUO,YAAcnxG,KAAKmxG,UAC7BnxG,KAAK+yG,aAELC,sxBCtOSC,eACjB,SAAAA,IAAqB,IAAA37E,EAAAhoB,2CAAA2jG,4DAAAC,CAAAlzG,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAA67E,GAAAF,IAAA1pH,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,UAUa,SAACtM,GACTw/C,IAAIyb,YACLykD,GAAS9iG,KAAK,CAAEkqC,IAAKlrC,EAAKkrC,IAAKg3D,gBAAkBliG,EAAKd,QAAQgjG,kBAElE99G,EAAMkmB,qBAfW,sBAAAy5F,MAAA/jG,2FAEjBA,EAAKkrC,IAAMlrC,EAAKxhB,QAAQga,aAAa,SAAWwH,EAAKxhB,QAAQga,aAAa,cAAgBwH,EAAKxH,aAAawH,EAAKxhB,QAAS,QAE1HwhB,EAAKxB,OAJYwB,qPADoB0oB,sCASrCh4B,KAAKo4B,YAAYp4B,KAAKlS,QAAS,QAASkS,KAAKszG,8MCVrD/6E,IAAkBC,cAAchE,OAAO,oBAAqB++E,0BCItDC,GAAgC,SAACvzF,GAAU,MAAAksE,GAAA,8CACLC,oBAAS,gVAAzCtmD,EADqCqmD,EAAA,GACxBsnB,EADwBtnB,EAAA,GAAAunB,EAEdC,eAAvBnqB,EAFqCkqB,EAErClqB,SAAUoqB,EAF2BF,EAE3BE,SAYlB,GAVArnB,qBAAU,WACNv7C,IAAM6iE,8BACD/5E,KAAK,SAACqU,GACHslE,EAAetlE,KAElBnU,MAAM,eAGZ,IAECwN,YAAS1B,GACT,OAAO,KAfkC,IAmBzC18C,EASA62B,EATA72B,MACA0qH,EAQA7zF,EARA6zF,YACAC,EAOA9zF,EAPA8zF,YACAC,EAMA/zF,EANA+zF,QACAC,EAKAh0F,EALAg0F,WACAC,EAIAj0F,EAJAi0F,eACAC,EAGAl0F,EAHAk0F,wBACAC,EAEAn0F,EAFAm0F,oBACAC,EACAp0F,EADAo0F,mBAGEC,EAAgB9qB,GAAY6qB,GAA6C,IAAvBA,EAA2BA,OAAqBhpH,EAClGkpH,GAAgB/qB,GAAY4qB,GAA+C,IAAxBA,EAA4BA,OAAsB/oH,EAErGmpH,EAAWD,GAAgBD,EAAgB,CAC7CpG,QAASqG,GAAgBD,QAEzBjpH,EAEEopH,EAAWjrB,EAAWkrB,aAAYX,GACpCH,EAAWc,aAAYZ,GAAeY,aAAYtrH,GAEtD,OACI+uD,GAAAllD,EAAA/D,cAAA,WAASiB,UAAU,gDACfgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6CAEPq3C,YAASitE,IACTt8D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oDAAoDwiC,OAAO,MAAM9gC,MAAM,OAAOpH,IAAKgqH,EAAUv/C,IAAI,GAAGljE,MAAOwiH,MAItIr8D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kCAAkC6jH,GACjD77D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,oCAAoC8jH,IAEtD97D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wCACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,yBAAyBwqE,oBAAkB,sBACpD/nB,KAAMuhE,EACNQ,sDAAoD,yCACpDx8D,GAAAllD,EAAA/D,cAAA,YAAOglH,WAU3CV,GAA8B/6D,UAAY,CACtCrvD,MAAOsvD,KAAUnsD,OACjBynH,QAASt7D,KAAUj5B,OACnBw0F,WAAYv7D,KAAUj5B,OACtBy0F,eAAgBx7D,KAAUj5B,OAC1B00F,wBAAyBz7D,KAAUj5B,QAGxB+zF,sdClFToB,eACF,SAAAA,IAAqB,IAAAt9E,EAAAhoB,qCAAAslG,4DAAAC,CAAA70G,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAw9E,GAAAF,IAAArrH,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACK8N,OAFYwB,qPADqB0oB,sCAOtCh4B,KAAK6L,6CAILiuC,KAASC,uBAAuB/5C,KAAKlS,sDAIrCgsD,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAC6lH,GACO/0G,KAAKwO,UAGjBxO,KAAKlS,0CAKT,OAAOkS,KAAKg1G,mNAGpBJ,GAAgCn8D,UAAY,CACxCu7D,QAASt7D,KAAUj5B,OACnBw0F,WAAYv7D,KAAUj5B,OACtBr2B,MAAOsvD,KAAUnsD,OACjB2nH,eAAgBx7D,KAAUj5B,OAC1B00F,wBAAyBz7D,KAAUj5B,QAExBm1F,UCrCfr8E,IAAkBC,cAAchE,OAAO,4BAA6BogF,IACpEr8E,IAAkBC,cAAchE,OAAO,sBAAuB4f,83BCH9D,IA+Je6gE,eA7JX,SAAAA,IAAqB,IAAA39E,EAAAhoB,qCAAA2lG,4DAAAC,CAAAl1G,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAA69E,GAAAF,IAAA1rH,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,QADiBo1G,GAAAC,MAAA/lG,IAAA,iBA6CJ,SAAC5b,GACdA,EAAMkmB,iBACNtK,EAAKgmG,QAAQC,KAAK,UA/CDH,GAAAC,MAAA/lG,IAAA,iBAkDJ,SAAC5b,GACdA,EAAMkmB,iBACNtK,EAAKgmG,QAAQC,KAAK,QAClBjmG,EAAKkmG,WAAalmG,EAAKgmG,QAAQG,UAC1BnmG,EAAKomG,eAENpmG,EAAKqmG,oBAtDTrmG,EAAKgmG,QAAU,KACfhmG,EAAKkmG,WAAa,KAClBlmG,EAAKsmG,UAAY,KACjBtmG,EAAKumG,qBAAuB,KAC5BvmG,EAAKwmG,wBAA0B,KAE/BxmG,EAAKxB,OARYwB,yPADiB0oB,oDAalC,MAAO,CAAC,8CAGL,IAAAzoB,EAAAvP,KACHA,KAAKs1G,QAAUS,aAAI,CACfptH,UAAWqX,KAAKi4B,KAAK+tD,OACrBgwB,WAAW,EACXC,MAAM,EACNhI,KAAK,EACLiI,UAAU,EACVC,OAAO,EACPC,WAAY,CACRC,IAAK,CACDC,QAAS,GAEbC,KAAM,CACFD,QAAS,MAKjB/lH,MAAMuvB,QAAQ9f,KAAKi4B,KAAKu+E,UACxBx2G,KAAKi4B,KAAKu+E,QAAQhxG,QAAQ,SAAC65D,GACvB9vD,EAAK6oB,YAAYinC,EAAG,QAAS9vD,EAAKknG,kBAGtClmH,MAAMuvB,QAAQ9f,KAAKi4B,KAAKy+E,UACxB12G,KAAKi4B,KAAKy+E,QAAQlxG,QAAQ,SAAC65D,GACvB9vD,EAAK6oB,YAAYinC,EAAG,QAAS9vD,EAAKonG,sDAqB1C32G,KAAKs1G,QAAQhsC,gDAIb,OAAOtpE,KAAKw1G,WAAWvgH,MAAQ+K,KAAKw1G,WAAWoB,WAAa,EAAI52G,KAAKw1G,WAAWc,kDAKhFt2G,KAAK41G,UAAY51G,KAAKw1G,WAAWqB,WAAY72G,KAAKw1G,WAAWoB,WAAa,GAD9E,IAAAE,EAEwB92G,KAAK+2G,mBAAoB/2G,KAAKi4B,KAAK+tD,QAA/C3mB,EAFZy3C,EAEYz3C,EAAG23C,EAFfF,EAEeE,EAAGC,EAFlBH,EAEkBG,EACdj3G,KAAK61G,qBAAuB71G,KAAKw1G,WAAWqB,WAAY72G,KAAKw1G,WAAWvgH,OAAQy8B,wBAChF1xB,KAAK81G,wBAA0B91G,KAAKi4B,KAAK+tD,OAAOt2F,cAAcgiC,wBACzD1xB,KAAKk3G,6BAENl3G,KAAKm3G,wBAAyB93C,EAAG23C,EAAGC,GAI9Bj3G,KAAKo3G,aAAcp3G,KAAK41G,UAAW51G,KAAKi4B,KAAK+tD,OAAOt2F,gBAEtDsQ,KAAKq3G,qBAAsBh4C,EAAG23C,EAAGC,8CAKzBnpH,GAEhB,IAAMkE,EAAQpH,OAAO2H,iBAAiBzE,GAChCwpH,EAAStlH,EAAK,WAAiBA,EAAMulH,iBAAmBvlH,EAAMwlH,aAEpE,GAAe,SAAXF,EACA,MAAO,CACPj4C,EAAG,EACH23C,EAAG,EACHC,EAAG,GAGP,IAAMQ,EAAaH,EAAOrsG,SAAS,MAAQ,KAAO,KAC5CysG,EAAeJ,EAAO/hH,MAAM,oBAAoB,GAAGkK,MAAM,MAI/D,MAAmB,OAAfg4G,EACO,CACPp4C,EAAGq4C,EAAa,GAChBV,EAAGU,EAAa,GAChBT,EAAG,GAMY,OAAfQ,EACO,CACPp4C,EAAGq4C,EAAa,IAChBV,EAAGU,EAAa,IAChBT,EAAGS,EAAa,UAJpB,uDAWA,OACI13G,KAAKw1G,WAAWvgH,MAAQ+K,KAAKw1G,WAAWoB,WAAa52G,KAAKw1G,WAAWc,SACrEt2G,KAAK61G,qBAAqBzjH,KAAO4N,KAAK81G,wBAAwB1jH,KAjIrD,kDAqIOulH,EAAUC,EAAUC,GAExC73G,KAAK83G,gBAAiBH,GAAY33G,KAAK61G,qBAAqBzjH,KAAO4N,KAAK81G,wBAAwB1jH,MAAOwlH,EAAUC,EAAU73G,KAAKi4B,KAAK+tD,qDAEpH2xB,EAAUC,EAAUC,GAErC,IAAIE,EAAoB/3G,KAAK41G,UAAUlkF,wBACvC1xB,KAAK83G,gBAAiBH,GAAYI,EAAkBC,MAAQh4G,KAAK81G,wBAAwBkC,OAAQJ,EAAUC,EAAU73G,KAAKi4B,KAAK+tD,gDAElHiyB,EAAMC,EAAMC,EAAMrqH,GAE/BA,EAAQkE,MAAMmP,UAAd,eAAAlW,OAAyCgtH,EAAzC,QAAAhtH,OAAoDitH,EAApD,QAAAjtH,OAA+DktH,EAA/D,4CAGSrqH,EAASnF,GAClB,IAAMyvH,EAAkBtqH,EAAQ4jC,wBAC1B2mF,EAAoB1vH,EAAU+oC,wBACpC,OACI0mF,EAAgBJ,OAASK,EAAkBL,OAC3CI,EAAgBhmH,MAASimH,EAAkBjmH,ofCvJvDmmC,IAAkBC,cAAchE,OAAO,sBAAuB8jF,QCDzCC,eACjB,SAAAA,IAAqB,IAAAjhF,EAAAhoB,qCAAAipG,4DAAAC,CAAAx4G,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAmhF,GAAAF,IAAAhvH,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,qPAD0B0oB,sCAQ3C,IAAMmY,EAAenwC,KAAKwO,QAAQgiC,WAC5BkoE,EAAgBzmE,IAAQ7lD,IAAI,iBAElC,QAAsBf,IAAlBqtH,IAAgD,IAAjBvoE,EAAwB,CACvD,IAAMwoE,EAAuB9iH,KAAKC,MAAM4iH,GACxC14G,KAAKlS,QAAQia,aAAa,OAAQ4wG,EAAqBC,6MCbnErgF,IAAkBC,cAAchE,OAAO,iBAAkB+jF,gBCE5CM,GAAa,SAAC5qC,GAAD,MAAgB,CACtCF,GhHIkB,mBgHJgCE,GAClDF,GhHFQ,SgHEgCE,GACxCF,GhHD0B,2BgHCgCE,GAC1DF,GhHHgB,iBgHGgCE,GAChDF,GhHAkB,mBgHAgCE,GAClDF,GhHH0B,2BgHGgCE,cCPvD,SAAS6qC,GAAkBC,GAC9B,OAAOA,EAAQpkH,OAAO,SAACqkH,EAAgBC,GACnC,OAAQA,EAAa5qH,MACjB,KAAKw4G,GACDmS,EAAeC,EAAaxvH,MAAQwvH,EAAa7vE,aACjD,MAEJ,KAAK09D,GACD,IAAMoS,EAAcD,EAAazqG,QAAQwH,KAAK,SAACrf,GAAD,OAAOA,EAAEwiH,YACnDD,EACAF,EAAeC,EAAaxvH,MAAQyvH,EAAY/uH,MAEhDY,QAAQgjB,MAAR,UAAA9iB,OAAwBguH,EAAaxvH,KAArC,8DAEJ,MAEJ,QACI,MAAM,IAAI8Z,MAAM,uBAGxB,OAAOy1G,GACR,IAwBA,SAASI,GAAeL,EAASM,GACpC,OAAOA,EAAe3jH,KAAK,SAACujH,GACxB,IAX4BK,EAAYC,EAYxC,OADaN,EAAaxvH,QACVsvH,IAZYO,EAYqBP,EAAQE,EAAaxvH,MAZ9B8vH,EAYqCN,EAAa7vE,eAXzFowE,KAAan7G,SAASi7G,IAAeE,KAAan7G,SAASk7G,IAAiBhpH,MAAMuvB,QAAQw5F,IAAe/oH,MAAMuvB,QAAQy5F,GACjHC,KAAaC,QAAQH,EAAYC,GAGrCD,IAAeC,+1CClC1B,IAAMG,GAAqB,CACvBC,QAAS,EACTC,WAAY,EACZnT,YAAa,EACbC,UAAW,GAGTmT,GAAa,UAEEC,eACjB,SAAAA,EAAY75F,GAAO,IAAA3Q,qCAAAwqG,4DAAAC,CAAA/5G,QACfg6G,GAAAF,GAAAvwH,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,QADei6G,GAAAC,MAAA5qG,IAAA,kBAwJD,WACdA,EAAK6qG,WAAW7qG,EAAK8qG,4BAtJrB9qG,EAAK+qG,gBAAkB9pH,MAAMuvB,QAAQG,EAAMzR,QAAQ8rG,cAEnD,IAAM9T,EAAavmF,EAAMzR,QAAQg4F,YAAckT,GALhC,OAOfpqG,EAAK5J,MAAQ,CACTjR,MAAO6a,EAAK+qG,gBAAkBp6F,EAAMzR,QAAQ8rG,aAAe,GAC3DvB,QAASzpG,EAAKirG,oBACd/T,aACAG,eAAe,EACf6T,kBAAkB,EAClBC,0BAA2BnrG,EAAK+qG,iBAGpC/qG,EAAKm3F,YAAcD,EAAWC,YAC9Bn3F,EAAKorG,kBAAoB,KAEzBprG,EAAKqrG,gBAAkBrrG,EAAKqrG,gBAAgB7tG,KAArBotG,MAAA5qG,KACvBA,EAAKs3F,WAAat3F,EAAKs3F,WAAW95F,KAAhBotG,MAAA5qG,KAClBA,EAAKsrG,cAAgBtrG,EAAKsrG,cAAc9tG,KAAnBotG,MAAA5qG,KAKrBA,EAAKurG,QDnBN,SAAgCj6F,GAA6B,IAAnBk6F,EAAmBlsH,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAJ,GACtDisH,EAAUj6F,EAASynF,SACnB0S,EAAetmE,KAAUumE,sBAAsBp6F,GAE/Cq6F,EADajvH,OAAOkK,KAAK6kH,GAAcprG,OAAO,SAACjb,GAAD,OAAwC,IAA/BomH,EAAanqH,QAAQ+D,KAClDC,OAAO,SAAC6N,EAAQ9N,GAE5C,OADA8N,EAAO9N,GAAOqmH,EAAarmH,GACpB8N,GACR,IACH,OAAOiyC,KAAUC,eAAemmE,EAASI,GCWtBC,CAAuBtwH,OAAOg2B,SAAU50B,OAAOkK,KAAKoZ,EAAK2Q,MAAM+4F,iBAC9E1I,KAAkBp6B,SAAS2jC,GAAYvqG,EAAKgiG,iBA3B7BhiG,qPADcupC,KAAM0tD,6DAgC9BvmG,KAAKq6G,iBACNr6G,KAAKm7G,YAGTn7G,KAAKo7G,YAAcp7G,KAAKq7G,8DAIxBr7G,KAAKo7G,YAAcp7G,KAAKq7G,wDAIpBr7G,KAAKo7G,aACLp7G,KAAKo7G,YAAY5qG,iDAerB,OAAOxQ,KAAKlS,QAAQqd,cAAc,wDAGxBmwG,GACVrkF,IAAMskF,WACD5zG,IAAI,CACDuvB,QAASl3B,KAAKo7G,YACdlN,QAAS,CAAC,EAAG,GACb76E,OAAQ,iBACR2D,SAAU,IACVG,SAAU,WACFmkF,GACAA,OAIX3zG,IAAI,CACDuvB,QAASl3B,KAAKo7G,YACdlN,QAAS,CAAC,EAAG,GACb76E,OAAQ,iBACR2D,SAAU,0CAIV,IAAAznB,EAAAvP,KACRA,KAAKw7G,eACL3lE,KAAYxlC,KAAK,CAAEorG,MAAM,IACzBz7G,KAAK07G,WAAW5hF,KAAK,SAACt3B,GAClB+M,EAAKqrG,cAAc,WACfrrG,EAAKqyC,SAAS,CACVntD,MAAO+N,EAAO/N,MACd+xG,WAAYhkG,EAAOgkG,WACnBiU,2BAA2B,EAC3BD,kBAAkB,IAEtBjrG,EAAKk3F,YAAcjkG,EAAOgkG,WAAWC,YACrC5wD,KAAYn5C,UAGjB,SAACqR,GAEK0sC,KAAMkhE,SAAS5tG,IAChB8nC,KAAYn5C,qDAKJ,IAAA+S,EAAAzP,KACXA,KAAK0F,MAAMihG,eACZ3mG,KAAK4hD,SAAS,CAAE+kD,eAAe,GAAQ,WACnCl3F,EAAKisG,SAASjsG,EAAKg3F,YAAc,GAAG3sE,KAAK,SAACt3B,GACtCiN,EAAKmyC,SAAS,CACVntD,MAAK,GAAAxJ,OAAA2wH,GAAMnsG,EAAK/J,MAAMjR,OAAjBmnH,GAA2Bp5G,EAAO/N,QACvC+xG,WAAYhkG,EAAOgkG,aAEvB/2F,EAAKg3F,YAAcjkG,EAAOgkG,WAAWC,YACrCh3F,EAAKmyC,SAAS,CAAE+kD,eAAe,KAChC,WACCl3F,EAAKmyC,SAAS,CAAE+kD,eAAe,2CAMpCoS,GAAuB,IAAAjpG,EAAA9P,KAAdnB,IAAcjQ,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,KAAAA,UAAA,GACxBiiH,EAAW,CACbkI,WAGCl6G,IAEDgyG,EAAS2J,kBAAmB,GAGhCx6G,KAAK4hD,SAASivD,EAAU,WAChBhyG,GACAiR,EAAKqrG,0DAWb,OAAOn7G,KAAKo6G,0EAWZ,OAAAyB,GAAA,GAAY77G,KAAKigB,MAAM+4F,eAAmBh5G,KAAK87G,qBAAqB7sH,SAAS2xB,mDAGjEm7F,GAA4B,IAAdl9G,IAAcjQ,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,KAAAA,UAAA,GAClCotH,EAAgBh8G,KAAKi8G,gBAAgBF,GACrCG,EAAiBL,GAAA,GAAK77G,KAAK0F,MAAMqzG,QAAYiD,GAGnD,GAFAh8G,KAAKm6G,WAAW+B,EAAgBr9G,GAE5BA,EAAO,CACP,IAAI27C,EAAMx6C,KAAK66G,QACTsB,EAAoB1nE,KAAU2nE,oBAAoBF,EAAgBl8G,KAAKigB,MAAM+4F,gBAC/EhtH,OAAOkK,KAAKimH,GAAmB1uH,OAAS,IACxC+sD,EAAM/F,KAAUC,eAAe8F,EAAK2hE,IAGxC7L,KAAkBuC,UAAUgH,GAAY,KAAMr/D,EAAK0hE,yCAKvDl8G,KAAKq8G,uDAGU,IAAAtsG,EAAA/P,KAAVs8G,EAAU1tH,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAH,EACN2tH,EAAev8G,KAAKigB,MAAMzR,QAAQ+tG,cAAgB,GAClD/sF,EAASqsF,GAAA,GAAK77G,KAAK0F,MAAMqzG,QAAYwD,GAC3C/sF,EAAOi3E,YAAc6V,EAErB,IAAMH,EAAoB1nE,KAAU2nE,oBAAoB5sF,EAAQxvB,KAAKigB,MAAM+4F,gBAEvEh5G,KAAK06G,oBACL16G,KAAK06G,kBAAkB,wBACvB16G,KAAK06G,kBAAoB,MAG7B,IACMxmH,EADcumD,KAAM+hE,YACCtoH,SAG3B,OAFA8L,KAAK06G,kBAAoBxmH,EAAOkvC,OAAOt2B,KAAK5Y,GAErCwrD,KAAItzD,IAAI4T,KAAKigB,MAAMzR,QAAQ4rC,YAAa,CAC3C5qB,OAAQqsF,GAAA,GACDM,EADD,CAEFxhF,QAAS36B,KAAKigB,MAAMzR,QAAQiuG,cAAgBz8G,KAAKigB,MAAMzR,QAAQiuG,cAAgB,GAC/EC,YAAaxoH,EAAOorD,QAExBq9D,iBAAkB,SAACC,GACf,OAAOhiC,KAAG7kF,UAAU6mH,MAEzB9iF,KAAK,SAACt3B,GAEL,OADAuN,EAAK2qG,kBAAoB,KAClBl4G,EAAOzZ,MACf,SAACglB,GAIA,OAHK0sC,KAAMkhE,SAAS5tG,KAChBgC,EAAK2qG,kBAAoB,MAEtBv7D,QAAQE,OAAOtxC,kDAQT6S,GACjB,IAAM3lB,EAASw5C,KAAUumE,sBAAsBp6F,GAC/C,OAAO5gB,KAAKi8G,gBAAgBhhH,2CAGhB89G,GAEZ,IAAMv2G,EAAS,GACf,IAAK,IAAM/W,KAAKstH,EACRttH,KAAKuU,KAAKigB,MAAM+4F,iBAChBx2G,EAAO/W,GAAKstH,EAAQttH,IAG5B,OAAO+W,mCAGF,IAAA2N,EAAAnQ,KACL,OACIm4C,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAK,SAACx/D,GACP2gB,EAAKriB,QAAU0B,IAEdwQ,KAAKigB,MAAMpU,OAAO,CACf4uG,0BAA2Bz6G,KAAK0F,MAAM+0G,0BACtC1B,QAAS/4G,KAAK0F,MAAMqzG,QACpByB,iBAAkBx6G,KAAK0F,MAAM80G,iBAC7B/lH,MAAOuL,KAAK0F,MAAMjR,MAClB+xG,WAAYxmG,KAAK0F,MAAM8gG,WACvBmU,gBAAiB36G,KAAK26G,gBACtBC,cAAe56G,KAAK46G,cACpBhU,WAAY5mG,KAAK4mG,WACjBD,cAAe3mG,KAAK0F,MAAMihG,upBAO9CmT,GAAQrhE,UAAY,CAChBjqC,QAASkqC,KAAUnsD,OAAOu4D,WAC1Bk0D,eAAgBtgE,KAAUnsD,OAAOu4D,WACjCj5C,OAAQ6sC,KAAUx3C,KAAK4jD,YCrRpB,IAED+3D,+kBAA2BhkE,KAAMC,sDAClB,IAAAxpC,EAAAtP,KAAAmyD,EACuBnyD,KAAKigB,MAAjCrV,EADKunD,EACLvnD,OAAQkyG,EADH3qD,EACG2qD,gBAEhB,OAAOlyG,EAAO4D,QAAQtH,IAAI,SAAC8C,GACvB,IAAMhc,EAAKojH,OACX,OACIj5D,GAAAllD,EAAA/D,cAAA,MAAIwF,IAAK08G,QACLj5D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uCACXgoD,GAAAllD,EAAA/D,cAAA,SACIiB,UAAU,yCACVnC,GAAIA,EACJK,KAAK,WACLlE,MAAO6f,EAAO7f,MACd2tD,SAAoD,IAA3CglE,EAAgBnsH,QAAQqZ,EAAO7f,OACxC+lC,SAAU,SAACx8B,GAAD,OACN4b,EAAK2Q,MAAM06F,gBAlBV,QAoBG3wG,EAAO7f,MACPuJ,EAAM3D,OAAO+nD,YAIzBK,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,wBAAwB+pE,QAASlsE,GAC9CmqD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,4BAA4B0B,MAAM,KAAK8gC,OAAO,MACzDwlB,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,iBAEnB1M,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,wBAAwB6Z,EAAOtf,4CASnE,OACIytD,GAAAllD,EAAA/D,cAAA,UACK8Q,KAAK+8G,gNAMtBF,GAAmBpkE,UAAY,CAC3B7tC,OAAQ8tC,KAAUnsD,OAAOu4D,WACzBg4D,gBAAiBpkE,KAAUjjD,MAAMqvD,WACjC61D,gBAAiBjiE,KAAUx3C,KAAK4jD,YAGrB+3D,kdCpDR,IAEDG,+kBAA0BnkE,KAAMC,sDACjB,IAAAxpC,EAAAtP,KAAAmyD,EACuBnyD,KAAKigB,MAAjCrV,EADKunD,EACLvnD,OAAQkyG,EADH3qD,EACG2qD,gBAEhB,OAAOlyG,EAAO4D,QAAQtH,IAAI,SAAC8C,GACvB,IAAMhc,EAAKojH,OACX,OACIj5D,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0BuE,IAAK08G,QACzCj5D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBACXgoD,GAAAllD,EAAA/D,cAAA,SACIiB,UAAU,wCACVnC,GAAIA,EACJK,KAAK,WACLlE,MAAO6f,EAAO7f,MACd2tD,SAAoD,IAA3CglE,EAAgBnsH,QAAQqZ,EAAO7f,OACxC+lC,SAAU,SAACx8B,GAAD,OACN4b,EAAK2Q,MAAM06F,gBAlBX,OAoBI3wG,EAAO7f,MACPuJ,EAAM3D,OAAO+nD,YAIzBK,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,uBAAuB+pE,QAASlsE,GAC7CmqD,GAAAllD,EAAA/D,cAAA,YAAO8a,EAAOtf,MACdytD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BAA2B0B,MAAM,KAAK8gC,OAAO,MACxDwlB,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,uDAUvC,OACI1M,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,uBACT6P,KAAK+8G,gNAMtBC,GAAkBvkE,UAAY,CAC1B7tC,OAAQ8tC,KAAUnsD,OAAOu4D,WACzBg4D,gBAAiBpkE,KAAUjjD,MAAMqvD,WACjC61D,gBAAiBjiE,KAAUx3C,KAAK4jD,YAGrBk4D,2sBCnDTC,2VAMgB,SAACC,EAAYC,EAAsBC,GACjD,IACIxlG,IADEklG,EAAkBxtG,EAAK2Q,MAAM84F,QAAQmE,GAIvCtlG,EADAwlG,EACQ,GAAAnyH,gHAAO6xH,yNAAP,CAAwBK,IAErBL,EAAgBntG,OAAO,SAACxlB,GAAD,OAAWA,IAAUgzH,IAG3D7tG,EAAK2Q,MAAM06F,gBAAX0C,GAAA,GAA8BH,EAAatlG,2PAhBtBihC,KAAMC,qDACfrvD,GAEZ,OADoBuW,KAAKigB,MAAjBzR,QACOuqG,QAAQ/iG,KAAK,SAACrG,GAAD,OAAYA,EAAOlmB,OAASA,qCAiBxD,OACI0uD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oBACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,2BACVgoD,GAAAllD,EAAA/D,cAAA,YAAO8Q,KAAKigB,MAAMq9F,aAAal3E,MAA/B,KACA+R,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,gCAAgC6P,KAAKigB,MAAMq9F,aAAaC,WACrEplE,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,0BAA0B6P,KAAKigB,MAAMq9F,aAAavkF,OAEnEof,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCACXgoD,GAAAllD,EAAA/D,cAACsuH,GAAD,CACI5yG,OAAQ5K,KAAKy9G,gBD9BL,QC+BRX,gBAAiB98G,KAAKigB,MAAM84F,QAAX,KACjB4B,gBAAiB36G,KAAK26G,mBAG9BxiE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAACwuH,GAAD,CACI9yG,OAAQ5K,KAAKy9G,gBFrCJ,SEsCTX,gBAAiB98G,KAAKigB,MAAM84F,QAAX,MACjB4B,gBAAiB36G,KAAK26G,kNAQ9CsC,GAAexkE,UAAY,CACvBsgE,QAASrgE,KAAUnsD,OAAOu4D,WAC1Bt2C,QAASkqC,KAAUnsD,OAAOu4D,WAC1Bw4D,aAAc5kE,KAAUnsD,OACxBouH,gBAAiBjiE,KAAUx3C,KAAK4jD,YAGrBm4D,UCtDTU,GAAa,SAAAj5G,GAAA,IAAGwzC,EAAHxzC,EAAGwzC,MAAH,OACfC,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BACXgoD,GAAAllD,EAAA/D,cAAC0uH,GAAA,EAAD,CAAQ1lE,MAAOA,OAK3BylE,GAAWllE,UAAY,CACnBP,MAAOQ,KAAUnsD,OAAOu4D,YAGb64D,2sBCLTE,eACF,SAAAA,EAAY59F,GAAO,IAAA3Q,IAAA,uCAAAuuG,4DAAAC,CAAA99G,MACfsP,MAAAyuG,GAAAF,GAAAt0H,KAAAyW,KAAMigB,+CAANjgB,QADeg+G,GAAAC,MAAA3uG,IAAA,kBAwDD,SAAC4uG,GACf3lE,KAAIzjD,KAAK,YAAa,QAASlK,OAAOg2B,SAASgyB,MAC/CsrE,MAvDA5uG,EAAK0pG,kVAALmF,CAAA,GACOrF,GAAkB74F,EAAMzR,QAAQuqG,UAJxBzpG,qPADMupC,KAAMC,yDASXrkD,GAIhB,IAHA,IAAM2pH,EAAa,GACbC,EAAchxH,KAAK2R,KAAKvK,EAAMhH,OAASuS,KAAKigB,MAAMq+F,aAE/C7yH,EAAI,EAAGA,EAAI4yH,EAAa5yH,IAAK,CAClC,IAAM8yH,EAAa9yH,EAAIuU,KAAKigB,MAAMq+F,YAC5BE,GAAY/yH,EAAI,GAAKuU,KAAKigB,MAAMq+F,YAChCG,EAAahqH,EAAMtG,MAAMowH,EAAYC,GAE3CJ,EAAWtpH,KACPqjD,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,CAAgBpuD,IAAKjJ,GACjB0sD,GAAAllD,EAAA/D,cAAC+/E,GAAD,CACIx6E,MAAOgqH,EACP/9F,QAAS1gB,KAAKigB,MAAMS,QACpBk9F,OAAQ59G,KAAKigB,MAAM29F,SAGnBa,EAAWhxH,SAAWuS,KAAKigB,MAAMq+F,aACjCt+G,KAAK0+G,iBAMrB,OAAON,yCAIP,OAAKp+G,KAAKigB,MAAM29F,OAGZzlE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBACXgoD,GAAAllD,EAAA/D,cAACyvH,GAAD,CAAYzmE,MAAOl4C,KAAKigB,MAAM29F,UAJP,+CAU/B,OACIzlE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBACXgoD,GAAAllD,EAAA/D,cAAA,WACIipD,GAAAllD,EAAA/D,cAAA,wBACAipD,GAAAllD,EAAA/D,cAAA,4FAWP,IAAAqgB,EAAAvP,KACL,OACIm4C,GAAAllD,EAAA/D,cAAC0vH,GAAD,CACIpwG,QAASxO,KAAKigB,MAAMzR,QACpBwqG,eAAgBh5G,KAAKg5G,eACrBntG,OAAQ,SAAAnH,GAAA,IACKjQ,EADLiQ,EACKjQ,MACAskH,EAFLr0G,EAEKq0G,QACAvS,EAHL9hG,EAGK8hG,WACAG,EAJLjiG,EAIKiiG,cACAC,EALLliG,EAKKkiG,WACA+T,EANLj2G,EAMKi2G,gBANL,OAQJxiE,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KAEQvzC,EAAK0Q,MAAM4+F,qBAAqBzF,GAAeL,EAASxpG,EAAK0Q,MAAMzR,QAAQuqG,UAG3Ej/D,KAASglE,aACL3mE,GAAAllD,EAAA/D,cAAC6vH,GAAD,CACIhG,QAASA,EACTiG,YAAazvG,EAAK0Q,MAAM++F,YACxBxwG,QAASe,EAAK0Q,MAAMzR,QACpB8uG,aAAc/tG,EAAK0Q,MAAMq9F,aACzB3C,gBAAiBA,IAErBprG,EAAK0Q,MAAM++F,aAGnB7mE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oBAAoB8uH,gBAAA,EAAaC,YAAU,UACrD3vG,EAAK4vG,oBAAoB1qH,IACxBA,EAAMhH,QAAU8hB,EAAK6vG,mBAE3BjnE,GAAAllD,EAAA/D,cAACmwH,GAAD,CACIzY,WAAY,kBAAMr3F,EAAK82F,gBAAgBO,IACvCJ,WAAYA,EACZG,cAAeA,sMAO3CkX,GAAeplE,UAAY,CACvBjqC,QAASkqC,KAAUnsD,OAAOu4D,WAC1BpkC,QAASg4B,KAAUjjD,MAAMqvD,WACzBw4D,aAAc5kE,KAAUnsD,OACxBqxH,OAAQllE,KAAUnsD,OAClB+xH,YAAa5lE,KAAUxjB,OACvB8pF,YAAatmE,KAAU4mE,WAAW7wH,SAASq2D,WAC3C+5D,qBAAsBnmE,KAAUx3C,KAAK4jD,YAG1B+4D,k3BCrBA0B,eA9FX,SAAAA,IAAqB,IAAAjoF,EAAAhoB,qCAAAiwG,4DAAAC,CAAAx/G,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAKjB,MAJAwxB,EAAAmoF,GAAAF,IAAAh2H,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,QADiB0/G,GAAAC,MAAArwG,IAAA,uBAyDE,SAACswG,GACfrvH,MAAMuvB,QAAQxQ,EAAK2oB,KAAK4nF,aAE7BvwG,EAAK2oB,KAAK4nF,WAAWr6G,QAAQ,SAACs6G,GAC1BA,EAAUC,OAASH,MA7DNF,GAAAC,MAAArwG,IAAA,qBAiEA,WACjBA,EAAK0wG,kBA/DL1wG,EAAKvmB,KAAOumB,EAAKo/D,WAEZp/D,EAAKvmB,KACN,MAAM,IAAIwa,MAAM,6BAGpB,IAAM62C,EAAc9qC,EAAKvmB,KAAKqxD,YAE9B,IAAKA,EACD,MAAM,IAAI72C,MAAM,4CAGpB,IAAMw1G,EAAUzpG,EAAKvmB,KAAKgwH,QAAQ7xG,IAAI,SAACyI,GAAD,MAClC,CACIthB,KAAMw4G,GACNp9G,KAAMkmB,EAAOlmB,KACb+kB,QAASmB,EAAOoB,OAChBq4B,aAAc,MApBL,OAwBjB95B,EAAK2wG,eAAiB,CAClB7lE,cACA2+D,UACAuB,aAAchrG,EAAKvmB,KAAKm3H,SACxB1Z,WAAYl3F,EAAKvmB,KAAKy9G,WACtB+V,aAAcjtG,EAAKvmB,KAAKA,MAG5BumB,EAAKxB,OAhCYwB,yPADO0oB,oDAqCxB,MAAO,CAAC,UAAW,+CAInBh4B,KAAKggH,gBAEL9wE,KAAS9W,YAAYu2C,IAA2B3uE,KAAK4uE,sDAIrD,IAAI7lF,EAAO,KAEX,IACIA,EAAO8M,KAAKC,MAAMkK,KAAK8H,aAAa9H,KAAKi4B,KAAKlvC,KAAM,SACtD,MAAOglB,GACLhjB,QAAQC,IAAI+iB,GAGhB,OAAOhlB,0CAgBP8iB,kBACIssC,GAAAllD,EAAA/D,cAACixH,GAAD,CACI3xG,QAASxO,KAAKigH,eACdv/F,QAAS1gB,KAAK64G,aACdyE,aAAct9G,KAAKjX,KAAKu0H,aACxBM,OAAQ59G,KAAKjX,KAAK60H,OAClBU,YAAat+G,KAAKjX,KAAKu1H,YACvBU,YAAah/G,KAAKi4B,KAAK8gF,QACvBqH,gBAAiBpgH,KAAKi4B,KAAKrmC,YAC3BitH,qBAAsB7+G,KAAK6+G,uBAE/B7+G,KAAKi4B,KAAKooF,8CAKd,OAAOxH,GAAW3lE,IAAI67B,0DAItBj1B,KAASC,uBAAuB/5C,KAAKi4B,KAAKooF,mkCChGlD9nF,IAAkBC,cAAchE,OAAO,YAAa+qF,gBCQ9Ce,eACF,SAAAA,IAAqB,IAAAhpF,EAAAhoB,qCAAAgxG,4DAAAC,CAAAvgH,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAkpF,GAAAF,IAAA/2H,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,QADiBygH,GAAAC,MAAApxG,IAAA,qBA0BA,SAAC0kF,EAAeC,GACjC3kF,EAAKsyC,SAAS,CAAElhC,QAASm4F,GAAW5kB,OA3BnBwsB,GAAAC,MAAApxG,IAAA,0BA8BK,SAACqxG,GACvBrxG,EAAKsyC,SAAS,CACV++D,OACAna,WAAY,CACRC,YAAa,IAElB,kBAAMn3F,EAAKo/D,cApCG+xC,GAAAC,MAAApxG,IAAA,aAsFR,WACLA,EAAK5J,MAAMk7G,mBACXtxG,EAAKsyC,SAAS,CAAEg/D,oBAAoB,IAIxCtxG,EAAKo/D,SAAQ,KA5FI+xC,GAAAC,MAAApxG,IAAA,gBAyGL,WACZipC,KAAIzjD,KAAK,eAAgB,QAASlK,OAAOg2B,SAASgyB,QAxGlDtjC,EAAKvmB,KAAO,KACZumB,EAAK5J,MAAQ,CACTjR,MAAO,GACP+xG,WAAY,CACRC,YAAa,GAEjB/lF,QAASm4F,GAAW3lE,IAAI67B,sBACxB47B,YAAY,EACZiW,oBAAoB,EACpBD,KAAM,IAXOrxG,qPADQupC,KAAMC,yDAiB/B+nE,KAAgB3wF,SAASlwB,KAAK8gH,yBAC9B5xE,KAAS9W,YAAYu2C,IAA2B3uE,KAAK4uE,oBACrD5uE,KAAK0uE,yDAILx/B,KAASszC,eAAe7T,IAA2B3uE,KAAK4uE,oBACxD5uE,KAAKgrG,gDAgBDW,GAAY,IAAAp8F,EAAAvP,KAAA6wD,EACsC7wD,KAAKigB,MAAMzR,QAAzD4rC,EADQyW,EACRzW,YAAaumE,EADL9vD,EACK8vD,KAAMI,EADXlwD,EACWkwD,uBACrBta,EAAczmG,KAAK0F,MAAM8gG,WAAWC,YACpCua,EAAepmC,KAAG7kF,UAAU,CAAE0wG,YAAaA,EAAc,IACzDwa,EAASrmC,KAAG7kF,UAAU,CAAE4qH,KAAI,GAAA11H,OAAAi2H,GAAMP,GAANO,GAAelhH,KAAK0F,MAAMi7G,SACtDQ,EAA2BvmC,KAAG7kF,UAAU,CAAEgrH,uBAAwBA,IAClEvmE,EAAG,GAAAvvD,OAAMmvD,EAAN,KAAAnvD,OAAqBk2H,EAArB,KAAAl2H,OAAiD+1H,EAAjD,KAAA/1H,OAAiEg2H,GAE1EjhH,KAAKgrG,gBACLhrG,KAAK8rG,kBAAoBC,YAAetxD,KAAMruD,IAAIouD,IAClDx6C,KAAK8rG,kBACAE,QACAlyE,KAAK,SAAChmB,GAAa,IACVrf,EAAUqf,EAAS/qB,KAAnB0L,MAEN,GAAKlE,MAAMuvB,QAAQrrB,GAAnB,CAKA,IAAImsH,EAAqBnsH,EAAMhH,OAAS,EAEpCk+G,IACAl3G,EAAK,GAAAxJ,OAAAi2H,GAAO3xG,EAAK7J,MAAMjR,OAAlBysH,GAA4BzsH,IACjCmsH,GAAqB,GAGzBrxG,EAAKqyC,SAAS,CACVntD,QACA+xG,WAAY1yF,EAAS/qB,KAAKy9G,WAC1Boa,qBACAjW,YAAY,SAfZp7F,EAAKqyC,SAAS,CAAE+oD,YAAY,MAkBnC3wE,MAAM,WACHzqB,EAAKqyC,SAAS,CAAE+oD,YAAY,MAGpC3qG,KAAK4hD,SAAS,CAAE+oD,YAAY,4CAIxB3qG,KAAK8rG,mBACL9rG,KAAK8rG,kBAAkB1oE,4CAapB,IAAAk0B,EAC+Bt3D,KAAK0F,MAAnCk7G,EADDtpD,EACCspD,mBAAoBnsH,EADrB6iE,EACqB7iE,MAE5B,OAAImsH,EACOnsH,EAAMtG,MAAM,EAAG,GAGnBsG,mCAOF,IAAA28D,EACwBpxD,KAAKigB,MAAMzR,QAAhC4yG,EADHhwD,EACGgwD,UAAWh7E,EADdgrB,EACchrB,MADd67B,EAEsCjiE,KAAK0F,MAAxCk7G,EAFH3+C,EAEG2+C,mBAAoBjW,EAFvB1oC,EAEuB0oC,WAFvB0W,EAG8BrhH,KAAK0F,MAAM8gG,WAAtCC,EAHH4a,EAGG5a,YAAaC,EAHhB2a,EAGgB3a,UACfjyG,EAAQuL,KAAK07G,WACbjP,EAAc7xG,KAAW,CAC3B8xG,aAAc/B,IAGlB,OAAKl2G,EAAMhH,OAGP0qD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBACVw6G,GAAcxyD,GAAAllD,EAAA/D,cAACojE,GAAA,EAAD,CAAcs6C,YAAU,IACvCz0D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,aACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,oCAAoCi2C,KAG1D+R,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,aACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oBAAoB+uH,YAAU,UACzC/mE,GAAAllD,EAAA/D,cAAC+/E,GAAD,CAAiBx6E,MAAOA,EAAOisB,QAAS1gB,KAAK0F,MAAMgb,YAGlDkgG,GAAsBna,EAAcC,IACrCvuD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,6BAAAlF,OAA+BwhH,IACzCt0D,GAAAllD,EAAA/D,cAAA,UACIb,KAAK,SACL8B,UAAU,mDACVmoD,QAASt4C,KAAK4mG,YAHlB,eASHga,GACDna,IAAgBC,GAChBvuD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qBACXgoD,GAAAllD,EAAA/D,cAAA,KACIiB,UAAU,mDACVyiD,KAAMwuE,EACN9oE,QAASt4C,KAAKshH,eAHlB,oBA9BE,mMA6ClChB,GAAmB7nE,UAAY,CAC3BjqC,QAASkqC,KAAUnsD,QAGR+zH,sdC1JAiB,eArBX,SAAAA,IAAqB,IAAAjqF,EAAAhoB,qCAAAiyG,4DAAAC,CAAAxhH,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAmqF,GAAAF,IAAAh4H,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACK8N,OAFYwB,qPADW0oB,sCAO5Bh4B,KAAK6L,6CAILiuC,KAASC,uBAAuB/5C,KAAKlS,0CAIrCgsD,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAACwyH,GAAD,CAAoBlzG,QAASxO,KAAKwO,UAClCxO,KAAKlS,k7BClBjByqC,IAAkBC,cAAchE,OAAO,iBAAkB+sF,gBCyB1CI,eAzBX,SAAAA,IAAqB,IAAArqF,EAAAhoB,2CAAAqyG,4DAAAC,CAAA5hH,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAuqF,GAAAF,IAAAp4H,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,UAeY,WACRsP,EAAK2oB,KAAKvmC,MAAMomD,QAChB+oE,KAAgBl5G,IAAI2H,EAAK2oB,KAAKvmC,MAAMvH,OAEpC02H,KAAgB74G,OAAOsH,EAAK2oB,KAAKvmC,MAAMvH,WApB1B,qBAAA23H,MAAAxyG,2FAEjBA,EAAK5J,MAAQ,GAEb4J,EAAKxB,OAJYwB,yPADU0oB,oDAS3B,MAAO,CAAC,6CAIRh4B,KAAK+hH,gBACL/hH,KAAKo4B,YAAYp4B,KAAKi4B,KAAKvmC,MAAO,SAAUsO,KAAK+hH,mvBCbzDxpF,IAAkBC,cAAchE,OAAO,0BAA2BmtF,YCIlE,IAEqBK,eACjB,SAAAA,IAAqB,IAAA1qF,EAAAhoB,qCAAA0yG,4DAAAC,CAAAjiH,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAA4qF,GAAAF,IAAAz4H,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,QADiBmiH,GAAAC,MAAA9yG,IAAA,uBAkCE,SAAC5b,GAChB4b,EAAK+yG,qBACL3uH,EAAMkmB,iBACNtK,EAAKgzG,cAAgBhzG,EAAK49D,UAC1B59D,EAAKizG,iBACLjzG,EAAK+yG,oBAAqB,KAvCbF,GAAAC,MAAA9yG,IAAA,uBAqDE,WACnBA,EAAKizG,mBAnDLjzG,EAAKvmB,KAAOumB,EAAKxH,aAAawH,EAAK2oB,KAAKlvC,KAAM,WAC9CumB,EAAK49D,UAAYr3E,KAAKC,MAAMwZ,EAAKvmB,MAEjCumB,EAAKgzG,cAAgB,KACrBhzG,EAAK+yG,oBAAqB,EAE1B/yG,EAAKxB,OATYwB,qPADoB0oB,sCAcrCh4B,KAAKwiH,kBAELxiH,KAAKo4B,YAAYp4B,KAAKi4B,KAAKwqF,cAAe,QAASziH,KAAK0iH,sBAExD1iH,KAAKuiH,iBACLrzE,KAAS9W,YAAYu2C,IAA2B3uE,KAAKmgG,0DAIrDjxD,KAASszC,eAAe7T,IAA2B3uE,KAAKmgG,gEAIxDngG,KAAKsiH,cAAgBtiH,KAAKktE,UAEtBltE,KAAKsiH,cAAc70H,OA/BS,IAgC5BuS,KAAKsiH,cAAgBtiH,KAAKktE,UAAU/+E,MAAM,EAhCd,GAiC5B6R,KAAKqiH,oBAAqB,4CAc9BvoE,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAAC+/E,GAAD,CACIx6E,MAAOuL,KAAKsiH,cACZ5hG,QAAS1gB,KAAK64G,eAElB74G,KAAKi4B,KAAK0qF,qDASd,OChEkB,SAACC,EAAY30C,GACnC,OAAQ20C,GACJ,KAAK,EACD,MAAO,CACH70C,GhIJJ,SgII4CE,IAEhD,KAAK,EACD,MAAO,CACHF,GhINc,2BgIM4CE,IAElE,QACI,MAAO,CACHF,GhIPM,mBgIO4CE,KDoDnD4qC,CAAW74G,KAAKsiH,cAAc70H,OAAQylD,IAAI67B,wjCEjEzDx2C,IAAkBC,cAAchE,OAAO,oBAAqBwtF,wDCwD7C1J,eAxDX,SAAAA,IAAqB,IAAAhhF,EAAAhoB,qCAAAgpG,4DAAAuK,CAAA7iH,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAwrF,GAAAxK,IAAA/uH,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,QADiB+iH,GAAAC,MAAA1zG,IAAA,iBAyCJ,SAAC5b,GACdA,EAAMkmB,iBACNtK,EAAKgmG,QAAQC,KAAK,UA3CDwN,GAAAC,MAAA1zG,IAAA,iBA8CJ,SAAC5b,GACdA,EAAMkmB,iBACNtK,EAAKgmG,QAAQC,KAAK,UA9ClBjmG,EAAKgmG,QAAU,KAEfhmG,EAAKxB,OAJYwB,yPADa0oB,oDAS9B,MAAO,CAAC,8CAGL,IAAAzoB,EAAAvP,KACHA,KAAKs1G,QAAUS,aAAI,CACfptH,UAAWqX,KAAKi4B,KAAK+tD,OACrBgwB,WAAW,EACXC,MAAM,EACNhI,KAAK,EACLiI,UAAU,EACVC,OAAO,EACPC,WAAY,CACRC,IAAK,CACDC,QAAS,GAEbC,KAAM,CACFD,QAAS,MAKjB/lH,MAAMuvB,QAAQ9f,KAAKi4B,KAAKu+E,UACxBx2G,KAAKi4B,KAAKu+E,QAAQhxG,QAAQ,SAAC65D,GACvB9vD,EAAK6oB,YAAYinC,EAAG,QAAS9vD,EAAKknG,kBAGtClmH,MAAMuvB,QAAQ9f,KAAKi4B,KAAKy+E,UACxB12G,KAAKi4B,KAAKy+E,QAAQlxG,QAAQ,SAAC65D,GACvB9vD,EAAK6oB,YAAYinC,EAAG,QAAS9vD,EAAKonG,sDAgB1C32G,KAAKs1G,QAAQhsC,yfCpDrB/wC,IAAkBC,cAAchE,OAAO,kBAAmB8jF,wBCCrC2K,eACjB,SAAAA,IAAqB,IAAA3rF,EAAAhoB,qCAAA2zG,4DAAAC,CAAAljH,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAA6rF,GAAAF,IAAA15H,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,qPADwB0oB,sCAStCh4B,KAAKi4B,KAAKqO,cACTtmC,KAAKsmC,YAActmC,KAAK8H,aAAa9H,KAAKi4B,KAAKqO,YAAa,WAC5DtmC,KAAKojH,WAAapjH,KAAKqjH,cAAcrjH,KAAKsmC,aAC1CtmC,KAAK6L,OAAO7L,KAAKojH,4CAIlBE,GACHxpE,KAASjuC,OACTssC,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BAAf,IAA2CmzH,GAC3CtjH,KAAKi4B,KAAKqO,mDAKCi9E,GACf,IAAMC,EAAY,IAAI3lG,KAAK0lG,GACrBppB,EAAat8E,KAAKmgC,MAAQwlE,EAAUhuD,UACpC8tD,EAAM,IAAIzlG,KAAKs8E,GAErB,OAAO9sG,KAAKg2B,IAAIigG,EAAIG,iBAAmB,oMC9B3ClrF,IAAkBC,cAAchE,OAAO,cAAeyuF,0CCAhDS,GAA6B,SAACzjG,GAChC,OACIk4B,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6CACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kEACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCAAf,aAKR8vB,EAAMxrB,MAAMyS,IAAI,SAACvR,EAAMlK,GACnB,OACI0sD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBAAiBuE,IAAKjJ,GACjC0sD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2CACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BACXgoD,GAAAllD,EAAA/D,cAAC4gG,EAAA,EAAD,CACIC,SAAU,8BACV3mG,MAAOuM,EAAKguH,cAEhBxrE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BACVwF,EAAK+tC,SAASyG,cADnB,KACoCx0C,EAAK8tC,UADzC,IAC2E,IAAtB9tC,EAAKiuH,cAAsB,cAYpHF,GAA2BjrE,UAAY,CACnChkD,MAAOikD,KAAUjjD,MAAMqvD,YAGZ4+D,UCzCFG,GAAc73H,OAAO+7C,OAAO,CACrC+7E,OAAQ,WAGCC,GAAqB/3H,OAAO+7C,OAAO,CAC5Ci8E,SAAU,WACVC,MAAO,UAGEC,GAAc,YACdC,GAAc,6sBCiJZC,eAtJX,SAAAA,EAAYnkG,GAAO,IAAA3Q,IAAA,uCAAA80G,4DAAAC,CAAArkH,QACfskH,GAAAF,GAAA76H,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,QADeukH,GAAAC,MAAAl1G,IAAA,aAcN,WACT,OAAKA,EAAK5J,MAAM++G,sBASTtsE,GAAAllD,EAAA/D,cAACohG,GAAA,EAAD,CACHP,SAAS,+BACTQ,SAAS,QACT1+F,MAAM,KACN8gC,OAAO,OAZAwlB,GAAAllD,EAAA/D,cAACohG,GAAA,EAAD,CACHP,SAAS,yBACTQ,SAAS,SACT1+F,MAAM,KACN8gC,OAAO,SApBA4xF,GAAAC,MAAAl1G,IAAA,iBAgCF,SAAC5b,EAAO/B,GAKrB,MAJsC,KAAlC2d,EAAK5J,MAAMg/G,oBACXp1G,EAAKsyC,SAAS,CAAE6iE,uBAAuB,IAGvCn1G,EAAK5J,MAAM++G,uBACX9yH,EAAS,IACT2d,EAAKsyC,SAAS,CACV6iE,uBAAuB,EACvBC,mBAAoB,MAEjB,IAGX/yH,EAAS2d,EAAK5J,MAAMg/G,oBACpBp1G,EAAKsyC,SAAS,CAAE6iE,uBAAuB,KAEhC,KAjDQF,GAAAC,MAAAl1G,IAAA,iBAoDF,SAAC5b,EAAO/B,GACrB,MAAkB,UAAd+B,EAAMgB,MACV4a,EAAKq1G,eAAejxH,EAAO/B,IACpB,KAvDQ4yH,GAAAC,MAAAl1G,IAAA,uBA0DI,WACnB,OAAIA,EAAKs1G,qBACLt1G,EAAK2Q,MAAM8uD,uBAAyB80C,GAAYC,QAEhDx0G,EAAKsyC,SAAS,CAAEijE,gBAAgB,IAEhCj6H,OAAO8oE,WAAW,WACdpkD,EAAKw1G,SAASjwH,QAAQ2b,SACvB,KAEHlB,EAAKs1G,qBAAsB,GAEpB,IAGPt1G,EAAK5J,MAAM++G,wBACXn1G,EAAKsyC,SAAS,CAAEijE,gBAAgB,IAChCv1G,EAAKs1G,qBAAsB,GAG3Bt1G,EAAKs1G,qBACLt1G,EAAK2Q,MAAM8uD,uBAAyB80C,GAAYC,SAChDx0G,EAAKs1G,qBAAsB,IAGxB,KAnFQL,GAAAC,MAAAl1G,IAAA,sBAsFG,SAAC5b,EAAO/B,GAC1B2d,EAAKq1G,eAAejxH,EAAO/B,GAC3B2d,EAAKy1G,yBAxFUR,GAAAC,MAAAl1G,IAAA,uBA2FI,WACnB,IAAIc,EAAW,GAWf,OATId,EAAK2Q,MAAM8uD,uBAAyB80C,GAAYC,SAChD1zG,EAAW,aAGXd,EAAK5J,MAAMm/G,gBACXv1G,EAAK2Q,MAAM8uD,uBAAyB80C,GAAYC,SAChD1zG,EAAW,aAGRA,IAvGQm0G,GAAAC,MAAAl1G,IAAA,eA0GJ,SAAC5b,GACR4b,EAAK5J,MAAM++G,uBACXn1G,EAAKsyC,SAAS,CAAE6iE,uBAAuB,IAG3Cn1G,EAAKsyC,SAAS,CACV8iE,mBAAoBhxH,EAAM3D,OAAO5F,UA7GrCmlB,EAAKw1G,SAAWjsE,KAAMwwB,YAEtB/5D,EAAKs1G,qBAAsB,EAE3Bt1G,EAAK5J,MAAQ,CACTm/G,gBAAgB,EAChBJ,uBAAuB,EACvBC,mBAAoB,IAVTp1G,qPADWupC,KAAMC,8CAqH3B,IAAAvpC,EAAAvP,KAKL,OAJIA,KAAKigB,MAAM8uD,uBAAyB80C,GAAYC,SAChD9jH,KAAK4kH,qBAAsB,GAI3BzsE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,sCAAAlF,OACR+U,KAAK0F,MAAM++G,sBAAwB,WAAa,GADxC,sBAAAx5H,OAER+U,KAAKglH,yBAEP7sE,GAAAllD,EAAA/D,cAAA,SACIiB,UAAW,0BACX9B,KAAK,OACLlE,MAAO6V,KAAK0F,MAAMg/G,mBAClB9yH,YAAY,cACZo9D,IAAKhvD,KAAK8kH,SACV50F,SAAU,SAACx8B,GAAD,OAAW6b,EAAK01G,aAAavxH,IACvCwxH,WAAY,SAACxxH,GAAD,OAAW6b,EAAK41G,eAAezxH,EAAO6b,EAAK0Q,MAAM+hF,oBAGjE7pD,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,2BACV9B,KAAK,SACLiqD,QAAS,SAAC5kD,GAAD,OAAW6b,EAAK61G,oBAAoB1xH,EAAO6b,EAAK0Q,MAAM+hF,mBAE/D7pD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCACV6P,KAAKqlH,sxBCnFfC,eA7DX,SAAAA,EAAYrlG,GAAO,IAAA3Q,UAAA,uCAAAg2G,4DAAAC,CAAAvlH,QACfwlH,GAAAF,GAAA/7H,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,UAmCa,WACb,IAAM7V,EAAQmlB,EAAKouE,gBAAgB+nC,UAAS,GAET,mBAAxBn2G,EAAK2Q,MAAMiQ,UAClB5gB,EAAK2Q,MAAMiQ,SAAS/lC,OAxCT,sBAAAu7H,MAAAp2G,2FAGfA,EAAKouE,gBAAkB,KACvBpuE,EAAKq2G,UAAY9sE,KAAMwwB,YAJR/5D,qPADMupC,KAAMC,yDAQX,IACRtqC,EAAYxO,KAAKigB,MAAjBzR,QACFw/F,EAAQ,eAEdhuG,KAAK09E,gBAAkB,IAAI9yF,OAAO4f,QAAQxK,KAAK2lH,UAAU9wH,QAAS,CAC9DyD,QAASkW,EACTvV,eAAe,EACfM,YAAY,EACZW,eAAgB,GAChBU,WAAY,CACR9D,eAAc,WAAA7L,OAAa+iH,GAC3Bj3G,eAAc,kBAAA9L,OAAoB+iH,EAApB,WACd/2G,KAAI,iBAAAhM,OAAmB+iH,EAAnB,UACJ52G,aAAY,2BAAAnM,OAA6B+iH,EAA7B,oBACZ72G,WAAU,yBAAAlM,OAA2B+iH,EAA3B,kBACVr4G,KAAI,iBAAA1K,OAAmB+iH,EAAnB,UACJ32G,eAAc,6BAAApM,OAA+B+iH,EAA/B,sBACd12G,aAAY,2BAAArM,OAA6B+iH,EAA7B,oBACZz2G,WAAU,yBAAAtM,OAA2B+iH,EAA3B,oEAMdhuG,KAAK09E,iBACL19E,KAAK09E,gBAAgBpU,2CAazB,OACInxB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCACXgoD,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,4BACV6+D,IAAKhvD,KAAK2lH,UACVz1F,SAAUlwB,KAAK4lH,iBAGnBztE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCAAgC0B,MAAM,KAAK8gC,OAAO,IAAIiyB,UAAU,SAC3EzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,+OCvDtBm7B,GAAa,SAACvrF,EAAOoxH,GAC9B,IAAMC,EAAcrxH,EAAME,OAAO,SAAC81B,EAAKj7B,GAYnC,OAXqBu2H,QAAQt7F,EAAIzU,KAAK,SAACrgB,GACnC,OAAOA,EAAKqwH,eAAiBx2H,EAAGw2H,iBAIhCv7F,EAAI31B,KAAK,CACL9G,GAAIy8B,EAAIh9B,OAAS,EACjBu4H,aAAcx2H,EAAGw2H,eAIlBv7F,GACR,IAEGw7F,EAAiB,CACnB,CAAE/7H,MAAO,gBAAiBC,MAAO,GAAI+nB,UAAU,IAGzB4zG,EAAY3vH,KAAK,SAAClD,EAAGC,GAC3C,OAAOD,EAAE+yH,aAAe9yH,EAAE8yH,aAAe,GAAK,IAGhCxgH,QAAQ,SAACwE,GACvBi8G,EAAenxH,KAAK,CAChB5K,MAAO8f,EAAOg8G,aACd77H,MAAO6f,EAAOg8G,aACd9zG,UAAU,MAIlB,IAAMg0G,EAAclxF,KAAUixF,EAAgB,SAAC1rH,GAAD,OAAaA,EAAOpQ,QAAU07H,EAAMM,SAQlF,OANqB,IAAjBD,EACAD,EAAe,GAAG/zG,UAAW,EAE7B+zG,EAAeC,GAAah0G,UAAW,EAGpC+zG,yVC1CJ,IAAMG,GAAgB,SAACt1D,EAASu1D,EAAWC,GAC9C,IAAIC,EAAU,GACVF,IAAWE,EAAU,aAEzB,IAAMC,EAAgB,GAChBhkH,EAAS,GAmBf,OAlBwBikH,GAAI31D,GAAS36D,KAAK,SAAClD,EAAGC,GAAJ,OACtC,IAAI2qB,KAAK5qB,EAAEszH,IAAY,IAAI1oG,KAAK3qB,EAAEqzH,MAEtB/gH,QAAQ,SAACmqF,GACrB,IAAM+2B,EAAa/2B,EAAO42B,GAErBC,EAAcE,KACfF,EAAcE,GAAc,IAGhCF,EAAcE,GAAY5xH,KAAK66F,KAGnC3jG,OAAOkK,KAAKswH,GAAehhH,QAAQ,SAAC9Q,GAChC8xH,EAAc9xH,GAAKyB,KAAK,SAAClD,EAAGC,GAAJ,OAAUD,EAAE0zH,YAAczzH,EAAEyzH,cACpDnkH,EAAO1N,KAAP+J,MAAA2D,EAAMikH,GAASD,EAAc9xH,OAG1B8N,GAGEokH,GAAsB,CAC/BC,aAAc,CACV93B,cAAe,SAAArqF,GAA8B,IAA3BosD,EAA2BpsD,EAA3BosD,QAASg2D,EAAkBpiH,EAAlBoiH,YACvB,OAAOh2D,EAAQnhD,OAAO,SAACo3G,GAAD,OAAgBA,EAAWf,eAAiBc,MAG1EE,cAAe,CACXj4B,cAAe,SAAAzrF,GAA8B,IAA3BwtD,EAA2BxtD,EAA3BwtD,QAASm2D,EAAkB3jH,EAAlB2jH,YACjBC,EAAW,CAAC,YAAa,YAE/B,OAAOp2D,EAAQnhD,OAAO,SAACha,GACnB,OAAOuxH,EAASxxH,KAAK,SAAC5G,GAClB,OAAOm4H,EAAYvxH,KAAK,SAACiK,GACrB,OAAOhK,EAAK7G,GAAMsE,cAAc6X,SAAStL,6sBCnB3DwnH,eACF,SAAAA,EAAYlnG,GAAO,IAAA3Q,IAAA,uCAAA63G,4DAAAC,CAAApnH,QACfqnH,GAAAF,GAAA59H,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,QADesnH,GAAAC,MAAAj4G,IAAA,YAmCP,WACRA,EAAKw2G,YAAc9lC,GAAW1wE,EAAK2Q,MAAM6wC,QAASxhD,EAAKu2G,OAEnDv2G,EAAK2Q,MAAMzR,QAAQngB,OAAS01H,GAAmBE,QAC/C30G,EAAKk4G,0BAA2B,GAGpCl4G,EAAK2Q,MAAM6wC,QAAQtrD,QAAQ,SAAC7P,GACpBA,EAAKuuH,MACL50G,EAAK+2G,WAAY,GAGjB1wH,EAAKwuH,MACL70G,EAAKg3G,WAAY,OAhDVgB,GAAAC,MAAAj4G,IAAA,uBAqDI,WACnBA,EAAKsyC,SAAS,CAAEmtB,qBAAsB77B,IAAI67B,yBAtD3Bu4C,GAAAC,MAAAj4G,IAAA,kBAyDD,SAACm4G,GACf,OAAkB,KAAdA,EAAyB,GACtB,MA3DQH,GAAAC,MAAAj4G,IAAA,oBA8DC,SAAC3Z,GACjB,OAAI2Z,EAAKk4G,yBAAiC,MAEtC7xH,EAAK+xH,mBAEDvvE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gDACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uCACXgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,+BAA+BwF,EAAKgyH,gBArErDL,GAAAC,MAAAj4G,IAAA,cAoFL,SAAC0oE,EAAO5xC,EAAOr9C,EAAM0+H,GAC/BzvC,EAAQA,GAAS,GACjB5xC,EAAQA,IAAS,EACjBr9C,EAAOA,GAAQ,KACf0+H,EAAYA,GAAa,KAEzB,IAAMG,EAAoBt4G,EAAKk4G,yBAA2B,KAAO,GAEjE,OAAIl4G,EAAK+2G,WAAaruC,IAAUksC,GACxB99E,EAEI+R,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8DACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBAAf,YAAiDy3H,IAKzDzvE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCACXgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,4BAAqC,OAATpH,EAAgBA,EAAO,KACnEovD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,qCAAqCmf,EAAKu4G,gBAAgBJ,MAMtFn4G,EAAKg3G,WAAatuC,IAAUmsC,GACxB/9E,EAEI+R,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8DACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBAAf,gBAKRgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCACXgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,4BAAqC,OAATpH,EAAgBA,EAAO,KACnEovD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,qCAAqCmf,EAAKu4G,gBAAgBJ,MAMnF,OAhIQH,GAAAC,MAAAj4G,IAAA,aAmIN,WACT,OACIA,EAAK7a,MAAMyS,IAAI,SAACvR,GACZ,IAAMmyH,EAAYnyH,EAAK0wH,WAAav6E,kBAAOn2C,EAAK0wH,UAAUp4H,QAAQ,IAAK,IAAK,UACtE85H,EAAYpyH,EAAK2wH,WAAax6E,kBAAOn2C,EAAK2wH,UAAUr4H,QAAQ,IAAK,IAAK,UACtE2hG,EACFj6F,EAAK8tC,UAAY,IACjB9tC,EAAK+tC,SAAW,IAChB/tC,EAAKqyH,YAAc,IACnBryH,EAAKsyH,SAAW,IAChBtyH,EAAKqwH,aACT,OACI7tE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBAAiBuE,IAAKk7F,GACjCz3C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2CACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BACXgoD,GAAAllD,EAAA/D,cAAC4gG,EAAA,EAAD,CACIC,SAAU,8BACV3mG,MAAOuM,EAAKguH,cAEhBxrE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BACVwF,EAAK+tC,SAASyG,cADnB,KACoCx0C,EAAK8tC,UADzC,IAC2E,IAAtB9tC,EAAKiuH,cAAsB,SAIxFzrE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8CACVwF,EAAKsyH,UAEV9vE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2CAEPwF,EAAKm8D,cACLn8D,EAAKm8D,aAAai4C,SAClB5xD,GAAAllD,EAAA/D,cAAA,KACIiB,UAAU,6BACVyiD,KAAMj9C,EAAKm8D,aAAai4C,QACxBpvC,oBAAkB,qBAEjBhlE,EAAKm8D,aAAaroE,OAK9B6lB,EAAK44G,kBAAkBvyH,GACvB2Z,EAAK64G,YAAYjE,IAAa,EAAO4D,EAAWnyH,EAAKgxH,aACrDr3G,EAAK64G,YAAYhE,IAAa,EAAO4D,EAAWpyH,EAAKyyH,kBA9KvDd,GAAAC,MAAAj4G,IAAA,sBAqLG,SAAC5b,GACnB,IAAMijG,EAAajjG,EAAM3D,OAAO4mG,WAI5BA,IAHgBjjG,EAAM3D,OAAO2mG,YACbhjG,EAAM3D,OAAO+B,YAG7Bwd,EAAK+4G,cAAcxzH,QAAQlF,UAAUgY,IAAI,gBACnB,IAAfgvF,EACPrnF,EAAKg5G,aAAazzH,QAAQlF,UAAUqY,OAAO,gBACpC2uF,EAAarnF,EAAKi5G,WACzBj5G,EAAKg5G,aAAazzH,QAAQlF,UAAUgY,IAAI,gBACjCgvF,EAAarnF,EAAKi5G,YACzBj5G,EAAK+4G,cAAcxzH,QAAQlF,UAAUqY,OAAO,gBAGhDsH,EAAKi5G,WAAa70H,EAAM3D,OAAO4mG,aApMhB2wB,GAAAC,MAAAj4G,IAAA,qBAuME,SAACnlB,GAClB,IAAIqwD,EAGAA,EADU,KAAVrwD,EACG,GAAAc,OAAMqkB,EAAK+hG,eAAXpmH,OAA2BqkB,EAAKk5G,gBAEhC,GAAAv9H,OAAMqkB,EAAK+hG,cAAX,YAAApmH,OAAmCd,GAAnCc,OAA2CqkB,EAAKk5G,gBAIvD59H,OAAO69H,QAAQ5V,UAAU,KAAM,KAAMr4D,GAErClrC,EAAKsyC,SAAS,CAAE8mE,eAAgBv+H,MAnNjBm9H,GAAAC,MAAAj4G,IAAA,qBAsNE,SAACq5G,GAClBr5G,EAAK23G,YAAc0B,EAAKt3H,OAAO+B,cAAcqM,MAAM,OAEnD6P,EAAKsyC,SAAS,CAAEgnE,mBAA6B,KAATD,MAzNrBrB,GAAAC,MAAAj4G,IAAA,oBA4NC,SAACvmB,EAAM8/H,GACvB,IAAMC,EAAkBlC,GAAoBiC,GAEtC5oG,EAAQ,CACV6wC,QAAS/nE,EACT+9H,YAAax3G,EAAK5J,MAAMgjH,eACxBzB,YAAa33G,EAAK23G,aAGtB,OAAO6B,EAAgB/5B,cAAc9uE,KAlOrC3Q,EAAK85D,QAAUvwB,KAAMwwB,YACrB/5D,EAAKg5G,aAAezvE,KAAMwwB,YAC1B/5D,EAAK+4G,cAAgBxvE,KAAMwwB,YAC3B/5D,EAAK23G,YAAc,GACnB33G,EAAK+2G,WAAY,EACjB/2G,EAAKg3G,WAAY,EACjBh3G,EAAKk4G,0BAA2B,EAChCl4G,EAAKi5G,WAAa,EAClBj5G,EAAK+hG,cAAgBzmH,OAAOg2B,SAASynF,SACrC/4F,EAAKk5G,eAAiB59H,OAAOg2B,SAASl3B,KACtC4lB,EAAKu2G,MAAQjrC,KAAG9kF,MAAMlL,OAAOg2B,SAAS3lB,OAAQ,CAAE8tH,mBAAmB,IAEnEz5G,EAAK5J,MAAQ,CACTqpE,qBAAsB,GACtBi6C,sBAAsB,EACtBN,eAAgBp5G,EAAKu2G,MAAMM,QAAU,GACrCyC,oBAAoB,GAGxBt5G,EAAK25G,YAtBU35G,qPADSupC,KAAMC,yDA2B9BvgB,IAAkBC,cAAc1qB,KAAK9N,KAAKopE,QAAQv0E,SAClDq6C,KAAS9W,YAAYu2C,IAA2B3uE,KAAKmgG,qEAIrD5nE,IAAkBC,cAAc8wC,QAAQtpE,KAAKopE,QAAQv0E,SACrDq6C,KAASszC,eAAe7T,IAA2B3uE,KAAKmgG,0DAwMhDrvC,GACR,IAAKvgE,MAAMuvB,QAAQgxC,GAAU,MAAO,GAEpC,IAAI2vC,EAAmB3vC,EAYvB,OAVI9wD,KAAK0F,MAAMgjH,iBACXjoB,EAAmBzgG,KAAKkpH,kBAAkBzoB,EAAkB,gBAC5DA,EAAmB2lB,GAAc3lB,EAAkBzgG,KAAKqmH,UAAWrmH,KAAKsmH,YAGxEtmH,KAAK0F,MAAMkjH,qBACXnoB,EAAmBzgG,KAAKkpH,kBAAkBzoB,EAAkB,iBAC5DA,EAAmB2lB,GAAc3lB,EAAkBzgG,KAAKqmH,UAAWrmH,KAAKsmH,YAGrE7lB,mCAIPzgG,KAAKvL,MAAQuL,KAAK+gG,YAAY/gG,KAAKigB,MAAM6wC,SACzC,IAAM6/B,EAAW/1F,KAAW,CACxBuuH,mBAAoBnpH,KAAK0F,MAAMsjH,uBAGnC,OACI7wE,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KACI3K,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,iCAAAlF,OAAmC0lG,GAAY3hC,IAAKhvD,KAAKopE,SACnEjxB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACV6P,KAAK8lH,YAAYr4H,OAAS,GACvB0qD,GAAAllD,EAAA/D,cAACk6H,GAAD,CACI56G,QAASxO,KAAK8lH,YACd51F,SAAUlwB,KAAKqpH,qBAGvBlxE,GAAAllD,EAAA/D,cAACo6H,GAAD,CACIv6C,qBAAsB77B,IAAI67B,qBAC1BizB,gBAAiBhiG,KAAKiiG,sBAG9B9pD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACXgoD,GAAAllD,EAAA/D,cAAA,KACIiB,UAAU,uBACVyiD,KAAM5yC,KAAKigB,MAAMzR,QAAQ+6G,aACzB5uD,oBAAkB,iBAElBxiB,GAAAllD,EAAA/D,cAACohG,GAAA,EAAD,CACIP,SAAU,4BACVQ,SAAU,IACV1+F,MAAO,GACP8gC,OAAQ,SAOxB3yB,KAAKvL,MAAMhH,OAAS,EAChB0qD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8BAEXgoD,GAAAllD,EAAA/D,cAACs6H,GAAD,CAAqB/0H,MAAOuL,KAAKvL,QAEjC0jD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qBACXgoD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,sEACV6+D,IAAKhvD,KAAKsoH,cAEVnwE,GAAAllD,EAAA/D,cAACohG,GAAA,EAAD,CACIP,SAAU,yBACVQ,SAAU,aACV1+F,MAAO,GACP8gC,OAAQ,MAGhBwlB,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,uEACV6+D,IAAKhvD,KAAKqoH,eAEVlwE,GAAAllD,EAAA/D,cAACohG,GAAA,EAAD,CACIP,SAAU,yBACVQ,SAAU,aACV1+F,MAAO,GACP8gC,OAAQ,OAKpBwlB,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,2BACVs5H,SAAUzpH,KAAK0pH,qBAEfvxE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kEACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCAAf,YAGRgoD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,qEACVgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCAAf,mBACAgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qCAAf,eAEJgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kEACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBAAf,WAEH6P,KAAKwnH,yBAA2B,KAC7BrvE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uEACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBAAf,SAEP6P,KAAKmoH,YAAYjE,IAAa,GAC9BlkH,KAAKmoH,YAAYhE,IAAa,IAGlCnkH,KAAK2pH,gBAGTxxE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBACpBgoD,GAAAllD,EAAA/D,cAAA,0BACAipD,GAAAllD,EAAA/D,cAAA,2PAQ5Bi4H,GAAkB1uE,UAAY,CAC1BjqC,QAASkqC,KAAUnsD,OACnBukE,QAASpY,KAAUjjD,OAGR0xH,uqBCzXTyC,+kBAAuB/wE,KAAMC,yDAE3BC,IAAch1C,UAAd,OAAA9Y,OAA+B+U,KAAKigB,MAAMzR,QAAQngB,sDAIlD0qD,IAAch0C,YAAd,OAAA9Z,OAAiC+U,KAAKigB,MAAMzR,QAAQngB,wCAG/C,IACGw7H,EAAgB7pH,KAAKigB,MAArB4pG,YAER,QAAoBx+H,IAAhBw+H,EACA,OACI1xE,GAAAllD,EAAA/D,cAACkjE,GAAA,EAAD,CAAkBC,UAAW,KACzBla,GAAAllD,EAAA/D,cAACojE,GAAA,EAAD,OAKZ,IAAKu3D,IAAgBt5H,MAAMuvB,QAAQ+pG,EAAY/4D,SAC3C,OAAO3Y,GAAAllD,EAAA/D,cAACyzG,GAAA,EAAD,CAAgBnJ,QAAS,CAAC8J,KAAWwmB,QAGhD,MAAMh5D,KAAc+4D,EAAY/4D,yUAAS36D,KAAK,SAAClD,EAAGC,GAC9C,OAAOD,EAAEozH,UAAU0D,cAAc72H,EAAEmzH,aAGvC,OACIluE,GAAAllD,EAAA/D,cAAC86H,GAADC,GAAA,GACQjqH,KAAKigB,MADb,CAEI6wC,QAASA,mMAMzB84D,GAAenxE,UAAY,CACvBjqC,QAASkqC,KAAUC,MAAM,CACrBtqD,KAAMqqD,KAAUj5B,OAChB8pG,aAAc7wE,KAAUj5B,UAIhC,IAQeyqG,GAJezwE,aAJN,SAAC/zC,EAAOykH,GAAR,MAAsB,CAC1CN,YAAankH,EAAMg0C,QAAN,OAAAzuD,OAAqBk/H,EAAS37G,QAAQngB,SAGzBorD,CAE5BmwE,unBCxBaQ,eA3BX,SAAAA,IAAqB,IAAA9yF,EAAAhoB,qCAAA86G,4DAAAC,CAAArqH,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAgzF,GAAAF,IAAA7gI,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACK8N,OAFYwB,yPADO0oB,oDAOxB,MAAO,CAAC,4CAIRh4B,KAAK6L,6CAILiuC,KAASC,uBAAuB/5C,KAAKi4B,KAAK/sC,uCAI1C4uD,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAACuV,GAAA,EAAD,CAAU7X,MAAOA,MACburD,GAAAllD,EAAA/D,cAACq7H,GAAD,CAAgB/7G,QAASxO,KAAKwO,WAElCxO,KAAKi4B,KAAK/sC,qfC1BtBqtC,IAAkBC,cAAchE,OAAO,YAAa41F,gBCC9CI,eACF,SAAAA,EAAYvqG,GAAO,IAAA3Q,IAAA,uCAAAk7G,4DAAAC,CAAAzqH,OACfA,OAAA0qH,GAAAF,GAAAjhI,KAAAyW,KAAMigB,GAAN3Q,uKAAAtP,SACKopE,QAAUvwB,KAAMwwB,YAFN/5D,qPADKupC,KAAMC,yDAO1BvgB,IAAkBC,cAAc1qB,KAAK9N,KAAKopE,QAAQv0E,wDAIlD0jC,IAAkBC,cAAc8wC,QAAQtpE,KAAKopE,QAAQv0E,0CAIrD,IAAMi9D,EAAe1lE,IAAI4T,KAAKigB,MAAO,yBAErC,IAAK6xC,EAAc,OAAO,KAC1B,IAAI64D,EAA4C,OAAvB74D,EAAa84D,YAAyCv/H,IAAvBymE,EAAa84D,MACjEC,EAA6C,OAAvB/4D,EAAag5D,YAAyCz/H,IAAvBymE,EAAag5D,MAEtE,OACI3yE,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,2BACVgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8BACXgoD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,WACV65E,cAAalY,EAAai5D,YAC1B71D,IAAI,GACJgV,aAAW,UAGnB/xB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2CACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCAAiC2hE,EAAaroE,MAExDkhI,GACAxyE,GAAAllD,EAAA/D,cAAA,KAAG0jD,KAAMkf,EAAa84D,MAClBz6H,UAAU,+BACVwqE,oBAAkB,oBAClB3L,IAAKhvD,KAAKopE,SACTtX,EAAak5D,eAIlBH,GACA1yE,GAAAllD,EAAA/D,cAAA,KAAG0jD,KAAMkf,EAAag5D,MAClB36H,UAAU,+BACVwqE,oBAAkB,oBAClB3L,IAAKhvD,KAAKopE,SACTtX,EAAam5D,gBAGtB9yE,GAAAllD,EAAA/D,cAAA,KAAG0jD,KAAMkf,EAAai4C,QAClB55G,UAAU,+BACVwqE,oBAAkB,oBAClB3L,IAAKhvD,KAAKopE,SAHd,+MAc5BohD,GAAc/xE,UAAY,CACtB73B,SAAU83B,KAAUnsD,QAGTi+H,sdCpETU,+kBAA4BryE,KAAMC,yDAEhCC,IAAch1C,UAAd,UAAA9Y,OAAkC+U,KAAKigB,MAAMzR,QAAQngB,sDAIrD0qD,IAAch0C,YAAd,UAAA9Z,OAAoC+U,KAAKigB,MAAMzR,QAAQngB,wCAGlD,IACC88H,EAAmBnrH,KAAKigB,MAAxBkrG,eACN,YAAuB9/H,IAAnB8/H,EAEIhzE,GAAAllD,EAAA/D,cAACkjE,GAAA,EAAD,CAAkBC,UAAW,KACzBla,GAAAllD,EAAA/D,cAACojE,GAAA,EAAD,OAKP64D,GAAmB56H,MAAMuvB,QAAQqrG,EAAeC,YAErDD,EAAeC,UAAYC,GAASF,EAAeC,WAG/CjzE,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,2BAENg7H,EAAeC,UAAUlkH,IAAI,SAAC0Z,GAAD,OACzBu3B,GAAAllD,EAAA/D,cAACo8H,GAAD,CAAe52H,IAAKksB,EAAS2qG,WAAY3qG,SAAUA,QARK,mMAehFsqG,GAAoBzyE,UAAY,CAC5BjqC,QAASkqC,KAAUnsD,QAGvB,IAIM8+H,GAAW,SAACD,GAEd,SAAWA,mUAAWj1H,KAAK,SAAClD,EAAEC,GAC1B,GAAID,EAAE6+D,cAAgB5+D,EAAE4+D,aACxB,OAAO7+D,EAAE6+D,aAAaroE,KAAKsgI,cAAc72H,EAAE4+D,aAAaroE,eASjD+hI,GAJoB/xE,aAbX,SAAC/zC,EAAOykH,GAAR,MAAsB,CAC1CgB,eAAgBzlH,EAAMg0C,QAAN,UAAAzuD,OAAwBk/H,EAAS37G,QAAQngB,SAY1BorD,CAEjCyxE,unBCzBaO,eA5BX,SAAAA,IAAqB,IAAAn0F,EAAAhoB,qCAAAm8G,4DAAAC,CAAA1rH,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAq0F,GAAAF,IAAAliI,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,yPADS0oB,oDAQ1B,MAAO,CAAC,0DAIRh4B,KAAK6L,6CAILiuC,KAASC,uBAAuB/5C,KAAKi4B,KAAK2zF,qDAI1C9xE,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAACuV,GAAA,EAAD,CAAU7X,MAAOA,MACburD,GAAAllD,EAAA/D,cAAC28H,GAAD,CAAqBr9G,QAASxO,KAAKwO,WAEvCxO,KAAKi4B,KAAK2zF,2DC3BtBrzF,IAAkBC,cAAchE,OAAO,cAAei3F,wBCDhDK,GAA6B,SAAC7rG,GAChC,IACQ8rG,EASR,OACI5zE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0CACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iDACXgoD,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,wCACV9B,KAAK,SACLiqD,QAAS,kBAAMr4B,EAAM+rG,YAErB7zE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uCACXgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,4CAAhB,WACAgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,8CAAhB,SAEJgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+CACXgoD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAS,6EAAAlF,OACHg1B,EAAMgsG,qBAAuB,UAAY,IAC/Cp6H,MAAM,IACN8gC,OAAO,IACPiyB,UAAU,SAEVzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,yBAM/B1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,0CAAAlF,QAnCd8gI,EAAY,GAEZ9rG,EAAMgsG,uBACNF,EAAY,cAGTA,KA8BC5zE,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,6CACVgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,6CAAd,UAGAgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,6CAAd,mBAGAgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,6CAAd,kBAGAgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,6CAAd,QAIJgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,2CACVgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,2CACVgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,iDAAhB,aACAgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,iDAAhB,MAEJgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,2CACVgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,iDAAhB,iBACAgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,iDAAhB,QAEJgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,2CACVgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,iDAAhB,aACAgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,iDAAhB,OAEJgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,2CACVgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,iDAAhB,gBACAgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,iDAAhB,OAEJgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,2CACVgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,iDAAhB,WACAgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,iDAAhB,QAEJgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,2CACVgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,iDAAhB,aACAgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,iDAAhB,OAEJgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,2CACVgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,wDAAhB,qBAEJgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,2CACVgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,wDAAhB,oBAQxB27H,GAA2BrzE,UAAY,CACnCwzE,qBAAsBvzE,KAAUqM,KAChCinE,QAAStzE,KAAUx3C,MAGR4qH,UCjGFI,GAAe,UACfC,GAAa,aCCbC,GAAqB,SAACz8B,EAAQ3hG,GACvC,OAAK2hG,GAAWp/F,MAAMuvB,QAAQ6vE,EAAOj/B,SAElBi/B,EAAOj/B,OAAO16C,KAAK,SAACq5C,GAAD,OAAWA,EAAMg9D,QAAQ1+H,aAAeK,KAFzB,MA6B5Cs+H,GAAmB,SAACC,EAAWv+H,GACxC,OAAKuC,MAAMuvB,QAAQysG,IAEAA,EAAUv2G,KAAK,SAACq5C,GAAD,OAAWA,EAAM0vC,QAAQpxG,aAAeK,KAFpC,MAO7Bw+H,GAAmC,SAAC78B,EAAQoP,GACrD,IAAMwnB,EA/B+B,SAAC52B,EAAQ3hG,GAC9C,IAAK2hG,IAAWp/F,MAAMuvB,QAAQ6vE,EAAO88B,UAAW,OAAO,KAEvD,IAAMlG,EAAU52B,EAAO88B,SAASz2G,KAAK,SAACrpB,GAAD,OAAOA,EAAE0/H,QAAQ1+H,aAAeK,IAErE,OAAOu4H,EAAUA,EAAQA,QAAU,KA0BnBmG,CAA0B/8B,EAAQoP,GAC9C4tB,EAAc,EACdC,EAAa,GAOjB,GALIj9B,GAAUA,EAAOj/B,OAAOquC,EAAU,KAClC4tB,EAAch9B,EAAOj/B,OAAOquC,EAAU,GAAG8tB,cACzCD,EAAaj9B,EAAOj/B,OAAOquC,EAAU,GAAG6tB,YAGxCD,EAAc,EAAG,CACjB,GAAmB,QAAfC,EACA,MAAO,IAGX,IAAME,EAAY72G,SAAS22G,EAAY,IAMvC,OAJIE,EAAY,IACZF,EAAU,IAAA3hI,OAAO6hI,IAGdF,EAGX,OAAmB,OAAZrG,EAAmBz6E,kBAAOy6E,EAAQt4H,QAAQ,IAAK,IAAK,UAAY,KAG9D8+H,GAAwB,SAAChkI,GAClC,IAAMikI,EAAIjkI,EAAKkkI,gBACTxiG,EAAM1hC,EAAKmkI,qBAEjB,OAAS,MAALF,GAAmB,OAANA,EAAmB,GAE1B,MAANA,GAAmB,QAANA,EACb,OAAA/hI,OAAcw/B,GAGlB,GAAAx/B,OAAU+hI,ICoBCG,GA9EkB,SAACltG,GAAU,ID6DhBk5E,EC3DpBgvB,EAKAloG,EALAkoG,YACAx4B,EAIA1vE,EAJA0vE,OACAy9B,EAGAntG,EAHAmtG,gBACAC,EAEAptG,EAFAotG,iBACAtyB,EACA96E,EADA86E,WAGEzF,EAAiB,GAOvB,OANIyF,EACAzF,EAAeG,SAAU,EAEzBH,EAAe3qB,QAAS,EAIxBxyB,GAAAllD,EAAA/D,cAAA,OACIiB,UAAS,8CAAAlF,OAAgD8vG,EAAa,gBAAkB,IACxFrmG,IAAKi7F,EAAO29B,SAEZn1E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sDACXgoD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,6BAA6Bw/F,EAAO19F,SAAW09F,EAAO19F,SAASvH,KAAO,MAGxFytD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8DACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACXgoD,GAAAllD,EAAA/D,cAAC4gG,EAAA,EAAD,CACIC,SAAU,iCACV3mG,MAAOumG,EAAO49B,eACdnnF,MAAOupD,EAAO69B,gBAK1Br1E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yDACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCACXgoD,GAAAllD,EAAA/D,cAACwmG,GAAA,EAAD,CACI9F,SAAUD,EAAO29B,QAAQ3/H,WACzB49E,MAAO+pB,KAGfn9C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACVw/F,EAAOjsD,SAASyG,cADrB,KACsCwlD,EAAOlsD,UAD7C,IACiF,IAAxBksD,EAAOi0B,cAAsB,OAEtFzrE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCAAiCw/F,EAAOs4B,UACvD9vE,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,sCAAsC48H,GAAsBp9B,OAIrFw4B,EFvEuB,sBEuEW,EAAOx4B,GACzCw4B,EFtEY,YEsEW,EAAOx4B,GAC9Bw4B,EFxEqB,oBEwEW,EAAOx4B,GACvCw4B,EF7DmB,mBE6DW,EAAOx4B,GACtCx3C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sDACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,mCAAAlF,OAAqCoiI,EAAiB19B,EAAQ,UDCpEwJ,ECASxJ,EAAOwJ,ODE1B,IAAVA,GAAyB,QAAVA,EAAwB,IAEpCA,EAHY,OCGVi0B,EAAgBz9B,GAChBw4B,EFhFU,UEgFW,EAAOx4B,GAC5Bw4B,EF/EK,ME+EW,EAAOx4B,GACvBw4B,EF/EK,ME+EW,EAAOx4B,GACvBw4B,EF7EQ,SE6EW,EAAOx4B,GAC1Bw4B,EFnFU,UEmFW,EAAOx4B,GAC5Bw4B,EF9EK,ME8EW,EAAOx4B,GACvBw4B,EF9EQ,SE8EW,EAAOx4B,GAC1Bw4B,EF9EQ,SE8EW,EAAOx4B,KC5F1B09B,GAAmB,SAACtkI,EAAMq9C,GACnC,IAAI55C,EAAW,KAEf,OAAQ45C,GACJ,IAAK,MACD55C,EAAWypB,SAASltB,EAAKowG,MAAO,IAChC,MACJ,IAAK,QACD3sG,EAAWypB,SAASltB,EAAM,IAC1B,MACJ,QACI,OAAOyD,EAGf,OAAIA,EAAW,EACJ,WAIM,IAAbA,GACS,QAATzD,GACS,MAATA,GACCA,IAAwB,QAAfA,EAAKowG,OAAkC,MAAfpwG,EAAKowG,OAEhC,WAGP3sG,EAAW,EACJ,UAGJ,YAGEihI,GAAwB,SAAC18D,GAClC,IAAKA,EAAMx9D,MAAO,OAAO,EAEzB,IACM6+F,EAAMrhC,EAAMqhC,IAEZ3nE,EADQsmC,EAAMx9D,MACA6+F,EAEpB,OAAa,IAAT3nE,EACkB,eAIlBA,GAAO,EACW,oBAIV,IAARA,EACkB,WAIlBA,EAAM,EACY,mBAIf,MC9DEs5F,GAAqB/3H,OAAO+7C,OAAO,CAC5Ci8E,SAAU,WACVC,MAAO,QACPyJ,YAAa,aACbC,SAAU,YAGD9+B,GAAY7iG,OAAO+7C,OAAO,CACnC+mD,SAAU,MACVG,OAAQ,SACR2+B,YAAa,cACb38D,OAAQ,SACRk+B,IAAK,MACLj+B,KAAM,OACNk+B,MAAO,QACPC,MAAO,QACPC,GAAI,KACJu+B,SAAU,UACVC,OAAQ,QACRC,MAAO,OACPC,UAAW,UACXz+B,GAAI,KACJ0+B,SAAU,UACVC,OAAQ,QACRC,MAAO,OACPC,UAAW,YC+BAC,GA9CiB,SAAA3pH,GAO3B,IALGrW,EAKHqW,EALGrW,KACAikG,EAIH5tF,EAJG4tF,eACAnB,EAGHzsF,EAHGysF,gBACAm9B,EAEH5pH,EAFG4pH,WAGEl+G,EAAW+gF,EAAgBC,cAAgB/iG,EAC3CsiG,EAAW/1F,KAAW,CACxBg2F,YAAaxgF,EACbihF,SAAUjhF,GAAY+gF,EAAgBG,qBAGpCiB,EDI2B,SAAClkG,GAClC,OAAQA,GACJ,KAAKwgG,GAAUk/B,MACf,KAAKl/B,GAAUs/B,MACX,MAAO,KACX,KAAKt/B,GAAUi/B,OACf,KAAKj/B,GAAUq/B,OACX,MAAO,MACX,KAAKr/B,GAAUm/B,UACf,KAAKn/B,GAAUu/B,UACX,MAAO,QACX,KAAKv/B,GAAUg/B,SACf,KAAKh/B,GAAUo/B,SACX,MAAO,QACX,QACI,OAAO5/H,GCnBEmkG,CAAsBnkG,GACjC+3C,EDsBoB,SAAC/3C,GAC3B,OAAQA,GACJ,KAAKwgG,GAAUM,IACX,MAAO,SACX,KAAKN,GAAUO,MACX,MAAO,QACX,KAAKP,GAAU39B,KACX,MAAO,QACX,KAAK29B,GAAUk/B,MACf,KAAKl/B,GAAUs/B,MACX,MAAO,KACX,KAAKt/B,GAAUi/B,OACf,KAAKj/B,GAAUq/B,OACX,MAAO,MACX,KAAKr/B,GAAUm/B,UACf,KAAKn/B,GAAUu/B,UACX,MAAO,UACX,KAAKv/B,GAAUg/B,SACf,KAAKh/B,GAAUo/B,SACX,MAAO,YACX,QACI,OAAO5/H,GC3CDokG,CAAepkG,GAC7B,SAASkgI,EAAoBnoF,GACzB,MAAa,eAATA,EACO,MAEJA,EAGX,OACI+R,GAAAllD,EAAA/D,cAAA,OACIiB,UAAS,gFAAAlF,OAAkFsnG,EAAlF,KAAAtnG,OAA8F0lG,IACvGx4C,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,uCACV9B,KAAK,SACLiqD,QAAS,kBAAMg6C,EAAejkG,KAE9B8pD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCAAgCo+H,EAAoBnoF,KACpD,OAAbmsD,GAAkC,QAAbA,GAAmC,UAAbA,IACzCp6C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qCAAqCm+H,GAExDn2E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6CACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yCAAyC0B,MAAM,IAAI8gC,OAAO,IAAIiyB,UAAU,SACnFzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,sBAI3B1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kCAAkCo+H,EAAoBnoF,MCjDpEooF,GAAkB,SAAA9pH,GAEzB,IADFvU,EACEuU,EADFvU,UAAW24F,EACTpkF,EADSokF,KAAM8S,EACfl3F,EADek3F,GAAIC,EACnBn3F,EADmBm3F,GAAI4yB,EACvB/pH,EADuB+pH,mBAAoBC,EAC3ChqH,EAD2CgqH,iBAEzCC,EAAiBx+H,GAAa,0BAElC,GAAI24F,IAASojC,GAAc,CACvB,GAAItwB,GAAMC,EAEN,MADc,GAAA5wG,OAAM0jI,EAAN,OAIlB,GAAID,IAAqBD,EAErB,MADc,GAAAxjI,OAAM0jI,EAAN,YAIlB,GAAID,GAAoBD,EAEpB,MADc,GAAAxjI,OAAM0jI,EAAN,UAKtB,OAAI7lC,IAASqjC,GACTwC,EAAc,GAAA1jI,OAAM0jI,EAAN,gBAIX,mcCSX,IAAMC,GAAuB,SAAC3uG,GAC1B,IAAM4uG,EAAeh2E,KAAMwwB,YACrBi/C,EAAezvE,KAAMwwB,YACrBg/C,EAAgBxvE,KAAMwwB,YACtByf,EAAO7oE,EAAM6oE,KACbqI,EAAkBlxE,EAAMkxE,gBACxBmB,EAAiBryE,EAAMqyE,eACvBxhC,EAAU7wC,EAAM6wC,QAClBy3D,EAAa,EACbkG,GAAqB,EACrBC,GAAmB,EACnB9yB,GAAK,EACLC,GAAK,EACLoxB,GAAkB,EAClB6B,GAAyB,EA0BvBC,EAAiB,CACnBjmC,OACA8S,KACAC,KACA4yB,qBACAC,oBAGEM,EAAmB,SAAC5oF,EAAOupD,EAAQoP,GACrC,GAAI34D,EACA,OACI+R,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KPhFS,MOiFJi8C,GAAyBkwB,EAAoBpgC,GAAUS,GAAIgD,GPhFvD,MOiFJyM,GAAyBkwB,EAAoBpgC,GAAUU,GAAI+C,IAKxE,IJ/B8BhqD,EAAO4mF,EACrC1iI,EACA2iI,EI6BMC,EAAchD,GAAmBz8B,EAAQoP,GAC3CswB,EAAc,IACdC,EAAkB,GAUtB,OARIF,GAAeA,EAAY9mF,QAC3B+mF,EAAcD,EAAY9mF,OAG1B8mF,GAAeA,EAAY9mF,OAAS8mF,EAAYF,SJvCtB5mF,EIwCc8mF,EAAY9mF,MJxCnB4mF,EIwC0BE,EAAYF,OJtC3EC,EAAkB,GIsCdG,GJrCR9iI,EAAWypB,SAASqyB,EAAO,KAEZ4mF,EACXC,EAAkB,WAIlB3iI,IAAa0iI,EACbC,EAAkB,WAIlB3iI,EAAW0iI,EACXC,EAAkB,UAIfA,GIwBCh3E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,kFAAAlF,OAAoF8zG,EAApF,KAAA9zG,OAA+FqkI,IACzGn3E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACM,MAAhBk/H,EAAsBA,EAAtB,GAAApkI,OAAuCuhI,GAAiC78B,EAAQoP,GAAhF,KAAA9zG,ON7FmB,SAAC0kG,EAAQ3hG,GAC7C,IAAK2hG,IAAWp/F,MAAMuvB,QAAQ6vE,EAAO88B,UAAW,OAAO,KAEvD,IAAIE,EAAc,EACdp8H,MAAMuvB,QAAQ6vE,EAAOj/B,SAAWi/B,EAAOj/B,OAAO1iE,EAAK,KACnD2+H,EAAch9B,EAAOj/B,OAAO1iE,EAAK,GAAG6+H,eAGxC,IAAMtG,EAAU52B,EAAO88B,SAASz2G,KAAK,SAACrpB,GAAD,OAAOA,EAAE0/H,QAAQ1+H,aAAeK,IAErE,OAAIu4H,GAAWA,EAAQgJ,yBAA2C,IAAhB5C,EAA0B,IACrE,GMkFsG6C,CAAyB7/B,EAAQoP,OAMxIkwB,EAAsB,SAAC5gI,EAAMikG,EAAgBg8B,GAC/C,OACIn2E,GAAAllD,EAAA/D,cAACugI,GAAD,CACIphI,KAAMA,EACNikG,eAAgBA,EAChBnB,gBAAiBA,EACjBm9B,WAAYA,KAKlBnG,EAAc,SAACnwC,EAAO5xC,EAAOupD,GAC/B3X,EAAQA,GAAS,GACjB5xC,EAAQA,IAAS,EACjB,IN5CyB+yD,EM4CnBi2B,EAAchD,GAAmBz8B,EAAQ1vE,EAAM4+E,iBAC/C0tB,EAAYD,GAAiBrsG,EAAMW,SAAS2rG,UAAWtsG,EAAM4+E,iBAEnE,GAAI/V,IAASojC,GAAc,CACvB,GPnIa,aOmITl0C,EACA,OCnIY,SAAC5xC,EAAOupD,GAChC,OAAIvpD,EAEI+R,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,wHACVgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,4CAAf,mBACAgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2CAAf,eAKRgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,4DACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6Bw/F,EAAOs4B,WDuHxCyH,CAAatpF,EAAOupD,GAG/B,GPhIS,UOgIL3X,EACA,OCtHc,SAAC5xC,EAAOupD,GAClC,GAAIvpD,EACA,OACI+R,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,sFACVgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BAAf,UAKZ,ILwDkCm4C,EAAOqnF,EAASC,EAC9CpjI,EACA0iI,EACAC,EK3DAG,EAAkB,GAMtB,OAJI3/B,EAAOrnD,OAASqnD,EAAOj/B,OAAO,IAAMi/B,EAAOj/B,OAAO,KLsDpBpoB,EKrDUqnD,EAAOrnD,MLqDVqnF,EKrDiBhgC,EAAOj/B,OAAO,GAAGw+D,OLqDzBU,EKrDiCjgC,EAAOj/B,OAAO,GAAGw+D,OLwDhGC,EAAkB,GKxDlBG,GLyDJ9iI,EAAWypB,SAASqyB,EAAO,MAC3B4mF,EAASS,EAAUC,GAGfT,EAAkB,WAIlB3iI,IAAa0iI,EACbC,EAAkB,WAIlB3iI,EAAW0iI,EACXC,EAAkB,UAIfA,GKvEHh3E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,wDAAAlF,OAA0DqkI,IACpEn3E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6Bw/F,EAAOrnD,MAAQqnD,EAAOrnD,MAAQ,MDoG/DunF,CAAezpF,EAAOupD,GAGjC,GAAI8+B,GP7IoB,uBO6IEz2C,IAAmC4jB,EACzD,OClGwB,SAACx1D,EAAOupD,GAC5C,OAAIvpD,EAEI+R,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,qGACVgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCAKvBgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uEACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6Bw/F,EAAO8+B,qBDuFxCqB,CAAyB1pF,EAAOupD,GAG3C,GAAIs9B,GPpIgB,oBOoIGj1C,EACnB,OCtFmB,SAAC5xC,EAAOupD,GACvC,OAAIvpD,EAEI+R,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,iGACVgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCAKvBgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mEACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6B48H,GAAsBp9B,KD2EvDogC,CAAoB3pF,EAAOupD,GAGtC,GAAI++B,GPpJkB,qBOoJE12C,IAAiC4jB,EACrD,OC1EoB,SAACx1D,EAAOupD,GACxC,OAAIvpD,EAEI+R,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,mGACVgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCAKvBgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qEACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6Bw/F,EAAO++B,mBD+DxCsB,CAAqB5pF,EAAOupD,GAGvC,GAAIm/B,GPtJO,WOsJmB92C,EAC1B,OC9DU,SAAC5xC,EAAOupD,GAC9B,OAAIvpD,EAEI+R,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,qFACVgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BAAf,UAKRgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uDACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6Bw/F,EAAO+J,ODmDxCu2B,CAAW7pF,EAAOupD,GAG7B,IAAKm/B,GPzJM,WOyJoB92C,EAC3B,OCxCU,SAAC5xC,EAAOupD,GAC9B,OAAIvpD,EAEI+R,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,qFACVgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BAAf,UAKRw/F,EAAO+J,MAAwB,MAAhB/J,EAAO+J,MAAgC,OAAhB/J,EAAO+J,KAEzCvhD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uDACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6Bw/F,EAAO+J,OAM3DvhD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uDACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BA9BE,SAACw/F,GAC1B,OAAIA,GAAUA,EAAOugC,UACD1D,GAAiC78B,ERvGhC,KQyGH,IAAA1kG,ORlGI,KQkGG0kG,EAAOwgC,aAA8B,IAAM,IAG7D,IAwBMC,CAAqBzgC,KDmBf0gC,CAAWjqF,EAAOupD,GAG7B,GAAIiM,GP5JE,OO4JI5jB,EACN,OAAOg3C,EAAiB5oF,EAAOupD,EP3JtB,KO8Jb,GAAIkM,GP/JE,OO+JI7jB,EACN,OAAOg3C,EAAiB5oF,EAAOupD,EP9JtB,KOkKjB,GAAI7G,IAASqjC,GAAY,CACrB,GPjKM,OOiKFn0C,EACA,OAAI5xC,EAEI+R,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KPvKC,MOwKI7iC,EAAM4+E,iBAAiCowB,EAAoBpgC,GAAUk/B,MAAOz7B,EAAgBi6B,GAAaA,EAAU+D,SPvKvH,MOwKIrwG,EAAM4+E,iBAAiCowB,EAAoBpgC,GAAUs/B,MAAO77B,EAAgBi6B,GAAaA,EAAU+D,UAM5Hn4E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qDACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6Bi/H,GAAeA,EAAYmB,KAKnF,GPjLS,UOiLLv4C,EACA,OAAI5xC,EAEI+R,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KPxLC,MOyLI7iC,EAAM4+E,iBAAiCowB,EAAoBpgC,GAAUg/B,SAAUv7B,EAAgBi6B,GAAaA,EAAU2C,QPxL1H,MOyLIjvG,EAAM4+E,iBAAiCowB,EAAoBpgC,GAAUo/B,SAAU37B,EAAgBi6B,GAAaA,EAAU2C,SAK/H/2E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wDACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6Bi/H,GAAeA,EAAY9mF,QAKnF,GPhMS,UOgML0vC,EACA,OAAI5xC,EAEI+R,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KPxMC,MOyMI7iC,EAAM4+E,iBAAiCowB,EAAoBpgC,GAAUm/B,UAAW17B,GPxMpF,MOyMIryE,EAAM4+E,iBAAiCowB,EAAoBpgC,GAAUu/B,UAAW97B,IAMzFn6C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wDACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACXgoD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAS,mCAAAlF,OAAqCoiI,GAAiB+B,EAAYxC,WAAY,YNrItFzzB,EMsIiBi2B,EAAYxC,YNpI5C,IAAVzzB,GAAyB,QAAVA,EAAwB,IACvCA,EAAQ,EAAG,IAAAluG,OAAWkuG,GAEnBA,EAJY,OM6If,OAAO,MAyCLi0B,EAAkB,SAACz9B,GACrB,GAAI7G,IAASqjC,GAAY,CACrB,IAAMiD,EAAchD,GAAmBz8B,EAAQ1vE,EAAM4+E,iBAGrD,OAAKuwB,GAAgB7+H,MAAMuvB,QAAQsvG,EAAYr+D,OAExCq+D,EAAYr+D,MAAM7pD,IAAI,SAACwyF,EAAMzkG,GAChC,OACIkjD,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,CAAgBpuD,IAAKglG,EAAK82B,QAER,IAAVv7H,GACIkjD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,sDACVgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BAA+Bi/H,EAAYryH,MAItEo7C,GAAAllD,EAAA/D,cAAA,OACIwF,IAAKglG,EAAK82B,OACVrgI,UAAS,wDAAAlF,OAA0DwiI,GAAsB/zB,KAxBtF,SAACA,GACxB,OAAOA,EAAKnmG,OAAS,IAyBAk9H,CAAmB/2B,OAjB0B,KAwBlE,OAAO,MA0BX,OA9QQ5Q,IAASojC,IAAgBjsG,EAAMzR,QAAQngB,OAAS01H,GAAmBE,QACnEroB,GAAK,EACLC,GAAK,EACLizB,GAAyB,GAG7Bh+D,EAAQtrD,QAAQ,SAACmqF,GACT7G,IAASojC,KACLv8B,EAAM,kBAAuD,KAA/BA,EAAM,mBACpC++B,GAAmB,GAGnB/+B,EAAM,qBACN8+B,GAAqB,GAGrB9+B,EAAM,kBACNs9B,GAAkB,MA8P9B90E,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KACI3K,GAAAllD,EAAA/D,cAAA,OACIiB,UAAS,mCAAAlF,OAAqCujI,GAAgBkC,GAAA,CAAEvgI,UAAW,mCAAsC4+H,KACjH//D,IAAK6/D,GAEL12E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,4BACXgoD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,oFACV6+D,IAAKs5D,GAELnwE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qCAAqC0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SACjFzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,uBAIvB1M,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,qFACV6+D,IAAKq5D,GAELlwE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qCAAqC0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SACjFzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,wBAK3B1M,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,4BACVs5H,SAnDY,SAAC/1H,GACzB,IAAMijG,EAAajjG,EAAM3D,OAAO4mG,WAI5BA,IAHgBjjG,EAAM3D,OAAO2mG,YACbhjG,EAAM3D,OAAO+B,aAG7Bu2H,EAAcxzH,QAAQlF,UAAUgY,IAAI,gBACpCknH,EAAah6H,QAAQlF,UAAUgY,IAAI,iBACb,IAAfgvF,EACP2xB,EAAazzH,QAAQlF,UAAUqY,OAAO,gBAC/B2uF,EAAa4xB,EACpBD,EAAazzH,QAAQlF,UAAUgY,IAAI,gBAC5BgvF,EAAa4xB,IACpBF,EAAcxzH,QAAQlF,UAAUqY,OAAO,gBACvC6mH,EAAah6H,QAAQlF,UAAUqY,OAAO,iBAG1CugH,EAAa70H,EAAM3D,OAAO4mG,aAoCdx+C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,2BAAAlF,OAA6BujI,GAAgBO,KACvD52E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBACV8+H,EAAoBpgC,GAAUC,SAAUwD,GACxC28B,EAAoBpgC,GAAU++B,YAAat7B,GAC3C28B,EAAoBpgC,GAAU59B,OAAQqhC,GAEtC61B,EPvWO,sBOuW2B,GAClCA,EPtWJ,YOsW2B,GACvBA,EP5VG,mBO4V2B,GAC9BA,EPzWK,oBOyW2B,GAEhC8G,EAAoBpgC,GAAUM,IAAKmD,GArInC,WACrB,GAAIxJ,IAASqjC,GAAY,CACrB,IAAMI,EAAYD,GAAiBrsG,EAAMW,SAAS2rG,UAAWtsG,EAAM4+E,iBAEnE,OAAK0tB,GAAch8H,MAAMuvB,QAAQysG,EAAUt6B,UAEpCs6B,EAAUt6B,SAAS/qF,IAAI,SAACwyF,EAAMzkG,GACjC,OACIkjD,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,CAAgBpuD,IAAKglG,EAAK82B,QAER,IAAVv7H,GACIkjD,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KP3OP,MO4OY7iC,EAAM4+E,iBAAiCowB,EAAoBpgC,GAAUi/B,OAAQx7B,EAAgBi6B,GAAaA,EAAUoE,UP3OhI,MO4OY1wG,EAAM4+E,iBAAiCowB,EAAoBpgC,GAAUq/B,OAAQ57B,EAAgBi6B,GAAaA,EAAUoE,WAIjIx4E,GAAAllD,EAAA/D,cAAA,OACIwF,IAAKglG,EAAK82B,OACVrgI,UAAU,wDACVgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BACXgoD,GAAAllD,EAAA/D,cAAA,WAAMwqG,EAAK82B,QACXr4E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCAAmCupG,EAAKtH,IAAMsH,EAAKtH,IAAM,UAlB/B,KA0BjE,OAAO,KAwGcw+B,GACA9nC,IAASojC,IAAgB4C,GAA0BG,EAAoBpgC,GAAU39B,KAAMohC,GACvFsJ,GAAMqzB,EAAoBpgC,GAAUS,GAAIgD,GACxCuJ,GAAMozB,EAAoBpgC,GAAUU,GAAI+C,GACxCxJ,IAASojC,IAAgB+C,EAAoBpgC,GAAUO,MAAOkD,GAC9DxJ,IAASojC,KAAiB4C,GAA0BG,EAAoBpgC,GAAU39B,KAAMohC,GACxF61B,EPzWX,MOyW2B,GAChBA,EPzWR,SOyW2B,GACnBA,EPzWR,SOyW2B,IAExBhwE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BAEP2gE,EAAQ5pD,IAAI,SAACyoF,GACT,IAAMy/B,EAAchD,GAAmBz8B,EAAQ1vE,EAAM4+E,iBAC/C9D,EAAaxF,KAAsBC,YAAY7F,EAAO29B,SAE5D,OAAK8B,EACGj3E,GAAAllD,EAAA/D,cAAC2hI,GAAD,CACJn8H,IAAKi7F,EAAO29B,QACZ39B,OAAQA,EACRw4B,YAAaA,EACbiF,gBAAiBA,EACjBC,iBAAkBA,GAClBtyB,WAAYA,IAPS,aAmB7D6zB,GAAqBn2E,UAAY,CAC7BjqC,QAASkqC,KAAUnsD,OACnBq0B,SAAU83B,KAAUnsD,OACpBsyG,gBAAiBnmD,KAAUj5B,OAC3BqpE,KAAMpwC,KAAUj5B,OAAOqlC,YAGZ8pE,aE7YAkC,GAVgB,SAAC7wG,GAC5B,OAAKA,EAAMW,UAAaX,EAAMW,SAASmwG,kBAGnC54E,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,kCACVs3D,wBAAyB,CAAEC,OAAQznC,EAAMW,SAASmwG,qBAJO,qdCCrE,IAAMzjC,GAAU,SAACx8B,EAAStkE,EAAU+gG,GAChC,OAAOyjC,GAAIlgE,GAAS36D,KAAK,SAAClD,EAAGC,GACzB,GAAiB,mBAAb1G,EAA+B,CAC/B,IAAMihG,EAAmBC,GAAaz6F,EAAGC,GAEzC,GAAyB,IAArBu6F,EACA,OAAOA,EAIf,IAAIE,EAAO,GACPC,EAAO,GACX,GAAIvuF,KAAIpM,EAAGzG,GAAW,CAClB,IAAMqhG,EAAazhG,IAAI6G,EAAGzG,GAEtBmhG,EADAJ,QACOA,EAAUM,GAEV53E,SAAS43E,EAAY,IAGpC,GAAIxuF,KAAInM,EAAG1G,GAAW,CAClB,IAAMshG,EAAa1hG,IAAI8G,EAAG1G,GAEtBohG,EADAL,QACOA,EAAUO,GAEV73E,SAAS63E,EAAY,IAIpC,OAAOH,EAAOC,KAIhBG,GAAW,SAACj9B,EAAStkE,EAAU+gG,GACjC,OAAOyjC,GAAIlgE,GAAS36D,KAAK,SAAClD,EAAGC,GACzB,GAAiB,mBAAb1G,EAA+B,CAC/B,IAAMihG,EAAmBC,GAAaz6F,EAAGC,GAEzC,GAAyB,IAArBu6F,EACA,OAAOA,EAIf,IAAIE,EAAO,GACPC,EAAO,GACX,GAAIvuF,KAAIpM,EAAGzG,GAAW,CAClB,IAAMqhG,EAAazhG,IAAI6G,EAAGzG,GAEtBmhG,EADAJ,QACOA,EAAUM,GAEV53E,SAAS43E,EAAY,IAGpC,GAAIxuF,KAAInM,EAAG1G,GAAW,CAClB,IAAMshG,EAAa1hG,IAAI8G,EAAG1G,GAEtBohG,EADAL,QACOA,EAAUO,GAEV73E,SAAS63E,EAAY,IAIpC,OAAOF,EAAOD,KAITK,GAAY,SAACl9B,EAAStkE,GAC/B,OAAOwkI,GAAIlgE,GAAS36D,KAAK,SAAClD,EAAGC,GACzB,GAAiB,mBAAb1G,EAA+B,CAC/B,IAAMihG,EAAmBC,GAAaz6F,EAAGC,GAEzC,GAAyB,IAArBu6F,EACA,OAAOA,EAIf,IAAIE,EAAO,IACPC,EAAO,IAOX,OANIvuF,KAAIpM,EAAGzG,KACPmhG,EAAOvhG,IAAI6G,EAAGzG,IAEd6S,KAAInM,EAAG1G,KACPohG,EAAOxhG,IAAI8G,EAAG1G,IAEXmhG,EAAKv6F,cAAgBw6F,EAAKx6F,cAAgB,GAAK,KAIxD87F,GAAa,SAACp+B,EAAStkE,GACzB,OAAOwkI,GAAIlgE,GAAS36D,KAAK,SAAClD,EAAGC,GACzB,GAAiB,mBAAb1G,EAA+B,CAC/B,IAAMihG,EAAmBC,GAAaz6F,EAAGC,GAEzC,GAAyB,IAArBu6F,EACA,OAAOA,EAIf,IAAIE,EAAO,GACPC,EAAO,GAOX,OANIvuF,KAAIpM,EAAGzG,KACPmhG,EAAOvhG,IAAI6G,EAAGzG,IAEd6S,KAAInM,EAAG1G,KACPohG,EAAOxhG,IAAI8G,EAAG1G,IAEXohG,EAAKx6F,cAAgBu6F,EAAKv6F,cAAgB,GAAK,KAI9D,SAASs6F,GAAaO,EAASC,GAC3B,IACIE,EAAU,IACVC,EAAU,IASd,GAPIhvF,KAAI4uF,EAJY,mBAKhBG,EAAUhiG,IAAI6hG,EALE,kBAOhB5uF,KAAI6uF,EAPY,mBAQhBG,EAAUjiG,IAAI8hG,EARE,kBAWL,MAAXE,GAA8B,MAAXC,EACnB,OAAO,EAIX,GAAsB,KADtBC,EAAgBC,GAAgBH,EAASC,EAAS,YAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,QAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,UAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,QAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,QAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,QAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,OAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,OAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,OAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,OAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,OAE9C,OAAOC,EAIX,GAAsB,KADtBA,EAAgBC,GAAgBH,EAASC,EAAS,QAE9C,OAAOC,EAGX,IAAIA,EAAgBC,GAAgBH,EAASC,EAAS,OACtD,OAAsB,IAAlBC,EACOA,EAGJ,EAGX,SAASC,GAAgBC,EAAeC,EAAe15C,GACnD,OAAIy5C,EAAcp7F,gBAAkB2hD,GAAU05C,EAAcr7F,gBAAkB2hD,EACnE,EAGPy5C,EAAcp7F,gBAAkB2hD,GAAU05C,EAAcr7F,gBAAkB2hD,GAClE,EAGL,EAGJ,IAAMk8E,IAAqBC,GAAAC,GAAA,GAC7BtiC,GAAUC,SAAW,CAClBC,cAAe,SAACj+B,EAASk+B,GACrB,OAAOA,EACH1B,GAAQx8B,EAAS,kBACjBi9B,GAASj9B,EAAS,qBALAogE,GAAAC,GAQ7BtiC,GAAU59B,OAAS,CAChB89B,cAAe,SAACj+B,EAASk+B,GACrB,OAAOA,EACHhB,GAAUl9B,EAAS,YACnBo+B,GAAWp+B,EAAS,eAZFogE,GAAAC,GAe7BtiC,GAAU++B,YAAc,CACrB7+B,cAAe,SAACj+B,EAASk+B,GACrB,OAAOA,EACHhB,GAAUl9B,EAAS,eACnBo+B,GAAWp+B,EAAS,kBAnBFogE,GAAAC,GAsB7BtiC,GAAUM,IAAM,CACbJ,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GAEf,OAAKA,GAA6B,OAAtBA,EAAIwqC,cAED,MAARxqC,GAAqC,QAAtBA,EAAIvM,cAA0B,EAAI6iB,SAAStW,EAAK,IAFvB,KAKnD,OAAOqvF,EACH1B,GAAQx8B,EAAS,QAASy8B,GAC1BQ,GAASj9B,EAAS,QAASy8B,MAjCT2jC,GAAAC,GAoC7BtiC,GAAU39B,KAAO,CACd69B,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GACf,OAAKA,GAAe,MAARA,EAIG,MAARA,EAAc,GAAKsW,SAAStW,EAAK,IAH7B,GAMf,OAAOqvF,EACH1B,GAAQx8B,EAAS,OAAQy8B,GACzBQ,GAASj9B,EAAS,OAAQy8B,MAhDR2jC,GAAAC,GAmD7BtiC,GAAUO,MAAQ,CACfL,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GACf,OAAKA,GAAe,MAARA,EAELsW,SAAStW,EAAK,IAFW,KAKpC,OAAOqvF,EACH1B,GAAQx8B,EAAS,QAASy8B,GAC1BQ,GAASj9B,EAAS,QAASy8B,MA7DT2jC,GAAAC,GAgE7BtiC,GAAUQ,MAAQ,CACfN,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GAEf,OAAKA,GAAe,MAARA,EAEG,MAARA,GAAqC,QAAtBA,EAAIvM,cAA0B,EAAI6iB,SAAStW,EAAK,IAFtC,KAKpC,OAAOqvF,EACH1B,GAAQx8B,EAAS,QAASy8B,GAC1BQ,GAASj9B,EAAS,QAASy8B,MA3ET2jC,GAAAC,GA8E7BtiC,GAAUS,GAAK,CACZP,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GACf,OAAKA,GAAe,MAARA,EAELsW,SAAStW,EAAK,IAFW,GAKpC,OAAOqvF,EACH1B,GAAQx8B,EAAS,kBAAmBy8B,GACpCQ,GAASj9B,EAAS,kBAAmBy8B,MAxFnB2jC,GAAAC,GA2F7BtiC,GAAUg/B,SAAW,CAClB9+B,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GACf,OAAKA,GAAe,MAARA,EAELsW,SAAStW,EAAK,IAFW,GAKpC,OAAOqvF,EACH1B,GAAQx8B,EAAS,kBAAmBy8B,GACpCQ,GAASj9B,EAAS,kBAAmBy8B,MArGnB2jC,GAAAC,GAwG7BtiC,GAAUi/B,OAAS,CAChB/+B,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GACf,OAAKA,GAAe,MAARA,EAELsW,SAAStW,EAAK,IAFW,GAKpC,OAAOqvF,EACH1B,GAAQx8B,EAAS,gBAAiBy8B,GAClCQ,GAASj9B,EAAS,gBAAiBy8B,MAlHjB2jC,GAAAC,GAqH7BtiC,GAAUk/B,MAAQ,CACfh/B,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GACf,OAAKA,GAAe,MAARA,EAELsW,SAAStW,EAAK,IAFW,GAKpC,OAAOqvF,EACH1B,GAAQx8B,EAAS,eAAgBy8B,GACjCQ,GAASj9B,EAAS,eAAgBy8B,MA/HhB2jC,GAAAC,GAkI7BtiC,GAAUm/B,UAAY,CACnBj/B,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GAEf,OAAKA,GAA6B,OAAtBA,EAAIwqC,cAED,MAARxqC,GAAqC,QAAtBA,EAAIvM,cAA0B,EAAI6iB,SAAStW,EAAK,IAFvB,KAKnD,OAAOqvF,EACH1B,GAAQx8B,EAAS,uBAAwBy8B,GACzCQ,GAASj9B,EAAS,uBAAwBy8B,MA7IxB2jC,GAAAC,GAgJ7BtiC,GAAUU,GAAK,CACZR,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GACf,OAAKA,GAAe,MAARA,EAELsW,SAAStW,EAAK,IAFW,GAKpC,OAAOqvF,EACH1B,GAAQx8B,EAAS,kBAAmBy8B,GACpCQ,GAASj9B,EAAS,kBAAmBy8B,MA1JnB2jC,GAAAC,GA6J7BtiC,GAAUo/B,SAAW,CAClBl/B,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GACf,OAAKA,GAAe,MAARA,EAELsW,SAAStW,EAAK,IAFW,GAKpC,OAAOqvF,EACH1B,GAAQx8B,EAAS,kBAAmBy8B,GACpCQ,GAASj9B,EAAS,kBAAmBy8B,MAvKnB2jC,GAAAC,GA0K7BtiC,GAAUq/B,OAAS,CAChBn/B,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GACf,OAAKA,GAAe,MAARA,EAELsW,SAAStW,EAAK,IAFW,GAKpC,OAAOqvF,EACH1B,GAAQx8B,EAAS,gBAAiBy8B,GAClCQ,GAASj9B,EAAS,gBAAiBy8B,MApLjB2jC,GAAAC,GAuL7BtiC,GAAUs/B,MAAQ,CACfp/B,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GACf,OAAKA,GAAe,MAARA,EAELsW,SAAStW,EAAK,IAFW,GAKpC,OAAOqvF,EACH1B,GAAQx8B,EAAS,eAAgBy8B,GACjCQ,GAASj9B,EAAS,eAAgBy8B,MAjMhB2jC,GAAAC,GAoM7BtiC,GAAUu/B,UAAY,CACnBr/B,cAAe,SAACj+B,EAASk+B,GACrB,IAAMzB,EAAY,SAAC5tF,GAEf,OAAKA,GAA6B,OAAtBA,EAAIwqC,cAED,MAARxqC,GAAqC,QAAtBA,EAAIvM,cAA0B,EAAI6iB,SAAStW,EAAK,IAFvB,KAKnD,OAAOqvF,EACH1B,GAAQx8B,EAAS,uBAAwBy8B,GACzCQ,GAASj9B,EAAS,uBAAwBy8B,MA/MxB4jC,s5BC1L5BC,eACF,SAAAA,EAAYnxG,GAAO,IAAA3Q,qCAAA8hH,4DAAAC,CAAArxH,QACfsxH,GAAAF,GAAA7nI,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,QADeuxH,GAAAC,MAAAliH,IAAA,wBA6BK,WACpBA,EAAKsyC,SAAS,CACVs9C,mBAAoB3J,KAAsB4J,aA/B/BoyB,GAAAC,MAAAliH,IAAA,aAmCN,WACLA,EAAK5J,MAAMojF,OAASojC,GACpB58G,EAAKsyC,SAAS,CAAEknC,KAAMqjC,KAEtB78G,EAAKsyC,SAAS,CAAEknC,KAAMojC,GAAc78D,MAAO//C,EAAKmiH,mBAvCrCF,GAAAC,MAAAliH,IAAA,kBA2CD,WACd,OAAIA,EAAK5J,MAAMojF,OAASqjC,GACb,gBAGJ,KAhDQoF,GAAAC,MAAAliH,IAAA,aAmDN,WACT,IAAMwwF,EAAe,CACjB,CAAE51G,MAAO,UAAWC,MAAO,IAAK+nB,UAAU,GAC1C,CAAEhoB,MAAO,UAAWC,MAAO,IAAK+nB,UAAU,IAO9C,OAJA4tF,EAAat6F,QAAQ,SAACjL,GAClBA,EAAO2X,SAAW3X,EAAOpQ,QAAUmlB,EAAK5J,MAAM2pD,MAAM1hE,aAGjDmyG,IA7DQyxB,GAAAC,MAAAliH,IAAA,qBAgEE,SAACnlB,GAClBmlB,EAAKsyC,SAAS,CAAEyN,MAAOllE,MAjERonI,GAAAC,MAAAliH,IAAA,sBAoEG,WAClB,OAAIA,EAAK5J,MAAMojF,OAASqjC,IAAmD,IAArC78G,EAAK2Q,MAAMW,SAAS8wG,aAElDv5E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,4BACXgoD,GAAAllD,EAAA/D,cAAC0yG,GAAA,EAAD,CACItpG,QAASgX,EAAK0wE,aACd9vD,SAAU5gB,EAAK+5G,mBACf99C,MAAO,CAAEomD,QAAS,eAM3B,OAjFQJ,GAAAC,MAAAliH,IAAA,yBAoFM,WACrBA,EAAKsyC,SAAS,CAAEqqE,sBAAuB38G,EAAK5J,MAAMumH,yBArFnCsF,GAAAC,MAAAliH,IAAA,gBAwFH,SAAC2vF,GAEb,OADwBgyB,GAAsB3hH,EAAK5J,MAAM0rF,aAClCrC,cAAckQ,EAAa3vF,EAAK5J,MAAM4rF,sBA1F9CigC,GAAAC,MAAAliH,IAAA,iBA6FF,SAACjhB,GACd,IAAIijG,EAAqBhiF,EAAK5J,MAAM4rF,mBAGhCA,EADAhiF,EAAK5J,MAAM0rF,cAAgB/iG,IACLijG,EAK1BhiF,EAAKsyC,SAAS,CACVwvC,YAAa/iG,EACbijG,yBAxGWigC,GAAAC,MAAAliH,IAAA,0BA4GO,WACjBA,EAAK5J,MAAMs5F,gBACZzmD,KAAIzjD,KAAK,cAAe,aAAc,qBAE1Cwa,EAAKsyC,SAAS,CAAEo9C,gBAAiB1vF,EAAK5J,MAAMs5F,mBAhH7BuyB,GAAAC,MAAAliH,IAAA,mBAmHA,SAAC2vF,GAChB,OAAOA,EAAYtvF,OAAO,SAACggF,GAAD,OACtB4F,KAAsBC,YAAY7F,EAAO29B,QAAQ3/H,gBAlHrD,IAAMinG,EAAe30E,EAAMW,SAASg0E,cAAgB30E,EAAMW,SAASg0E,aAAajnG,WAHjE,OAIf2hB,EAAKmiH,eAAiB78B,GAAgB,IAEtCtlF,EAAK5J,MAAQ,CACTojF,KAAMojC,GACN78D,MAAO//C,EAAKmiH,eACZxF,sBAAsB,EACtB76B,YAAavC,GAAUC,SACvBwC,oBAAoB,EACpB4N,mBAAoB3J,KAAsB4J,SAC1CH,gBAAgB,GAbL1vF,qPADgBupC,KAAMC,yDAoBrC5J,KAAS9W,YAAY4nE,KAAoChgG,KAAKigG,uBAC9D/wD,KAAS9W,YAAY8nE,KAAuClgG,KAAKigG,sEAIjE/wD,KAASszC,eAAewd,KAAoChgG,KAAKigG,uBACjE/wD,KAASszC,eAAe0d,KAAuClgG,KAAKigG,2DA+F5DnvC,GAAS,IAEb2vC,EAAmB3vC,EAQvB,OAT2B9wD,KAAK0F,MAAxBs5F,iBAIJyB,EAAmBzgG,KAAK0gG,iBAAiBD,IAG1BzgG,KAAK4gG,cAAcH,oCAKjC,IAAAlxF,EAAAvP,KACC8wD,EAAU9wD,KAAK+gG,YAAY/gG,KAAKigB,MAAMW,SAASkwC,SAErD,OACI3Y,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KAEQ9iD,KAAKigB,MAAMW,SAASmwG,mBACpB54E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+CACXgoD,GAAAllD,EAAA/D,cAAC0iI,GAAD,CAAwBhxG,SAAU5gB,KAAKigB,MAAMW,YAGrDu3B,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yCACV6P,KAAK6xH,sBACN15E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gDAEPgoD,GAAAllD,EAAA/D,cAAC0iI,GAAD,CAAwBhxG,SAAU5gB,KAAKigB,MAAMW,aAIzDu3B,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yCACXgoD,GAAAllD,EAAA/D,cAAC4iI,GAAD,CACI7F,qBAAsBjsH,KAAK0F,MAAMumH,qBACjCD,QAAShsH,KAAK+xH,yBAElB55E,GAAAllD,EAAA/D,cAACozG,GAAD,CACIvS,SAAU,+BACVM,oBAAqBrwF,KAAK0F,MAAMs5F,eAChC1mD,QAASt4C,KAAKuiG,0BAElBpqD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2CACXgoD,GAAAllD,EAAA/D,cAAA,UACIiB,UAAS,mCAAAlF,OAAqC+U,KAAKwuH,mBACnDngI,KAAK,SACLiqD,QAASt4C,KAAKgyH,YAEd75E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wCAAf,gBACAgoD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,0FACVgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6CACXgoD,GAAAllD,EAAA/D,cAAC6hG,GAAA,EAAD,CAAW3nG,MAAO4nG,SAG1B74C,GAAAllD,EAAA/D,cAACohG,GAAA,EAAD,CACIP,SAAS,kFACTQ,SAAS,QACT1+F,MAAM,KACN8gC,OAAO,WAM3BwlB,GAAAllD,EAAA/D,cAAC+iI,GAADC,GAAA,GACQlyH,KAAKigB,MADb,CAEI6oE,KAAM9oF,KAAK0F,MAAMojF,KACjB+V,gBAAiB7+F,KAAK0F,MAAM2pD,MAC5ByB,QAASA,EACT0rC,gBAAiBx8F,KAAK0F,MAAMw5F,mBAC5B/N,gBAAiB,CACbC,YAAapxF,KAAK0F,MAAM0rF,YACxBE,mBAAoBtxF,KAAK0F,MAAM4rF,oBAEnCgB,eAAgB,SAACjkG,GAAD,OAAUkhB,EAAK+iF,eAAejkG,sMAOlE+iI,GAAyB34E,UAAY,CACjCjqC,QAASkqC,KAAUnsD,OACnBq0B,SAAU83B,KAAUnsD,QAGT6kI,uqBChOTe,+kBAA8Bt5E,KAAMC,yDAElCC,IAAch1C,UAAd,UAAA9Y,OAAkC+U,KAAKigB,MAAMzR,QAAQngB,sDAIrD0qD,IAAch0C,YAAd,UAAA9Z,OAAoC+U,KAAKigB,MAAMzR,QAAQngB,+CAG3CL,GAAI,IACRm9H,EAAmBnrH,KAAKigB,MAAxBkrG,eAER,OAAKA,GAAmB56H,MAAMuvB,QAAQqrG,EAAeC,YAEpCD,EAAeC,UAAUp1G,KAAK,SAACrgB,GAAD,OAC3CA,EAAK41H,aAAev9H,KAHgD,sCAYxE,QAAuB3C,IAFI2U,KAAKigB,MAAxBkrG,eAGJ,OACIhzE,GAAAllD,EAAA/D,cAACkjE,GAAA,EAAD,CAAkBC,UAAW,KACzBla,GAAAllD,EAAA/D,cAACojE,GAAA,EAAD,OAKZ,IAAM1xC,EAAW5gB,KAAKoyH,gBAAgBpyH,KAAKigB,MAAMzR,QAAQ+8G,YAEzD,OAAK3qG,GAAarwB,MAAMuvB,QAAQc,EAASkwC,SAIlC3Y,GAAAllD,EAAA/D,cAACmjI,GAADC,GAAA,GAA8BtyH,KAAKigB,MAAnC,CAA0CW,SAAUA,KAHhDu3B,GAAAllD,EAAA/D,cAACyzG,GAAA,EAAD,CAAgBnJ,QAAS,CAAC8J,KAAWwmB,sMAOxDqI,GAAsB15E,UAAY,CAC9BjqC,QAASkqC,KAAUnsD,QAGvB,IAQegmI,GAJsB94E,aAJb,SAAC/zC,EAAOykH,GAAR,MAAsB,CAC1CgB,eAAgBzlH,EAAMg0C,QAAN,UAAAzuD,OAAwBk/H,EAAS37G,QAAQngB,SAGxBorD,CAEnC04E,unBCzBaK,eA5BX,SAAAA,IAAqB,IAAAl7F,EAAAhoB,qCAAAkjH,4DAAAC,CAAAzyH,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAo7F,GAAAF,IAAAjpI,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,yPADc0oB,oDAQ/B,MAAO,CAAC,iDAIRh4B,KAAK6L,6CAILiuC,KAASC,uBAAuB/5C,KAAKi4B,KAAKtvC,4CAI1CmxD,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAACuV,GAAA,EAAD,CAAU7X,MAAOA,MACburD,GAAAllD,EAAA/D,cAACyjI,GAAD,CAAuBnkH,QAASxO,KAAKwO,WAEzCxO,KAAKi4B,KAAKtvC,kDC3BtB4vC,IAAkBC,cAAchE,OAAO,mBAAoBg+F,6eCAtCI,+kBAA4B/5E,KAAM0tD,4DAE/C,SAAAt7G,OAAU+U,KAAKigB,MAAMtqB,KAAK8tC,UAA1B,KAAAx4C,OAAuC+U,KAAKigB,MAAMtqB,KAAK+tC,2CAIvD,IAAM/tC,EAAOqK,KAAKigB,MAAMtqB,KAClBk9H,EAAiBl9H,EAAK+tC,SAASj2C,OAAS,EAAI,yCAA2C,GAE7F,OACI0qD,GAAAllD,EAAA/D,cAAA,KAAG0jD,KAAMj9C,EAAKm9H,UAAWtuE,aAAYxkD,KAAK+yH,mBACtC5iI,UAAS,mDAAAlF,OAAqD+U,KAAKigB,MAAM+yG,GAAhE,KAAA/nI,OAAuE0K,EAAKu6H,UAA+B,GAAnB,mBACjG/3E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACVwF,EAAKs9H,mBAAmBxlI,OAAS,EAC9B0qD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8BACX1F,IAAI,iCACJyqE,IAAI,WACJrjE,MAAM,KACN8gC,OAAO,OACXwlB,GAAAllD,EAAA/D,cAAA,UACKyG,EAAKs9H,mBAAmB/rH,IAAI,SAAC88B,GAAD,OACzBmU,GAAAllD,EAAA/D,cAAA,MAAIwF,IAAKsvC,GAAOA,OAEnB,KAETruC,EAAKnL,MACL2tD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uCACX+iI,WAAUv9H,EAAKnL,KAAKC,IAAKyqE,IAAI,MAGzC/c,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCACVwF,EAAKw9H,kBACFh7E,GAAAllD,EAAA/D,cAAA,OAAK86E,cAAar0E,EAAKw9H,kBAAmBjpD,aAAW,OACjD/5E,UAAU,WAAW+kE,IAAI,KAC7B,MAER/c,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACTwF,EAAKu6H,UAMH,KALA/3E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCAAf,iBACkBgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,yCACzBwF,EAAKy9H,gBAIlBj7E,GAAAllD,EAAA/D,cAAA,UACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,gCAAgCwF,EAAK8tC,WACrD0U,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAS,mCAAAlF,OAAqC4nI,IAAmBl9H,EAAK+tC,SAA5E,IAAuF/tC,EAAKs6F,UAAY93C,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,kCAAhB,QAA+D,QAG/KgoD,GAAAllD,EAAA/D,cAACm7E,GAAA,EAAD,CAAWnyB,MAAOviD,EAAK20E,UAAU+oD,yZClDlC,SAASC,GAAT5uH,GAAqD,IAAlBzP,EAAkByP,EAAlBzP,MAAUmgG,oXAAQm+B,CAAA7uH,EAAA,WAKhE,OACIyzC,GAAAllD,EAAA/D,cAACskI,GAADC,GAAA,GAAyBr+B,EAAzB,CAA+B49B,GAJtB/9H,EAAS,EAAK,KCFhB,SAASy+H,GAAThvH,GAAgD,IAATjQ,EAASiQ,EAATjQ,MAClD,OACI0jD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,kCACTsE,EAAMyS,IAAI,SAACvR,EAAMlK,GAAP,OACP0sD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,uCAAuCuE,IAAKiB,EAAK3H,IAC3DmqD,GAAAllD,EAAA/D,cAACokI,GAAD,CAAyBr+H,MAAOxJ,EAAGkK,KAAMA,QCGtD,SAASg+H,GAAsBC,EAAQC,EAAQ3+F,GAClD,OARG,WAA8B,QAAA1uB,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,IAC1Brd,EAAqByoB,EADK,GACbkkF,EAAQlkF,EADK/iB,MAAA,GAEjC,OAAO1F,EAASwF,QAAQ,WAAY,SAACsH,EAAO2/B,GAAR,YAA4C,IAAjBkgE,EAAKlgE,GAChEkgE,EAAKlgE,GACL3/B,IAKOu+H,CADI,IAAX5+F,GAA2B,IAAXA,EACG0+F,EAEJC,EAFY3+F,ukBH8CnC09F,GAAoBn6E,UAAY,CAC5B9iD,KAAM+iD,KAAUnsD,OAAOu4D,WACvBkuE,GAAIt6E,KAAUxjB,QChDlBo+F,GAAwB76E,UAAY,CAChCxjD,MAAOyjD,KAAUxjB,OAAO4vB,YCC5B4uE,GAA4Bj7E,UAAY,CACpChkD,MAAOikD,KAAUjjD,MAAMqvD,gBEJrBivE,eACF,SAAAA,EAAY9zG,GAAO,IAAA3Q,IAAA,uCAAAykH,4DAAAC,CAAAh0H,OACfsP,MAAA2kH,GAAAF,GAAAxqI,KAAAyW,KAAMigB,+CAANjgB,SACK0F,MAAQ,CACTwuH,gBAAgB,GAEpB5kH,EAAK85D,QAAUvwB,KAAMwwB,YACrB/5D,EAAK6kH,eAAiB7kH,EAAK6kH,eAAernH,KAApBsnH,MAAA9kH,KACtBA,EAAK+kH,yBAA2B/kH,EAAK+kH,yBAAyBvnH,KAA9BsnH,MAAA9kH,KAPjBA,qPADkBupC,KAAMC,yDAYvCvgB,IAAkBC,cAAc1qB,KAAK9N,KAAKopE,QAAQv0E,wDAIlD0jC,IAAkBC,cAAc8wC,QAAQtpE,KAAKopE,QAAQv0E,4DAIrD,IAAMq/H,GAAkBl0H,KAAK0F,MAAMwuH,eACnCl0H,KAAKs0H,4BAA4BJ,GACjCl0H,KAAK4hD,SAAS,CAAEsyE,uEAGQnI,GACpBA,EACA30F,EAAOp3B,KAAKu0H,oBAEZz9F,EAAS92B,KAAKu0H,2DAIP/kI,GACXwQ,KAAKu0H,mBAAqB/kI,EAC1BinC,EAAkBz2B,KAAKu0H,mBAAoBv0H,KAAK0F,MAAMwuH,2DAItD,OAAIhhF,IAAIshF,cACG,EACLthF,IAAIuhF,UACC,EAEJ,8CAIP,OAAOz0H,KAAKigB,MAAMvsB,MAAMghI,QAAQvmI,MAAM,EAAG6R,KAAK20H,6DAI9C,OAAO30H,KAAKigB,MAAMvsB,MAAMghI,QAAQvmI,MAAM6R,KAAK20H,qDAI3C,IAAMC,EAAiB50H,KAAK60H,oBACtBC,EAAc90H,KAAK+0H,iBAEnBrhI,EAAQsM,KAAKigB,MAAMvsB,MAEzB,OACIykD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BAA+B6+D,IAAKhvD,KAAKopE,SACpDjxB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCACVuD,EAAMshI,gBACH78E,GAAAllD,EAAA/D,cAAA,OAAK86E,cAAat2E,EAAMshI,gBAAiB9qD,aAAW,OAChD/5E,UAAU,WAAW+kE,IAAI,KAC7B,MAER/c,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uCACVuD,EAAM0yC,OAEX+R,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mDACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yDACV6P,KAAKi1H,8BAGNvhI,EAAMwhI,UACN/8E,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,yCACTwqE,oBAAkB,gBAClB/nB,KAAMl/C,EAAMwhI,SACZ1wE,aAAA,mBAAAv5D,OAA+ByI,EAAM0yC,QAErC+R,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mDACX0B,MAAM,KACN8gC,OAAO,MACPwlB,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,sBAM/B1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yCACXgoD,GAAAllD,EAAA/D,cAACwkI,GAAD,CAA6Bj/H,MAAOmgI,KAEvCE,EAAYrnI,OAAS,EAClB0qD,GAAAllD,EAAA/D,cAAA,WACIipD,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAKhvD,KAAKm0H,eACXhkI,UAAU,yCACVgoD,GAAAllD,EAAA/D,cAACwkI,GAAD,CAA6Bj/H,MAAOqgI,KAExC38E,GAAAllD,EAAA/D,cAAA,UAAQopD,QAASt4C,KAAKq0H,yBAClBlkI,UAAU,gGACVgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,kBACX6P,KAAKm1H,wBAAwBL,EAAYrnI,QAC1C0qD,GAAAllD,EAAA/D,cAAA,OAAK2C,MAAM,KAAK8gC,OAAO,IACnBxiC,UAAS,oEAAAlF,OAAsE+U,KAAK0F,MAAMwuH,eAAiB,YAAc,KACzH/7E,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,yBAK/B,uDAMIuwE,GACpB,GAAIp1H,KAAK0F,MAAMwuH,eACX,MAAO,OAF2B,IAAAmB,EAIXr1H,KAAKigB,MAAMq9F,aAAagY,YACnD,OAAO3B,GAL+B0B,EAI9BzB,OAJ8ByB,EAItBxB,OAC6BuB,wDAGpB,IAAAG,EACEv1H,KAAKigB,MAAMq9F,aAAakY,iBACnD,OAAO7B,GAFkB4B,EACjB3B,OADiB2B,EACT1B,OAC6B7zH,KAAKigB,MAAMvsB,MAAMghI,QAAQjnI,sMAI9EsmI,GAA2Bt7E,UAAY,CACnC6kE,aAAc5kE,KAAUnsD,OAAOu4D,WAC/BpxD,MAAOglD,KAAUnsD,OAAOu4D,WACxBmpB,WAAYv1B,KAAUj5B,OAAOqlC,YAGjC,IAKerL,gBALS,SAAC/zC,GAErB,MAAO,CAAEuoE,WAD4BvoE,EAA7BuoE,WACaqvC,aADgB53G,EAAjB43G,eAIT7jE,CAAyBs6E,ICxJxC,SAAS0B,GAAT/wH,GAAiD,IAAVgxH,EAAUhxH,EAAVgxH,OACnC,OACIv9E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACVulI,EAAOxuH,IAAI,SAACxT,GAAD,OACRykD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BAA2BuE,IAAKhB,EAAM1F,IACjDmqD,GAAAllD,EAAA/D,cAACymI,GAAD,CAA4BjiI,MAAOA,QAOvD+hI,GAA4Bh9E,UAAY,CACpCi9E,OAAQh9E,KAAUjjD,MAAMqvD,YAG5B,IAKerL,gBALS,SAAC/zC,GAErB,MAAO,CAAEgwH,OADUhwH,EAAXgwH,SAIGj8E,CAAyBg8E,ICfzBG,GAAA,CACXC,mBAVuB,iBAAO,CAC9BxnI,KCHyB,yBDazBynI,iBAPqB,SAAC7nD,GAAD,MAAiB,CACtC5/E,KCNuB,qBDOvB4/E,4dEDE8nD,+kBAAgCl9E,KAAMC,wDAEpC,OAAI5F,IAAIshF,cACG,EACLthF,IAAIuhF,UACC,EACLvhF,IAAI0gE,SACC,EAGJ,8CAIP,OAAO5zG,KAAKigB,MAAM20G,eAAezmI,MAAM,EAAG6R,KAAK20H,qDAK/C,IAAMC,EAAiB50H,KAAK60H,oBACtBmB,EAAmBh2H,KAAKigB,MAAMg2G,kBAAoBrB,EAAennI,OAEvE,OACI0qD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,4BACV6P,KAAKigB,MAAMq9F,aAAal3E,OAE7B+R,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qCACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,2CACTykI,EAAe1tH,IAAI,SAACvR,EAAMlK,GAAP,OAChB0sD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0CACVuE,IAAKiB,EAAK3H,IACVmqD,GAAAllD,EAAA/D,cAACokI,GAAD,CAAyBr+H,MAAOxJ,EAAGkK,KAAMA,QAIrDwiD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2CACV6lI,EAAmB,EAChB79E,GAAAllD,EAAA/D,cAAA,iBACO8mI,GAEP,QAIhB79E,GAAAllD,EAAA/D,cAAA,UAAQopD,QAASt4C,KAAKigB,MAAMi2G,kBACxB/lI,UAAU,iEACV9B,KAAK,UACL8pD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,kBAAhB,uBAEIgoD,GAAAllD,EAAA/D,cAAA,OAAK2C,MAAM,KAAK8gC,OAAO,KACnBxiC,UAAU,4CACVgoD,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,wNAS3CkxE,GAAwBt9E,UAAY,CAChCw1B,WAAYv1B,KAAUj5B,OAAOqlC,WAC7BmxE,kBAAmBv9E,KAAUxjB,OAAO4vB,WACpCw4D,aAAc5kE,KAAUnsD,OAAOu4D,WAC/B8vE,eAAgBl8E,KAAUjjD,MAAMqvD,WAChCoxE,kBAAmBx9E,KAAUx3C,KAAK4jD,YAGtC,IAeerL,gBAfS,SAAC/zC,GAIrB,MAAO,CACH43G,aAFA53G,EADA43G,aAGcsX,eAFdlvH,EADckvH,eAGgBqB,kBAF9BvwH,EAD8BuwH,kBAGmBhoD,WAFjDvoE,EADiDuoE,aAO9B,SAAC9pE,GAAD,MAAe,CACtC+xH,kBAAmB,WACf/xH,EAASgyH,GAASN,yBAIXp8E,CAA6Cs8E,ICtF5D,SAASK,GAAT1xH,GAA6C,IAAjB2xH,EAAiB3xH,EAAjB2xH,cACxB,OACIl+E,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oBAAoB+uH,YAAU,UACxCmX,EAAgBl+E,GAAAllD,EAAA/D,cAAConI,GAAD,MAAiCn+E,GAAAllD,EAAA/D,cAACqnI,GAAD,OAK9DH,GAAiB39E,UAAY,CACzB49E,cAAe39E,KAAUqM,KAAKD,YAGlC,IAKerL,gBALS,SAAC/zC,GAErB,MAAO,CAAE2wH,cADiB3wH,EAAlB2wH,gBAIG58E,CAAyB28E,mcCpBxC,IAAMI,GAAgB,CAClBH,eAAe,EACfpoD,WAAY0nB,IACZi/B,eAAgB,GAChBqB,kBAAmB,EACnBP,OAAQ,IAGGvyH,GAAA,WAAmC,IAAlCuC,EAAkC9W,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAA1B4nI,GAAepyH,EAAWxV,UAAAnB,OAAA,EAAAmB,UAAA,QAAAvD,EAM9C,OAJKqa,EAAM+wH,WACP/wH,EAAQgxH,GAAA,GAAKF,GAAkB9wH,EAA1B,CAAiC+wH,UAAU,KAG5CryH,EAAO/V,MACX,IHlBqB,uBGmBjB,OAAAqoI,GAAA,GACOhxH,EADP,CAEI2wH,eAAe,IAGvB,IHvBmB,qBGwBf,OAAAK,GAAA,GACOhxH,EADP,CAEIuoE,WAAY7pE,EAAO6pE,aAG3B,QACI,OAAOvoE,4kBCpBEixH,eACjB,SAAAA,IAAqB,IAAAr/F,EAAAhoB,2CAAAqnH,4DAAAC,CAAA52H,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,MACjBwxB,EAAAu/F,GAAAF,IAAAptI,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,UA0BkB,SAACg0F,EAAeC,GAClC3kF,EAAK1iB,MAAMuX,SAASgyH,GAASL,iBAAiB7hC,QA5B7B,2BAAA6iC,MAAAxnH,2FAAA,IAAAq8C,EAKbr8C,EAAKd,QADLomH,EAJajpE,EAIbipE,eAAgBqB,EAJHtqE,EAIGsqE,kBAAmBP,EAJtB/pE,EAIsB+pE,OAAQpY,EAJ9B3xD,EAI8B2xD,aAJ9B,OAOjBhuG,EAAK1iB,MAAQka,aAAY3D,GAAS,CAC9ByxH,iBACAqB,oBACAP,SACApY,eACArvC,WAAY/6B,IAAI67B,uBAGpBz/D,EAAKxB,OAfYwB,qPAD8B0oB,sCAoB/Ch4B,KAAK6L,SACLqjC,KAAS9W,YAAYu2C,IAA2B3uE,KAAKm0F,yDAIrDjlD,KAASszC,eAAe7T,IAA2B3uE,KAAKm0F,sDAQxDr6C,KAASjuC,OAAOssC,GAAAllD,EAAA/D,cAACuV,GAAA,EAAD,CAAU7X,MAAOoT,KAAKpT,OAClCurD,GAAAllD,EAAA/D,cAAC6nI,GAAD,OACS/2H,KAAKlS,+oBCzC1ByqC,IAAkBC,cAAchE,OAAO,oBAAqBmiG,gBCAvCK,eACjB,SAAAA,IAAqB,IAAA1/F,EAAAhoB,qCAAA0nH,4DAAAC,CAAAj3H,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAA4/F,GAAAF,IAAAztI,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACKrK,KAAO2Z,EAAKd,QAAQ7Y,KACzB2Z,EAAK0jH,GAAK1jH,EAAKd,QAAQwkH,GACvB1jH,EAAKxB,OAJYwB,qPADiC0oB,sCASlD8hB,KAASjuC,OAAOssC,GAAAllD,EAAA/D,cAACskI,GAAD,CAAqB79H,KAAMqK,KAAKrK,KAAMq9H,GAAIhzH,KAAKgzH,KAAOhzH,KAAKlS,+oBCTnFyqC,IAAkBC,cAAchE,OAAO,wBAAyBwiG,gBCF3CG,+kBAAoCt+E,KAAM0tD,kDAEvD,OACIpuD,GAAAllD,EAAA/D,cAAA,MACIiB,UAAW,wCACXgoD,GAAAllD,EAAA/D,cAACokI,GAA4BtzH,KAAKigB,kpBCJ7Bm3G,+kBAAuCv+E,KAAM0tD,kDAE1D,IAAMl/D,EAAUrnC,KAAKigB,MAAMw6F,2BAAyD,IAA5Bz6G,KAAKigB,MAAMxrB,MAAMhH,OAEzE,OACI0qD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YAAYyX,SAAS,IAAIq3G,gBAAA,EAAaC,YAAU,WACzD73E,EAAU,EACR8Q,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAW,mCACV6P,KAAKigB,MAAMxrB,MAAMyS,IAAI,SAACvR,EAAMlK,GAAP,OAClB0sD,GAAAllD,EAAA/D,cAACmoI,GAAD,CAA6BpiI,MAAOxJ,EAAGkK,KAAMA,EAAMjB,IAAKiB,EAAK3H,QAEjEmqD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qDACXgoD,GAAAllD,EAAA/D,cAAA,WACIipD,GAAAllD,EAAA/D,cAAA,wBACAipD,GAAAllD,EAAA/D,cAAA,8vCAWpCkoI,GAA+B3+E,UAAY,CACvChkD,MAAOikD,KAAUjjD,MAAMqvD,WACvB21D,0BAA2B/hE,KAAUqM,KAAKD,wBCzBzBwyE,eACjB,SAAAA,EAAYr3G,GAAO,IAAA3Q,IAAA,uCAAAgoH,4DAAAC,CAAAv3H,OACfsP,MAAAkoH,GAAAF,GAAA/tI,KAAAyW,KAAMigB,+CAANjgB,SAEKg5E,SAAW1pE,EAAK0pE,SAASlsE,KAAd2qH,MAAAnoH,KAChBA,EAAKooH,mBAAqBpoH,EAAKooH,mBAAmB5qH,KAAxB2qH,MAAAnoH,KAC1BA,EAAKw1G,SAAWx1G,EAAKw1G,SAASh4G,KAAd2qH,MAAAnoH,KAChBA,EAAKqoH,QAAUroH,EAAKqoH,QAAQ7qH,KAAb2qH,MAAAnoH,KAEfA,EAAKsoH,YAAc,KACnBtoH,EAAK0pD,aAAe,KACpB1pD,EAAKorG,kBAAoB,KACzBprG,EAAKuoH,oBAAsBvoH,EAAK2Q,MAAMm6B,YACtC9qC,EAAKwoH,oBAAsBxoH,EAAK2Q,MAAM63G,oBACtCxoH,EAAKyoH,8BAAgC,6BAbtBzoH,qPADuBupC,KAAM0tD,gEAkB5CvmG,KAAKg4H,qBAAqBC,uDAGTz1H,GACjB,MAAO,CACH0/F,YAAa1/F,EAAO0E,IAAI,SAACgxH,GAAe,IAEhCxtI,EACAwtI,EADAxtI,KAAMytI,EACND,EADMC,WAAe/iC,oXAFWgjC,CAGhCF,EAHgC,uBAIpC,MAAO,CACH/tI,MAAOO,EACP3B,KAAMsvI,GAAA,CACFhqI,KAAM8pI,EAAWxqI,YACdynG,mDAOH,IAAA7lF,EAAAvP,KAChBA,KAAKs4H,cAAgB3/D,KAAE34D,KAAKg5D,cAE5Bh5D,KAAKg4H,qBAAuBh4H,KAAKs4H,cAAcC,sBAAsB,CACjEC,SAAU,EACVC,eAAgB,IAChBC,OAAQ,GACRC,SAAU34H,KAAK43H,YACfgB,wBAAwB,EACxBC,mBAAoB,oBACpBC,2BAA2B,EAC3BC,OAAQ,SAACC,EAAO9tG,GACZ3b,EAAK0pH,eAAetpI,UAAUgY,IAAI,cAClC4H,EAAK2pH,eAAeF,GAAOl/F,KAAK,SAAC/wC,GACzBkG,SAASsqB,gBAAkBhK,EAAKypD,eAC5BjwE,EAAKu/C,MAAQ/4B,EAAKuoH,oBAClBvoH,EAAKqoH,YAAYjoI,UAAUgY,IAAI4H,EAAKwoH,+BAEpCxoH,EAAKqoH,YAAYjoI,UAAUqY,OAAOuH,EAAKwoH,+BAE3C7sG,EAAK3b,EAAK4pH,qBAAqBpwI,EAAKyZ,UAExC+M,EAAK0pH,eAAetpI,UAAUqY,OAAO,eACtC,SAAC+F,GAEK0sC,KAAMkhE,SAAS5tG,IAChBwB,EAAK0pH,eAAetpI,UAAUqY,OAAO,iBAYjDoxH,aAAc,SAAClB,EAAYrgH,GACvB,IAAIltB,EAAkButI,EAAW/tI,MAGjC,GAAI0tB,EAAc,CACd,IAAM6I,EAAU,IAAM7I,EAAa5pB,QAAQ,sBAAuB,QAAU,IAC5EtD,EAAkBA,EAAgBsD,QAAQ,IAAIgG,OAAOysB,EAAS,MAAO,uBAGzE,OAAOnR,EAAK0Q,MAAMo5G,iBACd9pH,EAAK0Q,MAAMo5G,iBAAiBnB,EAAW/tI,MAAO+tI,EAAWnvI,KAAKsF,KAAM6pI,EAAWnvI,KAAM4B,GACrFA,GAER2uI,SACI,SAACpB,GACG3oH,EAAKgqH,uBAAuBrB,MAErCK,wBACHv4H,KAAKg4H,qBAAqBwB,qBAAqBzxH,aAAa,wBAAyB/H,KAAK83H,4DAG/EkB,GAAO,IAAAvpH,EAAAzP,KACdA,KAAK06G,oBACL16G,KAAK06G,oBACL16G,KAAK06G,kBAAoB,MAE7B,IACMxmH,EADcumD,KAAM+hE,YACCtoH,SAG3B,OAFA8L,KAAK06G,kBAAoBxmH,EAAOkvC,OAAOt2B,KAAK5Y,GAErCwrD,KAAItzD,IAAI4T,KAAK63H,oBAAqB,CACrCroG,OAAQ,CAAEm5F,KAAMqQ,GAChBtc,YAAaxoH,EAAOorD,QACrBxlB,KACC,SAAAp1B,GAAA,OAAAA,EAAG3b,MACH,SAACglB,GAIG,OAHK0sC,KAAMkhE,SAAS5tG,KAChB0B,EAAKirG,kBAAoB,MAEtBv7D,QAAQE,OAAOtxC,qCAK1Bve,GACJwQ,KAAK43H,YAAcpoI,mCAGdA,GACLwQ,KAAKg5D,aAAexpE,EAChBwQ,KAAKigB,MAAM6kG,UACX9kH,KAAKigB,MAAM6kG,SAASt1H,0CAKxB,MAA4B,KAArBwQ,KAAKigB,MAAM+4G,OAAgBh5H,KAAKigB,MAAMw5G,cAAgBz5H,KAAKigB,MAAMy5G,sDAIxE,OAAI15H,KAAK25H,eAEDxhF,GAAAllD,EAAA/D,cAAA,UAAQopD,QAASt4C,KAAK03H,mBAAoBrpI,KAAK,SAC3C8B,UAAU,kCACVq0D,aAAW,eACXrM,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,kBACZgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO0B,MAAM,KAAK8gC,OAAO,MACpCwlB,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,mBAQ/B1M,GAAAllD,EAAA/D,cAAA,UAAQopD,QAASt4C,KAAKigB,MAAM25G,oBAAqBvrI,KAAK,SAClD8B,UAAU,kCACVq0D,aAAW,UACXrM,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,kBACZgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO0B,MAAM,KAAK8gC,OAAO,MACpCwlB,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,qDAO1B,IAAA/0C,EAAA9P,KACC25H,EAAe35H,KAAK25H,eACpBE,EAAc75H,KAAKigB,MAAM45G,YACzBljG,EAAa32B,KAAKigB,MAAM0W,aAAegjG,EAE7C,OACIxhF,GAAAllD,EAAA/D,cAAA,OACIiB,UAAS,qBAAAlF,OAAwB4uI,IAAgBljG,EAAc,eAAiB,GAAvE,KAAA1rC,OAA6E0uI,EAAe,YAAc,KACnHxhF,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,2BAA2B6+D,IAAKhvD,KAAK23H,QACjD3+C,SAAUh5E,KAAKg5E,UACf7gC,GAAAllD,EAAA/D,cAAA,SAAOghC,SAAUlwB,KAAKigB,MAAMiQ,SACxB/lC,MAAO6V,KAAKigB,MAAM+4G,MAClBl6C,QAAS9+E,KAAKigB,MAAM6+D,QACpBC,OAAQ/+E,KAAKigB,MAAM8+D,OACnB/vB,IAAKhvD,KAAK8kH,SACVlzH,YAAY,6BACZzB,UAAU,2BAA2B9B,KAAK,SAG9C8pD,GAAAllD,EAAA/D,cAAA,SAAOb,KAAK,WACZ8pD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mDACX6+D,IAAK,SAACx/D,GAASsgB,EAAKmpH,eAAiBzpI,KAExCwQ,KAAK85H,kBAAkBH,IAGvBE,GAAeljG,EACZwhB,GAAAllD,EAAA/D,cAAA,UAAQopD,QAASt4C,KAAKigB,MAAM85G,sBAAuB1rI,KAAK,SACpD8B,UAAU,sCACVgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,kBACZgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO0B,MAAM,KAAK8gC,OAAO,MACpCwlB,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,mBAI3B,iDAMD1mD,GACfA,EAAEyb,iBACF5Z,KAAKigB,MAAM+5G,2CAGN77H,GACLA,EAAEyb,iBACF5Z,KAAKigB,MAAM+4D,0DAGQk/C,GACnBl4H,KAAKigB,MAAMq5G,SAASpB,EAAW/tI,MAAO+tI,EAAWnvI,KAAKsF,KAAM6pI,EAAWnvI,oMAI/EuuI,GAAiB7+E,UAAY,CACzB2B,YAAa1B,KAAUj5B,OAAOqlC,WAC9BgzE,oBAAqBp/E,KAAUxjB,OAAO4vB,WACtCu0E,iBAAkB3gF,KAAUx3C,KAC5B84H,QAASthF,KAAUx3C,KAAK4jD,WACxB50B,SAAUwoB,KAAUx3C,KAAK4jD,WACzBw0E,SAAU5gF,KAAUx3C,KAAK4jD,WACzBk0B,SAAUtgC,KAAUx3C,KAAK4jD,WACzBk0E,MAAOtgF,KAAUj5B,OACjBs/D,OAAQrmC,KAAUx3C,KAAK4jD,WACvBg6B,QAASpmC,KAAUx3C,KAAK4jD,WACxBi1E,sBAAuBrhF,KAAUx3C,KAAK4jD,WACtC80E,oBAAqBlhF,KAAUx3C,KAAK4jD,WACpCggE,SAAUpsE,KAAUx3C,KACpB24H,YAAanhF,KAAUqM,KAAKD,WAC5B20E,YAAa/gF,KAAUqM,KAAKD,WAC5B40E,UAAWhhF,KAAUqM,KAAKD,WAC1BnuB,WAAY+hB,KAAUqM,KAAKD,08BC5O/B,IAGqBm1E,eACjB,SAAAA,EAAYh6G,GAAO,IAAA3Q,IAAA,uCAAA2qH,4DAAAC,CAAAl6H,OACfsP,MAAA6qH,GAAAF,GAAA1wI,KAAAyW,KAAMigB,+CAANjgB,SAEKg6H,QAAU1qH,EAAK0qH,QAAQltH,KAAbstH,MAAA9qH,KACfA,EAAK4gB,SAAW5gB,EAAK4gB,SAASpjB,KAAdstH,MAAA9qH,KAChBA,EAAKgqH,SAAWhqH,EAAKgqH,SAASxsH,KAAdstH,MAAA9qH,KAChBA,EAAK0pE,SAAW1pE,EAAK0pE,SAASlsE,KAAdstH,MAAA9qH,KAChBA,EAAK+pH,iBAAmB/pH,EAAK+pH,iBAAiBvsH,KAAtBstH,MAAA9qH,KAPTA,qPADuCupC,KAAM0tD,mDAY5DvmG,KAAKigB,MAAM06F,gBAuER,CACHgO,KAAM,GACNwP,WAAY,GACZkC,UAAW,sCAvENl8H,GAEL6B,KAAKigB,MAAM06F,mVAAX2f,CAAA,GAkEG,CACH3R,KAAM,GACNwP,WAAY,GACZkC,UAAW,IArEX,CAEI1R,KAAMxqH,EAAEpO,OAAO5F,SAChB,oCAGEA,EAAOkE,EAAMksI,GAClB,OAAQlsI,GACJ,IA5BmB,IA6BfmoD,aAAW+jF,EAAezH,WAC1B,MACJ,QACI9yH,KAAKigB,MAAM06F,gBAAgB,CACvBgO,KAAMx+H,EACNguI,WAAY9pI,EACZgsI,UAAWE,EAAeF,WAAa,yCAQnDr6H,KAAKigB,MAAM06F,gBAAgB,6CAGdjwH,EAAM2D,EAAM9D,EAAMI,GAC/B,IAAI6X,EACJ,OAAQnU,GACJ,IAhDiB,IAiDbmU,EAASg4H,KAAuB,CAAE9vI,OAAMC,kBAAiBJ,SACzD,MACJ,IApDmB,IAqDfiY,EAASi4H,KAAyB,CAAE/vI,OAAMC,kBAAiBJ,SAC3D,MACJ,QACIiY,EAAS9X,EAGjB,OAAO8X,mCAGF,IAAA2vD,EAC2BnyD,KAAKigB,MAA/B84F,EADD5mD,EACC4mD,QAAY2hB,oXADbC,CAAAxoE,EAAA,aAEGw2D,EAAe5P,EAAf4P,KAAMt6H,EAAS0qH,EAAT1qH,KACd,OACI8pD,GAAAllD,EAAA/D,cAAC0rI,GAADC,GAAA,GAAsBH,EAAtB,CACI1B,MAAOrQ,EACPmS,UAAWzsI,EACXorI,YAAaz5H,KAAKigB,MAAMu6F,iBACxBwf,QAASh6H,KAAKg6H,QACd9pG,SAAUlwB,KAAKkwB,SACfopG,SAAUt5H,KAAKs5H,SACftgD,SAAUh5E,KAAKg5E,SACfqgD,iBAAkBr5H,KAAKq5H,0pBAKvCY,GAAiCxhF,UAAY,CACzCkiE,gBAAiBjiE,KAAUx3C,KAAK4jD,WAChCi0D,QAASrgE,KAAUnsD,OAAOu4D,WAC1B01D,iBAAkB9hE,KAAUqM,KAAKD,gBCpFhBi2E,+kBAAwCliF,KAAM0tD,kDAE3D,OAAOzsD,KAASglE,aACZ3mE,GAAAllD,EAAA/D,cAACmwH,GAAoBr/G,KAAKigB,OAC1BjgB,KAAKigB,MAAM+6G,upBAMvBD,GAAgCtiF,UAAY,CACxCuiF,gBAAiBtiF,KAAU4mE,WAAW7wH,SAASq2D,gBCb9Bm2E,+kBAAoDpiF,KAAM0tD,yDAEvE,OAAIvmG,KAAKigB,MAAMi7G,iBACJ,eAEJ,gDAIP,OACI/iF,GAAAllD,EAAA/D,cAAA,UAAQb,KAAK,SAAS8B,UAAU,6CAC5BmoD,QAASt4C,KAAKigB,MAAMq4B,SACpBH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBACV6P,KAAKm7H,gBACNhjF,GAAAllD,EAAA/D,cAAA,OAAK2C,MAAM,KAAK8gC,OAAO,IACnBxiC,UAAS,mDAAAlF,OAAqD+U,KAAKigB,MAAMi7G,iBAAmB,cAAgB,KAC5G/iF,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,0xBASvCo2E,GAA4CxiF,UAAY,CACpDH,QAASI,KAAUx3C,KAAK4jD,WACxBo2E,iBAAkBxiF,KAAUqM,KAAKD,gBCnBhBs2E,eACjB,SAAAA,EAAYn7G,GAAO,IAAA3Q,UAAA,uCAAA8rH,4DAAAC,CAAAr7H,QACfs7H,GAAAF,GAAA7xI,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,UA2BkB,WAClB,IAAM6wG,EAAW,CACbgpB,YAAavqH,EAAKisH,kBAGlB1qB,EAASgpB,cAAgBvqH,EAAK5J,MAAMm0H,cACpChpB,EAASl6E,YAAa,GAE1BrnB,EAAKsyC,SAASivD,OApCC,2BAAA2qB,MAAAlsH,2FAGfA,EAAK5J,MAAQ,CACTm0H,YAAavqH,EAAKisH,iBAClB7B,WAAW,EACX/iG,YAAY,GAGhBrnB,EAAKmsH,uBAAyBnsH,EAAKmsH,uBAAuB3uH,KAA5B0uH,MAAAlsH,KAC9BA,EAAKosH,wBAA0BpsH,EAAKosH,wBAAwB5uH,KAA7B0uH,MAAAlsH,KAC/BA,EAAKyqH,sBAAwBzqH,EAAKyqH,sBAAsBjtH,KAA3B0uH,MAAAlsH,KAC7BA,EAAKsqH,oBAAsBtqH,EAAKsqH,oBAAoB9sH,KAAzB0uH,MAAAlsH,KAC3BA,EAAKw1G,SAAWx1G,EAAKw1G,SAASh4G,KAAd0uH,MAAAlsH,KAbDA,qPADsCupC,KAAM0tD,6DAkB3Dr3D,KAAS9W,YAAYu2C,IAA2B3uE,KAAKm0F,oEAIrDjlD,KAASszC,eAAe7T,IAA2B3uE,KAAKm0F,sDAGnD3kG,GACLwQ,KAAKg5D,aAAexpE,mDAepB,IAAMqhH,EAAW,CACb6oB,WAAW,GAEX15H,KAAK0F,MAAMm0H,aAAe75H,KAAKigB,MAAMu6F,kBAAoBx6G,KAAK0F,MAAMixB,aACpEk6E,EAASl6E,YAAa,GAE1B32B,KAAK4hD,SAASivD,qDAId,IAAMA,EAAW,CACb6oB,WAAW,GAEX15H,KAAK0F,MAAMm0H,cAAgB75H,KAAK0F,MAAMixB,aACtCk6E,EAASl6E,YAAa,GAE1B32B,KAAK4hD,SAASivD,mDAId7wG,KAAK4hD,SAAS,CAAEjrB,YAAY,gDAGZx4B,GAChB,IAAM07H,EAAc75H,KAAK0F,MAAMm0H,YACzBljG,EAAa32B,KAAK0F,MAAMixB,WAE1BkjG,IAAgBljG,IAChBx4B,EAAEyb,iBACF5Z,KAAK4hD,SAAS,CAAEjrB,YAAY,IAC5B32B,KAAKg5D,aAAaxoD,kDAKtB,OAAO0iC,IAAI67B,uBAAyB4mB,qDAIpC,OAAQ31F,KAAK0F,MAAMm0H,cAAgB75H,KAAK0F,MAAMixB,4CAI9C,OACIwhB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,aACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6CACV6P,KAAK27H,yBACFxjF,GAAAllD,EAAA/D,cAAC0sI,GAAD,CACItjF,QAASt4C,KAAKigB,MAAM47G,sBACpBX,iBAAkBl7H,KAAKigB,MAAMi7G,mBAAsB,KAC3D/iF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gDACXgoD,GAAAllD,EAAA/D,cAAC4sI,GAAD,CACIhX,SAAU9kH,KAAK8kH,SACf/L,QAAS/4G,KAAKigB,MAAM84F,QACpByB,iBAAkBx6G,KAAKigB,MAAMu6F,iBAC7BG,gBAAiB36G,KAAKigB,MAAM06F,gBAC5BvgE,YAAap6C,KAAKigB,MAAMzR,QAAQutH,sBAChClC,YAAa75H,KAAK0F,MAAMm0H,YACxBH,UAAW15H,KAAK0F,MAAMg0H,UACtB/iG,WAAY32B,KAAK0F,MAAMixB,WACvBooD,OAAQ/+E,KAAKy7H,uBACb38C,QAAS9+E,KAAK07H,wBACd3B,sBAAuB/5H,KAAK+5H,sBAC5BH,oBAAqB55H,KAAK45H,oBAC1B9B,oBAAqB,2wBASrDsD,GAAgC3iF,UAAY,CACxCkiE,gBAAiBjiE,KAAUx3C,KAAK4jD,WAChCi0D,QAASrgE,KAAUnsD,OAAOu4D,WAC1B01D,iBAAkB9hE,KAAUqM,KAAKD,WACjCo2E,iBAAkBxiF,KAAUqM,KAAKD,WACjCt2C,QAASkqC,KAAUnsD,OACnBsvI,sBAAuBnjF,KAAUx3C,KAAK4jD,gBCjIrBk3E,eACjB,SAAAA,IAAqB,IAAA1kG,EAAAhoB,qCAAA0sH,4DAAAC,CAAAj8H,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjBwJ,OAAAgoB,EAAA4kG,GAAAF,IAAAzyI,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,gDAATlR,SACKkwB,SAAW5gB,EAAK4gB,SAASpjB,KAAdqvH,MAAA7sH,KAFCA,qPADkBupC,KAAM0tD,kDAMpCpoG,aACL6B,KAAKigB,MAAMiQ,YAAX,KAAuBlwB,KAAKigB,MAAMrV,OAAOnhB,OAAO0U,EAAEpO,OAAO5F,wIAIzD,IAAMygB,EAAS5K,KAAKigB,MAAMrV,OAC1B,OACIutC,GAAAllD,EAAA/D,cAAA,WACIipD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gBAAgBya,EAAO1gB,OACtCiuD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCACXgoD,GAAAllD,EAAA/D,cAAA,UAAQ/E,MAAO6V,KAAKigB,MAAM91B,MACtB+lC,SAAUlwB,KAAKkwB,SACf//B,UAAU,mBACTya,EAAO4D,QAAQtH,IAAI,SAAC8C,EAAQ/U,GAAT,OAChBkjD,GAAAllD,EAAA/D,cAAA,UAAQwF,IAAKO,EAAO9K,MAAO6f,EAAO7f,OAAQ6f,EAAO9f,UAGzDiuD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBACXgoD,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,4xBAQvCm3E,GAAcvjF,UAAY,CACtB7tC,OAAQ8tC,KAAUnsD,OAAOu4D,WACzB36D,MAAOuuD,KAAUj5B,OAAOqlC,WACxB50B,SAAUwoB,KAAUx3C,KAAK4jD,gBCnCRs3E,eACjB,SAAAA,IAAqB,IAAA9kG,EAAAhoB,qCAAA8sH,4DAAAC,CAAAr8H,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjBwJ,OAAAgoB,EAAAglG,GAAAF,IAAA7yI,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,gDAATlR,SACKkwB,SAAW5gB,EAAK4gB,SAASpjB,KAAdyvH,MAAAjtH,KAFCA,qPADqBupC,KAAM0tD,kDAMvC4W,EAAsBC,GAC3B,UACIxlG,IADEC,EAAe7X,KAAKigB,MAAM91B,MAG5BytB,EADAwlG,EACQ,GAAAnyH,gHAAO4sB,yNAAP,CAAqBslG,IAElBtlG,EAAalI,OAAO,SAACxlB,GAAD,OAAWA,IAAUgzH,IAExDn9G,KAAKigB,MAAMiQ,YAAX,KAAgDtY,KAAzB5X,KAAKigB,MAAMrV,OAAOnhB,qIAGpC,IAAA8lB,EAAAvP,KACC4K,EAAS5K,KAAKigB,MAAMrV,OAC1B,OACIutC,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBACVya,EAAO4D,QAAQtH,IAAI,SAAC8C,EAAQ/U,GAAT,OAChBkjD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBAAwBuE,IAAKO,GACxCkjD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBACXgoD,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,yBACbgoD,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,0BACb9B,KAAK,WACLypD,SAAqD,IAA5CvoC,EAAK0Q,MAAM91B,MAAMwG,QAAQqZ,EAAO7f,OACzC+lC,SAAU,SAAC/xB,GAAD,OAAOoR,EAAK2gB,SAASlmB,EAAO7f,MAAOgU,EAAEpO,OAAO+nD,YAC1DK,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,yBACZgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,gCAChBgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,2BACX6Z,EAAOtf,gxBAapD0xI,GAAiB5rC,aAAe,CAC5BrmG,MAAO,IAGXiyI,GAAiB3jF,UAAY,CACzB7tC,OAAQ8tC,KAAUnsD,OAAOu4D,WACzB36D,MAAOuuD,KAAUjjD,MAAMqvD,WACvB50B,SAAUwoB,KAAUx3C,KAAK4jD,gBC7CR03E,eACjB,SAAAA,EAAYv8G,GAAO,IAAA3Q,IAAA,uCAAAktH,4DAAAC,CAAAz8H,OACfsP,MAAAotH,GAAAF,GAAAjzI,KAAAyW,KAAMigB,+CAANjgB,SAEK28H,WAAartH,EAAKqtH,WAAW7vH,KAAhB8vH,MAAAttH,KAHHA,qPADqCupC,KAAM0tD,6DAQ1D9vE,EAAkBz2B,KAAK68H,eAAgB78H,KAAKigB,MAAMi7G,qDAG3C1rI,GACPwQ,KAAK68H,eAAiBrtI,6CAGPstI,GACXA,EAAU5B,mBAAqBl7H,KAAKigB,MAAMi7G,kBAC1Cl7H,KAAK+8H,4EAKL/8H,KAAK68H,iBACD78H,KAAKigB,MAAMi7G,iBACX9jG,EAAOp3B,KAAK68H,gBAEZ/lG,EAAS92B,KAAK68H,sDAKb5jB,GACT,OAAQA,EAAa5qH,MACjB,KAAKw4G,GACD,OACI1uD,GAAAllD,EAAA/D,cAAC8tI,GAAD,CAAkBtoI,IAAKukH,EAAaxvH,KAChCmhB,OAAQquG,EACR9uH,MAAO6V,KAAKigB,MAAM84F,QAAQE,EAAaxvH,MACvCymC,SAAUlwB,KAAKigB,MAAM06F,kBAGjC,KAAK7T,GACD,OACI3uD,GAAAllD,EAAA/D,cAAC+tI,GAAD,CACIvoI,IAAKukH,EAAaxvH,KAClBmhB,OAAQquG,EACR9uH,MAAO6V,KAAKigB,MAAM84F,QAAQE,EAAaxvH,MACvCymC,SAAUlwB,KAAKigB,MAAM06F,kBAEjC,QACI,MAAM,IAAIp3G,MAAM,0DAInB,IAAAgM,EAAAvP,KACL,OACIm4C,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAKhvD,KAAK28H,WACXxsI,UAAU,sCACVgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wDACV6P,KAAKigB,MAAMzR,QAAQuqG,QAAQ7xG,IAAI,SAAC+xG,GAAD,OAAkB1pG,EAAK2tH,aAAajkB,ywBAOxFujB,GAA+BhsC,aAAe,CAC1ChiF,QAAS,CAELuqG,QAAS,KAIjByjB,GAA+B/jF,UAAY,CACvCkiE,gBAAiBjiE,KAAUx3C,KAAK4jD,WAChCi0D,QAASrgE,KAAUnsD,OAAOu4D,WAC1Bo2E,iBAAkBxiF,KAAUqM,KAAKD,WACjCt2C,QAASkqC,KAAUnsD,YClFF4wI,eACjB,SAAAA,EAAYl9G,GAAO,IAAA3Q,IAAA,uCAAA6tH,4DAAAC,CAAAp9H,OACfsP,MAAA+tH,GAAAF,GAAA5zI,KAAAyW,KAAMigB,+CAANjgB,SAEK0F,MAAQ,CACTw1H,kBAAmB,GAEvB5rH,EAAKusH,sBAAwBvsH,EAAKusH,sBAAsB/uH,KAA3BwwH,MAAAhuH,KANdA,qPADoCupC,KAAM0tD,iEAWpD6S,GAAep5G,KAAKigB,MAAM84F,QAAS/4G,KAAKigB,MAAMzR,QAAQuqG,UACvD/4G,KAAK4hD,SAAS,CAAEs5E,kBAAmBl7H,KAAK0F,MAAMw1H,oDAKlD,OACI/iF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qCACXgoD,GAAAllD,EAAA/D,cAACquI,GAAD,CACI5iB,gBAAiB36G,KAAKigB,MAAM06F,gBAC5B5B,QAAS/4G,KAAKigB,MAAM84F,QACpByB,iBAAkBx6G,KAAKigB,MAAMu6F,iBAC7BhsG,QAASxO,KAAKigB,MAAMzR,QACpBgvH,WAAYx9H,KAAKigB,MAAMu9G,WACvB3B,sBAAuB77H,KAAK67H,sBAC5BX,iBAAkBl7H,KAAK0F,MAAMw1H,mBAEjC/iF,GAAAllD,EAAA/D,cAACuuI,GAAD,CACI9iB,gBAAiB36G,KAAKigB,MAAM06F,gBAC5B5B,QAAS/4G,KAAKigB,MAAM84F,QACpBvqG,QAASxO,KAAKigB,MAAMzR,QACpB0sH,iBAAkBl7H,KAAK0F,MAAMw1H,mxBAMjDiC,GAA8B1kF,UAAY,CACtCkiE,gBAAiBjiE,KAAUx3C,KAAK4jD,WAChCi0D,QAASrgE,KAAUnsD,OAAOu4D,WAC1Bt2C,QAASkqC,KAAUnsD,OAAOu4D,WAC1B01D,iBAAkB9hE,KAAUqM,KAAKD,WACjC04E,WAAY9kF,KAAUxjB,OAAO4vB,gBCxCZ44E,eACjB,SAAAA,EAAYz9G,GAAO,IAAA3Q,IAAA,uCAAAouH,4DAAAC,CAAA39H,OACfA,OAAA49H,GAAAF,GAAAn0I,KAAAyW,KAAMigB,GAAN3Q,uKAAAtP,SAEKg5G,kVAAL6kB,CAAA,GRgFG,CACHlV,KAAM,GACNwP,WAAY,GACZkC,UAAW,IQjFJvhB,GAAkB74F,EAAMzR,QAAQuqG,UALxBzpG,qPAD8BupC,KAAM0tD,kDAU9C,IAAAh3F,EAAAvP,KACL,OACIm4C,GAAAllD,EAAA/D,cAAC0vH,GAAD,CAASpwG,QAASxO,KAAKigB,MAAMzR,QAASwqG,eAAgBh5G,KAAKg5G,eACvDntG,OAAQ,SAAAnH,GAAA,IACJ+1G,EADI/1G,EACJ+1G,0BACAE,EAFIj2G,EAEJi2G,gBACA5B,EAHIr0G,EAGJq0G,QACAyB,EAJI91G,EAIJ81G,iBACApB,EALI10G,EAKJ00G,eACA3kH,EANIiQ,EAMJjQ,MACA+xG,EAPI9hG,EAOJ8hG,WACAI,EARIliG,EAQJkiG,WACAD,EATIjiG,EASJiiG,cATI,OAWJxuD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACXgoD,GAAAllD,EAAA/D,cAAC4uI,GAAD,CACInjB,gBAAiBA,EACjB5B,QAASA,EACTyB,iBAAkBA,EAClBpB,eAAgBA,EAChB5qG,QAASe,EAAK0Q,MAAMzR,QACpBgvH,WAAY/oI,EAAMhH,SACtB0qD,GAAAllD,EAAA/D,cAAC6uI,GAAD,CAAgCtjB,0BAA2BA,EAA2BhmH,MAAOA,IAC7F0jD,GAAAllD,EAAA/D,cAAC8uI,GAAD,CACIp3B,WAAYA,EACZJ,WAAYA,EACZG,cAAeA,EACfq0B,gBAAiBzrH,EAAK0Q,MAAM+6G,m0BAOxD0C,GAAwBjlF,UAAY,CAChCjqC,QAASkqC,KAAUnsD,OAAOu4D,WAC1Bk2E,gBAAiBtiF,KAAU4mE,WAAW7wH,SAASq2D,gBCjD9Bm5E,eACjB,SAAAA,IAAqB,IAAA3mG,EAAAhoB,qCAAA2uH,4DAAAC,CAAAl+H,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,IACjB9F,QAAAs3B,EAAA6mG,GAAAF,IAAA10I,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEKo+H,eAAiB9uH,EAAK2oB,KAAKooF,QAChC/wG,EAAK0rH,gBAAkB1rH,EAAK2oB,KAAKomG,SAEjC,IAAMjkF,EAAc9qC,EAAKd,QAAQ8vH,aACjC,IAAKlkF,EACD,MAAM,IAAI72C,MAAM,6CAGpB,IAAMw4H,EAAwBzsH,EAAKd,QAAQ+vH,uBAC3C,IAAKnkF,EACD,MAAM,IAAI72C,MAAM,uDAGpB,IAAMi7H,EAAgBlvH,EAAKd,QAAQiwH,QAAQ,GAErC1lB,EAAU,CAAC,CACb1qH,KAAMw4G,GACNp9G,KAAM+0I,EAAc/0I,KACpB+kB,QAASgwH,EAAcztH,OACvBq4B,aAAc,KAtBD,OA0BjB95B,EAAKovH,sBAAwB,CACzBtkF,cACA2hF,wBACAhjB,WAEJzpG,EAAKxB,OA/BYwB,yPADqC0oB,oDAoCtD,MAAO,CAAC,UAAW,gDAInB8hB,KAASjuC,OAAOssC,GAAAllD,EAAA/D,cAACyvI,GAAD,CACZnwH,QAASxO,KAAK0+H,sBAAuB1D,gBAAiBh7H,KAAKg7H,kBAAqBh7H,KAAKo+H,oDAIzFtkF,KAASC,uBAAuB/5C,KAAKlS,gDC9C7CyqC,IAAkBC,cAAchE,OAAO,4BAA6BypG,0fCApE1lG,IAAkBC,cAAchE,OAAO,YAAaoqG,0BCA/BC,eACjB,SAAAA,IAAqB,IAAAvnG,EAAAhoB,qCAAAuvH,4DAAAC,CAAA9+H,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAynG,GAAAF,IAAAt1I,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,qPAD8B0oB,sCAQ/C,IAAM0gF,EAAgBzmE,IAAQ7lD,IAAI,iBAClC,QAAsBf,IAAlBqtH,EAA6B,CAC7B,IAAMC,EAAuB9iH,KAAKC,MAAM4iH,GACjD14G,KAAKlS,QAAQia,aAAa,OAAQ4wG,EAAqBqmB,uBAG9Ch/H,KAAKlS,QAAQia,aAAa,OAAQmrC,IAAIxtC,MAAMu5H,iNChBxD1mG,IAAkBC,cAAchE,OAAO,qBAAsBqqG,gBCShDK,GAAwB,WAA+F,IAA9FzxF,EAA8F7+C,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,IAAAA,UAAA,GAArEuwI,EAAqEvwI,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAA3C,KAAMwwI,EAAqCxwI,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAT,KACvH,IAAGokD,YAAkBmsF,GAArB,CAIA,IAAME,EAAiC5xF,IAAoBuF,YAAkBosF,GAE7EE,YAAeH,ECfD,SDekEE,GAChFC,YAAeF,EChBD,UDgBqEC,KAW1EE,GAA2B,WAA0B,IAAzB52I,EAAyBiG,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAbK,SACjD,OAAOuwI,YAAkB,IAAAv0I,OC/BC,6BD+BD,MAAAA,OC9BF,mBD8BgH,CAAEw0I,oBAAqB,CAAC92I,MAGtJ+2I,GAAgC,WAAoB,IAAnB5xI,EAAmBc,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAT,KACpD,OAAIokD,YAAkBllD,GACX,KAGJ6xI,YAAiB,IAAA10I,OCrCM,0BDqCyD6C,4kBEZ5E8xI,eAtBX,SAAAA,IAAqB,IAAAtoG,EAAAhoB,2CAAAswH,4DAAAC,CAAA7/H,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjBwJ,OAAAgoB,EAAAwoG,GAAAF,IAAAr2I,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,gDAATlR,UAUc,SAACtM,GACf,IAAMutF,EAAcvtF,EAAM3D,OACpBmxF,EAAWD,EAAYE,WAAaF,EAAY1tC,YACtDgF,KAAIzjD,KAAK,aAAc,QAASosF,OAdf,uBAAA6+C,MAAAzwH,2FAGjBA,EAAKxB,OAHYwB,qPADS0oB,uCFDuB,WAA0B,IAAzBrvC,EAAyBiG,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAbK,SAC5Dw+C,EAAkBN,KAClBgyF,EAiB0B,WAA0B,IAAzBx2I,EAAyBiG,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAbK,SAC7C,OAAO+wI,YAAiB,IAAA/0I,OCtBD,mBDsBwD,CAAEw0I,oBAAqB,CAAC92I,KAlBvEs3I,CAAqBt3I,GAC/Cy2I,EAoB4B,WAA0B,IAAzBz2I,EAAyBiG,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAbK,SAC/C,OAAO+wI,YAAiB,IAAA/0I,OCzBM,0BDyBwD,CAAEw0I,oBAAqB,CAAC92I,KArB5Eu3I,CAAuBv3I,GAEzDu2I,GAAsBzxF,EAAiB0xF,EAAyBC,GEI5De,CAA0CngI,KAAKlS,SAC/CkS,KAAKo4B,YAAYp4B,KAAKlS,QAAS,QAASkS,KAAKuiF,qDAU7CzoC,KAASC,uBAAuB/5C,KAAKlS,2wBCrB7CyqC,IAAkBC,cAAchE,OAAO,yBAA0BorG,QCmClDQ,eA9BX,SAAAA,IAAqB,IAAA9oG,EAAAhoB,2CAAA8wH,4DAAAC,CAAArgI,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAgpG,GAAAF,IAAA72I,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,UAcyB,WACzB,IAAMytC,EAAkBN,KAClBozF,EAA2BhB,GAAyBjwH,EAAKxhB,SAE1D05C,YAAS+4F,IAIdA,EAAyB/6H,QAAQ,SAACg7H,GAC9B,IAAMC,EAAiBf,GAA8Bc,GACrDtB,GAAsBzxF,EAAiB+yF,EAAcC,SAzBxC,kCAAAC,MAAApxH,2FAGjBA,EAAKqxH,2BAA6BrxH,EAAKqxH,2BAA2B7zH,KAAhC4zH,MAAApxH,KAClCA,EAAKxB,OAJYwB,qPADM0oB,sCASvBkX,KAAS9W,YAAYwU,GAAwBC,8BAA+B7sC,KAAK2gI,gEAIjFzxF,KAASszC,eAAe51C,GAAwBC,8BAA+B7sC,KAAK2gI,kqBCjB5FpoG,IAAkBC,cAAchE,OAAO,qBAAsB4rG,gBCyD9CQ,eAxDX,SAAAA,IAAqB,IAAAtpG,EAAAhoB,qCAAAsxH,4DAAAC,CAAA7gI,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAMjB,IALA9F,QAAAs3B,EAAAwpG,GAAAF,IAAAr3I,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACK+gI,WAAa,KAClBzxH,EAAKqkC,YAAc,IAAI91B,KAAKvO,EAAKd,QAAQmlC,aACzCrkC,EAAK0xH,cAAgB,IAAInjH,KAAKvO,EAAKd,QAAQwyH,gBAEtC/iE,mBAAQ3uD,EAAKqkC,aACd,MAAM,IAAIpwC,MAAM,kDAGpB,IAAK06D,mBAAQ3uD,EAAK0xH,eACd,MAAM,IAAIz9H,MAAM,oDAXH,OAcjB+L,EAAKxB,OAdYwB,qPADS0oB,sCAkBvB,IACCipG,EADD1xH,EAAAvP,KAMCihI,GAHCjhI,KAAKwO,QAAQ0yH,qBAGHlhI,KAAK2zC,YAAc3zC,KAAKghI,cAGvChhI,KAAKmhI,kBAEDF,EACAjhI,KAAKlS,QAAQ6B,UAAUgY,IAAI,cAE3B3H,KAAKlS,QAAQ6B,UAAUgY,IAAI,gBAC3B3H,KAAK+gI,WAAalqE,YAAY,WAC1BtnD,EAAKokC,YAAYytF,WAAW7xH,EAAKokC,YAAY0tF,aAAe,GAEvC9xH,EAAKokC,YAAcpkC,EAAKyxH,gBAExBC,IACjBnqE,cAAcvnD,EAAKwxH,YACnBxxH,EAAKzhB,QAAQ6B,UAAUqY,OAAO,gBAC9BuH,EAAKzhB,QAAQ6B,UAAUgY,IAAI,eAEhC,gDAKO,IAAA8H,EAAAzP,KACTzP,MAAMuvB,QAAQ9f,KAAKi4B,KAAKqpG,UAE7BthI,KAAKi4B,KAAKqpG,QAAQ97H,QAAQ,SAAC2nB,GACvBA,EAAO1iC,IAAMglB,EAAK3H,aAAaqlB,EAAQ,uMClDnDoL,IAAkBC,cAAchE,OAAO,cAAeosG,wECCzCW,GAAkB,WAE3B,IACIC,EADAC,GAAW,EA6Bf,SAASC,IAGL,KAFAD,OAAwBp2I,IAAbo2I,IAAiCA,GAE5C,CAIA,IAAME,EAAuBr0F,KAAuBxG,IAAc66F,sBAClE,GAAKA,EAAL,CAGA,IAAMC,EAA6BD,EAAuB1rH,SAAS0rH,EAAsB,IAAME,IAE3F1sG,OAAOl2B,MAAM2iI,IAIbA,GAA8B,IAIlCh3I,OAAOkgH,aAAa02B,GACpBA,EAAgB9tE,WAAWouE,EAA+C,IAA7BF,MAGjD,SAASE,IACDL,GAIJM,IAA4BjoG,KAAK,WAC7BkV,IAAYgzF,qBAAqB,MACjC10F,KAAuBxG,IAAc66F,qBAAsB,GAC3DM,iBAoBR,MAAO,CACHC,mBAAoB,WA9EhB,WAAYjzI,SACZA,SAASkpB,iBAAiB,mBAAoBupH,GAI9C,cAAezyI,SACfA,SAASkpB,iBAAiB,sBAAuBupH,GAIjD,iBAAkBzyI,SAClBA,SAASkpB,iBAAiB,yBAA0BupH,GAIpD,aAAczyI,SACdA,SAASkpB,iBAAiB,qBAAsBupH,IAIpD92I,OAAOu3I,WAAaT,EACpB92I,OAAOw3I,WAAaV,IA4DpBW,sBAAuB,WApB3B,IACUC,EACAC,EADAD,EAAiB13I,OAAOg2B,SAASgyB,MACjC2vF,EAAYtzI,SAASqD,KAAKwhE,uBAAuB,cAAc,MAMhEwuE,EAAer3H,SAAS,mBAK7Bs3H,EAAU5yI,UAAUgY,IAAI,mBAJpB46H,EAAU5yI,UAAUqY,OAAO,sBA7ER,GCHlBw6H,GAAiB3pF,KAAM4pF,gBACpClB,GAAeW,qBACfX,GAAec,wBCLR,ICOMK,GAAiC,CAC1CC,6BAA8B,+BAC9BC,yBAA0B,2BAC1BC,oBAAqB,sBACrBC,4BAA6B,8BAC7BC,oBAAqB,sBACrBC,oBAAqB,uBCTVC,GAAA,CACXC,yBAA0B,CACtB55F,WAAYkF,KAAgBC,QAC5B00F,UAAU,EACVC,kBAAmB,GACnBC,gBAAiB,GACjBvgH,OAAQ,GACRwgH,eAAe,GAEnBC,yBAA0B,CACtBj6F,WAAYkF,KAAgBC,QAC5B00F,UAAU,EACVrgH,OAAQ,GACRwgH,eAAe,GAEnBE,wBAAyB,CACrBl6F,WAAYkF,KAAgBC,QAC5B00F,UAAU,EACVrgH,OAAQ,GACRwgH,eAAe,EACfG,sBAAsB,GAE1BC,2BAA4B,CACxBp6F,WAAYkF,KAAgBC,QAC5B00F,UAAU,EACVC,kBAAmB,GACnBC,gBAAiB,GACjBvgH,OAAQ,GACRwgH,eAAe,EACfK,eAAe,EACfC,yBAAyB,GAE7BC,2BAA4B,CACxBv6F,WAAYkF,KAAgBC,QAC5B00F,UAAU,EACVC,kBAAmB,GACnBC,gBAAiB,GACjBvgH,OAAQ,GACRwgH,eAAe,EACfK,eAAe,EACfC,yBAAyB,GAE7BE,qBAAsB,CAClBX,UAAU,EACVt8F,SAAU,GACVk9F,yBAAyB,EACzBX,kBAAmB,GACnBC,gBAAiB,GACjBvgH,OAAQ,GACRwgH,eAAe,EACfU,qBAAqB,GAEzBC,wBAAyB,CACrBnhH,OAAQ,GACRwgH,eAAe,GAEnBY,uBAAwB,CACpBf,UAAU,EACVgB,UD5DgB,qBC6DhBC,YAAa,GACbhB,kBAAmB,GACnBC,gBAAiB,GACjBvgH,OAAQ,GACRwgH,eAAe,GAEnBe,mCAAoC,CAChClB,UAAU,EACVt8F,SAAU,GACVu9F,YAAa,GACbthH,OAAQ,GACRwgH,eAAe,GAEnBgB,oBAAqB,CACjBnB,UAAU,EACVt8F,SAAU,GACV09F,mBAAmB,EACnBH,YAAa,GACbhB,kBAAmB,GACnBC,gBAAiB,GACjBvgH,OAAQ,GACRwgH,eAAe,GAEnBkB,sBAAuB,CACnBC,iBAAkB,GAClBC,6BAA8B,EAC9BC,uBAAuB,EACvBR,UCxFqB,0BDyFrBS,qBAAsB,GAE1BC,qBAAsB,CAClBthG,gBAAgB,EAChBuhG,wBAAwB,EACxBC,aAAc,GACdC,cAAe,IAEnBC,0BAA2B,CACvB7B,kBAAmB,GACnBC,gBAAiB,GACjBvgH,OAAQ,GACRwgH,eAAe,GAEnB4B,6BAA8B,CAC1B9B,kBAAmB,GACnBC,gBAAiB,GACjBvgH,OAAQ,GACRwgH,eAAe,GAEnB6B,wBAAyB,CACrB54F,kBAAmB,GACnB42F,UAAU,EACViC,gBAAiB,GACjBhC,kBAAmB,GACnBC,gBAAiB,GACjBvgH,OAAQ,GACRwgH,eAAe,EACf+B,gBAAgB,GAEpBC,uBAAwB,CACpB/4F,kBAAmB,CAACiC,KAAgBC,SACpC00F,UAAU,EACViC,gBAAiB,GACjBhC,kBAAmB,GACnBC,gBAAiB,GACjBvgH,OAAQ,GACRwgH,eAAe,EACf+B,gBAAgB,GAEpBE,qBAAsB,CAClB58H,SAAU,GACVkwB,SAAS,GAEb2sG,0BAA2B,CACvBj5F,kBAAmB,GACnB42F,UAAU,EACViC,gBAAiB,GACjBhC,kBAAmB,GACnBC,gBAAiB,GACjBvgH,OAAQ,GACRwgH,eAAe,EACf+B,gBAAgB,GAEpBI,gBAAiB,CACb3iH,OAAQ,GACR4iH,cAAc,EACdpC,eAAe,GAEnBqC,6BAA8B,CAC1B7iH,OAAQ,GACR4iH,cAAc,EACdpC,eAAe,GAEnBsC,wBAAyB,CACrB9iH,OAAQ,GACR4iH,cAAc,EACdpC,eAAe,GAEnBuC,uBAAwB,CACpB/iH,OAAQ,GACRgjH,iBAAkB,GAClBJ,cAAc,GAElBK,qBAAsB,CAClBjjH,OAAQ,GACRgjH,iBAAkB,GAClBJ,cAAc,IEnKtB,SAASM,GAATthI,GAIG,IAHCizH,EAGDjzH,EAHCizH,QACAsO,EAEDvhI,EAFCuhI,iBACAC,EACDxhI,EADCwhI,SAEMC,EAAYF,EAAmB,YAAc,UAsBnD,OApBA,WACI,GAAI5+F,YAAQ6+F,GACR,OAAO,KAGX,IAAME,EAAU,aAAAn7I,OAAgBk7I,EAAhB,SAEVE,EAAoBH,EAASh/H,IAAI,SAACvb,GACpC,OAAQwsD,GAAAllD,EAAA/D,cAAA,MAAIwF,IAAK0yC,IAAEue,WACfqJ,IAAK2oE,EACLxnI,UAAWi2I,GAAaz6I,KAGhC,OAAQwsD,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAS,aAAAlF,OAAek7I,EAAf,iBACRE,IAKNC,GAGXN,GAAYvtF,UAAY,CACpBk/E,QAASj/E,KAAUnsD,OACnB05I,iBAAkBvtF,KAAUqM,KAAKD,WACjCohF,SAAUxtF,KAAUjjD,OAGTuwI,UCzCFO,YAAgB,CACzBxxD,aAAc,EACdyxD,SAAU,EACVC,oBAAqB,EACrBxvD,YAAa,EACb3B,SAAU,EACVoxD,gBAAiB,EACjB9xD,MAAO,EACPC,UAAW,EACX8C,SAAU,EACVgvD,YAAa,EACb3xD,aAAc,GACdC,aAAc,GACd2xD,aAAc,GACd1xD,SAAU,GACV2xD,YAAa,GACb1xD,KAAM,GACNC,QAAS,GACTC,OAAQ,GACRyxD,YAAa,GACbC,gBAAiB,GACjBC,eAAgB,GAChBC,eAAgB,GAChBC,OAAQ,GACRC,QAAS,GACTC,cAAe,GACfC,aAAc,GACdC,cAAe,GACfC,aAAc,GACdC,OAAQ,GACRC,cAAe,GACfC,wBAAyB,GACzBC,eAAgB,GAChBC,iBAAkB,GAClBC,oBAAqB,GACrBC,aAAc,GACdC,qBAAsB,GACtBC,iBAAkB,GAClBC,wBAAyB,GACzBC,SAAU,GACVC,wBAAyB,GACzBC,iBAAkB,GAClBC,oBAAqB,GACrBC,eAAgB,GAChBC,gBAAiB,GACjBC,WAAY,GACZC,QAAS,GACTC,WAAY,GACZC,MAAO,GACPC,iBAAkB,mCChDTC,GAAqB,CAC9BC,WAAY,YACZ/uE,SAAU,YACVgvE,UAAW,aACXC,UAAW,aACXC,SAAU,YACVC,qBAAsB,cACtBC,qBAAsB,eCH1B,SAASC,GAAT1kI,GAKG,IAJCwzE,EAIDxzE,EAJCwzE,UACAmxD,EAGD3kI,EAHC2kI,YACAC,EAED5kI,EAFC4kI,WACAC,EACD7kI,EADC6kI,cAEMC,EAAiBtxD,GAAa2wD,GAAmBK,qBACvD,OACI7hG,YAAQgiG,IAAgBhiG,YAAQiiG,GAC5B,KACAnxF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,gBAAAlF,OAAkBu+I,EAAep2I,cAAjC,WACV+kD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,4BAA4Bk5I,GAC1ClxF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,2BAAAlF,OAA6Bs+I,IACtCD,IAMrBF,GAAY3wF,UAAY,CACpBy/B,UAAWx/B,KAAUj5B,OACrB4pH,YAAa3wF,KAAUj5B,OACvB6pH,WAAY5wF,KAAUj5B,OACtB8pH,cAAe7wF,KAAUj5B,QAGd2pH,ihCCpBTK,eACF,SAAAA,EAAYxpH,GAAO,IAAA3Q,qCAAAm6H,4DAAAC,CAAA1pI,MAAA,IAAAmyD,GACf7iD,MAAAq6H,GAAAF,GAAAlgJ,KAAAyW,KAAMigB,+CAANjgB,SAC0CigB,MAAlC2pH,EAFOz3E,EAEPy3E,WAAYxgG,EAFL+oB,EAEK/oB,aAFL,OAIf95B,EAAKu6H,WAAav6H,EAAKu6H,WAAW/8H,KAAhBg9H,MAAAx6H,KAClBA,EAAKg0D,aAAeh0D,EAAKg0D,aAAax2D,KAAlBg9H,MAAAx6H,KACpBA,EAAKy6H,qBAAuBz6H,EAAKy6H,qBAAqBj9H,KAA1Bg9H,MAAAx6H,KAC5BA,EAAK06H,oBAAsB16H,EAAK06H,oBAAoBl9H,KAAzBg9H,MAAAx6H,KAC3BA,EAAK26H,aAAe36H,EAAK26H,aAAan9H,KAAlBg9H,MAAAx6H,KAEpBA,EAAK46H,aAAe,CAChB9gG,aAAcA,GAAgBrO,GAAqB6E,YACnDm6B,UAAW1yB,YAAQ+B,GACnB60B,SAAS,EACTh4D,aAAc,IAEd2jI,IACAt6H,EAAK46H,aAAajsE,QAAU2rE,EAAW3rE,QACvC3uD,EAAK46H,aAAajkI,aAAe2jI,EAAW3jI,cAEhDqJ,EAAK5J,MAAQ4J,EAAK46H,aApBH56H,qPADKwpC,kEAwBE6rB,GAClB3kE,KAAKigB,MAAMmpB,eAAiBu7B,EAAUv7B,cAI1CppC,KAAK4hD,SAAS,SAACl8C,GAAD,OAAAykI,GAAA,GACPzkI,EADO,CAEV0jC,aAAcu7B,EAAUv7B,cAAgBrO,GAAqB6E,YAC7Dm6B,UAAW1yB,YAAQs9B,EAAUv7B,uDAIxB11C,GAAO,IACRvJ,EAAUuJ,EAAM3D,OAAhB5F,OAER+lC,EADqBlwB,KAAKigB,MAAlBiQ,UACCx8B,GACTsM,KAAK4hD,SACD,SAACgvD,GAAD,OAAAu5B,GAAA,GACOv5B,EADP,CAEIxnE,aAAcj/C,sDAOtB+lC,EADqBlwB,KAAKigB,MAAlBiQ,UACClwB,KAAK0F,0CAGPhS,GAAO,IACNqrF,EAAW/+E,KAAKigB,MAAhB8+D,OACA50F,EAAUuJ,EAAM3D,OAAhB5F,MACR6V,KAAKgqI,oBAAoB7/I,GACrB40F,GACAA,EAAOrrF,+CAIKvJ,GAChB,IAAM4vE,EAAqB,KAAV5vE,EACjB6V,KAAK4hD,SAAS,SAACl8C,GAAD,OAAAykI,GAAA,GAAiBzkI,EAAjB,CAAwBq0D,sDAKtC,OADuB/5D,KAAKigB,MAApBmqH,WACY,WAAa,wCAG5B,IAAAloE,EAcDliE,KAAKigB,MAZLx2B,EAFCy4E,EAEDz4E,KACA4gJ,EAHCnoE,EAGDmoE,kBACAngJ,EAJCg4E,EAIDh4E,MACAogJ,EALCpoE,EAKDooE,SACAjB,EANCnnE,EAMDmnE,YACAC,EAPCpnE,EAODonE,WACAiB,EARCroE,EAQDqoE,KACAH,EATCloE,EASDkoE,WACAR,EAVC1nE,EAUD0nE,WACAjS,EAXCz1D,EAWDy1D,QACAjwH,EAZCw6D,EAYDx6D,WACA8iI,EAbCtoE,EAaDsoE,YAbC9lI,EAgB6BklI,GAAc5pI,KAAK0F,MAA7Cu4D,EAhBHv5D,EAgBGu5D,QAASh4D,EAhBZvB,EAgBYuB,aAhBZqxD,EAiB8Bt3D,KAAK0F,MAAhC0jC,EAjBHkuB,EAiBGluB,aAAc2wB,EAjBjBzC,EAiBiByC,SAChByvE,EAAiB//I,GAAQo/I,GAAmBM,qBAElD,OACIhxF,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAACu7I,GAAD,CACIvyD,UAAWzuF,EACX4/I,YAAaA,EACbC,WAAYA,EACZC,cAAea,EAAa,gBAAkB,cAElDjyF,GAAAllD,EAAA/D,cAAA,OACI8/D,IAAK2oE,EACLxnI,UAAS,yBAAAlF,OAA2Bu+I,EAAep2I,cAA1C,WAAAnI,OAAiEs/I,GAAQxvG,GAAqB6E,YAA9F,KAAA30C,OAA6G8uE,EAAW8uE,GAAmB9uE,SAAW,GAAtJ,KAAA9uE,OAA6JgzE,EAAyC,GAA/B4qE,GAAmBG,WACnMruE,oBAAkB,aAClBC,qBAAA,EACA5oE,MAAO,CAAEo7B,QAASk9G,EAAW,OAAS,UAGjCjjG,YAAQmjG,GACyC,KAD1BryF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oBAAmBgoD,GAAAllD,EAAA/D,cAAA,OAAKw7I,WAAUF,EAAaG,WAAS,kBAAkBC,aAAW,QAAOzyF,GAAAllD,EAAA/D,cAAC27I,GAAA,EAAD,CAAiBC,KAAMC,QACtJ5yF,GAAAllD,EAAA/D,cAAC87I,GAAA,EAAD,CAAch9I,GAAG,qBAEzBmqD,GAAAllD,EAAA/D,cAAA,SACIiB,UAAU,oBACV9B,KAAM2R,KAAKiqI,eACXgB,aAAcZ,EACdr8I,GAAIvE,EACJA,KAAMA,EACNymC,SAAUlwB,KAAKsjE,aACfyb,OAAQ/+E,KAAK6pI,WACb1/I,MAAOi/C,EACPlhC,SAAUR,IAEdywC,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,oBAAoB+pE,QAASzwE,GACzCS,GAGH+zE,EAEM,KAFI9lB,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCACtBgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0B8V,oMAQhEwjI,GAAchxF,UAAY,CACtBk/E,QAASj/E,KAAUnsD,OACnB9C,KAAMivD,KAAUj5B,OAAOqlC,WACvBulF,kBAAmB3xF,KAAUj5B,OAC7Bv1B,MAAOwuD,KAAUj5B,OAAOqlC,WACxBukF,YAAa3wF,KAAUj5B,OACvB6pH,WAAY5wF,KAAUj5B,OACtB8qH,KAAM7xF,KAAUj5B,OAChB2qH,WAAY1xF,KAAUqM,KACtB3b,aAAcsP,KAAUj5B,OACxByQ,SAAUwoB,KAAUx3C,KAAK4jD,WACzBi6B,OAAQrmC,KAAUx3C,KAClB0oI,WAAYlxF,KAAUnsD,OACtBmb,WAAYgxC,KAAUqM,KACtBylF,YAAa9xF,KAAUj5B,QAGZgqH,ieC7JTyB,eACF,SAAAA,EAAYjrH,GAAO,IAAA3Q,mCAAA47H,4DAAAC,CAAAnrI,MAAA,MAEP4pI,GADR5pI,OAAAorI,GAAAF,GAAA3hJ,KAAAyW,KAAMigB,GAAN3Q,uKAAAtP,SAC4BigB,MAApB2pH,WAFO,OAIft6H,EAAK46H,aAAe,CAChBjsE,SAAS,EACTh4D,aAAc,IAEd2jI,IACAt6H,EAAK46H,aAAajsE,QAAU2rE,EAAW3rE,QACvC3uD,EAAK46H,aAAajkI,aAAe2jI,EAAW3jI,cAEhDqJ,EAAK5J,MAAQ4J,EAAK46H,aAZH56H,qPADQwpC,iDAgBlB,IAAAqZ,EAMDnyD,KAAKigB,MAJL2pH,EAFCz3E,EAEDy3E,WACAjS,EAHCxlE,EAGDwlE,QACAznG,EAJCiiC,EAIDjiC,SACAo6G,EALCn4E,EAKDm4E,SALC5lI,EAQ6BklI,GAAc5pI,KAAK0F,MAA7Cu4D,EARHv5D,EAQGu5D,QAASh4D,EARZvB,EAQYuB,aACXujI,EAAiBX,GAAmBM,qBACpCkC,EAAqBn4F,IAAIxtC,MAAM2lI,mBAC/BC,EAAiB,CACnB/pD,UAAW,OACXn0D,QAASk9G,EAAW,OAAS,SAGjC,OACInyF,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,OACIiB,UAAS,yBAAAlF,OAA2Bu+I,EAAep2I,cAA1C,UACTunE,oBAAkB,aAClBC,qBAAA,EACA5oE,MAAOs5I,GAGPnzF,GAAAllD,EAAA/D,cAACq8I,GAAA,EAAD,CACIC,QAASH,EACTn7G,SAAUA,EACV8+B,IAAK2oE,IAEP15D,EAEM,KAFI9lB,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCACtBgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0B8V,oMAQhEilI,GAAiBzyF,UAAY,CACzBk/E,QAASj/E,KAAUnsD,OACnB9C,KAAMivD,KAAUj5B,OAAOqlC,WACvBwlF,SAAU5xF,KAAUqM,KAAKD,WACzB50B,SAAUwoB,KAAUx3C,KAAK4jD,WACzB8kF,WAAYlxF,KAAUnsD,QAGX2+I,6ZC9Df,SAASO,GAAT/mI,GAOG,IANCgnI,EAMDhnI,EANCgnI,cACAx7G,EAKDxrB,EALCwrB,SACAy7G,EAIDjnI,EAJCinI,iBACAC,EAGDlnI,EAHCknI,iBACAxiG,EAED1kC,EAFC0kC,aACA1hC,EACDhD,EADCgD,WACDykF,EAAA0/C,GAC+Bz/C,qBAAS,GADxC,GACQwzB,EADRzzB,EAAA,GACiB2/C,EADjB3/C,EAAA,GAAA4/C,EAAAF,GAGyCz/C,qBAAS,GAHlD,GAGQ4/C,EAHRD,EAAA,GAGsBE,EAHtBF,EAAA,GAAAG,EAAAL,GAIyCz/C,qBAAS,GAJlD,GAIQ+/C,EAJRD,EAAA,GAIsBE,EAJtBF,EAAA,GAMOG,EAAoCzsB,EACtCosB,OAAgC3gJ,IAAjB+9C,GAAqCA,EAAatC,IAAcklG,cAC7EM,EAAoC1sB,EACtCusB,OAAgC9gJ,IAAjB+9C,GAAqCA,EAAatC,IAAcqlG,cAE/EH,IAAiBK,GACjBJ,EAAgBI,GAGhBF,IAAiBG,GACjBF,EAAgBE,GAGpB,IAAMC,EAAyBb,EAAcS,aAAaK,iBACpDC,EAAwBf,EAAcS,aAAaO,gBAEnDC,EAAyBjB,EAAcM,aAAaQ,iBACpDI,EAAwBlB,EAAcM,aAAaU,gBAgBzD,OACIv0F,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6CACXgoD,GAAAllD,EAAA/D,cAACu7I,GAAD,CAAavyD,UAAWyzD,EAAkBtC,YAAasD,EAAwBrD,WAAYsD,KAGtFlB,EAAcM,aAAa1B,UAC5BnyF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,6BAA6Bs3D,wBAAyB,CAAEC,OAAQgkF,EAAchhJ,QAC5FytD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gDACXgoD,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,eACbgoD,GAAAllD,EAAA/D,cAAA,SACIb,KAAK,WACL8B,UAAU,0CACV1G,KAAMkiJ,EACN39I,GAAI29I,EACJzjI,SAAUR,EACVwoB,SA9BG,SAACx8B,GAC5B,IAAMm5I,EAAgBn5I,EAAM3D,OAAO+nD,QACnCm0F,EAAgBY,GAChB38G,EAASx8B,GACTo4I,GAAW,IA2Bah0F,QAASk0F,IACX7zF,GAAAllD,EAAA/D,cAAA,UAAQw8I,EAAcM,aAAa9hJ,SAKrDiuD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8BACV28I,aACGpB,EAAcqB,aAAa7iJ,MAC3BwhJ,EAAcqB,aAAa51E,OAGnChf,GAAAllD,EAAA/D,cAACu7I,GAAD,CAAavyD,UAAW0zD,EAAkBvC,YAAakD,EAAwBjD,WAAYmD,IAE3Ft0F,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gDACXgoD,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,eACbgoD,GAAAllD,EAAA/D,cAAA,SACIb,KAAK,WACL8B,UAAU,0CACV1G,KAAMmiJ,EACN59I,GAAI49I,EACJ1jI,SAAUR,EACVwoB,SA/CO,SAACx8B,GAC5B,IAAMm5I,EAAgBn5I,EAAM3D,OAAO+nD,QACnCs0F,EAAgBS,GAChB38G,EAASx8B,GACTo4I,GAAW,IA4CSh0F,QAASq0F,IACXh0F,GAAAllD,EAAA/D,cAAA,UAAQw8I,EAAcS,aAAajiJ,UAQ7DuhJ,GAAWhzF,UAAY,CACnBizF,cAAehzF,KAAUnsD,OAAOu4D,WAChC6mF,iBAAkBjzF,KAAUj5B,OAAOqlC,WACnC8mF,iBAAkBlzF,KAAUj5B,OAAOqlC,WACnC1b,aAAcsP,KAAUnsD,OACxB2jC,SAAUwoB,KAAUx3C,MAGTuqI,UC1Gf,SAASuB,GAATtoI,GASG,IARCuoI,EAQDvoI,EARCuoI,OACA3C,EAOD5lI,EAPC4lI,SACA4C,EAMDxoI,EANCwoI,YACAC,EAKDzoI,EALCyoI,aACAC,EAID1oI,EAJC0oI,WACAl9G,EAGDxrB,EAHCwrB,SACA05G,EAEDllI,EAFCklI,WACAxgG,EACD1kC,EADC0kC,aACD9lC,EACmCsmI,GAAc,CAAE3rE,SAAS,GAAnDA,EADT36D,EACS26D,QAASh4D,EADlB3C,EACkB2C,aACjB,OAAIqkI,EACO,KAIPnyF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uBACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,8BACTk9I,aACGJ,EAAO/iJ,MACP+iJ,EAAO91E,KAAK13D,MAAM,OAIxBytI,EACE/0F,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,gDAAAlF,OAAmDgzE,EAAyC,GAA/B4qE,GAAmBG,YAC1F7wF,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,eACbgoD,GAAAllD,EAAA/D,cAAA,SACIb,KAAK,WACL8B,UAAU,0CACV1G,KAAM2jJ,EACNp/I,GAAIo/I,EACJl9G,SAAUA,EACVo9G,eAAgBlkG,IAClB+O,GAAAllD,EAAA/D,cAAA,UAAQi+I,GAEZlvE,EAEM,KAFI9lB,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCACtBgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0B8V,KAEvC,MAKzB+mI,GAAWv0F,UAAY,CACnBw0F,OAAQv0F,KAAUnsD,OAAOu4D,WACzBqoF,aAAcz0F,KAAUj5B,OAAOqlC,WAC/BsoF,WAAY10F,KAAUj5B,OAAOqlC,WAC7B50B,SAAUwoB,KAAUx3C,KACpB0oI,WAAYlxF,KAAUnsD,QAGXygJ,klBCrDTO,eACF,SAAAA,EAAYttH,GAAO,IAAA3Q,IAAA,uCAAAi+H,4DAAAC,CAAAxtI,OACfsP,MAAAm+H,GAAAF,GAAAhkJ,KAAAyW,KAAMigB,+CAANjgB,SACK0F,MAAQ,CAAEujI,UAAU,GACzB35H,EAAKo+H,YAAcp+H,EAAKo+H,YAAY5gI,KAAjB6gI,MAAAr+H,KAHJA,qPADUwpC,sDAQzB94C,KAAK4hD,SAAS,SAACl8C,GACX,MAAO,CAAEujI,UAAWvjI,EAAMujI,6CAIzB,IACG2E,EAAmB5tI,KAAKigB,MAAxB2tH,eACA3E,EAAajpI,KAAK0F,MAAlBujI,SAER,OACI9wF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mEACXgoD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAS,+BAAAlF,OAAiCg+I,EAAWJ,GAAmBI,SAAW,IACnFtuE,oBAAkB,aAElBxiB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8BACXgoD,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,kBACV09I,wBAAsB,YACtBv1F,QAASt4C,KAAK0tI,YACdI,gBAAe7E,EAAW,OAAS,SAEnC9wF,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uCACZgoD,GAAAllD,EAAA/D,cAAA,gBAAQ0+I,EAAe1jJ,OACvBiuD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,sCACV0B,MAAM,KACN8gC,OAAO,KACPiyB,UAAU,SAEVzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,gCAK/B1M,GAAAllD,EAAA/D,cAAA,KACIiB,UAAS,iCAAAlF,OAAmCg+I,EAAW,yBAA2B,yBAClF4E,wBAAsB,WAErBD,EAAeljJ,sMAQxC6iJ,GAAmB90F,UAAY,CAC3Bm1F,eAAgBl1F,KAAUnsD,OAAOu4D,YAGtByoF,ihCCxDTQ,eACF,SAAAA,EAAY9tH,GAAO,IAAA3Q,qCAAAy+H,4DAAAC,CAAAhuI,MACfsP,MAAA2+H,GAAAF,GAAAxkJ,KAAAyW,KAAMigB,+CAANjgB,QADe,IAEPopC,EAA0BnpB,EAA1BmpB,aACF8kG,EAD4BjuH,EAAZzR,QACSwH,KAAK,SAAChM,GAAD,OAAYA,EAAOu9B,OAAS6B,KAAiB,GAHlE,OAIf95B,EAAK5J,MAAQ,CAAE0jC,eAAc8kG,kBAE7B5+H,EAAKg0D,aAAeh0D,EAAKg0D,aAAax2D,KAAlBqhI,MAAA7+H,KANLA,qPADOwpC,kEAUA6rB,GACtB,GAAI3kE,KAAKigB,MAAMmpB,eAAiBu7B,EAAUv7B,aAA1C,CADiC,IAIzBA,EAA0Bu7B,EAA1Bv7B,aACF8kG,EAD4BvpE,EAAZn2D,QACSwH,KAAK,SAAChM,GAAD,OAAYA,EAAOu9B,OAAS6B,KAAiB,GAEjFppC,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA0oI,GAAA,GAAiB1oI,EAAjB,CAAwB0jC,aAAcu7B,EAAUv7B,aAAc8kG,2DAGnEx6I,GAAO,IAAAy+D,EACcnyD,KAAKigB,MAA3BiQ,EADQiiC,EACRjiC,SAAU1hB,EADF2jD,EACE3jD,QACVrkB,EAAUuJ,EAAM3D,OAAhB5F,MACF+jJ,EAAiB1/H,EAAQwH,KAAK,SAAChM,GAAD,OAAYA,EAAOu9B,OAASp9C,KAAU,GAC1E6V,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA0oI,GAAA,GAAiB1oI,EAAjB,CAAwB0jC,aAAcj/C,EAAO+jJ,qBAC3Dh+G,EAASx8B,oCAGJ,IAAAwuE,EAaDliE,KAAKigB,MAXLx2B,EAFCy4E,EAEDz4E,KACAS,EAHCg4E,EAGDh4E,MACAogJ,EAJCpoE,EAIDooE,SACAjB,EALCnnE,EAKDmnE,YACAC,EANCpnE,EAMDonE,WACAiB,EAPCroE,EAODqoE,KACA7iI,EARCw6D,EAQDx6D,WACA8G,EATC0zD,EASD1zD,QACA6/H,EAVCnsE,EAUDmsE,iBACAzE,EAXC1nE,EAWD0nE,WACAjS,EAZCz1D,EAYDy1D,QAZCrgE,EAcoCt3D,KAAK0F,MAAtC0jC,EAdHkuB,EAcGluB,aAAc8kG,EAdjB52E,EAciB42E,eAdjBxpI,EAe6BklI,GAAc,CAAE3rE,SAAS,GAAnDA,EAfHv5D,EAeGu5D,QAASh4D,EAfZvB,EAeYuB,aACXujI,EAAiB//I,GAAQo/I,GAAmBM,qBAElD,OACIhxF,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAACu7I,GAAD,CAAavyD,UAAWzuF,EAAM4/I,YAAaA,EAAaC,WAAYA,IAEpEnxF,GAAAllD,EAAA/D,cAAA,OACI8/D,IAAK2oE,EACLxnI,UAAS,0BAAAlF,OAA4Bu+I,EAAep2I,cAA3C,WAAAnI,OAAkEs/I,GAAQxvG,GAAqB6E,YAA/F,KAAA30C,OAA+GgzE,EAAyC,GAA/B4qE,GAAmBG,WACrJh3I,MAAO,CAAEo7B,QAASk9G,EAAW,OAAS,UACrC4D,EAAe1jJ,MAAQ2tD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAKyjJ,EAAe1jJ,KAAKC,IAAKyqE,IAAI,SAC/D/c,GAAAllD,EAAA/D,cAAA,UACIiB,UAAS,uBAAAlF,OAAyBijJ,EAAe1jJ,KAAO,WAAa,WACrEwD,GAAIvE,EACJye,SAAUR,EACVje,KAAMA,EACNoxE,SAAS,WACTjpE,YAAa1H,EACbgmC,SAAUlwB,KAAKsjE,aACfn5E,MAAK,GAAAc,OAAKm+C,IACV+O,GAAAllD,EAAA/D,cAAA,UAAQiB,UAAU,sBAAsBhG,MAAM,QACzCD,GAEJskB,EAAQtH,IAAI,SAAC8C,GACV,OACImuC,GAAAllD,EAAA/D,cAAA,UACIwF,IAAK0yC,IAAEue,WACPx1D,UAAU,sBACVhG,MAAO6f,EAAOqkI,IACbrkI,EAAO9f,UAMxBiuD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,0BACVwiC,OAAO,IACP9gC,MAAM,MACNsmD,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,sBAEjBoZ,EAEM,KAFI9lB,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCACtBgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0B8V,oMAOhE8nI,GAAgBt1F,UAAY,CACxBk/E,QAASj/E,KAAUnsD,OACnB9C,KAAMivD,KAAUj5B,OAAOqlC,WACvB56D,MAAOwuD,KAAUj5B,OAAOqlC,WACxBukF,YAAa3wF,KAAUj5B,OACvB6pH,WAAY5wF,KAAUj5B,OACtB8qH,KAAM7xF,KAAUj5B,OAChBjR,QAASkqC,KAAUjjD,MAAMqvD,WACzBupF,iBAAkB31F,KAAUj5B,OAAOqlC,WACnC1b,aAAcsP,KAAUj5B,OACxByQ,SAAUwoB,KAAUx3C,KACpB0oI,WAAYlxF,KAAUnsD,QAGXwhJ,ihCC5GTO,eACF,SAAAA,EAAYruH,GAAO,IAAA3Q,qCAAAg/H,4DAAAC,CAAAvuI,MAAA,IAAAmyD,GACf7iD,MAAAk/H,GAAAF,GAAA/kJ,KAAAyW,KAAMigB,+CAANjgB,SAC0CigB,MAAlC2pH,EAFOz3E,EAEPy3E,WAAYxgG,EAFL+oB,EAEK/oB,aAFL,OAIf95B,EAAK46H,aAAe,CAChBhmG,IAAK,GAAID,MAAO,GAAID,KAAM,GAAIi6B,SAAS,EAAMh4D,aAAc,IAG3D2jI,IACAt6H,EAAK46H,aAAajsE,QAAU2rE,EAAW3rE,QACvC3uD,EAAK46H,aAAajkI,aAAe2jI,EAAW3jI,cAG3CohC,YAAQ+B,KACT95B,EAAK46H,aAAahmG,IAAMkF,EAAalQ,UACrC5pB,EAAK46H,aAAajmG,MAAQmF,EAAanQ,WAAa,EACpD3pB,EAAK46H,aAAalmG,KAAOoF,EAAajQ,eAG1C7pB,EAAK5J,MAAQ4J,EAAK46H,aAClB56H,EAAKg0D,aAAeh0D,EAAKg0D,aAAax2D,KAAlB2hI,MAAAn/H,KACpBA,EAAKy6H,qBAAuBz6H,EAAKy6H,qBAAqBj9H,KAA1B2hI,MAAAn/H,KArBbA,qPADKwpC,kEAyBE6rB,GACtB,GAAI3kE,KAAKigB,MAAMmpB,eAAiBu7B,EAAUv7B,eAGtC/B,YAAQs9B,EAAUv7B,cAAtB,CACA,IAAMslG,EAAW/pE,EAAUv7B,aAAalQ,UAClCy1G,EAAahqE,EAAUv7B,aAAanQ,WAAa,EACjD21G,EAAYjqE,EAAUv7B,aAAajQ,cAEzCn5B,KAAK4hD,SAAS,SAACl8C,GAAD,OAAAmpI,GAAA,GACPnpI,EADO,CACAw+B,IAAKwqG,EAAUzqG,MAAO0qG,EAAY3qG,KAAM4qG,4CAI7Cl7I,GAAO,IAAA8vE,EACQ9vE,EAAM3D,OAAtBtG,EADQ+5E,EACR/5E,KAAMU,EADEq5E,EACFr5E,MACd6V,KAAK4hD,SACD,SAACgvD,GAAD,OAAAi+B,GAAA,GACOj+B,EADPk+B,GAAA,GAEKrlJ,EAAOU,KAEZ6V,KAAK+pI,sEAMT75G,EADqBlwB,KAAKigB,MAAlBiQ,UACClwB,KAAK0F,wCAGT,IAAAw8D,EASDliE,KAAKigB,MAPL2pH,EAFC1nE,EAED0nE,WACAjS,EAHCz1D,EAGDy1D,QACA2S,EAJCpoE,EAIDooE,SACAjB,EALCnnE,EAKDmnE,YACAC,EANCpnE,EAMDonE,WACA5hI,EAPCw6D,EAODx6D,WACAje,EARCy4E,EAQDz4E,KARC6tE,EAUwBt3D,KAAK0F,MAA1Bw+B,EAVHozB,EAUGpzB,IAAKD,EAVRqzB,EAUQrzB,MAAOD,EAVfszB,EAUetzB,KAVft/B,EAW6BklI,GAAc5pI,KAAK0F,MAA7Cu4D,EAXHv5D,EAWGu5D,QAASh4D,EAXZvB,EAWYuB,aACjB,OACIkyC,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAACu7I,GAAD,CAAavyD,UAAWzuF,EAAM4/I,YAAaA,EAAaC,WAAYA,IACpEnxF,GAAAllD,EAAA/D,cAAA,OACI8/D,IAAK2oE,EACLxnI,UAAS,wBAAAlF,OAA2BgzE,EAAyC,GAA/B4qE,GAAmBG,WACjEh3I,MAAO,CAAEo7B,QAASk9G,EAAW,OAAS,SACtC1vE,qBAAA,GACAziB,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,oBACbgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,oBAAoB,kBAExCgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACXgoD,GAAAllD,EAAA/D,cAAA,SACIiB,UAAU,mBACV9B,KAAK,OACLL,GAAG,MACHvE,KAAK,MACLmI,YAAY,KACZqoE,UAAU,IACVv5C,QAAQ,SACR0oB,aAAclF,EACdh8B,SAAUR,EACVwoB,SAAUlwB,KAAKsjE,aACf9e,aAAW,2BAEfrM,GAAAllD,EAAA/D,cAAA,SACIiB,UAAU,mBACV9B,KAAK,OACLL,GAAG,QACHvE,KAAK,QACLmI,YAAY,KACZqoE,UAAU,IACV7wB,aAAcnF,EACd/7B,SAAUR,EACVwoB,SAAUlwB,KAAKsjE,aACf9e,aAAW,6BAEfrM,GAAAllD,EAAA/D,cAAA,SACIiB,UAAU,0CACV9B,KAAK,OACLL,GAAG,OACHvE,KAAK,OACLmI,YAAY,OACZqoE,UAAU,IACV7wB,aAAcpF,EACd97B,SAAUR,EACVwoB,SAAUlwB,KAAKsjE,aACf9e,aAAW,+BAGjByZ,EAEM,KAFI9lB,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCACtBgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0B8V,oMAQhEqoI,GAAc71F,UAAY,CACtBk/E,QAASj/E,KAAUnsD,OACnB9C,KAAMivD,KAAUj5B,OAAOqlC,WACvB56D,MAAOwuD,KAAUj5B,OAAOqlC,WACxBukF,YAAa3wF,KAAUj5B,OACvB6pH,WAAY5wF,KAAUj5B,OACtByQ,SAAUwoB,KAAUx3C,KAAK4jD,WACzB8kF,WAAYlxF,KAAUnsD,OACtB68C,aAAcsP,KAAUnsD,QAGb+hJ,klBC1ITS,eACF,SAAAA,EAAY9uH,GAAO,IAAA3Q,qCAAAy/H,4DAAAC,CAAAhvI,MACfsP,MAAA2/H,GAAAF,GAAAxlJ,KAAAyW,KAAMigB,+CAANjgB,QADe,IAGP4pI,EAA6B3pH,EAA7B2pH,WAAYxgG,EAAiBnpB,EAAjBmpB,aAHL,OAIf95B,EAAK46H,aAAe,CAAEthG,OAAQ,GAAIq1B,SAAS,EAAMh4D,aAAc,IAE3D2jI,IACAt6H,EAAK46H,aAAajsE,QAAU2rE,EAAW3rE,QACvC3uD,EAAK46H,aAAajkI,aAAe2jI,EAAW3jI,cAG3CohC,YAAQ+B,KACT95B,EAAK46H,aAAathG,OAASQ,GAG/B95B,EAAK5J,MAAQ4J,EAAK46H,aAElB56H,EAAK4/H,cAAgB5/H,EAAK4/H,cAAcpiI,KAAnBqiI,MAAA7/H,KACrBA,EAAKg0D,aAAeh0D,EAAKg0D,aAAax2D,KAAlBqiI,MAAA7/H,KACpBA,EAAKy6H,qBAAuBz6H,EAAKy6H,qBAAqBj9H,KAA1BqiI,MAAA7/H,KAC5BA,EAAK8/H,cAAgB9/H,EAAK8/H,cAActiI,KAAnBqiI,MAAA7/H,KApBNA,qPADawpC,wDAwBhB,IAAAqZ,EAKUnyD,KAAKigB,MAJnBx2B,EADI0oE,EACJ1oE,KACJ4/I,EAFQl3E,EAERk3E,YACAC,EAHQn3E,EAGRm3E,WACAgB,EAJQn4E,EAIRm4E,SACA+E,EALQl9E,EAKRk9E,cAEJ,IAAI/E,GAA4C,GAAhC+E,EAAc/2I,QAAQ7K,OAGtC,OAAO0qD,GAAAllD,EAAA/D,cAACu7I,GAAD,CAAaz4I,MAAO,CAAEo7B,QAASk9G,EAAW,OAAS,SACtDpyD,UAAWzuF,EACX4/I,YAAaA,EACbC,WAAYA,EACZC,cAAe,sDAIP,IAAAh6H,EAAAvP,KAAAkiE,EAC4BliE,KAAKigB,MAArCovH,EADIntE,EACJmtE,cAAejmG,EADX84B,EACW94B,aAEvB,OAAOimG,EAAc/2I,QAAQ4O,IAAI,SAACq2E,GAC9B,IAAItrE,GAAa,EAMjB,OALKo1B,YAAQ+B,KAETn3B,EAD2Bm3B,EAAaliC,IAAI,SAAAvR,GAAI,OAAIA,EAAKw0C,gBACzBl/B,SAASsyE,EAAMvvF,GAAGm8C,gBAG9CgO,GAAAllD,EAAA/D,cAAA,OACJwF,IAAK6oF,EAAMvvF,GACXmC,UAAU,gDAEVgoD,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,eACbgoD,GAAAllD,EAAA/D,cAAA,SACIb,KAAK,WACL8B,UAAU,0CACV1G,KAAM8zF,EAAMvvF,GACZA,GAAIuvF,EAAMvvF,GACVkiC,SAAU3gB,EAAK+zD,aACfgqE,eAAgBr7H,IAClBkmC,GAAAllD,EAAA/D,cAAA,UAAQquF,EAAMrzF,+CAMnBwJ,GACT,IAAM3D,EAAS2D,EAAM3D,OACfqtH,EAAYrtH,EAAO+nD,QACnBruD,EAAOsG,EAAOtG,KAId6lJ,EAFStvI,KAAK0F,MAAMkjC,OAAO1hC,IAAI,SAAAvR,GAAI,OAAIA,EAAKw0C,gBAEtBx5C,QAAQlH,EAAK0gD,eAEzCnqC,KAAK4hD,SAAS,SAACl8C,GAKX,MAAO,CACHkjC,OALWw0E,EAAS,GAAAnyH,UAChBya,EAAMkjC,wUADU,CACFn/C,IAClBic,EAAMkjC,OAAOj5B,OAAO,SAACha,EAAM0uB,GAAP,OAAairH,IAAiBjrH,YAKvDrkB,KAAK+pI,qEAGW,IAAAwF,EACQvvI,KAAKigB,OAChCiQ,EAFmBq/G,EACXr/G,UACC,CACLngC,OAAQ,CACJtG,KAJW8lJ,EACD9lJ,KAIVU,MAAO6V,KAAK0F,MAAMkjC,2CAKrB,IAAA4mG,EAMDxvI,KAAKigB,MAJLovH,EAFCG,EAEDH,cAEAzF,GAJC4F,EAGDlF,SAHCkF,EAID5F,YACAjS,EALC6X,EAKD7X,QALCjzH,EAO6BklI,GAAc5pI,KAAK0F,MAA7Cu4D,EAPHv5D,EAOGu5D,QAASh4D,EAPZvB,EAOYuB,aAEjB,OACIkyC,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACKhnD,KAAKovI,gBACNj3F,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAK2oE,EAASxnI,UAAU,yBACS,GAAhCk/I,EAAc/2I,QAAQ7K,OAAc,GAClC0qD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uBACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,8BACTk/I,EAAcnlJ,OAElB8V,KAAKkvI,gBACJjxE,EAEM,KAFI9lB,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCACtBgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0B8V,qMAUxE8oI,GAAsBt2F,UAAY,CAC9Bk/E,QAASj/E,KAAUnsD,OACnB8iJ,cAAe32F,KAAUnsD,OAAOu4D,WAChCr7D,KAAMivD,KAAUj5B,OAAOqlC,WACvB1b,aAAcsP,KAAUjjD,MACxBy6B,SAAUwoB,KAAUx3C,KACpB0oI,WAAYlxF,KAAUnsD,QAGXwiJ,UC5If,SAASU,GAAT/qI,GAA6C,IAAlBgrI,EAAkBhrI,EAAlBgrI,eACvB,OACIv3F,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uBACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,8BACT28I,aAAoB4C,EAAexlJ,MAAOwlJ,EAAev4E,QAM1Es4E,GAAgBh3F,UAAY,CACxBi3F,eAAgBh3F,KAAUnsD,OAAOu4D,YAGtB2qF,sdCbTE,+kBAA0B72F,iDACnB,IAAAqZ,EASDnyD,KAAKigB,MAPL03G,EAFCxlE,EAEDwlE,QACAluI,EAHC0oE,EAGD1oE,KACAS,EAJCioE,EAIDjoE,MACAm/I,EALCl3E,EAKDk3E,YACAC,EANCn3E,EAMDm3E,WACAp5G,EAPCiiC,EAODjiC,SACAkZ,EARC+oB,EAQD/oB,aAEEogG,EAAiB//I,GAAQo/I,GAAmBM,qBAElD,OAAQhxF,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAACu7I,GAAD,CAAavyD,UAAWzuF,EAAM4/I,YAAaA,EAAaC,WAAYA,IAEpEnxF,GAAAllD,EAAA/D,cAAA,OACI8/D,IAAK2oE,EACLxnI,UAAS,yBAAAlF,OAA2Bu+I,EAAep2I,cAA1C,UACTunE,oBAAkB,aAClBC,qBAAA,GAEAziB,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,eACbgoD,GAAAllD,EAAA/D,cAAA,SACIb,KAAK,WACL8B,UAAU,0CACV1G,KAAMA,EACNuE,GAAI9D,EACJgmC,SAAUA,EACV4nB,QAAS1O,IACX+O,GAAAllD,EAAA/D,cAAA,UAAQhF,mMAQ9BylJ,GAAkBl3F,UAAY,CAC1Bk/E,QAASj/E,KAAUnsD,OACnB9C,KAAMivD,KAAUj5B,OAAOqlC,WACvB56D,MAAOwuD,KAAUj5B,OAAOqlC,WACxBukF,YAAa3wF,KAAUj5B,OACvB6pH,WAAY5wF,KAAUj5B,OACtB2pB,aAAcsP,KAAUqM,KACxB70B,SAAUwoB,KAAUx3C,KAAK4jD,YAGd6qF,ihCC7CTC,eACF,SAAAA,EAAY3vH,GAAO,IAAA3Q,qCAAAsgI,4DAAAC,CAAA7vI,MACfsP,MAAAwgI,GAAAF,GAAArmJ,KAAAyW,KAAMigB,+CAANjgB,QADe,IAEP4pI,EAA6B3pH,EAA7B2pH,WAAYxgG,EAAiBnpB,EAAjBmpB,aAFL,OAIf95B,EAAK46H,aAAe,CAChBnwE,UAAW1yB,YAAQ+B,GACnB2mG,YAAa1oG,YAAQ+B,GAAgB,GAAKA,EAC1C4mG,uBAAuB,EACvB/xE,SAAS,EACTh4D,aAAc,IAGd2jI,IACAt6H,EAAK46H,aAAajsE,QAAU2rE,EAAW3rE,QACvC3uD,EAAK46H,aAAajkI,aAAe2jI,EAAW3jI,cAEhDqJ,EAAK5J,MAAQ4J,EAAK46H,aAElB56H,EAAKg0D,aAAeh0D,EAAKg0D,aAAax2D,KAAlBmjI,MAAA3gI,KACpBA,EAAKu6H,WAAav6H,EAAKu6H,WAAW/8H,KAAhBmjI,MAAA3gI,KAClBA,EAAK4gI,wBAA0B5gI,EAAK4gI,wBAAwBpjI,KAA7BmjI,MAAA3gI,KAC/BA,EAAK8/H,cAAgB9/H,EAAK8/H,cAActiI,KAAnBmjI,MAAA3gI,KACrBA,EAAK6gI,uBAAyB7gI,EAAK6gI,uBAAuBrjI,KAA5BmjI,MAAA3gI,KAC9BA,EAAK06H,oBAAsB16H,EAAK06H,oBAAoBl9H,KAAzBmjI,MAAA3gI,KAvBZA,qPADOwpC,qDA2BbplD,EAAO08I,GAAgB,IAAAj+E,EACLnyD,KAAKigB,MAAxBx2B,EADwB0oE,EACxB1oE,KAAMymC,EADkBiiC,EAClBjiC,SACN/lC,EAAUuJ,EAAM3D,OAAhB5F,MACJkmJ,OAAwChlJ,IAAnB+kJ,EAA+BA,EAAiBjmJ,EAErC,iBAAxBkmJ,IACRA,EAAqB,IAGzBrwI,KAAKgqI,oBAAoBqG,GACzBrwI,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4qI,GAAA,GACP5qI,EADO,CAEVqqI,YAAaM,EACbL,uBAAuB,MAE3B9/G,EAAS,CAAEngC,OAAQ,CAAEtG,OAAMU,MAAOkmJ,EAAoBhiJ,KAAM,+CAI5D2R,KAAKmwI,qEAGWhmJ,GAChB,IAAM4vE,EAAqB,KAAV5vE,EACjB6V,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4qI,GAAA,GAAiB5qI,EAAjB,CAAwBq0D,iEAGhB,IAAAxqD,EAAAvP,KACdkiG,EAAgBliG,KAAKigB,MAArBiiF,YACA6tC,EAAgB/vI,KAAK0F,MAArBqqI,YAER,GAAI1oG,YAAQ66D,GACR,OAAQ/pD,GAAAllD,EAAA/D,cAAA,gCAGZ,IAAMqhJ,EAAsBruC,EAAYvyF,OAAO,SAACuoH,GAC5C,SAAI7wF,YAAQ0oG,KAAgBS,YAAgBT,KAIrC7X,EAAWz0F,UAAUrwC,cAAc6X,SAAS8kI,EAAY38I,gBAC3D8kI,EAAWx0F,SAAStwC,cAAc6X,SAAS8kI,EAAY38I,iBAG/D,OAAIi0C,YAAQkpG,GACDp4F,GAAAllD,EAAA/D,cAAA,gCAGWqhJ,EAAoBrpI,IAAI,SAACupI,GAC3C,OACIt4F,GAAAllD,EAAA/D,cAAA,MAAIwF,IAAK0yC,IAAEue,WACPx1D,UAAU,oEACVmoD,QAAS,SAAC5kD,GACN6b,EAAK+zD,aAAa5vE,EAAO+8I,EAAmBvmJ,OAC5CqlB,EAAK4gI,2BAETh4F,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kDACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCAAgCsgJ,EAAmBhtG,WAClE0U,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BAA+BsgJ,EAAmB/sG,uDASzE,IAAAw+B,EAIKliE,KAAKigB,MAHdx2B,EADIy4E,EACJz4E,KACJ4/I,EAFQnnE,EAERmnE,YACAC,EAHQpnE,EAGRonE,WACAgB,EAJQpoE,EAIRooE,SAEJ,IAAIA,EAGJ,OAAOnyF,GAAAllD,EAAA/D,cAACu7I,GAAD,CAAaz4I,MAAO,CAAEo7B,QAASk9G,EAAW,OAAS,SACtDpyD,UAAWzuF,EACX4/I,YAAaA,EACbC,WAAYA,EACZC,cAAe,+DAKnBvpI,KAAK4hD,SAAS,CAAEouF,uBAAuB,qCAGlC,IAAA14E,EAC0Ct3D,KAAK0F,MAA5CqqI,EADHz4E,EACGy4E,YAAaC,EADhB14E,EACgB04E,sBADhBT,EAUDvvI,KAAKigB,MAPLx2B,EAHC8lJ,EAGD9lJ,KACA4gJ,EAJCkF,EAIDlF,kBACAngJ,EALCqlJ,EAKDrlJ,MACAogJ,EANCiF,EAMDjF,SACAC,EAPCgF,EAODhF,KACAX,EARC2F,EAQD3F,WACAjS,EATC4X,EASD5X,QATCjzH,EAW6BklI,GAAc5pI,KAAK0F,MAA7Cu4D,EAXHv5D,EAWGu5D,QAASh4D,EAXZvB,EAWYuB,aACT8zD,EAAa/5D,KAAK0F,MAAlBq0D,SAER,OACI5hB,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACKhnD,KAAKovI,gBACNj3F,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,qCAAAlF,OAAuCs/I,GAAQxvG,GAAqB6E,YAApE,KAAA30C,OAAmF8uE,EAAW8uE,GAAmB9uE,SAAW,GAA5H,KAAA9uE,OAAmIgzE,EAAyC,GAA/B4qE,GAAmBG,WAC1Kh6E,IAAK2oE,EACLh9D,oBAAkB,aAClBC,qBAAA,EACA5oE,MAAO,CAAEo7B,QAASk9G,EAAW,OAAS,UACtCnyF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wDACXgoD,GAAAllD,EAAA/D,cAAA,SACIiB,UAAU,+CACV9B,KAAK,OACL48I,aAAcZ,EACdr8I,GAAIvE,EACJA,KAAMA,EACNmI,YAAa1H,EACbC,MAAO4lJ,EACPz3F,QAASt4C,KAAKsjE,aACdpzC,SAAUlwB,KAAKsjE,eACnBnrB,GAAAllD,EAAA/D,cAAA,UACIopD,QAASt4C,KAAKmwI,uBACdhgJ,UAAU,iDACV9B,KAAK,UACL8pD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXy0D,UAAU,QACV/yD,MAAM,KACN8gC,OAAO,MACLq9G,EAA+D,KAAvC73F,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,iBACxCmrF,EAAwB73F,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,gBAAuB,QAI3E1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,iEAAAlF,OAAmE+kJ,EAAwB,aAAe,GAA1G,eACV73F,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,yCACT6P,KAAKkwI,6BAIhBjyE,EAEM,KAFI9lB,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCACtBgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0B8V,oMAQhE2pI,GAAgBn3F,UAAY,CACxBk/E,QAASj/E,KAAUnsD,OACnB9C,KAAMivD,KAAUj5B,OAAOqlC,WACvBo9C,YAAaxpD,KAAUjjD,MAAMqvD,WAC7BulF,kBAAmB3xF,KAAUj5B,OAC7Bv1B,MAAOwuD,KAAUj5B,OAAOqlC,WACxBukF,YAAa3wF,KAAUj5B,OACvB6pH,WAAY5wF,KAAUj5B,OACtB8qH,KAAM7xF,KAAUj5B,OAChB2pB,aAAcsP,KAAUj5B,OACxByQ,SAAUwoB,KAAUx3C,KAAK4jD,WACzBi6B,OAAQrmC,KAAUx3C,KAClB0oI,WAAYlxF,KAAUnsD,QAGXqjJ,UCpMf,SAASc,GAAThsI,GAMG,IALCwzE,EAKDxzE,EALCwzE,UACAmxD,EAID3kI,EAJC2kI,YACAC,EAGD5kI,EAHC4kI,WACAgB,EAED5lI,EAFC4lI,SACAf,EACD7kI,EADC6kI,cAEMC,EAAiBtxD,GAAa2wD,GAAmBK,qBACjDyH,EAAiBtpG,YAAQgiG,IAAgBhiG,YAAQiiG,GACvD,OACIgB,GAAYqG,EACR,KACAx4F,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,gBAAAlF,OAAkBu+I,EAAep2I,cAAjC,WACV+kD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,4BAA4Bk5I,GAC1ClxF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,2BAAAlF,OAA6Bs+I,GAAiB9hF,wBAAyB,CAAEC,OAAQ4hF,MAM/GoH,GAASj4F,UAAY,CACjBy/B,UAAWx/B,KAAUj5B,OACrB6qH,SAAU5xF,KAAUqM,KACpBskF,YAAa3wF,KAAUj5B,OACvB6pH,WAAY5wF,KAAUj5B,OACtB8pH,cAAe7wF,KAAUj5B,QAGdixH,ihCCzBTE,eACF,SAAAA,EAAY3wH,GAAO,IAAA3Q,qCAAAshI,4DAAAC,CAAA7wI,QACf8wI,GAAAF,GAAArnJ,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,QADe+wI,GAAAC,MAAA1hI,IAAA,qBA2FE,SAAC5b,GAClB,GAAI4b,EAAK2hI,MAAQ3hI,EAAK2hI,IAAIp8I,QAAQjF,SAAS8D,EAAM3D,SAAWuf,EAAK4hI,mBAAmBr8I,QAAQjF,SAAS8D,EAAM3D,QAAS,CAChH,IAAKuf,EAAK4hI,mBAAmBr8I,QAAQlF,UAAUC,SAAS,sBACpD,OAGJ0f,EAAK4hI,mBAAmBr8I,QAAQlF,UAAUqY,OAAO,yBAjGtC,IAEP4hI,EAAet6H,EAAK2Q,MAApB2pH,WAERt6H,EAAKu6H,WAAav6H,EAAKu6H,WAAW/8H,KAAhBkkI,MAAA1hI,KAClBA,EAAKg0D,aAAeh0D,EAAKg0D,aAAax2D,KAAlBkkI,MAAA1hI,KACpBA,EAAK06H,oBAAsB16H,EAAK06H,oBAAoBl9H,KAAzBkkI,MAAA1hI,KAC3BA,EAAK6hI,yBAA2B7hI,EAAK6hI,yBAAyBrkI,KAA9BkkI,MAAA1hI,KAChCA,EAAK8hI,yBAA2B9hI,EAAK8hI,yBAAyBtkI,KAA9BkkI,MAAA1hI,KAChCA,EAAK+hI,oBAAsB/hI,EAAK+hI,oBAAoBvkI,KAAzBkkI,MAAA1hI,KAC3BA,EAAKgiI,oBAAsBhiI,EAAKgiI,oBAAoBxkI,KAAzBkkI,MAAA1hI,KAC3BA,EAAKiiI,uBAAyBjiI,EAAKiiI,uBAAuBzkI,KAA5BkkI,MAAA1hI,KAC9BA,EAAKkiI,yBAA2BliI,EAAKkiI,yBAAyB1kI,KAA9BkkI,MAAA1hI,KAChCA,EAAKmiI,yBAA2BniI,EAAKmiI,yBAAyB3kI,KAA9BkkI,MAAA1hI,KAEhCA,EAAK2hI,IAAMp4F,KAAMwwB,YACjB/5D,EAAK4hI,mBAAqBr4F,KAAMwwB,YAEhC,IAAMqoE,EAAwBpiI,EAAKkiI,2BAlBpB,OAoBfliI,EAAK46H,aAALyH,GAAA,GACOD,EADP,CAEIzzE,SAAS,EACTh4D,aAAc80B,GAAqB6E,cAGnCgqG,IACAt6H,EAAK46H,aAAajsE,QAAU2rE,EAAW3rE,QACvC3uD,EAAK46H,aAAajkI,aAAe2jI,EAAW3jI,cAGhDqJ,EAAK5J,MAAQ4J,EAAK46H,aA/BH56H,qPADYwpC,4DAmC3B7pD,SAASkpB,iBAAiB,QAASnY,KAAK4xI,sEAGlBjtE,GACtB,IAAIv7B,EAAeppC,KAAKigB,MAAMmpB,aAM9B,GAJIhC,IAAEC,QAAQ+B,KACVA,EAAe,KAGfhC,IAAEC,QAAQs9B,EAAUv7B,eAAiBA,EAAa1B,cAAgBi9B,EAAUv7B,aAAa1B,YAI7F,GAAKN,IAAEC,QAAQs9B,EAAUv7B,cAAzB,CAWA,IAAMsoG,EAAwB1xI,KAAKwxI,2BAEnCxxI,KAAK4hD,SAAS,SAACl8C,GAAD,OAAAisI,GAAA,GACPjsI,EADO,CAEVgsI,gCAfJ,CACI,IAAMG,EAAwB7xI,KAAKyxI,yBAAyB9sE,EAAUv7B,cAEtEppC,KAAK4hD,SAAS,SAACl8C,GAAD,OAAAisI,GAAA,GACPjsI,EACAmsI,qDAeX5iJ,SAASqpB,oBAAoB,QAAStY,KAAK4xI,qEAGtB1nG,GAGrB,MAAO,CAAEd,aAFgCc,EAAjCxC,YAE4BR,gBAFKgD,EAApBhD,gBAEgC6yB,UAAU,sDAGxC,IAAA5H,EACanyD,KAAKigB,MAAjCmpB,EADe+oB,EACf/oB,aAAcgvB,EADCjG,EACDiG,UAElB1wB,EAAc3M,GAAqB6E,YACnCsH,EAAkBkxB,EAAUpiD,KAAK,SAACksB,GAAD,MAA8B,OAAjBA,EAAQqF,OAO1D,OALKH,IAAEC,QAAQ+B,KACX1B,EAAc0B,EAAa1B,YAC3BR,EAAkBkC,EAAalC,iBAG5B,CAAEkC,aAAc1B,EAAaR,kBAAiB6yB,UAAW1yB,YAAQ+B,yCAa/D11C,GAAO,IACRw8B,EAAalwB,KAAKigB,MAAlBiQ,SACA/lC,EAAUuJ,EAAM3D,OAAhB5F,MAGR+lC,EAAS,CACLgX,gBAHwBlnC,KAAK0F,MAAzBwhC,gBAIJQ,YAAav9C,IAGjB6V,KAAK4hD,SACD,SAACgvD,GAAD,OAAA+gC,GAAA,GACO/gC,EADP,CAEIxnE,aAAcj/C,yCAKfuJ,GAAO,IACNqrF,EAAW/+E,KAAKigB,MAAhB8+D,OACA73C,EAAoBlnC,KAAK0F,MAAzBwhC,gBACA/8C,EAAUuJ,EAAM3D,OAAhB5F,MACR6V,KAAKgqI,oBAAoB7/I,GAErB40F,GACAA,EAAO,CACH73C,gBAAiBA,EACjBQ,YAAav9C,gDAKLA,GAChB,IAAM4vE,EAAW5vE,IAAU4wC,GAAqB6E,YAChD5/B,KAAK4hD,SAAS,SAACl8C,GAAD,OAAAisI,GAAA,GAAiBjsI,EAAjB,CAAwBq0D,gEAGjBrmE,GAAO,IACpBgU,EAAe1H,KAAKigB,MAApBvY,WAERhU,EAAMkmB,iBACNlmB,EAAMinB,kBAEFjT,GAIJ1H,KAAKkxI,mBAAmBr8I,QAAQlF,UAAUmiJ,OAAO,uEAG5Bp+I,GACrBA,EAAMkmB,iBACNlmB,EAAMinB,kBAED3a,KAAKkxI,mBAAmBr8I,QAAQlF,UAAUC,SAAS,uBAIxDoQ,KAAKkxI,mBAAmBr8I,QAAQlF,UAAUqY,OAAO,kEAGjCtU,GAChBA,EAAMkmB,iBACNlmB,EAAMinB,kBAENjnB,EAAM3D,OAAOJ,UAAUgY,IAAI,2EAGXjU,GAChBA,EAAMkmB,iBACNlmB,EAAMinB,kBAENjnB,EAAM3D,OAAOJ,UAAUqY,OAAO,8EAGXtU,GAInB,GAHAA,EAAMkmB,iBACNlmB,EAAMinB,oBAEFysB,IAAEC,QAAQ3zC,IACV0zC,IAAEC,QAAQ3zC,EAAM8mE,gBAChBpzB,IAAEC,QAAQ3zC,EAAM8mE,cAAclqE,WAFlC,CAMA,IAAMyhJ,EAAiBr+I,EAAM8mE,cAAclqE,SACrC0hJ,EAAsBD,EAAe,GACrCE,EAA6BF,EAAe,GAElD,IAAI3qG,IAAEC,QAAQ2qG,KACV5qG,IAAEC,QAAQ4qG,GADd,CAd0B,IAmBlB/hH,EAAalwB,KAAKigB,MAAlBiQ,SACAkZ,EAAiBppC,KAAK0F,MAAtB0jC,aACAgvB,EAAcp4D,KAAKigB,MAAnBm4C,UAEF85E,EAA2BF,EAAoB7wD,UAAU9vF,OACzD8gJ,EAAkCF,EAA2B9wD,UAAU9vF,OAEvE61C,EAAkBkxB,EAAUpiD,KAAK,SAACksB,GAAD,OAAaA,EAAQh4C,QAAUgoJ,GAClEhwG,EAAQoF,cAAgB6qG,IAC5BnyI,KAAKkxI,mBAAmBr8I,QAAQlF,UAAUqY,OAAO,sBAEjDhI,KAAK4hD,SACD,SAACgvD,GAAD,OAAA+gC,GAAA,GACO/gC,EADP,CAEI1pE,sBAIRhX,EAAS,CACLgX,kBACAQ,YAAa0B,uCAIZ,IAAA75B,EAAAvP,KAAAkiE,EAWDliE,KAAKigB,MATLx2B,EAFCy4E,EAEDz4E,KACAS,EAHCg4E,EAGDh4E,MACAogJ,EAJCpoE,EAIDooE,SACAjB,EALCnnE,EAKDmnE,YACAC,EANCpnE,EAMDonE,WACAlxE,EAPC8J,EAOD9J,UACA1wD,EARCw6D,EAQDx6D,WACAkiI,EATC1nE,EASD0nE,WACAjS,EAVCz1D,EAUDy1D,QAVCjzH,EAa6BklI,GAAc5pI,KAAK0F,MAA7Cu4D,EAbHv5D,EAaGu5D,QAASh4D,EAbZvB,EAaYuB,aAbZqxD,EAc+Ct3D,KAAK0F,MAAjD0jC,EAdHkuB,EAcGluB,aAAc2wB,EAdjBzC,EAciByC,SAAU7yB,EAd3BowB,EAc2BpwB,gBAC1BsiG,EAAiB//I,GAAQo/I,GAAmBM,qBAElD,OACIhxF,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAACu7I,GAAD,CACIvyD,UAAWzuF,EACX4/I,YAAaA,EACbC,WAAYA,EACZC,cAAe,cAEnBpxF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACV+2C,GACGiR,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBACX6+D,IAAKhvD,KAAKixI,IACV34F,QAASt4C,KAAKmxI,0BACdh5F,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,iBAAAlF,OAAoBgzE,EAA4DljC,GAAqB6E,YAAlF,iBAAA30C,OAA4B49I,GAAmBG,YAAkDphI,SAAS,KACvIuwC,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCAAgC1F,IAAKy8C,EAAgB18C,KAAKC,MACzE0tD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,aACXgoD,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,wBAK/B1M,GAAAllD,EAAA/D,cAAA,OACI8/D,IAAK2oE,EACLxnI,UAAS,yBAAAlF,OAA2Bu+I,EAAep2I,cAA1C,WAAAnI,OAAiE8uE,EAAW8uE,GAAmB9uE,SAAWh/B,GAAqB6E,YAA/H,KAAA30C,OAA+IgzE,EAAyCljC,GAAqB6E,YAApDipG,GAAmBG,WACrLruE,oBAAkB,aAClBC,qBAAA,EACA5oE,MAAO,CAAEo7B,QAASk9G,EAAW,OAAS,UAEtCnyF,GAAAllD,EAAA/D,cAAA,SACIiB,UAAU,yCACV9B,KAAK,OACLL,GAAIvE,EACJA,KAAMA,EACNye,SAAUR,EACVwoB,SAAUlwB,KAAKsjE,aACfyb,OAAQ/+E,KAAK6pI,WACb1/I,MAAOi/C,IAEX+O,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,yCAAyC+pE,QAASzwE,GAC9DS,GAEH+zE,EAEM,KAFI9lB,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCACtBgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0B8V,MAIpDkyC,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAKhvD,KAAKkxI,mBACX54F,QAASt4C,KAAKoxI,yBACdjhJ,UAAU,qDACVgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,gBACTioE,EAAUlxD,IAAI,SAACg7B,GACZ,OAAOiW,GAAAllD,EAAA/D,cAAA,MAAIwF,IAAK0yC,IAAEue,WACdx1D,UAAU,oBACViiJ,aAAc7iI,EAAK8hI,oBACnBgB,aAAc9iI,EAAK+hI,oBACnBvyD,OAAQxvE,EAAK+hI,oBACbh5F,QAAS/oC,EAAKgiI,wBACdp5F,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACV+xC,EAAQ13C,MAAQ2tD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCAAiC1F,IAAKy3C,EAAQ13C,KAAKC,OAEvF0tD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,kCAAhB,IAAmD+xC,EAAQh4C,OAC3DiuD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,aAAa+xC,EAAQoF,iNAUrEspG,GAAqBn4F,UAAY,CAC7Bk/E,QAASj/E,KAAUnsD,OACnB9C,KAAMivD,KAAUj5B,OAAOqlC,WACvB56D,MAAOwuD,KAAUj5B,OAAOqlC,WACxBukF,YAAa3wF,KAAUj5B,OACvB6pH,WAAY5wF,KAAUj5B,OACtB2pB,aAAcsP,KAAUnsD,OACxB6rE,UAAW1f,KAAUjjD,MACrBy6B,SAAUwoB,KAAUx3C,KAAK4jD,WACzBi6B,OAAQrmC,KAAUx3C,KAClB0oI,WAAYlxF,KAAUnsD,QAGXqkJ,ihCC9TT0B,eACF,SAAAA,EAAYryH,GAAO,IAAA3Q,qCAAAgjI,4DAAAC,CAAAvyI,MAAA,IAAAmyD,GACf7iD,MAAAkjI,GAAAF,GAAA/oJ,KAAAyW,KAAMigB,+CAANjgB,SAC0CigB,MAAlC2pH,EAFOz3E,EAEPy3E,WAAYxgG,EAFL+oB,EAEK/oB,aAFL,OAIf95B,EAAKu6H,WAAav6H,EAAKu6H,WAAW/8H,KAAhB2lI,MAAAnjI,KAClBA,EAAKg0D,aAAeh0D,EAAKg0D,aAAax2D,KAAlB2lI,MAAAnjI,KACpBA,EAAKy6H,qBAAuBz6H,EAAKy6H,qBAAqBj9H,KAA1B2lI,MAAAnjI,KAC5BA,EAAK06H,oBAAsB16H,EAAK06H,oBAAoBl9H,KAAzB2lI,MAAAnjI,KAE3BA,EAAK46H,aAAe,CAChB9gG,aAAcA,GAAgBrO,GAAqB6E,YACnDm6B,UAAW1yB,YAAQ+B,GACnB60B,SAAS,EACTh4D,aAAc,IAEd2jI,IACAt6H,EAAK46H,aAAajsE,QAAU2rE,EAAW3rE,QACvC3uD,EAAK46H,aAAajkI,aAAe2jI,EAAW3jI,cAEhDqJ,EAAK5J,MAAQ4J,EAAK46H,aAnBH56H,qPADWwpC,kEAuBJ6rB,GAClB3kE,KAAKigB,MAAMmpB,eAAiBu7B,EAAUv7B,cAI1CppC,KAAK4hD,SAAS,SAACl8C,GAAD,OAAAgtI,GAAA,GACPhtI,EADO,CAEV0jC,aAAcu7B,EAAUv7B,cAAgBrO,GAAqB6E,YAC7Dm6B,UAAW1yB,YAAQs9B,EAAUv7B,uDAIxB11C,GAAO,IACRvJ,EAAUuJ,EAAM3D,OAAhB5F,OAER+lC,EADqBlwB,KAAKigB,MAAlBiQ,UACCx8B,GACTsM,KAAK4hD,SACD,SAACgvD,GAAD,OAAA8hC,GAAA,GACO9hC,EADP,CAEIxnE,aAAcj/C,sDAOtB+lC,EADqBlwB,KAAKigB,MAAlBiQ,UACClwB,KAAK0F,0CAGPhS,GAAO,IACNqrF,EAAW/+E,KAAKigB,MAAhB8+D,OACA50F,EAAUuJ,EAAM3D,OAAhB5F,MACR6V,KAAKgqI,oBAAoB7/I,GACrB40F,GACAA,EAAOrrF,+CAIKvJ,GAChB,IAAM4vE,EAAqB,KAAV5vE,EACjB6V,KAAK4hD,SAAS,SAACl8C,GAAD,OAAAgtI,GAAA,GAAiBhtI,EAAjB,CAAwBq0D,gDAGjC,IAAAmI,EAcDliE,KAAKigB,MAZLx2B,EAFCy4E,EAEDz4E,KACA4gJ,EAHCnoE,EAGDmoE,kBACAngJ,EAJCg4E,EAIDh4E,MACAogJ,EALCpoE,EAKDooE,SACAjB,EANCnnE,EAMDmnE,YACAC,EAPCpnE,EAODonE,WACAiB,EARCroE,EAQDqoE,KACAX,EATC1nE,EASD0nE,WACAjS,EAVCz1D,EAUDy1D,QACAjwH,EAXCw6D,EAWDx6D,WACA8iI,EAZCtoE,EAYDsoE,YACAmI,EAbCzwE,EAaDywE,eAbCjuI,EAgB6BklI,GAAc5pI,KAAK0F,MAA7Cu4D,EAhBHv5D,EAgBGu5D,QAASh4D,EAhBZvB,EAgBYuB,aAhBZqxD,EAiB8Bt3D,KAAK0F,MAAhC0jC,EAjBHkuB,EAiBGluB,aAAc2wB,EAjBjBzC,EAiBiByC,SAChByvE,EAAiB//I,GAAQo/I,GAAmBM,qBAElD,OACIhxF,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oBACTm6I,EAuDE,KAtDAnyF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,cACXgoD,GAAAllD,EAAA/D,cAAA,WACIipD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gBACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,SACTk5I,GAEHsJ,GACEx6F,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,WACXgoD,GAAAllD,EAAA/D,cAAC0oE,GAAD,CAAoB3C,IAAK09E,EAAgBxiJ,UAAU,sCAI/DgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,eACXgoD,GAAAllD,EAAA/D,cAAA,YACIipD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCAENk3C,YAAQiiG,GACL,KADmBnxF,GAAAllD,EAAA/D,cAAA,OAAKu4D,wBAAyB,CAAEC,OAAQ4hF,MAIvEnxF,GAAAllD,EAAA/D,cAAA,OACI8/D,IAAK2oE,EACLxnI,UAAS,yBAAAlF,OAA2Bu+I,EAAep2I,cAA1C,WAAAnI,OAAiEs/I,GAAQxvG,GAAqB6E,YAA9F,KAAA30C,OAA6G8uE,EAAW8uE,GAAmB9uE,SAAW,GAAtJ,KAAA9uE,OAA6JgzE,EAAyC,GAA/B4qE,GAAmBG,WACnMruE,oBAAkB,aAClBC,qBAAA,EACA5oE,MAAO,CAAEo7B,QAASk9G,EAAW,OAAS,UAGjCjjG,YAAQmjG,GACyC,KAD1BryF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oBAAmBgoD,GAAAllD,EAAA/D,cAAA,OAAKw7I,WAAUF,EAAaG,WAAS,kBAAkBC,aAAW,QAAOzyF,GAAAllD,EAAA/D,cAAC27I,GAAA,EAAD,CAAiBC,KAAMC,QACtJ5yF,GAAAllD,EAAA/D,cAAC87I,GAAA,EAAD,CAAch9I,GAAG,qBAEzBmqD,GAAAllD,EAAA/D,cAAA,SACIiB,UAAU,oBACV9B,KAAK,OACL48I,aAAcZ,EACdr8I,GAAIvE,EACJA,KAAMA,EACNymC,SAAUlwB,KAAKsjE,aACfyb,OAAQ/+E,KAAK6pI,WACb1/I,MAAOi/C,EACPlhC,SAAUR,IAEdywC,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,oBAAoB+pE,QAASzwE,GACzCS,GAGH+zE,EAEM,KAFI9lB,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCACtBgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BAA0B8V,yMAcxFqsI,GAAoB75F,UAAY,CAC5Bk/E,QAASj/E,KAAUnsD,OACnB9C,KAAMivD,KAAUj5B,OAAOqlC,WACvBulF,kBAAmB3xF,KAAUj5B,OAC7Bv1B,MAAOwuD,KAAUj5B,OAAOqlC,WACxBukF,YAAa3wF,KAAUj5B,OACvB6pH,WAAY5wF,KAAUj5B,OACtB8qH,KAAM7xF,KAAUj5B,OAChB2pB,aAAcsP,KAAUj5B,OACxByQ,SAAUwoB,KAAUx3C,KAAK4jD,WACzBi6B,OAAQrmC,KAAUx3C,KAClB0oI,WAAYlxF,KAAUnsD,OACtBmb,WAAYgxC,KAAUqM,KACtBylF,YAAa9xF,KAAUj5B,OACvBkzH,eAAgBj6F,KAAUnsD,QAGf+lJ,8dC/KTM,eACF,SAAAA,EAAY3yH,GAAO,uCAAA2yH,4DAAAC,CAAA7yI,eAAA8yI,GAAAF,GAAArpJ,KAAAyW,KACTigB,sKADSjgB,iQADa84C,sDAKnB,IACD93C,EAAQhB,KAAKigB,MAAbjf,IAER,IAAIwmC,YAASxmC,KAASwmC,YAASxmC,EAAIolC,OAC/B,OAAO,KAJF,IAMD2sG,EAA+B/xI,EAA/B+xI,gBAAiBhsF,EAAc/lD,EAAd+lD,UACzB,OAAOvf,YAASurG,IAAoBvrG,YAASuf,GACnC,CAAEgsF,gBAAiBA,EAAkBvrF,MAAOT,GAC5C,oCAGL,IAAAoL,EACuDnyD,KAAKigB,MAAzD03G,EADHxlE,EACGwlE,QAASljB,EADZtiD,EACYsiD,SAAUzzG,EADtBmxD,EACsBnxD,IAAKqoI,EAD3Bl3E,EAC2Bk3E,YAAaC,EADxCn3E,EACwCm3E,WACvC0J,EAAaxrG,YAASxmC,IAAQwmC,YAASxmC,EAAIolC,OAC3C6sG,EAAwBD,EAAahzI,KAAKkzI,cAAgB,GAEhE,OACI/6F,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAK2oE,EAASxnI,UAAU,wBACzBgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wCAEP6iJ,GACA76F,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8EAA8E6B,MAAOihJ,GAC/FjyI,EAAIolC,OAGb+R,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8BAA8B6B,MAAO,CAAEi1D,gBAAe,OAAAh8D,OAASwpH,EAAT,UAI7Et8D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCAEXq3C,YAAS6hG,IACTlxF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BAA+Bk5I,GAG9C2J,GACA76F,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+EAA+E6B,MAAOihJ,GAChGjyI,EAAIolC,QAKToB,YAAS8hG,IACTnxF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6Bs3D,wBAAyB,CAAEC,OAAQ4hF,wMAWnHsJ,GAAsBn6F,UAAY,GAGnBm6F,UCvDFO,GAAa,CAEtBzoJ,KAAM,SAAC0oJ,GACH,OAAOj7F,GAAAllD,EAAA/D,cAACmkJ,GAAD,CACH3+I,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzB7pJ,KAAM2pJ,EAAgBl7D,UACtBmyD,kBAAmB+I,EAAgB/I,kBACnCngJ,MAAOkpJ,EAAgBG,WACvBlK,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1BlhG,aAAcgqG,EAAgBhqG,aAC9BmhG,KAAM6I,EAAgBI,UACtBpJ,WAAYgJ,EAAgBhJ,WAC5Bl6G,SAAUkjH,EAAgBK,oBAC1B10D,OAAQq0D,EAAgBK,oBACxB7J,WAAYwJ,EAAgBM,wBAAwBN,EAAgBl7D,WACpExwE,WAAY0rI,EAAgB1rI,WAC5B8iI,YAAa4I,EAAgB5I,eAGrCpqE,aAAc,SAACgzE,GACZ,OAAOj7F,GAAAllD,EAAA/D,cAACmkJ,GAAD,CACF3+I,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzB7pJ,KAAM2pJ,EAAgBl7D,UACtBmyD,kBAAmB+I,EAAgB/I,kBACnCngJ,MAAOkpJ,EAAgBG,WACvBlK,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1BlhG,aAAcgqG,EAAgBhqG,aAC9BmhG,KAAM6I,EAAgBI,UACtBpJ,WAAYgJ,EAAgBhJ,WAC5Bl6G,SAAUkjH,EAAgBK,oBAC1B10D,OAAQq0D,EAAgBO,aACxB/J,WAAYwJ,EAAgBM,wBAAwBN,EAAgBl7D,WACpExwE,WAAY0rI,EAAgB1rI,WAC5B8iI,YAAa4I,EAAgB5I,eAGrCl3F,SAAU,SAAC8/F,GAAD,OAAqBD,GAAU,KAASC,IAClDQ,oBAAqB,SAACR,GAAD,OAAqBD,GAAU,KAASC,IAC7Dh1E,YAAa,SAACg1E,GAEV,OADAA,EAAe,YAAiB,EACzBD,GAAU,KAASC,IAE9Bj1E,SAAU,SAACi1E,GAEP,OADAA,EAAe,YAAiB,EACzBD,GAAU,KAASC,IAE9B90E,gBAAiB,SAAC80E,GAEd,OADAA,EAAe,YAAiB,EACzBD,GAAU,KAASC,IAE9BhtG,MAAO,SAACgtG,GACJ,OAAOj7F,GAAAllD,EAAA/D,cAAC2kJ,GAAD,CACHn/I,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzB7pJ,KAAM2pJ,EAAgBl7D,UACtBhuF,MAAOkpJ,EAAgBG,WACvBlK,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1B5iI,WAAY0rI,EAAgB1rI,WAC5B0hC,aAAcgqG,EAAgBhqG,aAC9BmhG,KAAM6I,EAAgBI,UACtBhlI,QAAS4kI,EAAgBU,aACzBzF,iBAAkB+E,EAAgB/E,iBAClCn+G,SAAUkjH,EAAgBK,oBAC1B10D,OAAQq0D,EAAgBK,oBACxB7J,WAAYwJ,EAAgBM,wBAAwBN,EAAgBl7D,cAG5Ez0C,UAAW,SAAC2vG,GAAD,OAAqBD,GAAU,KAASC,IACnD1vG,SAAU,SAAC0vG,GAAD,OAAqBD,GAAU,KAASC,IAClD9sG,YAAa,SAAC8sG,GACV,OAAOj7F,GAAAllD,EAAA/D,cAAC6kJ,GAAD,CACHr/I,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzB7pJ,KAAM2pJ,EAAgBl7D,UACtBhuF,MAAOkpJ,EAAgBG,WACvBlK,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BhlI,WAAY0rI,EAAgB1rI,WAC5B4iI,SAAU8I,EAAgB9I,SAC1BlhG,aAAcgqG,EAAgBhqG,aAC9BlZ,SAAUkjH,EAAgBK,oBAC1B7J,WAAYwJ,EAAgBM,wBAAwBN,EAAgBl7D,cAG5Ep2C,aAAc,SAACsxG,GAAD,OAAqBD,GAAU,KAASC,IACtDrxG,aAAc,SAACqxG,GAAD,OAAqBD,GAAU,KAASC,IACtDpxG,aAAc,SAACoxG,GAAD,OAAqBD,GAAU,KAASC,IACtDjoG,SAAU,SAACioG,GAAD,OAAqBD,GAAU,KAASC,IAClDrsG,YAAa,SAACqsG,GACV,OAAOj7F,GAAAllD,EAAA/D,cAAC8kJ,GAAD,CACHt/I,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzB7pJ,KAAM2pJ,EAAgBl7D,UACtBmyD,kBAAmB+I,EAAgB/I,kBACnCngJ,MAAOkpJ,EAAgBG,WACvBlK,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BhlI,WAAY0rI,EAAgB1rI,WAC5B4iI,SAAU8I,EAAgB9I,SAC1BlhG,aAAcgqG,EAAgBhqG,aAC9BgvB,UAAWg7E,EAAgBU,aAC3B5jH,SAAUkjH,EAAgBK,oBAC1B10D,OAAQq0D,EAAgBK,oBACxB7J,WAAYwJ,EAAgBM,wBAAwBN,EAAgBl7D,cAE5Ej2C,KAAM,SAACmxG,GAAD,OAAqBD,GAAU,KAASC,IAC9ClxG,QAAS,SAACkxG,GACN,OAAOj7F,GAAAllD,EAAA/D,cAAC2kJ,GAAD,CACHn/I,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzB7pJ,KAAM2pJ,EAAgBl7D,UACtBhuF,MAAOkpJ,EAAgBG,WACvBlK,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BhlI,WAAY0rI,EAAgB1rI,WAC5B4iI,SAAU8I,EAAgB9I,SAC1BlhG,aAAcgqG,EAAgBhqG,aAC9B56B,QAAS4kI,EAAgBU,aACzBzF,iBAAkB+E,EAAgB/E,iBAClCn+G,SAAUkjH,EAAgBK,oBAC1B7J,WAAYwJ,EAAgBM,wBAAwBN,EAAgBl7D,cAG5E/1C,OAAQ,SAACixG,GAAoB,IACjBU,EAAiBV,EAAjBU,aACR,YAAwBzoJ,IAAjByoJ,GAA8BA,EAAarmJ,OAAS,EAAK0qD,GAAAllD,EAAA/D,cAAC2kJ,GAAD,CAC5Dn/I,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzB7pJ,KAAM2pJ,EAAgBl7D,UACtBhuF,MAAOkpJ,EAAgBG,WACvBlK,YAAa+J,EAAgB5G,iBAC7B9kI,WAAY0rI,EAAgB1rI,WAC5B4hI,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1BlhG,aAAcgqG,EAAgBhqG,aAC9B56B,QAAS4kI,EAAgBU,aACzBzF,iBAAkB+E,EAAgB/E,iBAClCn+G,SAAUkjH,EAAgBK,oBAC1B7J,WAAYwJ,EAAgBM,wBAAwBN,EAAgBl7D,aACjD,MAE3BxyE,MAAO,SAAC0tI,GAAoB,IAChBU,EAAiBV,EAAjBU,aACR,YAAwBzoJ,IAAjByoJ,GAA8BA,EAAarmJ,OAAS,EAAK0qD,GAAAllD,EAAA/D,cAAC2kJ,GAAD,CAC5Dn/I,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzB7pJ,KAAM2pJ,EAAgBl7D,UACtBhuF,MAAOkpJ,EAAgBG,WACvBlK,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BhlI,WAAY0rI,EAAgB1rI,WAC5B4iI,SAAU8I,EAAgB9I,SAC1BlhG,aAAcgqG,EAAgBhqG,aAC9B56B,QAAS4kI,EAAgBU,aACzBzF,iBAAkB+E,EAAgB/E,iBAClCn+G,SAAUkjH,EAAgBK,oBAC1B7J,WAAYwJ,EAAgBM,wBAAwBN,EAAgBl7D,aACjD,MAE3BtwC,YAAa,SAACwrG,GACV,OAAOj7F,GAAAllD,EAAA/D,cAAC+kJ,GAAD,CACHv/I,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzB7pJ,KAAM2pJ,EAAgBl7D,UACtBhuF,MAAOkpJ,EAAgBG,WACvBlK,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1BlhG,aAAcgqG,EAAgBhqG,aAC9BlZ,SAAUkjH,EAAgBK,uBAGlCroG,gBAAiB,SAACgoG,GACd,OAAOj7F,GAAAllD,EAAA/D,cAAC+kJ,GAAD,CACHv/I,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzB7pJ,KAAM2pJ,EAAgBl7D,UACtBhuF,MAAOkpJ,EAAgBG,WACvBlK,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1BlhG,aAAcgqG,EAAgBhqG,aAC9BlZ,SAAUkjH,EAAgBK,uBAGlC5xG,eAAgB,SAACuxG,GACb,OAAOj7F,GAAAllD,EAAA/D,cAAC+kJ,GAAD,CACHv/I,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzB7pJ,KAAM2pJ,EAAgBl7D,UACtBhuF,MAAOkpJ,EAAgBG,WACvBlK,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1BlhG,aAAcgqG,EAAgBhqG,aAC9BlZ,SAAUkjH,EAAgBK,uBAGlC9qG,eAAgB,SAACyqG,GACb,OAAOj7F,GAAAllD,EAAA/D,cAACglJ,GAAD,CACHx/I,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzB7pJ,KAAM2pJ,EAAgBl7D,UACtBgqB,YAAakxC,EAAgBe,iBAC7BjqJ,MAAOkpJ,EAAgBG,WACvBlK,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1BlhG,aAAcgqG,EAAgBhqG,aAC9BlZ,SAAUkjH,EAAgBK,oBAC1B10D,OAAQq0D,EAAgBK,oBACxB7J,WAAYwJ,EAAgBM,wBAAwBN,EAAgBl7D,cAE5EtvC,OAAQ,SAACwqG,GACL,OAAOj7F,GAAAllD,EAAA/D,cAACklJ,GAAD,CACH1/I,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzBjK,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1B+E,cAAe+D,EAAgB/D,cAC/BjmG,aAAcgqG,EAAgBhqG,aAC9B3/C,KAAM2pJ,EAAgB3pJ,KACtBymC,SAAUkjH,EAAgBK,oBAC1B7J,WAAYwJ,EAAgBM,wBAAwBN,EAAgBl7D,cAG5Em8D,QAAS,SAACjB,GACN,OAAOj7F,GAAAllD,EAAA/D,cAAColJ,GAAD,CACH5/I,IAAK0+I,EAAgBl7D,UACrB9uC,aAAcgqG,EAAgBhqG,aAC9BigG,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1BsD,eAAgBwF,EAAgBxF,kBAGxClC,cAAe,SAAC0H,GACZ,OAAOj7F,GAAAllD,EAAA/D,cAACqlJ,GAAD,CACH7/I,IAAK0+I,EAAgBl7D,UACrBwzD,cAAe0H,EAAgB1H,cAC/BC,iBAAkByH,EAAgBzH,iBAClCC,iBAAkBwH,EAAgBxH,iBAClClkI,WAAY0rI,EAAgB1rI,WAC5B0hC,aAAcgqG,EAAgBhqG,aAC9BigG,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1Bp6G,SAAUkjH,EAAgBK,uBAGlC9P,cAAe,SAACyP,GACZ,OAAOj7F,GAAAllD,EAAA/D,cAACslJ,GAAD,CACH9/I,IAAK0+I,EAAgBl7D,UACrB+0D,OAAQmG,EAAgBnG,OACxBE,aAAciG,EAAgBjG,aAC9BD,YAAakG,EAAgBlG,YAC7B9jG,aAAcgqG,EAAgBhqG,aAC9BigG,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1B8C,WAAYgG,EAAgBl7D,UAC5BhoD,SAAUkjH,EAAgBK,oBAC1B7J,WAAYwJ,EAAgBM,wBAAwBN,EAAgBl7D,cAG5E0rD,wBAAyB,SAACwP,GAAD,OAAqBD,GAAU,cAAkBC,IAC1E1D,eAAgB,SAAC0D,GACb,OAAOj7F,GAAAllD,EAAA/D,cAACulJ,GAAD,CACH//I,IAAK0+I,EAAgBl7D,UACrB9uC,aAAcgqG,EAAgBhqG,aAC9BigG,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1BoF,eAAgB0D,EAAgB1D,kBAGxC5J,iBAAkB,SAACsN,GACf,OAAOj7F,GAAAllD,EAAA/D,cAACmkJ,GAAD,CACH3+I,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzB7pJ,KAAM2pJ,EAAgBl7D,UACtBhuF,MAAOkpJ,EAAgBG,WACvBlK,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1BlhG,aAAcgqG,EAAgBhqG,aAC9BghG,WAAYgJ,EAAgBhJ,WAC5Bl6G,SAAUkjH,EAAgBK,oBAC1B10D,OAAQq0D,EAAgBK,oBACxB7J,WAAYwJ,EAAgBM,wBAAwBN,EAAgBl7D,cAE5Ew8D,oBAAqB,SAACtB,GAClB,OAAOj7F,GAAAllD,EAAA/D,cAAC+kJ,GAAD,CACHv/I,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzB7pJ,KAAM2pJ,EAAgBl7D,UACtBhuF,MAAOkpJ,EAAgBG,WACvBlK,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1BlhG,aAAcgqG,EAAgBhqG,aAC9BlZ,SAAUkjH,EAAgBK,uBAGlCkB,wBAAyB,SAACvB,GACtB,OAAOj7F,GAAAllD,EAAA/D,cAAC0lJ,GAAD,CACH18D,UAAWk7D,EAAgBl7D,UAC3BmxD,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1Bf,cAAe,eAGvBsL,iBAAkB,SAACzB,GACf,OAAOj7F,GAAAllD,EAAA/D,cAAC0lJ,GAAD,CACH18D,UAAWk7D,EAAgBl7D,UAC3BmxD,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BnD,cAAe,eAGvB7/F,oBAAqB,SAAC0pG,GAAD,OAAqBD,GAAU,OAAWC,IAC/D0B,eAAgB,SAAC1B,GAAD,OAAqBD,GAAU,OAAWC,IAC1D/oG,gBAAiB,SAAC+oG,GAAD,OAAqBD,GAAU,OAAWC,IAC3Dn9D,WAAY,SAACm9D,GAAD,OAAqBD,GAAU,KAASC,IACpD2B,UAAW,SAAC3B,GACR,OAAOj7F,GAAAllD,EAAA/D,cAAC8lJ,GAAD,CACPtgJ,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzB7pJ,KAAM2pJ,EAAgBl7D,UACtBoyD,SAAU8I,EAAgB9I,SAC1Bp6G,SAAUkjH,EAAgBK,oBAC1B7J,WAAYwJ,EAAgBM,wBAAwBN,EAAgBl7D,cAGxE+8D,WAAY,SAAC7B,GACb,OAAOj7F,GAAAllD,EAAA/D,cAACgmJ,GAAD,CACCxgJ,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzB7pJ,KAAM2pJ,EAAgBl7D,UACtBmyD,kBAAmB+I,EAAgB/I,kBACnCngJ,MAAOkpJ,EAAgBG,WACvBlK,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5BpC,SAAU8I,EAAgB9I,SAC1BlhG,aAAcgqG,EAAgBhqG,aAC9BmhG,KAAM6I,EAAgBI,UACtBpJ,WAAYgJ,EAAgBhJ,WAC5Bl6G,SAAUkjH,EAAgBK,oBAC1B10D,OAAQq0D,EAAgBO,aACxB/J,WAAYwJ,EAAgBM,wBAAwBN,EAAgBl7D,WACpExwE,WAAY0rI,EAAgB1rI,WAC5B8iI,YAAa4I,EAAgB5I,YAC7BmI,eAAgBS,EAAgBT,kBAGxCwC,iBAAkB,SAAC/B,GACf,OAAOj7F,GAAAllD,EAAA/D,cAACkmJ,GAAD,CACK1gJ,IAAK0+I,EAAgBl7D,UACrBy/C,QAASyb,EAAgBE,cACzBjK,YAAa+J,EAAgB5G,iBAC7BlD,WAAY8J,EAAgB1G,gBAC5Bj4B,SAAU2+B,EAAgB3+B,SAC1BzzG,IAAKoyI,EAAgBpyI,QCzX5Bq0I,GAA0B,WAA+D,IAA9DC,EAA8D1mJ,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAhD,GAAI2mJ,EAA4C3mJ,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAA9B,GAAI4mJ,EAA0B5mJ,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAP,GAC3F,IAAI44C,YAAS8tG,KAAiB9tG,YAAS+tG,GACnC,OAAOx6G,GAAqB6E,YAFkE,IAK1FpxB,EAAY8mI,EAAZ9mI,QAER,IAAIg5B,YAASh5B,GACT,OAAOusB,GAAqB6E,YAGhC,IAAIsuG,EAAiBuH,YAAsBjnI,ExBtBnB,OwBsBuE+mI,GAE/F,OAAI/tG,YAAS0mG,GACF1mG,YAASguG,GAAoBE,YAAYxH,EAAgBsH,GAAoBtH,GAExFA,EAAiBuH,YAAsBjnI,ExB1Bd,QwB0BmE+mI,GAErF/tG,YAASguG,GAAoBE,YAAYxH,EAAgBsH,GAAoBtH,uZCrBxF,OAkqBeyH,GAlqBK,SAAAjxI,GAoBd,IAnBFmiC,EAmBEniC,EAnBFmiC,SACA+uG,EAkBElxI,EAlBFkxI,eACA9P,EAiBEphI,EAjBFohI,iBACA+P,EAgBEnxI,EAhBFmxI,WACAC,EAeEpxI,EAfFoxI,UAEAxyE,GAaE5+D,EAdFqxI,YAcErxI,EAbF4+D,cACA0yE,EAYEtxI,EAZFsxI,kBACAC,EAWEvxI,EAXFuxI,yBACAC,EAUExxI,EAVFwxI,wBACAC,EASEzxI,EATFyxI,4BACAC,EAQE1xI,EARF0xI,iBACAC,EAOE3xI,EAPF2xI,wBACAC,EAME5xI,EANF4xI,oBACAC,EAKE7xI,EALF6xI,oBACAC,EAIE9xI,EAJF8xI,sBACA7C,EAGEjvI,EAHFivI,aACA8C,EAEE/xI,EAFF+xI,6BACAC,EACEhyI,EADFgyI,WA4oBA,OA1oBA,WACI,GAAIrvG,YAAQR,GACR,OAAO,KAGPQ,YAAQuuG,KACRA,EAAiB,IAIrB,IAAIngJ,EAAQzJ,OAAO4gC,QAAQia,GAAUl3B,OAAO,SAAArM,GAAA,IAAAgW,EAAAq9H,GAAArzI,EAAA,GAAOnZ,GAAPmvB,EAAA,GAAAA,EAAA,WAA2BjuB,MAATlB,QAA0CkB,IAApBlB,EAAMysJ,YAS1F,OAPAnhJ,EAAMU,KAAK,SAAAsjB,EAAAK,GAAkB,IAAd7mB,EAAc0jJ,GAAAl9H,EAAA,MAAPvmB,EAAOyjJ,GAAA78H,EAAA,MAIzB,OAHyB+8H,EAAW5jJ,GACV4jJ,EAAW3jJ,KAKlCuC,EAAMka,OAAO,SAAAsL,GAAA,IAAAC,EAAAy7H,GAAA17H,EAAA,GAAO9wB,GAAP+wB,EAAA,GAAAA,EAAA,gBAA4B7vB,IAAVlB,QAA2CkB,IAApBlB,EAAMysJ,YAC9D1vI,IAAI,SAAAmU,GAAkC,IAAAK,EAAAi7H,GAAAt7H,EAAA,GAAhCy7H,EAAgCp7H,EAAA,GAAnBq7H,EAAmBr7H,EAAA,GAC7Bw8D,EAAY4+D,GDlBC,WAAsB,IAArBA,EAAqBloJ,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAP,GAC9C,IAAI44C,YAASsvG,GACT,OAAO,EAGX,IAAME,EAAeC,YAAoB1Q,GAAeA,GAAcqC,kBAAkBx1I,cAGxF,OAAO0jJ,EAAY1jJ,cAAc6X,SAAS+rI,ICY1BE,CAAoBJ,KACpBA,EAAcA,EAAY5hJ,UAAU,EAAG4hJ,EAAYnmJ,QAAQ,OAG/D,IAAMwmJ,EAAYC,GAA4BN,GAE9C,IAAKK,EACD,OAAO,KAGX,IAAIrD,EAAezsG,YAAQ0vG,EAAcvoI,SAAWuoI,EAAcz+I,QAAUy+I,EAAcvoI,QAsB1F,OApBIuoI,EAAcH,YAAcrQ,GAAcM,cAG1CiN,EAFwBjtG,EAASC,IAAc5E,SACb1zB,SAkB/B2oI,EAQnB,SAAAn7H,EAaGk8D,EAAWo7D,GAAe,IAZzBsD,EAYyB56H,EAZzB46H,UACArD,EAWyBv3H,EAXzBu3H,WACA/G,EAUyBxwH,EAVzBwwH,iBACAE,EASyB1wH,EATzB0wH,gBACApC,EAQyBtuH,EARzBsuH,SACAlhG,EAOyBptB,EAPzBotB,aACA+qG,EAMyBn4H,EANzBm4H,iBACAL,EAKyB93H,EALzB83H,aACApsI,EAIyBsU,EAJzBtU,WAEA+sG,EAEyBz4F,EAFzBy4F,SACAzzG,EACyBgb,EADzBhb,IAEA,GAAI41I,IAAcrQ,GAAcxxD,aAC5B,MAAO,CACHmD,YACAmyD,kBAAmB,QACnBiJ,gBACAC,aACA/G,mBACAE,kBACAhlI,aACA8iI,YAViBxuH,EAHzBwuH,YAcQF,WACAlhG,eACAqqG,oBAAqBuC,EACrBtC,wBAAyB8C,EACzB7C,gBAIR,GAAIiD,IAAcrQ,GAAcE,oBAC5B,MAAO,CACHvuD,YACAmyD,kBAAmB,QACnBiJ,gBACAC,aACA7rI,aACA8kI,mBACAE,kBACApC,UAAU,EACVlhG,eACAqqG,oBAAqBwC,EACrBvC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcC,SAC5B,MAAO,CACHtuD,YACAmyD,kBAAmB,iBACnBiJ,gBACAC,aACA7rI,aACA8kI,mBACAE,kBACApC,WACAlhG,eACAqqG,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcjxD,SAC5B,MAAO,CACH4C,YACAmyD,kBAAmB,gCACnBiJ,gBACAC,aACA/G,mBACAE,kBACApC,WACAlhG,eACAqqG,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAActvD,YAC5B,MAAO,CACHiB,YACAmyD,kBAAmB,mBACnBiJ,gBACAC,aACA/G,mBACAE,kBACApC,WACAlhG,eACAqqG,oBAAqByC,EACrBxC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcG,gBAC5B,MAAO,CACHxuD,YACAmyD,kBAAmB,eACnBiJ,gBACAC,aACA/G,mBACAE,kBACApC,WACAlhG,eACAqqG,oBAAqB0C,EACrBzC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAc1xD,UAC5B,MAAO,CACHqD,YACAmyD,kBAAmB,aACnBiJ,gBACAC,aACA7rI,aACA8kI,mBACAE,kBACApC,WACAlhG,eACAqqG,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAciC,WAC5B,MAAO,CACHtwD,YACAmyD,kBAAmB,aACnBiJ,gBACA5rI,aACA6rI,aACA/G,mBACAE,kBACApC,WACAlhG,eACAqqG,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAc5uD,SAC5B,MAAO,CACHO,YACAmyD,kBAAmB,cACnBiJ,gBACA5rI,aACA6rI,aACA/G,mBACAE,kBACApC,WACAlhG,eACAqqG,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcvxD,aAC5B,MAAO,CACHkD,YACAmyD,kBAAmB,iBACnBiJ,gBACAC,aACA7rI,aACA8kI,mBACAE,kBACApC,WACAlhG,eACAqqG,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAActxD,aAC5B,MAAO,CACHiD,YACAmyD,kBAAmB,iBACnBiJ,gBACAC,aACA7rI,aACA8kI,mBACAE,kBACApC,WACAlhG,eACAqqG,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcK,aAC5B,MAAO,CACH1uD,YACAmyD,kBAAmB,iBACnBiJ,gBACA5rI,aACA6rI,aACA/G,mBACAE,kBACApC,WACAlhG,eACAqqG,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcpxD,KAC5B,MAAO,CACH+C,YACAmyD,kBAAmB,oBACnBiJ,gBACA5rI,aACA6rI,aACA/G,mBACAE,kBACApC,WACAlhG,eACAqqG,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcO,aAC5B8P,IAAcrQ,GAAcQ,iBAC5B6P,IAAcrQ,GAAcS,gBAC5B4P,IAAcrQ,GAAcsB,oBAC5B,MAAO,CACH3vD,YACAo7D,gBACAC,aACA7rI,aACA8kI,mBACAE,kBACApC,WACAlhG,eACAqqG,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAc4B,wBAC5B,MAAO,CACHjwD,YACAw0D,kBACApC,WACAkC,oBAIR,GAAIoK,IAAcrQ,GAAc6B,iBAC5B,MAAO,CACHlwD,YACAw0D,kBACAhlI,aACA8kI,oBAIR,GAAIoK,IAAcrQ,GAAcrxD,SAC5B,MAAO,CACHgD,YACAmyD,kBAAmB,cACnBiJ,gBACAC,aACA/G,mBACA9kI,aACAglI,kBACApC,WACAlhG,eACAoqG,UAAW3K,GAAmBC,WAC9B2K,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcM,YAC5B,MAAO,CACH3uD,YACAmyD,kBAAmB,MACnBiJ,gBACA5rI,aACA6rI,aACA/G,mBACAE,kBACApC,WACAlhG,eACA0qG,eACAL,oBAAqB4C,EACrB3C,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAc3xD,MAC5B,MAAO,CACHsD,YACAo7D,gBACAC,aACA/G,mBACA9kI,aACAglI,kBACApC,WACAlhG,eACA0qG,eACAzF,iBAAkBvnG,IAAcuwG,sBAChC7D,UAAW3K,GAAmBC,WAC9B2K,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcI,YAC5B,MAAO,CACHzuD,YACAo7D,gBACAC,aACA7rI,aACA8kI,mBACAE,kBACApC,WACAlhG,aAAcA,QAAsD,GAAK6C,aAAuB7C,GAChGqqG,oBAAqB2C,EACrB1C,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcnxD,QAC5B,MAAO,CACH8C,YACAo7D,gBACAC,aACA7rI,aACA8kI,mBACAE,kBACApC,WACAlhG,eACA0qG,eACAzF,iBAAkBvnG,IAAcwwG,wBAChC7D,oBAAqB6C,EACrB5C,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAclxD,OAC5B,MAAO,CACH6C,YACAo7D,gBACAC,WAAYsC,EAAW3rJ,MACvBsiJ,mBACAE,kBACAhlI,aACA4iI,WACAlhG,eACA0qG,aAAc+B,EAAWzS,kBACzBiL,iBAAkBvnG,IAAcywG,uBAChC9D,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcoC,MAC5B,MAAO,CACHzwD,YACAo7D,gBACA5rI,aACA6rI,WAAYuC,EAAU5rJ,MACtBsiJ,mBACAE,kBACApC,WACAlhG,eACA0qG,aAAcgC,EAAUzS,gBACxBgL,iBAAkBvnG,IAAc0wG,sBAChC/D,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcU,eAC5B,MAAO,CACH/uD,YACAo7D,gBACAC,aACA7rI,aACA8kI,mBACAE,kBACApC,WACAlhG,eACA+qG,mBACAV,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcW,OAC5B,MAAO,CACHhvD,YACAo7D,gBACA5rI,aACA6rI,aACA/G,mBACAE,kBACApC,WACAlhG,eACAimG,cAAe,CAAE/2I,QAASw7I,EAAc5pJ,MAAOqpJ,GAC/C9pJ,KAAMq9C,IAAc8B,OACpB6qG,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAca,cAE5B,MAAO,CACHlvD,YACAo7D,gBACA9G,mBACA9kI,aACAglI,kBACApC,WACAlhG,eACAsiG,cATsB7kG,EAAlB6kG,cAUJ+H,oBAAqBnwE,EACrBsoE,iBAAkB9kG,IAAcqlG,aAChCR,iBAAkB7kG,IAAcklG,cAIxC,GAAI4K,IAAcrQ,GAAcY,QAE5B,MAAO,CACHjvD,YACAs0D,mBACAE,kBACAhlI,aACA4iI,WACAlhG,eACAkqG,gBACA1F,eATuB/mG,EAAnB+mG,gBAaZ,GAAIgJ,IAAcrQ,GAAckB,cAAe,KACnC9D,EAAkB98F,EAAlB88F,cACR,MAAO,CACHzrD,YACAo7D,gBACAlqG,eACA1hC,aACA8kI,mBACAE,kBACApC,WACA2C,OAAQtJ,EAAcsJ,OACtBE,aAAcxJ,EAAcz5I,MAC5BgjJ,YAAavJ,EAAcuJ,YAC3BuG,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcmB,wBAAyB,KAC7C9D,EAA4B/8F,EAA5B+8F,wBACR,MAAO,CACH1rD,YACAo7D,gBACAlqG,eACA1hC,aACA8kI,mBACAE,kBACApC,WACA2C,OAAQrJ,EAAwBqJ,OAChCE,aAAcvJ,EAAwB15I,MACtCgjJ,YAAatJ,EAAwBsJ,YACrCuG,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcoB,eAAgB,KACpC+H,EAAmB7oG,EAAnB6oG,eACR,MAAO,CAAEx3D,UAAWw3D,EAAe+H,SAAU/H,kBAGjD,GAAIkH,IAAcrQ,GAAcqB,iBAC5B,MAAO,CACH1vD,YACAq7D,aACA/G,mBACAE,kBACApC,WACAlhG,aAAc08F,EACd2N,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAc8B,oBAC5B,MAAO,CACHnwD,YACAo7D,gBACAC,aACA7rI,aACA8kI,mBACAE,kBACApC,WACAlhG,eACAimG,cAAe,CAAE/2I,QAASw7I,EAAc5pJ,MAAOqpJ,GAC/C9pJ,KAAMq9C,IAAc4C,oBACpB+pG,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAc+B,eAC5B,MAAO,CACHpwD,YACAo7D,gBACAC,aACA/G,mBACA9kI,aACAglI,kBACApC,WACAlhG,eACAimG,cAAe,CAAE/2I,QAASw7I,EAAc5pJ,MAAOqpJ,GAC/C9pJ,KAAMq9C,IAAcguG,eACpBrB,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcgC,gBAC5B,MAAO,CACHrwD,YACAo7D,gBACAC,aACA/G,mBACA9kI,aACAglI,kBACApC,WACAlhG,eACAimG,cAAe,CAAE/2I,QAASw7I,EAAc5pJ,MAAOqpJ,GAC/C9pJ,KAAMq9C,IAAcuD,gBACpBopG,oBAAqBuC,EACrBtC,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAckC,QAC5B,MAAO,CACHvwD,YACAo7D,gBACAhJ,WACAmJ,oBAAqB8C,EACrB7C,wBAAyB8C,GAIjC,GAAII,IAAcrQ,GAAcmC,WAAY,KAChCiK,EAAmB9rG,EAAnB8rG,eACR,MAAO,CACHz6D,YACAmyD,kBAAmB,aACnBiJ,gBACAC,aACA/G,mBACAE,kBACAhlI,aACA4iI,WACAlhG,eACAqqG,oBAAqBgD,EACrB/C,wBAAyB8C,EACzB7D,kBAIR,OAAIiE,IAAcrQ,GAAcqC,iBACrB,CACH1wD,YACAo7D,gBACA9G,mBACA9kI,aACAglI,kBACAj4B,WACAzzG,OAID,GA9lByB02I,CAAmB,CACvCd,UAAWG,EAAcH,UACzBrD,WAAYwD,EAAc7sJ,MAC1BsiJ,iBAAkBuK,EAAcvK,iBAChCE,gBAAiBqK,EAAcrK,gBAC/BpC,SAAUyM,EAAczM,SACxBlhG,aAAc2tG,EAAc3tG,aAC5B+qG,iBAAkB4C,EAAc70C,YAChC4xC,eACApsI,WAAYgvI,GAAcK,EAAcrvI,WACxC8iI,YAAauM,EAAcvM,YAC3B/1B,SAAUsiC,EAActiC,SACxBzzG,IAAK+1I,EAAc/1I,KACpBk3E,EAAW09D,EAAe19D,OAIrC,SAAS2+D,EAAWlhJ,GAChB,YAAwBtK,IAAjBsK,EAAKgiJ,QAAwBhiJ,EAAKgiJ,QAAUxiH,OAAOyiH,kBA+kB3DC,ICvqBEC,GAAwB,wBACxBC,GAAsB,sBACtBC,GAAkC,kCAClCC,GAAgC,gCAEhCC,GAAoC,oCACpCC,GAAkC,kCAElCC,GAA4B,4BAG5BC,GAAuB,uBACvBC,GAAqB,qBACrBC,GAA6B,6BAC7BC,GAA2B,2BAC3BC,GAA6B,6BAC7BC,GAA2B,2BAC3BC,GAA2B,2BAE3BC,GAAwB,wBACxBC,GAAsB,sBACtBC,GAAiC,iCACjCC,GAA+B,+BAC/BC,GAA+C,+CAC/CC,GAA6C,6CAC7CC,GAAyC,yCAGzCC,GAA0B,0BAC1BC,GAAwB,wBACxBC,GAAmC,mCACnCC,GAAoC,oCACpCC,GAAkC,kCAGlCC,GAAyB,yBACzBC,GAAuB,uBACvBC,GAAmC,mCACnCC,GAAiC,iCACjCC,GAAkC,kCAElCC,GAAsC,sCACtCC,GAAoC,oCACpCC,GAAyB,yBACzBC,GAAuB,uBACvBC,GAA6B,6BAC7BC,GAA2B,2BAC3BC,GAAmC,mCACnCC,GAAiC,iCACjCC,GAA6B,6BAC7BC,GAA2B,2BAC3BC,GAA4B,4BAC5BC,GAA0B,0BAC1BC,GAA4B,4BAC5BC,GAA0B,0BAC1BC,GAAsC,sCACtCC,GAAwC,wCAGxCC,GAA8B,8BAC9BC,GAA4B,4BAC5BC,GAA8B,8BAC9BC,GAA4B,4BAC5BC,GAAgC,gCAChCC,GAA8B,8BAC9BC,GAAkC,kCAClCC,GAA+B,+BAE/BC,GAAgC,gCAEhCC,GAA0B,0BAC1BC,GAAwB,wBAExBC,GAA0C,0CAE1CC,GAAuC,uCACvCC,GAAqC,qCACrCC,GAA6B,6BAE7BC,GAA6C,2CAC7CC,GAA2C,yCAO3CC,GAA8B,8BAE9BC,GAA2B,2BAC3BC,GAAyB,yBAEzBC,GAAiB,iBACjBC,GAAiB,iBAGjBC,GAAiC,iCACjCC,GAA+B,+BAC/BC,GAAuB,uBACvBC,GAAqB,qBACrBC,GAAgC,gCAEhCC,GAA6B,6BAE7BC,GAAmC,mCACnCC,GAAqC,qCAErCC,GAAsB,sBACtBC,GAAwB,wBAExBC,GAAoC,oCACpCC,GAAsC,sCAItCC,GAAoC,oCACpCC,GAA0C,0CAC1CC,GAAmC,mCACnCC,GAAiC,iCCvHjC5pE,GAAuB,wBAEvB6pE,GAAmC,+CAQnCC,GAA6B,6CAE7BC,GAA8B,4CAI9BC,GAA4C,+CAE5CC,GAA0B,gLAE1BC,GAA6B,sFAE7BC,GAAe,8CCpBrB,SAASC,KACZ,MAAO,CAAErvJ,KAAMsvJ,IAGZ,SAASC,GAAa7vI,GACzB,MAAO,CAAE1f,KAAMsvJ,GAAsB5vI,SCAlC,SAAS8vI,GAA+BnxG,GAC3C,MAAO,CAAEr+C,KAAMsvJ,GAAuCjxG,oBAGnD,SAASoxG,KACZ,MAAO,CAAEzvJ,KAAMsvJ,IAOZ,SAASI,GAAkBC,GAC9B,MAAO,CAAE3vJ,KAAMsvJ,GAA2BK,4BAOvC,SAASC,GAA6BC,GACzC,MAAO,CAAE7vJ,KAAMsvJ,GAAuCO,mCAGnD,SAASC,KACZ,MAAO,CAAE9vJ,KAAMsvJ,IAGZ,SAASS,GAA6BC,GACzC,MAAO,CAAEhwJ,KAAMsvJ,GAAyCU,wCAOrD,SAASC,KACZ,OAAO,SAAUn6I,GAEb,OADAA,EAASu5I,MCzCN/jH,MAAMC,IAAa2kH,+BAAgC,CACtD7jH,OAAQ,MACRC,QAAS,CAAEC,eAAgB,sBAE1Bd,KAAKC,KACLC,MAAMC,KDsCFH,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS25I,MAGb35I,EAAS05I,GAA+B/pI,EAAS/qB,SAEpDixC,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS25I,MACH/vI,KAKf,SAASywI,GAA+BC,GAC3C,OAAO,SAAUt6I,GAEb,OADAA,EAASu5I,MCrDV,SAAuCe,GAC1C,OAAO9kH,MAAM8kH,GACR3kH,KAAKC,KACLC,MAAMC,KDmDAykH,CAA8CD,GAChD3kH,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS25I,MAGb35I,EAAS05I,GAA+B/pI,EAAS/qB,SAEpDixC,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS25I,MACH/vI,KAKf,SAAS4wI,KACZ,OAAO,SAAUx6I,GAEb,OADAA,EAASu5I,MClEN/jH,MAAMC,IAAaglH,iCAAkC,CACxDlkH,OAAQ,MACRC,QAAS,CAAEC,eAAgB,sBAE1Bd,KAAKC,KACLC,MAAMC,KD+DFH,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS25I,MAGb35I,EAAS05I,GAA+B/pI,EAAS/qB,SAEpDixC,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS25I,MACH/vI,KAKf,SAAS8wI,KACZ,OAAO,SAAU16I,GAEb,OADAA,EAASu5I,MC7EN/jH,MAAMC,IAAaklH,iCAAkC,CACxDpkH,OAAQ,MACRC,QAAS,CAAEC,eAAgB,sBAE1Bd,KAAKC,KACLC,MAAMC,KD0EFH,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS25I,MAGb35I,EAAS05I,GAA+B/pI,EAAS/qB,SAEpDixC,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS25I,MACH/vI,KAKf,SAASgxI,GAATr6I,GAKJ,IAJC07D,EAID17D,EAJC07D,aACA9vB,EAGD5rC,EAHC4rC,UACA0uG,EAEDt6I,EAFCs6I,YACAC,EACDv6I,EADCu6I,kBAEA,OAAO,SAAU96I,GAEb,OADAA,EAASu5I,OCpFuBwB,E1TgMjC,SAAmC9+E,EAAc9vB,GACpD,MAAO,CAAE6uG,UAAW/yG,GAA8Bg0B,GAAeg/E,QAAS9uG,GyT5GvB+uG,CAA2Cj/E,EAAc9vB,GCrFzD/V,EDqFqEykH,ECpFjHrlH,MAAMY,EAAa,CACtBG,OAAQ,OACRC,QAAS,CAAEC,eAAgB,oBAC3BtoC,KAAMuD,KAAKE,UAAUmpJ,KAEpBplH,KAAKC,KACLC,MAAMC,MD+EFH,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS85I,GAA6B,CAACqB,MAG3Cn7I,EAlHL,CAAE9V,KAAMsvJ,GAAyCO,gCAkHJ,CAACe,OAE5CjlH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS85I,GAA6B,CAACqB,MACjCvxI,ICjGf,IAAiCmxI,EAAe3kH,GDsGhD,SAASglH,GAAgB/1G,EAAsBy1G,EAAmBD,GACrE,OAAO,SAAU76I,GAEb,OADAA,EAASu5I,MClHV,SAAyBl0G,EAAsBjP,GAClD,OAAOZ,MDkH6GqlH,EClH1F,CACtBtkH,OAAQ,OACRC,QAAS,CAAEC,eAAgB,oBAC3BtoC,KAAMuD,KAAKE,UAAUyzC,KAEpB1P,KAAKC,KACLC,MAAMC,KD4GAykH,CzThIR,SAA0Cl1G,GAG7C,OAFuBA,EAAfF,aAEWkF,KAAgBC,QAcvC,SAAiDjF,GAAsB,IAK/D+C,EAJIjD,EAAeE,EAAfF,WACFR,EAAiBU,EAAqB1C,IAAc8B,QACpDC,EAAyBW,EAAqB1C,IAAc6B,gBASlE,OALI4D,EADA/C,EAAqByrG,WACJ,GAAAhqJ,OAAMq+C,EAAN,KAAAr+C,OAAoBujD,KAAgBgxG,kBAEjCl2G,EAGjB,CACH60B,SAAU30B,EAAqB1C,IAAcq3B,UAC7C42E,UAAWvrG,EAAqB1C,IAAciuG,WAC9CpgE,SAAUnrC,EAAqB1C,IAAc4F,kBAAkB5F,IAAc6tC,UAC7ExmC,KAAM,CACF7E,WAAYiD,EACZnG,MAAOoD,EAAqB1C,IAAcV,OAC1CiG,MAAOD,GAA8B5C,EAAqB1C,IAAcs5B,eACxE38B,UAAW+F,EAAqB1C,IAAcrD,WAC9CC,SAAU8F,EAAqB1C,IAAcpD,UAC7CqC,UAAW,CAAC,CACRoF,SAAU3B,EAAqB1C,IAAcqE,UAC7CjJ,QAASsH,EAAqB1C,IAAc5E,SAC5CC,OAAQqH,EAAqB1C,IAAc3E,QAC3Cz8B,MAAO8jC,EAAqB1C,IAAcphC,OAC1Cpc,MAAM,EACN8hD,iBAAiB,EACjBvJ,gBAAgB,IAEpBkF,YAAaH,GAAe4C,GAC5BxC,6BAA8BmF,GAAgC3C,GAC9Di2G,eAAgBj2G,EAAqB1C,IAAcwJ,WACnDhK,YAAakD,EAAqB1C,IAAcR,aAAekD,EAAqB1C,IAAcR,aAAao5G,cAAgB,KAC/HlmH,OAAQ,CACJiR,2BAA4BjB,EAAqB1C,IAAcklG,cAC/DthG,0BAA2BlB,EAAqB1C,IAAcqlG,cAC9DtkG,2BAA4B2B,EAAqB1C,IAAc88F,yBAC/DnqG,sBAAuB+P,EAAqB1C,IAAc88F,0BAE9DruD,UAAW,CACP5sC,eAAgBvB,IAAEC,QAAQwB,GAA0B9N,GAAqB6E,YAAciJ,EACvFD,OAAQxB,IAAEC,QAAQyB,GAAkB,GAAKA,GAE7C0B,YAAa,CACTm1G,cAAep2G,GAAwBC,EAAqBkD,kBAC5D6oC,UAAW5rC,GAAoBH,EAAqBkD,mBAExDC,SAAUF,GAAgBjD,EAAqBkD,oBA9D5CkzG,CAAwCp2G,GAG/CwF,IAAY2H,oBAAoBnN,GACuB,OAAnDA,EAAqB1C,IAAcmvC,kBAA2E5qF,IAAnDm+C,EAAqB1C,IAAcmvC,YA+D1G,SAA+CzsC,GAAsB,IAS7D+C,EAPAooC,EADIrrC,EAAeE,EAAfF,WAeR,OAZIqrC,EADyD,OAAzDnrC,EAAqB1C,IAAc4F,wBAAuFrhD,IAAzDm+C,EAAqB1C,IAAc4F,kBACzFmzG,KAAaC,kBAEmE,MAAhFt2G,EAAqB1C,IAAc4F,kBAAkB5F,IAAc6tC,UAAoBkrE,KAAaC,kBAAoBt2G,EAAqB1C,IAAc4F,kBAAkB5F,IAAc6tC,UAKtMpoC,EADA/C,EAAqByrG,WACJ,GAAAhqJ,OAAMq+C,EAAN,KAAAr+C,OAAoBujD,KAAgBgxG,kBAEjCl2G,EAGjB,CACH60B,SAAU30B,EAAqB1C,IAAcq3B,UAC7C42E,UAAWvrG,EAAqB1C,IAAciuG,WAC9CpgE,WACAxmC,KAAM,CACF7E,WAAYiD,EACZnG,MAAOoD,EAAqB1C,IAAcV,OAC1CiG,MAAOD,GAA8B5C,EAAqB1C,IAAcs5B,eACxE38B,UAAW+F,EAAqB1C,IAAcrD,WAC9CC,SAAU8F,EAAqB1C,IAAcpD,UAC7CqC,UAAW,CAAC,CACRjE,aAAc0H,EAAqB1C,IAAchF,cACjDC,aAAcyH,EAAqB1C,IAAc/E,cACjDC,aAAcwH,EAAqB1C,IAAc9E,cACjDmJ,SAAU3B,EAAqB1C,IAAcqE,UAC7ClJ,KAAMuH,EAAqB1C,IAAc7E,MACzCC,QAASsH,EAAqB1C,IAAc5E,SAC5CC,OAAQqH,EAAqB1C,IAAc3E,QAC3Cz8B,MAAO8jC,EAAqB1C,IAAcphC,OAC1Cpc,MAAM,EACN8hD,iBAAiB,EACjBvJ,gBAAgB,IAEpBkF,YAAaH,GAAe4C,GAC5BxC,6BAA8BmF,GAAgC3C,GAC9Di2G,eAAgBj2G,EAAqB1C,IAAcwJ,WACnDhK,YAAakD,EAAqB1C,IAAcR,aAAekD,EAAqB1C,IAAcR,aAAao5G,cAAgB,KAC/HlmH,OAAQ,CACJiR,2BAA4BjB,EAAqB1C,IAAcklG,cAC/DthG,0BAA2BlB,EAAqB1C,IAAcqlG,cAC9DtkG,2BAA4B2B,EAAqB1C,IAAc88F,yBAC/DnqG,sBAAuB+P,EAAqB1C,IAAc68F,gBAE9Dn5F,YAAa,CACTm1G,cAAep2G,GAAwBC,GACvC+rC,UAAW5rC,GAAoBH,MAjH5Bu2G,CAAsCv2G,GAuHzD,SAA+CA,GAAsB,IACzDF,EAAeE,EAAfF,WACR,MAAO,CACH60B,SAAU30B,EAAqB1C,IAAcq3B,UAC7ChwB,KAAM,CACF7E,aACAlD,MAAOoD,EAAqB1C,IAAcV,OAC1CiG,MAAO7C,EAAqB1C,IAAcs5B,cAAchtE,cACxDqwC,UAAW+F,EAAqB1C,IAAcrD,WAC9CC,SAAU8F,EAAqB1C,IAAcpD,UAC7CqC,UAAW,CAAC,CACRjE,aAAc0H,EAAqB1C,IAAchF,cACjDC,aAAcyH,EAAqB1C,IAAc/E,cACjDC,aAAcwH,EAAqB1C,IAAc9E,cACjDmJ,SAAU3B,EAAqB1C,IAAcqE,UAC7ClJ,KAAMuH,EAAqB1C,IAAc7E,MACzCC,QAASsH,EAAqB1C,IAAc5E,SAC5CC,OAAQqH,EAAqB1C,IAAc3E,QAC3Cz8B,MAAO8jC,EAAqB1C,IAAcphC,OAC1Cpc,MAAM,EACN8hD,iBAAiB,EACjBvJ,gBAAgB,IAEpBkF,YAAaH,GAAe4C,GAC5BysC,WAAYzsC,EAAqB1C,IAAcmvC,YAC/CjvC,6BAA8BmF,GAAgC3C,GAC9Di2G,eAAgBj2G,EAAqB1C,IAAcwJ,WACnDhK,YAAakD,EAAqB1C,IAAcR,aAAekD,EAAqB1C,IAAcR,aAAao5G,cAAgB,KAC/HlmH,OAAQ,CACJiR,2BAA4BjB,EAAqB1C,IAAcklG,cAC/DthG,0BAA2BlB,EAAqB1C,IAAcqlG,cAC9DtkG,4BAA4B,EAC5BpO,sBAAuB+P,EAAqB1C,IAAc68F,gBAE9Dn5F,YAAa,CACTm1G,cAAep2G,GAAwBC,GACvC+rC,UAAW5rC,GAAoBH,IAEnCmD,SAAUF,GAAgBjD,EAAqBkD,oBA3J5CszG,CAAsCx2G,GAgKrD,SAAiDA,GAAsB,IAI/D+C,EAHIjD,EAAeE,EAAfF,WACFqrC,EAA2D,MAAhDnrC,EAAqB1C,IAAc6tC,UAAoBkrE,KAAaI,gBAAkBz2G,EAAqB1C,IAAc6tC,UAS1I,OALIpoC,EADA/C,EAAqByrG,WACJ,GAAAhqJ,OAAMq+C,EAAN,KAAAr+C,OAAoBujD,KAAgBgxG,kBAEjCl2G,EAGjB,CACH60B,SAAU30B,EAAqB1C,IAAcq3B,UAC7C42E,UAAWvrG,EAAqB1C,IAAciuG,WAC9CpgE,WACAxmC,KAAM,CACF7E,WAAYiD,EACZF,MAAOD,GAA8B5C,EAAqB1C,IAAcs5B,eACxE38B,UAAW+F,EAAqB1C,IAAcrD,WAC9CC,SAAU8F,EAAqB1C,IAAcpD,UAC7C+7G,eAAgBj2G,EAAqB1C,IAAcwJ,WACnDvJ,YAAaH,GAAe4C,GAC5BxC,6BAA8BmF,GAAgC3C,GAC9DhQ,OAAQ,CACJiR,2BAA4BjB,EAAqB1C,IAAcklG,cAC/DthG,0BAA2BlB,EAAqB1C,IAAcqlG,cAC9DtkG,2BAA4B2B,EAAqB1C,IAAc88F,yBAC/DnqG,sBAAuB+P,EAAqB1C,IAAc88F,0BAE9Dp5F,YAAa,CACTm1G,cAAep2G,GAAwBC,GACvC+rC,UAAW5rC,GAAoBH,MA5LpC02G,CAAwC12G,GyTkHJ61G,CAAkD71G,IACpF1P,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS45I,GAAkB,CAACjqI,EAAS7N,gBAHzB,IAORi0E,EAAapmE,EAAbomE,SACR/1E,EAjJT,SAA6B+1E,EAAU8jE,GAC1C,MAAO,CAAE3vJ,KAAMsvJ,GAA6BzjE,WAAU8jE,yBAgJH,CAACiB,IAA/BkB,CAAoBjmE,MAEhClgD,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS45I,GAAkB,CAACuB,MACtBvxI,KAKf,SAASqyI,GAA2BhgF,EAAc4+E,GACrD,OAAO,SAAU76I,GAEb,OADAA,EAASu5I,OCpH0ByB,EDqHe/+E,ECrHJ7lC,EDqHkBykH,ECpH7DrlH,MAAMY,EAAa,CACtBG,OAAQ,OACRC,QAAS,CAAEC,eAAgB,oBAC3BtoC,KAAMuD,KAAKE,UAAU,CAAEqqE,aAAc++E,MAEpCrlH,KAAKC,KACLC,MAAMC,MD+GFH,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASi6I,GAA6B,CAACtqI,EAAS7N,gBAIpD9B,EA7IL,CAAE9V,KAAMsvJ,GAA2C0C,gCA6IN,MAE3CrmH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASi6I,GAA6B,CAACkB,MACjCvxI,IClIf,IAAoCoxI,EAAW5kH,GCrD/C,SAAS+lH,GAAah6G,GACzB,IAAKA,EACD,MAAO,CAAE23B,SAAS,EAAOh4D,aAAck1D,GAAwBC,yBAGnE,GAAoD,kBAAhDpvE,OAAOS,UAAUkB,SAASpE,KAAK+8C,GAC/B,MAAO,CAAE23B,SAAS,GANgB,IAS9B/5B,EAAqBoC,EAArBpC,IAAKD,EAAgBqC,EAAhBrC,MAAOD,EAASsC,EAATtC,KACpB,IAAME,GAAc,IAAPA,IAAgBD,GAAkB,IAATA,IAAkBD,GAAc,IAANA,EAC5D,MAAO,CAAEi6B,SAAS,GAEtB,IAmCkBt3B,EAnCZ45G,EAmBV,SAA0BC,GACtB,IAAM95G,EAAc85G,EAAct8G,IAAMjuB,SAASuqI,EAAct8G,IAAK,IAAM29F,IACpEl7F,EAAgB65G,EAAcv8G,MAAQhuB,SAASuqI,EAAcv8G,MAAO,IAAM49F,IAC1E4e,EAAeD,EAAcx8G,KAAO/tB,SAASuqI,EAAcx8G,KAAM,IAAM69F,IAM7E,OAJyB1sG,OAAOl2B,MAAMynC,IAClCvR,OAAOl2B,MAAM0nC,IACbxR,OAAOl2B,MAAMwhJ,GAGN,KAGJ,CAAE/5G,cAAaC,gBAAe85G,gBAhCjBC,CAAiB,CAAEx8G,MAAKD,QAAOD,SAEnD,OAAKu8G,GAiCa55G,EA7BD45G,EAAY55G,eA8BNw0B,GAAwBI,mBAC3C50B,EAAgBw0B,GAAwBK,kBA9BjC,CAAEyC,SAAS,EAAOh4D,aAAck1D,GAAwBC,yBAiCvE,SAAqBmlF,GAGjB,OAGY/8B,EALUm9B,aAAWJ,EAAYE,aAAcF,EAAY55G,cAAe45G,EAAY75G,aAO9F48E,GADEhqB,EAAQsnD,gBACEznH,cAAgBqqF,EAAUrqF,gBACpCxtC,EAAI2tG,EAAMrgE,WAAauqF,EAAUvqF,YAC/B,GAAY,IAANttC,GAAW2tG,EAAMpgE,UAAYsqF,EAAUtqF,YACjDoqF,IAEGA,EAVSnoD,GAAwBG,gBAG5C,IAAgBkoD,EACNlqB,EACFgqB,EACE33H,EAvCFk1J,CAAYN,GACL,CAAEtiF,SAAS,EAAOh4D,aAAck1D,GAAwBE,qBAG5D,CACH4C,SAAS,GAZF,CAAEA,SAAS,EAAOh4D,aAAck1D,GAAwBC,yBCTvE,SAAS0lF,GAAqB32J,EAAO8b,GACjC,OAAK9b,IAAmB,IAAVA,EAMP,CAAE8zE,SAAS,GALP,CACHA,SAAS,EAAOh4D,yICuBrB,IAAM86I,IAAmBC,GAAAC,GAAA,GAC3Bn6G,IAAcs5B,aAAerC,IADFijF,GAAAC,GAE3Bn6G,IAAcs3B,YAAcF,IAFD8iF,GAAAC,GAG3Bn6G,IAAcq3B,SjQOZ,SAA0B+iF,GAC7B,OAAI75G,GAAQ65G,GACD,CAAEjjF,SAAS,EAAOh4D,aAAck1D,GAAwBQ,mBAG3CR,GAAwBa,gBAC3B7nE,KAAK4L,OAAOmhJ,IAI1B,CAAEjjF,SAAS,GAHP,CAAEA,SAAS,EAAOh4D,aAAck1D,GAAwBc,wBiQjBvC+kF,GAAAC,GAI3Bn6G,IAAcw3B,gBAAkBD,IAJL2iF,GAAAC,GAK3Bn6G,IAAcV,MjQiGZ,SAAuBA,GAC1B,OAAIiB,GAAQjB,IAAUA,IAAU+0B,GAAwBkB,KAC7C,CAAE4B,SAAS,EAAOh4D,aAAck1D,GAAwBmB,mBAG/Dl2B,EAAM15C,eAAeo6C,IAAcq6G,2BAC/B95G,GAAQjB,EAAMU,IAAcq6G,2BACrB,CAAEljF,SAAS,EAAOh4D,aAAck1D,GAAwBmB,mBAIhE,CAAE2B,SAAS,KiQjHU+iF,GAAAC,GAM3Bn6G,IAAcrD,UjQ0IZ,SAA2B/4C,GAC9B,IAAMk0E,EAAsBC,GAAkBn0E,EAAMywE,GAAwB2B,uBAC5E,OAAK8B,EAAoBX,QAKpB,IAAIhqE,OAAO,mDAAoDE,KAAK4L,OAAOrV,SAAhF,EACW,CAAEuzE,SAAS,EAAOh4D,aAAck1D,GAAwBmC,+BALxDsB,IiQnJiBoiF,GAAAC,GAO3Bn6G,IAAcpD,SjQqJZ,SAA0Bh5C,GAC7B,IAAMk0E,EAAsBC,GAAkBn0E,EAAMywE,GAAwB4B,sBAC5E,OAAK6B,EAAoBX,QAKpB,IAAIhqE,OAAO,mDAAoDE,KAAK4L,OAAOrV,SAAhF,EACW,CAAEuzE,SAAS,EAAOh4D,aAAck1D,GAAwBmC,+BALxDsB,IiQ/JiBoiF,GAAAC,GAQ3Bn6G,IAAcR,YAAcg6G,IARDU,GAAAC,GAS3Bn6G,IAAchF,aAAe68B,IATFqiF,GAAAC,GAU3Bn6G,IAAc/E,ajQ0KZ,WACH,MAuGO,CAAEk8B,SAAS,KiQ5RU+iF,GAAAC,GAW3Bn6G,IAAc9E,ajQ6KZ,WACH,MAmGO,CAAEi8B,SAAS,KiQ5RU+iF,GAAAC,GAY3Bn6G,IAAcqE,SAAW2zB,IAZEkiF,GAAAC,GAa3Bn6G,IAAcC,YAAci4B,IAbDgiF,GAAAC,GAc3Bn6G,IAAc7E,KAAOi9B,IAdM8hF,GAAAC,GAe3Bn6G,IAAc5E,QAAUq8B,IAfGyiF,GAAAC,GAgB3Bn6G,IAAc3E,OAASq8B,IAhBIwiF,GAAAC,GAiB3Bn6G,IAAcphC,MAAQ+4D,IAjBKuiF,GAAAC,GAkB3Bn6G,IAAcc,YjQiNZ,WACH,MAwDO,CAAEq2B,SAAS,KiQ5RU+iF,GAAAC,GAmB3Bn6G,IAAcsE,gBjQoNZ,WACH,MAoDO,CAAE6yB,SAAS,KiQ5RU+iF,GAAAC,GAoB3Bn6G,IAAcjF,ejQuNZ,WACH,MAgDO,CAAEo8B,SAAS,KiQ5RU+iF,GAAAC,GAqB3Bn6G,IAAc4tG,oBjQuHZ,WACH,MA+IO,CAAEz2E,SAAS,KiQ5RU+iF,GAAAC,GAsB3Bn6G,IAAc6B,ejQyNZ,SAAgCj+C,GACnC,IAAMk0E,EAAsBC,GAAkBn0E,EAAMywE,GAAwBiC,4BAC5E,OAAKwB,EAAoBX,QAKpB,IAAIhqE,OAAO,mDAAoDE,KAAK4L,OAAOrV,SAAhF,EACW,CAAEuzE,SAAS,EAAOh4D,aAAck1D,GAAwBmC,+BALxDsB,IiQlPiBoiF,GAAAC,GAuB3Bn6G,IAAc8B,OjQoOZ,SAAwBA,GAAU,OAAOu2B,GAAoBv2B,EAAQuyB,GAAwBuB,sBiQ3PpEskF,GAAAC,GAwB3Bn6G,IAAc68F,cD1DZ,SAA+BA,GAClC,OAAOmd,GAAqBnd,EAAexoE,GAAwBM,6BCiCvCulF,GAAAC,GAyB3Bn6G,IAAc88F,wBDvDZ,SAA+CD,GAClD,OAAOmd,GAAqBnd,EAAexoE,GAAwBO,uCC6BvCslF,GAAAC,GA0B3Bn6G,IAAcg/F,iBjQqPZ,SAAkCA,GACrC,IAAMlnE,EAAsBC,GAAkBinE,EAAkB3qE,GAAwBkC,8BACxF,OAAKuB,EAAoBX,QAKpB,IAAIhqE,OAAO,uCAAuCE,KAAK4L,OAAO+lI,SAAnE,EACW,CAAE7nE,SAAS,EAAOh4D,aAAck1D,GAAwBqC,6CALxDoB,IiQlRiBoiF,GAAAC,GA2B3Bn6G,IAAc4C,oBjQiOZ,SAA8Bi2G,GAAiB,OAAOxgF,GAAoBwgF,EAAexkF,GAAwBwB,mCiQ5PxFqkF,GAAAC,GA4B3Bn6G,IAAcguG,ejQiOZ,SAA0BnqG,GAAY,OAAOw0B,GAAoBx0B,EAAUwwB,GAAwByB,8BiQ7P1EokF,GAAAC,GA6B3Bn6G,IAAcuD,gBjQiOZ,SAA2BkrC,GAAa,OAAOpW,GAAoBoW,EAAWpa,GAAwB0B,+BiQ9P7EmkF,GAAAC,GA8B3Bn6G,IAAcmvC,WAAa3W,IA9BA0hF,GAAAC,GA+B3Bn6G,IAAciuG,UAAYv1E,IA/BCwhF,GAAAC,GAgC3Bn6G,IAAcmuG,WAAax1E,IAhCAwhF,mcCTzB,IAAMjL,GAAoB,SAACoL,GAAD,OAAiB,SAAC17I,GAAU,IAErDoyC,EAIAspG,EAJAtpG,QACAruD,EAGA23J,EAHA33J,KACAU,EAEAi3J,EAFAj3J,MAKJ,OAAAk3J,GAAA,GAAU53J,EAFqB,aAD3B23J,EADA/yJ,KAEwCypD,EAAU3tD,KAK7Cm3J,GAAkC,SAACF,EAAaG,GAAd,OAA4B,SAAC77I,GAAU,IAAA87I,EAE9E1pG,EAIAspG,EAJAtpG,QACAruD,EAGA23J,EAHA33J,KACAU,EAEAi3J,EAFAj3J,MAIEs3J,EAAyB,aAF3BL,EADA/yJ,KAGwCypD,EAAU3tD,EAEtD,IAAKk9C,YAAQk6G,GAAY,KACbjX,EAAyBiX,EAAzBjX,SAAUhxE,EAAeioF,EAAfjoF,WAClB,GAAIgxE,EACA,OAAAoX,GAAA,GAAYh8I,EAAZ27I,GAAA,GAAoB53J,EAAOg4J,IAG/B,GAAInoF,GAAcjyB,YAAQo6G,GACtB,OAAAC,GAAA,GAAYh8I,EAAZ27I,GAAA,GAAoB53J,EAAOg4J,IAjB+C,IAqB1E3+H,EAAWpd,EAAXod,OACF6+H,EAAiBZ,GAAoBt3J,GAE3C,OAAAi4J,GAAA,GACOh8I,GADP27I,GAAAG,EAAA,GAEK/3J,EAAOg4J,GAFZJ,GAAAG,EAAA,SAAAE,GAAA,GAIW5+H,EAJXu+H,GAAA,GAKS53J,OAA0B4B,IAAnBs2J,EAA+BA,EAAeF,GAAiB,CAAExjF,SAAS,EAAOh4D,aAAc80B,GAAqB4D,uBALpI6iH,MAuBSI,GAA+B,SAACR,GAAD,OAAiB,SAAC17I,GAAU,IAAAm8I,EAC5D1jF,EAAqBz4D,EAArBy4D,SAAUr7C,EAAWpd,EAAXod,OACVr5B,EAAgB23J,EAAhB33J,KAAMU,EAAUi3J,EAAVj3J,MACd,OAAAu3J,GAAA,GACOh8I,GADP27I,GAAAQ,EAAA,GAEKp4J,EAAOU,GAFZk3J,GAAAQ,EAAA,SAAAH,GAAA,GAIW5+H,EAJX,CAKQs7C,YAAaF,GAAoBC,EAAUh0E,MALnD03J,MAUSC,GAAmC,SAACV,GAAD,OAAiB,SAAC17I,GAAU,IAAAq8I,EAChE5jF,EAAqBz4D,EAArBy4D,SAAUr7C,EAAWpd,EAAXod,OACVr5B,EAAgB23J,EAAhB33J,KAAMU,EAAUi3J,EAAVj3J,MACd,OAAAu3J,GAAA,GACOh8I,GADP27I,GAAAU,EAAA,GAEKt4J,EAAOU,GAFZk3J,GAAAU,EAAA,SAAAL,GAAA,GAIW5+H,EAJX,CAKQw7C,gBAAiBD,GAAwBF,EAAUh0E,MAL3D43J,MAUS3L,GAAmB,SAAC1iJ,GAAD,OAAW,SAACgS,GAAU,IAG9C4gC,EAFIxjB,EAAWpd,EAAXod,OACFk/H,EAAmB1B,GAAa5sJ,GAGtC,GAAIsuJ,EAAiB/jF,QAAS,KAClB/5B,EAAqBxwC,EAArBwwC,IAAKD,EAAgBvwC,EAAhBuwC,MAAOD,EAAStwC,EAATswC,KACd0C,EAAczwB,SAASiuB,EAAK,IAC5ByC,EAAgB1wB,SAASguB,EAAO,IAChCw8G,EAAexqI,SAAS+tB,EAAM,IACpCsC,EAAcq6G,aAAWF,EAAc95G,EAAeD,GAG1D,OAAAg7G,GAAA,GACOh8I,EADP,CAEI4gC,cACAxjB,OAAQ4+H,GAAA,GACD5+H,EADD,CAEFwjB,YAAa07G,QAKZ3L,GAA0B,SAAC3iJ,EAAO4lE,GAAR,OAAuB,SAAC5zD,GAAU,IAC7Dod,EAAWpd,EAAXod,OACFk/H,EAAmBhjF,GAAoBtrE,EAAMg0C,YAAa4xB,GAEhE,OAAAooF,GAAA,GACOh8I,EADP,CAEIqhC,YAAa,CACTW,YAAah0C,EAAMg0C,YACnBR,gBAAiBxzC,EAAMwzC,iBAE3BpkB,OAAQ4+H,GAAA,GACD5+H,EADD,CAEFikB,YAAai7G,QAmBZzL,GAAsB,SAACj3F,GAAD,OAAW,SAAC55C,GAAU,IAAAu8I,EAC/C7kC,IAAc99D,EACZx8B,EAAWpd,EAAXod,OAWR,OATiB4+H,GAAA,GACVh8I,GADO27I,GAAAY,EAAA,GAETn7G,IAAciuG,UAAYz1F,GAFjB+hG,GAAAY,EAAA,SAAAP,GAAA,GAIH5+H,EAJGu+H,GAAA,GAKLv6G,IAAciuG,UAAYv1E,GAAmB49C,MALxC6kC,MAYLxL,GAA+B,SAAC/iJ,EAAOisE,EAAiBuiF,GAAzB,OAA6C,SAACx8I,GAAU,IAAAy8I,EACxFr/H,EAAWpd,EAAXod,OACFk/H,EAAmBviF,GAAmB/rE,EAAMvJ,MAAOw1E,EAAiBuiF,GAE1E,OAAAR,GAAA,GACOh8I,GADP27I,GAAAc,EAAA,GAEKr7G,IAAcmuG,WAAavhJ,EAAMvJ,OAFtCk3J,GAAAc,EAAA,SAAAT,GAAA,GAIW5+H,EAJXu+H,GAAA,GAKSv6G,IAAcmuG,WAAa+M,KALpCG,MAUS7L,GAAsB,SAAC8K,EAAaj/G,GAAd,IAAsBigH,EAAtBxzJ,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAmC,KAAnC,OAA4C,SAAC8W,GAAU,IAAA28I,EAC9E54J,EAAgB23J,EAAhB33J,KAAMU,EAAUi3J,EAAVj3J,MACN24B,EAAWpd,EAAXod,OAKR,OAAA4+H,GAAA,GACOh8I,GADP27I,GAAAgB,EAAA,CAEIjf,kBALsBjhG,EAAO3zB,QAAQmB,OAAO,SAAC/jB,GAAD,OAAOA,EAAE02J,cAAgBn4J,IAMrEk5I,gBALoB77F,YAAS46G,GAAcA,EAAW5zI,QAAQmB,OAAO,SAACkQ,GAAD,OAAOA,EAAEyiI,cAAgBn4J,IAAS,GAMvGg4C,OAAQpH,GAAqB6E,YAC7Bl6B,MAAOq1B,GAAqB6E,aAC3Bn2C,EAAOU,GANZk3J,GAAAgB,EAOKv7G,IAAc7E,KAAOlH,GAAqB6E,aAP/CyhH,GAAAgB,EAQKv7G,IAAchF,aAAe/G,GAAqB6E,aARvDyhH,GAAAgB,EASKv7G,IAAc/E,aAAehH,GAAqB6E,aATvDyhH,GAAAgB,EAUKv7G,IAAc9E,aAAejH,GAAqB6E,aAVvDyhH,GAAAgB,EAWKv7G,IAAcqE,SAAWpQ,GAAqB6E,aAXnDyhH,GAAAgB,EAAA,SAAAX,GAAA,GAaW5+H,EAbXu+H,GAAA,GAcS53J,EAAO80E,GAAgBp0E,MAdhCk4J,MAmBSE,GAA0B,SAACC,EAAsBC,GAAvB,IAAoCL,EAApCxzJ,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAiD,KAAjD,OAA0D,SAAC8W,GAAU,IAAAg9I,EAChG5/H,EAA4Bpd,EAA5Bod,OAAQof,EAAoBx8B,EAApBw8B,QAASC,EAAWz8B,EAAXy8B,OACnBu8B,EAAatyE,IAAIsZ,EAAO,QAASq1B,GAAqB6E,aACtD+iH,EAAmBH,EAAqB17G,IAAc5E,UAAYA,EAClEkhG,EAAoB/7F,YAAQs7G,GAAoB,GAAKF,EAAYj0I,QAAQmB,OAAO,SAAC/jB,GAAD,OAAOA,EAAE02J,cAAgBK,IACzGtf,EAAkBh8F,YAAQs7G,GAAoB,GAAKP,EAAW5zI,QAAQmB,OAAO,SAACkQ,GAAD,OAAOA,EAAEyiI,cAAgBK,IACtGC,EAAkBJ,EAAqB17G,IAAc3E,QACrD0gH,EAAiBL,EAAqB17G,IAAcphC,OACpDo9I,EAAkB1f,EAAkBptH,KAAK,SAACpqB,GAAD,OAAOA,EAAE1B,MAAM+gB,SAAS23I,KACjEG,EAAiB1f,EAAgBrtH,KAAK,SAAC6J,GAAD,OAAOA,EAAE31B,MAAM+gB,SAAS43I,KAC9DG,EAAiB37G,YAAQy7G,GAAmB3gH,EAAS2gH,EAAgB54J,MACrE+4J,EAAgB57G,YAAQ07G,GAAkBrkF,EAAaqkF,EAAe74J,MAE5E,OAAAw3J,GAAA,GACOh8I,GADP27I,GAAAqB,EAAA,CAEItf,oBACAC,mBACCv8F,IAAc5E,QAAUygH,GAJ7BtB,GAAAqB,EAKK57G,IAAc3E,OAAS6gH,GAL5B3B,GAAAqB,EAMK57G,IAAcphC,MAAQu9I,GAN3B5B,GAAAqB,EAOK57G,IAAc7E,KAAOugH,EAAqB17G,IAAc7E,OAP7Do/G,GAAAqB,EAQK57G,IAAchF,aAAe0gH,EAAqB17G,IAAchF,eARrEu/G,GAAAqB,EASK57G,IAAc/E,aAAeygH,EAAqB17G,IAAc/E,eATrEs/G,GAAAqB,EAUK57G,IAAc9E,aAAewgH,EAAqB17G,IAAc9E,eAVrEq/G,GAAAqB,EAWK57G,IAAcqE,SAAWq3G,EAAqB17G,IAAcqE,WAXjEk2G,GAAAqB,EAAA,SAAAhB,GAAA,GAaW5+H,EAbX,CAcQof,QAASq8B,GAAgBokF,GACzB1gH,KAAMi9B,GAAasjF,EAAqB17G,IAAc7E,OACtDH,aAAc68B,GAAqB6jF,EAAqB17G,IAAchF,eACtEC,cAAmCygH,EAAqB17G,IAAc/E,clQoEvE,CAAEk8B,SAAS,IkQnEVj8B,cAAmCwgH,EAAqB17G,IAAc9E,clQmEvE,CAAEi8B,SAAS,IkQlEV9yB,SAAU2zB,GAAiB0jF,EAAqB17G,IAAcqE,cAnBtEu3G,MAgCSQ,GAAuB,SAACr8G,GAAD,OAAc,SAACnhC,GAC/C,IAAMy9I,EAAen3J,OAAOkK,KAAK2wC,GAC3Bu8G,EAAa,GAEnBD,EAAa39I,QAAQ,SAACsxI,GAClBsM,EAAWtM,GAAepxI,EAAMoxI,KAGpC,IAAMkL,EC1QY,SAClBn7G,EACAu8G,GA+BA,SAASC,EAAcvM,GACnB,IAAMwM,EAAYvC,GAAoBjK,GAChCyM,EAAaH,EAAWtM,GAE9B,QAAkBzrJ,IAAdi4J,EACA,OAAO,KAGX,GAAIxM,IAAgBhwG,IAAcw3B,gBAE9B,OAAOglF,EADoBF,EAAWt8G,IAAcq3B,UACfolF,GAGzC,GAAIzM,IAAgBhwG,IAAcs3B,YAE9B,OAAOklF,EADoBF,EAAWt8G,IAAcq3B,UACfolF,GAGzC,GAAIzM,IAAgBhwG,IAAc3E,OAAQ,CACtC,IAAMqhH,EAAsBJ,EAAWt8G,IAAc5E,SAGrD,OnQ8CL,SAAgC8gH,EAAgBQ,EAAqBrhH,GACxE,IAAMihG,EmQhDqBv8F,EAAX1E,OnQgDiB3zB,QAAQmB,OACrC,SAAC0vD,GAAD,OAAOA,EAAEijF,cAAgBkB,IAI7B,OAFoBpgB,GAAqBA,EAAkB31I,OAAS,EAGzD+wE,GAAewkF,GAGnB,CAAE/kF,SAAS,GmQxDHwlF,CAFgBL,EAAWt8G,IAAc3E,QAEFqhH,GAGlD,GAAI1M,IAAgBhwG,IAAcphC,MAAO,CACrC,IAAM89I,EAAsBJ,EAAWt8G,IAAc5E,SAGrD,OnQoDL,SAA+B+gH,EAAeO,GAAwC,IAAnBpB,EAAmBxzJ,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAN,KAC7Ey0I,EAAkB77F,YAAS46G,GAC7BA,EAAW5zI,QAAQmB,OACf,SAACkQ,GAAD,OAAOA,EAAEyiI,cAAgBkB,IAE7B,GAGJ,OAFkBngB,GAAmBA,EAAgB51I,OAAS,EAGnDgxE,GAAcwkF,GAGlB,CAAEhlF,SAAS,GmQhEHylF,CAFeN,EAAWt8G,IAAcphC,OAEH89I,EADzBp3J,IAAIy6C,EAAU,QAAS,OAI9C,GAAIiwG,IAAgBhwG,IAAcC,YAAa,KACnCA,EAAgBF,EAAhBE,YACR,OACWu8G,EADPC,EACiBA,EAAW77G,YAEf67G,EAF4Bx8G,EAAYuyB,YAK7D,OAAIw9E,IAAgBhwG,IAAcmuG,WAEvBqO,EADsBF,EAAWt8G,IAAcmuG,YACfpuG,EAAS84B,gBAAiB94B,EAAS88G,2BAGvEL,EAAUC,GAGrB,OA5EUzgI,EAAS,GACM92B,OAAOkK,KAAK2wC,GAEpBrhC,QAAQ,SAACsxI,GACdzvG,YAAQR,EAASiwG,MAChBjwG,EAASiwG,GAAaxM,UAAazjG,EAASiwG,GAAax9E,aAC1Dx2C,EAAOg0H,GAAeuM,EAAcvM,IAGpCjwG,EAASiwG,GAAax9E,aAAejyB,YAAQ+7G,EAAWtM,MACxDh0H,EAAOg0H,GAAeuM,EAAcvM,OAIrC,CAAEh0H,SAAQwgH,cAGrB,SAAmBxgH,GAEf,OADkB92B,OAAOkK,KAAK4sB,GACbptB,KAAK,SAAChB,GACnB,OAAoB,OAAhBouB,EAAOpuB,SAAiCrJ,IAAhBy3B,EAAOpuB,KAI3BouB,EAAOpuB,GAAKupE,UAVQhqB,CAAUnxB,IAf9C,IACUA,EDqQe8gI,CAAc/8G,EAAUu8G,GAEjD,OAAA1B,GAAA,GACOh8I,EADP,CAEIod,OAAQk/H,EAAiBl/H,OACzBwgH,cAAe0e,EAAiB1e,kBAI3BugB,GAAmB,SAACh9G,GAAD,OAAc,SAACnhC,GAC3C,IAAMy9I,EAAen3J,OAAOkK,KAAK2wC,GACzB1E,EAAoB0E,EAApB1E,OAAQD,EAAY2E,EAAZ3E,QACVkgH,EAAah2J,IAAIy6C,EAAU,QAAS,MAIpCi9G,EAAepC,GAAA,GACdh8I,EADW,CAEd09H,kBALsBjhG,EAAO3zB,QAAQmB,OAAO,SAAC/jB,GAAD,OAAOA,EAAE02J,cAAgBpgH,EAAQkH,eAM7Ei6F,gBALoB77F,YAAS46G,GAAcA,EAAW5zI,QAAQmB,OAAO,SAACkQ,GAAD,OAAOA,EAAEyiI,cAAgBpgH,EAAQkH,eAAgB,GAMtHk6F,eAAe,IAWnB,GARA6f,EAAa39I,QAAQ,SAACsxI,GACdiN,YAAYl9G,EAASiwG,IACrBgN,EAAahN,GAAejwG,EAASiwG,GAAa1tG,aAElD06G,EAAahN,GAAejwG,EAASiwG,MAIxCzvG,YAAQR,EAASC,IAAc4kG,gBAAiB,CACjD,IAAMsY,EAA4Bn9G,EAASC,IAAc4kG,eAAetiG,aACxE06G,EAAah9G,IAAcklG,cAAgBgY,EAA0Bl9G,IAAcklG,cACnF8X,EAAah9G,IAAcqlG,cAAgB6X,EAA0Bl9G,IAAcqlG,cAGvF,OAAO2X,IAGEG,GAA0B,SAACC,EAAiB/hH,GAAlB,OAA6B,SAACz8B,GACjE,GAAI8hC,YAAS08G,IAAoB18G,YAASrF,GAAS,CAC/C,IAAMihG,EAAoB57F,YAASrF,EAAO3zB,SAAW2zB,EAAO3zB,QAAQmB,OAAO,SAAC/jB,GAAD,OAAOA,EAAE02J,cAAgB4B,IAAmB,GAEvH,OAAK18G,YAAS47F,GAEdse,GAAA,GACOh8I,EADP,CAEI09H,sBAJqCse,GAAA,GAAKh8I,MASzCy+I,GAAwB,SAACD,EAAiB9B,GAAlB,OAAiC,SAAC18I,GACnE,GAAI8hC,YAAS08G,IAAoB18G,YAAS46G,GAAa,CACnD,IAAM/e,EAAkB77F,YAAS46G,EAAW5zI,SAAW4zI,EAAW5zI,QAAQmB,OAAO,SAACkQ,GAAD,OAAOA,EAAEyiI,cAAgB4B,IAAmB,GAE7H,OAAK18G,YAAS67F,GAEdqe,GAAA,GACOh8I,EADP,CAEI29H,oBAJmCqe,GAAA,GAAKh8I,MA4CvC0+I,GAA0B,SAAC73G,GAAD,OAAuB,SAAC7mC,GAC3D,OAAAg8I,GAAA,GACOh8I,EADP,CAEI6mC,wBAKK83G,GAAiB,SAACx9G,GAAD,OAAc,SAACnhC,GACzC,OAAAg8I,GAAA,GACOh8I,EADP,CAEImhC,eAWKy9G,GAAoB,SAACnhB,GAAD,OAAc,SAACz9H,GAC5C,OAAAg8I,GAAA,GACOh8I,EADP,CAEIy9H,WACAG,eAAe,MAkBVihB,GAAwB,SAAC7e,GAAD,OAAkB,SAAChgI,GACpD,OAAAg8I,GAAA,GACOh8I,EADP,CAEIggI,eACApC,eAAe,MAWVkhB,GAA2B,SAACrgB,EAAWsgB,GAAZ,OAAiC,SAAC/+I,GACtE,OAAAg8I,GAAA,GACOh8I,EADP,CAEIy+H,YACAsgB,uBAmCKC,GAAY,SAAChwJ,GAAD,OAAS,SAACgR,GAC/B,OAAAg8I,GAAA,GACOh8I,EADP27I,GAAA,GAEK3sJ,GAAOgR,EAAMhR,OAITiwJ,GAAe,SAACtf,GAAD,OAAoB,SAAC3/H,GAAD,OAAAg8I,GAAA,GACzCh8I,EADyC,CAE5C2/H,qBEheSuf,GAAoB,SAAC/9G,GAG9B,OAFqB76C,OAAOkK,KAAK2wC,GAEblyC,OAAO,SAACugB,EAAK/qB,GAE7B,OADA+qB,EAAI/qB,GAAS0uD,KAAMwwB,YACZn0D,GACR,KAGM2vI,GAAuB,SAAC/hI,EAAQ8yH,GACzC,IAAIvuG,YAAQvkB,GAAZ,CAIA,IASIgiI,EAAoBlP,EATN5pJ,OAAOkK,KAAK4sB,GACF9M,KAAK,SAACloB,GAC9B,OAAwB,OAApBg1B,EAAOh1B,SAAyCzC,IAApBy3B,EAAOh1B,KAI/Bg1B,EAAOh1B,GAASmwE,WAKxB52B,YAAQy9G,EAAkBjwJ,WAC1BiwJ,EAAoB94J,OAAO+kB,OAAO6kI,GAAgB5/H,KAAK,SAACs9H,GAAD,OAA6C,OAA1BA,EAAcz+I,WAG5FkwJ,GAAcD,KAGLC,GAAgB,SAAC/sE,GACtBA,GAASA,EAAMnjF,UACUmjF,EAAMnjF,QAAQmwJ,QAAUhtE,EAAMnjF,QAAQmwJ,QAAUhtE,EAAMnjF,SAC9DowJ,eAAe,CAC5BC,SAAU,SACVl3C,MAAO,WCxCNwoC,GAAwB,SAACt+D,EAAWp1D,GAC7C,OAAKA,QAIwBz3B,IAAtBy3B,EAAOo1D,GAA2Bp1D,EAAOo1D,GAHrC,CAAEja,SAAS,ICiBXknF,GAhBf,SAAAzgJ,GAA0E,IAA7C0gJ,EAA6C1gJ,EAA7C0gJ,cAAeC,EAA8B3gJ,EAA9B2gJ,WAAYC,EAAkB5gJ,EAAlB4gJ,eACpD,OAAKD,GAAch+G,YAAQi+G,GAChB,KAIPntG,GAAAllD,EAAA/D,cAAA,SAAIk2J,EAAJ,IACIjtG,GAAAllD,EAAA/D,cAAA,KACIiB,UAAU,OACVmoD,QAAS+sG,GACRC,KCTjB,SAASC,GAAT7gJ,GAWG,IAVC8gJ,EAUD9gJ,EAVC8gJ,gBACAC,EASD/gJ,EATC+gJ,sBACApc,EAQD3kI,EARC2kI,YACAqc,EAODhhJ,EAPCghJ,eACAN,EAMD1gJ,EANC0gJ,cACAE,EAKD5gJ,EALC4gJ,eACAK,EAIDjhJ,EAJCihJ,oBACAC,EAGDlhJ,EAHCkhJ,qBACAC,EAEDnhJ,EAFCmhJ,gBACAC,EACDphJ,EADCohJ,4BAWA,OACI3tG,GAAAllD,EAAA/D,cAAA,OAAKiB,UARA01J,EAIE,GAHI,wDAQP1tG,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,SAASk5I,GACtBqc,EAAiBvtG,GAAAllD,EAAA/D,cAAA,SAAIw2J,GAAsB,KAC5CvtG,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,SACXgoD,GAAAllD,EAAA/D,cAAC62J,GAAD,CAAmBX,cAAeA,EAAeC,WAAYG,EAAiBF,eAAgBA,IAC7FQ,EACG3tG,GAAAllD,EAAA/D,cAAC62J,GAAD,CAAmBX,cAAeO,EAAqBN,WAAYI,EAAuBH,eAAgBM,IACxG,OAOtBL,GAAc9sG,UAAY,CACtB4wF,YAAa3wF,KAAUj5B,OAAOqlC,WAC9B4gG,eAAgBhtG,KAAUj5B,OAC1B+lI,gBAAiB9sG,KAAUx3C,KAC3BukJ,sBAAuB/sG,KAAUx3C,KACjCkkJ,cAAe1sG,KAAUj5B,OACzB6lI,eAAgB5sG,KAAUj5B,OAC1BkmI,oBAAqBjtG,KAAUj5B,OAC/BmmI,qBAAsBltG,KAAUj5B,OAChComI,gBAAiBntG,KAAUqM,KAC3B+gG,4BAA6BptG,KAAUqM,MAG5BwgG,UChDf,SAASS,GAATthJ,GAQG,IAPCs0E,EAODt0E,EAPCs0E,SACAsxD,EAMD5lI,EANC4lI,SACAkb,EAKD9gJ,EALC8gJ,gBACAS,EAIDvhJ,EAJCuhJ,iBACAC,EAGDxhJ,EAHCwhJ,eACAC,EAEDzhJ,EAFCyhJ,gBAEDC,EAAA1hJ,EADC2hJ,gBACD,IAAAD,KAYOE,EAActzG,YAAkBmzG,KAAqBA,EACrC,oCACA,4DAEtB,OACIhuG,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gBACX6B,MAAO,CAAEo7B,QAASk9G,EAAW,OAAS,SACtCnyF,GAAAllD,EAAA/D,cAAA,UACIiB,UAAWm2J,EACXj4J,KAAMg4J,EAAW,SAAW,SAC5Br4J,GAAG,kBACHu6D,uBAAqB,gBACrBjQ,QAAS0gC,GAET7gC,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uCACZgoD,GAAAllD,EAAA/D,cAAA,YAAO+2J,GACP9tG,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,2BACV0B,MAAM,KACN8gC,OAAO,KACPiyB,UAAU,SAEVzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,0BAhC1B2gG,GACDn+G,YAAQ6+G,GACD,KAEH/tG,GAAAllD,EAAA/D,cAAA,KAAGlB,GAAG,oBAAoBmC,UAAU,0BAA0BmoD,QAASktG,GAE1EU,IAmCbF,GAAcvtG,UAAY,CACtBwtG,iBAAkBvtG,KAAUj5B,OAAOqlC,WACnCk0B,SAAUtgC,KAAUx3C,KAAK4jD,WACzBwlF,SAAU5xF,KAAUqM,KACpBygG,gBAAiB9sG,KAAUx3C,KAC3BglJ,eAAgBxtG,KAAUj5B,QAGfumI,sBCxCAO,GAAA,kMApBP3pE,KAAI9nF,KAAK,eAAgB,UAAW,uEAIpC8nF,KAAI9nF,KAAK,YAAa,UAAW,4EAIjC8nF,KAAI9nF,KAAK,YAAa,QAAS,8DAGZ0xJ,GACnB5pE,KAAI9nF,KAAK,gBAAiB,UAAW0xJ,uDAGbA,GACxB5pE,KAAI9nF,KAAK,gBAAiB,QAAS0xJ,kMClB9BC,GAAiB,CAC1BC,UAAW,aACXC,qBAAoB,UAAA17J,OAAYq4G,KAAWsjD,MAC3CC,6BAA4B,UAAA57J,OAAYq4G,KAAW6O,cACnD20C,6BAA4B,UAAA77J,OAAYq4G,KAAW4O,cACnD60C,8BAA6B,UAAA97J,OAAYq4G,KAAW0jD,eACpDC,sBAAqB,UAAAh8J,OAAYq4G,KAAW4jD,OAC5CC,qBAAoB,UAAAl8J,OAAYq4G,KAAW8jD,MAC3CC,sBAAqB,UAAAp8J,OAAYq4G,KAAWgkD,QCEnCC,GAAgC,WAAoD,IAAnDz5J,EAAmDc,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAzC,KAAM4qG,EAAmC5qG,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAzB,GAAI44J,EAAqB54J,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,IAAAA,UAAA,GAC7F,GAAI44C,YAASgyD,KAAYxmD,YAAkBllD,GAA3C,CAIA,IAAM25J,EAb4B,WAAoB,IAAnB35J,EAAmBc,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAT,KAC7C,OAAGokD,YAAkBllD,KAAaktF,KAAW0sE,cAAc55J,GAChD,KAGJktF,KAAW2sE,UAAU75J,EAArB,IAAA7C,OAAkCw7J,GAAeC,UAAjD,MAQckB,CAAuB95J,GAEzCklD,YAAkBy0G,IAIrBjuD,EAAQh0F,QAAQ,SAAAqiJ,GACZvoB,YAAemoB,EAAcI,EAAUL,OClBlCM,GAAqC,WAAgB,IAAf7nI,EAAerxB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAP,GACjDm5J,EAAgB,qDAEtB,IAAKvgH,YAASvnB,GACV,OAAO8nI,EAGX,IAAMlhH,EAAWmhH,GAAsB/nI,GAEvC,IAAKunB,YAASX,GACV,OAAOkhH,EAVmD,IAatDE,EAAoBphH,EAApBohH,gBAER,SAAAh9J,OAAU88J,EAAV,KAAA98J,OAA2Bu8C,YAASygH,GAAmB,uBAAyB,KAGvEC,GAAoC,WAAgB,IAAfjoI,EAAerxB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAP,GAGtD,IAAK44C,YAASvnB,GACV,MAHkB,6BAMtB,IAAM4mB,EAAWmhH,GAAsB/nI,GAEjCgoI,EAAkBvS,YAAY7uG,EAAU,mBACxCshH,EAAiBzS,YAAY7uG,EAAU,kBAE7C,SAAA57C,OAXsB,6BAWtB,KAAAA,OAA2Bu8C,YAASygH,GAAmB,0CAA4C,GAAnG,KAAAh9J,OAAyGu8C,YAAS2gH,GAAkB,yCAA2C,KAGtKC,GAAkC,WAAqD,IAApD9U,EAAoD1kJ,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAApC,KAAMqxB,EAA8BrxB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAtB,GAAI+lF,EAAkB/lF,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,IAAN,EAC1F,IAAK44C,YAASvnB,IAAU+yB,YAAkBsgG,IAAkBtgG,YAAkBsgG,EAAcz+I,SACxF,OAAO,EAFqF,IAAAwzJ,EAK1DC,GAAsBroI,EAAO00D,GAA3D4zE,EALwFF,EAKxFE,WAAYC,EAL4EH,EAK5EG,cAEpB,SAAKhhH,YAAS+gH,KAAgB/gH,YAASghH,KAIvCjB,GAA8BjU,EAAcz+I,QAAS0zJ,GAAY,GACjEhB,GAA8BjU,EAAcz+I,QAAS2zJ,GAAe,GAE7D,KAGLF,GAAwB,WAA+B,IAA9BroI,EAA8BrxB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAtB,GAAI+lF,EAAkB/lF,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,IAAN,EAC7Ci4C,EAAWmhH,GAAsB/nI,GAEvC,IAAKunB,YAASX,GACV,MAAO,GAGX,IAAMohH,EAAkBvS,YAAY7uG,EAAU,mBAPW4hH,EAQrBC,GAA6B/zE,GAA3D4zE,EARmDE,EAQnDF,WAAYC,EARuCC,EAQvCD,cASlB,OAPIhhH,YAASygH,IACTM,EAAWzzJ,KAAK2xJ,GAAeE,sBAC/B4B,EAAWzzJ,KAAK2xJ,GAAeY,wBAE/BmB,EAAgBG,GAAaH,EAAeI,GAAoBj0E,EAAUszE,IAGvE,CACHM,aACAC,kBAIFE,GAA+B,WACjC,OADoD95J,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,IAAN,GAE1C,KAAKixJ,KAAaI,gBAClB,KAAKJ,KAAagJ,gBAClB,KAAKhJ,KAAaC,kBACd,MAAO,CACHyI,WAAY,CACR9B,GAAeK,6BACfL,GAAeU,sBAEnBqB,cAAe,IAEvB,KAAK3I,KAAaiJ,mCAClB,KAAKjJ,KAAakJ,qCAClB,KAAKlJ,KAAamJ,0BACd,MAAO,CACHT,WAAY,GACZC,cAAe,CACX/B,GAAeU,uBAE3B,KAAKtH,KAAaoJ,OAClB,KAAKpJ,KAAaqJ,iBACd,MAAO,CACHX,WAAY,CACR9B,GAAeK,6BACfL,GAAeU,sBAEnBqB,cAAe,CACX/B,GAAeE,qBACfF,GAAeY,wBAG3B,QACI,MAAO,CACHkB,WAAY,GACZC,cAAe,MAKzBI,GAAsB,WAAyC,IAAxCj0E,EAAwC/lF,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,IAA5B,EAAGq5J,EAAyBr5J,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAP,GAC1D,OAAQ+lF,GACJ,KAAKkrE,KAAaI,gBAClB,KAAKJ,KAAagJ,gBAClB,KAAKhJ,KAAaC,kBAClB,KAAKD,KAAasJ,mBAClB,KAAKtJ,KAAauJ,mBACd,OAAI5hH,YAASygH,GACF,CACHxB,GAAeK,8BAIhB,CACHL,GAAeY,uBAEvB,KAAKxH,KAAaiJ,mCAClB,KAAKjJ,KAAakJ,qCAClB,KAAKlJ,KAAamJ,0BAClB,KAAKnJ,KAAawJ,kBACd,MAAO,CACH5C,GAAeU,sBAEvB,QACI,MAAO,KAIbwB,GAAe,WAA8C,IAA7CW,EAA6C16J,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAA5B,GAAI26J,EAAwB36J,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAP,GAClD46J,EAAeF,EAQrB,OANAC,EAAe/jJ,QAAQ,SAACqiJ,GACf2B,EAAav+I,SAAS48I,IACvB2B,EAAa10J,KAAK+yJ,KAInB2B,GAGLxB,GAAwB,WAAgB,IAAf/nI,EAAerxB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAP,GAC/Bi4C,EAAW,GAEf,OAAKW,YAASvnB,IAIU,CACpBA,EAAMysB,iBACNzsB,EAAM4mB,SACN5mB,EAAMwpI,gBAGMrqF,MAAM,SAACsqF,GACnB,OAAIliH,YAASkiH,KACT7iH,EAAW6iH,GACJ,KAMR7iH,GAlBIA,ooCCtIT8iH,eACF,SAAAA,EAAY1pI,GAAO,IAAA3Q,qCAAAq6I,4DAAAC,CAAA5pJ,MAAA,IAAAmyD,GACf7iD,MAAAu6I,GAAAF,GAAApgK,KAAAyW,KAAMigB,+CAANjgB,SAE6CigB,MAArCysB,EAHOylB,EAGPzlB,iBAAkB4D,EAHX6hB,EAGW7hB,UAHX,OAIfhhC,EAAK5J,MAALokJ,GAAA,GACO5f,GAAahH,yBADpB,CAEIx2F,mBACA4D,YACAy5G,uBAAuB,IAG3Bz6I,EAAK06I,eAAiBnxG,KAAMwwB,YAC5B/5D,EAAKgkI,cAAgBz6F,KAAMwwB,YAC3B/5D,EAAKsmI,eAAiBqU,GAAoCv9G,GAE1Dp9B,EAAK46I,2BAA6B56I,EAAK46I,2BAA2Bp9I,KAAhCq9I,MAAA76I,KAClCA,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjBq9I,MAAA76I,KACnBA,EAAK+6I,aAAe/6I,EAAK+6I,aAAav9I,KAAlBq9I,MAAA76I,KACpBA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlBq9I,MAAA76I,KACpBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5Bq9I,MAAA76I,KAC9BA,EAAKi7I,mBAAqBj7I,EAAKi7I,mBAAmBz9I,KAAxBq9I,MAAA76I,KAC1BA,EAAKk7I,mBAAqBl7I,EAAKk7I,mBAAmB19I,KAAxBq9I,MAAA76I,KAC1BA,EAAKm7I,0BAA4Bn7I,EAAKm7I,0BAA0B39I,KAA/Bq9I,MAAA76I,KACjCA,EAAKo7I,UAAYp7I,EAAKo7I,UAAU59I,KAAfq9I,MAAA76I,KAEjBA,EAAK+6I,eAzBU/6I,2PADWwpC,2DA6Bf,IAAAopB,EACwCliE,KAAKigB,MAAhDysB,EADGw1B,EACHx1B,iBAAkBi+G,EADfzoF,EACeyoF,YAAa3qH,EAD5BkiC,EAC4BliC,QAEvC,GAAKqH,YAAQqF,GAAb,CAEA,IAAM+xG,EAAcmM,YAAeD,GAEnC3qH,EAAQ6qH,wBAAwBpM,gDAIhCz+I,KAAK0F,MAAMqkJ,sBAAwB3B,GAAgCpoJ,KAAKszI,cAAetzI,KAAKigB,MAAO4/H,KAAagJ,mEAG1FlkF,GAAW,IAAAp1D,EAAAvP,KAE7B0sC,EAGAi4B,EAHAj4B,iBACAo+G,EAEAnmF,EAFAmmF,qBACAjyH,EACA8rC,EADA9rC,QAGEkyH,EAA2B/qJ,KAAKigB,MAAMysB,iBAExClF,YAASkF,KAAsB1sC,KAAK0F,MAAMqkJ,wBAC1C/pJ,KAAK0F,MAAMqkJ,sBAAwB3B,GAAgCpoJ,KAAKszI,cAAe3uE,EAAWk7E,KAAagJ,mBAG9GxhH,YAAQqF,IAAqBrF,YAAQrnC,KAAK41I,kBAC3C51I,KAAK41I,eAAiBqU,GAAoCv9G,IAGzD7T,IACDiyH,GAKCjyH,GACAiyH,GACD9qJ,KAAK4hD,SAASopG,IAAmC,GAC7C,WACIf,GAAgC16I,EAAKy6I,kBAI7C3iH,YAAQ0jH,KAA8B1jH,YAAQqF,KAC9C1sC,KAAK4hD,SACD,SAACgvD,GAAD,OAAAk5C,GAAA,GACOl5C,EADP,CAEIlkE,uBAGR1sC,KAAK41I,eAAiBqU,GAAoCv9G,KAnB1D1sC,KAAK4hD,SAASopG,IAAmC,GAAQhrJ,KAAKyqJ,0EAwBlEzqJ,KAAK0qJ,gDAGG,IACA1qH,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAa3G,0BAC3BvjG,EAAQm+G,6EAGgB,IAChB8M,EAA0BjrJ,KAAKigB,MAA/BgrI,sBADgBC,EAQpBlrJ,KAAKigB,MAAMysB,iBALXioC,EAHoBu2E,EAGpBv2E,SACAsqE,EAJoBiM,EAIpBjM,kBACAkM,EALoBD,EAKpBC,oCACAC,EANoBF,EAMpBE,0CACAC,EAPoBH,EAOpBG,0BAGJJ,EAAsBjrJ,KAAK0F,MAAMohC,IAAcs5B,cAC3C,CACIkrF,iBAAkB32E,EAClB42E,YAAatM,EACbuM,6BAA8BL,EAC9BM,mCAAoCL,EACpCC,gGAIO33J,0FACfA,EAAMkmB,iBACE8yB,EAAqB1sC,KAAKigB,MAA1BysB,kBACAqoG,EAAc/0I,KAAK0F,MAAnBqvI,aAGJroG,EAAiBg/G,eAAiB3W,GAGtC/0I,KAAK4hD,SAASopG,GAAsCt+G,GAAmB1sC,KAAKsqJ,kVAI5E,GAAItqJ,KAAK0F,MAAM49H,cAAf,CAA8B,IAClBxgH,EAAW9iB,KAAK0F,MAAhBod,OACRmnI,GAAuCnnI,EAAQ9iB,KAAK41I,oBAFxD,CAKA,IAAM+V,EAAa3rJ,KAAK41I,eAAe9uG,IAAciuG,WAEjD4W,GACAA,EAAW92J,QAAQorB,MAAM2rI,WAAWvwH,QAGxCr7B,KAAK4hD,SAASopG,IAAmC,GAAOhrJ,KAAKuqJ,kEAG5C,IAAA96I,EAAAzP,KACT0sC,EAAqB1sC,KAAKigB,MAA1BysB,iBAEJA,EAAiBpD,WACjBtpC,KAAK4hD,SAAS,CAAEtY,WAAYoD,EAAiBpD,WAAYG,mCAAoCiD,EAAiBjD,oCAAsC,WAChJh6B,EAAK+6I,uBAMbxqJ,KAAKwqJ,kEAGY,IAAAjb,EACqBvvI,KAAKigB,MAAnC+f,EADSuvG,EACTvvG,QAAS0M,EADA6iG,EACA7iG,iBACTm/G,EAAoBn/G,EAApBm/G,gBACF5M,EAAoBvyG,EAAiBuyG,mBAAqBlkH,GAAqBwD,wBAErF0rH,GAAgCjqJ,KAAK41I,eAAe9uG,IAAcV,QAClEpG,EAAQu/G,gBAAgBv/I,KAAK0F,MAAOu5I,EAAmB4M,GACvD7rJ,KAAK4hD,SAAS,CAAEmzF,UAAW,KAE3B+W,GAAeC,kEAGL,IAAAvc,EAONxvI,KAAKigB,MALL+rI,EAFMxc,EAENwc,SACAC,EAHMzc,EAGNyc,iBACAnB,EAJMtb,EAINsb,qBACA9M,EALMxO,EAKNwO,yBAIIkO,EATE1c,EAMN9iG,iBAGIw/G,WAER,OAAQ/zG,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAACi9J,GAAD,CACI9iB,YAAa6iB,EAAW7iB,YACxB+b,cAAe8G,EAAW9G,cAC1BE,eAAgB4G,EAAW5G,eAC3BK,oBAAqBuG,EAAWvG,oBAChCC,qBAAsBsG,EAAWtG,qBACjCH,sBAAuBwG,EACvBzG,gBAAiBwG,EACjBlG,6BAA6B,IACjC3tG,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACjBxsG,GAAAllD,EAAA/D,cAACk9J,GAAD,CACIz0B,QAAS33H,KAAKgqJ,eACd/jB,iBAAkB6kB,EAClB5kB,SAAU8X,IACbh+I,KAAKkqJ,6BACN/xG,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfsB,iBAAkBlrH,GAAqB0C,4BACvCyoH,eAAc,GAAAj7J,OAAK8vC,GAAqBQ,eAA1B,KAAAtwC,OAA4C8vC,GAAqBI,YAC/EqqH,gBAAiBwG,2DAKJ,IAAAl8I,EAAA9P,KACjB0sC,EAAqB1sC,KAAKigB,MAA1BysB,iBADiB4qB,EAEsBt3D,KAAK0F,MAA5C09H,EAFiB9rE,EAEjB8rE,kBAAmBC,EAFF/rE,EAEE+rE,gBACnBlhG,EAA+BuK,EAA/BvK,OAAQ4E,EAAuB2F,EAAvB3F,YAAarhC,EAAUgnC,EAAVhnC,MAEvB4mJ,EAAiBC,YAAe7/G,GAChC8/G,EAAyBnX,GAAwBiX,EAAexlH,IAAcphC,OAAQ1F,KAAK0F,MAAMohC,IAAcphC,O7C9OjG,Q6CqPpB,OALA4mJ,EAAexlH,IAAc5E,SAASkH,aAAeppC,KAAK0F,MAAMohC,IAAc5E,SAC9EoqH,EAAexlH,IAAc3E,QAAQiH,aAAeppC,KAAK0F,MAAMohC,IAAc3E,QAC7EmqH,EAAexlH,IAAcphC,OAAO0jC,aAAeojH,EACnDF,EAAexlH,IAAcqE,UAAU/B,aAAeppC,KAAK0F,MAAMohC,IAAcqE,UAExEwqG,GAAY,CACf9uG,SAAUylH,EACV1W,eAAgB51I,KAAK41I,eACrBC,WAAY,CAAEzS,oBAAmBl5I,MAAOi4C,EAASA,EAAOj4C,MAAQ,IAChE4rJ,UAAW,CAAEzS,kBAAiBn5I,MAAOwb,EAAQA,EAAMxb,MAAQ,IAC3Do5E,aAAc,SAAC5vE,GAAYoc,EAAK8xC,SAASopG,GAAmCt3J,EAAM3D,UAClFimJ,kBAAmB,SAACtiJ,GAChB,IACMwkF,EADcxkF,EAAM3D,OACItG,KACxB83J,EAAY70G,EAAiBwrC,GACnCpoE,EAAK8xC,SAASopG,GAAiDt3J,EAAM3D,OAAQwxJ,KAEjFpL,4BAA6B,SAACziJ,GAAYoc,EAAK8xC,SAASopG,GAAkDt3J,EAAM3D,UAChHqmJ,iBAAkB,SAAC1iJ,GAAYoc,EAAK8xC,SAASopG,GAAkCt3J,KAC/E4iJ,oBAAqB,SAAC5iJ,GAAYoc,EAAK8xC,SAASopG,GAAqCt3J,EAAM3D,OAAQoyC,EAAQz8B,KAC3G2wI,wBAAyB,SAAC3iJ,GAAYoc,EAAK8xC,SAASopG,GAAyCt3J,EAAOqzC,EAAYuyB,cAChHi9E,oBAAqB,SAACj3F,GAAYxvC,EAAK8xC,SAASopG,GAAqC1rG,KACrFm3F,6BAA8B,SAAC/iJ,GAC3Boc,EAAK8xC,SAASopG,GAA8Ct3J,EAAM3D,OAC9D28C,EAAiBizB,gBAAiBjzB,EAAiBi3G,6BAE3DnN,sBAAuB,SAACt+D,GAAc,IAAUp1D,EAAWhT,EAAKpK,MAAhBod,OAAuB,OAAO2pI,GAA8Cv0E,EAAWp1D,uCAItI,IACGqgH,EAAanjI,KAAK0F,MAAlBy9H,SADHupB,EAEiC1sJ,KAAKigB,MAAnC4Y,EAFH6zH,EAEG7zH,QAAS6T,EAFZggH,EAEYhgH,iBAEjB,GAAIrF,YAAQqF,GACR,OACIyL,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAKhvD,KAAKszI,gBANlB,IAUG/sF,EAAgD7Z,EAAhD6Z,WAAY0hG,EAAoCv7G,EAApCu7G,gBAAiBE,EAAmBz7G,EAAnBy7G,eAErC,OACIhwG,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAKhvD,KAAKszI,cAAenjJ,UAAW23J,GAAmC9nJ,KAAKigB,QAC7Ek4B,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAW+3J,GAAkCloJ,KAAKigB,QAE/CunB,YAAS2gH,IACThwG,GAAAllD,EAAA/D,cAAA,WACIipD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAK09J,EAAgBh4J,UAAU,iCAAiC+5E,aAAW,UAGxF/xB,GAAAllD,EAAA/D,cAACo5D,GAAD,CACI/B,WAAYA,IAEhBpO,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACVgzI,GAAYtqG,EAAUsf,GAAAllD,EAAA/D,cAAC62E,GAAD,CAAarC,WAAY1jE,KAAK0jE,YAA9B,KAA4D,KAClF1jE,KAAKoqJ,gBAIV5iH,YAASygH,IACT9vG,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAKw9J,EAAiB93J,UAAU,kCAAkC+5E,aAAW,yMAQ1Gy/E,GAAoBlxG,UAAY,CAC5B5f,QAAS6f,KAAUqM,KAAKD,WACxBknG,SAAUtzG,KAAUx3C,KAAK4jD,WACzBmmG,sBAAuBvyG,KAAUx3C,KAAK4jD,WACtCxU,UAAWoI,KAAUj5B,OACrBitB,iBAAkBgM,KAAUnsD,QAuBjBktD,oBApBf,SAAyB/zC,EAAOykH,GAC5B,MAAO,CACHtxF,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9ClgH,iBAAkBtF,IAAEC,QAAQ8iF,EAASz9E,kBAAoBhnC,EAAMmnJ,aAAangH,iBAAmBy9E,EAASz9E,iBACxGo+G,qBAAsBplJ,EAAMmnJ,aAAa/B,qBACzC9M,yBAA0Bt4I,EAAMmnJ,aAAa7O,yBAC7C9jE,SAAUx0E,EAAMmnJ,aAAa3yE,WAIrC,SAA4B/1E,GACxB,MAAO,CACH67B,QAAS,CACLu/G,gBAAiBn5I,aAAmB0mJ,GAAqC3oJ,GACzEg6I,uBAAwB/3I,aAAmB0mJ,GAA4C3oJ,GACvF0mJ,wBAAyBzkJ,aAAmB0mJ,GAAoD3oJ,MAK7Fs1C,CAGbkwG,IC3UF,SAASoD,GAATroJ,GAgBG,IAqBK6hD,EApCJylG,EAeDtnJ,EAfCsnJ,SACAgB,EAcDtoJ,EAdCsoJ,eACAhtH,EAaDt7B,EAbCs7B,QACAogC,EAYD17D,EAZC07D,aACA9vB,EAWD5rC,EAXC4rC,UACA28G,EAUDvoJ,EAVCuoJ,iBACAp0H,EASDn0B,EATCm0B,QACAq0H,EAQDxoJ,EARCwoJ,oCACAhP,EAODx5I,EAPCw5I,gCACAiN,EAMDzmJ,EANCymJ,oCACAlM,EAKDv6I,EALCu6I,kBACAmM,EAID1mJ,EAJC0mJ,0CACA9kG,EAGD5hD,EAHC4hD,cACAK,EAEDjiD,EAFCiiD,yBACA0kG,EACD3mJ,EADC2mJ,0BAgDA,OArCIjkH,IAAEC,QAAQsf,KACVL,GAAgB,GAGhB+kG,GACuD,OAAvDA,EAA0B1kG,+BAC6Bt7D,IAAvDggK,EAA0B1kG,0BACoC,IAA9D0kG,EAA0B1kG,yBAAyBl5D,SACnD64D,GAAgB,GAQhBC,EAJA8kG,GACuD,OAAvDA,EAA0B1kG,+BAC6Bt7D,IAAvDggK,EAA0B1kG,0BACoC,IAA9D0kG,EAA0B1kG,yBAAyBl5D,OACtC,CACTg5D,YAAa4kG,EAA0B5kG,YACvCC,cAAe,GACfC,yBAA0B0kG,EAA0B1kG,yBACpDC,0BAA0B,EAC1BC,yBAAyB,EACzBC,aAAcukG,EAA0BvkG,aACxCC,UAAW,SAGF,CACTN,YAAa,GACbC,cAAe,GACfC,2BACAC,0BAA0B,EAC1BC,yBAAyB,EACzBC,aAAc,QACdC,UAAW,SAKf5O,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,cACV0oC,EAAUsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KACzCzf,EAAgBnO,GAAAllD,EAAA/D,cAACo5D,GAAD,CACb/B,WAAYA,IACS,KACzBpO,GAAAllD,EAAA/D,cAAA,WAASiB,UAAU,uBACfgoD,GAAAllD,EAAA/D,cAACk9J,GAAD,CACInmB,iBAAkBinB,EAClBhnB,SAAUgY,IACd/lG,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBAAkB8uJ,GAAqBlkH,GAAqBsD,4BAC3E8Z,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBACXgoD,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,oCACVwqE,oBAAkB,sBAClBriB,QAAS20G,EAAmBD,EAAiBhB,GAE7C7zG,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uCACZgoD,GAAAllD,EAAA/D,cAAA,YAAO6rC,GAAqBI,YAC5Bgd,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,2BACV0B,MAAM,KACN8gC,OAAO,KACPiyB,UAAU,SAEVzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,0BAK9Bub,EAAejoB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sBAC3BgoD,GAAAllD,EAAA/D,cAAA,KACIiB,UAAU,OACVyiD,KAAK,IACL+nB,oBAAkB,sBAClBriB,QAlFxB,WACItY,EAAQ++G,wBAAwB,CAC5B3+E,eACA9vB,YACA0uG,YAAamM,EACblM,kBAAmBmM,MA+EFrwH,GAAqBW,0BAErB,QAO7BqxH,GAAwBt0G,UAAY,CAChCuzG,SAAUtzG,KAAUx3C,KAAK4jD,WACzBkoG,eAAgBt0G,KAAUx3C,KAAK4jD,WAC/Bsb,aAAc1nB,KAAUj5B,OAAOqlC,WAC/BxU,UAAWoI,KAAUj5B,OAAOqlC,WAC5BqmG,oCAAqCzyG,KAAUj5B,OAAOqlC,WACtDm6F,kBAAmBvmG,KAAUj5B,OAAOqlC,WACpCsmG,0CAA2C1yG,KAAUj5B,OAAOqlC,WAC5DwB,cAAe5N,KAAUqM,KAAKD,WAC9BmoG,iBAAkBv0G,KAAUqM,KAAKD,YAmBtBrL,oBAhBf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9CM,oCAAqCxnJ,EAAMmnJ,aAAaK,oCACxDhP,gCAAiCx4I,EAAMmnJ,aAAa3O,kCAI5D,SAA4B/5I,GACxB,MAAO,CACH67B,QAAS,CACL++G,wBAAyB34I,aAAmB0mJ,GAA6C3oJ,MAKtFs1C,CAA6CszG,qoCC1HtDI,eACF,SAAAA,EAAYltI,GAAO,IAAA3Q,qCAAA69I,4DAAAC,CAAAptJ,MAAA,IAEP0sC,GADRp9B,MAAA+9I,GAAAF,GAAA5jK,KAAAyW,KAAMigB,+CAANjgB,SACkCigB,MAA1BysB,iBACA4D,EAAc5D,EAAd4D,UAHO,OAKfhhC,EAAK5J,MAAL4nJ,GAAA,GACOpjB,GAAa1G,wBADpB,CAEI92F,mBACA4D,YACAy5G,uBAAuB,IAG3Bz6I,EAAK06I,eAAiBnxG,KAAMwwB,YAC5B/5D,EAAKgkI,cAAgBz6F,KAAMwwB,YAE3B/5D,EAAKi+I,0BAA4Bj+I,EAAKi+I,0BAA0BzgJ,KAA/B0gJ,MAAAl+I,KACjCA,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjB0gJ,MAAAl+I,KACnBA,EAAK+6I,aAAe/6I,EAAK+6I,aAAav9I,KAAlB0gJ,MAAAl+I,KACpBA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlB0gJ,MAAAl+I,KACpBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5B0gJ,MAAAl+I,KAC9BA,EAAKm7I,0BAA4Bn7I,EAAKm7I,0BAA0B39I,KAA/B0gJ,MAAAl+I,KACjCA,EAAKi7I,mBAAqBj7I,EAAKi7I,mBAAmBz9I,KAAxB0gJ,MAAAl+I,KAC1BA,EAAK0mI,kBAAoB1mI,EAAK0mI,kBAAkBlpI,KAAvB0gJ,MAAAl+I,KACzBA,EAAKqkI,aAAerkI,EAAKqkI,aAAa7mI,KAAlB0gJ,MAAAl+I,KACpBA,EAAKm+I,cAAgBn+I,EAAKm+I,cAAc3gJ,KAAnB0gJ,MAAAl+I,KAErBA,EAAKsmI,eAAiBqU,GAAoCv9G,GAE1Dp9B,EAAK+6I,eA5BU/6I,2PADUwpC,2DAgCd,IAAAqZ,EACwCnyD,KAAKigB,MAAhDysB,EADGylB,EACHzlB,iBAAkBi+G,EADfx4F,EACew4F,YAAa3qH,EAD5BmyB,EAC4BnyB,QAEvC,GAAKqH,YAAQqF,GAAb,CAEA,IAAM+xG,EAAcmM,YAAeD,GAEnC3qH,EAAQ6qH,wBAAwBpM,gDAIhCz+I,KAAK0F,MAAMqkJ,sBAAwB3B,GAAgCpoJ,KAAKszI,cAAetzI,KAAKigB,MAAO4/H,KAAasJ,sEAG1FxkF,GAAW,IAAAp1D,EAAAvP,KAE7B8qJ,EAKAnmF,EALAmmF,qBACAjyH,EAIA8rC,EAJA9rC,QACA6T,EAGAi4B,EAHAj4B,iBACAghH,EAEA/oF,EAFA+oF,uBACA1B,EACArnF,EADAqnF,SAGEjB,EAA2B/qJ,KAAKigB,MAAMysB,iBAExClF,YAASkF,KAAsB1sC,KAAK0F,MAAMqkJ,wBAC1C/pJ,KAAK0F,MAAMqkJ,sBAAwB3B,GAAgCpoJ,KAAKszI,cAAe3uE,EAAWk7E,KAAasJ,qBAG9GtwH,IACDiyH,EAKCjyH,IAAW60H,GAkBX70H,GACAiyH,GACD9qJ,KAAK4hD,SAASopG,IAAmC,GAC7C,WACIf,GAAgC16I,EAAKy6I,kBAI7C3iH,YAAQ0jH,KAA8B1jH,YAAQqF,KAC9C1sC,KAAK4hD,SACD,SAACgvD,GAAD,OAAA08C,GAAA,GACO18C,EADP,CAEIlkE,uBAIR1sC,KAAK41I,eAAiBqU,GAAoCv9G,KAjC1D1sC,KAAK4hD,SACD,SAACl8C,GACG,IAAMioJ,EAAgBjoJ,EAAMod,OAEpB8qI,EAAoBlhH,EAApBkhH,gBAIR,OAFAD,EAAcvtF,aAAe,CAAEnC,SAAS,EAAOh4D,aAAcsJ,EAAKk+I,cAAcG,EAAgBC,gBAAiB7B,EAAU4B,EAAgBE,gBAE3IR,GAAA,GACO5nJ,EADP,CAEIod,OAAQ6qI,MAfpB3tJ,KAAK4hD,SAASopG,IAAmC,GAAQhrJ,KAAKyqJ,0EA0C/C,IACXzqH,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAa3G,0BAC3BvjG,EAAQm+G,6EAGgB,IAChB8M,EAA0BjrJ,KAAKigB,MAA/BgrI,sBADgBC,EASpBlrJ,KAAKigB,MAAMysB,iBALXioC,EAJoBu2E,EAIpBv2E,SACAsqE,EALoBiM,EAKpBjM,kBACAkM,EANoBD,EAMpBC,oCACAC,EAPoBF,EAOpBE,0CACA7kG,EARoB2kG,EAQpB3kG,WAGJ0kG,EAAsBjrJ,KAAK0F,MAAMohC,IAAcs5B,cAC3C,CACI6sF,kBAAkB,EAClB3B,iBAAkB32E,EAClB42E,YAAatM,EACbuM,6BAA8BL,EAC9BM,mCAAoCL,EACpC9kG,eAAe,EACfK,yBAA0BJ,EAAWI,6FAI9BjzD,0FACfA,EAAMkmB,iBACE8yB,EAAqB1sC,KAAKigB,MAA1BysB,kBACAqoG,EAAc/0I,KAAK0F,MAAnBqvI,aAGJroG,EAAiBg/G,eAAiB3W,GAGtC/0I,KAAK4hD,SAASopG,GAAsCt+G,GAAmB1sC,KAAKsqJ,kVAI5E,GAAItqJ,KAAK0F,MAAM49H,cAAf,CAA8B,IAClBxgH,EAAW9iB,KAAK0F,MAAhBod,OACRmnI,GAAuCnnI,EAAQ9iB,KAAK41I,oBAFxD,CAKA,IAAM+V,EAAa3rJ,KAAK41I,eAAe9uG,IAAciuG,WAEjD4W,GACAA,EAAW92J,QAAQorB,MAAM2rI,WAAWvwH,QAGxCr7B,KAAK4hD,SAASopG,IAAmC,GAAOhrJ,KAAKuqJ,+DAG/C72J,GACdsM,KAAK4hD,SAASopG,GAAiDt3J,EAAM3D,8CAG5D2D,GAAO,IAAAwuE,EACsBliE,KAAKigB,MAAnC+f,EADQkiC,EACRliC,QAAS0M,EADDw1B,EACCx1B,iBACTqhH,EAAyB/tJ,KAAK0F,MAA9BqoJ,qBAEAH,EAAoBlhH,EAApBkhH,gBAEFI,EAAat6J,EAAM3D,OAAO5F,MAE5BuJ,EAAM3D,OAAOtG,OAASq9C,IAAcs5B,cAAiB/4B,YAAQ2mH,IAAeD,IAAyBC,GAChFjwF,GAAciwF,GAElB/vF,UACbj+D,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4nJ,GAAA,GACP5nJ,EADO,CAEVqoJ,qBAAsBC,EACtBvqB,sBAAsB,MAG1BzjG,EAAQogH,2BAA2B4N,EAAYJ,EAAgBK,uEAKtD,IAAA1e,EACqBvvI,KAAKigB,MAAnC+f,EADSuvG,EACTvvG,QAAS0M,EADA6iG,EACA7iG,iBACTm/G,EAAoBn/G,EAApBm/G,gBACF5M,EAAoBvyG,EAAiBuyG,mBAAqBlkH,GAAqBwD,wBAErFmO,EAAiBC,SAAW7F,IAAcmmH,iBAE1CjtH,EAAQu/G,gBAAgBv/I,KAAK0F,MAAOu5I,EAAmB4M,GACvD7rJ,KAAK4hD,SAAS,CAAEmzF,UAAW,KAE3B+W,GAAeC,kEAGL3G,EAAeC,EAAYC,GACrC,OAAOntG,GAAAllD,EAAA/D,cAAC62J,GAAD,CAAmBX,cAAeA,EACrCC,WAAYA,EACZC,eAAgBA,0CAIV,IAAA9V,EAMNxvI,KAAKigB,MAJL+rI,EAFMxc,EAENwc,SACAlB,EAHMtb,EAGNsb,qBACA9M,EAJMxO,EAINwO,yBACAtxG,EALM8iG,EAKN9iG,iBAGIw/G,EAAex/G,EAAfw/G,WAER,OAAI7kH,YAAQqF,GAA4B,KAEhCyL,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAACi9J,GAAD,CACI9iB,YAAa6iB,EAAW7iB,YACxB+b,cAAe8G,EAAW9G,cAC1BE,eAAgB4G,EAAW5G,eAC3BE,gBAAiBwG,EACjBkC,2BAA2B,IAC/B/1G,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACjBxsG,GAAAllD,EAAA/D,cAACk9J,GAAD,CAAaz0B,QAAS33H,KAAKgqJ,eACvB/jB,iBAAkB6kB,EAClB5kB,SAAU8X,IACbh+I,KAAKutJ,4BACNp1G,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfsB,iBAAkBlrH,GAAqB4C,oFAK3B,IAAAluB,EAAAzP,KAChB0sC,EAAqB1sC,KAAKigB,MAA1BysB,iBACA3F,EAAgB2F,EAAhB3F,YAER,OAAO4uG,GAAY,CACf9uG,SAAU6F,EACVkpG,eAAgB51I,KAAK41I,eACrBtyE,aAAc,SAAC5vE,GAAY+b,EAAKmyC,SAASopG,GAAmCt3J,EAAM3D,UAClFimJ,kBAAmB,SAACtiJ,GAChB+b,EAAKumI,kBAAkBtiJ,IAE3ByiJ,4BAA6B,SAACziJ,GAAY+b,EAAKmyC,SAASopG,GAAkDt3J,EAAM3D,UAChHsmJ,wBAAyB,SAAC3iJ,GAAY+b,EAAKmyC,SAASopG,GAAyCt3J,EAAOqzC,EAAYuyB,cAChHi9E,oBAAqB,SAACj3F,GAAY7vC,EAAKmyC,SAASopG,GAAqC1rG,KACrFm3F,6BAA8B,SAAC/iJ,GAC3B+b,EAAKmyC,SAASopG,GAA8Ct3J,EAAM3D,OAC9D28C,EAAiBizB,gBAAiBjzB,EAAiBi3G,6BAE3DnN,sBAAuB,SAACt+D,GAAc,IAC1Bp1D,EAAWrT,EAAK/J,MAAhBod,OACR,OAAO2pI,GAA8Cv0E,EAAWp1D,IAEpE6wH,aAAc3zI,KAAK2zI,gDAIlB,IACGxQ,EAAanjI,KAAK0F,MAAlBy9H,SADHupB,EAEiC1sJ,KAAKigB,MAAnC4Y,EAFH6zH,EAEG7zH,QAAS6T,EAFZggH,EAEYhgH,iBACT6Z,EAAgD7Z,EAAhD6Z,WAAY0hG,EAAoCv7G,EAApCu7G,gBAAiBE,EAAmBz7G,EAAnBy7G,eAE/BgG,EAAY9mH,YAAQqF,GAE1B,OACIyL,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAKhvD,KAAKszI,cAAenjJ,UAAW23J,GAAmC9nJ,KAAKigB,QAC7Ek4B,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAW+3J,GAAkCloJ,KAAKigB,QAE/CunB,YAAS2gH,IACThwG,GAAAllD,EAAA/D,cAAA,WACIipD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAK09J,EAAgBh4J,UAAU,iCAAiC+5E,aAAW,UAIpFikF,EAAY,KAAOh2G,GAAAllD,EAAA/D,cAACo5D,GAAD,CACf/B,WAAYA,IAGpBpO,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACTgzI,GAAYtqG,EAAWsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KACvD/lE,KAAKoqJ,gBAIV5iH,YAASygH,IACT9vG,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAKw9J,EAAiB93J,UAAU,kCAAkC+5E,aAAW,yMAQ1GijF,GAAmB10G,UAAY,CAC3BuzG,SAAUtzG,KAAUx3C,KAAK4jD,WACzBjsB,QAAS6f,KAAUqM,KAAKD,WACxBmmG,sBAAuBvyG,KAAUx3C,KAAK4jD,WACtCpY,iBAAkBgM,KAAUnsD,QAwBjBktD,oBArBf,SAAyB/zC,EAAOykH,GAC5B,MAAO,CACHtxF,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9C9B,qBAAsBplJ,EAAMmnJ,aAAa/B,qBACzC9M,yBAA0Bt4I,EAAMmnJ,aAAa7O,yBAC7C0P,uBAAwBhoJ,EAAMmnJ,aAAaa,uBAC3ChhH,iBAAmBlF,YAAS2iF,EAASz9E,kBAA0Dy9E,EAASz9E,iBAA/ChnC,EAAMmnJ,aAAangH,mBAIpF,SAA4BvoC,GACxB,MAAO,CACH67B,QAAS,CACLu/G,gBAAiBn5I,aAAmB0mJ,GAAqC3oJ,GACzEg6I,uBAAwB/3I,aAAmB0mJ,GAA4C3oJ,GACvF0mJ,wBAAyBzkJ,aAAmB0mJ,GAAoD3oJ,GAChGi8I,2BAA4Bh6I,aAAmB0mJ,GAAgD3oJ,MAK5Fs1C,CAGb0zG,aCrWIiB,GAA2B,IAC3BC,GAAgC,IAC/B,SAASC,GAAuBx6I,GACnC,IAAM7N,EAAe6N,EAAS7N,aAC9B,GAAImhC,IAAEC,QAAQvzB,IAAaszB,IAAEC,QAAQphC,GACjC,MAAO,CAACq5I,IAGZ,GAAIr5I,EAAagF,SAAS,iBACtB,MAAO,CAACq0I,IAGZ,GAAIxrI,EAASy6I,aAAeH,IACxBt6I,EAASy6I,aAAeF,GACxB,MAAO,CAACpoJ,GAGZ,GAAImhC,IAAEtnB,QAAQ7Z,GACV,OAAOA,EAGX,GAAImhC,IAAEonH,SAASvoJ,KAenB,SAAoBvb,GAChB,IAAK08C,IAAEonH,SAAS9jK,GACZ,OAAO,EAGX,IAEI,OADAmL,KAAKC,MAAMpL,IACJ,EACT,MAAOqjB,GACL,OAAO,GAxBsB0gJ,CAAWxoJ,GACxC,MAAO,CAACA,GAGZ,IAAMyoJ,EAAiB74J,KAAKC,MAAMmQ,GAElC,GAAImhC,IAAEC,QAAQqnH,IAAmBtnH,IAAEC,QAAQqnH,EAAe5rI,QACtD,MAAO,CAACw8H,IAGZ,IAAMqP,EAAY3iK,OAAO+kB,OAAO29I,EAAe5rI,QAE/C,OAAOskB,IAAEC,QAAQsnH,GAAa,CAACrP,IAA4CqP,ECtBxE,SAASC,KACZ,MAAO,CAAEvgK,KAAMsvJ,IAGZ,SAASkR,GAAiCC,GAC7C,MAAO,CAAEzgK,KAAMsvJ,GAA4CmR,0BAGxD,SAASC,GAA+BD,GAC3C,MAAO,CAAEzgK,KAAMsvJ,GAA0CmR,0BAGtD,SAASE,GAA6BC,GACzC,MAAO,CAAE5gK,KAAMsvJ,GAAwCsR,mCAOpD,SAASC,GAA8CC,GAC1D,MAAO,CAAE9gK,KAAMsvJ,GAA2BwR,uCAOvC,SAASC,KACZ,MAAO,CAAE/gK,KAAMsvJ,IAGZ,SAAS0R,KACZ,OAAO,SAAUlrJ,GAEb,OADAA,EAASu5I,MACF4R,OACFx1H,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASyqJ,MA3CtB,IAAgDW,EA8CvCprJ,GA9CuCorJ,EA8CSz7I,EAAS/qB,KA7C9D,CAAEsF,KAAMsvJ,GAAkD4R,mCA+CxDv1H,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASyqJ,MACH7gJ,KAKf,SAAS+wB,GAA0BwR,EAAWhW,EAAawL,EAAavL,GAC3E,IAAIi1H,EAAsB,CAACz0H,GAAqB4D,oBAEhD,OAAO,SAAUx6B,GAEb,OADAA,EAASu5I,MACF4R,K7U6LR,SAA0Dh/G,EAAWxK,EAAaxL,GACrF,IAAMq6C,EAAkD,MAAvCr6C,EAAYwM,IAAc6tC,UAAoBkrE,KAAamJ,0BAA4B1uH,EAAYwM,IAAc6tC,UAC5HogE,EAAYz6G,EAAYwM,IAAciuG,WAW5C,OAVAjvG,EAAYM,MAAQ9L,EAAYwM,IAAcV,OAC9CN,EAAYQ,YAAchM,EAAYwM,IAAcR,aAAehM,EAAYwM,IAAcR,aAAao5G,cAAgB,KAE1H55G,EAAYC,UAAY+E,GAAkBxQ,EAAawL,EAAYC,WAEnED,EAAYiB,YAAcH,GAAetM,GACzCwL,EAAYkB,6BAA+BmF,GAAgC7R,GAE3EwL,EAAYyvC,UAAY9sC,GAAgBnO,EAAawL,EAAYyvC,WAE1D,CAAEpnC,KAAMrI,EAAa6uC,WAAUogE,a6U1MUsK,CAAkE/uG,EAAWxK,EAAaxL,GAAcC,GAC/IT,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAIT,OAHAu7G,EAAsBC,GAAqC37I,GAC3D3P,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS4qJ,GAA+BS,IAG5CrrJ,EAAS0qJ,GAAiC,CAACvP,QAE9CtlH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS4qJ,GAA+B,CAACzP,MACnCvxI,KAKf,SAASmxB,GAAwB5E,EAAawL,EAAavL,GAC9D,IAAIi1H,EAAsB,CAACz0H,GAAqB4D,oBAChD,OAAO,SAAUx6B,GAEb,OADAA,EAASu5I,MACF4R,K7UwMR,SAAwDxpH,EAAaxL,GAAa,IAG/Eo1H,EAAoBpjH,GAFIhS,EAAtBiS,kBAEuDiC,KAAgBC,SACzEkmC,EAkkBV,SAAqCr6C,GAAa,IACtCiS,EAAsBjS,EAAtBiS,kBACFojH,EAAsBvjK,IAAIkuC,EAAawM,IAAc6tC,SAAU,MAErE,OAAIntC,YAAS+E,IAAsByG,YAAkB28G,GACxB3gH,IAAY2H,oBAAoBrc,GACrDulH,KAAakJ,qCACblJ,KAAaiJ,mCAKd6G,EA9kBUC,CAA4Bt1H,GACvCy6G,EAAY3oJ,IAAIkuC,EAAawM,IAAciuG,eAAW1pJ,GAiB5D,OAdAy6C,EAAYyvC,UAAY9sC,GAAgBnO,EAAawL,EAAYyvC,WAGjEzvC,EAAYwD,WAAaomH,EACzB5pH,EAAYM,MAAQ9L,EAAYwM,IAAcV,QAAUN,EAAYgB,IAAcV,OAClFN,EAAYQ,YAAchM,EAAYwM,IAAcR,aAAehM,EAAYwM,IAAcR,aAAao5G,cAAgB55G,EAAYgB,IAAcR,aACpJR,EAAYC,UAAY+E,GAAkBxQ,EAAawL,EAAYC,WAEnED,EAAYiB,YAAcH,GAAetM,GACzCwL,EAAYkB,6BAA+BmF,GAAgC7R,GAE3EwL,EAAYtM,OAAOqO,2BAA6BvN,EAAYspG,wBAC5D99F,EAAYtM,OAAOC,sBAAwBa,EAAYspG,wBAEhD,CAAEz1F,KAAMrI,EAAa6uC,WAAUogE,a6U9NUsK,CAAgEv5G,EAAaxL,GAAcC,GAClIT,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAIT,OAHAu7G,EAAsBC,GAAqC37I,GAC3D3P,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS4qJ,GAA+BS,IAG5CrrJ,EAAS0qJ,GAAiC,CAACvP,QAE9CtlH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS4qJ,GAA+B,CAACzP,MACnCvxI,KAKf,SAAS8hJ,GAA4Bv1H,EAAawL,EAAavL,GAClE,IAAIi1H,EAAsB,CAACz0H,GAAqB4D,oBAEhD,OAAO,SAAUx6B,GAEb,OADAA,EAASu5I,MACF4R,K7UoPR,SAA2C9lH,EAAsB46F,GAAa,IACzE96F,EAAsB86F,EAAtB96F,WAAY+C,EAAU+3F,EAAV/3F,MACdyjH,EAAoBvD,YAAenoB,GACnCzvD,EAA2D,MAAhDnrC,EAAqB1C,IAAc6tC,UAAoBkrE,KAAawJ,kBAAoB7/G,EAAqB1C,IAAc6tC,UACtIogE,EAAYvrG,EAAqB1C,IAAciuG,WACrD+a,EAAkB/pH,UAAY+E,GAAkBtB,EAAsBsmH,EAAkB/pH,WAExF,IAAM0E,GAA6BjB,EAAqB1C,IAAcklG,cAChEthG,EAA4BlB,EAAqB1C,IAAcqlG,cAC/D4jB,EACFxlH,GAAiC65F,EAAY55F,YAAaC,EAA2BC,GAEnF6B,EAAoBlD,GAAqBC,GAC3ComH,EAAoBpjH,GAAkBC,EAAmBiC,KAAgBC,SA8B7E,OA5BIjF,EAAqByrG,aACrBya,EAAoBpjH,GAAkBC,EAAmBiC,KAAgBgxG,mBA2BtE,CAAE7qE,WAAUogE,YAAW5mG,KAxBjB,CACT7E,WAAYomH,EACZtpH,MAAO+C,GAAkBK,EAAqB1C,IAAcV,QAC5DiG,MAAOA,EAAMj5C,cACbqwC,UAAW+F,EAAqB1C,IAAcrD,WAC9CC,SAAU8F,EAAqB1C,IAAcpD,UAC7CqC,UAAW+pH,EAAkB/pH,UAC7BkwC,WAAY65E,EAAkB75E,WAC9BlvC,YAAaH,GAAe4C,GAC5BxC,6BAA8BmF,GAAgC3C,GAC9Di2G,eAAgBj2G,EAAqB1C,IAAcwJ,WACnDhK,YAAakD,EAAqB1C,IAAcR,aAC5C0pH,aAAmBxmH,EAAqB1C,IAAcR,cACtD,KACJivC,UAAWu6E,EAAkBv6E,UAC7B/7C,OAAQ,CACJiR,4BACAC,4BACA7C,2BAA4B2B,EAAqB1C,IAAc88F,yBAC/DnqG,sBAAuB+P,EAAqB1C,IAAc88F,0BAE9Dp5F,YAAaulH,I6U5R+B1Q,CAAmD/kH,EAAawL,GAAcvL,GACrHT,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAIT,OAHAu7G,EAAsBC,GAAqC37I,GAC3D3P,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS4qJ,GAA+BS,IAG5CrrJ,EAAS0qJ,GAAiC,CAACvP,QAE9CtlH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS4qJ,GAA+B,CAACzP,MACnCvxI,KAMf,SAASkiJ,GAA+B31H,EAAawL,EAAavL,GACrE,IAAIi1H,EAAsB,CAACz0H,GAAqB4D,oBAEhD,OAAO,SAAUx6B,GAEb,OADAA,EAASu5I,MACF4R,K7U0QR,SAA8C9lH,EAAsB46F,GAAa,IAC5E96F,EAAsB86F,EAAtB96F,WAAY+C,EAAU+3F,EAAV/3F,MACdyjH,EAAoBvD,YAAenoB,GAEzC0rB,EAAkB/pH,UAAY+E,GAAkBtB,EAAsBsmH,EAAkB/pH,WAExF,IAAM0E,GAA6BjB,EAAqB1C,IAAcklG,cAChEthG,EAA4BlB,EAAqB1C,IAAcqlG,cAC/D4jB,EACFxlH,GAAiC65F,EAAY55F,YAAaC,EAA2BC,GA6BzF,MAAO,CAAEyD,KAxBI,CACT7E,WAHsBgD,GADAjD,GAAqBC,GACgBkF,KAAgBC,SAI3ErI,MAAO+C,GAAkBK,EAAqB1C,IAAcV,QAC5DiG,MAAOA,EAAMj5C,cACbqwC,UAAW+F,EAAqB1C,IAAcrD,WAC9CC,SAAU8F,EAAqB1C,IAAcpD,UAC7CqC,UAAW+pH,EAAkB/pH,UAC7BkwC,WAAYzsC,EAAqBysC,WACjClvC,YAAaH,GAAe4C,GAC5BxC,6BAA8BmF,GAAgC3C,GAC9Di2G,eAAgBj2G,EAAqB1C,IAAcwJ,WACnDhK,YAAakD,EAAqB1C,IAAcR,aAC5C0pH,aAAmBxmH,EAAqB1C,IAAcR,cACtD,KACJivC,UAAWu6E,EAAkBv6E,UAC7B/7C,OAAQ,CACJiR,4BACAC,4BACA7C,2BAA4B2B,EAAqB1C,IAAc88F,yBAC/DnqG,sBAAuB+P,EAAqB1C,IAAc88F,0BAE9Dp5F,YAAaulH,I6U7S2B1Q,CAAsD/kH,EAAawL,GAAcvL,GACpHT,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAIT,OAHAu7G,EAAsBC,GAAqC37I,GAC3D3P,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS4qJ,GAA+BS,IAG5CrrJ,EAAS0qJ,GAAiC,CAACvP,MAC3C1+H,SAASsvI,WAEZl2H,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS4qJ,GAA+B,CAACzP,MACnCvxI,KAKf,SAASoiJ,GAAY51H,GACxB,IAAIi1H,EAAsB,CAACz0H,GAAqB4D,oBAEhD,OAAO,SAAUx6B,GAEb,OADAA,EAASu5I,MACF4R,KAA6C/0H,GAC/CT,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAIT,OAHAu7G,EAAsBC,GAAqC37I,GAC3D3P,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS6qJ,GAA6BQ,IAG1C1D,GAAeC,4BACf5nJ,EA9IL,CAAE9V,KAAMsvJ,GAA0CsR,gCA8IL,CAAC3P,QAE5CtlH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS6qJ,GAA6B,CAAC1P,MACjCvxI,KAKf,SAASqiJ,GAAuC71H,EAAa81H,EAAoBC,GACpF,IAAId,EAAsB,CAACz0H,GAAqB4D,oBAEhD,OAAO,SAAUx6B,GAEb,OADAA,EAASu5I,MACF4R,KAAyD/0H,EAAa81H,EAAoBC,GAC5Fx2H,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAIT,OAHAu7G,EAAsBC,GAAqC37I,GAC3D3P,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS+qJ,GAA8CM,IAG3DrrJ,EA7JL,CAAE9V,KAAMsvJ,GAA6BwR,oCA6JyB,CAAC7P,QAE7DtlH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS+qJ,GAA8C,CAAC5P,MAClDvxI,KCvLf,SAASwiJ,KACZ,MAAO,CAAEliK,KAAMsvJ,ICCZ,IAAM6S,GAA0B,kBAMhC,SAASC,GAA6BC,GACzC,MAAO,CAAEriK,KAAMsvJ,GAAyC+S,wCAWrD,SAASC,GAAkBC,GAC9B,MAAO,CAAEviK,KAAMsvJ,GAA4BiT,qBAOxC,SAASC,GAAsBC,GAClC,MAAO,CAAEziK,KAAMsvJ,GAAgCmT,iCAO5C,SAASC,GAA2BC,GACvC,MAAO,CAAE3iK,KAAMsvJ,GAAsCqT,sCAOlD,SAASC,GAAsBC,GAClC,MAAO,CAAE7iK,KAAMsvJ,GAAgCuT,iCAO5C,SAASC,GAAqBC,GACjC,MAAO,CAAE/iK,KAAMsvJ,GAA+ByT,gCAG3C,SAASC,KACZ,MAAO,CAAEhjK,KAAMsvJ,IAGZ,SAAS2T,GAAqBC,GACjC,MAAO,CAAEljK,KAAMsvJ,GAA+B4T,gCAK3C,SAASC,GAAyBC,GACrC,MAAO,CAAEpjK,KAAMsvJ,GAAmC8T,6BAG/C,SAASC,GAA+BC,GAC3C,MAAO,CAAEtjK,KAAMsvJ,GAA2CgU,iBAWvD,SAASC,GAAuBH,GACnC,MAAO,CAAEpjK,KAAMsvJ,GAAiC8T,6BAO7C,SAASI,GAAuBF,GACnC,MAAO,CAAEtjK,KAAMsvJ,GAAiCgU,iBAO7C,SAASG,GAAyBC,GACrC,MAAO,CAAE1jK,KAAMsvJ,GAAmCoU,+BAG/C,SAASC,KACZ,MAAO,CAAE3jK,KAAMsvJ,IAGZ,SAASsU,GAAiCN,GAC7C,MAAO,CAAEtjK,KAAMsvJ,GAAoCgU,iBAGhD,SAASO,KACZ,MAAO,CAAE7jK,KAAMsvJ,IAGZ,SAASvmE,GAAsB+6E,GAClC,MAAO,CAAE9jK,KAAMsvJ,GAA+BwU,0BAG3C,SAASC,GAAoBD,GAChC,MAAO,CAAE9jK,KAAMsvJ,GAA6BwU,0BAezC,SAASE,GAAmCV,GAC/C,MAAO,CAAEtjK,KAAMsvJ,GAA+CgU,iBAG3D,SAASW,GAAuB/3H,EAAa+V,EAAWiiH,GAC3D,OAAO,SAAUpuJ,GAEb,OADAA,EAASu5I,MACF4R,KAAsC/0H,EAAa+V,GACrDxW,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAST,OARA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAE5BqqC,IAAckiH,KAAgBC,WAC9BtuJ,EAASssJ,GAA6B,CAAC8B,GAAuBx3H,GAAqB8D,wBAEnF16B,EAASssJ,GAA6B,CAAC8B,GAAuBx3H,GAAqB6D,yBAK3F,IAAM8zH,E/UujBf,SAAyCC,EAAariH,GAuBzD,OAtBAqiH,EAAYC,YAAcvrH,YAAQsrH,EAAYC,aAAe,GAAKD,EAAYC,YAAY1rJ,IAAI,SAAC2rJ,GAQ3F,OAPIviH,IAAckiH,KAAgBM,SAC9B7tH,GAAU4tH,EAAW5tH,aAAeA,GAAUC,MAC9Cd,GAAUyuH,EAAWzuH,aAAeA,GAAUI,eAC9CquH,EAAWE,eAAiB9tH,GAAUM,YAEtCstH,EAAWE,eAAiB9tH,GAAU4tH,EAAW5tH,WAE9C4tH,IAGPzrH,IAAEC,QAAQsrH,EAAYK,aACtBL,EAAYK,UAAY,CACpB/tH,UAAWlK,GAAqB8E,mBAChCozH,eAAgBl4H,GAAqB8E,mBACrCqzH,oBAAqBn4H,GAAqB8E,qBAIlD8yH,EAAYK,UAAUD,eAAiB9tH,GAAU0tH,EAAYK,UAAU/tH,WACvE0tH,EAAYK,UAAUC,eAAiB7uH,GAAUuuH,EAAYK,UAAUj+G,QACvE49G,EAAYK,UAAUE,oBAAsB1nH,GAA2BmnH,EAAYK,UAAUjwH,YACtF4vH,E+U9kBiCtT,CAAiDvrI,EAAS/qB,KAAMunD,GAC5FnsC,EAvJT,SAAwCuuJ,GAC3C,MAAO,CAAErkK,KAAMsvJ,GAA2C+U,uBAsJrCS,CAA+BT,MAE3C14H,MAAM,SAACjsB,GAOJ,MANA5J,EAASy5I,GAAa,CAAC7vI,KACnBuiC,IAAckiH,KAAgBC,WAC9BtuJ,EAASssJ,GAA6B,CAAC8B,GAAuBx3H,GAAqB8D,wBAEnF16B,EAASssJ,GAA6B,CAAC8B,GAAuBx3H,GAAqB6D,wBAEjF7wB,KAKf,SAASqlJ,KACZ,OAAO,SAAUjvJ,GACbA,EA5CG,CAAE9V,KAAMsvJ,MAgDZ,SAAS0V,GAAmB94H,GAA2C,IAA9B+4H,EAA8B1kK,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,IAAAA,UAAA,GAC1E,OAAO,SAAUuV,GAEb,OADAA,EAASu5I,MACF4R,KAAkC/0H,GACpCT,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASwsJ,GAAkB,CAACrR,MAA4C,GAG5En7I,EA7KT,SAA6BihI,GAA+C,IAA9BkuB,EAA8B1kK,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,IAAAA,UAAA,GAG/E,MAAO,CACHP,KAAMsvJ,GAA8B50J,KAH3B,CAAEq8I,kBAAiBkuB,yBA4KXC,CAAoBz/I,EAAS/qB,KAAMuqK,MAE/Ct5H,MAAM,SAACjsB,GACJ5J,EAASy5I,GAAa,CAAC7vI,KACvB,IAAM6iJ,EAAoB7iJ,IAAUyiJ,GAEpC,MADArsJ,EAASwsJ,GAAkB,CAACrR,KAA4CsR,GAClE7iJ,KAKf,SAASylJ,GAAgBj5H,EAAzB71B,GAC+C,IAAhD+uJ,EAAgD/uJ,EAAhD+uJ,WAAY9uB,EAAoCjgI,EAApCigI,sBAAuBr0F,EAAa5rC,EAAb4rC,UACrC,OAAO,SAAUnsC,GAEb,OADAA,EAASu5I,MACF4R,KAAuC/0H,EAC1C,CAAEk5H,aAAY9uB,wBAAuBr0F,cACpCxW,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS0sJ,GAAsB,CAACvR,MAIpC,IAAM7a,EAAuD3wH,EAAS/qB,KAAK2qK,O/UkfzExsJ,IAAI,SAACw5B,GACf,GAAI2G,YAAQ3G,EAAMkC,YAEd,OADAlC,EAAMizH,oBAAsB54H,GAAqB6E,YAC1Cc,EAEX,IAAMkzH,EAAiB3nH,aAAuBvL,EAAMkC,YAKpD,OAJAlC,EAAMizH,oBAAsB5nH,GAAiB6nH,GAC7ClzH,EAAMwyH,oBAAsB1nH,GAA2B9K,EAAMqC,YAC7DrC,EAAMqyH,eAAiB9tH,GAAUvE,EAAMuE,WACvCvE,EAAMuyH,eAAiB7uH,GAAU1D,EAAMqU,QAChCrU,I+U3fCv8B,EA1LT,SAAiCsgI,EAAkBE,GACtD,MAAO,CAAEt2I,KAAMsvJ,GAAkClZ,mBAAkBE,yBAyL9CkvB,CAAwBpvB,EAAkBE,MAEtD3qG,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS0sJ,GAAsB,CAACvR,MAC1BvxI,KAKf,SAAS+lJ,GAAqBv5H,EAA9Bj3B,GACmC,IAApCqhI,EAAoCrhI,EAApCqhI,sBAAuBr0F,EAAahtC,EAAbgtC,UACzB,OAAO,SAAUnsC,GAEb,OADAA,EAASu5I,MACF4R,KAAoC/0H,EAAa,CAAEoqG,wBAAuBr0F,cAC5ExW,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS4sJ,GAA2B,CAACzR,MAIzCn7I,EAxMT,SAAsC4vJ,EAAmBpvB,GAC5D,MAAO,CAAEt2I,KAAMsvJ,GAAwCoW,oBAAmBpvB,yBAuMrDqvB,CAA6BlgJ,EAAS/qB,KAAM47I,MAExD3qG,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS4sJ,GAA2B,CAACzR,MAC/BvxI,KAKf,SAASkmJ,GAAgB15H,EAAzBjhB,GACwB,IAAzBipB,EAAyBjpB,EAAzBipB,WAAY+N,EAAah3B,EAAbg3B,UACd,OAAO,SAAUnsC,GAEb,OADAA,EAASu5I,MACF4R,KAA+B/0H,EAAa,CAAEgI,aAAY+N,cAC5DxW,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS8sJ,GAAsB,CAAC3R,MAIpC,I/U6eyB4U,E+U7enBC,I/U6emBD,E+U7e0CpgJ,EAAS/qB,M/U8e3EmqK,oBAAsB1nH,GAA2B0oH,EAAanxH,YAC3EmxH,EAAanB,eAAiB9tH,GAAUivH,EAAajvH,WAEhDoC,YAAQ6sH,EAAah0H,kBACtBg0H,EAAah0H,eAAek0H,yBAA2B5oH,GAA2B0oH,EAAah0H,eAAee,iBAC9GizH,EAAah0H,eAAem0H,wBAA0B7oH,GAA2B0oH,EAAah0H,eAAeqB,gBAC7G2yH,EAAah0H,eAAeo0H,yBAA2BvoH,GAAiBmoH,EAAah0H,eAAeq0H,iBACpGL,EAAah0H,eAAeC,aAAe+zH,EAAah0H,eAAeC,aAAaj5B,IAAI,SAACstJ,GAIrF,OAHAA,EAAYC,iBAAmB1oH,GAAiByoH,EAAYtzH,SAC5DszH,EAAYE,mBAAqBlpH,GAA2BgpH,EAAYrzH,WACxEqzH,EAAYG,oBAAsBnpH,GAA2BgpH,EAAYpzH,YAClEozH,KAIfN,EAAa9zH,SAAWiH,YAAQ6sH,EAAa9zH,UAAY,GAAK8zH,EAAa9zH,SAE3E8zH,EAAazrC,QAAUphF,YAAQ6sH,EAAazrC,SAAW,GAAKyrC,EAAazrC,QAAQvhH,IAAI,SAAC0tJ,GAIlF,OAHAA,EAAeC,mBAAqBrpH,GAA2BopH,EAAeh0H,WAC9Eg0H,EAAeE,cAAgBtpH,GAA2BopH,EAAetkJ,MACzEskJ,EAAe7B,eAAiB9tH,GAAU2vH,EAAe3vH,WAClD2vH,IAGXV,EAAat0E,MAAQv4C,YAAQ6sH,EAAat0E,OAAS,GAAKs0E,EAAat0E,MAAM14E,IAAI,SAAC47B,GAO5E,OANAA,EAAKiyH,qBAAuBvpH,GAA2B1I,EAAKwF,OAC5DxF,EAAKkyH,iBAAmBlyH,EAAKkyH,iBAAiB9tJ,IAAI,SAAC+tJ,GAG/C,OAFAA,EAAgBC,mBAAqB1pH,GAA2BypH,EAAgB30H,WAChF20H,EAAgBE,kBAAoB3pH,GAA2BypH,EAAgBG,UACxEH,IAEJnyH,IAGJoxH,G+U/gBK/vJ,EAtNL,CAAE9V,KAAMsvJ,GAAkCuW,aAsNJC,MAEpCn6H,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS8sJ,GAAsB,CAAC3R,MAC1BvxI,KAKf,SAASsnJ,GAAe96H,EAAagJ,EAAgB+M,GACxD,OAAO,SAAUnsC,GAEb,OADAA,EAASu5I,MACF4R,KAAkC/0H,EAAagJ,EAAgB+M,GACjExW,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASgtJ,GAAqB,CAAC7R,MAInCn7I,EApOT,SAAgCmxJ,EAAiB/xH,GACpD,MAAO,CAAEl1C,KAAMsvJ,GAAiC2X,kBAAiB/xH,kBAmO5CgyH,CAAuBzhJ,EAAS/qB,KAAKysK,aAAcjyH,MAE/DvJ,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASgtJ,GAAqB,CAAC7R,MACzBvxI,KAKf,SAAS0nJ,GAAkBl7H,EAAawqG,EAAcz0F,GACzD,OAAO,SAAUnsC,GAEb,OADAA,EAASu5I,MACF4R,KAA+B/0H,KAA/B,CACHm7H,SAAU3wB,EAAa4wB,eAAeD,SACtCjyH,UAAWshG,EAAa6wB,eACxBlyH,SAAUqhG,EAAa8wB,iBACtB/uH,IAAcs4G,UAAU9uG,mGAC1BxW,KAAK,SAAChmB,GACL,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASmtJ,GAAqB,CAAChS,MAInCn7I,EAASktJ,QAERr3H,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASmtJ,GAAqB,CAAChS,MACzBvxI,eAKf,SAAS+nJ,GAAwBv7H,EAAawqG,GACjD,OAAO,SAAU5gI,GAEb,OADAA,EAASu5I,MACF4R,KAA+B/0H,EAAawqG,GAC9CjrG,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASmtJ,GAAqB,CAAChS,MAInCn7I,EAASktJ,QAEZr3H,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASmtJ,GAAqB,CAAChS,MACzBvxI,KAKf,SAASgoJ,GAAoBz7H,EAAa2kH,EAAmB1kH,GAChE,IAAIi1H,EAAsB,CAACz0H,GAAqB4D,oBAChD,OAAO,SAAUx6B,GAEb,OADAA,EAASu5I,MACF4R,K/U+dR,SAA8Ch1H,GAEjD,OADAA,EAAYgM,YAAc0pH,aAAmB11H,EAAYwM,IAAcR,cAChE,CAAE6H,KAAM7T,G+Uje6B+kH,CAAsD/kH,GAAcC,GACvGT,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAIT,OAHAu7G,EAAsBC,GAAqC37I,GAC3D3P,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS2tJ,GAAyBtC,IAGtCrrJ,EAzPL,CAAE9V,KAAMsvJ,GAAqCoU,4BAyPJ,CAAC9S,OAExCjlH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS2tJ,GAAyB,CAACxS,MAC7BvxI,KAKf,SAASioJ,GAATv8I,GAMJ,IALC6gB,EAKD7gB,EALC6gB,YACA8pG,EAID3qH,EAJC2qH,YACA6a,EAGDxlI,EAHCwlI,kBACAD,EAEDvlI,EAFCulI,YACAiX,EACDx8I,EADCw8I,4BAEIzG,EAAsB,CAACz0H,GAAqB4D,oBAChD,OAAO,SAAUx6B,GAEb,OADAA,EAASu5I,MACF4R,K/UhER,SAAqC9lH,EAAsB46F,GAAa,IACnE96F,EAAe86F,EAAf96F,WACFwmH,EAAoBvD,YAAenoB,GAEzC0rB,EAAkB/pH,UAAY+E,GAAkBtB,EAAsBsmH,EAAkB/pH,WAExF,IAAM0E,GAA6BjB,EAAqB1C,IAAcklG,cAChEthG,EAA4BlB,EAAqB1C,IAAcqlG,cAC/D4jB,EACFxlH,GAAiC65F,EAAY55F,YAAaC,EAA2BC,GA0BzF,MAAO,CAAEyD,KAxBI,CACT7E,aACAlD,MAAOoD,EAAqB1C,IAAcV,OAC1CiG,MAAOD,GAA8B5C,EAAqB1C,IAAcs5B,eACxE38B,UAAW+F,EAAqB1C,IAAcrD,WAC9CC,SAAU8F,EAAqB1C,IAAcpD,UAC7CqC,UAAW+pH,EAAkB/pH,UAC7BkwC,WAAY65E,EAAkB75E,WAC9BlvC,YAAaH,GAAe4C,GAC5BxC,6BAA8BmF,GAAgC3C,GAC9Di2G,eAAgBj2G,EAAqB1C,IAAcwJ,WACnDhK,YAAakD,EAAqB1C,IAAcR,aAC5C0pH,aAAmBxmH,EAAqB1C,IAAcR,cACtD,KACJivC,UAAWu6E,EAAkBv6E,UAC7B/7C,OAAQ,CACJiR,4BACAC,4BACA7C,2BAA4Bu8F,EAAY5qG,OAAOqO,2BAC/CpO,sBAAuB+P,EAAqB1C,IAAc68F,gBAE9Dn5F,YAAaulH,I+UgC2B1Q,CAA6C/kH,EAAa8pG,GAAc4a,GAC3GllH,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAAW,CACpBu7G,EAAsBC,GAAqC37I,GAC3D,IAAM69I,EAAgBvqH,IAAEC,QAAQ4uH,GAC5BzG,EACA,CAACyG,GAIL,OAFA9xJ,EAASy5I,GAAa+T,SACtBxtJ,EAASytJ,GAAuBD,IAIhC79I,EAAS/qB,MAAQ+qB,EAAS/qB,KAAKmtK,wBAC/B/xJ,EA3ST,CAAE9V,KAAMsvJ,GAAkC8T,0BA2SD,CAACxS,KAIrC96I,EAASqtJ,GAAyB,CAACvS,OAEtCjlH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASytJ,GAAuB,CAACtS,MAC3BvxI,KAKf,SAASooJ,GAATr8I,GAKJ,IAJCwgB,EAIDxgB,EAJCwgB,YACA8pG,EAGDtqH,EAHCsqH,YACA6a,EAEDnlI,EAFCmlI,kBACAD,EACDllI,EADCklI,YAEIwQ,EAAsB,CAACz0H,GAAqB4D,oBAChD,OAAO,SAAUx6B,GAEb,OADAA,EAASu5I,MACF4R,K/UkCR,SAAwC9lH,EAAsB46F,GAAa,IACtE96F,EAAoCE,EAApCF,WAAYorG,EAAwBlrG,EAAxBkrG,oBACdob,EAAoBvD,YAAenoB,GACnC73F,EAAoBlD,GAAqBC,GAC3CmE,EAAkBnE,EAAWr+B,SAASujC,KAAgBC,SAE1DqhH,EAAkB/pH,UA4NtB,SAAwCyD,EAAsBzD,GACtDsB,YAAQtB,KACRA,EAAY,IAGhB,IAAI6B,EAAc7B,EAAU/vB,KAAK,SAAC+0B,GAAD,OAAaA,EAAQzhD,OAChD0hD,EAAe3D,YAAQO,GACvBqD,EAAmBD,EAAe,EAAIE,GAAgBtD,EAAa7B,GAkBzE,OAfA6B,EAAc,CACV9F,cAHJ8F,EAAcoD,EAAe,GAAKpD,GAGJd,IAAchF,cACxCC,aAAc6F,EAAYd,IAAc/E,cACxCC,aAAc4F,EAAYd,IAAc9E,cACxCmJ,SAAU3B,EAAqB1C,IAAcqE,UAC7ClJ,KAAM2F,EAAYd,IAAc7E,MAChCC,QAASsH,EAAqB1C,IAAc5E,SAC5CC,OAAQqH,EAAqB1C,IAAc3E,QAC3Cz8B,MAAO8jC,EAAqB1C,IAAcphC,OAC1Cpc,OAAM0hD,GAAsBpD,EAAYt+C,KACxC8hD,kBAAiBJ,GAAsBpD,EAAYwD,gBACnDvJ,iBAAgBmJ,GAAsBpD,EAAY/F,gBAGtDkE,EAAUkF,GAAoBrD,EACvB7B,EArPuBqwH,CAA+B5sH,EAAsBsmH,EAAkB/pH,WAErG,IAAMoI,EAAO,CACT7E,aACAlD,MAAOoD,EAAqB1C,IAAcV,OAC1CiG,MAAOD,GAA8Bg4F,EAAYt9F,IAAcuF,QAC/D5I,UAAW2gG,EAAYt9F,IAAcrD,WACrCC,SAAU0gG,EAAYt9F,IAAcpD,UACpCqC,UAAW+pH,EAAkB/pH,UAC7BkwC,WAAYmuD,EAAYnuD,WACxBlvC,YAAaq9F,EAAYr9F,YACzBC,6BAA8Bo9F,EAAYp9F,6BAC1CV,YAAakD,EAAqB1C,IAAcR,aAC5C0pH,aAAmBxmH,EAAqB1C,IAAcR,cACtD89F,EAAY99F,YAChB9M,OAAQ,CACJiR,0BAA2B25F,EAAY5qG,OAAOiR,0BAC9CC,0BAA2B05F,EAAY5qG,OAAOkR,0BAC9C7C,2BAA4B2B,EAAqB1C,IAAc88F,yBAC/DnqG,uBAAuF,IAAhE+P,EAAqB1C,IAAc88F,yBAAoCp6F,EAAqB1C,IAAc88F,yBAA2BQ,EAAY5qG,OAAOC,uBAEnL+Q,YAAa45F,EAAY55F,aAG7B,IAAKkqG,GAAuBjnG,EAAiB,CACzCA,GAAkB,EAClB,IAAM4oH,EAAe9pH,EAAkB57C,QAAQ69C,KAAgBC,SAC/DlC,EAAkBroC,OAAOmyJ,EAAc,GACvCloH,EAAK7E,WAAaiD,EAAkBzsC,KAAK,KAW7C,OARI40I,IAAwBjnG,IACxBA,GAAkB,EAClBlB,EAAkBz3C,KAAK05C,KAAgBC,SACvCN,EAAK7E,WAAaiD,EAAkBzsC,KAAK,MAG7CquC,EAAKonC,UAAY9sC,GAAgBe,EAAsB2E,EAAKonC,WAErD,CAAEpnC,Q+U/EmCkxG,CAAgD/kH,EAAa8pG,GAAc4a,GAC9GllH,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAIT,OAHAu7G,EAAsBC,GAAqC37I,GAC3D3P,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASytJ,GAAuBpC,IAGpCrrJ,EAASqtJ,GAAyB,CAACvS,OAEtCjlH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASytJ,GAAuB,CAACtS,MAC3BvxI,KAKf,SAASuoJ,GAATv8I,GAKJ,IAJCugB,EAIDvgB,EAJCugB,YACA8pG,EAGDrqH,EAHCqqH,YACA6a,EAEDllI,EAFCklI,kBACAD,EACDjlI,EADCilI,YAEIwQ,EAAsB,CAACz0H,GAAqB4D,oBAChD,OAAO,SAAUx6B,GAEb,OADAA,EAASu5I,MACF4R,K/U2DR,SAA8C9lH,EAAsB46F,GACvE,IAAMz5F,EA2FV,SAA6BnB,GAAsB,IACvCsrG,EAAmBtrG,EAAnBsrG,eADuCyhB,EAEb/sH,EAAqB3C,SAASiuG,eAAxDx8I,EAFuCi+J,EAEvCj+J,QAAS8wC,EAF8BmtH,EAE9BntH,aAEXl7C,EAAM,GAMZ,OAJAoK,EAAQkN,QAAQ,SAAC1X,GACbI,EAAIJ,EAAQE,IAAMi8C,GAAcn8C,EAAQE,GAAI8mJ,EAAgB1rG,KAGzDl7C,EArGUsoK,CAAoBhtH,GAiBrC,MAZa,CACThQ,OAAQ,CACJiR,0BAaZ,SAAiC8sC,EAAY5sC,GACzC,IAAIxgD,GAAQ,EAMZ,OAJA6B,OAAOkK,KAAKy0C,GAAUnlC,QAAQ,SAAC9Q,GACvBi2C,EAASj2C,KAAMvK,GAAQ,KAGxBA,EAzB2BssK,CAAwBryB,EAAY5qG,OAAOiR,0BAA2BE,GAMhGD,0BAsBZ,SAAyC6sC,EAAY5sC,GACjD,IAAIxgD,GAAQ,EAMZ,OAJA6B,OAAOkK,KAAKy0C,GAAUnlC,QAAQ,SAAC9Q,GACvBi2C,EAASj2C,KAAQvK,EAAQotF,KAG1BptF,EAlC2BusK,CAAgCtyB,EAAY5qG,OAAOkR,0BAA2BC,IAO5GH,YAAa,CACTm1G,cAAe91G,GAAyBL,GACxCmB,WACA4qC,UAAWnrC,GAAiBZ,K+UzEsB61G,CAAsD/kH,EAAa8pG,GAAc4a,GAClIllH,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAIT,OAHAu7G,EAAsBC,GAAqC37I,GAC3D3P,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASytJ,GAAuBpC,IAGpCrrJ,EAASqtJ,GAAyB,CAACvS,OAEtCjlH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASytJ,GAAuB,CAACtS,MAC3BvxI,KAKf,SAAS4oJ,GAAcp8H,GAC1B,OAAO,SAAUp2B,GAEb,OADAA,EAASu5I,MACF4R,KAA6B/0H,GAC/BT,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS0tJ,GAAuB,CAAC/9I,EAAS7N,gBAG9C9B,EAjXL,CAAE9V,KAAMsvJ,KAkXH3uG,IAAYS,2BAA2BC,KACvCV,IAAYS,2BAA2BE,KACvCrC,KAA0BsC,KAAYC,UAEzC7V,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS0tJ,GAAuB,CAACvS,MAC3BvxI,KAKf,SAAS6oJ,GAAmBC,EAAiB5X,EAAmB1kH,GACnE,IAAIi1H,EAAsB,CAACz0H,GAAqB4D,oBAEhD,OAAO,SAAUx6B,GAEb,OADAA,EAASu5I,MACF4R,KAAkCuH,EAAiBt8H,GACrDT,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAIT,OAHAu7G,EAAsBC,GAAqC37I,GAC3D3P,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASiuJ,GAAoB5C,IAGjCrrJ,EAASizE,GAAsB,CAAC6nE,OAEnCjlH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASiuJ,GAAoB,CAAC9S,MACxBvxI,KAKf,SAAS+oJ,KACZ,OAAO,SAAU3yJ,GAEb,OADAA,EAASu5I,MACF4R,OACFx1H,KAAK,SAAChmB,GACCA,EAASmgC,UACT9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,gBAGpC9B,EAASizE,GAAsB,CAAC,mCAEnCp9C,MAAM,SAACjsB,GAEJ,MADA5J,EAASy5I,GAAa,CAAC7vI,KACjBA,KAMf,SAASgpJ,GAATv8I,GAMJ,IALCw8I,EAKDx8I,EALCw8I,iBACAC,EAIDz8I,EAJCy8I,iBACAC,EAGD18I,EAHC08I,qBACAC,EAED38I,EAFC28I,uBACAt3G,EACDrlC,EADCqlC,YAEA,OAAO,SAAU17C,GAEb,OADA0xC,KAAYxlC,OACLi/I,KAAuC,CAC1C0H,mBACAI,WAAYH,EACZC,uBACAC,yBACAt3G,gBAEC/lB,KAAK,WACF+b,KAAYn5C,SAEfs9B,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB8nC,KAAYn5C,OACNqR,KAKf,SAASspJ,GAA0BC,EAAMC,GAAS,IAC7CC,EAA6CF,EAA7CE,yBAA0BC,EAAmBH,EAAnBG,eAElC,OAAO,SAAUtzJ,GACbA,EAASu5I,MAET,IAAMga,EAAW,GAEXC,EAAuBrI,KAAyCkI,EAA0BD,GAC3Fz9H,KAAK,SAAChmB,GACH,OAAIA,EAASmgC,WACT9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASutJ,GAA+B,CAACpS,OAItCxrI,IAEVkmB,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASutJ,GAA+B,CAACpS,MACnCvxI,IAGd2pJ,EAAS5iK,KAAK6iK,GAEd,IAAMC,EAActI,KAAiCmI,GAAgB39H,KAAK,SAACs2C,GACvE,OAAIA,EAAan8B,WACb9vC,EAASy5I,GAAa,CAAC9pI,SAAS7N,qBAChC9B,EAASutJ,GAA+B,CAACpS,OAItClvE,IACRp2C,MAAM,SAACjsB,GAGN,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASutJ,GAA+B,CAACpS,MACnCvxI,IAGV2pJ,EAAS5iK,KAAK8iK,GAEdz4G,QAAQr0C,IAAI4sJ,GAAU59H,KAAK,SAAC+9H,GACxB,IAAItoF,EAAcsoF,EAAe,GAAG9uK,KAAKwmF,YAGzCA,GADAA,EAAcA,EAAYthF,QAAQ,MAAO4pK,EAAe,GAAG9uK,KAAK+uK,UACtC7pK,QAAQ,MAAO4pK,EAAe,GAAG9uK,KAAKgvK,YAEhE/gF,YAASzH,GACTprE,EAhgBD,CAAE9V,KAAMsvJ,GAA6CgU,cAggBV,CAAC,wCAKhD,SAASqG,GAAsBnxH,EAAUu9F,GAC5C,OAAO,SAAUjgI,GACb,IAAMqrJ,EAAsB,CAACz0H,GAAqB4D,oBAC5Cs5H,E/UyOP,WAAmF,IAAjCpxH,EAAiCj4C,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAtB,GAAIw1I,EAAkBx1I,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAJ,GAClF,GAAK44C,YAASX,IAAcW,YAAS48F,GAArC,CADsF,IAK9E8zB,EAA8BrxH,EAA9BqxH,0BACA7rH,EAAU+3F,EAAV/3F,MAIR,OgV/zBG,WAAqG,IAAvD/R,EAAuD1rC,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAzC,GAAIuwJ,EAAqCvwJ,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAzB,GAAIupK,EAAqBvpK,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAH,GACrG,GAAI44C,YAASlN,IAAiBkN,YAAS23G,IAAe33G,YAAS2wH,IAAsD,IAAlCA,EAAgBpzF,cAInG,MAAO,CACHqzF,YAAa99H,EACbs9C,MAAOunE,EACPkZ,cAAeF,EAAgBpzF,ehVuzB5BuzF,CgVl1BJ,SAAmDh+H,GACtD,IAAKkN,YAASlN,GACV,MAAO,GAGX,IAAIi+H,EAAiB,CACjB1jF,UAAWv6C,EAAYwM,IAAcrD,WACrCk0C,SAAUr9C,EAAYwM,IAAcpD,WAGlCkE,EAAc/B,GAAevL,GAMnC,OAJIkN,YAASI,IAAgBJ,YAASI,EAAYd,IAAc5E,YAC5Dq2H,EAAenjF,QAAUxtC,EAAYd,IAAc5E,UAkB3D,WAAkE,IAAjBoM,EAAiB1/C,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAJ,GACtD4pK,EAAuB,GAE3B,OAAIhxH,YAAS8G,IAIbtiD,OAAOkK,KAAKo4C,GAAY9oC,QAAQ,SAAA9Q,GAC5B,IAAM+jK,EAUd,WAAqE,IAAxB/jK,EAAwB9F,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAlB,GAAIzE,EAAcyE,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAN,KAC3D,OAAK44C,YAAS9yC,IAAS8yC,YAASr9C,GAIzB,CACHuuK,IAAKhkK,EACLs1C,MAAO7/C,GALA,GAZWwuK,CAAoCjkK,EAAK45C,EAAW55C,IAElE8yC,YAASixH,IACTD,EAAqB1jK,KAAK2jK,KAI3BD,GAXIA,EAnBJI,CAAwCL,GhVg0BlBM,CAA0Cz0B,GAEL/3F,EAAO6rH,I+UnPvC7Y,CAA0Dx4G,EAAUu9F,GAElG,GAAK58F,YAASywH,IAAkE,IAAxCA,EAAsBI,cAA9D,CAJuB,IASfS,EAAoCjyH,EAApCiyH,gCAER,GAAKtxH,YAASsxH,GAMd,OADA30J,EAASu5I,MACF4R,KAAqC2I,EAAuBa,GAC9Dh/H,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASkuJ,GAAmC,CAACv+I,EAAS7N,gBAG1D9B,EAteL,CAAE9V,KAAMsvJ,OAweN3jH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASkuJ,GAAmCtkJ,IACtCA,IAjBV5J,EAASkuJ,GAAmC7C,SAP5CrrJ,EAASkuJ,GAAmC7C,8HEtfzCuJ,OA3GsB,SACjClyH,EACAu+F,GAsFA,OAlDA,SAA4Dv+F,GAAU,IAAAmyH,EAOlE,GALAnyH,EAASC,IAAcs5B,cAAch3B,aAAeg8F,EAAgBt+F,IAAcuF,OAClFxF,EAASC,IAAcV,OAAOgD,aAAeg8F,EAAgBt+F,IAAcV,OAC3ES,EAASC,IAAcrD,WAAW2F,aAAeg8F,EAAgBt+F,IAAcrD,WAC/EoD,EAASC,IAAcpD,UAAU0F,aAAeg8F,EAAgBt+F,IAAcpD,WAEzE0D,IAAEC,QAAQ+9F,EAAgBt+F,IAAcC,cAAe,CACxDF,EAASC,IAAcC,aAAaqC,aAAe,GAEnD,IAAMnC,EAAkBG,IAAEyqB,UAAUuzE,EAAgBt+F,IAAcC,cAI5DG,EAuClB,SAA4BL,EAAUoyH,EAAkChyH,GAMpE,OAJsBJ,EAASC,IAAc5E,SAAS1zB,QACjDwH,KAAK,SAACksB,GAAD,OAAckF,IAAEC,QAAQnF,EAAQoF,cAClCpF,EAAQqF,OAAS0xH,KAKPpyH,EAASC,IAAc5E,SAAS1zB,QAC7CwH,KAAK,SAACksB,GAAD,OAAckF,IAAEC,QAAQnF,EAAQoF,cAClCL,EAAgBh8B,SAASi3B,EAAQoF,eAlDTG,CAAmBZ,EAFFu+F,EAAgBt+F,IAAcE,8BAEgBC,GAEvFJ,EAASC,IAAcC,aAAaqC,aAAalC,gBAAkBA,EAEnEL,EAASC,IAAcC,aAAaqC,aAAa1B,YAAcT,EAAgBh5C,QAAQi5C,EAAgBI,YAAa,SAGpFj8C,IAAhC+5I,EAAgB9+F,cAChBO,EAASC,IAAcR,aAAa8C,aAAe6C,aAAuBm5F,EAAgB9+F,cAG9F,IAAIsB,EAAc,GAClB,IAAKP,YAAQ+9F,EAAgBr/F,WAAY,CACrC,IAAMmzH,EAAe9zB,EAAgBr/F,UAAU/vB,KAAK,SAAC+0B,GAAD,OAAaA,EAAQzhD,OACzEs+C,EAAcP,YAAQ6xH,GAAgB,GAAKA,EAG/CryH,EAASC,IAAchF,cAAcsH,aAAexB,EAAY9F,aAChE+E,EAASC,IAAc/E,cAAcqH,aAAexB,EAAY7F,aAChE8E,EAASC,IAAc9E,cAAcoH,aAAexB,EAAY5F,aAChE6E,EAASC,IAAcqE,UAAU/B,aAAexB,EAAYuD,SAC5DtE,EAASC,IAAc7E,MAAMmH,aAAexB,EAAY3F,KACxD4E,EAASC,IAAc5E,SAASkH,aAAexB,EAAY1F,QAC3D2E,EAASC,IAAc3E,QAAQiH,aAAexB,EAAYzF,OAC1D0E,EAASC,IAAcphC,OAAO0jC,aAAexB,EAAYliC,MAEzD,IAAM8zB,EAAS4rG,EAAgBt+F,IAActN,QAO7C,OANAqN,EAASC,IAAc4kG,eAAetiG,cAAtC+vH,GAAAH,EAAA,GAEKlyH,IAAcklG,cAAgBxyG,EAAOiR,2BAF1C0uH,GAAAH,EAGKlyH,IAAcqlG,aAAe3yG,EAAOkR,2BAHzCsuH,GAMOnyH,EA/EAuyH,EAIChO,EAA2DvkH,EAA3DukH,0CAA2CpM,EAAgBn4G,EAAhBm4G,YAEnDn4G,EAASC,IAAck4G,aAAeA,EACtCn4G,EAASC,IAAcwJ,WAAazJ,EAASC,IAAcwJ,WAC3DzJ,EAASC,IAAcm4G,mBAAqBmM,EAC5CvkH,EAASC,IAAcs5B,cAAgBv5B,EAASC,IAAcs5B,cAC9Dv5B,EAASC,IAAc8sG,qBAAuB/sG,EAASC,IAAc8sG,qBACrE/sG,EAASC,IAAcV,OAASS,EAASC,IAAcV,OACvDS,EAASC,IAAcrD,WAAaoD,EAASC,IAAcrD,WAC3DoD,EAASC,IAAcpD,UAAYmD,EAASC,IAAcpD,UAC1DmD,EAASC,IAAcR,aAAeO,EAASC,IAAcR,aAC7DO,EAASC,IAAc+tG,kBAAoBhuG,EAASC,IAAc+tG,kBAClEhuG,EAASC,IAAc5E,SAAW2E,EAASC,IAAc5E,SACzD2E,EAASC,IAAc3E,QAAU0E,EAASC,IAAc3E,QACxD0E,EAASC,IAAcphC,OAASmhC,EAASC,IAAcphC,OACvDmhC,EAASC,IAAchF,cAAgB+E,EAASC,IAAchF,cAC9D+E,EAASC,IAAc/E,cAAgB8E,EAASC,IAAc/E,cAC9D8E,EAASC,IAAc9E,cAAgB6E,EAASC,IAAc9E,cAC9D6E,EAASC,IAAc7E,MAAQ4E,EAASC,IAAc7E,MACtD4E,EAASC,IAAcqE,UAAYtE,EAASC,IAAcqE,UAC1DtE,EAASC,IAAcC,aAAeF,EAASC,IAAcC,aAC7DF,EAASC,IAAc6tG,yBAA2B9tG,EAASC,IAAc6tG,yBACzE9tG,EAASC,IAAc4kG,eAAiB7kG,EAASC,IAAc4kG,eAC/D7kG,EAASC,IAAc88F,yBAA2B/8F,EAASC,IAAc88F,yBAElE/8F,IA/BX,IAMYukH,EAA2CpM,ooCCcrDqK,eACF,SAAAA,EAAYppI,GAAO,IAAAo5I,EAAA/pJ,qCAAA+5I,4DAAAiQ,CAAAt5J,MAAA,IAAAmyD,GACf7iD,MAAAiqJ,GAAAlQ,GAAA9/J,KAAAyW,KAAMigB,+CAANjgB,SAEqCigB,MAA7B4mB,EAHOsrB,EAGPtrB,SAAUyJ,EAHH6hB,EAGG7hB,UAEZ1I,EAAc4xH,GAAiC3yH,EAASf,aACxD09E,EAAYg2C,GAAiC3yH,EAASf,aAN7C,OAQfx2B,EAAK5J,MAAL+zJ,GAAA,GACOvvB,GAAa5E,wBADpBo0B,GAAAL,EAAA,GAEKvyH,IAAc5E,QAAUs3H,GAA6C5xH,EAAad,IAAc5E,UAFrGw3H,GAAAL,EAGKvyH,IAAc3E,OAASq3H,GAA6C5xH,EAAad,IAAc3E,SAHpGu3H,GAAAL,EAIKvyH,IAAcphC,MAAQ8zJ,GAA6C5xH,EAAad,IAAcphC,QAJnGg0J,GAAAL,EAKKvyH,IAAc7E,KAAOu3H,GAA6C5xH,EAAad,IAAc7E,OALlGy3H,GAAAL,EAMKvyH,IAAchF,aAAe03H,GAA6C5xH,EAAad,IAAchF,eAN1G43H,GAAAL,EAOKvyH,IAAc/E,aAAey3H,GAA6C5xH,EAAad,IAAc/E,eAP1G23H,GAAAL,EAQKvyH,IAAc9E,aAAew3H,GAA6C5xH,EAAad,IAAc9E,eAR1G03H,GAAAL,EASKvyH,IAAcqE,SAAWquH,GAA6C5xH,EAAad,IAAcqE,WATtGuuH,GAAAL,EAUKvyH,IAAcR,YAAck9E,EAAYm9B,aAAWn9B,EAAUx/E,KAAMw/E,EAAUv/E,MAAOu/E,EAAUt/E,KAAO,MAV1Gw1H,GAAAL,EAAA,YAWI/oH,GAXJopH,GAAAL,EAAA,kBAYoB,GAZpBK,GAAAL,EAAA,yBAa2B,GAb3BA,IAgBA/pJ,EAAK06I,eAAiBnxG,KAAMwwB,YAC5B/5D,EAAKgkI,cAAgBz6F,KAAMwwB,YAC3B/5D,EAAKsmI,eAAiBqU,GAAoCpjH,GAE1Dv3B,EAAKqqJ,yBAA2BrqJ,EAAKqqJ,yBAAyB7sJ,KAA9B8sJ,MAAAtqJ,KAChCA,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjB8sJ,MAAAtqJ,KACnBA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlB8sJ,MAAAtqJ,KACpBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5B8sJ,MAAAtqJ,KAC9BA,EAAKuqJ,qCAAuCvqJ,EAAKuqJ,qCAAqC/sJ,KAA1C8sJ,MAAAtqJ,KAC5CA,EAAKwqJ,wBAA0BxqJ,EAAKwqJ,wBAAwBhtJ,KAA7B8sJ,MAAAtqJ,KAjChBA,2PADSwpC,gEAqCR,IAAAopB,EACwBliE,KAAKigB,MAArC+rI,EADQ9pF,EACR8pF,SAAUnlH,EADFq7B,EACEr7B,SAAU7G,EADZkiC,EACYliC,QAExBqH,YAAQR,IACRmlH,IAGJhsJ,KAAK0F,MAAMqkJ,sBAAwB3B,GAAgCpoJ,KAAKszI,cAAetzI,KAAKigB,MAAO4/H,KAAawJ,mBAPhG,IASR0Q,EAA2BlzH,EAA3BkzH,uBACR/5H,EAAQqzH,mBAAmB0G,GAAwB,qDAG7Bp1F,GAAW,IAAAp1D,EAAAvP,KAE7B6mC,EAOA89B,EAPA99B,SACAmzH,EAMAr1F,EANAq1F,oBACAnhI,EAKA8rC,EALA9rC,QACA2pH,EAIA79E,EAJA69E,qBACAyX,EAGAt1F,EAHAs1F,gCACAC,EAEAv1F,EAFAu1F,kCACA90B,EACAzgE,EADAygE,gBAGI+0B,EAAmBn6J,KAAK0F,MAAxBy0J,eAMR,GAJI3yH,YAASX,KAAc7mC,KAAK0F,MAAMqkJ,wBAClC/pJ,KAAK0F,MAAMqkJ,sBAAwB3B,GAAgCpoJ,KAAKszI,cAAe3uE,EAAWk7E,KAAawJ,oBAG9GxwH,IAAWohI,GAAoCD,EAM/CnhI,IACDmhI,GAKCnhI,GACAmhI,GACDh6J,KAAK4hD,SAASopG,IAAmC,GAC7C,WACIf,GAAgC16I,EAAKy6I,kBAI5CnxH,GAAYwO,YAAQ+9F,KACrB80B,GAAsCC,GACtCn6J,KAAKo6J,sBAAsBh1B,IAd3BplI,KAAK4hD,SAASopG,IAAmC,GAAQhrJ,KAAK65J,0CARlE,CAAyE,IAC7D13H,EAAkB0E,EAAlB1E,OAAQz8B,EAAUmhC,EAAVnhC,MAChB1F,KAAK4hD,SAASopG,GAAyCxI,EAAsBrgH,EAAQz8B,mDAwBvE20J,GAAqB,IAC/BxzH,EAAa7mC,KAAKigB,MAAlB4mB,SAEFu+F,EAAkBh+F,IAAEyqB,UAAUwoG,GAE9BC,EAAsB,IAAIvB,GAA6BlyH,EAAUu+F,GAEnEA,EAAgB97F,WAAWr+B,SAASujC,KAAgBgxG,oBACpD8a,EAAoBrlB,WAAWvtI,YAAa,EAC5C4yJ,EAAoBrlB,WAAW/qJ,MAAQ28C,EAAS0zH,6BAEpDv6J,KAAK4hD,SAASopG,GAAkCsP,IAEhDt6J,KAAK4hD,SACD,SAACgvD,GAAD,OAAA6oD,GAAA,GACO7oD,EADP,CAEI0pD,sBACAH,gBAAgB,qDAKL,IACXn6H,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAa/E,yBAC3BnlG,EAAQovH,8FAG2B,IAAA7f,EAK/BvvI,KAAKigB,MAHLu6I,EAF+BjrB,EAE/BirB,2BACA3zH,EAH+B0oG,EAG/B1oG,SACA4zH,EAJ+BlrB,EAI/BkrB,2BAGCjzH,YAASX,IACV4zH,IAGJD,sEAGe9mK,0FACfA,EAAMkmB,iBACEitB,EAAa7mC,KAAKigB,MAAlB4mB,UACAkuG,EAAc/0I,KAAK0F,MAAnBqvI,aAGJluG,EAAS6kH,eAAiB3W,GAG9B/0I,KAAK4hD,SAASopG,GAAsCnkH,GAAW7mC,KAAKsqJ,kVAIpE,GAAItqJ,KAAK0F,MAAM49H,cAAf,CAA8B,IAClBxgH,EAAW9iB,KAAK0F,MAAhBod,OACRmnI,GAAuCnnI,EAAQ9iB,KAAK41I,qBAIxD51I,KAAK4hD,SAASopG,IAAmC,GAAOhrJ,KAAK85J,2EAGvC,IAAAtqB,EACyBxvI,KAAKigB,MAA5C+f,EADcwvG,EACdxvG,QAAS6G,EADK2oG,EACL3oG,SAAUu+F,EADLoK,EACKpK,gBACnBs1B,EAAmB7zH,EAAnB6zH,eAERzQ,GAAgCjqJ,KAAK41I,eAAe9uG,IAAcV,QAClEpG,EAAQ6vH,4BAA4B7vJ,KAAK0F,MAAO0/H,EAAiBs1B,yCAGvD,IAAAhO,EAMN1sJ,KAAKigB,MAJL+5I,EAFMtN,EAENsN,oBACAlL,EAHMpC,EAGNoC,uBACA6L,EAJMjO,EAINiO,wBACA9zH,EALM6lH,EAKN7lH,SAGJ,GAAIQ,YAAQR,GACR,OAAO,KAGX,IAAMw/F,EAAoBj/F,IAAEC,QAAQynH,GAA0B6L,EAA0B7L,EAExF,OAAQ32G,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACjBxsG,GAAAllD,EAAA/D,cAACk9J,GAAD,CACIz0B,QAAS33H,KAAKgqJ,eACd/jB,iBAAkB+zB,EAClB9zB,SAAUG,IACbrmI,KAAK25J,2BACNxhH,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfsB,iBAAkBlrH,GAAqB8C,yFAM5B,IAAApuB,EAAAzP,KACf6mC,EAAa7mC,KAAKigB,MAAlB4mB,SADeywB,EAEiCt3D,KAAK0F,MAArD09H,EAFe9rE,EAEf8rE,kBAAmBlhG,EAFJo1B,EAEIp1B,QAASmhG,EAFb/rE,EAEa+rE,gBAC5BlhG,EAA+B0E,EAA/B1E,OAAQ4E,EAAuBF,EAAvBE,YAAarhC,EAAUmhC,EAAVnhC,MACvB4mJ,EAAiBC,YAAe1lH,GAChC2lH,EAAyBnX,GAAwBiX,EAAexlH,IAAcphC,OAAQ1F,KAAK0F,MAAMohC,IAAcphC,OtDrOjG,QsDoPpB,OAbA4mJ,EAAexlH,IAAc5E,SAASkH,aAAeppC,KAAK0F,MAAMohC,IAAc5E,SAC9EoqH,EAAexlH,IAAc3E,QAAQiH,aAAeppC,KAAK0F,MAAMohC,IAAc3E,QAC7EmqH,EAAexlH,IAAcphC,OAAO0jC,aAAeojH,EACnDF,EAAexlH,IAAc7E,MAAMmH,aAAeppC,KAAK0F,MAAMohC,IAAc7E,MAC3EqqH,EAAexlH,IAAchF,cAAcsH,aAAeppC,KAAK0F,MAAMohC,IAAchF,cACnFwqH,EAAexlH,IAAc/E,cAAcqH,aAAeppC,KAAK0F,MAAMohC,IAAc/E,cACnFuqH,EAAexlH,IAAc9E,cAAcoH,aAAeppC,KAAK0F,MAAMohC,IAAc9E,cACnFsqH,EAAexlH,IAAcqE,UAAU/B,aAAeppC,KAAK0F,MAAMohC,IAAcqE,eAEjC9/C,IAA1C2U,KAAK0F,MAAMohC,IAAcR,cAA8BtmC,KAAK0F,MAAMohC,IAAcR,uBAAwBzoB,OACxGyuI,EAAexlH,IAAcR,aAAa8C,aAAeppC,KAAK0F,MAAMohC,IAAcR,cAG/EqvG,GAAY,CACf9uG,SAAUylH,EACV1W,eAAgB51I,KAAK41I,eACrBG,YAAa,CAAE7uG,gBAAiBhF,GAChC2zG,WAAY,CAAEzS,oBAAmBl5I,MAAOi4C,EAASA,EAAOj4C,MAAQ6wC,GAAqB6E,aACrFk2G,UAAW,CAAEzS,kBAAiBn5I,MAAOwb,EAAQA,EAAMxb,MAAQ6wC,GAAqB6E,aAChF0jC,aAAc,SAAC5vE,GAAY+b,EAAKmyC,SAASopG,GAAmCt3J,EAAM3D,QAAS0f,EAAK40I,iBAChGrO,kBAAmB,SAACtiJ,GAAY+b,EAAKmyC,SAASopG,GAAiDt3J,EAAM3D,QAAS0f,EAAK40I,iBACnHlO,4BAA6B,SAACziJ,GAAY+b,EAAKmyC,SAASopG,GAAkDt3J,EAAM3D,UAChHqmJ,iBAAkB,SAAC1iJ,GAAY+b,EAAKmyC,SAASopG,GAAkCt3J,KAC/E2iJ,wBAAyB,SAAC3iJ,GAAY+b,EAAKmyC,SAASopG,GAAyCt3J,EAAOqzC,EAAYuyB,YAAa7pD,EAAK40I,iBAClI9N,oBAAqB,SAACj3F,GAAY7vC,EAAKmyC,SAASopG,GAAqC1rG,KACrFg3F,oBAAqB,SAAC5iJ,GAClB+b,EAAKmyC,SAASopG,GAAqCt3J,EAAM3D,OAAQoyC,EAAQz8B,KAE7E+wI,6BAA8B,SAAC/iJ,GAC3B+b,EAAKmyC,SAASopG,GAA8Ct3J,EAAM3D,OAC9D82C,EAAS84B,gBAAiB94B,EAAS88G,6BAE3CnN,sBAAuB,SAACt+D,GAAc,IAC1Bp1D,EAAWrT,EAAK/J,MAAhBod,OACR,OAAO2pI,GAA8Cv0E,EAAWp1D,uCAKnE,IACGqgH,EAAanjI,KAAK0F,MAAlBy9H,SADHy3B,EAEyB56J,KAAKigB,MAA3B4Y,EAFH+hI,EAEG/hI,QAASgO,EAFZ+zH,EAEY/zH,SACT0f,EAAgD1f,EAAhD0f,WAAY0hG,EAAoCphH,EAApCohH,gBAAiBE,EAAmBthH,EAAnBshH,eAErC,OACIhwG,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAKhvD,KAAKszI,cAAenjJ,UAAW23J,GAAmC9nJ,KAAKigB,QAC7Ek4B,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAW+3J,GAAkCloJ,KAAKigB,QAE/CunB,YAAS2gH,IACThwG,GAAAllD,EAAA/D,cAAA,WACIipD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAK09J,EAAgBh4J,UAAU,iCAAiC+5E,aAAW,UAGxF/xB,GAAAllD,EAAA/D,cAACo5D,GAAD,CACI/B,WAAYA,IAEhBpO,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACTgzI,GAAYtqG,EAAWsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KACvD/lE,KAAKoqJ,gBAIV5iH,YAASygH,IACT9vG,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAKw9J,EAAiB93J,UAAU,kCAAkC+5E,aAAW,yMAQ1Gm/E,GAAkB5wG,UAAY,CAC1B5f,QAAS6f,KAAUqM,KAAKD,WACxBknG,SAAUtzG,KAAUx3C,KAAK4jD,WACzBxU,UAAWoI,KAAUj5B,OACrBonB,SAAU6R,KAAUnsD,QA4BTktD,oBAzBf,SAAyB/zC,EAAOykH,GAC5B,MAAO,CACHtxF,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9C/lH,SAAUO,IAAEC,QAAQ8iF,EAAStjF,UAAYnhC,EAAMmnJ,aAAahmH,SAAWsjF,EAAStjF,SAChFmzH,oBAAqBt0J,EAAMm1J,mBAAmBb,oBAC9ClL,uBAAwBppJ,EAAMm1J,mBAAmB/L,uBACjDmL,gCAAiCv0J,EAAMo1J,sBAAsBb,gCAC7Dc,wBAAyBr1J,EAAMo1J,sBAAsBC,wBACrDvY,qBAAsB98I,EAAMo1J,sBAAsBtY,qBAClDpd,gBAAiB1/H,EAAMs1J,YAAY51B,gBACnC80B,kCAAmCx0J,EAAMs1J,YAAYd,oCAI7D,SAA4B/1J,GACxB,MAAO,CACH67B,QAAS,CACL6vH,4BAA6BzpJ,aAAmB60J,GAAmD92J,GACnGirJ,6BAA8BhpJ,aAAmB60J,GAAoD92J,GACrGosJ,0BAA2BnqJ,aAAmB80J,GAA8C/2J,GAC5FkvJ,mBAAoBjtJ,aAAmB+0J,GAAuCh3J,MAK3Es1C,CAGb4vG,IC3UK,SAAS+R,KACZ,MAAO,CAAE/sK,KAAMsvJ,IAIZ,SAAS0d,KAAuD,IAA/B5c,EAA+B7vJ,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAjB,GAAI0sK,EAAa1sK,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAJ,GAC/D,OAAO,SAAUuV,GAEb,OADAA,EAASu5I,MCXV,WAA+D,IAA/Be,EAA+B7vJ,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAjB,GAAI0sK,EAAa1sK,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAJ,GAC1DowJ,EAAcx3G,YAASi3G,GAAeA,EAAc7kH,IAAa2hI,2BAMrE,OAJG/zH,YAAS8zH,KACRtc,EAAW,GAAA/zJ,OAAM+zJ,EAAN,QAAA/zJ,OAAwBqwK,IAGhC3hI,MAAMqlH,EAAa,CACtBtkH,OAAQ,MACRC,QAAS,CAAEC,eAAgB,sBAE1Bd,KAAKC,KACLC,MAAMC,KDAAuhI,CAAuC/c,EAAa6c,GACtDxhI,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASi3J,MAhBtB,IAAwCK,EAmB/Bt3J,GAnB+Bs3J,EAmBS3nJ,EAAS/qB,KAlBtD,CAAEsF,KAAMsvJ,GAAwC8d,wBAoB9CzhI,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASi3J,MACHrtJ,ssBENhB2tJ,eACF,SAAAA,EAAYz7I,GAAO,IAAA3Q,IAAA,uCAAAosJ,4DAAAC,CAAA37J,OACfsP,MAAAssJ,GAAAF,GAAAnyK,KAAAyW,KAAMigB,+CAANjgB,SAEK0F,yUAALm2J,CAAA,GACO3xB,GAAa3E,sBAGpBj2H,EAAK06I,eAAiBnxG,KAAMwwB,YAC5B/5D,EAAKsmI,eAAiB,GAEtBtmI,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjBgvJ,MAAAxsJ,KACnBA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlBgvJ,MAAAxsJ,KACpBA,EAAKysJ,cAAgBzsJ,EAAKysJ,cAAcjvJ,KAAnBgvJ,MAAAxsJ,KACrBA,EAAK0sJ,oBAAsB1sJ,EAAK0sJ,oBAAoBlvJ,KAAzBgvJ,MAAAxsJ,KAC3BA,EAAK+rJ,wBAA0B/rJ,EAAK+rJ,wBAAwBvuJ,KAA7BgvJ,MAAAxsJ,KAC/BA,EAAK2sJ,iBAAmB3sJ,EAAK2sJ,iBAAiBnvJ,KAAtBgvJ,MAAAxsJ,KAExBA,EAAK+rJ,0BAjBU/rJ,qPADOwpC,kEAqBA,IAAAqZ,EAOlBnyD,KAAKigB,MALL+f,EAFkBmyB,EAElBnyB,QACA6G,EAHkBsrB,EAGlBtrB,SACAq1H,EAJkB/pG,EAIlB+pG,qBACAC,EALkBhqG,EAKlBgqG,sBACAb,EANkBnpG,EAMlBmpG,OAGC9zH,YAASX,KAAaW,YAASxH,IAAck8H,GAAyB10H,YAAS20H,IAChFn8H,EAAQq7H,wBAAwBtgI,GAAqB6E,YAAa07H,+CAKtEt7J,KAAKo8J,aACLp8J,KAAKq8J,uBACLr8J,KAAKm4B,8DAILn4B,KAAKutD,oEAGiBoX,GAAW,IAE7Bu3F,EAGAv3F,EAHAu3F,qBACAC,EAEAx3F,EAFAw3F,sBACAtjI,EACA8rC,EADA9rC,QAGEyjI,EAAc5mB,YAAY11I,KAAKigB,MAAM4mB,SzDvErC,YyDwEA01H,EAAc7mB,YAAY/wE,EAAU99B,SzDxEpC,YyD0ED21H,YAAoBF,EAAaC,KAItCv8J,KAAKq8J,qBAAqB13F,GAErB9rC,IAAWqjI,GAAyB10H,YAAS20H,IAC9Cn8J,KAAKo8J,WAAWz3F,yCAKG,IAAhBA,EAAgB/1E,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAJ,GACXi4C,GAAaW,YAASm9B,GAAaA,EAAY3kE,KAAKigB,OAApD4mB,SAER,GAAKW,YAASX,GAAd,CAHuB,IAOfl+B,EAAak+B,EAAbl+B,SAEH6+B,YAAS7+B,IAId3I,KAAK4hD,SvBgYyB,eAACm2B,EAADnpF,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAU,GAAV,OAAiB,SAAC8W,GACpD,OAAK8hC,YAASuwC,GAQd2pE,GAAA,GACOh8I,EAK4B,WAAiB,IAAhBqyE,EAAgBnpF,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAP,GACzC6tK,EAAe,EACbC,EAAkB,GAExB,OAAKl1H,YAASuwC,IAIdA,EAAOvyE,QAAQ,SAACwyE,GACZ,IAAMy/D,EAAQ,GAAAxsJ,OAAM+sF,EAAMy/D,SAAZ,KAAAxsJ,OAAwBwxK,GACtCA,IAEIj1H,YAASiwG,KACTilB,EAAgBjlB,GAAYz/D,KAI7B0kF,GAZIA,EAbaC,CAA+B5kF,IALnD2pE,GAAA,GACOh8I,IuBnYOslJ,CAAwCriJ,oDAGrB,IAAhBg8D,EAAgB/1E,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAJ,GACrBi4C,GAAaW,YAASm9B,GAAaA,EAAY3kE,KAAKigB,OAApD4mB,SACA+1H,GAAoBp1H,YAASX,GAAYA,EAAW,CAAE+1H,iBAAiB,IAAvEA,gBAER,GAAIA,EAAiB,CACjB,IAAMC,EAAc5tK,SAASkc,cAAc,iBAEtC6nC,YAAkB6pH,IACnBv9B,YAAeu9B,EAAa,YAAaD,6CAM5Cp1H,YAASxnC,KAAK41I,iBjC3EE,WAAmB,IAAlB/uG,EAAkBj4C,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAP,GACrC,IAAI44C,YAASX,GACT,OAAO,EAGX,IAAIkxC,EAAS/rF,OAAO4gC,QAAQia,GAAUl3B,OAAO,SAAAjL,GAAA,MAAApB,GAAA,8CAAAoB,4UAAOva,GAAPmZ,EAAA,GAAAA,EAAA,WAAmB0vC,YAAkB7oD,KAAW6oD,YAAkB7oD,EAAMysJ,aAErH,QAAIpvG,YAASuwC,GiCoE6B+kF,CAAc98J,KAAK0F,SACrD1F,KAAK41I,eAAiBqU,GAAoCjqJ,KAAK0F,6CAI1DhS,GACTA,EAAMkmB,iBADU,IAAAsoD,EAEqCliE,KAAKigB,MAAlDw6I,EAFQv4F,EAERu4F,2BAA4BsC,EAFpB76F,EAEoB66F,aAE/Bv1H,YAASizH,IAAgCsC,GAK9C/8J,KAAKutD,kBACLktG,KALIuC,sDASJ/tK,SAASkpB,iBAAiB,UAAWnY,KAAKi8J,4DAI1ChtK,SAASqpB,oBAAoB,UAAWtY,KAAKi8J,2DAGhCvoK,GACS,KAAlBA,EAAM8iB,UACN9iB,EAAMkmB,iBACNojJ,sDAIM,IAENn2H,EACA7mC,KAAKigB,MADL4mB,SAGJ,IAAKW,YAASX,GACV,OAAO,KAND,IASF4+B,EAAsC5+B,EAAtC4+B,iBAAkB0gF,EAAoBt/G,EAApBs/G,gBACpBF,EAAmBz+G,YAASi+B,GAAoBA,EAAmB1qC,GAAqBgD,qBAE9F,OAAQoa,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACjBxsG,GAAAllD,EAAA/D,cAACk9J,GAAD,CACIz0B,QAAS33H,KAAKgqJ,eACd/jB,kBAAkB,EAClBC,SAAU,CAAC,MACdlmI,KAAKg8J,sBACN7jH,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfsB,iBAAkBA,EAClBE,gBAAiBA,oDAO7B,IAAMmG,EAAiBC,YAAevsJ,KAAK0F,OAI3C,OAFA1F,KAAK+7J,gBAEEpmB,GAAY,CACf9uG,SAAUylH,EACV1W,eAAgB51I,KAAK41I,kDAIpB,IAAArG,EACyBvvI,KAAKigB,MAA3B4mB,EADH0oG,EACG1oG,SAAUhO,EADb02G,EACa12G,QAEZ0tB,EAAamvF,YAAY7uG,EAAU,cAEzC,OACIsR,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCAEPq3C,YAAS+e,IACTpO,GAAAllD,EAAA/D,cAACo5D,GAAD,CACI/B,WAAYA,IAEpBpO,GAAAllD,EAAA/D,cAAA,WAASiB,UAAU,uBACb0oC,EAAWsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KAC3C/lE,KAAKoqJ,+MAQ9BsR,GAAgBjjH,UAAY,GAoBbgB,oBAjBf,SAAyB/zC,EAAOykH,GAC5B,MAAO,CACHtxF,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9C/lH,SAAWW,YAAS2iF,EAAStjF,UAAkDsjF,EAAStjF,SAA/CnhC,EAAMu3J,aAAaxB,iBAC5DU,sBAAuBz2J,EAAMu3J,aAAad,sBAC1CD,qBAAsBx2J,EAAMu3J,aAAaf,uBAIjD,SAA4B/3J,GACxB,MAAO,CACH67B,QAAS,CACLq7H,wBAAyBj1J,aAAmB82J,GAA6C/4J,MAKtFs1C,CAGbiiH,85BC9NIxS,eACF,SAAAA,EAAYjpI,GAAO,IAAA3Q,qCAAA45I,4DAAAiU,CAAAn9J,MAEf,IAAM6mC,GADNv3B,MAAA8tJ,GAAAlU,GAAA3/J,KAAAyW,KAAMigB,+CAANjgB,SACsBqqJ,eAFP,OAIf/6I,EAAK5J,yUAAL23J,CAAA,GACOnzB,GAAazE,gBADpB,CAEI5+F,WACAkjH,uBAAuB,IAG3Bz6I,EAAKgkI,cAAgBz6F,KAAMwwB,YAE3B/5D,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjBwwJ,MAAAhuJ,KACnBA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlBwwJ,MAAAhuJ,KACpBA,EAAKiuJ,kBAAoBjuJ,EAAKiuJ,kBAAkBzwJ,KAAvBwwJ,MAAAhuJ,KACzBA,EAAKkuJ,kBAAoBluJ,EAAKkuJ,kBAAkB1wJ,KAAvBwwJ,MAAAhuJ,KACzBA,EAAKmuJ,kBAAoBnuJ,EAAKmuJ,kBAAkB3wJ,KAAvBwwJ,MAAAhuJ,KAhBVA,qPADQwpC,uDAoBZ,IACHjS,EAAa7mC,KAAKigB,MAAlB4mB,SAER,OAAKQ,YAAQR,GAKNhxC,KAAKC,MAAM4nK,eAAe7/G,QAAQ/W,IAAc62H,2BAA6B,MAJhFD,eAAe3/G,QAAQjX,IAAc62H,wBAAyB9nK,KAAKE,UAAU8wC,IACtEA,+CAOX7mC,KAAK0F,MAAMqkJ,sBAAwB3B,GAAgCpoJ,KAAKszI,cAAetzI,KAAKigB,MAAO4/H,KAAaqJ,oEAG1FvkF,GAAW,IACzB99B,EAAa89B,EAAb99B,SAEJW,YAASX,KAAc7mC,KAAK0F,MAAMqkJ,wBAClC/pJ,KAAK0F,MAAMqkJ,sBAAwB3B,GAAgCpoJ,KAAKszI,cAAe3uE,EAAWk7E,KAAaqJ,yDAIzG1D,EAAiBU,GAC3B,IAAKV,GACDn+G,YAAQ6+G,GACR,OAAO,KAHgC,IAOrC0X,EADmB59J,KAAKigB,MAAtB49I,aAC6B,CAAEjrH,KAAM,KAAQ,KAErD,OAAQuF,GAAAllD,EAAA/D,cAAA,IAAA4uK,GAAA,CAAG3tK,UAAU,2BAA8BytK,EAA3C,CAA0DtlH,QAASktG,IAEtEU,yCAIKV,EAAiBF,GAC3B,OAAKE,GAAmBn+G,YAAQi+G,GACrB,KAGHntG,GAAAllD,EAAA/D,cAAA,KACJiB,UAAU,OACVyiD,KAAK,IACL+nB,oBAAkB,sBAClBriB,QAASktG,GACRF,0CAKM,IAAAnzF,EACoBnyD,KAAKigB,MAA5B4mB,EADGsrB,EACHtrB,SAAUmlH,EADP75F,EACO65F,SAEZ+R,EAAuB/9J,KAAKg+J,gCAAgCn3H,EAASo3H,yBAErEzjH,EAAM0jH,eAIZlS,EAFe,GAAA/gK,OAAMuvD,GAANvvD,OAAY8yK,gDAKX,IACII,EAAyBn+J,KAAKigB,MAA1C4mB,SAAYs3H,mBAEpBntH,IAAMotH,OAAOD,+CAIbntH,IAAMgjC,0EAGsBqqF,GAC5B,OAAIA,IAA0Bxe,KAAaye,wBAChC1kI,IAAa2kI,+BAIjB3kI,IAAa4kI,mEAGN9qK,GACdA,EAAMkmB,wDAGK6kJ,GACX,OAAIp3H,YAAQo3H,GAAuB,KAC5BtmH,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,SAASsuK,yCAGpB,IACF53H,EAAa7mC,KAAK0F,MAAlBmhC,SAER,OAAQsR,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAKw9J,mBAChBx9J,KAAK0+J,eAAe73H,EAAS43H,aAC9BtmH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,4CACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,cACXgoD,GAAAllD,EAAA/D,cAAA,gBAGAipD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BACV6P,KAAK2+J,UAAU3+J,KAAKy9J,kBAAmB52H,EAAS+3H,mBAErDzmH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,SACV6P,KAAK6+J,cAAc7tH,IAAMlV,eAAgB+K,EAASi4H,6BAG3D3mH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,cACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sBACV02C,EAASk4H,qBAEd5mH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBACV6P,KAAK2+J,UAAU3+J,KAAKu9J,kBAAmB12H,EAASm4H,2DAQ/DC,EAAcC,GACpB,OAAO/mH,GAAAllD,EAAA/D,cAAA,UACHiB,UAAU,yBACV9B,KAAK,SACLk6D,uBAAqB,gBACrBjQ,QAAS2mH,GAERj/J,KAAKm/J,iBAAiBD,6CAIdA,GACb,OAAO/mH,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uCACnBgoD,GAAAllD,EAAA/D,cAAA,YAAOgwK,GACP/mH,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,2BACV0B,MAAM,KACN8gC,OAAO,KACPiyB,UAAU,SAEVzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,yDAKlB,IAEG0B,EADavmD,KAAK0F,MAAlBmhC,SACA0f,WAER,OACIpO,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAKhvD,KAAKszI,cAAenjJ,UAAW23J,GAAmC9nJ,KAAKigB,QAC7Ek4B,GAAAllD,EAAA/D,cAACo5D,GAAD,CACI/B,WAAYA,IAEhBpO,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2DACV6P,KAAKoqJ,8MAO1BlB,GAAiBzwG,UAAY,CACzBuzG,SAAUtzG,KAAUx3C,KAAK4jD,WACzBs6G,WAAY1mH,KAAUx3C,KAAK4jD,WAC3BmnG,iBAAkBvzG,KAAUx3C,KAAK4jD,YAGtBokG,6ZC9Jf,SAASmW,GAAqBp/I,GAAO,IACzB4mB,EAAa5mB,EAAb4mB,SAER,GAAIQ,YAAQR,GAAa,OAAO,KAEhC,IAAMy4H,EAAoBr5G,aAAiBpf,EAAS04H,gBAEpD,OACIpnH,GAAAllD,EAAA/D,cAACswK,GAAD,CAAkBnvJ,MAAM,EAAMivJ,kBAAmBA,IAIzD,SAASE,GAATl8J,GAAuD,IAA3Bg8J,EAA2Bh8J,EAA3Bg8J,kBAAmBjvJ,EAAQ/M,EAAR+M,KAC3C,OAAQ8nC,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBAAiB6B,MAAO,CAAEo7B,QAAS/c,EAAO,GAAK,SAE9DivJ,EAAkBp4J,IAAI,SAAC07C,GACnB,OAAOzK,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,CAAUtyD,IAAK0yC,IAAEue,YAAYxN,GAAAllD,EAAA/D,cAAA,SAAI0zD,GAAYzK,GAAAllD,EAAA/D,cAAA,eAMpE,SAASuwK,GAAwBx/I,GAAO,IAC5B4mB,EAAsB5mB,EAAtB4mB,SAAU7G,EAAY/f,EAAZ+f,QADkBksG,EAAAwzB,GAGQtzE,qBAAS,GAHjB,GAG7BuzE,EAH6BzzB,EAAA,GAGb0zB,EAHa1zB,EAAA,GAAA2zB,EAAAH,GAIgBtzE,qBAAS,GAJzB,GAI7B/Q,EAJ6BwkF,EAAA,GAITC,EAJSD,EAAA,GAM5Bj8B,EAA4E/8F,EAA5E+8F,wBAAyBm8B,EAAmDl5H,EAAnDk5H,kBAAmBC,EAAgCn5H,EAAhCm5H,4BAE9CV,EAAoBr5G,aAAiB85G,GAErCE,EAA2Bh6G,aAAiB+5G,GAelD,OAAQ7nH,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAACswK,GAAD,CAAkBnvJ,MAAOgrE,EAAoBikF,kBAAmBA,IAChEnnH,GAAAllD,EAAA/D,cAAA,OACIiB,UAAW,+CAAgD6B,MAAO,CAAEo7B,QAASiuD,EAAqB,OAAS,KAC3GljC,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,8BACTk9I,aACGzJ,EAAwBqJ,OAAO/iJ,MAC/B05I,EAAwBqJ,OAAO91E,KAAK13D,MAAM,OAGlD04C,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,eACbgoD,GAAAllD,EAAA/D,cAAA,SACIb,KAAK,WACL8B,UAAU,0CACV1G,KAAM,mBACNuE,GAAI,mBACJs/I,gBAAgB,EAChBp9G,SArBoB,SAACx8B,GACjCksK,GAAmBlsK,EAAM3D,OAAO+nD,YAqBtBK,GAAAllD,EAAA/D,cAAA,UAAQ00I,EAAwB15I,QAG1CiuD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gBACX6B,MAAO,CAAEo7B,QAASuyI,GAAkBtkF,EAAqB,OAAS,SAClEljC,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,oCACV9B,KAAK,SACLk6D,uBAAqB,gBACrBjQ,QAxCQ,SAAC5kD,GACjBA,EAAMkmB,iBAENomB,EAAQmwH,YAAYtpH,EAAStM,aAAaT,KAAK,WAC3CgyH,GAAeC,4BACf+T,GAAsB,OAqClB3nH,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uCACZgoD,GAAAllD,EAAA/D,cAAA,YAAO23C,EAASq5H,mBAChB/nH,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,2BACV0B,MAAM,KACN8gC,OAAO,KACPiyB,UAAU,SAEVzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,0BAK/B1M,GAAAllD,EAAA/D,cAACswK,GAAD,CAAkBnvJ,KAAMgrE,EAAoBikF,kBAAmBW,KAkBxDxmH,oBAdf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,IAItD,SAA4BzoJ,GACxB,MAAO,CACH67B,QAAS,CACLmwH,YAAa/pJ,aAAmB60J,GAAmC92J,MAKhEs1C,CA5If,SAAA/0C,GAIG,IAHCs7B,EAGDt7B,EAHCs7B,QACA6G,EAEDniC,EAFCmiC,SACAhO,EACDn0B,EADCm0B,QACDszD,EAAAuzE,GAC+CtzE,qBAAS,GADxD,GACQ3+C,EADR0+C,EAAA,GACyBg0E,EADzBh0E,EAAA,GAAA4/C,EAAA2zB,GAEuCtzE,qBAAS,GAFhD,GAEQg+D,EAFRre,EAAA,GAEqBq0B,EAFrBr0B,EAAA,GAISxlF,EAAe1f,EAAf0f,WASR,OAPAgmC,qBAAU,WACNpyD,IAAK+T,2BAA2BpU,KAAK,SAACqU,GAClCgyH,EAAmBhyH,EAAKG,WAAW,qBAAqBrjC,SAASujC,KAAgBC,UACjF2xH,GAAe,KAChBpmI,MAAM,SAACu6C,GAAUxpF,QAAQC,IAAIupF,OAIhCp8B,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,cACV0oC,IAAYuxH,EAAcjyG,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KAC1D5tB,GAAAllD,EAAA/D,cAACo5D,GAAD,CACI/B,WAAYA,IAEhBpO,GAAAllD,EAAA/D,cAAA,WAASiB,UAAU,uBACdi6J,EAAcjyG,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACVvZ,EAAkB0K,GAAAllD,EAAA/D,cAACmwK,GAAD,CAAsBx4H,SAAUA,IAC/CsR,GAAAllD,EAAA/D,cAACuwK,GAAD,CAAyB54H,SAAUA,EAAU7G,QAASA,KAChD,SC/BvB,SAASqgI,KACZ,MAAO,CAAEhyK,KAAMsvJ,IAOZ,SAAS2iB,GAA8BC,GAC1C,MAAO,CAAElyK,KAAMsvJ,GAA6B4iB,0BAGzC,SAASC,KACZ,MAAO,CAAEnyK,KAAMsvJ,IAGZ,SAAS8iB,KACZ,OAAO,SAAUt8J,GAEb,OADAA,EAASu5I,MC1BN/jH,MAAMC,IAAa8mI,+BACrB5mI,KAAKC,KACLC,MAAMC,KD0BFH,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASk8J,MA3BtB,IAA8CM,EA8BrCx8J,GA9BqCw8J,EA8BS7sJ,EAAS/qB,KA7B5D,CAAEsF,KAAMsvJ,GAAyCgjB,8BA+B/C3mI,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASk8J,MACHtyJ,KAKf,SAAS6yJ,GAAyBC,EAAwB7hB,GAC7D,IAAIwQ,EAAsB,CAACz0H,GAAqB4D,oBAChD,OAAO,SAAUx6B,GAEb,OADAA,EAASu5I,MCzCV,SAAkCmjB,EAAwBtmI,GAC7D,OAAOZ,MD0CwGqlH,EC1CrF,CACtBtkH,OAAQ,OACRC,QAAS,CAAEC,eAAgB,oBAC3BtoC,KAAMuD,KAAKE,UAAU8qK,KAEpB/mI,KAAKC,KACLC,MAAMC,KDmCA6mI,CxVmLR,SAA4CD,GAC/C,MAAO,CACHzgG,aAAch0B,GAA8By0H,EAAuB/5H,IAAcs5B,eACjFg/E,QAASyhB,EAAuBzhB,SwVrLFC,CAAoDwhB,IAC7E/mI,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAIT,OAHAu7G,EAAsBC,GAAqC37I,GAC3D3P,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASm8J,GAA8B9Q,IAJ3B,IAORvQ,EAAsB4hB,EAAtB5hB,kBACR96I,EA7CL,CAAE9V,KAAMsvJ,GAA+B4iB,uBA6CO,CAACthB,OAE7CjlH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASm8J,GAA8B,CAAChhB,MACxCn7I,EAASy5I,GAAa,CAAC7vI,KACjBA,6kBEpDhBgzJ,eACF,SAAAA,EAAY9gJ,GAAO,IAAA3Q,IAAA,uCAAAyxJ,4DAAAC,CAAAhhK,OACfsP,MAAA2xJ,GAAAF,GAAAx3K,KAAAyW,KAAMigB,+CAANjgB,SACK0F,MAAQwkI,GAAatE,wBAE1Bt2H,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlBo0J,MAAA5xJ,KACpBA,EAAK6xJ,0BAA4B7xJ,EAAK6xJ,0BAA0Br0J,KAA/Bo0J,MAAA5xJ,KACjCA,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjBo0J,MAAA5xJ,KACnBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5Bo0J,MAAA5xJ,KAC9BA,EAAK8xJ,yBAA2B9xJ,EAAK8xJ,yBAAyBt0J,KAA9Bo0J,MAAA5xJ,KAChCA,EAAKo7I,UAAYp7I,EAAKo7I,UAAU59I,KAAfo0J,MAAA5xJ,KAEjBA,EAAK+xJ,6BAXU/xJ,qPADUwpC,qEAeA,IAAAqZ,EACmBnyD,KAAKigB,MAAzC+f,EADiBmyB,EACjBnyB,QAAS2gI,EADQxuG,EACRwuG,uBAEZt5H,YAAQs5H,IAIb3gI,EAAQygI,kFAGc97F,GAAW,IAE7B28F,EAEA38F,EAFA28F,2BACAzoI,EACA8rC,EADA9rC,SAGCA,IAAWyoI,KAKXzoI,GAAYyoI,IAJbthK,KAAK4hD,SAASopG,IAAuC,mDAUzDhrJ,KAAK0qJ,gDAGG,IACA1qH,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAatE,yBAC3B5lG,EAAQwgI,oEAGC9sK,GACTA,EAAMkmB,iBADU,IAER+mJ,EAA2B3gK,KAAKigB,MAAhC0gJ,uBACR3gK,KAAK4hD,SAASopG,GAAsC2V,GAAyB3gK,KAAKsqJ,yEAI9EtqJ,KAAK0F,MAAM49H,eAIftjI,KAAK4hD,SAASopG,IAAuC,GAAOhrJ,KAAKohK,6EAG1C,IAAAl/F,EACqBliE,KAAKigB,MAAzC+f,EADekiC,EACfliC,QAAS2gI,EADMz+F,EACNy+F,uBACTvgG,EAAiBpgE,KAAK0F,MAAtB06D,aACA4+E,EAA2B2hB,EAA3B3hB,YAAa1uG,EAAcqwH,EAAdrwH,UACf2uG,EAAoB0hB,EAAuB1hB,mBAAqBlkH,GAAqByD,0BAE3FwB,EAAQ4gI,yBAAyB,CAAExgG,eAAc6+E,oBAAmBG,QAAS9uG,GAAa0uG,yCAGhF,IAAAzP,EAMNvvI,KAAKigB,MAJLqhJ,EAFM/xB,EAEN+xB,2BACAf,EAHMhxB,EAGNgxB,uBACAvU,EAJMzc,EAINyc,SACA2U,EALMpxB,EAKNoxB,uBAGJ,OAAIt5H,YAAQs5H,GACD,KAGHxoH,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACzBxsG,GAAAllD,EAAA/D,cAACk9J,GAAD,CACInmB,iBAAkBq7B,EAClBp7B,SAAUq6B,IACbvgK,KAAKmhK,4BACNhpH,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfsB,iBAAkBlrH,GAAqBM,MACvCmqH,gBAAiBwG,EACjB9F,eAAc,GAAAj7J,OAAK8vC,GAAqBS,iBAA1B,KAAAvwC,OAA8C8vC,GAAqBI,mEAKjE,IAAA5rB,EAAAvP,KAChB2gK,EAA2B3gK,KAAKigB,MAAhC0gJ,uBAER,OAAOhrB,GAAY,CACf9uG,SAAU85H,EACV/qB,eAAgB51I,KAAK41I,eACrBI,kBAAmB,SAACtiJ,GAAY6b,EAAKqyC,SAASopG,GAAiDt3J,EAAM3D,UACrGymJ,sBAAuB,SAACt+D,GAAc,IAAUp1D,EAAWvT,EAAK7J,MAAhBod,OAAuB,OAAO2pI,GAA8Cv0E,EAAWp1D,uCAItI,IACG4iH,EAAiB1lI,KAAK0F,MAAtBggI,aACA7sG,EAAY74B,KAAKigB,MAAjB4Y,QACR,OACIsf,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2DACXgoD,GAAAllD,EAAA/D,cAAA,WACEw2I,GAAgB7sG,EAAWsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KAC3D/lE,KAAKoqJ,8MAO1B2W,GAAmBtoH,UAAY,CAC3B5f,QAAS6f,KAAUqM,KAAKD,WACxBknG,SAAUtzG,KAAUx3C,KAAK4jD,WACzB67G,uBAAwBjoH,KAAUnsD,QAsBvBktD,oBAnBf,SAAyB/zC,GACrB,MAAO,CACHi7J,uBAAwBj7J,EAAM67J,mBAAmBZ,uBACjDW,2BAA4B57J,EAAM67J,mBAAmBD,2BACrDf,uBAAwB76J,EAAM67J,mBAAmBhB,uBACjD1nI,QAASnzB,EAAMinJ,UAAUC,mBAAqB,IAItD,SAA4BzoJ,GACxB,MAAO,CACH67B,QAAS,CACLygI,8BAA+Br6J,aAAmBo7J,GAAyDr9J,GAC3Gy8J,yBAA0Bx6J,aAAmBo7J,GAAoDr9J,GACjGq8J,6BAA8Bp6J,aAAmBo7J,GAAwDr9J,MAKtGs1C,CAGbsnH,IC/JK,SAASU,KACZ,MAAO,CAAEpzK,KAAMsvJ,IAOZ,SAAS+jB,GAAyBC,GACrC,MAAO,CAAEtzK,KAAMsvJ,GAA4BgkB,yBAGxC,SAASC,KACZ,MAAO,CAAEvzK,KAAMsvJ,IAGZ,SAASkkB,KACZ,OAAO,SAAU19J,GAEb,OADAA,EAASu5I,MCxBN/jH,MAAMC,IAAakoI,8BACrBhoI,KAAKC,KACLC,MAAMC,KDwBFH,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASs9J,MA3BtB,IAA6CM,EA8BpC59J,GA9BoC49J,EA8BSjuJ,EAAS/qB,KA7B3D,CAAEsF,KAAMsvJ,GAAwCokB,6BA+B9C/nI,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASs9J,MACH1zJ,KAKf,SAASi0J,GAAoBC,EAAuBjjB,GAEvD,OAAO,SAAU76I,EAAUL,GAEvB,OADAK,EAASu5I,MCxCV,SAA6BukB,EAAuB1nI,GACvD,OAAOZ,MDyCiGqlH,ECzC9E,CACtBtkH,OAAQ,OACRC,QAAS,CAAEC,eAAgB,oBAC3BtoC,KAAMuD,KAAKE,UAAUksK,KAEpBnoI,KAAKC,KACLC,MAAMC,KDkCAioI,C3VgMR,SAA2CD,GAC9C,MAAO,CACH7hG,aAAch0B,GAA8B61H,EAAsBn7H,IAAcs5B,eAChF0b,iBAAkBmmF,EAAsBn7H,IAAcg/F,kBACtDhvD,YAAamrF,EAAsBn7H,IAAcq3B,W2VnMxBkhF,CAAmD4iB,IACvEnoI,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASu9J,GAAyB,CAAC5tJ,EAAS7N,gBAIhD9B,EA5CL,CAAE9V,KAAMsvJ,GAA8BgkB,sBA4CG,CAACriB,QAExCtlH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASu9J,GAAyB,CAACpiB,MACnCn7I,EAASy5I,GAAa,CAAC7vI,KACjBA,KEhEf,IAAMo0J,GAAwB,wBCkBxBC,GAAoC,iCAC3CC,GAAmC,gCACnCC,GAA2B,wBAE1B,SAASC,GAA6B9Y,GACzC,MAAO,CAAEp7J,KAAMsvJ,GAAsC8L,kBAGlD,SAAS+Y,KACZ,MAAO,CAAEn0K,KAAMsvJ,IAWZ,SAAS8kB,GAAqCC,GACjD,MAAO,CAAEr0K,KAAMsvJ,GAAkD+kB,wCAG9D,SAASC,GAAkBC,GAC9B,MAAO,CAAEv0K,KAAMsvJ,GAA4BilB,oBAGxC,SAASC,GAAgBC,GAC5B,MAAO,CAAEz0K,KAAMsvJ,GAA0BmlB,kBAOtC,SAASC,GAAyBpR,GACrC,MAAO,CAAEtjK,KAAMsvJ,GAAgCgU,iBAO5C,SAASqR,GAAsBC,GAClC,MAAO,CAAE50K,KAAMsvJ,GAAgCslB,4BAW5C,SAASC,KACZ,MAAO,CAAE70K,KAAMsvJ,IAGZ,SAASwlB,KACZ,OAAO,SAAUh/J,GAEb,OADAA,EAASu5I,MACF3b,IACFjoG,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASq+J,MAGbr+J,EAASo+J,GAA6BzuJ,EAAS/qB,SAElDixC,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASq+J,MACHz0J,KAKf,SAASq1J,KACZ,OAAO,SAAUj/J,GAEb,OADAA,EAASu5I,MrWzFN/jH,MAAMC,IAAaypI,gCACrBvpI,KAAKC,KACLC,MAAMC,KqWyFFH,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASq+J,MAGbr+J,EAASo+J,GAA6BzuJ,EAAS/qB,SAElDixC,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASq+J,MACHz0J,KAKf,SAASu1J,KACZ,OAAO,SAAUn/J,GAEb,OADAA,EAASu5I,MrWvGN/jH,MAAK,GAAA1uC,OAAIL,OAAOg2B,SAASwnB,QAApBn9C,OAA6B2uC,IAAa2pI,2BACjDzpI,KAAKC,KACLC,MAAMC,KqWuGFH,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASq+J,MA/FtB,IAA6CgB,EAkGpCr/J,GAlGoCq/J,EAkGS1vJ,EAAS/qB,KAjG3D,CAAEsF,KAAMsvJ,GAA8C6lB,6BAmGpDxpI,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASq+J,MACHz0J,KAKf,SAAS01J,KACZ,OAAO,SAAUt/J,GAEb,OADAA,EAASu5I,MrWrHN/jH,MAAMC,IAAa8pI,oCACrB5pI,KAAKC,KACLC,MAAMC,KqWqHFH,KAAK,SAAChmB,GACH,OAAIuzB,YAAQvzB,IACR3P,EAASy5I,GAAa,CAAC7iH,GAAqB4D,2BAC5Cx6B,EAASs+J,GAAqC,CAAC1nI,GAAqB4D,uBAIpE7qB,EAASmgC,WACT9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASs+J,GAAqC,CAAC3uJ,EAAS7N,sBAI5D9B,GAzHuCw/J,EAyHS7vJ,EAAS/qB,KAxH9D,CAAEsF,KAAMsvJ,GAAoDgmB,iCADhE,IAAgDA,IA2H1C3pI,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAASs+J,MACH10J,KAKf,SAAS61J,GAATl/J,GAKJ,IAJCm/J,EAIDn/J,EAJCm/J,YACA1lG,EAGDz5D,EAHCy5D,SACAwjE,EAEDj9H,EAFCi9H,qBACAsd,EACDv6I,EADCu6I,kBAEA,OAAO,SAAU96I,GAEb,OADAA,EAASu5I,MrWhJV,SAAAh5I,GAAwD,IAAzBm/J,EAAyBn/J,EAAzBm/J,YAAa1lG,EAAYz5D,EAAZy5D,SAC/C,OAAOhkC,IAAK48C,oBAAoB8sF,EAAa1lG,GqWgJlC4jE,CACkB,CAAE8hC,cAAa1lG,aACnCrkC,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS6+J,GAAsB,CAAC1jB,OAapD,SAAmCn7I,EAAnCb,GAA0F,IAA3Cq+H,EAA2Cr+H,EAA3Cq+H,qBAAsBsd,EAAqB37I,EAArB27I,kBACjE9kH,IAAKK,iBACAV,KAAK,SAAC/wC,GAAS,IACJ+xC,EAAa/xC,EAAK0xC,YAAlBK,SACRkU,IAAYgzF,qBAAqBlnG,GACjCwS,KAAuBxG,IAAc66F,qBAAsBA,GAC3Dx9H,EA1ID,CAAE9V,KAAMsvJ,GAAkCslB,yBA0IR,CAAChkB,OACnCjlH,MAAM,SAACjsB,GACN5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS6+J,GAAsB,CAAC1jB,QAnB5BwkB,CAA0B3/J,EAAU,CAAEw9H,uBAAsBsd,wBAE/DjlH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS6+J,GAAsB,CAAC1jB,MAC1BvxI,KAkBf,SAASssB,GAAT/gB,GAKJ,IAJC0f,EAID1f,EAJC0f,cACAM,EAGDhgB,EAHCggB,gBACAF,EAED9f,EAFC8f,kBACA4lH,EACD1lI,EADC0lI,YAEA,OAAO,SAAU76I,GAEb,OADAA,EAASu5I,MACF3b,EACHsd,GAAmDrmH,EAAeM,EAAiBF,GACnF4lH,GAECllH,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAAW,CACpB,IAAMu7G,EAAsBC,GAAqC37I,GAGjE,OAFA3P,EAASy5I,GAAa4R,SACtBrrJ,EAAS4+J,GAAyBvT,IAItCxgH,IAAYqD,sBAAsBoB,IAAiBza,GAEnD70B,EA/KL,CAAE9V,KAAMsvJ,GAAkComB,oBA+KD,CAChCC,4BAA4B,OAGnChqI,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS4+J,GAAyB,CAACh1J,KAC7BA,KAKf,SAASk2J,GAAWC,GACvB,OAAO,SAAU//J,GAEb,OADAA,EAASu5I,MrWhNV,SAAoBwmB,GACvB,OAAO/pI,IAAKiB,OAAO8oI,EAAe5wH,SAAU4wH,EAAe/lG,UqWgNhD4jE,C9VSR,SAAoCmiC,GAIvC,MAAO,CACH5wH,SAJa4wH,EAAep9H,IAAcozC,WACR9tC,GAA8B83H,EAAep9H,IAAcs5B,eAI7FjC,SAAU+lG,EAAep9H,IAAcq3B,W8VdvBkhF,CAA4C6kB,IACvDpqI,KAAK,SAAChmB,GAAa,IACRqmE,EAAkBrmE,EAAlBqmE,cACA8kE,EAAsBilB,EAAtBjlB,kBACJ9kE,IAAkBgqF,GAiCtC,SAA4BhgK,EAA5BsV,EAAmF3F,GAAU,IAArD6tH,EAAqDloH,EAArDkoH,qBAAsBsd,EAA+BxlI,EAA/BwlI,kBAC1D9kH,IAAKK,iBACAV,KAAK,SAAC/wC,GAAS,IACJ+xC,EAAa/xC,EAAK0xC,YAAlBK,SACRkU,IAAYgzF,qBAAqBlnG,GACjCwS,KAAuBxG,IAAc66F,qBAAsBA,GAC3Dj0F,KACAvpC,EAASw+J,GAAkB,CACvBhqI,oBAAoB,EACpBC,uBAAuB,EACvBkqI,eAAgB,CAAC7jB,GACjB4kB,YAAa/vJ,OAElBkmB,MAAM,SAACjsB,GACN5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS0+J,GAAgB,CAACvjB,QAtCtB8kB,CAAmBjgK,EAAU+/J,EAAgBpwJ,GATzC3P,EAASw+J,GAAkB,CACvBhqI,oBAAoB,EACpBC,uBAAuB,EACvBkqI,eAAgB,CAAC7jB,GACjB4kB,YAAa/vJ,OAOxBkmB,MAAM,SAACjsB,GACJ,IAAI4jJ,EAAgBtqH,YAAQt5B,EAAM60C,SAAW,CAAC08F,IAA4C,CAACvxI,EAAM60C,SAejG,MAdI70C,EAAMw5B,OAAS66H,KACfzQ,EAAgB,CAACrS,KAGjBvxI,EAAMw5B,OAAS86H,KACf1Q,EAAgB,CAACrS,KAGjBvxI,EAAMw5B,OAAS+6H,KACf3Q,EAAgB,CAACrS,KAGrBn7I,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS0+J,GAAgBlR,IACnB5jJ,KA+Bf,SAASmsB,KAEZ,OAAO,SAAU/1B,GAEb,OADAA,EAASu5I,MACF3b,IAEFjoG,KAAK,WACF31B,EAjPL,CAAE9V,KAAMsvJ,GAA2B0mB,gBAiPF,CAAC/kB,MAC7BtwG,IAAYgzF,qBAAqB,MACjChzF,IAAYC,kBAAkB,MAC9B3B,KAAuBxG,IAAc66F,qBAAsB,GAC3DM,iBAEHjoG,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EA7PL,CAAE9V,KAAMsvJ,GAA6B0mB,gBA6PN,CAAC/kB,MACrBvxI,ssBC5ShBu2J,eACF,SAAAA,EAAYrkJ,GAAO,IAAA3Q,IAAA,uCAAAg1J,4DAAAC,CAAAvkK,OACfsP,MAAAk1J,GAAAF,GAAA/6K,KAAAyW,KAAMigB,+CAANjgB,SAEK0F,MAAQwkI,GAAarE,uBAE1Bv2H,EAAKm1J,yBAA2Bn1J,EAAKm1J,yBAAyB33J,KAA9B43J,MAAAp1J,KAChCA,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjB43J,MAAAp1J,KACnBA,EAAKq1J,sBAAwBr1J,EAAKq1J,sBAAsB73J,KAA3B43J,MAAAp1J,KAC7BA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlB43J,MAAAp1J,KACpBA,EAAK20J,WAAa30J,EAAK20J,WAAWn3J,KAAhB43J,MAAAp1J,KAClBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5B43J,MAAAp1J,KAC9BA,EAAKs1J,wBAA0Bt1J,EAAKs1J,wBAAwB93J,KAA7B43J,MAAAp1J,KAC/BA,EAAKu1J,mBAAqBv1J,EAAKu1J,mBAAmB/3J,KAAxB43J,MAAAp1J,KAC1BA,EAAKw1J,uBAAyBx1J,EAAKw1J,uBAAuBh4J,KAA5B43J,MAAAp1J,KAC9BA,EAAKo7I,UAAYp7I,EAAKo7I,UAAU59I,KAAf43J,MAAAp1J,KAEjBA,EAAKq1J,wBAhBUr1J,qPADSwpC,gEAoBJ,IAAAqZ,EACuBnyD,KAAKigB,MAAxC+f,EADYmyB,EACZnyB,QAAS+hI,EADG5vG,EACH4vG,sBAEb16H,YAAQ06H,IACR/hI,EAAQ6hI,iFAIUl9F,GAAW,IAE7BogG,EAGApgG,EAHAogG,0BACApsI,EAEAgsC,EAFAhsC,mBACAE,EACA8rC,EADA9rC,QAGAF,EACA34B,KAAK4hD,SAASopG,IAAuC,GAAQhrJ,KAAK8kK,wBAIjEjsI,IAAWksI,EAKXlsI,GAAYksI,GACb/kK,KAAK4hD,SAASopG,IAAuC,IALrDhrJ,KAAK4hD,SAASopG,IAAuC,GAAQhrJ,KAAKikK,2DAUtEjkK,KAAK0qJ,gDAGG,IACA1qH,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAarE,wBAC3B7lG,EAAQ4hI,0EAIR,IAAM97B,EAAmBk/B,aAAmBl+H,IAAcg/F,kBAC1D9lI,KAAK4hD,SjCyVyB,SAACkkF,GAAD,OAAsB,SAACpgI,GACzD,OAAAg8I,GAAA,GACOh8I,EADP,CAEIogI,sBiC5VcklB,CAAwCllB,yCAG7CpyI,GACTA,EAAMkmB,iBADU,IAERmoJ,EAA0B/hK,KAAKigB,MAA/B8hJ,sBACR/hK,KAAK4hD,SAASopG,GAAsC+W,GAAwB/hK,KAAKsqJ,yEAI5EtqJ,KAAK0F,MAAM49H,eACZtjI,KAAK4hD,SAASopG,IAAuC,GAAOhrJ,KAAK4kK,2EAI/C,IAAA1iG,EACqBliE,KAAKigB,MAAxC+f,EADckiC,EACdliC,QACAg/G,EAFc98E,EACL6/F,sBACT/iB,YACRh/G,EAAQgiI,oBAAoBhiK,KAAK0F,MAAOs5I,wCAG/B,IAAAimB,EACDjlI,EAAYhgC,KAAKigB,MAAjB+f,QACFkkI,GAAcgB,GAAAD,EAAA,GACfn+H,IAAcs5B,aAAepgE,KAAK0F,MAAMohC,IAAcs5B,eADvC8kG,GAAAD,EAEfn+H,IAAcq3B,SAAWn+D,KAAK0F,MAAMohC,IAAcq3B,WAFnC8mG,GAKpBjlI,EAAQikI,WAAWC,oDAInBjiC,4DAGiB,IACT8/B,EAA0B/hK,KAAKigB,MAA/B8hJ,sBAER,OAAI16H,YAAQ06H,GACDhnI,GAAqBkB,6BAGzB8lI,EAAsBoD,+CAGnB,IAAA51B,EAKNvvI,KAAKigB,MAHL8kJ,EAFMx1B,EAENw1B,0BACApD,EAHMpyB,EAGNoyB,sBACAI,EAJMxyB,EAINwyB,sBAGJ,OAAI16H,YAAQ06H,GACD,KAGH5pH,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACzBxsG,GAAAllD,EAAA/D,cAACk9J,GAAD,CACInmB,iBAAkB8+B,EAClB7+B,SAAUy7B,IACb3hK,KAAKykK,2BACNtsH,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfsB,iBAAkBlrH,GAAqBM,4DAKxB,IAAA9rB,EAAAvP,KACf+hK,EAA0B/hK,KAAKigB,MAA/B8hJ,sBACAj8B,EAAqB9lI,KAAK0F,MAA1BogI,iBAER,OAAO6P,GAAY,CACf9uG,SAAUk7H,EACVj8B,mBACAxiE,aAAc,SAAC5vE,GAAY6b,EAAKqyC,SAASopG,GAAmCt3J,EAAM3D,UAClFimJ,kBAAmB,SAACtiJ,GAAY6b,EAAKqyC,SAASopG,GAAiDt3J,EAAM3D,UACrGomJ,4BAA6B,SAACziJ,GAAY6b,EAAKqyC,SAASopG,GAAkDt3J,EAAM3D,UAChHymJ,sBAAuB,SAACt+D,GAAc,IAAUp1D,EAAWvT,EAAK7J,MAAhBod,OAAuB,OAAO2pI,GAA8Cv0E,EAAWp1D,uCAItI,IACG4iH,EAAiB1lI,KAAK0F,MAAtBggI,aACA7sG,EAAY74B,KAAKigB,MAAjB4Y,QAER,OACIsf,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2DACXgoD,GAAAllD,EAAA/D,cAAA,WACEw2I,GAAgB7sG,EAAWsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KAC3D/lE,KAAKoqJ,8MAO1Bka,GAAkB7rH,UAAY,CAC1B5f,QAAS6f,KAAUqM,KAAKD,WACxBi9G,sBAAuBrpH,KAAUnsD,QAwBtBktD,oBArBf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9CmV,sBAAuBr8J,EAAM0/J,kBAAkBrD,sBAC/CgD,0BAA2Br/J,EAAM0/J,kBAAkBL,0BACnDpD,sBAAuBj8J,EAAM0/J,kBAAkBzD,sBAC/ChpI,mBAAoBjzB,EAAM2/J,WAAW1sI,qBAI7C,SAA4Bx0B,GACxB,MAAO,CACH67B,QAAS,CACL6hI,6BAA8Bz7J,aAAmBk/J,GAAuDnhK,GACxG69J,oBAAqB57J,aAAmBk/J,GAA8CnhK,GACtFy9J,4BAA6Bx7J,aAAmBk/J,GAAsDnhK,GACtG8/J,WAAY79J,aAAmBm/J,GAA8BphK,MAK1Ds1C,CAGb6qH,IC7MF,SAASkB,GAAT9gK,GAGG,IAFCs0E,EAEDt0E,EAFCs0E,SAEDotE,EAAA1hJ,EADC2hJ,gBACD,IAAAD,KACC,OACIjuG,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,UAAQiB,UAAU,oCACdmoD,QAAS0gC,EACT3qF,KAAOg4J,EAAW,SAAW,UAC7BluG,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uCACZgoD,GAAAllD,EAAA/D,cAAA,YAAO6rC,GAAqBoB,gBAC5Bgc,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,2BACV0B,MAAM,KACN8gC,OAAO,KACPiyB,UAAU,SAEVzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,iCAQvC2gH,GAAqB/sH,UAAY,CAC7BugC,SAAUtgC,KAAUx3C,KAAK4jD,YAGd0gH,klBChBTC,eACF,SAAAA,EAAYxlJ,GAAO,IAAA3Q,IAAA,uCAAAm2J,4DAAAC,CAAA1lK,OACfsP,MAAAq2J,GAAAF,GAAAl8K,KAAAyW,KAAMigB,+CAANjgB,SACK0F,MAAQwkI,GAAapG,qBAE1Bx0H,EAAKs2J,0BAA4Bt2J,EAAKs2J,0BAA0B94J,KAA/B+4J,MAAAv2J,KACjCA,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjB+4J,MAAAv2J,KACnBA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlB+4J,MAAAv2J,KACpBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5B+4J,MAAAv2J,KAC9BA,EAAKw2J,mBAAqBx2J,EAAKw2J,mBAAmBh5J,KAAxB+4J,MAAAv2J,KARXA,qPADUwpC,kEAYH6rB,GAAW,IACzB9rC,EAAsD8rC,EAAtD9rC,QAASmH,EAA6C2kC,EAA7C3kC,QAAS+lI,EAAoCphG,EAApCohG,iCAErBltI,GAAWktI,GACZ/lI,EAAQ9F,oDAIF,IAAAi4B,EACoEnyD,KAAKigB,MAA3E4mB,EADEsrB,EACFtrB,SAAUk/H,EADR5zG,EACQ4zG,gCAAiC5T,EADzChgG,EACyCggG,uBAEnD,OAAI9qH,YAAQR,GACD,KAGHsR,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUhoC,IAAM7U,gBAC1Bgc,GAAAllD,EAAA/D,cAACk9J,GAAD,CACInmB,iBAAkB8/B,EAClB7/B,SAAUisB,IAEdh6G,GAAAllD,EAAA/D,cAAC82K,GAAD,CACIhtF,SAAUhoC,IAAM7U,eAChBkqH,UAAU,yDAIM,IAAA92I,EAAAvP,KAChB6mC,EAAa7mC,KAAKigB,MAAlB4mB,SAER,OAAO8uG,GAAY,CACf9uG,WACAmvG,kBAAmB,SAACtiJ,GAAU,IAClB0qE,EAAgB7uD,EAAK7J,MAArB04D,YACFgjF,EAAc1tJ,EAAM3D,OACpBmoF,EAAYkpE,EAAY33J,KACxB83J,EAAY16G,EAASqxC,GAC3B3oE,EAAKqyC,SAASopG,GAAiD5J,EAAaG,IAC5EhyI,EAAKqyC,SAASopG,GAA8C,CAAEvhK,KAAMq9C,IAAcs3B,YAAaj0E,MAAOi0E,MAE1G83E,wBAAyB,SAACxiJ,GACtB6b,EAAKqyC,SAASopG,GAA8Ct3J,EAAM3D,UAEtEomJ,4BAA6B,SAACziJ,GAC1B6b,EAAKqyC,SAASopG,GAAkDt3J,EAAM3D,UAE1EymJ,sBAAuB,SAACt+D,GAAc,IAC1Bp1D,EAAWvT,EAAK7J,MAAhBod,OAAuB,OAAO2pI,GAA8Cv0E,EAAWp1D,2CAK9FpvB,GACTA,EAAMkmB,iBADU,IAERitB,EAAa7mC,KAAKigB,MAAlB4mB,SACR7mC,KAAK4hD,SAASopG,GAAsCnkH,GAAW7mC,KAAKsqJ,yEAIhEtqJ,KAAK0F,MAAM49H,eAIftjI,KAAK4hD,SAASopG,IAAmC,GAAOhrJ,KAAK8lK,iEAG5C,IAAA5jG,EACaliE,KAAKigB,MAA3B+f,EADSkiC,EACTliC,QAAS6G,EADAq7B,EACAr7B,SACTo4G,EAAmCp4G,EAAnCo4G,kBAAmBD,EAAgBn4G,EAAhBm4G,YAFV1nF,EAGiBt3D,KAAK0F,MAA/B04D,EAHS9G,EAGT8G,YAAaD,EAHJ7G,EAGI6G,SAErBn+B,EAAQ42H,mBAAmB,CAAEx4F,cAAa0Y,YAAa3Y,GAAY8gF,EAAmBD,oCAGjF,IAAAzP,EACyBvvI,KAAKigB,MAA3B4Y,EADH02G,EACG12G,QACAotI,EAFH12B,EACY1oG,SACTo/H,UACR,OACI9tH,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,UAAK+2K,GACL9tH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,4BACV0oC,EAAUsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAAgC,KAC1C/lE,KAAKoqJ,8MAO1Bqb,GAAmBhtH,UAAY,CAC3B5R,SAAU6R,KAAUnsD,OAAOu4D,YAqBhBrL,oBAlBf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9CmZ,gCAAiCrgK,EAAMs1J,YAAY+K,gCACnD5T,uBAAwBzsJ,EAAMs1J,YAAY7I,yBAIlD,SAA4BhuJ,GACxB,MAAO,CACH67B,QAAS,CACL42H,mBAAoBxwJ,aAAmB+0J,GAAuCh3J,GAC9E+1B,YAAa9zB,aAAmBm/J,GAA+BphK,MAM5Ds1C,CAGbgsH,ICrIK,SAASS,KACZ,MAAO,CAAE73K,KAAMsvJ,IAOZ,SAASwoB,GAA2BC,GACvC,MAAO,CAAE/3K,KAAMsvJ,GAA0ByoB,uBAGtC,SAASC,KACZ,MAAO,CAAEh4K,KAAMsvJ,IAGZ,SAAS2oB,KACZ,OAAO,SAAUniK,GAEb,OADAA,EAASu5I,MCvBN/jH,MAAMC,IAAa2sI,4BACrBzsI,KAAKC,KACLC,MAAMC,KDuBFH,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS+hK,MA3BtB,IAA2CM,EA8BlCriK,GA9BkCqiK,EA8BS1yJ,EAAS/qB,KA7BzD,CAAEsF,KAAMsvJ,GAAsC6oB,2BA+B5CxsI,MAAM,SAACjsB,GAGJ,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS+hK,MACHn4J,KAKf,SAAS04J,GAAsBC,GAClC,OAAO,SAAUviK,GAEb,OADAA,EAASu5I,OCtCW5X,EnW0yBrB,SAAqC4gC,GACxC,OAAOA,EAAgB5/H,IAAcg/F,kBkWnwBhBuZ,CAA6CqnB,GCvC3DvsI,IAAKwsI,iCAAiC/sI,IAAagtI,mBAAoB9gC,IDwCrEhsG,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAASgiK,GAA2B,CAAC7mB,MAHzB,IAORL,EAAsBynB,EAAtBznB,kBACR96I,EA5CL,CAAE9V,KAAMsvJ,GAA4ByoB,oBA4CO,CAACnnB,OAE1CjlH,MAAM,SAACjsB,GAGJ,MAFA5J,EAASgiK,GAA2B,CAAC7mB,MACrCn7I,EAASy5I,GAAa,CAAC7vI,KACjBA,ICtDf,IAAqB+3H,mlBCMtB+gC,eACF,SAAAA,EAAY5mJ,GAAO,IAAA3Q,IAAA,uCAAAu3J,4DAAAC,CAAA9mK,OACfsP,MAAAy3J,GAAAF,GAAAt9K,KAAAyW,KAAMigB,+CAANjgB,SACK0F,MAAQwkI,GAAanE,qBAE1Bz2H,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlBk6J,MAAA13J,KACpBA,EAAK23J,uBAAyB33J,EAAK23J,uBAAuBn6J,KAA5Bk6J,MAAA13J,KAC9BA,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjBk6J,MAAA13J,KACnBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5Bk6J,MAAA13J,KAC9BA,EAAKo7I,UAAYp7I,EAAKo7I,UAAU59I,KAAfk6J,MAAA13J,KAEjBA,EAAK43J,0BAVU53J,qPADOwpC,kEAcA,IAAAqZ,EACmBnyD,KAAKigB,MAAtC+f,EADcmyB,EACdnyB,QAASwmI,EADKr0G,EACLq0G,oBAEZn/H,YAAQm/H,IAIbxmI,EAAQsmI,+EAGc3hG,GAAW,IAE7BwiG,EAEAxiG,EAFAwiG,wBACAtuI,EACA8rC,EADA9rC,QAGImH,EAAYhgC,KAAKigB,MAAjB+f,QAER,IAAKnH,GAAWsuI,EAIZ,OAHAnnK,KAAK4hD,SAASopG,IAAuC,SACrDhrH,EAAQ9F,cAKPrB,GAAYsuI,GACbnnK,KAAK4hD,SAASopG,IAAuC,mDAKzDhrJ,KAAK0qJ,gDAGG,IACA1qH,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAanE,sBAC3B/lG,EAAQqmI,iEAGC3yK,GACTA,EAAMkmB,iBADU,IAER4sJ,EAAwBxmK,KAAKigB,MAA7BumJ,oBACRxmK,KAAK4hD,SAASopG,GAAsCwb,GAAsBxmK,KAAKsqJ,yEAI1EtqJ,KAAK0F,MAAM49H,eACZtjI,KAAK4hD,SAASopG,IAAuC,GAAOhrJ,KAAKonK,uEAIjD,IAAAllG,EACqBliE,KAAKigB,MAAtC+f,EADYkiC,EACZliC,QAASwmI,EADGtkG,EACHskG,oBACT1gC,EAAqB9lI,KAAK0F,MAA1BogI,iBACFmZ,EAAoBunB,EAAoBvnB,mBAAqBlkH,GAAqB4I,uBAExF3D,EAAQymI,sBAAsB,CAAE3gC,mBAAkBmZ,4DAGxC,IAAA1P,EAKNvvI,KAAKigB,MAHLknJ,EAFM53B,EAEN43B,wBACAf,EAHM72B,EAGN62B,oBACAI,EAJMj3B,EAINi3B,oBAGJ,GAAIn/H,YAAQm/H,GACR,OAAO,KARD,IAWFjhE,EAAoCihE,EAApCjhE,UAAW4/D,EAAyBqB,EAAzBrB,SAAUjG,EAAesH,EAAftH,WAE7B,OAAQ/mH,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACzBxsG,GAAAllD,EAAA/D,cAACi9J,GAAD,CACI9iB,YAAa9jC,EACb6/C,cAAe+f,EACftf,iBAAiB,IAErB1tG,GAAAllD,EAAA/D,cAACk9J,GAAD,CACInmB,iBAAkBkhC,EAClBjhC,SAAUkgC,IACbpmK,KAAKinK,yBACN9uH,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfsB,iBAAkBiZ,GAAcnkI,GAAqBO,gEAKxC,IAAA/rB,EAAAvP,KAAAwvI,EACuBxvI,KAAKigB,MAAzCumJ,EADah3B,EACbg3B,oBAAqB9vB,EADRlH,EACQkH,WAE7B,OAAOf,GAAY,CACfe,aACA7vG,SAAU2/H,EACV5wB,eAAgB51I,KAAK41I,eACrBI,kBAAmB,SAACtiJ,GAAY6b,EAAKqyC,SAASopG,GAAiDt3J,EAAM3D,UACrGymJ,sBAAuB,SAACt+D,GAAc,IAAUp1D,EAAWvT,EAAK7J,MAAhBod,OAAuB,OAAO2pI,GAA8Cv0E,EAAWp1D,uCAK3I,OACIq1B,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2DACXgoD,GAAAllD,EAAA/D,cAAA,WACC8Q,KAAKoqJ,8MAO1Byc,GAAgBpuH,UAAY,CACxB5f,QAAS6f,KAAUqM,KAAKD,WACxB0hH,oBAAqB9tH,KAAUnsD,QAuBpBktD,oBApBf,SAAyB/zC,GACrB,MAAO,CACH8gK,oBAAqB9gK,EAAM2hK,gBAAgBb,oBAC3CW,wBAAyBzhK,EAAM2hK,gBAAgBF,wBAC/Cf,oBAAqB1gK,EAAM2hK,gBAAgBjB,oBAC3CvtI,QAASnzB,EAAMinJ,UAAUC,mBAAqB,IAItD,SAA4BzoJ,GACxB,MAAO,CACH67B,QAAS,CACLsmI,2BAA4BlgK,aAAmBkhK,GAAmDnjK,GAClGsiK,sBAAuBrgK,aAAmBkhK,GAA8CnjK,GACxFkiK,0BAA2BjgK,aAAmBkhK,GAAkDnjK,GAChG+1B,YAAa9zB,aAAmBmhK,GAA2BpjK,MAKxDs1C,CAGbotH,+sBC3IIW,eACF,SAAAA,EAAYvnJ,GAAO,IAAA3Q,qCAAAk4J,4DAAAC,CAAAznK,MAAA,IAEP6mC,GADRv3B,MAAAo4J,GAAAF,GAAAj+K,KAAAyW,KAAMigB,+CAANjgB,SAC0BigB,MAAlB4mB,SACFylH,EAAiBC,YAAe1lH,GAHvB,OAIfv3B,EAAK5J,yUAALiiK,CAAA,GACOz9B,GAAapG,qBADpB,CAEIj9F,SAAUylH,IAGdh9I,EAAK06I,eAAiBnxG,KAAMwwB,YAC5B/5D,EAAKs4J,aAAe/gI,EAASyJ,YAAckiH,KAAgBC,WAE3DnjJ,EAAKu4J,uBAAyBv4J,EAAKu4J,uBAAuB/6J,KAA5Bg7J,MAAAx4J,KAC9BA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlBg7J,MAAAx4J,KACpBA,EAAKy4J,yBAA2Bz4J,EAAKy4J,yBAAyBj7J,KAA9Bg7J,MAAAx4J,KAChCA,EAAKs5C,wBAA0Bt5C,EAAKs5C,wBAAwB97C,KAA7Bg7J,MAAAx4J,KAC/BA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5Bg7J,MAAAx4J,KAC9BA,EAAK04J,+BAAiC14J,EAAK04J,+BAA+Bl7J,KAApCg7J,MAAAx4J,KACtCA,EAAK24J,oCAAsC34J,EAAK24J,oCAAoCn7J,KAAzCg7J,MAAAx4J,KAC3CA,EAAK44J,sBAAwB54J,EAAK44J,sBAAsBp7J,KAA3Bg7J,MAAAx4J,KAC7BA,EAAK+0I,eAAiB/0I,EAAK+0I,eAAev3I,KAApBg7J,MAAAx4J,KACtBA,EAAK64J,qCAAuC74J,EAAK64J,qCAAqCr7J,KAA1Cg7J,MAAAx4J,KAC5CA,EAAK84J,wCAA0C94J,EAAK84J,wCAAwCt7J,KAA7Cg7J,MAAAx4J,KAC/CA,EAAK+4J,+BAAiC/4J,EAAK+4J,+BAA+Bv7J,KAApCg7J,MAAAx4J,KAEtCA,EAAKsmI,eAAiBqU,GAAoCpjH,GAzB3Cv3B,qPADOwpC,kEA6BA6rB,GAAW,IAAAp1D,EAAAvP,KACzBmjI,EAAanjI,KAAK0F,MAAlBy9H,SACAnjG,EAAYhgC,KAAKigB,MAAjB+f,QAEJnH,EAOA8rC,EAPA9rC,QACAgO,EAMA89B,EANA99B,SACAozH,EAKAt1F,EALAs1F,gCACAzX,EAIA79E,EAJA69E,qBACA8lB,EAGA3jG,EAHA2jG,+BACAC,EAEA5jG,EAFA4jG,+BACAvkC,EACAr/D,EADAq/D,oBAGJ,IAAKnrG,GAAWohI,EAAiC,KACrC93H,EAAkB0E,EAAlB1E,OAAQz8B,EAAUmhC,EAAVnhC,MAChB1F,KAAK4hD,SAASopG,GAAyCxI,EAAsBrgH,EAAQz8B,IAGzF,GAAKmzB,IAAW0vI,EAKhB,OAAIplC,IACCtqG,GACDyvI,EACItkC,OACAhkI,KAAK4hD,SAASopG,IAAmC,GAAQhrJ,KAAKioK,0CAIlEjoK,KAAK4hD,SAASopG,IAAmC,GAAQhrJ,KAAKgoK,sCAI9D7kC,GACCtqG,GACAyvI,GACDtoK,KAAK4hD,SAASopG,IAAmC,GAC7C,WACIf,GAAgC16I,EAAKy6I,mBArB7ChqH,EAAQ9F,6DA0BO,IACX8F,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAapG,sBAC3B9jG,EAAQkyH,wEAGQ,IACRrrH,EAAa7mC,KAAK0F,MAAlBmhC,SACR7mC,KAAK4hD,SAASopG,GAAkCnkH,IAChD7mC,KAAKqkJ,0DAGQ,IACLx9G,EAAa7mC,KAAK0F,MAAlBmhC,SACFylH,EAAiBC,YAAe1lH,GACtC7mC,KAAK4hD,SAASopG,GAAgCsB,6DAGjB,IACrBkc,EAAuBxoK,KAAKigB,MAA5BuoJ,mBACRve,GAAgCjqJ,KAAKgqJ,gBACrCwe,GAAmB,iEAGe,IAC1BxkC,EAAwBhkI,KAAK0F,MAA7Bs+H,oBACRhkI,KAAK4hD,SAASopG,GAA2Bh/J,OAAOkK,KAAK,CAAE8tI,wBAAuB,0CAGrEtwI,GACTA,EAAMkmB,iBADU,IAERitB,EAAa7mC,KAAK0F,MAAlBmhC,SACR7mC,KAAK4hD,SAASopG,GAAsCnkH,GAAW7mC,KAAKsqJ,0FAIpEt5G,IAAMy3H,kBAAkBC,KAAqBC,wFAI7C33H,IAAMy3H,kBAAkBC,KAAqBE,yFAI7C53H,IAAMy3H,kBAAkBC,KAAqBG,qEAI7C,GAAI7oK,KAAK0F,MAAM49H,cAAf,CAA8B,IAClBxgH,EAAW9iB,KAAK0F,MAAhBod,OACRmnI,GAAuCnnI,EAAQ9iB,KAAK41I,qBAIxD51I,KAAK4hD,SAASopG,IAAmC,GAAOhrJ,KAAKkoK,uEAGzC,IAAA/1G,EACanyD,KAAKigB,MAA9B+f,EADYmyB,EACZnyB,QAASokG,EADGjyE,EACHiyE,YACTv9F,EAAa7mC,KAAK0F,MAAlBmhC,SAEJm4G,EAGAn4G,EAHAm4G,YACAC,EAEAp4G,EAFAo4G,kBACAgX,EACApvH,EADAovH,4BAEE6S,EAA6B7pB,GAAqBlkH,GAAqB2D,6BAE7EurH,GAAgCjqJ,KAAK41I,eAAe9uG,IAAcV,QAClEpG,EAAQg2H,kBAAkB,CACtB17H,YAAat6B,KAAK0F,MAClB0+H,cACA6a,kBAAmB6pB,EACnB9pB,cACAiX,mFAImB,IACfj2H,EAAYhgC,KAAKigB,MAAjB+f,QAEA+oI,EADa/oK,KAAK0F,MAAlBmhC,SACAkiI,yBACR/oI,EAAQ22H,cAAcoS,qDAItB/oK,KAAK4hD,SAASopG,GAA2B,6EAGpB,IACbhnB,EAAwBhkI,KAAK0F,MAA7Bs+H,oBAER,OAAOA,EAAsB7rF,GAAAllD,EAAA/D,cAACk5D,GAAA,EAAD,CAAYv2B,OAAQmyG,GAC7C7rF,GAAAllD,EAAA/D,cAAC85K,GAAD,CAAiBtyB,YAAY,KACjB,sDAGK,IAAAjnI,EAAAzP,KACbggC,EAAYhgC,KAAKigB,MAAjB+f,QADas3B,EAIjBt3D,KAAK0F,MADLmhC,EAHiBywB,EAGjBzwB,SAAUu8F,EAHO9rE,EAGP8rE,kBAAmBlhG,EAHZo1B,EAGYp1B,QAASmhG,EAHrB/rE,EAGqB+rE,gBAElClhG,EAA+B0E,EAA/B1E,OAAQ4E,EAAuBF,EAAvBE,YAAarhC,EAAUmhC,EAAVnhC,MAEvB4mJ,EAAiBC,YAAe1lH,GAChC2lH,EAAyBnX,GAAwBiX,EAAexlH,IAAcphC,OAAQ1F,KAAK0F,MAAMohC,IAAcphC,OzElNjG,QyEsOpB,OAlBA4mJ,EAAexlH,IAAc5E,SAASkH,aAAeppC,KAAK0F,MAAMohC,IAAc5E,SAC9EoqH,EAAexlH,IAAc3E,QAAQiH,aAAeppC,KAAK0F,MAAMohC,IAAc3E,QAC7EmqH,EAAexlH,IAAcphC,OAAO0jC,aAAeojH,EACnDF,EAAexlH,IAAc7E,MAAMmH,aAAeppC,KAAK0F,MAAMohC,IAAc7E,MAC3EqqH,EAAexlH,IAAchF,cAAcsH,aAAeppC,KAAK0F,MAAMohC,IAAchF,cACnFwqH,EAAexlH,IAAc/E,cAAcqH,aAAeppC,KAAK0F,MAAMohC,IAAc/E,cACnFuqH,EAAexlH,IAAc9E,cAAcoH,aAAeppC,KAAK0F,MAAMohC,IAAc9E,cACnFsqH,EAAexlH,IAAcqE,UAAU/B,aAAeppC,KAAK0F,MAAMohC,IAAcqE,eACjC9/C,IAA1C2U,KAAK0F,MAAMohC,IAAcR,cAA8BtmC,KAAK0F,MAAMohC,IAAcR,uBAAwBzoB,OAAS5e,MAAMe,KAAK0F,MAAMohC,IAAcR,gBAChJgmH,EAAexlH,IAAcR,aAAa8C,aAAeppC,KAAK0F,MAAMohC,IAAcR,cAGlFgmH,EAAexlH,IAAc4kG,gBACzB4gB,EAAexlH,IAAc4kG,eAAe5kG,IAAcklG,gBAC1DsgB,EAAexlH,IAAc4kG,eAAe5kG,IAAcklG,cAAc1B,UAAW,GAIpFqL,GAAY,CACfe,YAAY,EACZ7vG,SAAUylH,EACV1W,eAAgB51I,KAAK41I,eACrBG,YAAa,CAAE7uG,gBAAiBhF,GAChC2zG,WAAY,CAAEzS,oBAAmBl5I,MAAOi4C,EAASA,EAAOj4C,MAAQ6wC,GAAqB6E,aACrFk2G,UAAW,CAAEzS,kBAAiBn5I,MAAOwb,EAAQA,EAAMxb,MAAQ6wC,GAAqB6E,aAChF0jC,aAAc,SAAC5vE,GAAY+b,EAAKmyC,SAASopG,GAAmCt3J,EAAM3D,QAAS0f,EAAK40I,iBAChGrO,kBAAmB,SAACtiJ,GAChB,IAAM0tJ,EAAc1tJ,EAAM3D,OACpBmoF,EAAYkpE,EAAY33J,KACxB83J,EAAY16G,EAASqxC,GAC3BzoE,EAAKmyC,SAASopG,GAAiD5J,EAAaG,GAAY9xI,EAAK40I,iBAEjGlO,4BAA6B,SAACziJ,GAAY+b,EAAKmyC,SAASopG,GAAkDt3J,EAAM3D,UAChHkmJ,yBAA0B,SAACviJ,GvC7KM,IAAC0tJ,EuC6KK3xI,EAAKmyC,UvC7KVw/F,EuC6KkE1tJ,EAAM3D,OvC7KxD,SAAC2V,GAAU,IAAAujK,ElQ5CpCjrG,EAAWkrG,EkQ6CpC9oG,EAAyB16D,EAAzB06D,aAAct9C,EAAWpd,EAAXod,OACdr5B,EAAgB23J,EAAhB33J,KAAMU,EAAUi3J,EAAVj3J,MACd,OAAAu3J,GAAA,GACOh8I,GADP27I,GAAA4nB,EAAA,GAEKx/K,EAAOU,GAFZk3J,GAAA4nB,EAAA,SAAAvnB,GAAA,GAIW5+H,EAJX,CAKQ8wH,qBlQpDyB51E,EkQoDiBoC,ElQpDN8oG,EkQoDoB/+K,ElQnD5D6zE,IAAckrG,EACP,CAAEjrG,SAAS,EAAOh4D,aAAck1D,GAAwBY,0BAG/D10B,GAAQ6hI,GACD,CAAEjrG,SAAS,EAAOh4D,aAAck1D,GAAwBQ,mBAG9CR,GAAwBS,aAC3BznE,KAAK4L,OAAOmpK,GAAc91K,eAIrC,CAAE6qE,SAAS,GAHP,CAAEA,SAAS,EAAOh4D,aAAck1D,GAAwBU,8BkQoCnEotG,QuC2KQ7yB,iBAAkB,SAAC1iJ,GAAY+b,EAAKmyC,SAASopG,GAAkCt3J,KAC/E2iJ,wBAAyB,SAAC3iJ,GAAY+b,EAAKmyC,SAASopG,GAAyCt3J,EAAOqzC,EAAYuyB,cAChHg9E,oBAAqB,SAAC5iJ,GAClB+b,EAAKmyC,SAASopG,GAAqCt3J,EAAM3D,OAAQoyC,EAAQz8B,GACrE,WACIs6B,EAAQuwH,+BAGpB/Z,sBAAuB,SAACt+D,GAAc,IAAUp1D,EAAWrT,EAAK/J,MAAhBod,OAAuB,OAAO2pI,GAA8Cv0E,EAAWp1D,uCAItI,IAAAm/C,EACyCjiE,KAAK0F,MAA3Cy9H,EADHlhE,EACGkhE,SAAUY,EADb9hE,EACa8hE,wBADb7hE,EAE0EliE,KAAKigB,MAA5E4Y,EAFHqpC,EAEGrpC,QAAS44H,EAFZvvF,EAEYuvF,0BAA2B6W,EAFvCpmG,EAEuComG,+BACpCzhI,EAAa7mC,KAAK0F,MAAlBmhC,SAEJo/H,EAIAp/H,EAJAo/H,UACAkD,EAGAtiI,EAHAsiI,uBACAC,EAEAviI,EAFAuiI,0BACAC,EACAxiI,EADAwiI,0BAEEC,EAAiCrjH,aAAiBojH,GACxD,OACIlxH,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,UAAK+2K,GACL9tH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uBACVgzI,GAAYtqG,EAAUsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAAgC,KACvD5tB,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAKqoK,gCACjBlwH,GAAAllD,EAAA/D,cAACk9J,GAAD,CACIz0B,QAAS33H,KAAKgqJ,eACd/jB,iBAAkBqiC,EAClBpiC,SAAUurB,IACbzxJ,KAAK6nK,yBACL7nK,KAAKinK,yBACN9uH,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAKqoK,+BACfpiB,iBAAkBlrH,GAAqBsB,gBACvCgqH,UAAU,KAGlBluG,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QAEfgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,UACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,iBACTmoD,QAASt4C,KAAK4oD,yBACdzQ,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,OACZgoD,GAAAllD,EAAA/D,cAAA,OACI4rE,cAAY,OACZlW,UAAU,QACV2kH,cAAY,MACZxuG,YAAU,YACVtyD,KAAK,MACLuyD,MAAM,6BACNC,QAAQ,cACR9qE,UAAU,QACVgoD,GAAAllD,EAAA/D,cAAA,QAAMgsE,KAAK,QACPrvE,EAAE,sjBAIdssD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQg5K,IAE5BhxH,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAhB,GAAAlF,OAA2Bm+K,KAE/BjxH,GAAAllD,EAAA/D,cAAC+5D,GAAD,CACIp3B,OAAQkyG,EACRn8E,UAAWuhH,EACXthH,aAAc7nD,KAAK4oD,wBACnBd,eAAgB9nD,KAAK+nK,yBACrB//G,yBAAyB,EACzBD,iBAAiB,EACjBE,cAAejoD,KAAK4oD,wBACpBV,wBAAwB,GACvBohH,EAA+BpiK,IAAI,SAACxc,GACjC,OAAOytD,GAAAllD,EAAA/D,cAAA,MAAIwF,IAAK0yC,IAAEue,YAAcj7D,sMAS5D88K,GAAgB/uH,UAAY,CACxB5R,SAAU6R,KAAUnsD,OAAOu4D,WAC3Bs/E,YAAa1rF,KAAUnsD,OAAOu4D,WAC9B0jH,mBAAoB9vH,KAAUx3C,KAAK4jD,YA6BxBrL,oBA1Bf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9C0b,+BAAgC5iK,EAAMs1J,YAAYsN,+BAClDC,+BAAgC7iK,EAAMs1J,YAAYuN,+BAClD9W,0BAA2B/rJ,EAAMs1J,YAAYvJ,0BAC7CwI,gCAAiCv0J,EAAMo1J,sBAAsBb,gCAC7Dc,wBAAyBr1J,EAAMo1J,sBAAsBC,wBACrDvY,qBAAsB98I,EAAMo1J,sBAAsBtY,qBAClDxe,oBAAqBt+H,EAAMs1J,YAAYh3B,sBAI/C,SAA4B7/H,GACxB,MAAO,CACH67B,QAAS,CACLg2H,kBAAmB5vJ,aAAmB+0J,GAAsCh3J,GAC5EwyJ,cAAevwJ,aAAmB+0J,GAAkCh3J,GACpE+1B,YAAa9zB,aAAmBmhK,GAA2BpjK,GAC3D+tJ,0BAA2B9rJ,aAAmB+0J,GAA8Ch3J,GAC5FosJ,0BAA2BnqJ,aAAmB80J,GAA8C/2J,GAC5F2yJ,uBAAwB1wJ,aAAmB+0J,GAA2Ch3J,MAKnFs1C,CAGb+tH,ICzWF,SAASgC,GAAT9kK,GAMG,IALCsuJ,EAKDtuJ,EALCsuJ,UACA3zH,EAID36B,EAJC26B,kBACAoqI,EAGD/kK,EAHC+kK,gBACAC,EAEDhlK,EAFCglK,gBACAC,EACDjlK,EADCilK,4BAYA,OACIxxH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,cACXgoD,GAAAllD,EAAA/D,cAAA,UAAK6rC,GAAqBuH,eANlC,SAAmB0wH,GACjB,OAAQ3rH,YAAQ2rH,IAAc3rH,YAAQ2rH,EAAUzwH,YAMzCqnI,CAAU5W,GACP76G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,QAAQkvC,IAEzB8Y,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBAAkBu5K,EAAgB1W,EAAUD,iBAC3D56G,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqBwH,YAC7C4V,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAAS6iK,EAAUzwH,aAEvC4V,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqB2H,YAC7CyV,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAASs5K,EAAgBzW,EAAUC,kBAEvD96G,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqB6H,YAC7CuV,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAAS6iK,EAAU6W,iBAEvC1xH,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqBgI,YAC7CoV,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAAS6iK,EAAUE,sBAEvC/6G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qBACXgoD,GAAAllD,EAAA/D,cAAA,KACIiB,UAAU,gBACVyiD,KAAK,IACL0F,QAtCxB,SAAyC5kD,GACrCA,EAAMkmB,iBACN+vJ,EAA4B3W,EAAUzwH,cAqCpBxH,GAAqByB,eAO/CgtI,GAAU/wH,UAAY,CAClBu6G,UAAWt6G,KAAUnsD,OAAOu4D,WAC5BzlB,kBAAmBqZ,KAAUj5B,OAAOqlC,WACpC2kH,gBAAiB/wH,KAAUnsD,OAAOu4D,WAClC4kH,gBAAiBhxH,KAAUnsD,OAAOu4D,WAClC6kH,4BAA6BjxH,KAAUx3C,KAAK4jD,YAGjC0kH,UC7Df,SAASM,GAATplK,GACkE,IAD9CqlK,EAC8CrlK,EAD9CqlK,eAAgBpqI,EAC8Bj7B,EAD9Bi7B,oBAAqB2Q,EACS5rC,EADT4rC,UAAW05H,EACFtlK,EADEslK,kBAChEC,EAA8DvlK,EAA9DulK,sBAAuBC,EAAuCxlK,EAAvCwlK,iBAAiBC,EAAsBzlK,EAAtBylK,mBASxC,OACIhyH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACXgoD,GAAAllD,EAAA/D,cAAA,UAAK6rC,GAAqB+E,UACzBuH,YAAQ0iI,GACL5xH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,QAAQwvC,IAChBwY,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACL7O,GAAAllD,EAAA/D,cAAA,OACI4rE,cAAY,OACZlW,UAAU,QACV2kH,cAAY,MACZxuG,YAAU,eACVtyD,KAAK,MACLuyD,MAAM,6BACNC,QAAQ,cACR9qE,UAAU,iBACVgoD,GAAAllD,EAAA/D,cAAA,QACIgsE,KAAK,UACLrvE,EAAE,01BACFsE,UAAU,MAGlBgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,aAAa45K,EAAevgH,aACzCrR,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,YAAY45K,EAAeK,aACxCjyH,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,gBAAgB45K,EAAeM,WAC5ClyH,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,YACTgoD,GAAAllD,EAAA/D,cAAA,OACI4rE,cAAY,OACZlW,UAAU,QACV2kH,cAAY,MACZxuG,YAAU,iBACVtyD,KAAK,MACLuyD,MAAM,6BACNC,QAAQ,cACR9qE,UAAU,cACVgoD,GAAAllD,EAAA/D,cAAA,QACIgsE,KAAK,eACLrvE,EAAE,uPACFsE,UAAU,MAGlBgoD,GAAAllD,EAAA/D,cAAA,YAAO66K,EAAeO,iBAG9BnyH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qBACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,gBAAgByiD,KAAK,GAAG0F,QAtDzD,SAAgC5kD,GAC5BA,EAAMkmB,iBACNuwJ,EAAmBJ,KAoDoEhvI,GAAqB0B,aAhDrGutI,GAAsB15H,IAAckiH,KAAgBM,SAiDzB36G,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,gBAAgByiD,KAAMs3H,GAAmBD,GACxE9xH,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,kBACTgoD,GAAAllD,EAAA/D,cAAA,OACI4rE,cAAY,OACZlW,UAAU,QACV2kH,cAAY,MACZxuG,YAAU,aACVtyD,KAAK,MACLuyD,MAAM,6BACNC,QAAQ,cACR9qE,UAAU,UACVgoD,GAAAllD,EAAA/D,cAAA,QACIgsE,KAAK,eACLrvE,EAAE,0gBACFsE,UAAU,MAElBgoD,GAAAllD,EAAA/D,cAAA,iBAAAjE,OAAY8+K,EAAe9tH,eASvD6tH,GAASrxH,UAAY,CACjBsxH,eAAgBrxH,KAAUnsD,OAC1BozC,oBAAqB+Y,KAAUj5B,OAAOqlC,WACtCqlH,mBAAoBzxH,KAAUx3C,KAAK4jD,YAGxBglH,UCxFf,SAASS,GAAT7lK,GAMG,IALCk7E,EAKDl7E,EALCk7E,MACAlgD,EAIDh7B,EAJCg7B,uBACAgqI,EAGDhlK,EAHCglK,gBACAc,EAED9lK,EAFC8lK,uBACAC,EACD/lK,EADC+lK,eAmCA,OACItyH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,SACVk3C,YAAQu4C,GACLznC,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,QAAQuvC,IAEzByY,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO4qC,GAAqB+H,MAEvC2nI,EACItyH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO4qC,GAAqBkI,YAC3CkV,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QAEvBgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO4qC,GAAqBiF,UA1CpD4/C,EAAM14E,IAAI,SAAC47B,EAAM7tC,GACpB,IAAMy1K,EAASz1K,EAAQ,IAAM2qF,EAAMnyF,OACnC,OAAO0qD,GAAAllD,EAAA/D,cAAA,OACHwF,IAAK0yC,IAAEue,WACPx1D,UAAS,cAAAlF,OAAgBy/K,EAAS,OAAS,KAC3CvyH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OACXgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,UAAU4qC,GAAqB+H,MAC/CqV,GAAAllD,EAAA/D,cAAA,YAAO4zC,EAAKP,aAGZkoI,EACItyH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OACXgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,UAAU4qC,GAAqBkI,YAC/CkV,GAAAllD,EAAA/D,cAAA,YAAO4zC,EAAK6nI,iBAEhBxyH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QAEvBgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OACXgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,UAAU4qC,GAAqBiF,SAC/CmY,GAAAllD,EAAA/D,cAAA,KACIiB,UAAU,mBACVmoD,QAAS,SAAC5kD,IA1B9B,SAAoCA,EAAO6uC,GACvC7uC,EAAMkmB,iBACN4wJ,EAAuBjoI,GAwBeqoI,CAA2Bl3K,EAAOovC,EAAKP,cAAkBmnI,EAAgB5mI,EAAKiwH,uBA8B5HwX,GAAiB9xH,UAAY,CACzBmnC,MAAOlnC,KAAUjjD,MAAMqvD,WACvBplB,uBAAwBgZ,KAAUj5B,OAAOqlC,WACzC4kH,gBAAiBhxH,KAAUnsD,OAAOu4D,WAClC0lH,uBAAwB9xH,KAAUx3C,KAAK4jD,YAG5BylH,0lBC3DTM,eACF,SAAAA,EAAY5qJ,GAAO,IAAA3Q,IAAA,uCAAAu7J,4DAAAC,CAAA9qK,OACfsP,MAAAy7J,GAAAF,GAAAthL,KAAAyW,KAAMigB,+CAANjgB,SAEKgrK,wBAA0B17J,EAAK07J,wBAAwBl+J,KAA7Bm+J,MAAA37J,KAC/BA,EAAK07J,0BAJU17J,qPADOwpC,+DASF94C,KAAKigB,MAAjB+f,QAEAozH,6EAGc,IAAAjhG,EACQnyD,KAAKigB,MAA3B+f,EADcmyB,EACdnyB,QAAS6G,EADKsrB,EACLtrB,SAEjB7G,EAAQsyH,uBACJzrH,EAASqkI,kCACTrkI,EAASC,IAAcwJ,WACvBzJ,EAASC,IAAcyrH,uDAItB,IAAArwF,EASDliE,KAAKigB,MAPL4Y,EAFCqpC,EAEDrpC,QACAgO,EAHCq7B,EAGDr7B,SACAskI,EAJCjpG,EAIDipG,8BACAza,EALCxuF,EAKDwuF,qCACAgC,EANCxwF,EAMDwwF,oBACA8X,EAPCtoG,EAODsoG,uBACAL,EARCjoG,EAQDioG,mBAEIvX,EAA2CF,EAA3CE,YAAamX,EAA8BrX,EAA9BqX,eAAgB/W,EAAcN,EAAdM,UAC/BoY,EAAwB/jI,YAAQurH,GAAe73H,GAAqB6E,YAAcgzH,EAAYnlK,OAEhGw4K,EAaAp/H,EAbAo/H,UACAoF,EAYAxkI,EAZAwkI,aACApmI,EAWA4B,EAXA5B,UACAqmI,EAUAzkI,EAVAykI,gBACAlnI,EASAyC,EATAzC,UACA/E,EAQAwH,EARAxH,kBACAK,EAOAmH,EAPAnH,uBACAC,EAMAkH,EANAlH,oBACA8qI,EAKA5jI,EALA4jI,eACAT,EAIAnjI,EAJAmjI,kBACAC,EAGApjI,EAHAojI,sBACAC,EAEArjI,EAFAqjI,iBACA55H,EACAzJ,EADAyJ,UAEEi7H,EAAoBtlH,aAAiBolH,GACrCG,GAAoC3yI,GAAWsyI,IAAkC9jI,YAAQqrH,GAE/F,OACIv6G,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACKnuB,EAAUsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAAgC,KAC3C5tB,GAAAllD,EAAA/D,cAAA,UAAK+2K,GACJsF,EAAkBrkK,IAAI,SAACkxC,GACpB,OAAOD,GAAAllD,EAAA/D,cAAA,OAAKwF,IAAK0yC,IAAEue,WAAYx1D,UAAU,kBAAkBioD,KAE/DD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAACk9J,GAAD,CACInmB,iBAAkBklC,EAClBjlC,SAAUwqB,IACb8a,GACGrzH,GAAAllD,EAAA/D,cAAA,UAAK6rC,GAAqBgF,iBACrBsH,YAAQurH,IAAgBz6G,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,kBAAkBi7K,IAElEI,GACGrzH,GAAAllD,EAAA/D,cAACu8K,GAAD,CACI7rF,MAAOgzE,EACPlzH,uBAAwBA,EACxBgqI,gBAAiB4B,EACjBd,uBAAwBA,EACxBC,eAAkBA,IACzBe,GACGrzH,GAAAllD,EAAA/D,cAACw8K,GAAD,CACI3B,eAAgBA,EAChBpqI,oBAAqBA,EACrB2Q,UAAWA,EACX05H,kBAAqBA,EACrBC,sBAAyBA,EACzBC,iBAAoBA,EACpBC,mBAAoBA,KAE/BqB,GACGrzH,GAAAllD,EAAA/D,cAACy8K,GAAD,CACI3Y,UAAWA,EACX3zH,kBAAmBA,EACnBqqI,gBAAiBzkI,EACjBwkI,gBAAiBrlI,EACjBulI,4BAA6Ba,mMAMrDK,GAAgBpyH,UAAY,CACxB5f,QAAS6f,KAAUqM,KAAKD,WACxBje,SAAU6R,KAAUnsD,OAAOu4D,WAC3B0lH,uBAAwB9xH,KAAUx3C,KAAK4jD,WACvCqlH,mBAAoBzxH,KAAUx3C,KAAK4jD,YAqBxBrL,oBAlBf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9C8F,oBAAqBhtJ,EAAMs1J,YAAYtI,oBACvChC,qCAAsChrJ,EAAMs1J,YAAYtK,qCACxDya,8BAA+BzlK,EAAMs1J,YAAYmQ,gCAIzD,SAA4BhnK,GACxB,MAAO,CACH67B,QAAS,CACLsyH,uBAAwBlsJ,aAAmB+0J,GAA2Ch3J,GACtFivJ,yBAA0BhtJ,aAAmB+0J,GAA6Ch3J,MAKvFs1C,CAGboxH,IC5IF,SAASe,GAATlnK,GAAgD,IAAtBmnK,EAAsBnnK,EAAtBmnK,mBACtB,OACI1zH,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,aAAamoD,QAASuzH,GAC/B1zH,GAAAllD,EAAA/D,cAAA,OAAK4rE,cAAY,OAAOlW,UAAU,QAAQoW,MAAM,6BAA6BC,QAAQ,cAAc9qE,UAAU,QACzGgoD,GAAAllD,EAAA/D,cAAA,QAAMgsE,KAAK,eACPrvE,EAAE,uYACFsE,UAAU,OAM9By7K,GAAenzH,UAAY,CACvBozH,mBAAoBnzH,KAAUx3C,KAAK4jD,YAIxB8mH,0lBCFTE,eACF,SAAAA,EAAY7rJ,GAAO,IAAA3Q,IAAA,uCAAAw8J,4DAAAC,CAAA/rK,OACfsP,MAAA08J,GAAAF,GAAAviL,KAAAyW,KAAMigB,+CAANjgB,SACK0F,MAAQwkI,GAAajF,0BAE1B31H,EAAK28J,sBAAwB38J,EAAK28J,sBAAsBn/J,KAA3Bo/J,MAAA58J,KAC7BA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlBo/J,MAAA58J,KACpBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5Bo/J,MAAA58J,KAC9BA,EAAK68J,kBAAoB78J,EAAK68J,kBAAkBr/J,KAAvBo/J,MAAA58J,KACzBA,EAAK88J,gBAAkB98J,EAAK88J,gBAAgBt/J,KAArBo/J,MAAA58J,KARRA,qPADMwpC,kEAYC6rB,GAAW,IAE7B9rC,EAIA8rC,EAJA9rC,QACAgO,EAGA89B,EAHA99B,SACA27G,EAEA79E,EAFA69E,qBACAyX,EACAt1F,EADAs1F,gCAGJ,IAAKphI,GAAWohI,EAAiC,KACrC93H,EAAkB0E,EAAlB1E,OAAQz8B,EAAUmhC,EAAVnhC,MAChB1F,KAAK4hD,SAASopG,GAAyCxI,EAAsBrgH,EAAQz8B,qDAIrE,IAAA6J,EAAAvP,KAAAmyD,EACUnyD,KAAKigB,MAA3B+f,EADYmyB,EACZnyB,QAAS6G,EADGsrB,EACHtrB,SADGywB,EAEoCt3D,KAAK0F,MAArD09H,EAFY9rE,EAEZ8rE,kBAAmBlhG,EAFPo1B,EAEOp1B,QAASmhG,EAFhB/rE,EAEgB+rE,gBAC5BlhG,EAAkB0E,EAAlB1E,OAAQz8B,EAAUmhC,EAAVnhC,MACV4mJ,EAAiBC,YAAe1lH,GAChC2lH,EAAyBnX,GAAwBiX,EAAexlH,IAAcphC,OAAQ1F,KAAK0F,MAAMohC,IAAcphC,O/EhDjG,Q+E2DpB,OATA4mJ,EAAexlH,IAAc5E,SAASkH,aAAeppC,KAAK0F,MAAMohC,IAAc5E,SAC9EoqH,EAAexlH,IAAc3E,QAAQiH,aAAeppC,KAAK0F,MAAMohC,IAAc3E,QAC7EmqH,EAAexlH,IAAcphC,OAAO0jC,aAAeojH,EACnDF,EAAexlH,IAAc7E,MAAMmH,aAAeppC,KAAK0F,MAAMohC,IAAc7E,MAC3EqqH,EAAexlH,IAAchF,cAAcsH,aAAeppC,KAAK0F,MAAMohC,IAAchF,cACnFwqH,EAAexlH,IAAc/E,cAAcqH,aAAeppC,KAAK0F,MAAMohC,IAAc/E,cACnFuqH,EAAexlH,IAAc9E,cAAcoH,aAAeppC,KAAK0F,MAAMohC,IAAc9E,cACnFsqH,EAAexlH,IAAcqE,UAAU/B,aAAeppC,KAAK0F,MAAMohC,IAAcqE,UAExEwqG,GAAY,CACf9uG,SAAUylH,EACVvW,YAAa,CAAE7uG,gBAAiBhF,GAChC2zG,WAAY,CAAEzS,oBAAmBl5I,MAAOi4C,EAASA,EAAOj4C,MAAQ6wC,GAAqB6E,aACrFk2G,UAAW,CAAEzS,kBAAiBn5I,MAAOwb,EAAQA,EAAMxb,MAAQ6wC,GAAqB6E,aAChF0jC,aAAc,SAAC5vE,GAAY6b,EAAKqyC,SAASopG,GAAmCt3J,EAAM3D,UAClFimJ,kBAAmB,SAACtiJ,GAAY6b,EAAKqyC,SAASopG,GAAiDt3J,EAAM3D,UACrGumJ,oBAAqB,SAAC5iJ,GAClB6b,EAAKqyC,SAASopG,GAAqCt3J,EAAM3D,OAAQoyC,EAAQz8B,GACrE,WACIs6B,EAAQuwH,+BAGpB/Z,sBAAuB,SAACt+D,GAAc,IAAUp1D,EAAWvT,EAAK7J,MAAhBod,OAAuB,OAAO2pI,GAA8Cv0E,EAAWp1D,2CAIlIpvB,GACTA,EAAMkmB,iBADU,IAERitB,EAAa7mC,KAAKigB,MAAlB4mB,SACR7mC,KAAK4hD,SAASopG,GAAsCnkH,GAAW7mC,KAAKsqJ,yEAIhEtqJ,KAAK0F,MAAM49H,eAIftjI,KAAK4hD,SAASopG,IAAmC,GAAOhrJ,KAAKmsK,gEAK7DE,EAD8BrsK,KAAKigB,MAA3BosJ,mBACUrsK,KAAKosK,6DAIvB,IAAME,EAAa,GAYnB,OAXAA,EAAWxlI,IAAchF,cAAgB9hC,KAAK0F,MAAMohC,IAAchF,cAClEwqI,EAAWxlI,IAAc/E,cAAgB/hC,KAAK0F,MAAMohC,IAAc/E,cAClEuqI,EAAWxlI,IAAc9E,cAAgBhiC,KAAK0F,MAAMohC,IAAc9E,cAClEsqI,EAAWxlI,IAAcqE,UAAYnrC,KAAK0F,MAAMohC,IAAcqE,UAC9DmhI,EAAWxlI,IAAc7E,MAAQjiC,KAAK0F,MAAMohC,IAAc7E,MAC1DqqI,EAAWxlI,IAAc5E,SAAWliC,KAAK0F,MAAMohC,IAAc5E,SAC7DoqI,EAAWxlI,IAAc3E,QAAUniC,KAAK0F,MAAMohC,IAAc3E,QAC5DmqI,EAAWxlI,IAAcphC,OAAS1F,KAAK0F,MAAMohC,IAAcphC,OAC3D4mK,EAAWxlI,IAAcx9C,MAAQ0W,KAAK0F,MAAMohC,IAAcc,aAC1D0kI,EAAWxlI,IAAcsE,iBAAmBprC,KAAK0F,MAAMohC,IAAcsE,iBACrEkhI,EAAWxlI,IAAcjF,gBAAkB7hC,KAAK0F,MAAMohC,IAAcjF,gBAC7DyqI,mCAGF,IACGC,EAA+BvsK,KAAKigB,MAApCssJ,2BACR,OACIp0H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACXgoD,GAAAllD,EAAA/D,cAAA,WAASiB,UAAU,uBACfgoD,GAAAllD,EAAA/D,cAACs9K,GAAD,CAAgBX,mBAAoBU,IACpCp0H,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cAChB3kJ,KAAKisK,wBACN9zH,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfsB,iBAAkBlrH,GAAqB6B,+MASnEkvI,GAAerzH,UAAY,CACvB5R,SAAU6R,KAAUnsD,OAAOu4D,WAC3BunH,kBAAmB3zH,KAAUx3C,KAAK4jD,WAClCynH,2BAA4B7zH,KAAUx3C,KAAK4jD,YAoBhCrL,oBAjBf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9CqN,gCAAiCv0J,EAAMo1J,sBAAsBb,gCAC7Dc,wBAAyBr1J,EAAMo1J,sBAAsBC,wBACrDvY,qBAAsB98I,EAAMo1J,sBAAsBtY,uBAI1D,SAA4Br+I,GACxB,MAAO,CACH67B,QAAS,CACLuwH,0BAA2BnqJ,aAAmB80J,GAA8C/2J,MAKzFs1C,CAA6CqyH,4kBCpJtDW,eACF,SAAAA,EAAYxsJ,GAAO,IAAA3Q,IAAA,uCAAAm9J,4DAAAC,CAAA1sK,OACfsP,MAAAq9J,GAAAF,GAAAljL,KAAAyW,KAAMigB,+CAANjgB,SACK0F,MAAQ,CAAEknK,WAAW,EAAOC,sBAAsB,EAAOC,qBAAqB,GACnFx9J,EAAKy9J,kBAAoBz9J,EAAKy9J,kBAAkBjgK,KAAvBkgK,MAAA19J,KACzBA,EAAK29J,oBAAsB39J,EAAK29J,oBAAoBngK,KAAzBkgK,MAAA19J,KAC3BA,EAAK49J,oBAAsB59J,EAAK49J,oBAAoBpgK,KAAzBkgK,MAAA19J,KAC3BA,EAAK69J,oBAAsB79J,EAAK69J,oBAAoBrgK,KAAzBkgK,MAAA19J,KAC3BA,EAAK89J,mBAAqB99J,EAAK89J,mBAAmBtgK,KAAxBkgK,MAAA19J,KAC1BA,EAAK+9J,sBAAwB/9J,EAAK+9J,sBAAsBvgK,KAA3BkgK,MAAA19J,KARdA,qPADewpC,4DAYd,IACR/N,EAAY/qC,KAAKigB,MAAjB8qB,QACR/qC,KAAKmtK,oBAAoBpiI,qDAGH45B,GAAW,IACzB55B,EAAY45B,EAAZ55B,QACR/qC,KAAKmtK,oBAAoBpiI,6CAGXr3C,GACdA,EAAMkmB,iBADe,IAAAu4C,EAEmBnyD,KAAKigB,MAArC8qB,EAFaonB,EAEbpnB,SACRuiI,EAHqBn7G,EAEJm7G,oBACEviI,+CAGHr3C,GAChBA,EAAMkmB,iBADiB,IAAAsoD,EAEmBliE,KAAKigB,MAAvC8qB,EAFem3B,EAEfn3B,SACRwiI,EAHuBrrG,EAENqrG,sBACIxiI,+CAGLr3C,EAAO85K,GACvB95K,EAAMkmB,iBAD8B,IAAA21H,EAEMvvI,KAAKigB,MAAvC8qB,EAF4BwkG,EAE5BxkG,QAAS0iI,EAFmBl+B,EAEnBk+B,qBAEXC,EAAiBnhB,YAAexhH,GACtC2iI,EAAeF,IAAgBE,EAAeF,GAE9CxtK,KAAKmtK,oBAAoBO,GACzBD,EAAqB,CAAEE,wBAAyB5iI,EAAS2iI,+DAGzC3iI,GAChB,IAAM6hI,EAAY7hI,EAAQzhD,KACpBujL,EAAuB9hI,EAAQK,gBAC/B0hI,EAAsB/hI,EAAQlJ,eAEpC7hC,KAAK4hD,SAAS,CAAEgrH,YAAWC,uBAAsBC,qEAGhC,IACT/hI,EAAY/qC,KAAKigB,MAAjB8qB,QAER,OAAI1D,YAAQ0D,EAAQjE,IAAc7E,OAC9B,GAAAh3C,OAAU8/C,EAAQjE,IAAcqE,WAGpC,GAAAlgD,OAAU8/C,EAAQjE,IAAcqE,UAAhC,MAAAlgD,OAA8C8/C,EAAQjE,IAAc7E,uDAGhD,IACZ8I,EAAY/qC,KAAKigB,MAAjB8qB,QAER,OAAI1D,YAAQ0D,EAAQjE,IAAc3E,SAC1BkF,YAAQ0D,EAAQjE,IAAc8mI,YAC9B,GAAA3iL,OAAU8/C,EAAQjE,IAAc0mF,cAGpC,GAAAviI,OAAU8/C,EAAQjE,IAAc0mF,aAAhC,MAAAviI,OAAiD8/C,EAAQjE,IAAc8mI,YAG3E,GAAA3iL,OAAU8/C,EAAQjE,IAAc0mF,aAAhC,MAAAviI,OAAiD8/C,EAAQjE,IAAc3E,0CAGlE,IAAA5yB,EAAAvP,KAAAwvI,EAKDxvI,KAAKigB,MAHL4mB,EAFC2oG,EAED3oG,SACAkE,EAHCykG,EAGDzkG,QACA2/H,EAJCl7B,EAIDk7B,OAJCpzG,EAO4Dt3D,KAAK0F,MAA9DknK,EAPHt1G,EAOGs1G,UAAWC,EAPdv1G,EAOcu1G,qBAAsBC,EAPpCx1G,EAOoCw1G,oBACjCllI,EAAiDf,EAAjDe,YAAawD,EAAoCvE,EAApCuE,gBAAiBvJ,EAAmBgF,EAAnBhF,eAEtC,OAAQsW,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,WAAAlF,OAAa8/C,EAAQzhD,KAAO,OAAS,GAArC,KAAA2B,OAA2Cy/K,EAAS,OAAS,KACvEvyH,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,YAAd,IAA2By8K,EAAY,iBAAmB,GAA1D,IAA+DC,EAAuB,qBAAuB,GAA7G,IAAkHC,EAAsB,oBAAsB,IAC9J30H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,UAAU46C,EAAQjE,IAAchF,eAC/CqW,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,UAAU46C,EAAQjE,IAAc/E,eAC/CoW,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,UAAU46C,EAAQjE,IAAc9E,eAC/CmW,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QAAf,GAAAlF,OAA0B+U,KAAKotK,uBAC/Bj1H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,WAAf,GAAAlF,OAA6B+U,KAAKqtK,2BAEtCl1H,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,SACVgoD,GAAAllD,EAAA/D,cAAA,UACIipD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAW,wBACXwqE,oBAAkB,aAClBC,qBAAA,GAEAziB,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,eACbgoD,GAAAllD,EAAA/D,cAAA,SACIb,KAAK,WACL8B,UAAU,0CACV1G,KAAK,cACLuE,GAAG,cACHkiC,SAAU,SAAC/xB,GAAD,OAAOoR,EAAK29J,oBAAoB/uK,EAAG2oC,IAAcx9C,OAC3DwuD,QAAS80H,IAAaz0H,GAAAllD,EAAA/D,cAAA,UAAQ04C,EAAY19C,SAG1DiuD,GAAAllD,EAAA/D,cAAA,UACIipD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAW,wBACXwqE,oBAAkB,aAClBC,qBAAA,GAEAziB,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,eACbgoD,GAAAllD,EAAA/D,cAAA,SACIb,KAAK,WACL8B,UAAU,0CACV1G,KAAK,kBACLuE,GAAG,kBACHkiC,SAAU,SAAC/xB,GAAD,OAAOoR,EAAK29J,oBAAoB/uK,EAAG2oC,IAAcsE,kBAC3D0M,QAAS+0H,IAAwB10H,GAAAllD,EAAA/D,cAAA,UAAQk8C,EAAgBlhD,SAGzEiuD,GAAAllD,EAAA/D,cAAA,UACIipD,GAAAllD,EAAA/D,cAAA,OACIiB,UAAW,wBACXwqE,oBAAkB,aAClBC,qBAAA,GAEAziB,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,eACbgoD,GAAAllD,EAAA/D,cAAA,SACIb,KAAK,WACL8B,UAAU,0CACV+/B,SAAU,SAAC/xB,GAAD,OAAOoR,EAAK29J,oBAAoB/uK,EAAG2oC,IAAcjF,iBAC3Dp4C,KAAK,iBACLuE,GAAG,iBACH8pD,QAASg1H,IAAuB30H,GAAAllD,EAAA/D,cAAA,UAAQ2yC,EAAe33C,WAK/EiuD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,UACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,eAAemoD,QAASt4C,KAAK+sK,mBACtC50H,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,OACZgoD,GAAAllD,EAAA/D,cAAA,OAAK4rE,cAAY,OAAOlW,UAAU,QAAQ2kH,cAAY,MAAMxuG,YAAU,aAAatyD,KAAK,MAAMuyD,MAAM,6BAA6BC,QAAQ,cAAc9qE,UAAU,QAC7JgoD,GAAAllD,EAAA/D,cAAA,QAAMgsE,KAAK,QAAQrvE,EAAE,koBAG7BssD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqB+B,cAEjDqb,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,iBAAiBmoD,QAASt4C,KAAKitK,qBACxC90H,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,OACZgoD,GAAAllD,EAAA/D,cAAA,OAAK4rE,cAAY,OAAOlW,UAAU,QAAQ2kH,cAAY,MAAMxuG,YAAU,YAAYtyD,KAAK,MAAMuyD,MAAM,6BAA6BC,QAAQ,cAAc9qE,UAAU,QAC5JgoD,GAAAllD,EAAA/D,cAAA,QAAMgsE,KAAK,QAAQrvE,EAAE,sjBAE7BssD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqBgC,iNASrE0vI,GAAwBh0H,UAAY,CAChC5R,SAAU6R,KAAUnsD,OAAOu4D,WAC3B/Z,QAAS2N,KAAUnsD,OAAOu4D,WAC1BwoH,mBAAoB50H,KAAUx3C,KAAK4jD,WACnCyoH,qBAAsB70H,KAAUx3C,KAAK4jD,WACrC2oH,qBAAsB/0H,KAAUx3C,KAAK4jD,WACrC4lH,OAAQhyH,KAAUqM,KAAKD,YAGZ2nH,klBC1KToB,eACF,SAAAA,EAAY5tJ,GAAO,IAAA3Q,IAAA,uCAAAu+J,4DAAAC,CAAA9tK,OACfsP,MAAAy+J,GAAAF,GAAAtkL,KAAAyW,KAAMigB,+CAANjgB,SAEK0F,MAAQwkI,GAAahF,6BAE1B51H,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlBkhK,MAAA1+J,KACpBA,EAAK2+J,yBAA2B3+J,EAAK2+J,yBAAyBnhK,KAA9BkhK,MAAA1+J,KANjBA,qPADSwpC,kEAUF6rB,GAAW,IAE7B9rC,EAIA8rC,EAJA9rC,QACAgO,EAGA89B,EAHA99B,SACA27G,EAEA79E,EAFA69E,qBACAyX,EACAt1F,EADAs1F,gCAGJ,IAAKphI,GAAWohI,EAAiC,KACrC93H,EAAkB0E,EAAlB1E,OAAQz8B,EAAUmhC,EAAVnhC,MAChB1F,KAAK4hD,SAASopG,GAAyCxI,EAAsBrgH,EAAQz8B,iDAIzE,IACRmhC,EAAa7mC,KAAKigB,MAAlB4mB,SACR7mC,KAAK4hD,SAASopG,GAAkCnkH,uDAGzB,IAAAt3B,EAAAvP,KAAAmyD,EACOnyD,KAAKigB,MAA3B+f,EADemyB,EACfnyB,QAAS6G,EADMsrB,EACNtrB,SADMywB,EAEiCt3D,KAAK0F,MAArD09H,EAFe9rE,EAEf8rE,kBAAmBlhG,EAFJo1B,EAEIp1B,QAASmhG,EAFb/rE,EAEa+rE,gBAC5BlhG,EAAkB0E,EAAlB1E,OAAQz8B,EAAUmhC,EAAVnhC,MACV4mJ,EAAiBC,YAAe1lH,GAChC2lH,EAAyBnX,GAAwBiX,EAAexlH,IAAcphC,OAAQ1F,KAAK0F,MAAMohC,IAAcphC,OjFlDjG,QiFiEpB,OAbA4mJ,EAAexlH,IAAc5E,SAASkH,aAAeppC,KAAK0F,MAAMohC,IAAc5E,SAC9EoqH,EAAexlH,IAAc3E,QAAQiH,aAAeppC,KAAK0F,MAAMohC,IAAc3E,QAC7EmqH,EAAexlH,IAAcphC,OAAO0jC,aAAeojH,EACnDF,EAAexlH,IAAc7E,MAAMmH,aAAeppC,KAAK0F,MAAMohC,IAAc7E,MAC3EqqH,EAAexlH,IAAchF,cAAcsH,aAAeppC,KAAK0F,MAAMohC,IAAchF,cACnFwqH,EAAexlH,IAAc/E,cAAcqH,aAAeppC,KAAK0F,MAAMohC,IAAc/E,cACnFuqH,EAAexlH,IAAc9E,cAAcoH,aAAeppC,KAAK0F,MAAMohC,IAAc9E,cACnFsqH,EAAexlH,IAAcqE,UAAU/B,aAAeppC,KAAK0F,MAAMohC,IAAcqE,UAC/EmhH,EAAexlH,IAAcc,aAAawB,aAAeppC,KAAK0F,MAAMohC,IAAcc,aAClF0kH,EAAexlH,IAAcjF,gBAAgBuH,aAAeppC,KAAK0F,MAAMohC,IAAcjF,gBACrFyqH,EAAexlH,IAAcsE,iBAAiBhC,aAAeppC,KAAK0F,MAAMohC,IAAcsE,iBAG/EuqG,GAAY,CACf9uG,SAAUylH,EACVvW,YAAa,CAAE7uG,gBAAiBhF,GAChC2zG,WAAY,CAAEzS,oBAAmBl5I,MAAOi4C,EAASA,EAAOj4C,MAAQ6wC,GAAqB6E,aACrFk2G,UAAW,CAAEzS,kBAAiBn5I,MAAOwb,EAAQA,EAAMxb,MAAQ6wC,GAAqB6E,aAChF0jC,aAAc,SAAC5vE,GAAY6b,EAAKqyC,SAASopG,GAAmCt3J,EAAM3D,UAClFimJ,kBAAmB,SAACtiJ,GAAY6b,EAAKqyC,SAASopG,GAAiDt3J,EAAM3D,UACrGumJ,oBAAqB,SAAC5iJ,GAClB6b,EAAKqyC,SAASopG,GAAqCt3J,EAAM3D,OAAQoyC,EAAQz8B,GACrE,WACIs6B,EAAQuwH,+BAGpB/Z,sBAAuB,SAACt+D,GAAc,IAAUp1D,EAAWvT,EAAK7J,MAAhBod,OAAuB,OAAO2pI,GAA8Cv0E,EAAWp1D,2CAIlIpvB,GACTA,EAAMkmB,iBADU,IAERitB,EAAa7mC,KAAKigB,MAAlB4mB,SACR7mC,KAAK4hD,SAASopG,GAAsCnkH,GAAW7mC,KAAKsqJ,yEAIhEtqJ,KAAK0F,MAAM49H,eAIftjI,KAAK4hD,SAASopG,IAAmC,GAAOhrJ,KAAKmsK,gEAK7DsB,EADiCztK,KAAKigB,MAA9BwtJ,sBACa,CAAEC,eAAgB1tK,KAAKkuK,sEAI5C,IAAMzpB,EAAmB,GAazB,OAZAA,EAAiB39G,IAAchF,cAAgB9hC,KAAK0F,MAAMohC,IAAchF,cACxE2iH,EAAiB39G,IAAc/E,cAAgB/hC,KAAK0F,MAAMohC,IAAc/E,cACxE0iH,EAAiB39G,IAAc9E,cAAgBhiC,KAAK0F,MAAMohC,IAAc9E,cACxEyiH,EAAiB39G,IAAcqE,UAAYnrC,KAAK0F,MAAMohC,IAAcqE,UACpEs5G,EAAiB39G,IAAc7E,MAAQjiC,KAAK0F,MAAMohC,IAAc7E,MAChEwiH,EAAiB39G,IAAc5E,SAAWliC,KAAK0F,MAAMohC,IAAc5E,SACnEuiH,EAAiB39G,IAAc3E,QAAUniC,KAAK0F,MAAMohC,IAAc3E,QAClEsiH,EAAiB39G,IAAcphC,OAAS1F,KAAK0F,MAAMohC,IAAcphC,OACjE++I,EAAiB39G,IAAcx9C,MAAQ0W,KAAK0F,MAAMohC,IAAcc,aAChE68G,EAAiB39G,IAAcsE,iBAAmBprC,KAAK0F,MAAMohC,IAAcsE,iBAC3Eq5G,EAAiB39G,IAAcjF,gBAAkB7hC,KAAK0F,MAAMohC,IAAcjF,gBAEnE4iH,mCAGF,IACG0pB,EAAkCnuK,KAAKigB,MAAvCkuJ,8BACR,OACIh2H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACXgoD,GAAAllD,EAAA/D,cAAA,WAASiB,UAAU,uBACfgoD,GAAAllD,EAAA/D,cAACs9K,GAAD,CAAgBX,mBAAoBsC,IACpCh2H,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cAChB3kJ,KAAKiuK,2BACN91H,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfsB,iBAAkBlrH,GAAqB6B,+MASnEixI,GAAkBp1H,UAAY,CAC1B5R,SAAU6R,KAAUnsD,OAAOu4D,WAC3B2oH,qBAAsB/0H,KAAUx3C,KAAK4jD,WACrCqpH,8BAA+Bz1H,KAAUx3C,KAAK4jD,YAoBnCrL,oBAjBf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9CqN,gCAAiCv0J,EAAMo1J,sBAAsBb,gCAC7Dc,wBAAyBr1J,EAAMo1J,sBAAsBC,wBACrDvY,qBAAsB98I,EAAMo1J,sBAAsBtY,uBAI1D,SAA4Br+I,GACxB,MAAO,CACH67B,QAAS,CACLuwH,0BAA2BnqJ,aAAmB80J,GAA8C/2J,MAKzFs1C,CAA6Co0H,ICxJ/CO,GAAyB,CAElCC,mBAAoB,SAAA3pK,GAAyD,IAAtD4pK,EAAsD5pK,EAAtD4pK,gBAAiBlqC,EAAqC1/H,EAArC0/H,YAAamqC,EAAwB7pK,EAAxB6pK,kBACjD,OAAOC,GAAqBF,EAAiBlqC,EAAamqC,IAE9DE,eAAgB,SAAAnrK,GAA4C,IAAzCgrK,EAAyChrK,EAAzCgrK,gBAAiBC,EAAwBjrK,EAAxBirK,kBACxBG,EAAsDH,EAAtDG,oBAAqBC,EAAiCJ,EAAjCI,6BAC7B,OAAOx2H,GAAAllD,EAAA/D,cAAC0/K,GAAD,CACH/nI,SAAUynI,EACVjC,kBAAmBqC,EACnBnC,2BAA4BoC,KAEpCE,kBAAmB,SAAAv1J,GAA8D,IAA3Dg1J,EAA2Dh1J,EAA3Dg1J,gBAAiBC,EAA0Cj1J,EAA1Ci1J,kBAAmB9pB,EAAuBnrI,EAAvBmrI,iBAC9CyoB,EAAsDqB,EAAtDrB,oBAAqByB,EAAiCJ,EAAjCI,6BACvB9nI,EAAWioI,GAAyBR,EAAiB7pB,GAC3D,OAAOtsG,GAAAllD,EAAA/D,cAAC6/K,GAAD,CACHloI,SAAUA,EACV4mI,qBAAsBP,EACtBiB,8BAA+BQ,MAMrCH,GAAuB,SAACF,EAAiBlqC,EAAamqC,GAAsB,IACtExoI,EAAcq+F,EAAdr+F,UACAipI,EAA6BT,EAA7BS,yBAER,OAAI3nI,YAAQtB,GACAoS,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,QAAQm+K,EAAgBxnI,IAAcmoI,qBAAuBl0I,GAAqB2B,mBAEnGyb,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUg2F,EACV/oB,iBAAkBlrH,GAAqB4B,iBAK5CuyI,GAAiBZ,EAAiBlqC,EAAamqC,IAGpDW,GAAmB,SAACZ,EAAiBlqC,EAAamqC,GAAsB,IAClExoI,EAAcq+F,EAAdr+F,UAEJipI,EAIAT,EAJAS,yBACAG,EAGAZ,EAHAY,4BACAjC,EAEAqB,EAFArB,oBACAD,EACAsB,EADAtB,oBAGEpmI,EAAW,CAAEe,YADsC0mI,EAAjD1mI,YACwBwD,gBADyBkjI,EAApCljI,gBAC4BvJ,eADQysI,EAAnBzsI,gBAEhCutI,EAAuBrpI,EACxB5vC,KAAK,SAAClD,EAAGC,GACN,OAAID,EAAE3J,OAAS4J,EAAE5J,KACN,EAGJ2J,EAAE3J,MAAQ,EAAI,IAExB4d,IAAI,SAAC6jC,EAAS91C,GACX,IAAMy1K,EAASz1K,IAAU8wC,EAAUt4C,OAAS,EAE5C,OAAO0qD,GAAAllD,EAAA/D,cAAA,OAAKwF,IAAKO,EAAO9E,UAAU,aAC9BgoD,GAAAllD,EAAA/D,cAACmgL,GAAD,CACIxoI,SAAUA,EACVkE,QAASA,EACT2/H,OAAQA,EACR4C,mBAAoB6B,EACpB5B,qBAAsBN,EACtBQ,qBAAsBP,OAItC,OAAQ/0H,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACHooH,EACDj3H,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUg2F,EACV/oB,iBAAkBlrH,GAAqB4B,kBAK7CmyI,GAA2B,SAACR,EAAiB7pB,GAC/C,IAAM59G,EAAW0lH,YAAe+hB,GAiBhC,OAfAznI,EAASC,IAAchF,cAAcsH,aAAeq7G,EAAiB39G,IAAchF,eAAiB/G,GAAqB6E,YACzHiH,EAASC,IAAc/E,cAAcqH,aAAeq7G,EAAiB39G,IAAc/E,eAAiBhH,GAAqB6E,YACzHiH,EAASC,IAAc9E,cAAcoH,aAAeq7G,EAAiB39G,IAAc9E,eAAiBjH,GAAqB6E,YACzHiH,EAASC,IAAcqE,UAAU/B,aAAeq7G,EAAiB39G,IAAcqE,WAAapQ,GAAqB6E,YACjHiH,EAASC,IAAc7E,MAAMmH,aAAeq7G,EAAiB39G,IAAc7E,OAASlH,GAAqB6E,YAEzGiH,EAASC,IAAc5E,SAASkH,aAAeq7G,EAAiB39G,IAAc5E,SAC9E2E,EAASC,IAAc5E,SAASsrF,YAAci3B,EAAiB39G,IAAc0mF,cAAgBzyF,GAAqB6E,YAClHiH,EAASC,IAAc3E,QAAQiH,aAAeq7G,EAAiB39G,IAAc3E,QAC7E0E,EAASC,IAAcphC,OAAO0jC,aAAeq7G,EAAiB39G,IAAcphC,OAE5EmhC,EAASC,IAAcc,aAAawB,aAAeq7G,EAAiB39G,IAAcx9C,MAClFu9C,EAASC,IAAcsE,iBAAiBhC,aAAeq7G,EAAiB39G,IAAcsE,iBACtFvE,EAASC,IAAcjF,gBAAgBuH,aAAeq7G,EAAiB39G,IAAcjF,gBAE9EgF,2kBC7FLyoI,eACF,SAAAA,EAAYrvJ,GAAO,IAAA3Q,qCAAAggK,4DAAAC,CAAAvvK,OACfsP,MAAAkgK,GAAAF,GAAA/lL,KAAAyW,KAAMigB,+CAANjgB,SACK0F,MAAQwkI,GAAahG,uBAFX,IAIPE,EAAgBnkH,EAAhBmkH,YACF0rB,EAAoBvD,YAAenoB,GAL1B,OAMf90H,EAAK5J,MAAM0+H,YAAc0rB,EAEzBxgJ,EAAKmgK,oBAAsBngK,EAAKmgK,oBAAoB3iK,KAAzB4iK,MAAApgK,KAC3BA,EAAKo7I,UAAYp7I,EAAKo7I,UAAU59I,KAAf4iK,MAAApgK,KAEjBA,EAAKqgK,qBAAuBrgK,EAAKqgK,qBAAqB7iK,KAA1B4iK,MAAApgK,KAC5BA,EAAKq/J,6BAA+Br/J,EAAKq/J,6BAA6B7hK,KAAlC4iK,MAAApgK,KAEpCA,EAAK0/J,yBAA2B1/J,EAAK0/J,yBAAyBliK,KAA9B4iK,MAAApgK,KAChCA,EAAKo/J,oBAAsBp/J,EAAKo/J,oBAAoB5hK,KAAzB4iK,MAAApgK,KAE3BA,EAAK6/J,4BAA8B7/J,EAAK6/J,4BAA4BriK,KAAjC4iK,MAAApgK,KACnCA,EAAK49J,oBAAsB59J,EAAK49J,oBAAoBpgK,KAAzB4iK,MAAApgK,KAE3BA,EAAKsgK,mBAAqBtgK,EAAKsgK,mBAAmB9iK,KAAxB4iK,MAAApgK,KAE1BA,EAAK29J,oBAAsB39J,EAAK29J,oBAAoBngK,KAAzB4iK,MAAApgK,KAC3BA,EAAKs5C,wBAA0Bt5C,EAAKs5C,wBAAwB97C,KAA7B4iK,MAAApgK,KAC/BA,EAAKugK,0BAA4BvgK,EAAKugK,0BAA0B/iK,KAA/B4iK,MAAApgK,KAEjCA,EAAKi/J,kBAAoB,GAEzBj/J,EAAKi/J,kBAAkB7rC,GAA+BC,8BAAgCrzH,EAAKq/J,6BAE3Fr/J,EAAKi/J,kBAAkB7rC,GAA+BE,0BAA4BtzH,EAAK0/J,yBACvF1/J,EAAKi/J,kBAAkB7rC,GAA+BG,qBAAuBvzH,EAAKo/J,oBAElFp/J,EAAKi/J,kBAAkB7rC,GAA+BI,6BAA+BxzH,EAAK6/J,4BAC1F7/J,EAAKi/J,kBAAkB7rC,GAA+BK,qBAAuBzzH,EAAK49J,oBAElF59J,EAAKi/J,kBAAkB7rC,GAA+BM,qBAAuB1zH,EAAK29J,oBAElF39J,EAAKwgK,gBAAkB,KAtCRxgK,qPADSwpC,kEA0CF6rB,GAAW,IACzBw+D,EAAanjI,KAAK0F,MAAlBy9H,SACAiB,EAA4Dz/D,EAA5Dy/D,YAAavrG,EAA+C8rC,EAA/C9rC,QAASqhI,EAAsCv1F,EAAtCu1F,kCAE1B/2B,IAAatqG,GACb74B,KAAK4hD,SAASopG,IAAmC,GAAQhrJ,KAAK4vK,oBAG7DzsC,GAAatqG,IAAWqhI,GACzBl6J,KAAK4hD,SjDiV6B,SAACwiF,GAAD,OAAiB,SAAC1+H,GAC5D,OAAAg8I,GAAA,GACOh8I,EADP,CAEI0+H,iBiDpVkB4mB,CAAgD5mB,mDAKlEpkI,KAAK0qJ,mEAIL1qJ,KAAK0qJ,YACL1qJ,KAAK4hD,SAASopG,GlF7EE,0EkFiFhBhrJ,KAAK0qJ,YACL1qJ,KAAK4hD,SAASopG,GlFjFF,uEkFoFYvG,GACxBzkJ,KAAK0qJ,YACL1qJ,KAAK4hD,SAASopG,GlFrFC,oBkFqFwFvG,mDAGpF,IAAAntF,EACuBt3D,KAAK0F,MAAvC0+H,EADW9sE,EACX8sE,YAAaqgB,EADFntF,EACEmtF,iBACb59G,EAAa7mC,KAAKigB,MAAlB4mB,SACAs9F,EAAcnkI,KAAK0F,MAAnBy+H,UACF2rB,EAAoBvD,YAAenoB,GAEzC,OAAOgqC,GAAuBjqC,GAAW,CACrCmqC,gBAAiBznI,EACjBu9F,YAAa0rB,EACbye,kBAAmBvuK,KAAKuuK,kBACxB9pB,iEAIY6nB,GAAY,IAAA/8J,EAAAvP,KACpBokI,EAAgBpkI,KAAK0F,MAArB0+H,YAEA2rC,EADa/vK,KAAKigB,MAAlB4mB,SACAkpI,WACA9wB,EAAmC8wB,EAAnC9wB,kBAAmBD,EAAgB+wB,EAAhB/wB,YAEvB8Q,EAAoBvD,YAAenoB,GAEvC,GAAI/8F,YAAQyoH,EAAkB/pH,WAQ1B,OAPAumI,EAAWhjL,MAAO,EAClBgjL,EAAWlhI,iBAAkB,EAC7BkhI,EAAWzqI,gBAAiB,EAC5BiuH,EAAkB/pH,UAAY,GAC9B+pH,EAAkB/pH,UAAUjxC,KAAKw3K,QACjCtsK,KAAK4hD,SAASopG,IAAmC,GAC7C,WAAQz7I,EAAKkgK,oBAAoB3f,EAAmB7Q,EAAmBD,MAI/E8Q,EAAoB9vJ,KAAKgwK,oBAAoB1D,EAAYA,IACvCvmI,UAAUjxC,KAAKw3K,GAEjCtsK,KAAK4hD,SAASopG,IAAmC,GAAO,WACpDz7I,EAAKkgK,oBAAoB3f,EAAmB7Q,EAAmBD,oDAIN,IAAAvvI,EAAAzP,KAA3C2tK,EAA2CjpK,EAA3CipK,wBAAyBD,EAAkBhpK,EAAlBgpK,eACnCjpB,EAAqBzkJ,KAAK0F,MAA1B++I,iBAEA5nH,EADa78B,KAAKigB,MAAlB4mB,SACAhK,cACAoiH,EAAmCpiH,EAAnCoiH,kBAAmBD,EAAgBniH,EAAhBmiH,YAErBixB,EAAmB5oI,YAAQsmI,GAA2BlpB,EAAmBkpB,EAC/E,GAAK3tK,KAAKkwK,oBAAoBD,EAAkBvC,GAAhD,CAIA,IAAM5d,EAAoB9vJ,KAAKgwK,oBAAoBC,EAAkBvC,GAErE1tK,KAAK4hD,SAASopG,IAAmC,GAC7C,WAAQv7I,EAAKggK,oBAAoB3f,EAAmB7Q,EAAmBD,kDAG3Dj0G,GACS/qC,KAAKmwK,iBAAiBplI,KAE3C/qC,KAAK8vK,gBAAkB/kI,EACvB/qC,KAAK4hD,SAASopG,GAA2B,iFAIrB,IAAAl7I,EAAA9P,KAEhB68B,EADa78B,KAAKigB,MAAlB4mB,SACAhK,cACAunG,EAAgBpkI,KAAK0F,MAArB0+H,YACA96F,EAAe86F,EAAf96F,WACA21G,EAAmCpiH,EAAnCoiH,kBAAmBD,EAAgBniH,EAAhBmiH,YAErB8Q,EAAoBvD,YAAenoB,GACnCgsC,EAAuBpwK,KAAKkrC,gBAAgBlrC,KAAK8vK,iBAElB,IAAjC1rC,EAAYr+F,UAAUt4C,QACrB67C,EAAWr+B,SAASujC,KAAgBC,UACpCO,IAAY2H,oBAAoBytF,KACjC0rB,EAAkB/pH,UAAY,GAC9B/lC,KAAK4hD,SAASopG,IAAmC,GAAO,WAAQl7I,EAAK2/J,oBAAoB3f,EAAmB7Q,EAAmBD,MAG/H5a,EAAYr+F,UAAUt4C,OAAS,IAC9BuS,KAAK8vK,gBAAgBxmL,OACrB0W,KAAK8vK,gBAAgB1kI,kBACrBprC,KAAK8vK,gBAAgBjuI,iBACtBiuH,EAAkB/pH,UAAU7hC,OAAOksK,EAAsB,GACzDpwK,KAAK4hD,SAASopG,IAAmC,GAAO,WAAQl7I,EAAK2/J,oBAAoB3f,EAAmB7Q,EAAmBD,MAEnIh/I,KAAK4oD,mEAGQ7d,GAAS,IAAAonB,EACQnyD,KAAKigB,MAA3B+f,EADcmyB,EACdnyB,QAAS6G,EADKsrB,EACLtrB,SAEbwpI,EAIAxpI,EAJAwpI,+BACAC,EAGAzpI,EAHAypI,+BACAC,EAEA1pI,EAFA0pI,mCACAC,EACA3pI,EADA2pI,kCAEIpsC,EAAgBpkI,KAAK0F,MAArB0+H,YACA96F,EAAe86F,EAAf96F,WAER,OAAqC,IAAjC86F,EAAYr+F,UAAUt4C,SACrB67C,EAAWr+B,SAASujC,KAAgBC,UACjCO,IAAY2H,oBAAoBytF,KACpCpkG,EAAQiyH,iCAAiC,CAACoe,GAAkCt1I,GAAqBiC,2BAC1F,GAGP+N,EAAQzhD,MACR02C,EAAQiyH,iCAAiC,CAACqe,GAAkCv1I,GAAqBkC,2BAC1F,GAGP8N,EAAQK,iBACRpL,EAAQiyH,iCAAiC,CAACse,GAAsCx1I,GAAqBmC,+BAC9F,IAGP6N,EAAQlJ,iBACR7B,EAAQiyH,iCAAiC,CAACue,GAAqCz1I,GAAqBoC,8BAC7F,+CAMKwwI,EAAyBD,GAAgB,IACjDtpC,EAAgBpkI,KAAK0F,MAArB0+H,YACF0rB,EAAoBvD,YAAenoB,GACrCqsC,EAA+BzwK,KAAKkrC,gBAAgByiI,GA2BxD,OAzBItmI,YAAQyoH,EAAkB/pH,aAC1B+pH,EAAkB/pH,UAAY,GAC9B0qI,EAA+B,GAGnC3gB,EAAkB/pH,UAAUvgC,QAAQ,SAACulC,EAAS91C,GACtCw7K,IAAiCx7K,IAC7By4K,EAAepkL,OACfyhD,EAAQzhD,MAAO,GAGfokL,EAAetiI,kBACfL,EAAQK,iBAAkB,GAG1BsiI,EAAe7rI,iBACfkJ,EAAQlJ,gBAAiB,OAKC,IAAlC4uI,IACA3gB,EAAkB/pH,UAAU0qI,GAAgC/C,GAGzD5d,8CAGS6d,EAAyBD,GAAgB,IAAAxrG,EAC3BliE,KAAKigB,MAA3B+f,EADiDkiC,EACjDliC,QAAS6G,EADwCq7B,EACxCr7B,SAEbypI,EAGAzpI,EAHAypI,+BACAC,EAEA1pI,EAFA0pI,mCACAC,EACA3pI,EADA2pI,kCAGJ,OAAK9C,EAAepkL,MAAQqkL,EAAwBrkL,MAChD02C,EAAQiyH,iCAAiC,CAACqe,GAAkCv1I,GAAqBkC,2BAC1F,IAGNywI,EAAetiI,iBAAmBuiI,EAAwBviI,iBAC3DpL,EAAQiyH,iCAAiC,CAACse,GAAsCx1I,GAAqBmC,+BAC9F,MAGNwwI,EAAe7rI,gBAAkB8rI,EAAwB9rI,iBAC1D7B,EAAQiyH,iCAAiC,CAACue,GAAqCz1I,GAAqBoC,6BAC7F,4CAMCkO,GAAgB,IACpB+4F,EAAgBpkI,KAAK0F,MAArB0+H,YACF94F,EAAqBz1C,KAAKE,UAAUs1C,GACtCE,GAAgB,EAEpB,OAAIlE,YAAQ+8F,EAAYr+F,YACZ,GAGZq+F,EAAYr+F,UAAUvgC,QAAQ,SAACulC,EAAS91C,GAChCq2C,IAAuBz1C,KAAKE,UAAUg1C,KACtCQ,EAAet2C,KAIhBs2C,+CAGS64F,EAAa6a,EAAmBD,GAAa,IACrDh/G,EAAYhgC,KAAKigB,MAAjB+f,QACF8oI,EAA6B7pB,GAAqBlkH,GAAqB21I,+BAC7E1wI,EAAQ+1H,oBAAoB3xB,EAAa0kC,EAA4B9pB,iDAKrEwpB,EAD+BxoK,KAAKigB,MAA5BuoJ,qBACW,GACnBxoK,KAAK2uK,8BAA6B,uCAG1B,IACA3uI,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAaymC,iCAC3B3wI,EAAQ4wI,qFAIR5wK,KAAK4hD,SAASopG,GAA2B,6DAGpC,IAAA/oF,EACyCjiE,KAAK0F,MAA3Cy9H,EADHlhE,EACGkhE,SAAUY,EADb9hE,EACa8hE,wBADbwL,EAODvvI,KAAKigB,MAJL4Y,EAHC02G,EAGD12G,QACAgO,EAJC0oG,EAID1oG,SACAkrH,EALCxiB,EAKDwiB,4BACA8e,EANCthC,EAMDshC,kCAGA5K,EAGAp/H,EAHAo/H,UACA6K,EAEAjqI,EAFAiqI,uBACAC,EACAlqI,EADAkqI,0BAEEC,EAAiC/qH,aAAiB8qH,GACxD,OACI54H,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,UAAK+2K,GACL9tH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kCACVgzI,GAAYtqG,EAAUsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAAgC,KACvD5tB,GAAAllD,EAAA/D,cAACk9J,GAAD,CAAaz0B,QAAS33H,KAAKgqJ,eACvB/jB,iBAAkB4qC,EAClB3qC,SAAU6rB,IACb/xJ,KAAK2vK,wBAEVx3H,GAAAllD,EAAA/D,cAAC+5D,GAAD,CACIp3B,YAAoCxmC,IAA5B04I,GAAgDA,EACxDn8E,eAAsCv8D,IAA3BylL,EAAuC/1I,GAAqB8I,iCAAmCitI,EAC1GjpH,aAAc7nD,KAAK4oD,wBACnBd,eAAgB9nD,KAAK6vK,0BACrB7nH,yBAAyB,EACzBD,iBAAiB,EACjBE,cAAejoD,KAAK4oD,wBACpBV,wBAAwB,GACvB8oH,EAA+B9pK,IAAI,SAACxc,GACjC,OAAOytD,GAAAllD,EAAA/D,cAAA,MAAIwF,IAAK0yC,IAAEue,YAAcj7D,qMAQxD4kL,GAAkB72H,UAAY,CAC1B5R,SAAU6R,KAAUnsD,OAAOu4D,WAC3Bs/E,YAAa1rF,KAAUnsD,OAAOu4D,WAC9B0jH,mBAAoB9vH,KAAUx3C,KAAK4jD,YAuBxBrL,oBApBf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9CikB,kCAAmCnrK,EAAMs1J,YAAY6V,kCACrD3W,kCAAmCx0J,EAAMs1J,YAAYd,kCACrDnI,4BAA6BrsJ,EAAMs1J,YAAYjJ,8BAIvD,SAA4B5tJ,GACxB,MAAO,CACH67B,QAAS,CACL+1H,oBAAqB3vJ,aAAmB+0J,GAAwCh3J,GAChFysK,iCAAkCxqK,aAAmB+0J,GAA4Ch3J,GACjG8tJ,iCAAkC7rJ,aAAmB+0J,GAAqDh3J,GAC1G+tJ,0BAA2B9rJ,aAAmB+0J,GAA8Ch3J,MAKzFs1C,CAGb61H,6sBCpXI2B,eACF,SAAAA,EAAYhxJ,GAAO,IAAA3Q,qCAAA2hK,4DAAAC,CAAAlxK,MACfsP,MAAA6hK,GAAAF,GAAA1nL,KAAAyW,KAAMigB,+CAANjgB,QADe,IAGP6mC,EAAa5mB,EAAb4mB,SAEFylH,EAAiBh9I,EAAK8hK,oBAAoBnxJ,GALjC,OAOf3Q,EAAK5J,yUAAL2rK,CAAA,GACOnnC,GAAa7F,mCADpB,CAEIx9F,SAAUylH,IAGdh9I,EAAKgiK,qCAAuChiK,EAAKgiK,qCAAqCxkK,KAA1CykK,MAAAjiK,KAC5CA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlBykK,MAAAjiK,KACpBA,EAAKkiK,eAAiBliK,EAAKkiK,eAAe1kK,KAApBykK,MAAAjiK,KACtBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5BykK,MAAAjiK,KAE9BA,EAAKsmI,eAAiBqU,GAAoCpjH,GAE1Dv3B,EAAK04J,+BAAiC14J,EAAK04J,+BAA+Bl7J,KAApCykK,MAAAjiK,KAnBvBA,qPADqBwpC,kEAuBd6rB,GAAW,IACzBw+D,EAAanjI,KAAK0F,MAAlBy9H,SAEJtqG,EAEA8rC,EAFA9rC,QACAyvI,EACA3jG,EADA2jG,+BAGAnlC,IACCtqG,GACDyvI,GACAtoK,KAAK4hD,SAASopG,IAAmC,GAAQhrJ,KAAKgoK,iCAG9D7kC,GACCtqG,GACAyvI,GACDtoK,KAAK4hD,SAASopG,IAAmC,gDAIrC/qI,GAAO,IACf4mB,EAA0B5mB,EAA1B4mB,SADe4qI,EACWxxJ,EAAhBmkH,YACyC55F,YAAnDm1G,EAFe8xB,EAEf9xB,cAAeh1G,EAFA8mI,EAEA9mI,SAAU4qC,EAFVk8F,EAEUl8F,UAE3B+2E,EAAiBC,YAAe1lH,GAOtC,OAJAylH,EAAe5iH,oBAAoBN,aAAeppC,KAAK0xK,kBAAkB/xB,EAAe2M,EAAe5iH,oBAAoBpxC,SAC3Hg0J,EAAexX,eAAe1rG,aAAeppC,KAAK2xK,8BAA8BhnI,EAAU2hH,EAAexX,eAAex8I,SACxHg0J,EAAejiH,gBAAgBjB,aAAeppC,KAAK2xK,8BAA8Bp8F,EAAW+2E,EAAejiH,gBAAgB/xC,SAEpHg0J,wDAGmBp+J,EAAKoK,GAC/B,GAAW,MAAPpK,EAAa,OAAO,KAExB,IAAM0jL,EAAiB,GAUvB,OARA5lL,OAAOkK,KAAKhI,GAAKsX,QAAQ,SAAC9Q,GACtB3J,QAAQC,IAAI0J,EAAKxG,EAAIwG,KACJ,IAAbxG,EAAIwG,IAEc,MADC4D,EAAQ0d,KAAK,SAACjqB,GAAD,OAAOA,EAAEiC,GAAGm8C,gBAAkBz1C,EAAIy1C,iBAC1CynI,EAAe98K,KAAKJ,KAI7Ck9K,4CAGOC,EAAgBv5K,GAC9B,GAAsB,MAAlBu5K,EAAwB,OAAO,KAEnC,IAAMD,EAAiB,GASvB,OAPAC,EAAersK,QAAQ,SAAC7P,GAChBA,EAAKxL,OAEa,MADCmO,EAAQ0d,KAAK,SAACjqB,GAAD,OAAOA,EAAEiC,GAAGm8C,gBAAkBx0C,EAAK3H,GAAGm8C,iBAC9CynI,EAAe98K,KAAKa,EAAK3H,MAIlD4jL,4DAKPpJ,EAD+BxoK,KAAKigB,MAA5BuoJ,qBACW,kDAGA,IACXxoI,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAa5F,qBAC3BtkG,EAAQkyH,iEAGCx+J,GACTA,EAAMkmB,iBADU,IAERitB,EAAa7mC,KAAK0F,MAAlBmhC,SACR7mC,KAAK4hD,SAASopG,GAAsCnkH,GAAW7mC,KAAKsqJ,yEAIpE,GAAItqJ,KAAK0F,MAAM49H,cAAf,CAA8B,IAClBxgH,EAAW9iB,KAAK0F,MAAhBod,OACRmnI,GAAuCnnI,EAAQ9iB,KAAK41I,qBAIxD51I,KAAK4hD,SAASopG,IAAmC,GAAOhrJ,KAAKwxK,yDAGhD,IAAAr/G,EACoBnyD,KAAKigB,MAA9B+f,EADKmyB,EACLnyB,QAASokG,EADJjyE,EACIiyE,YACTv9F,EAAa7mC,KAAK0F,MAAlBmhC,SAEJm4G,EAEAn4G,EAFAm4G,YACA8yB,EACAjrI,EADAirI,kCAGJ9xI,EAAQs2H,oCAAoC,CACxCh8H,YAAat6B,KAAK0F,MAClB0+H,cACA6a,kBAAmB6yB,EACnB9yB,+EAI+B,IAAAzvI,EAAAvP,KAC3B6mC,EAAa7mC,KAAK0F,MAAlBmhC,SAER,OAAO8uG,GAAY,CACf9uG,WACA+uG,eAAgB51I,KAAK41I,eACrBtyE,aAAc,SAAC5vE,GAAY6b,EAAKqyC,SAASopG,GAAmCt3J,EAAM3D,UAClFimJ,kBAAmB,SAACtiJ,GAChB,IAAMq+K,EAAar+K,EAAM3D,OACnBmoF,EAAY65F,EAAWtoL,KACvB83J,EAAY16G,EAASqxC,GAC3B3oE,EAAKqyC,SAASopG,GAAiD+mB,EAAYxwB,KAE/E/K,sBAAuB,SAACt+D,GAAc,IAC1Bp1D,EAAWvT,EAAK7J,MAAhBod,OACR,OAAO2pI,GAA8Cv0E,EAAWp1D,uCAKnE,IAAAo/C,EAKDliE,KAAKigB,MAHL4Y,EAFCqpC,EAEDrpC,QACAyvI,EAHCpmG,EAGDomG,+BACA7W,EAJCvvF,EAIDuvF,0BAEI5qH,EAAa7mC,KAAK0F,MAAlBmhC,SAEJo/H,EAEAp/H,EAFAo/H,UACAoF,EACAxkI,EADAwkI,aAEEE,EAAoBtlH,aAAiBolH,GAE3C,OACIlzH,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,UAAK+2K,GACJsF,EAAkBrkK,IAAI,SAACkxC,GACpB,OAAOD,GAAAllD,EAAA/D,cAAA,OAAKwF,IAAK0yC,IAAEue,WAAYx1D,UAAU,iBACrCs3D,wBAAyB,CACrBC,OAAQtP,OAGpBD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gBACV0oC,EAAUsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAAgC,KAC3C5tB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACXgoD,GAAAllD,EAAA/D,cAAA,YACIipD,GAAAllD,EAAA/D,cAACk9J,GAAD,CAAanmB,iBAAkBqiC,EAC3BpiC,SAAUurB,IAEbzxJ,KAAKsxK,uCACNn5H,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfsB,iBAAkBlrH,GAAqByC,+NAUvEyzI,GAA8Bx4H,UAAY,CACtC5R,SAAU6R,KAAUnsD,OAAOu4D,WAC3Bs/E,YAAa1rF,KAAUnsD,OAAOu4D,WAC9B0jH,mBAAoB9vH,KAAUx3C,KAAK4jD,YAoBxBrL,oBAjBf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9C0b,+BAAgC5iK,EAAMs1J,YAAYsN,+BAClD7W,0BAA2B/rJ,EAAMs1J,YAAYvJ,4BAIrD,SAA4BttJ,GACxB,MAAO,CACH67B,QAAS,CACLs2H,oCAAqClwJ,aAAmB+0J,GAAwDh3J,GAChH+tJ,0BAA2B9rJ,aAAmB+0J,GAA8Ch3J,MAKzFs1C,CAGbw3H,IC5Oa,SAASe,KACpB,OACI75H,GAAAllD,EAAA/D,cAAA,WACK,0BCFb,SAAS+iL,GAATvtK,GAIG,IAHCwtK,EAGDxtK,EAHCwtK,cACAhT,EAEDx6J,EAFCw6J,WACAiT,EACDztK,EADCytK,YAEA,OACIh6H,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,UACIiB,UAAS,GAAAlF,OAAKknL,EAAL,WACT75H,QAAS45H,GACXhT,IAMd+S,GAAoBx5H,UAAY,CAC5By5H,cAAex5H,KAAUx3C,KAAK4jD,WAC9Bo6G,WAAYxmH,KAAUj5B,OAAOqlC,WAC7BqtH,YAAaz5H,KAAUj5B,OAAOqlC,YAGnBmtH,UCpBf,SAASG,GAAT1tK,GAAgD,IAApB0hC,EAAoB1hC,EAApB0hC,MAAOisI,EAAa3tK,EAAb2tK,UAkB/B,OACIl6H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OACXgoD,GAAAllD,EAAA/D,cAAA,UAAKk3C,GACL+R,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QAnBfk3C,YAAQgrI,GACD,KAGJA,EAAUnrK,IAAI,SAACorK,EAAUr9K,GAC5B,IAAMs9K,EAAO,MAAAtnL,OAASgK,GACtB,OAAOkjD,GAAAllD,EAAA/D,cAAA,OACHwF,IAAK0yC,IAAEue,WACPx1D,UAAU,OACVgoD,GAAAllD,EAAA/D,cAAA,SAAOb,KAAK,WAAWL,GAAIukL,IAC3Bp6H,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,YAAY+pE,QAASq4G,GAAUD,EAASpoL,OACzDiuD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,cAAcs3D,wBAAyB,CAAEC,OAAQ4qH,EAAStsG,oBAezFosG,GAAiB35H,UAAY,CACzBrS,MAAOsS,KAAUj5B,OAAOqlC,WACxButH,UAAW35H,KAAUjjD,MAAMqvD,YAGhBstH,UCpCFI,YAA4B,WAAqE,IAApEC,EAAoE7jL,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAnD,KAAM8jL,EAA6C9jL,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAA5B,KAAM06C,EAAsB16C,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAT,KAC7F+jL,GAAmB,EAEvB,GAAI3/H,YAAkB1J,KAAgB9B,YAASirI,GAAiB,OAAOE,EAEvE,IAAMC,EAAkBtpI,EAAWl2C,cAAcqM,MAAM,KAAKkQ,OAAO,SAAAhkB,GAAC,OAAIA,IAClEknL,EAAeJ,EAAer/K,cAAcqM,MAAM,KAAKkQ,OAAO,SAAAmjK,GAAS,OAAIA,IAiBjF,OAfKtrI,YAASkrI,IACNG,EAAa5nK,SAASynK,EAAet/K,iBACrCu/K,GAAmB,GAI3BE,EAAazzG,MAAM,SAAA0zG,GACf,OAAGF,EAAgB3nK,SAAS6nK,EAAU1/K,iBAClCu/K,GAAmB,GACZ,KAMRA,4kBCXLI,eACF,SAAAA,EAAY9yJ,GAAO,IAAA3Q,IAAA,uCAAAyjK,4DAAAC,CAAAhzK,OACfsP,MAAA2jK,GAAAF,GAAAxpL,KAAAyW,KAAMigB,+CAANjgB,SACKkzK,uBAAyB5jK,EAAK4jK,uBAAuBpmK,KAA5BqmK,MAAA7jK,KAC9BA,EAAK8jK,wBAA0B9jK,EAAK8jK,wBAAwBtmK,KAA7BqmK,MAAA7jK,KAC/BA,EAAK+jK,0BAA4B/jK,EAAK+jK,0BAA0BvmK,KAA/BqmK,MAAA7jK,KAJlBA,qPADKwpC,+DAQDplD,GACnBA,EAAMkmB,iBADoB,IAAAu4C,EAEInyD,KAAKigB,MAA3B+f,EAFkBmyB,EAElBnyB,QAAS6G,EAFSsrB,EAETtrB,SAEjB7G,EAAQ+2H,8BAA8B,CAClCC,iBAAkBnwH,EAASysI,QAC3Brc,iBAAkBpwH,EAASowH,iBAC3BC,qBAAsBrwH,EAASqwH,qBAC/BC,uBAAwBtwH,EAASswH,uBACjCt3G,YAAa7/C,KAAKqzK,kFAIE,IAChBE,EAAsBvzK,KAAKigB,MAA3BszJ,kBAEFC,EAAY1zH,aAAkB,CAChC2zH,WAAW,IAGf,OAAID,EAAUvoK,SAAS,mBACZ4nC,mBAAmB6gI,aAAcF,EAAW,oBAAqBD,IAGrE1gI,mBAAmB2gI,mDAGN9/K,GACpBA,EAAMkmB,iBADqB,IAAAsoD,EAEGliE,KAAKigB,MAA3B+f,EAFmBkiC,EAEnBliC,QAAS6G,EAFUq7B,EAEVr7B,SACjB7G,EAAQ+2H,8BAA8B,CAClCC,iBAAkBnwH,EAAS8sI,SAC3B1c,iBAAkBpwH,EAASowH,iBAC3BC,qBAAsBrwH,EAASqwH,qBAC/BC,uBAAwBtwH,EAASswH,uBACjCt3G,YAAa7/C,KAAKqzK,+DAIjB,IAAA9jC,EAIDvvI,KAAKigB,MAFL4mB,EAFC0oG,EAED1oG,SACAu9F,EAHCmL,EAGDnL,YAGAwvC,EASA/sI,EATA+sI,mBACAC,EAQAhtI,EARAgtI,6BACAC,EAOAjtI,EAPAitI,mBACAC,EAMAltI,EANAktI,kBACAC,EAKAntI,EALAmtI,yBACAC,EAIAptI,EAJAotI,uBACAC,EAGArtI,EAHAqtI,sBACAC,EAEAttI,EAFAstI,kBACAC,EACAvtI,EADAutI,mBAGI1B,EAAmBtuC,EAAnBsuC,eACAppI,EAAe86F,EAAf96F,WAEF+qI,EAAc7B,GAA0BuB,EAAmBrB,EAAgBppI,GAC3EgrI,EAAe9B,GAA0BsB,EAAoBpB,EAAgBppI,GAE7EirI,EAAQtuH,aAAiB4tH,GAE/B,OACI17H,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,UAAK0kL,GACLz7H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,kBAAkBikL,GAC/Bj8H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,SACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QACVokL,EAAMrtK,IAAI,SAACstK,GACR,OAAOr8H,GAAAllD,EAAA/D,cAAA,KAAGwF,IAAK0yC,IAAEue,YAAa6uH,MAGtCr8H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BACVkkL,GACTl8H,GAAAllD,EAAA/D,cAACulL,GAAD,CAAqBvC,cAAiBlyK,KAAKkzK,uBAAwBhU,WAAW,cAAciT,YAAY,SAC/FmC,GACTn8H,GAAAllD,EAAA/D,cAACulL,GAAD,CAAqBvC,cAAiBlyK,KAAKozK,wBAAyBlU,WAAW,eAAeiT,YAAY,aAG1Gh6H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QACVokL,EAAMrtK,IAAI,SAACstK,GACR,OAAOr8H,GAAAllD,EAAA/D,cAAA,KAAGwF,IAAK0yC,IAAEue,YAAa6uH,MAGtCr8H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACX+5E,aAAW,OACXhV,IAAI,GACJw/G,MAAM,QACNC,OAAQX,MAGd5sI,IAAEC,QAAQ4sI,IACZ97H,GAAAllD,EAAA/D,cAAA,SAAI+kL,KAIZ97H,GAAAllD,EAAA/D,cAAC0lL,GAAD,CAAkBxuI,MAAO8tI,EAAuB7B,UAAW8B,oMAO/EpB,GAAct6H,UAAY,CACtB5R,SAAU6R,KAAUnsD,OAAOu4D,YAoBhBrL,oBAjBf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9C8F,oBAAqBhtJ,EAAMs1J,YAAYtI,oBACvChC,qCAAsChrJ,EAAMs1J,YAAYtK,qCACxDya,8BAA+BzlK,EAAMs1J,YAAYmQ,gCAIzD,SAA4BhnK,GACxB,MAAO,CACH67B,QAAS,CACL+2H,8BAA+B3wJ,aAAmB+0J,GAAkDh3J,MAKjGs1C,CAGbs5H,ICvJF,SAAS8B,GAATnwK,GAKG,IAJCowK,EAIDpwK,EAJCowK,UACApL,EAGDhlK,EAHCglK,gBACAD,EAED/kK,EAFC+kK,gBACAsL,EACDrwK,EADCqwK,uBA8CA,OArCQ58H,GAAAllD,EAAA/D,cAAA,UACIipD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBAAkBu5K,EAAgBoL,EAAU/hB,iBAC3D56G,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqBwH,YAC7C4V,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAAS2kL,EAAUvyI,aAEvC4V,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqB2H,YAC7CyV,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAASs5K,EAAgBqL,EAAU7hB,kBAEvD96G,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqB6H,YAC7CuV,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAAS2kL,EAAUnhB,sBAEvCx7G,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqBgI,YAC7CoV,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAAS2kL,EAAU5hB,uBAG3C/6G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,UACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,cAAcyiD,KAAK,IAAI0F,QAAS,SAAC5kD,IA5B9D,SAAoCA,EAAO6uC,GACvC7uC,EAAMkmB,iBACNm7J,EAAuBxyI,GA0B+CyyI,CAA2BthL,EAAOohL,EAAUvyI,cAClG4V,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,OACZgoD,GAAAllD,EAAA/D,cAAA,OAAK4rE,cAAY,OAAOlW,UAAU,QAAQoW,MAAM,6BAA6BC,QAAQ,cACjF9qE,UAAU,QACVgoD,GAAAllD,EAAA/D,cAAA,QAAMgsE,KAAK,eACPrvE,EAAE,sVACFsE,UAAU,OAGtBgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqBmI,oBAUrE2xI,GAAMp8H,UAAY,CACdq8H,UAAWp8H,KAAUnsD,OAAOu4D,WAC5B4kH,gBAAiBhxH,KAAUnsD,OAAOu4D,WAClC2kH,gBAAiB/wH,KAAUnsD,OAAOu4D,WAClCiwH,uBAAwBr8H,KAAUx3C,KAAK4jD,YAG5B+vH,UC7Df,SAASI,GAATvwK,GAAmF,IAAvDwwK,EAAuDxwK,EAAvDwwK,cAAeC,EAAwCzwK,EAAxCywK,iBAAkBC,EAAsB1wK,EAAtB0wK,mBA2BzD,SAASC,IACL,OAAOF,EAAmB,GAAKD,GAAiBC,EAoCpD,SAASG,EAAS5hL,EAAO+/J,GACrB//J,EAAMkmB,iBAENw7J,EAAmB3hB,GAWvB,OACIt7G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qBACVklL,IAA2Bl9H,GAAAllD,EAAA/D,cAAA,QAAMopD,QAN1C,WACI88H,EAAmBD,EAAmB,EAAI,EAAI,EAAIA,EAAmB,IAM7DhlL,UAAS,kBAAAlF,OAAyC,IAArBkqL,EAAyB,WAAa,KACnEh9H,GAAAllD,EAAA/D,cAAA,OAAK4rE,cAAY,OACblW,UAAU,QACV2kH,cAAY,MACZxuG,YAAU,eACVtyD,KAAK,MACLuyD,MAAM,6BACNC,QAAQ,cACR9qE,UAAU,IACVgoD,GAAAllD,EAAA/D,cAAA,QAAMgsE,KAAK,eACPrvE,EAAE,qPAGJ,KA7FlB,WACI,IAAM26G,EAAa,GAEnB,IAAK6uE,IACD,OAAO7uE,EAGP2uE,GAAoB,GACpB3uE,EAAW1xG,KAuBRqjD,GAAAllD,EAAA/D,cAAA,QAAMwF,IAAK,EACd4jD,QAAS,SAACn6C,GAAQm3K,EAASn3K,EAAG,IAC9BhO,UAAS,QAAAlF,OAA+B,IAArBkqL,EAAyB,SAAW,KAAO,MAtB9DA,EAAmB,GACnB3uE,EAAW1xG,KAyBRqjD,GAAAllD,EAAA/D,cAAA,QAAMwF,IAAK,EAAGvE,UAAU,QAAxB,QAtBP,IAAMolL,EAyBV,WAEI,IADA,IAAMA,EAAoB,GADE7lH,EAAA,SAEnBjkE,GACDA,EAAI,GAAKA,EAAIypL,GACbK,EAAkBzgL,KAAKqjD,GAAAllD,EAAA/D,cAAA,QAAMwF,IAAKjJ,EAC9B6sD,QAAS,SAACn6C,GAAQm3K,EAASn3K,EAAG1S,IAC9B0E,UAAS,QAAAlF,OAAUQ,IAAM0pL,EAAmB,SAAW,KAFpC,GAAAlqL,OAGfQ,MALPA,EAAI0pL,EAAmB,EAAG1pL,EAAI0pL,EAAmB,EAAG1pL,IAAKikE,EAAzDjkE,GAUT,OAAO8pL,EArCmBC,GACpBC,EAAoBjvE,EAAWv7G,OAAOsqL,GAO5C,OALIJ,EAAmBD,EAAgB,GACnCO,EAAkB3gL,KAAKqjD,GAAAllD,EAAA/D,cAAA,QAAMwF,KAAM,EAAGvE,UAAU,QAAzB,QAG3BslL,EAAkB3gL,KAkCXqjD,GAAAllD,EAAA/D,cAAA,QAAMwF,IAAKwgL,EACd58H,QAAS,SAACn6C,GAAQm3K,EAASn3K,EAAG+2K,IAC9B/kL,UAAS,QAAAlF,OAAUkqL,IAAqBD,EAAgB,SAAW,KAFhE,GAAAjqL,OAGCiqL,KApCDO,EAuEFC,GACAL,IAA2Bl9H,GAAAllD,EAAA/D,cAAA,QAAMopD,QA1B1C,WACI88H,EAAmBD,EAAmB,EAAID,EAAgBA,EAAgBC,EAAmB,IA0BrFhlL,UAAS,cAAAlF,OAAgBkqL,IAAqBD,EAAgB,WAAa,KAC3E/8H,GAAAllD,EAAA/D,cAAA,OAAK4rE,cAAY,OACblW,UAAU,QACV2kH,cAAY,MACZxuG,YAAU,gBACVtyD,KAAK,MACLuyD,MAAM,6BACNC,QAAQ,cACR9qE,UAAU,IACVgoD,GAAAllD,EAAA/D,cAAA,QAAMgsE,KAAK,eACPrvE,EAAE,gSAGJ,MAKtBopL,GAAiBx8H,UAAY,CACzBy8H,cAAex8H,KAAUxjB,OAAO4vB,WAChCqwH,iBAAkBz8H,KAAUxjB,OAAO4vB,WACnCswH,mBAAoB18H,KAAUx3C,KAAK4jD,YAIxBmwH,UCrHf,SAASU,GAATjxK,GAWG,IAEa26B,EAZZwH,EAUDniC,EAVCmiC,SACA89F,EASDjgI,EATCigI,sBACA+uB,EAQDhvJ,EARCgvJ,OACAgW,EAODhlK,EAPCglK,gBACAwL,EAMDxwK,EANCwwK,cACAxwC,EAKDhgI,EALCggI,6BACAqwC,EAIDrwK,EAJCqwK,uBACAa,EAGDlxK,EAHCkxK,kCACAC,EAEDnxK,EAFCmxK,uBACAh9I,EACDn0B,EADCm0B,QA6CA,OACIsf,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,MACM3f,YAAQqsH,IACNv7G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBACXgoD,GAAAllD,EAAA/D,cAAA,SAAI6rC,GAAqB3N,QAAzB,KACA+qB,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,eACbgoD,GAAAllD,EAAA/D,cAAA,SACI4oD,QAAS6sF,EACTz0G,SAAU0lJ,EACVvnL,KAAK,aACT8pD,GAAAllD,EAAA/D,cAAA,UAAQ6rC,GAAqBuI,gBAGzC6U,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BAvDXkvC,EAAsBwH,EAAtBxH,kBACJxG,IAAYwO,YAAQqsH,GACb,KAGHv7G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACnBgoD,GAAAllD,EAAA/D,cAAA,UAAK6rC,GAAqBoI,aAC1BgV,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,QAAQkvC,KAkDjB8Y,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,SA/C9B,WACI,GAAI0oC,GAAWwO,YAAQqsH,GACnB,OAAO,KAFa,IAKhBtvH,EAAcyC,EAAdzC,UACR,OAAOsvH,EAAOxsJ,IAAI,SAAC4uK,EAAkB7gL,GACjC,OAAQkjD,GAAAllD,EAAA/D,cAAC6mL,GAAD,CACJrhL,IAAKO,EACLy0K,gBAAiBA,EACjBoL,UAAWgB,EACXrM,gBAAiBrlI,EACjB2wI,uBAAwBA,MAoCfiB,KA/Bbn9I,GAAWwO,YAAQqsH,GACZ,KAGPwhB,GAAiB,EACV,KAGJ/8H,GAAAllD,EAAA/D,cAAC+mL,GAAD,CACHf,cAAeA,EACfC,iBAAkBzwC,EAClB0wC,mBAAoBS,MA6BhCF,GAAWl9H,UAAY,CACnB5R,SAAU6R,KAAUnsD,OAAOu4D,WAC3B6/E,sBAAuBjsF,KAAUqM,KAAKD,WACtC4uG,OAAQh7G,KAAUjjD,MAAMqvD,WACxB4kH,gBAAiBhxH,KAAUnsD,OAAOu4D,WAClCowH,cAAex8H,KAAUxjB,OAAO4vB,WAChC4/E,6BAA8BhsF,KAAUxjB,OAAO4vB,WAC/CiwH,uBAAwBr8H,KAAUx3C,KAAK4jD,WACvC8wH,kCAAmCl9H,KAAUx3C,KAAK4jD,WAClD+wH,uBAAwBn9H,KAAUx3C,KAAK4jD,YAS5BrL,oBANf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,IAIvCnzG,CAAyBk8H,ICpGxC,SAASO,GAATxxK,GASG,IARCowK,EAQDpwK,EARCowK,UACApL,EAODhlK,EAPCglK,gBACAD,EAMD/kK,EANC+kK,gBACA0M,EAKDzxK,EALCyxK,0BACAC,EAID1xK,EAJC0xK,oBACAvK,EAGDnnK,EAHCmnK,mBACAwK,EAED3xK,EAFC2xK,sBACAC,EACD5xK,EADC4xK,iBAGI/zI,EAOAuyI,EAPAvyI,WAEAwS,GAKA+/H,EANAryI,QAMAqyI,EALA//H,QAEAm+G,GAGA4hB,EAJAjyI,QAIAiyI,EAHA5hB,qBACAvwH,EAEAmyI,EAFAnyI,YACAsC,EACA6vI,EADA7vI,UAwBJ,OACIkT,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gBAEXgoD,GAAAllD,EAAA/D,cAACs9K,GAAD,CAAgBX,mBAAoBA,IACpC1zH,GAAAllD,EAAA/D,cAAA,UAAK6rC,GAAqBkF,aAC1BkY,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBAAkBu5K,EAAgBoL,EAAU/hB,iBAC3D56G,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqBwH,YAC7C4V,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAASoyC,IAE7B4V,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqB2H,YAC7CyV,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAASs5K,EAAgBrlI,GAAU2Q,MAEvDoD,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqB4H,aAC7CwV,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAASwyC,IAE7BwV,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqBgI,YAC7CoV,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAAS+iK,IAE7B/6G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qBACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,eAAeyiD,KAAK,IAAI0F,QAvCjD,SAAyC5kD,GACrCA,EAAMkmB,iBACNu8J,EAA0B5zI,KAsCd4V,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,OACZgoD,GAAAllD,EAAA/D,cAAA,OAAK4rE,cAAY,OACblW,UAAU,QACV2kH,cAAY,MACZxuG,YAAU,QACVtyD,KAAK,MACLuyD,MAAM,6BACNC,QAAQ,cACR9qE,UAAU,cACVgoD,GAAAllD,EAAA/D,cAAA,QAAMgsE,KAAK,QACPrvE,EAAE,kjBAAkjBsE,UAAU,OAI1kBgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqBqH,eAEjD+V,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,gBAAgB6B,MA7C9B+iD,IAAWjO,IAAcyvI,0BAC5BtxI,IAAc6B,IAAc0vI,6BACzBzhI,IAAWjO,IAAc2vI,gCA2CgC,GAAK,CAAErpJ,QAAS,QAAUwlB,KAAK,GAAG0F,QAnDtG,SAAqC5kD,GACjCA,EAAMkmB,iBACNy8J,EAAsB9zI,KAiDd,uBACC+zI,GAAoBn+H,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,gBAAgByiD,KAAK,GAAG0F,QA9DtE,SAA6B5kD,GACzBA,EAAMkmB,iBACNw8J,MA4D6B,YAMrCF,GAAYz9H,UAAY,CACpBq8H,UAAWp8H,KAAUnsD,OAAOu4D,WAC5B4kH,gBAAiBhxH,KAAUnsD,OAAOu4D,WAClC2kH,gBAAiB/wH,KAAUnsD,OAAOu4D,WAClCqxH,0BAA2Bz9H,KAAUx3C,KAAK4jD,WAC1CuxH,sBAAuB39H,KAAUx3C,KAAK4jD,WACtCsxH,oBAAqB19H,KAAUx3C,KAAK4jD,WACpC+mH,mBAAoBnzH,KAAUx3C,KAAK4jD,WACnCwxH,iBAAkB59H,KAAUqM,KAAKD,YAItBoxH,UCtGf,SAASQ,GAAThyK,GAAmE,IAArCiyK,EAAqCjyK,EAArCiyK,aAAcr3I,EAAuB56B,EAAvB46B,oBAkExC,OACI6Y,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gBACXgoD,GAAAllD,EAAA/D,cAAA,UAAK6rC,GAAqByH,aAlE1B6E,YAAQsvI,GACAx+H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACnBgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,QAAQmvC,IAItBq3I,EAAazvK,IAAI,SAACs7B,EAAavtC,GAClC,IA+BRqkB,EAAuC07I,EAAkBD,EAPzDzxJ,EAA2B7Z,EAAMmtL,EAxBnBlM,EAASz1K,EAAQ,IAAM0hL,EAAalpL,OAC1C,OACI0qD,GAAAllD,EAAA/D,cAAA,OAAKwF,IAAKO,EAAO9E,UAAS,WAAAlF,OAAay/K,EAAS,OAAS,KACrDvyH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uBACXgoD,GAAAllD,EAAA/D,cAAA,OAAK4rE,cAAY,OACblW,UAAU,QACV2kH,cAAY,MACZxuG,YAAU,eACVtyD,KAAK,MACLuyD,MAAM,6BACNC,QAAQ,cACR9qE,UAAU,iBACVgoD,GAAAllD,EAAA/D,cAAA,QAAMgsE,KAAK,UACPrvE,EAAE,01BACFsE,UAAU,OAUX1G,GAA3B6Z,EAPqCk/B,GAOV/4C,KAAMmtL,EAAWtzK,EAAXszK,QACrBz+H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QACnBgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,aAAb,GAAAlF,OAA6BxB,GAAQsxC,GAAqB6E,cAC1DuY,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,eAAb,GAAAlF,OAA+B2rL,GAAW77I,GAAqB6E,kBAIhCo1H,GAAvC17I,EAZ6CkpB,GAYNwyH,iBAAkBD,EAAwBz7I,EAAxBy7I,qBAC9CC,EAAiB9tJ,IAAI,SAAC+tJ,EAAiBhgK,GAC1C,IAAMy1K,EAASz1K,EAAQ,IAAM+/J,EAAiBvnK,OAC9C,OACI0qD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QAAQuE,IAAKO,GACxBkjD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO4qC,GAAqB87I,MAC3C1+H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBAAmB4qC,GAAqByF,KACvD2X,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO4qC,GAAqBuF,WAC3C6X,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBAAkB4qC,GAAqBwF,WAG1D4X,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,aACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAf,GAAAlF,OAAyBgqK,EAAgB5mK,OACzC8pD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBAAf,GAAAlF,OAAqCgqK,EAAgBh5G,WACrD9D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAf,OAAAlF,OAA0BgqK,EAAgBC,qBAC1C/8G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBAAf,GAAAlF,OAAoCgqK,EAAgBE,qBAGvDuV,GAAWvyH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BACvBgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBAAf,eAAAlF,OAAgD8pK,aAcxE2hB,GAAmBj+H,UAAY,CAC3Bk+H,aAAcj+H,KAAUjjD,MAAMqvD,WAC9BxlB,oBAAqBoZ,KAAUj5B,QAGpBi3J,UC/Ef,SAASI,GAATpyK,GAA4C,IAAhBy7B,EAAgBz7B,EAAhBy7B,aAwDxB,OAtDQkH,YAAQlH,GACD,KAGHgY,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBACnBgoD,GAAAllD,EAAA/D,cAAA,UAAK6rC,GAAqBoF,cAC1BgY,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,SACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO4qC,GAAqBmG,SAC3CiX,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO4qC,GAAqBoG,WAC3CgX,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO4qC,GAAqBqG,YAC3C+W,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO4qC,GAAqBsG,cAQhDlB,EAAaj5B,IAAI,SAACstJ,EAAav/J,GAClC,OAGR,SAA+Bu/J,EAAav/J,GACxC,OAAQkjD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBAAiBuE,IAAKO,GACzCkjD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAMgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,UAAU4qC,GAAqBmG,SAAeiX,GAAAllD,EAAA/D,cAAA,YAAOslK,EAAYC,mBACtGt8G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAMgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,UAAU4qC,GAAqBoG,WAAiBgX,GAAAllD,EAAA/D,cAAA,YAAOslK,EAAYE,qBACxGv8G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAMgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,UAAU4qC,GAAqBqG,YAAkB+W,GAAAllD,EAAA/D,cAAA,YAAOslK,EAAYG,sBACzGx8G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAMgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,UAAU4qC,GAAqBsG,aAChE8W,GAAAllD,EAAA/D,cAAA,YACKm4C,YAAQmtH,EAAYnzH,aACjB8W,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,eAAeyiD,KAAM4hH,EAAYuiB,YAC1C5+H,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,OACZgoD,GAAAllD,EAAA/D,cAAA,OAAK4rE,cAAY,OACblW,UAAU,QACV2kH,cAAY,MACZxuG,YAAU,cACVtyD,KAAK,MACLuyD,MAAM,6BACNC,QAAQ,cACR9qE,UAAU,cACVgoD,GAAAllD,EAAA/D,cAAA,QACIgsE,KAAK,QACLrvE,EAAE,8bAIbkvC,GAAqBuG,iBACnBkzH,EAAYnzH,eA5BxB21I,CAAsBxiB,EAAav/J,OAqCtD6hL,GAAiBr+H,UAAY,CACzBtY,aAAcuY,KAAUjjD,MAAMqvD,YAGnBgyH,UC9Df,SAASG,GAATvyK,GAAgF,IAElEwyK,EACAC,EAHYj3I,EAAsDx7B,EAAtDw7B,eAAgBX,EAAsC76B,EAAtC66B,0BAA2B2C,EAAWx9B,EAAXw9B,QA4GjE,OA1GUg1I,EAAwB7vI,YAAQnH,GAChCi3I,EA4DF9vI,YAAQnH,GACDnF,GAAqB6E,YAGzByH,YAAQnH,EAAe2B,gBAC1B9G,GAAqB6E,YACrBsC,EAAQ1zB,QAAQwH,KAAK,SAAChM,GAAD,OAAYA,EAAOu9B,OAASrH,EAAe2B,eAAeK,UAhE/EiW,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBACXgoD,GAAAllD,EAAA/D,cAAA,UAAK6rC,GAAqBmF,gBAC1BiY,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qBACV+mL,EACG/+H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,QAAQovC,IAEzB4Y,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqBwG,gBAC7C4W,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAAS+vC,EAAem0H,0BAE5Cl8G,GAAAllD,EAAA/D,cAACkoL,GAAD,CAAkBj3I,aAAcD,EAAeC,eAC/CgY,GAAAllD,EAAA/D,cAAA,WACAipD,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqBkG,iBAC7CkX,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAAS+vC,EAAek0H,2BAE5Cj8G,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqByG,eAC7C2W,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAAS+vC,EAAesB,gBAE5C2W,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqB0G,YAC7C0W,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAAS+vC,EAAeuB,aAE5C0W,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqB2G,aAC7CyW,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAAS+vC,EAAeo0H,2BAE5Cn8G,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqB4G,oBAC7CwW,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAAS+vC,EAAeyB,qBAE5CwW,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqB6G,uBAC7CuW,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAAS+vC,EAAe0B,wBAE5CuW,GAAAllD,EAAA/D,cAAA,WACAipD,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqB8G,gBAC5CwF,YAAQnH,EAAe2B,gBACpB,KACAsW,GAAAllD,EAAA/D,cAAA,QAAOiB,UAAU,SA0BzCk3C,YAAQnH,EAAe2B,eAAeC,cAC/B,KAEJqW,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,SAAY9mB,EAAe2B,eAAeC,aAA1C,IAAwDqW,GAAAllD,EAAA/D,cAAA,YAI3Dm4C,YAAQnH,EAAe2B,eAAeE,cAC/B,KAEJoW,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,SAAY9mB,EAAe2B,eAAeE,aAA1C,IAAwDoW,GAAAllD,EAAA/D,cAAA,YAI3Dm4C,YAAQnH,EAAe2B,eAAeG,cAC/B,KAEJmW,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,SAAY9mB,EAAe2B,eAAeG,aAA1C,IAAwDmW,GAAAllD,EAAA/D,cAAA,YAI3Dm4C,YAAQnH,EAAe2B,eAAeI,MAC/B,KAEJkW,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KAAW9mB,EAAe2B,eAAeI,KAAzC,IAA+CkW,GAAAllD,EAAA/D,cAAA,YAIlDm4C,YAAQnH,EAAe2B,eAAesJ,UAC/B,KAEJgN,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KAAW9mB,EAAe2B,eAAesJ,SAAzC,IAAmDgN,GAAAllD,EAAA/D,cAAA,YAnDxBm4C,YAAQ8vI,GAAqCj3I,EAAe2B,eAAeK,QAAnDi1I,EAAajtL,WAyD/E+sL,GAAex+H,UAAY,CACvBvY,eAAgBwY,KAAUnsD,OAAOu4D,WACjC5iB,QAASwW,KAAUnsD,OAAOu4D,WAC1BvlB,0BAA2BmZ,KAAUj5B,QAG1Bw3J,UCtHf,SAASI,GAAT3yK,GAKG,IA6BW4yK,EAtBAC,EAXVC,EAID9yK,EAJC8yK,gBAEA9N,GAEDhlK,EAHC+yK,kCAGD/yK,EAFCglK,iBACAjqI,EACD/6B,EADC+6B,uBAyCA,OAjCU83I,EAAyBlwI,YAAQmwI,GAE/Br/H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBACnBgoD,GAAAllD,EAAA/D,cAAA,UAAK6rC,GAAqBsF,eAEzBk3I,EACGp/H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,QAAQsvC,IAEzB0Y,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,SACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO4qC,GAAqB2F,OAC3CyX,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO4qC,GAAqB1sC,MAC3C8pD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO4qC,GAAqBzqB,MAC3C6nC,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO4qC,GAAqB6F,aAQrD02I,EAAwBE,EAAgB/pL,OACvC+pL,EAAgBtwK,IAAI,SAACwwK,EAAgBziL,GACxC,IAAMy1K,EAAS4M,IAA0BriL,EAAQ,EACjD,OAAQkjD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,aAAAlF,OAAey/K,EAAS,OAAS3vI,GAAqB6E,aAAelrC,IAAKO,GAC5FkjD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAMgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,UAAU4qC,GAAqB2F,OAAayX,GAAAllD,EAAA/D,cAAA,YAAOwoL,EAAe5f,UACvG3/G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAMgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,UAAU4qC,GAAqB1sC,MAAY8pD,GAAAllD,EAAA/D,cAAA,YAAOw6K,EAAgBgO,EAAe3kB,kBACtH56G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAMgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,UAAU4qC,GAAqBzqB,MAAY6nC,GAAAllD,EAAA/D,cAAA,YAAOwoL,EAAe5iB,gBACtG38G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAMgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,UAAU4qC,GAAqB6F,WAAiBuX,GAAAllD,EAAA/D,cAAA,YAAOwoL,EAAe7iB,2BAO3HwiB,GAAqB5+H,UAAY,CAC7B++H,gBAAiB9+H,KAAUjjD,MAAMqvD,WACjC4kH,gBAAiBhxH,KAAUnsD,OAAOu4D,WAClC2yH,kCAAmC/+H,KAAUx3C,KAAK4jD,WAClDrlB,uBAAwBiZ,KAAUj5B,QAGvB43J,UCrDFM,GAA4B,CAErCC,wBAAyB,SAAAlzK,GAQQ,IAP7BmiC,EAO6BniC,EAP7BmiC,SACA89F,EAM6BjgI,EAN7BigI,sBACAF,EAK6B//H,EAL7B+/H,iBACAsvB,EAI6BrvJ,EAJ7BqvJ,kBACArvB,EAG6BhgI,EAH7BggI,6BACAswC,EAE6BtwK,EAF7BswK,2BACAY,EAC6BlxK,EAD7BkxK,kCACAC,EAA6BnxK,EAA7BmxK,uBACQ5wI,EAAc4B,EAAd5B,UACR,OAAOkT,GAAAllD,EAAA/D,cAAC2oL,GAAD,CACHhxI,SAAUA,EACV89F,sBAAuBA,EACvB+uB,OAAQjvB,EACRilC,gBAAiBzkI,EACjBiwI,cAAenhB,EACfrvB,6BAA8BA,EAC9BqwC,uBAAwBC,EACxBY,kCAAmCA,EACnCC,uBAAwBA,KAEhCiC,uBAAwB,SAAAx0K,GAOlB,IANFujC,EAMEvjC,EANFujC,SACAkxI,EAKEz0K,EALFy0K,uBACAC,EAIE10K,EAJF00K,yBACAC,EAGE30K,EAHF20K,sCACAC,EAEE50K,EAFF40K,sBACAC,EACE70K,EADF60K,0BAGI74I,EAMqBuH,EANrBvH,oBACAC,EAKqBsH,EALrBtH,0BACAE,EAIqBoH,EAJrBpH,uBACAyC,EAGqB2E,EAHrB3E,QACAkC,EAEqByC,EAFrBzC,UACAa,EACqB4B,EADrB5B,UACAqxI,EAAqBzvI,EAArByvI,iBACI12F,EAAmCm4F,EAAnCn4F,MAAO1/C,EAA4B63I,EAA5B73I,eAAgBuoF,EAAYsvD,EAAZtvD,QAC/B,OAAOtwE,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACH7O,GAAAllD,EAAA/D,cAACkpL,GAAD,CACItD,UAAWiD,EACXrO,gBAAiBzkI,EACjBwkI,gBAAiBrlI,EACjB+xI,0BAA2B6B,EAC3B5B,oBAAqB8B,EACrBrM,mBAAoBqM,EACpB7B,sBAAuB8B,EACvB7B,iBAAkBA,IAEtBn+H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BACXgoD,GAAAllD,EAAA/D,cAACmpL,GAAD,CACI1B,aAAc/2F,EACdtgD,oBAAqBA,IACzB6Y,GAAAllD,EAAA/D,cAACopL,GAAD,CACIp4I,eAAgBA,EAChBgC,QAASA,EACT3C,0BAA2BA,IAC/B4Y,GAAAllD,EAAA/D,cAACqpL,GAAD,CACIf,gBAAiB/uD,EACjBihD,gBAAiBzkI,EACjBwyI,kCAAmCQ,EACnCx4I,uBAAwBA,ysBCtDtC+4I,eACF,SAAAA,EAAYv4J,GAAO,IAAA3Q,qCAAAkpK,4DAAAC,CAAAz4K,MACfsP,MAAAopK,GAAAF,GAAAjvL,KAAAyW,KAAMigB,+CAANjgB,QADe,IAGP4kI,EAAyB3kH,EAAzB2kH,qBAHO,OAIft1H,EAAK5J,MAAQwkI,GAAa1F,sBAC1Bl1H,EAAK5J,MAAMk/H,qBAAuBA,EAClCt1H,EAAK5J,MAAMizK,WAAY,EACvBrpK,EAAK5J,MAAM68B,WAAa,KAExBjzB,EAAKspK,qBAAuBtpK,EAAKspK,qBAAqB9rK,KAA1B+rK,MAAAvpK,KAC5BA,EAAKwpK,uBAAyBxpK,EAAKwpK,uBAAuBhsK,KAA5B+rK,MAAAvpK,KAC9BA,EAAKypK,wBAA0BzpK,EAAKypK,wBAAwBjsK,KAA7B+rK,MAAAvpK,KAC/BA,EAAK0lK,2BAA6B1lK,EAAK0lK,2BAA2BloK,KAAhC+rK,MAAAvpK,KAClCA,EAAK0pK,gBAAkB1pK,EAAK0pK,gBAAgBlsK,KAArB+rK,MAAAvpK,KACvBA,EAAKumK,uBAAyBvmK,EAAKumK,uBAAuB/oK,KAA5B+rK,MAAAvpK,KAC9BA,EAAKsmK,kCAAoCtmK,EAAKsmK,kCAAkC9oK,KAAvC+rK,MAAAvpK,KACzCA,EAAK0oK,yBAA2B1oK,EAAK0oK,yBAAyBlrK,KAA9B+rK,MAAAvpK,KAChCA,EAAK6oK,0BAA4B7oK,EAAK6oK,0BAA0BrrK,KAA/B+rK,MAAAvpK,KACjCA,EAAK2oK,sCAAwC3oK,EAAK2oK,sCAAsCnrK,KAA3C+rK,MAAAvpK,KAC7CA,EAAK2pK,kCAAoC3pK,EAAK2pK,kCAAkCnsK,KAAvC+rK,MAAAvpK,KACzCA,EAAK4pK,iBAAmB5pK,EAAK4pK,iBAAiBpsK,KAAtB+rK,MAAAvpK,KACxBA,EAAK6pK,qBAAuB7pK,EAAK6pK,qBAAqBrsK,KAA1B+rK,MAAAvpK,KAE5BA,EAAKspK,uBAvBUtpK,qPADQwpC,kEA2BD6rB,GAAW,IjEyZaozG,EiEvZ1Cl/I,EAGA8rC,EAHA9rC,QACAugJ,EAEAz0G,EAFAy0G,gCACAllB,EACAvvF,EADAuvF,aAEItvB,EAAyB5kI,KAAK0F,MAA9Bk/H,sBACH/rG,GACwB,IAAzB+rG,GACAw0C,GACAp5K,KAAK4hD,UjE+YqCm2H,EiE/YuE7jB,EjE+Y5C,SAACxuJ,GAC9E,OAAAg8I,GAAA,GACOh8I,EADP,CAEIy+H,U/BpcoB,yB+BqcpB4zC,6EiE/YmB,IAAA5lH,EAGfnyD,KAAKigB,MADL+f,EAFemyB,EAEfnyB,QAAS6G,EAFMsrB,EAENtrB,SAAU49F,EAFJtyE,EAEIsyE,iBAAkBE,EAFtBxyE,EAEsBwyE,sBAIZ,IAFI3kI,KAAK0F,MAA9Bk/H,qBAOHv9F,YAAQo9F,IAIbzkI,KAAKq5K,WAAWr5I,EAAS6G,EAAU89F,GAR/B3kI,KAAKg5K,qDAWFh5I,EAAS6G,EAAU89F,GAAuB,IACzCD,EAAiC1kI,KAAK0F,MAAtCg/H,6BAER1kG,EAAQ8zH,qBAAqBjtH,EAASyyI,gCAAtCC,GAAA,CACM50C,yBAAwB79F,IAAcwJ,UAAYzJ,EAASC,IAAcwJ,aAE/EtQ,EAAQwzH,gBAAgB3sH,EAAS2yI,2BAAjCD,GAAA,CAEQ9lB,WAAY/uB,EACZC,yBACC79F,IAAcwJ,UAAYzJ,EAASC,IAAcwJ,8DAIrC,IAAA4xB,EACSliE,KAAKigB,MAA3B+f,EADakiC,EACbliC,QAAS6G,EADIq7B,EACJr7B,SACT89F,EAA0B3kI,KAAK0F,MAA/Bi/H,sBACR3kI,KAAKq5K,WAAWr5I,EAAS6G,EAAU89F,sDAGZpiG,GjE6WW,IAACqiG,EiE5WnC5kI,KAAK4hD,UjE4W8BgjF,EiE5WuBriG,EjE4WE,SAAC78B,GACjE,OAAAg8I,GAAA,GACOh8I,EADP,CAEIk/H,2BiE/WuE5kI,KAAKg5K,2DAG9D,IAAAzpC,EACgBvvI,KAAKigB,MAA3B+f,EADMuvG,EACNvvG,QAAS6G,EADH0oG,EACG1oG,SACT4yI,EAA+B5yI,EAA/B4yI,2BACA70C,EAAyB5kI,KAAK0F,MAA9Bk/H,qBACR5kG,EAAQi0H,gBAAgBwlB,EAAxBF,GAAA,CACMh3I,WAAYqiG,GAAuB99F,IAAcwJ,UAAYzJ,EAASC,IAAcwJ,4DAGvEmjH,GjEwWuB,IAAC/uB,EiEvW3C1kI,KAAK4hD,UjEuWsC8iF,EiEvWuB+uB,EjEuWU,SAAC/tJ,GACjF,OAAAg8I,GAAA,GACOh8I,EADP,CAEIg/H,mCiE1W+E1kI,KAAK84K,oFAIpF94K,KAAK4hD,SAASopG,GAA2B,yBAA0BhrJ,KAAK84K,yEAGnDv2I,GAAY,IAAAitG,EACHxvI,KAAKigB,MAA3B+f,EADyBwvG,EACzBxvG,QAAS6G,EADgB2oG,EAChB3oG,SACT6yI,EAAsC7yI,EAAtC6yI,kCACR15I,EAAQ81H,wBAAwB4jB,EAAhCH,GAAA,CACMvrL,GAAIu0C,GAAauE,IAAcwJ,UAAYzJ,EAASC,IAAcwJ,+DAGlD/N,GAAY,IAAAmqH,EACJ1sJ,KAAKigB,MAA3B+f,EAD0B0sH,EAC1B1sH,QAAS6G,EADiB6lH,EACjB7lH,SACT2wH,EAA6C3wH,EAA7C2wH,yBAA0BC,EAAmB5wH,EAAnB4wH,eAE9B5wH,EAAS8yI,cAAiB35K,KAAK4hD,SAAS,CAAE+2H,WAAY34K,KAAK0F,MAAMizK,UAAWp2I,eAC5EvC,EAAQq3H,0BAA0B,CAAEG,2BAA0BC,kBAA9D8hB,GAAA,CACMh3I,cAAauE,IAAcwJ,UAAYzJ,EAASC,IAAcwJ,4DAIrD,IAAAsqH,EACW56J,KAAKigB,MAA3B+f,EADW46H,EACX56H,QAAS6G,EADE+zH,EACF/zH,SACT2wH,EAA6C3wH,EAA7C2wH,yBAA0BC,EAAmB5wH,EAAnB4wH,eAC1Bl1H,EAAeviC,KAAK0F,MAApB68B,WAERvC,EAAQq3H,0BAA0B,CAAEG,2BAA0BC,kBAA9D8hB,GAAA,CACMh3I,cAAauE,IAAcwJ,UAAYzJ,EAASC,IAAcwJ,wDAIpEtwC,KAAK4hD,SAAS,CAAE+2H,WAAW,kEAGOiB,GAAY,IAAAC,EAChB75K,KAAKigB,MAA3B+f,EADsC65I,EACtC75I,QAAS6G,EAD6BgzI,EAC7BhzI,SACTizI,EAAmCjzI,EAAnCizI,+BACR95I,EAAQ81H,wBAAwBgkB,EAAhCP,GAAA,CACMvrL,GAAI4rL,GAAa9yI,IAAcwJ,UAAYzJ,EAASC,IAAcwJ,yEAIxEtwC,KAAK4hD,SjEkS4E,SAACl8C,GACtF,OAAAg8I,GAAA,GACOh8I,EADP,CAEIy+H,U/B5bqB,0B+B6brB4zC,4BAJsDA,EAKtDnzC,qBAAsB,KiEvSqG5kI,KAAK44K,wEAG1G,IAAAthH,EACsDt3D,KAAK0F,MAAzEy+H,EADc7sE,EACd6sE,UAAW4zC,EADGzgH,EACHygH,uBAAwBrzC,EADrBptE,EACqBotE,6BACnCC,EAA0B3kI,KAAKigB,MAA/B0kH,sBAFco1C,EAGoC/5K,KAAKigB,MACzD+5J,EAA0B,CAC5BnzI,SALkBkzI,EAGdlzI,SAGJ89F,wBACAF,iBAPkBs1C,EAGJt1C,iBAKdsvB,kBARkBgmB,EAGchmB,kBAMhCrvB,+BACAqzC,yBACA/C,2BAA4Bh1K,KAAKg1K,2BACjCY,kCAAmC51K,KAAK41K,kCACxCC,uBAAwB71K,KAAK61K,uBAC7BmC,yBAA0Bh4K,KAAKg4K,yBAC/BG,0BAA2Bn4K,KAAKm4K,0BAChCF,sCAAuCj4K,KAAKi4K,sCAC5CC,sBAAuBl4K,KAAKi5K,mCAGhC,OAAOtB,GAA0BxzC,GAAW61C,oCAGvC,IAAAC,EACyBj6K,KAAKigB,MAA3B4Y,EADHohJ,EACGphJ,QAASgO,EADZozI,EACYpzI,SACTo/H,EAAcp/H,EAAdo/H,UACFiU,EAAUrzI,EAASszI,oBAAoB/iH,KAAOvwB,EAASszI,oBAAoB/iH,KAAK3sE,IAAM,KAC5F,OACI0tD,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACKnuB,EAAUsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAAgC,KAC3C5tB,GAAAllD,EAAA/D,cAAA,UAAK+2K,GACJjmK,KAAK+4K,0BAEN5gI,GAAAllD,EAAA/D,cAAC+5D,GAAD,CACIp3B,OAAQ7xB,KAAK0F,MAAMizK,UACnB/wH,UAAW,MACXC,aAAc7nD,KAAKk5K,iBACnBpxH,eAAgB9nD,KAAKm5K,qBACrBpxH,iBAAiB,EACjBC,yBAAyB,EACzBC,cAAejoD,KAAKk5K,iBACpBhxH,wBAAwB,EACxBC,0BAA2BthB,EAASshB,2BAEpChQ,GAAAllD,EAAA/D,cAACi6D,GAAD,CACItD,qBAAsBhf,EAASszI,oBAAoB/zI,MACnD0f,uBAAwBjf,EAASszI,oBAAoBzvL,KACrDq7D,oBAAuBm0H,oMAQ/C1B,GAAiB//H,UAAY,CACzB5f,QAAS6f,KAAUqM,KAAKD,WACxBje,SAAU6R,KAAUnsD,OAAOu4D,WAC3B8/E,qBAAsBlsF,KAAUxjB,OAAO4vB,YA4B5BrL,oBAzBf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9CnoB,iBAAkB/+H,EAAMs1J,YAAYv2B,iBACpCsvB,kBAAmBruJ,EAAMs1J,YAAYjH,kBACrCqmB,qCAAsC10K,EAAMs1J,YAAYof,qCACxDC,+BAAgC30K,EAAMs1J,YAAYqf,+BAClDjB,gCAAiC1zK,EAAMs1J,YAAYoe,gCACnDllB,aAAcxuJ,EAAMs1J,YAAY9G,aAChCvvB,sBAAuB3xF,YAAkBttC,EAAMs1J,YAAYr2B,uBAAyBuF,GAAa1F,sBAAsBG,sBAAwBj/H,EAAMs1J,YAAYr2B,wBAIzK,SAA4BxgI,GACxB,MAAO,CACH67B,QAAS,CACLwzH,gBAAiBptJ,aAAmB+0J,GAAoCh3J,GACxE2vJ,qBAAsB1tJ,aAAmB+0J,GAAyCh3J,GAClF8vJ,gBAAiB7tJ,aAAmB+0J,GAAoCh3J,GACxE2xJ,wBAAyB1vJ,aAAmB+0J,GAA4Ch3J,GACxFkzJ,0BAA2BjxJ,aAAmB+0J,GAA8Ch3J,MAKzFs1C,CAGb++H,6HClHa8B,OA5Ha,SAAA51K,EAOxB0gI,GACC,IAOSv+F,EACEo/H,EAAWhnB,EAAmBgX,EAdtC3lH,EAMH5rC,EANG4rC,UACAiqI,EAKH71K,EALG61K,qBACAC,EAIH91K,EAJG81K,6BACAzR,EAGHrkK,EAHGqkK,yBAsGJ,OA3DA,SAA+CliI,GAAU,IAAAmyH,EAC7CvrH,EAAoB23F,EAApB33F,gBACFm6H,EAAet3H,IAAckiH,KAAgBC,WAQnD,GANA5rH,EAASC,IAAcs5B,cAAch3B,aAAeg8F,EAAgBt+F,IAAcuF,OAClFxF,EAASC,IAAc8sG,qBAAqBxqG,aAAeg8F,EAAgBt+F,IAAcuF,OACzFxF,EAASC,IAAcV,OAAOgD,aAAeg8F,EAAgBt+F,IAAcV,OAC3ES,EAASC,IAAcrD,WAAW2F,aAAeg8F,EAAgBt+F,IAAcrD,WAC/EoD,EAASC,IAAcpD,UAAU0F,aAAeg8F,EAAgBt+F,IAAcpD,WAEzE0D,IAAEC,QAAQ+9F,EAAgBt+F,IAAcC,cAAe,CACxDF,EAASC,IAAcC,aAAaqC,aAAe,GAEnD,IAAMnC,EAAkBG,IAAEyqB,UAAUuzE,EAAgBt+F,IAAcC,cAI5DG,EA6ClB,SAA4BL,EAAUoyH,EAAkChyH,GAKpE,OAJsBJ,EAASC,IAAc5E,SAAS1zB,QACjDwH,KAAK,SAACksB,GAAD,OAAckF,IAAEC,QAAQnF,EAAQoF,cAClCpF,EAAQqF,OAAS0xH,KAIPpyH,EAASC,IAAc5E,SAAS1zB,QAC7CwH,KAAK,SAACksB,GAAD,OAAckF,IAAEC,QAAQnF,EAAQoF,cAClCL,EAAgBh8B,SAASi3B,EAAQoF,eAtDTG,CAAmBZ,EAFFu+F,EAAgBt+F,IAAcE,8BAEgBC,GAEvFJ,EAASC,IAAcC,aAAaqC,aAAalC,gBAAkBA,EAEnEL,EAASC,IAAcC,aAAaqC,aAAa1B,YAAcF,YAASN,GACpED,EAAgBh5C,QAAQi5C,EAAgBI,YAAa,IACrDL,OAG4B57C,IAAhC+5I,EAAgB9+F,cAChBO,EAASC,IAAcR,aAAa8C,aAAe6C,aAAuBm5F,EAAgB9+F,cAG9F,IAAIsB,EAAc,GAClB,IAAKP,YAAQ+9F,EAAgBr/F,WAAY,CACrC,IAAMmzH,EAAe9zB,EAAgBr/F,UAAU/vB,KAAK,SAAC+0B,GAAD,OAAaA,EAAQzhD,OACzEs+C,EAAcP,YAAQ6xH,GAAgB,GAAKA,EAG/CryH,EAASC,IAAchF,cAAcsH,aAAexB,EAAY9F,aAChE+E,EAASC,IAAc/E,cAAcqH,aAAexB,EAAY7F,aAChE8E,EAASC,IAAc9E,cAAcoH,aAAexB,EAAY5F,aAChE6E,EAASC,IAAcqE,UAAU/B,aAAexB,EAAYuD,SAC5DtE,EAASC,IAAc7E,MAAMmH,aAAexB,EAAY3F,KACxD4E,EAASC,IAAc5E,SAASkH,aAAexB,EAAY1F,QAC3D2E,EAASC,IAAc3E,QAAQiH,aAAexB,EAAYzF,OAC1D0E,EAASC,IAAcphC,OAAO0jC,aAAexB,EAAYliC,MAEzD,IAAM8zB,EAAS4rG,EAAgBt+F,IAActN,QAW7C,OAVAqN,EAASC,IAAc4kG,eAAetiG,cAAtCqxI,GAAAzhB,EAAA,GAEKlyH,IAAcklG,cAAgBxyG,EAAOiR,2BAF1CgwI,GAAAzhB,EAGKlyH,IAAcqlG,aAAe3yG,EAAOkR,2BAHzCsuH,GAMAnyH,EAASC,IAAc6tG,yBAAyBrK,SAAWs9B,GAAgBn6H,EAE3E5G,EAASC,IAAc68F,eAAev6F,aAAe5P,EAAOC,sBAErDoN,EA7FA6zI,EAID7zI,EAAW,GACTo/H,EAA8DsU,EAA9DtU,UAAWhnB,EAAmDs7B,EAAnDt7B,kBAAmBgX,EAAgCskB,EAAhCtkB,4BACtCpvH,EAASC,IAAcm/H,WAAaA,EACpCp/H,EAASC,IAAck4G,aAAew7B,EACtC3zI,EAASC,IAAcwJ,WAAaA,EACpCzJ,EAASC,IAAciiI,0BAA4BA,EACnDliI,EAASC,IAAcm4G,mBAAqBA,EAC5Cp4G,EAASC,IAAcmvH,6BAA+BA,EACtDpvH,EAASC,IAAcs5B,cAAgBm6G,EAAqBzzI,IAAcs5B,cAC1Ev5B,EAASC,IAAc8sG,qBAAuB2mC,EAAqBzzI,IAAc8sG,qBACjF/sG,EAASC,IAAcV,OAASm0I,EAAqBzzI,IAAcV,OACnES,EAASC,IAAcrD,WAAa82I,EAAqBzzI,IAAcrD,WACvEoD,EAASC,IAAcpD,UAAY62I,EAAqBzzI,IAAcpD,UACtEmD,EAASC,IAAcR,aAAei0I,EAAqBzzI,IAAcR,aACzEO,EAASC,IAAc+tG,kBAAoB0lC,EAAqBzzI,IAAc+tG,kBAC9EhuG,EAASC,IAAc5E,SAAWq4I,EAAqBzzI,IAAc5E,SACrE2E,EAASC,IAAc3E,QAAUo4I,EAAqBzzI,IAAc3E,QACpE0E,EAASC,IAAcphC,OAAS60K,EAAqBzzI,IAAcphC,OACnEmhC,EAASC,IAAchF,cAAgBy4I,EAAqBzzI,IAAchF,cAC1E+E,EAASC,IAAc/E,cAAgBw4I,EAAqBzzI,IAAc/E,cAC1E8E,EAASC,IAAc9E,cAAgBu4I,EAAqBzzI,IAAc9E,cAC1E6E,EAASC,IAAc7E,MAAQs4I,EAAqBzzI,IAAc7E,MAClE4E,EAASC,IAAcqE,UAAYovI,EAAqBzzI,IAAcqE,UACtEtE,EAASC,IAAcC,aAAewzI,EAAqBzzI,IAAcC,aACzEF,EAASC,IAAc6tG,yBAA2B4lC,EAAqBzzI,IAAc6tG,yBACrF9tG,EAASC,IAAc4kG,eAAiB6uC,EAAqBzzI,IAAc4kG,eAC3E7kG,EAASC,IAAc68F,eAAiB42C,EAAqBzzI,IAAc68F,eAC3E98F,EAASC,IAAcqiI,wBAA0BoR,EAAqBzzI,IAAcqiI,wBACpFtiI,EAASC,IAAcsiI,2BAA6BmR,EAAqBzzI,IAAcsiI,2BACvFviI,EAASC,IAAcuiI,2BAA6BkR,EAAqBzzI,IAAcuiI,2BAChFxiI,KCpDF8zI,GAAgB,CACzBC,QAAS,EACTC,YAAa,EACbC,WAAY,EACZC,KAAM,EACNC,kBAAmB,EACnBC,OAAQ,EACRl2I,UAAW,EACXm2I,0BAA2B,EAC3BC,gBAAiB,GCLd,SAASC,GAAT12K,GAaJ,IAZC22K,EAYD32K,EAZC22K,qBACAC,EAWD52K,EAXC42K,uBACAC,EAUD72K,EAVC62K,sBACAC,EASD92K,EATC82K,2BACAC,EAQD/2K,EARC+2K,0BACAC,EAODh3K,EAPCg3K,uBACAC,EAMDj3K,EANCi3K,kBACAC,EAKDl3K,EALCk3K,qBACAC,EAIDn3K,EAJCm3K,sBACAC,EAGDp3K,EAHCo3K,sBACAC,EAEDr3K,EAFCq3K,uBACAC,EACDt3K,EADCs3K,uBAEMC,EAAa,GAenB,OAbAA,EAAW73I,GAAUC,SAAWg3I,EAChCY,EAAW73I,GAAUE,WAAag3I,EAClCW,EAAW73I,GAAUG,WAAag3I,EAClCU,EAAW73I,GAAUI,gBAAkBg3I,EACvCS,EAAW73I,GAAUK,eAAiBg3I,EACtCQ,EAAW73I,GAAUM,WAAag3I,EAClCO,EAAW73I,GAAUO,MAAQg3I,EAC7BM,EAAW73I,GAAUQ,UAAYg3I,EACjCK,EAAW73I,GAAUS,WAAag3I,EAClCI,EAAW73I,GAAUU,UAAYg3I,EACjCG,EAAW73I,GAAUW,WAAag3I,EAClCE,EAAW73I,GAAUY,YAAcg3I,EAE5BC,EAGJ,SAASC,GAAT54K,GAUJ,IATC64K,EASD74K,EATC64K,yBACAC,EAQD94K,EARC84K,4BACAC,EAOD/4K,EAPC+4K,4BACAC,EAMDh5K,EANCg5K,sBACAC,EAKDj5K,EALCi5K,iCACAC,EAIDl5K,EAJCk5K,wBACAC,EAGDn5K,EAHCm5K,2BACAC,EAEDp5K,EAFCo5K,yCACAC,EACDr5K,EADCq5K,gCAEMC,EAAkB,GAWxB,OAVAA,EAAgBjC,GAAcC,SAAWuB,EACzCS,EAAgBjC,GAAcE,aAAeuB,EAC7CQ,EAAgBjC,GAAcG,YAAcuB,EAC5CO,EAAgBjC,GAAcI,MAAQuB,EACtCM,EAAgBjC,GAAcK,mBAAqBuB,EACnDK,EAAgBjC,GAAcM,QAAUuB,EACxCI,EAAgBjC,GAAc51I,WAAa03I,EAC3CG,EAAgBjC,GAAcO,2BAA6BwB,EAC3DE,EAAgBjC,GAAcQ,iBAAmBwB,EAE1CC,EAGJ,SAASC,GAATvjK,GAYJ,IAXCwjK,EAWDxjK,EAXCwjK,kBACAC,EAUDzjK,EAVCyjK,0BACAC,EASD1jK,EATC0jK,gCACAC,EAQD3jK,EARC2jK,kCACAC,EAOD5jK,EAPC4jK,4BACAC,EAMD7jK,EANC6jK,yBACAC,EAKD9jK,EALC8jK,qBACAC,EAID/jK,EAJC+jK,oBACAC,EAGDhkK,EAHCgkK,gCACAC,EAEDjkK,EAFCikK,2BACAC,EACDlkK,EADCkkK,wBAEMC,EAAa,GAanB,OAZAA,EAAWx4I,GAAUC,MAAQ43I,EAC7BW,EAAWx4I,GAAUE,eAAiB43I,EACtCU,EAAWx4I,GAAUG,qBAAuB43I,EAC5CS,EAAWx4I,GAAUI,uBAAyB43I,EAC9CQ,EAAWx4I,GAAUK,iBAAmB43I,EACxCO,EAAWx4I,GAAUM,aAAe43I,EACpCM,EAAWx4I,GAAUO,SAAW43I,EAChCK,EAAWx4I,GAAUQ,QAAU43I,EAC/BI,EAAWx4I,GAAUS,qBAAuB43I,EAC5CG,EAAWx4I,GAAUU,gBAAkB43I,EACvCE,EAAWx4I,GAAUW,aAAe43I,EAE7BC,EC9EX,IA0CeC,GA1CiB,SAAAh5K,GAO3B,ID0EE+U,EACHkkK,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEMC,ECrFIz3I,EAEFo/H,EACAoF,EACArB,EACAC,EACAQ,EACAlY,EACA2X,EAfJqU,EAKH75K,EALG65K,yBACAC,EAIH95K,EAJG85K,sBACAtT,EAGHxmK,EAHGwmK,kCACA56H,EAEH5rC,EAFG4rC,UAkCJ,OA9BUzJ,EAAW,GAEbo/H,EAOAsY,EAPAtY,UACAoF,EAMAkT,EANAlT,aACArB,EAKAuU,EALAvU,kBACAC,EAIAsU,EAJAtU,sBACAQ,EAGA8T,EAHA9T,eACAlY,EAEAgsB,EAFAhsB,oBACA2X,EACAqU,EADArU,iBAGJrjI,EAASC,IAAcm/H,WAAaA,EACpCp/H,EAASC,IAAcukI,cAAgBA,EACvCxkI,EAASC,IAAcokI,mCAAqCA,EAC5DrkI,EAASC,IAAcyrH,qBAAuBA,EAC9C1rH,EAASC,IAAc1C,WAAag3I,GAAcoD,GAClD33I,EAASC,IAAc6zI,eAAiBuB,GAAmBsC,GAC3D33I,EAASC,IAAc7B,WAAa43I,GAAc2B,GAClD33I,EAASC,IAAcwkI,kBDuD3BqS,GADGlkK,ECtD+D8kK,GDuDlEZ,wBACAC,EAUDnkK,EAVCmkK,gCACAC,EASDpkK,EATCokK,sCACAC,EAQDrkK,EARCqkK,wCACAC,EAODtkK,EAPCskK,kCACAC,EAMDvkK,EANCukK,+BACAC,EAKDxkK,EALCwkK,2BACAC,EAIDzkK,EAJCykK,0BACAC,EAGD1kK,EAHC0kK,sCACAC,EAED3kK,EAFC2kK,iCACAC,EACD5kK,EADC4kK,+BAEMC,EAAmB,IACRr5I,GAAUC,MAAQy4I,EACnCW,EAAiBr5I,GAAUE,eAAiBy4I,EAC5CU,EAAiBr5I,GAAUG,qBAAuBy4I,EAClDS,EAAiBr5I,GAAUI,uBAAyBy4I,EACpDQ,EAAiBr5I,GAAUK,iBAAmBy4I,EAC9CO,EAAiBr5I,GAAUM,aAAey4I,EAC1CM,EAAiBr5I,GAAUO,SAAWy4I,EACtCK,EAAiBr5I,GAAUQ,QAAUy4I,EACrCI,EAAiBr5I,GAAUS,qBAAuBy4I,EAClDG,EAAiBr5I,GAAUU,gBAAkBy4I,EAC7CE,EAAiBr5I,GAAUW,aAAey4I,EAEnCC,GC/EHz3I,EAASC,IAAczH,mBAAqBm/I,EAAsBn/I,mBAAqBtE,GAAqBsE,kBAC5GwH,EAASC,IAAcpH,wBAA0B8+I,EAAsB9+I,wBAA0B3E,GAAqB2E,uBACtHmH,EAASC,IAAcnH,qBAAuB6+I,EAAsB7+I,qBAAuB5E,GAAqB4E,oBAChHkH,EAASC,IAAcwJ,WAAaA,EACpCzJ,EAASC,IAAc2jI,gBAAkBA,EACzC5jI,EAASC,IAAckjI,mBAAqBA,EAC5CnjI,EAASC,IAAcmjI,uBAAyBA,EAChDpjI,EAASC,IAAcojI,kBAAoBA,EACpCrjI,GCkBA43I,GA7DsB,SAACnQ,GA0DlC,OAxDYoQ,EAAiDpQ,EAAjDoQ,uBAAwBnE,EAAyBjM,EAAzBiM,qBAC1B1zI,EAAW,GAEbo/H,EAUAyY,EAVAzY,UACAgJ,EASAyP,EATAzP,mBACA0P,EAQAD,EARAC,sBACAC,EAOAF,EAPAE,4BACAC,EAMAH,EANAG,yBACAC,EAKAJ,EALAI,+BACAzO,EAIAqO,EAJArO,+BACAC,EAGAoO,EAHApO,+BACAC,EAEAmO,EAFAnO,mCACAC,EACAkO,EADAlO,kCAGJ3pI,EAASC,IAAcm/H,WAAaA,EACpCp/H,EAASC,IAAcmoI,oBAAsBA,EAC7CpoI,EAASC,IAAcipI,YAAc,GACrClpI,EAASC,IAAcipI,YAAYjpI,IAAck4G,aAAe2/B,EAChE93I,EAASC,IAAcipI,YAAYjpI,IAAcm4G,mBAAqB2/B,EAEtE/3I,EAASC,IAAcjK,eAAiB,GACxCgK,EAASC,IAAcjK,eAAeiK,IAAck4G,aAAe6/B,EACnEh4I,EAASC,IAAcjK,eAAeiK,IAAcm4G,mBAAqB6/B,EAEzEj4I,EAASC,IAAcupI,gCAAkCA,EACzDxpI,EAASC,IAAcwpI,gCAAkCA,EACzDzpI,EAASC,IAAcypI,oCAAsCA,EAC7D1pI,EAASC,IAAc0pI,mCAAqCA,EAE5D3pI,EAASC,IAAc5E,SAAWw8I,EAAuB53I,IAAc5E,SACvE2E,EAASC,IAAc5E,SAAS1zB,QAAU+rK,EAAqBzzI,IAAc5E,SAAS1zB,QAEtFq4B,EAASC,IAAc3E,QAAUu8I,EAAuB53I,IAAc3E,QACtE0E,EAASC,IAAc3E,QAAQ3zB,QAAU+rK,EAAqBzzI,IAAc3E,QAAQ3zB,QAEpFq4B,EAASC,IAAcphC,OAASg5K,EAAuB53I,IAAcphC,OACrEmhC,EAASC,IAAcphC,OAAO8I,QAAU+rK,EAAqBzzI,IAAcphC,OAAO8I,QAElFq4B,EAASC,IAAc7E,MAAQy8I,EAAuB53I,IAAc7E,MACpE4E,EAASC,IAAchF,cAAgB48I,EAAuB53I,IAAchF,cAC5E+E,EAASC,IAAc/E,cAAgB28I,EAAuB53I,IAAc/E,cAC5E8E,EAASC,IAAc9E,cAAgBu4I,EAAqBzzI,IAAc9E,cAC1E6E,EAASC,IAAcqE,UAAYuzI,EAAuB53I,IAAcqE,UAExEtE,EAASC,IAAcc,aAAe82I,EAAuB53I,IAAcc,aAC3Ef,EAASC,IAAcsE,iBAAmBszI,EAAuB53I,IAAcsE,iBAC/EvE,EAASC,IAAcjF,gBAAkB68I,EAAuB53I,IAAcjF,gBAE9EgF,EAASC,IAAcgqI,wBAA0B4N,EAAuB53I,IAAcgqI,wBACtFjqI,EAASC,IAAciqI,2BAA6B2N,EAAuB53I,IAAciqI,2BAElFlqI,EArDX,IACY63I,EAAwBnE,EAC1B1zI,EAEFo/H,EACAgJ,EACA0P,EACAC,EACAC,EACAC,EACAzO,EACAC,EACAC,EACAC,mlBCTNuO,eACF,SAAAA,EAAY9+J,GAAO,IAAA3Q,IAAA,uCAAAyvK,4DAAAC,CAAAh/K,OACfsP,MAAA2vK,GAAAF,GAAAx1L,KAAAyW,KAAMigB,+CAANjgB,SAEKk/K,yBAA2B5vK,EAAK4vK,yBAAyBpyK,KAA9BqyK,MAAA7vK,KAChCA,EAAK8vK,sBAAwB9vK,EAAK8vK,sBAAsBtyK,KAA3BqyK,MAAA7vK,KAE7BA,EAAK5J,MAAQ,CAAEs/H,cAAe,IANf11H,qPADSwpC,mEAUD,IAAAvpC,EAAAvP,KACf6mC,EAAa7mC,KAAKigB,MAAlB4mB,SAEFm+F,EAAgB,CAAEvhG,UADQoD,EAAxBpD,UAC2BC,SADHmD,EAAbnD,UAGnB,OAAOiyG,GAAY,CACf9uG,SAAUm+F,EACV1hE,aAAc,SAAC5vE,GAAY6b,EAAKqyC,SAASopG,GAAmCt3J,EAAM3D,UAClFimJ,kBAAmB,SAACtiJ,GAChB,IAAM0tJ,EAAc1tJ,EAAM3D,OACpBmoF,EAAYkpE,EAAY33J,KACxB83J,EAAYvc,EAAc9sD,GAChC3oE,EAAKqyC,SAASopG,GAAiD5J,EAAaG,KAEhF/K,sBAAuB,SAACt+D,GAAc,IAC1Bp1D,EAAWvT,EAAK7J,MAAhBod,OACR,OAAO2pI,GAA8Cv0E,EAAWp1D,oDAKtDpvB,GAClBA,EAAMkmB,iBADmB,IAEjBylK,EAA2Br/K,KAAKigB,MAAhCo/J,uBAFiB/nH,EAGOt3D,KAAK0F,MACrC25K,EAJyB/nH,EAGjB7zB,UAHiB6zB,EAGN5zB,2CAId,IAAAyuB,EACyCnyD,KAAKigB,MAA3C4mB,EADHsrB,EACGtrB,SAAUy4I,EADbntH,EACamtH,wBACVC,EAA0B14I,EAA1B04I,sBACR,OACIpnI,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gBACVovL,GAEJv/K,KAAKk/K,2BACN/mI,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qBACXgoD,GAAAllD,EAAA/D,cAAA,KACI0jD,KAAK,GACLziD,UAAU,eACVmoD,QAASgnI,GACTnnI,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,OACZgoD,GAAAllD,EAAA/D,cAAA,OACI4rE,cAAY,OACZlW,UAAU,QACV2kH,cAAY,MACZxuG,YAAU,QACVtyD,KAAK,MACLuyD,MAAM,6BACNC,QAAQ,cACR9qE,UAAU,yCACVgoD,GAAAllD,EAAA/D,cAAA,QACIgsE,KAAK,eACLrvE,EAAE,0ZACFsE,UAAU,OAItBgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqBpqB,QAEjDwnC,GAAAllD,EAAA/D,cAAA,KAAG0jD,KAAK,GAAGziD,UAAU,gBAAgBmoD,QAASt4C,KAAKo/K,uBAAwBrkJ,GAAqBsI,iNAOpH07I,GAAkBtmI,UAAY,CAC1B5R,SAAU6R,KAAUnsD,OAAOu4D,WAC3Bu6H,uBAAwB3mI,KAAUx3C,KAAK4jD,YAG5Bi6H,ihCCrFTS,eACF,SAAAA,EAAYv/J,GAAO,IAAA3Q,IAAA,uCAAAkwK,4DAAAC,CAAAz/K,OACfsP,MAAAowK,GAAAF,GAAAj2L,KAAAyW,KAAMigB,+CAANjgB,SACK0F,MAAQ,CACTiwJ,eAAgB,IAGpBrmJ,EAAKqwK,qBAAuBrwK,EAAKqwK,qBAAqB7yK,KAA1B8yK,MAAAtwK,KAC5BA,EAAKuwK,kBAAoBvwK,EAAKuwK,kBAAkB/yK,KAAvB8yK,MAAAtwK,KACzBA,EAAKgwK,wBAA0BhwK,EAAKgwK,wBAAwBxyK,KAA7B8yK,MAAAtwK,KAC/BA,EAAK8vK,sBAAwB9vK,EAAK8vK,sBAAsBtyK,KAA3B8yK,MAAAtwK,KATdA,qPADMwpC,6DAaJiD,GAAQ,IACjBlV,EAAa7mC,KAAKigB,MAAlB4mB,SAEJi5I,EAGAj5I,EAHAi5I,sBACAC,EAEAl5I,EAFAk5I,yBACAC,EACAn5I,EADAm5I,2BAGJ,OAAIjkI,EAAOkkI,aAAelkI,EAAOmkI,iBACtBF,EAGPjkI,EAAOkkI,cAAgBlkI,EAAOmkI,iBACvBJ,EAGJC,4CAGOrsL,EAAOqoD,GACrBroD,EAAMkmB,iBACDmiC,EAAOkkI,aAIZjgL,KAAK4hD,SAAS,SAACgvD,GACX,OAAAuvE,GAAA,GACOvvE,EADP,CAEI+kD,eAAgB55G,sDAKJroD,GACpBA,EAAMkmB,iBACN5Z,KAAK4hD,SAAS,SAACgvD,GACX,OAAAuvE,GAAA,GACOvvE,EADP,CAEI+kD,eAAgB,qDAKNC,EAAgBC,IAGlCwpB,EAFmCr/K,KAAKigB,MAAhCo/J,wBAEe,CAAEzpB,iBAAgBC,gBAAeF,eAD7B31J,KAAK0F,MAAxBiwJ,kDAIH,IAAApmJ,EAAAvP,KAAAmyD,EACyBnyD,KAAKigB,MAA3BmgK,EADHjuH,EACGiuH,QAASv5I,EADZsrB,EACYtrB,SACT8uH,EAAmB31J,KAAK0F,MAAxBiwJ,eACR,OAAOyqB,EAAQl5K,IAAI,SAAC60C,EAAQ9mD,GACxB,IAAMy1K,EAASz1K,IAAUmrL,EAAQ3yL,OAAS,EAC1C,OAAO0qD,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,CAAUtyD,IAAKqnD,EAAO25G,UACzBv9G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,oBAAAlF,OAAsBy/K,EAAS,OAAS3vI,GAAqB6E,cACvEuY,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,eACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QAAOgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,UAAhB,QAAtB,IAA4D4rD,EAAOskI,YACnEloI,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBAAgBgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,UAAhB,iBAA/B,IAA8E4rD,EAAO25G,UACrFv9G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,eAAcgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,UAAhB,eAA7B,IAA0E4rD,EAAOukI,QACjFnoI,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,iBAAiBof,EAAKowK,qBAAqB5jI,KAE/D5D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBACXgoD,GAAAllD,EAAA/D,cAAA,KACIiB,UAAS,gBAAAlF,OAAkB8wD,EAAOkkI,aAClC3nI,QAAS,SAAC5kD,GAAY6b,EAAKswK,kBAAkBnsL,EAAOqoD,KACpD5D,GAAAllD,EAAA/D,cAAA,OACI4rE,cAAY,OACZlW,UAAU,QACV2kH,cAAY,MACZxuG,YAAU,QACVtyD,KAAK,MACLuyD,MAAM,6BACNC,QAAQ,cACR9qE,UAAU,IACVgoD,GAAAllD,EAAA/D,cAAA,QACIgsE,KAAK,eACLrvE,EAAE,kjBACFsE,UAAU,SAM7BwlK,EAAeD,WAAa35G,EAAO25G,SAChCv9G,GAAAllD,EAAA/D,cAACqxL,GAAD,CACI15I,SAAUA,EACVy4I,wBAAyB/vK,EAAK+vK,wBAC9BD,uBAAwB9vK,EAAK6vK,wBAA8C,sMAMnGI,GAAe/mI,UAAY,CACvB2nI,QAAS1nI,KAAUjjD,MAAMqvD,WACzBu6H,uBAAwB3mI,KAAUx3C,KAAK4jD,YAG5B06H,sdC9GTgB,eACF,SAAAA,EAAYvgK,GAAO,IAAA3Q,qCAAAkxK,4DAAAC,CAAAzgL,OACfA,OAAA0gL,GAAAF,GAAAj3L,KAAAyW,KAAMigB,GAAN3Q,uKAAAtP,SACK41I,eAAiB,GAFP,IAGP+qC,EAAiB1gK,EAAjB0gK,aAHO,OAKfrxK,EAAKsmI,eAAiB+qC,EAAahsL,OAAO,SAACugB,EAAK0rK,GAE5C,OADA1rK,EAAI0rK,EAAYp3H,aAAe3Q,KAAMwwB,YAC9Bn0D,GACR,IARY5F,qPADIwpC,kEAYG6rB,GAAW,IACzB0kC,EAAa1kC,EAAb0kC,SACHhiE,YAAQgiE,IACT07C,GAAc17C,EAAS7/C,yDAIX,IACR6/C,EAAarpG,KAAKigB,MAAlBopF,SACR,IAAKhiE,YAAQgiE,GAAW,CACpB,IAAMw3E,EAAc7gL,KAAK41I,eAAevsC,EAAS7/C,aACjDu7F,GAAc87B,qCAIb,IAAAtxK,EAAAvP,KAAAmyD,EACsDnyD,KAAKigB,MAAxD0gK,EADHxuH,EACGwuH,aAAc95I,EADjBsrB,EACiBtrB,SAAUw4I,EAD3BltH,EAC2BktH,uBAChC,OAAOsB,EAAaz5K,IAAI,SAAC05K,EAAa3rL,GAAU,IAExC6rL,EAIAF,EAJAE,YACAt3H,EAGAo3H,EAHAp3H,YACAvN,EAEA2kI,EAFA3kI,SACAmkI,EACAQ,EADAR,QAEE1V,EAASz1K,IAAU0rL,EAAalzL,OAAS,EAE/C,OACI0qD,GAAAllD,EAAA/D,cAAA,OACI8/D,IAAKz/C,EAAKqmI,eAAepsF,GACzB90D,IAAKO,EACL9E,UAAS,kBAAAlF,OAAoBy/K,EAAS,OAAS3vI,GAAqB6E,cACpEuY,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,UACXgoD,GAAAllD,EAAA/D,cAAA,OACI4rE,cAAY,OACZlW,UAAU,QACV2kH,cAAY,MACZxuG,YAAU,eACVtyD,KAAK,MACLuyD,MAAM,6BACNC,QAAQ,cACR9qE,UAAU,iBACVgoD,GAAAllD,EAAA/D,cAAA,QACIgsE,KAAK,UACLrvE,EAAE,01BACFsE,UAAU,MAGlBgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QACXgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,aAAaq5D,GAC1BrR,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,gBAAgB2wL,EAAYzW,WACzClyH,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,YAAY2wL,EAAYxW,iBAG7CnyH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qBAAf,GAAAlF,OAAuCgxD,EAAvC,yBACA9D,GAAAllD,EAAA/D,cAAC6xL,GAAD,CACIl6I,SAAUA,EACVu5I,QAASA,EACTf,uBAAwBA,qMAOhDmB,GAAa/nI,UAAY,CACrBkoI,aAAcjoI,KAAUjjD,MAAMqvD,WAC9Bje,SAAU6R,KAAUnsD,OAAOu4D,WAC3BukD,SAAU3wD,KAAUnsD,OAAOu4D,WAC3Bu6H,uBAAwB3mI,KAAUx3C,KAAK4jD,YAG5B07H,UCtFf,SAASQ,GAATt8K,GASG,IARCu8K,EAQDv8K,EARCu8K,qBACAtrB,EAODjxJ,EAPCixJ,eACA0qB,EAMD37K,EANC27K,WACA3qB,EAKDhxJ,EALCgxJ,SACAjyH,EAID/+B,EAJC++B,UACAmyH,EAGDlxJ,EAHCkxJ,eACAlyH,EAEDh/B,EAFCg/B,SACAmyH,EACDnxJ,EADCmxJ,cAEA,OACI19G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8BACXgoD,GAAAllD,EAAA/D,cAAA,UAAK+xL,GACL9oI,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wCACXgoD,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqB1sC,MAC7C8pD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAASwlK,GACrB0qB,IAERloI,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQ4qC,GAAqByI,cAC7C2U,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAASwlK,GACrBD,IAERv9G,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQszC,GACxB0U,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAASylK,IAE7Bz9G,GAAAllD,EAAA/D,cAAA,SACIipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQuzC,GACxByU,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAAS0lK,MAO7CmrB,GAAgBvoI,UAAY,CACxBwoI,qBAAsBvoI,KAAUj5B,OAChCk2I,eAAgBj9G,KAAUnsD,OAC1B8zL,WAAY3nI,KAAUj5B,OACtBi2I,SAAUh9G,KAAUxjB,OACpBuO,UAAWiV,KAAUj5B,OACrBm2I,eAAgBl9G,KAAUj5B,OAC1BikB,SAAUgV,KAAUj5B,OACpBo2I,cAAen9G,KAAUj5B,QAGduhK,2sBChCTE,eACF,SAAAA,EAAYjhK,GAAO,IAAA3Q,IAAA,uCAAA4xK,4DAAAC,CAAAnhL,OACfsP,MAAA8xK,GAAAF,GAAA33L,KAAAyW,KAAMigB,+CAANjgB,SACK0F,MAAQwkI,GAAarF,qBAE1Bv1H,EAAK+xK,oBAAsB/xK,EAAK+xK,oBAAoBv0K,KAAzBw0K,MAAAhyK,KAC3BA,EAAKiyK,sBAAwBjyK,EAAKiyK,sBAAsBz0K,KAA3Bw0K,MAAAhyK,KAC7BA,EAAKkyK,uBAAyBlyK,EAAKkyK,uBAAuB10K,KAA5Bw0K,MAAAhyK,KAC9BA,EAAKmyK,4BAA8BnyK,EAAKmyK,4BAA4B30K,KAAjCw0K,MAAAhyK,KACnCA,EAAKoyK,yBAA2BpyK,EAAKoyK,yBAAyB50K,KAA9Bw0K,MAAAhyK,KAChCA,EAAKqyK,2BAA6BryK,EAAKqyK,2BAA2B70K,KAAhCw0K,MAAAhyK,KAClCA,EAAK8vK,sBAAwB9vK,EAAK8vK,sBAAsBtyK,KAA3Bw0K,MAAAhyK,KAC7BA,EAAKsyK,uBAAyBtyK,EAAKsyK,uBAAuB90K,KAA5Bw0K,MAAAhyK,KAC9BA,EAAKs5C,wBAA0Bt5C,EAAKs5C,wBAAwB97C,KAA7Bw0K,MAAAhyK,KAC/BA,EAAK+xK,sBAbU/xK,qPADGwpC,iEAiBG,IAAAqZ,EAKjBnyD,KAAKigB,MAHL4hK,EAFiB1vH,EAEjB0vH,8BACAtwB,EAHiBp/F,EAGjBo/F,6BACAhuH,EAJiB4uB,EAIjB5uB,eAEJ,OAAO4U,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACH7O,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBACXgoD,GAAAllD,EAAA/D,cAACk9J,GAAD,CACInmB,iBAAkB47C,EAClB37C,SAAUqrB,IACdp5G,GAAAllD,EAAA/D,cAAA,SAAI6rC,GAAqB3N,QAAzB,KACA+qB,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,eACbgoD,GAAAllD,EAAA/D,cAAA,SACI4oD,QAASvU,EACTrT,SAAUlwB,KAAK2hL,2BACftzL,KAAK,aACT8pD,GAAAllD,EAAA/D,cAAA,UAAQ6rC,GAAqBwI,iBAGpCvjC,KAAKyhL,8BACLzhL,KAAK0hL,kFAIgB,IAAAnyK,EAAAvP,KAAAkiE,EAOtBliE,KAAKigB,MALL4mB,EAFsBq7B,EAEtBr7B,SACAhO,EAHsBqpC,EAGtBrpC,QACAipJ,EAJsB5/G,EAItB4/G,kCACAxsB,EALsBpzF,EAKtBozF,gBACAyU,EANsB7nG,EAMtB6nG,eAEIgY,EAAuBl7I,EAAvBk7I,mBACFC,EAAgCF,IAAsCz6I,YAAQiuH,GAC9E2sB,GAA+BppJ,IAChCipJ,GACDz6I,YAAQiuH,GAEZ,OAAOn9G,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBACjB6xL,GACG1sB,EAAgBpuJ,IAAI,SAACg7K,EAAYjtL,GAAU,IAC/B0rL,EAAiBuB,EAAjBvB,aACR,OAAOxoI,GAAAllD,EAAA/D,cAACizL,GAAD,CACHztL,IAAKO,EACL4xC,SAAUA,EACV85I,aAAcA,EACdt3E,SAAU0gE,EACVsV,uBAAwB9vK,EAAK6vK,0BAExC6C,GAA+B9pI,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YAC3CgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,QAAQ4xL,wDAKN,IACfl7I,EAAa7mC,KAAKigB,MAAlB4mB,SACAo6I,EAA+Cp6I,EAA/Co6I,qBAAsBmB,EAAyBv7I,EAAzBu7I,qBAFP9qH,EAG0Bt3D,KAAK0F,MAA9Co/H,EAHextE,EAGfwtE,uBAAwBC,EAHTztE,EAGSytE,aAChC,OAAO5sF,GAAAllD,EAAA/D,cAAC+5D,GAAD,CACHp3B,OAAQizG,EACRl9E,UAAWw6H,EACXv6H,aAAc7nD,KAAK4oD,wBACnBd,eAAgB9nD,KAAK4hL,uBACrB75H,iBAAiB,EACjBC,yBAAyB,EACzBC,cAAejoD,KAAK4oD,wBACpBV,wBAAwB,IACtB9gB,IAAEC,QAAQ09F,IAAiB5sF,GAAAllD,EAAA/D,cAACmzL,GAAD,CACzBpB,qBAAsBA,EACtBtrB,eAAgB5wB,EAAa4wB,eAC7B0qB,WAAYt7C,EAAa4wB,eAAe0qB,WACxC3qB,SAAU3wB,EAAa4wB,eAAeD,SACtCjyH,UAAWshG,EAAathG,UACxBmyH,eAAgB7wB,EAAa6wB,eAC7BlyH,SAAUqhG,EAAarhG,SACvBmyH,cAAe9wB,EAAa8wB,+DAKlB9wB,GAAc,IAAAu9C,EACUtiL,KAAKigB,MAAM4mB,SAA7C+uH,EADwB0sB,EACxB1sB,eAAgBC,EADQysB,EACRzsB,cACxB71J,KAAK4hD,SAAS,SAACgvD,GACX,0UAAA2xE,CAAA,GACO3xE,EADP,CAEIk0B,wBAAwB,EACxBC,aAAc,CACV4wB,eAAgB5wB,EAAa4wB,eAC7BC,eAAgB7wB,EAAa6wB,gBAAkBA,EAC/CC,cAAe9wB,EAAa8wB,eAAiBA,sDAMtCniK,GACnBA,EAAMkmB,iBADoB,IAAA21H,EAEIvvI,KAAKigB,MAA3B+f,EAFkBuvG,EAElBvvG,QAAS6G,EAFS0oG,EAET1oG,SACTk+F,EAAiB/kI,KAAK0F,MAAtBq/H,aACR/kI,KAAK4hD,SAASopG,GAA2B,0BACrC,WACIhrH,EAAQy1H,kBAAkB5uH,EAAS27I,6BAA8Bz9C,EAAcl+F,EAASC,IAAcwJ,gEAK9GtwC,KAAK4hD,SAASopG,GAA2B,8EAGlBt3J,GACvBA,EAAMkmB,iBACN5Z,KAAK4hD,SAASopG,GAA2B,kBAAmBhrJ,KAAKuhL,uEAG7C,IAAA/xC,EACUxvI,KAAKigB,MAA3B+f,EADYwvG,EACZxvG,QAAS6G,EADG2oG,EACH3oG,SACTtD,EAAmBvjC,KAAK0F,MAAxB69B,eACRvD,EAAQq1H,eAAexuH,EAAS47I,sBAAuBl/I,EACnDsD,EAASC,IAAcwJ,0DAGT,IAAAo8G,EAC6C1sJ,KAAKigB,MAA5D+f,EADU0sH,EACV1sH,QAAS6G,EADC6lH,EACD7lH,SAAUyuH,EADT5I,EACS4I,gBAAiB/xH,EAD1BmpH,EAC0BnpH,eAEvC8D,YAAQiuH,IAIbt1H,EAAQq1H,eAAexuH,EAAS47I,sBAAuBl/I,EACnDsD,EAASC,IAAcwJ,6CAGtB,IAAAsqH,EAID56J,KAAKigB,MAFL4Y,EAFC+hI,EAED/hI,QAGIotI,EALHrL,EAGD/zH,SAEIo/H,UAER,OAAO9tH,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACFnuB,EAAUsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAAgC,KAC3C5tB,GAAAllD,EAAA/D,cAAA,UAAK+2K,GACJjmK,KAAKwhL,wNAKlBN,GAAYzoI,UAAY,CACpB5f,QAAS6f,KAAUqM,KAAKD,WACxBje,SAAU6R,KAAUnsD,OAAOu4D,WAC3BilH,eAAgBrxH,KAAUnsD,OAAOu4D,YAuBtBrL,oBApBf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9CrpH,eAAgByP,YAAkBttC,EAAMs1J,YAAYz3H,gBAAkB2mG,GAAarF,qBAAqBthG,eAAiB79B,EAAMs1J,YAAYz3H,eAC3I+xH,gBAAiB5vJ,EAAMs1J,YAAY1F,gBACnCwsB,kCAAmCp8K,EAAMs1J,YAAY8mB,kCACrDD,8BAA+Bn8K,EAAMs1J,YAAY6mB,8BACjDtwB,6BAA8B7rJ,EAAMs1J,YAAYzJ,+BAIxD,SAA4BptJ,GACxB,MAAO,CACH67B,QAAS,CACLq1H,eAAgBjvJ,aAAmB+0J,GAAmCh3J,GACtEsxJ,kBAAmBrvJ,aAAmB+0J,GAAsCh3J,MAKzEs1C,CAA6CynI,IC5L7CwB,GAtBgB,SAACpU,EAAiBlpC,GAmB7C,OAhBUv+F,EAAW,GACTo/H,GAFA0c,EAA4BrU,EAA5BqU,yBAEA1c,UAAWjnB,EAAmC2jC,EAAnC3jC,YAAaC,EAAsB0jC,EAAtB1jC,kBAChCp4G,EAASC,IAAcm/H,WAAaA,EACpCp/H,EAASC,IAAck4G,aAAeA,EACtCn4G,EAASC,IAAcm4G,mBAAqBA,EAE5Cp4G,EAASC,IAAcwM,UAAYqvI,EAAwB77I,IAAcwM,UACzEzM,EAASC,IAAcwM,UAAUlK,aAAeg8F,EAAgBt+F,IAAcuF,OAC9ExF,EAASC,IAAcs3B,aAAeukH,EAAwB77I,IAAcs3B,aAC5Ev3B,EAASC,IAAcq3B,UAAYwkH,EAAwB77I,IAAcq3B,UACzEt3B,EAASC,IAAcw3B,iBAAmBqkH,EAAwB77I,IAAcw3B,iBAEzEz3B,EAdX,IACY87I,EACF97I,EACEo/H,EAAWjnB,EAAaC,GCDxC,SAAS2jC,GAATl+K,GAA2D,IAAhCha,EAAgCga,EAAhCha,KAAMs8E,EAA0BtiE,EAA1BsiE,YAAa67G,EAAan+K,EAAbm+K,UACpCtO,EAAQtuH,aAAiBv7D,GAC/B,OACIytD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QACVokL,EAAMrtK,IAAI,SAACstK,GACR,OAAOr8H,GAAAllD,EAAA/D,cAAA,KAAGwF,IAAK0yC,IAAEue,YAAa6uH,MAGtCr8H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCACX+5E,aAAW,OACXhV,IAAI,GACJw/G,MAAM,QACNC,OAAQ3tG,KAGhB7uB,GAAAllD,EAAA/D,cAAA,SAAI2zL,KAMpBD,GAAgBnqI,UAAY,CACxB/tD,KAAMguD,KAAUj5B,OAAOqlC,WACvBkiB,YAAatuB,KAAUj5B,OAAOqlC,WAC9B+9H,UAAWnqI,KAAUj5B,OAAOqlC,YAGjB89H,UC/Bf,SAASE,GAATp+K,GAA+D,IAA/B0hC,EAA+B1hC,EAA/B0hC,MAAO4gC,EAAwBtiE,EAAxBsiE,YAAa+7G,EAAWr+K,EAAXq+K,QAyBhD,OACI5qI,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qBACXgoD,GAAAllD,EAAA/D,cAAA,UAAKk3C,GAzBJgB,IAAEC,QAAQ2/B,GAWX5/B,IAAEC,QAAQ07I,GACH,KAGJA,EAAQ77K,IAAI,SAAC87K,GAChB,OAAO7qI,GAAAllD,EAAA/D,cAAA,MAAIwF,IAAK0yC,IAAEue,YACdxN,GAAAllD,EAAA/D,cAAA,UAAK8zL,EAAO94L,OACZiuD,GAAAllD,EAAA/D,cAAA,OAAKu4D,wBAAyB,CAAEC,OAAQs7H,EAAOC,eAjB5C9qI,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uBAClBgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCACX+5E,aAAW,OACXhV,IAAI,GACJw/G,MAAM,QACNC,OAAQ3tG,MAyB5B87G,GAAqBrqI,UAAY,CAC7BrS,MAAOsS,KAAUj5B,OAAOqlC,WACxBkiB,YAAatuB,KAAUj5B,OAAOqlC,WAC9Bi+H,QAASrqI,KAAUjjD,MAAMqvD,YAGdg+H,UCtCf,SAASI,GAATx+K,GAA6C,IAApB0hC,EAAoB1hC,EAApB0hC,MAAOisI,EAAa3tK,EAAb2tK,UAkB5B,OACIl6H,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OACXgoD,GAAAllD,EAAA/D,cAAA,UAAKk3C,GACL+R,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,QAnBfk3C,YAAQgrI,GACD,KAGJA,EAAUnrK,IAAI,SAACorK,EAAUr9K,GAC5B,IAAMs9K,EAAO,MAAAtnL,OAASgK,GACtB,OAAOkjD,GAAAllD,EAAA/D,cAAA,OACHwF,IAAK0yC,IAAEue,WACPx1D,UAAU,OACVgoD,GAAAllD,EAAA/D,cAAA,SAAOb,KAAK,WAAWL,GAAIukL,IAC3Bp6H,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,YAAY+pE,QAASq4G,GAAUD,EAASpoL,OACzDiuD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,cAAcs3D,wBAAyB,CAAEC,OAAQ4qH,EAAStsG,oBAezFk9G,GAAczqI,UAAY,CACtBrS,MAAOsS,KAAUj5B,OAAOqlC,WACxButH,UAAW35H,KAAUjjD,MAAMqvD,YAGhBo+H,UCjCf,SAASC,GAATz+K,GAMG,IALC0+K,EAKD1+K,EALC0+K,8BACAC,EAID3+K,EAJC2+K,gCACAC,EAGD5+K,EAHC4+K,+BACA/+C,EAED7/H,EAFC6/H,kBACAg/C,EACD7+K,EADC6+K,oBAEMC,EAAuCv9H,aAAiBo9H,GAC9D,OACIlrI,GAAAllD,EAAA/D,cAAA,WACIipD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,4BAA4BizL,GAC1CjrI,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACXgoD,GAAAllD,EAAA/D,cAACk3D,GAAD,CAAiBlvD,UAAWssL,KAEhCrrI,GAAAllD,EAAA/D,cAAA,OACIiB,UAAW,iDACXgoD,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,eACbgoD,GAAAllD,EAAA/D,cAAA,SACIb,KAAK,WACL8B,UAAU,0CACV1G,KAAM,oBACNuE,GAAI,oBACJkiC,SAAUqzJ,EACVzrI,QAASysF,IACXpsF,GAAAllD,EAAA/D,cAAA,UAAQo0L,IAGlBnrI,GAAAllD,EAAA/D,cAAA,oBAKZi0L,GAAsB1qI,UAAY,CAC9B2qI,8BAA+B1qI,KAAUj5B,OAAOqlC,WAChDu+H,gCAAiC3qI,KAAUj5B,OAAOqlC,WAClDw+H,+BAAgC5qI,KAAUj5B,OAAOqlC,WACjDy/E,kBAAmB7rF,KAAUqM,KAAKD,WAClCy+H,oBAAqB7qI,KAAUx3C,KAAK4jD,YAGzBq+H,ihCClBTM,eACF,SAAAA,EAAYxjK,GAAO,IAAA3Q,qCAAAm0K,4DAAAC,CAAA1jL,MACfsP,MAAAq0K,GAAAF,GAAAl6L,KAAAyW,KAAMigB,+CAANjgB,QADe,IAGP6mC,EAA0B5mB,EAA1B4mB,SAAUu9F,EAAgBnkH,EAAhBmkH,YACZ0rB,EAAoBvD,YAAenoB,GACnCkoB,EAAiBC,YAAe1lH,GALvB,OAMfv3B,EAAK5J,MAALk+K,GAAA,GACO15C,GAAa5F,oBADpB,CAEIz9F,SAAUylH,EACV5X,oBAAqB4X,EAAe5X,oBAAoBtrG,aACxDg7F,YAAa0rB,EACb+zB,oBAAoB,IAGxBv0K,EAAKw0K,sBAAwBx0K,EAAKw0K,sBAAsBh3K,KAA3Bi3K,MAAAz0K,KAC7BA,EAAKoyK,yBAA2BpyK,EAAKoyK,yBAAyB50K,KAA9Bi3K,MAAAz0K,KAChCA,EAAK04J,+BAAiC14J,EAAK04J,+BAA+Bl7J,KAApCi3K,MAAAz0K,KACtCA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlBi3K,MAAAz0K,KACpBA,EAAK00K,mBAAqB10K,EAAK00K,mBAAmBl3K,KAAxBi3K,MAAAz0K,KAC1BA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5Bi3K,MAAAz0K,KAC9BA,EAAK20K,aAAe30K,EAAK20K,aAAan3K,KAAlBi3K,MAAAz0K,KACpBA,EAAK44J,sBAAwB54J,EAAK44J,sBAAsBp7J,KAA3Bi3K,MAAAz0K,KAC7BA,EAAK+0I,eAAiB/0I,EAAK+0I,eAAev3I,KAApBi3K,MAAAz0K,KACtBA,EAAKs5C,wBAA0Bt5C,EAAKs5C,wBAAwB97C,KAA7Bi3K,MAAAz0K,KAC/BA,EAAK40K,0BAA4B50K,EAAK40K,0BAA0Bp3K,KAA/Bi3K,MAAAz0K,KACjCA,EAAK60K,wBAA0B70K,EAAK60K,wBAAwBr3K,KAA7Bi3K,MAAAz0K,KAE/BA,EAAKsmI,eAAiBqU,GAAoCpjH,GA3B3Cv3B,qPADEwpC,kEA+BK6rB,GAAW,IACzBw+D,EAAanjI,KAAK0F,MAAlBy9H,SAEJtqG,EAGA8rC,EAHA9rC,QACAyvI,EAEA3jG,EAFA2jG,+BAGI8b,EADJz/G,EADA99B,SAEIu9I,kBAEJjhD,IACCtqG,GACDyvI,GACAtoK,KAAK4hD,SAASopG,IAAmC,GAAQhrJ,KAAKgoK,iCAG9D7kC,GACCtqG,GACAyvI,GACDtoK,KAAK4hD,SAASopG,IAAmC,IAGjDhrJ,KAAK0F,MAAMmhC,SAASu9I,oBAAsBA,GAC1CpkL,KAAK4hD,SAAS,SAACgvD,GAAD,MAAgB,CAC1B/pE,SAAU+8I,GAAA,GACHhzE,EAAU/pE,SADT,CAEJu9I,wEAMO,IACXpkJ,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAa5F,qBAC3BtkG,EAAQkyH,wEAGQ,IACRrrH,EAAa7mC,KAAK0F,MAAlBmhC,SACR7mC,KAAK4hD,SAASopG,GAAkCnkH,IAChD7mC,KAAKqkJ,0DAGQ,IAAA90I,EAAAvP,KACLokI,EAAgBpkI,KAAKigB,MAArBmkH,YADK9sE,EAEuCt3D,KAAK0F,MAAjDgvI,EAFKp9E,EAELo9E,oBAAqBmvC,EAFhBvsH,EAEgBusH,mBACvBv3B,EAAiBC,YAAevsJ,KAAK0F,MAAMmhC,UACzC8P,EAAwB21G,EAAxB31G,oBACoBytF,EAApB32F,kBAG+D,IAAnE6+G,EAAexlH,IAAc4tG,qBAAqBtrG,eAC1B,IAAxBsrG,GACA10I,KAAK4hD,SAASopG,GAA2B,uBAG7CsB,EAAexlH,IAAc4tG,qBAAqBtrG,aAAesrG,EAE5D/9F,IACD21G,EAAexlH,IAAcV,OAAOkkG,UAAYoK,EAChD4X,EAAexlH,IAAcR,aAAagkG,UAAYoK,EACtD4X,EAAexlH,IAAc5E,SAASooG,UAAYoK,EAClD4X,EAAexlH,IAAc3E,QAAQmoG,UAAYoK,EACjD4X,EAAexlH,IAAcphC,OAAO4kI,UAAYoK,EAChD4X,EAAexlH,IAAcqE,UAAUm/F,UAAYoK,GAGvD4X,EAAexlH,IAAc8B,QAAQ0hG,UAAYoK,EACjD4X,EAAexlH,IAAc88F,yBAAyB0G,UAAYoK,EAElE10I,KAAK4hD,SAASopG,GAAgCsB,GAAiB,WACvDu3B,GACAt0K,EAAKqyC,SAASopG,GAA2B,kFAKpB,IAAA74F,EAQzBnyD,KAAKigB,MANLuoJ,EAFyBr2G,EAEzBq2G,mBACAxoI,EAHyBmyB,EAGzBnyB,QACA6G,EAJyBsrB,EAIzBtrB,SACAu9F,EALyBjyE,EAKzBiyE,YACAigD,EANyBlyH,EAMzBkyH,iCACAhyB,EAPyBlgG,EAOzBkgG,mCAEI3d,EAAwB10I,KAAK0F,MAA7BgvI,oBACAjnG,GAAoBjG,YAAS48F,GAAeA,EAAc,CAAE32F,iBAAiB,IAA7EA,gBAEH42I,GAAqC78I,YAAS6qH,IAAwC5kH,IAAmBinG,GAC1G10G,EAAQg4H,sBAAsBnxH,EAAUu9F,GAG5C6lB,GAAgCjqJ,KAAKgqJ,gBAErCt8G,IAAqB,GAAM,GAC3B1tC,KAAKqkJ,iBACLmkB,GAAmB,8CAGJ90K,GACfA,EAAMkmB,iBACN5Z,KAAKikL,eAE2BjkL,KAAK0F,MAA7BgvI,qBAKR10I,KAAK4hD,SAASopG,GAA2BlkH,IAAc4tG,qBAAsB10I,KAAKqkJ,uDAIlF4F,GAAgCjqJ,KAAK41I,eAAe9uG,IAAc4tG,2DAGzDhhJ,GACTA,EAAMkmB,iBADU,IAERitB,EAAa7mC,KAAK0F,MAAlBmhC,SACR7mC,KAAK4hD,SAASopG,GAAsCnkH,GAAW7mC,KAAKsqJ,yEAIpE,GAAItqJ,KAAK0F,MAAM49H,cAAf,CAA8B,IAClBxgH,EAAW9iB,KAAK0F,MAAhBod,OACRmnI,GAAuCnnI,EAAQ9iB,KAAK41I,qBAIxD51I,KAAK4hD,SAASopG,IAAmC,GAAOhrJ,KAAKkoK,uEAGzC,IAAAz4J,EAAAzP,KAAAkiE,EACaliE,KAAKigB,MAA9B+f,EADYkiC,EACZliC,QAASokG,EADGliE,EACHkiE,YACT32F,EAAoB22F,EAApB32F,gBAFYw0B,EAGsBjiE,KAAK0F,MAAvCmhC,EAHYo7B,EAGZp7B,SAAU6tG,EAHEzyE,EAGFyyE,oBAEdsK,EAIAn4G,EAJAm4G,YACAslC,EAGAz9I,EAHAy9I,gCACAC,EAEA19I,EAFA09I,iCACAC,EACA39I,EADA29I,+BAGA1b,EAA6Br7H,EAC7B+2I,EACAF,GAAmCvpJ,GAAqB2D,6BAEvDg2G,IACDo0B,EAA6Byb,GAAoCxpJ,GAAqB2D,8BAG1FurH,GAAgCjqJ,KAAK41I,eAAe9uG,IAAcV,QAElEpmC,KAAK4hD,SjFyJkC,SAAC8yF,GAAD,OAAyB,SAAChvI,GAAU,IAAA++K,EACvE59I,EAAanhC,EAAbmhC,SAIR,OAFAA,EAASC,IAAc88F,yBAAyBx6F,aAAesrG,EAE/DgN,GAAA,GACOh8I,GADP27I,GAAAojC,EAAA,GAEK39I,IAAc88F,wBAA0B8Q,GAF7C2M,GAAAojC,EAAA,WAGI59I,GAHJ49I,KiF9JkBz5B,CAAiDtW,GAC3D,WACI10G,EAAQm2H,eAAe,CACnB77H,YAAa7qB,EAAK/J,MAClB0+H,cACA6a,kBAAmB6pB,EACnB9pB,gBAEJvvI,EAAK40I,sEAIU,IAAAqgC,EAKnB1kL,KAAK0F,MAHLm+K,EAFmBa,EAEnBb,mBACAh9I,EAHmB69I,EAGnB79I,SACA09F,EAJmBmgD,EAInBngD,kBAGA6+C,EAIAv8I,EAJAu8I,8BACAC,EAGAx8I,EAHAw8I,gCACAsB,EAEA99I,EAFA89I,oCACArB,EACAz8I,EADAy8I,+BAGJ,OAAOnrI,GAAAllD,EAAA/D,cAAC+5D,GAAD,CACHp3B,OAAQgyJ,EACRj8H,UAAW+8H,EACX98H,aAAc7nD,KAAK4oD,wBACnBd,eAAgB9nD,KAAKkkL,0BACrBn8H,iBAAiB,EACjBC,yBAA0Bu8E,EAC1Bt8E,cAAejoD,KAAK4oD,wBACpBV,wBAAwB,GACxB/P,GAAAllD,EAAA/D,cAAC01L,GAAD,CACIxB,8BAA+BA,EAC/BC,gCAAiCA,EACjCC,+BAAgCA,EAChC/+C,kBAAmBA,EACnBg/C,oBAAqBvjL,KAAKmkL,6EAMJnkL,KAAK0F,MAA3B6+H,mBAEJvkI,KAAK4hD,SAASopG,GAA2B,sBAG7ChrJ,KAAK4hD,SAASopG,GAA2B,uBACzChrJ,KAAK4hD,SAASopG,GAA2B,uBAAwBhrJ,KAAKqkJ,kEAGhD3wJ,GACtBA,EAAMkmB,iBACwB5Z,KAAK0F,MAA3B6+H,oBAIRvkI,KAAK4hD,SAASopG,GAA2B,sBACzChrJ,KAAK4hD,SAASopG,GAA2B,sBAAuBhrJ,KAAKsqJ,wBACrEr7J,SAAS8jD,eAAe,WAAWpjD,UAAUqY,OAAO,cACpD/Y,SAASoF,gBAAgB1E,UAAUqY,OAAO,iEAI1ChI,KAAK4hD,SAASopG,GAA2B,sEAGrB,IAAAl7I,EAAA9P,KAAA6kL,EACqC7kL,KAAK0F,MAAtDmhC,EADYg+I,EACZh+I,SAAUu8F,EADEyhD,EACFzhD,kBAAmBC,EADjBwhD,EACiBxhD,gBAC7BlhG,EAAkB0E,EAAlB1E,OAAQz8B,EAAUmhC,EAAVnhC,MACR0+K,EAAoDv9I,EAApDu9I,kBAAmBU,EAAiCj+I,EAAjCi+I,6BACrBx4B,EAAiBC,YAAe1lH,GAChC2lH,EAAyBnX,GAAwBiX,EAAexlH,IAAcphC,OAAQ1F,KAAK0F,MAAMohC,IAAcphC,OnH7RjG,QmHwSpB,OATA4mJ,EAAexlH,IAAc5E,SAASkH,aAAeppC,KAAK0F,MAAMohC,IAAc5E,SAC9EoqH,EAAexlH,IAAc3E,QAAQiH,aAAeppC,KAAK0F,MAAMohC,IAAc3E,QAC7EmqH,EAAexlH,IAAcphC,OAAO0jC,aAAeojH,EACnDF,EAAexlH,IAAcqE,UAAU/B,aAAeppC,KAAK0F,MAAMohC,IAAcqE,UAE/EmhH,EAAexlH,IAAc4tG,qBAAqBxqJ,MAAQk6L,EACtDU,EACA9kL,KAAK0F,MAAMmhC,SAASC,IAAc4tG,qBAAqBxqJ,MAEpDyrJ,GAAY,CACf9uG,SAAUylH,EACV1W,eAAgB51I,KAAK41I,eACrBC,WAAY,CAAEzS,oBAAmBl5I,MAAOi4C,EAASA,EAAOj4C,MAAQ6wC,GAAqB6E,aACrFk2G,UAAW,CAAEzS,kBAAiBn5I,MAAOwb,EAAQA,EAAMxb,MAAQ6wC,GAAqB6E,aAChF0jC,aAAc,SAAC5vE,GAAYoc,EAAK8xC,SAASopG,GAAmCt3J,EAAM3D,UAClFimJ,kBAAmB,SAACtiJ,GAChB,IAAM0tJ,EAAc1tJ,EAAM3D,OACpBmoF,EAAYkpE,EAAY33J,KACxB83J,EAAY16G,EAASqxC,GAC3BpoE,EAAK8xC,SAASopG,GAAiD5J,EAAaG,GAAYzxI,EAAKu0I,iBAEjGjO,iBAAkB,SAAC1iJ,GAAYoc,EAAK8xC,SAASopG,GAAkCt3J,KAC/E4iJ,oBAAqB,SAAC5iJ,GAClBoc,EAAK8xC,SAASopG,GAAqCt3J,EAAM3D,OAAQoyC,EAAQz8B,KAE7E8wI,sBAAuB,SAACt+D,GAAc,IAC1Bp1D,EAAWhT,EAAKpK,MAAhBod,OACR,OAAO2pI,GAA8Cv0E,EAAWp1D,uCAKnE,IAAAysH,EAMDvvI,KAAKigB,MAJL4Y,EAFC02G,EAED12G,QACA44H,EAHCliB,EAGDkiB,0BACA6W,EAJC/4B,EAID+4B,+BAGI76H,EAPH8hG,EAKDnL,YAEI32F,gBACA5G,EAAa7mC,KAAK0F,MAAlBmhC,SAEJo/H,EASAp/H,EATAo/H,UACAuO,EAQA3tI,EARA2tI,UACAuQ,EAOAl+I,EAPAk+I,sBACAC,EAMAn+I,EANAm+I,oBACAC,EAKAp+I,EALAo+I,0BACAC,EAIAr+I,EAJAq+I,gCACAC,EAGAt+I,EAHAs+I,kBACAC,EAEAv+I,EAFAu+I,mBACAC,EACAx+I,EADAw+I,eAlBCC,EAoBqCtlL,KAAK0F,MAAvCy9H,EApBHmiD,EAoBGniD,SAAUuR,EApBb4wC,EAoBa5wC,oBAElB,OACIv8F,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,UAAK+2K,GACL9tH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gBACVgzI,GAAYtqG,EAAUsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAAgC,KACvD5tB,GAAAllD,EAAA/D,cAACq2L,GAAD,CACI76L,KAAM8pL,EACNxtG,YAAa+9G,EACblC,UAAWmC,IACf7sI,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACXgoD,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACjBxsG,GAAAllD,EAAA/D,cAACk9J,GAAD,CACInmB,iBAAkBqiC,EAClBpiC,SAAUurB,IACbzxJ,KAAK8jL,wBACL9jL,KAAK0hL,2BACNvpI,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfra,UAAWoK,EACXuR,iBAAkBx4G,EACd1S,GAAqB2C,qBACrB3C,GAAqB0C,gCAIrC0a,GAAAllD,EAAA/D,cAACs2L,GAAD,CACIp/I,MAAO6+I,EACPj+G,YAAak+G,EACbnC,QAASoC,IACbhtI,GAAAllD,EAAA/D,cAACu2L,GAAD,CAAer/I,MAAOg/I,EAAoB/S,UAAWgT,oMAOzE5B,GAAWhrI,UAAY,CACnB5R,SAAU6R,KAAUnsD,OAAOu4D,WAC3Bs/E,YAAa1rF,KAAUnsD,OAAOu4D,WAC9B0jH,mBAAoB9vH,KAAUx3C,KAAK4jD,YAuBxBrL,oBApBf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9C0b,+BAAgC5iK,EAAMs1J,YAAYsN,+BAClD7W,0BAA2B/rJ,EAAMs1J,YAAYvJ,0BAC7C4yB,iCAAkC3+K,EAAMs1J,YAAYqpB,iCACpDhyB,mCAAoC3sJ,EAAMs1J,YAAY3I,qCAI9D,SAA4BluJ,GACxB,MAAO,CACH67B,QAAS,CACLm2H,eAAgB/vJ,aAAmB+0J,GAAmCh3J,GACtE+tJ,0BAA2B9rJ,aAAmB+0J,GAA8Ch3J,GAC5F6zJ,sBAAuB5xJ,aAAmB+0J,GAA0Ch3J,MAKjFs1C,CAGbgqI,ICrVaiC,GA7DqB,SAACpX,GA0DjC,OAvDQkL,EAUAlL,EAVAkL,2BACAF,EASAhL,EATAgL,gCACAG,EAQAnL,EARAmL,2BACAK,EAOAxL,EAPAwL,+BACAJ,EAMApL,EANAoL,kCACA8E,EAKAlQ,EALAkQ,sBACAjE,EAIAjM,EAJAiM,qBACAjqI,EAGAg+H,EAHAh+H,UACAknH,EAEA8W,EAFA9W,yBACAC,EACA6W,EADA7W,eAEE5wH,EAAW,GAEbo/H,EAUAuY,EAVAvY,UACA5mI,EASAm/I,EATAn/I,kBACAC,EAQAk/I,EARAl/I,oBACAC,EAOAi/I,EAPAj/I,0BACAC,EAMAg/I,EANAh/I,wBACAC,EAKA++I,EALA/+I,uBACAkmJ,EAIAnH,EAJAmH,oBACAC,EAGApH,EAHAoH,0BACAjM,EAEA6E,EAFA7E,cACArD,EACAkI,EADAlI,iBAGIp0I,EAAYq4I,EAAZr4I,QAER2E,EAASC,IAAc0yI,4BAA8BA,EACrD3yI,EAASC,IAAcwyI,iCAAmCA,EAC1DzyI,EAASC,IAAc2yI,4BAA8BA,EACrD5yI,EAASC,IAAcgzI,gCAAkCA,EACzDjzI,EAASC,IAAc4yI,mCAAqCA,EAC5D7yI,EAASC,IAAc0wH,0BAA4BA,EACnD3wH,EAASC,IAAc2wH,gBAAkBA,EACzC5wH,EAASC,IAAcm/H,WAAaA,EACpCp/H,EAASC,IAAczH,mBAAqBA,GAAqBtE,GAAqBsE,kBACtFwH,EAASC,IAAcxH,qBAAuBA,GAAuBvE,GAAqBuE,oBAC1FuH,EAASC,IAAcvH,2BAA6BA,GAA6BxE,GAAqBwE,0BACtGsH,EAASC,IAActH,yBAA2BA,GAA2BzE,GAAqByE,wBAClGqH,EAASC,IAAcrH,wBAA0BA,GAA0B1E,GAAqB0E,uBAChGoH,EAASC,IAAcqzI,qBAAuBwL,EAC9C9+I,EAASC,IAAcqhB,2BAA6By9H,EACpD/+I,EAASC,IAAc6yI,eAAiBA,EACxC9yI,EAASC,IAAcwvI,kBAAoBA,EAE3CzvI,EAASC,IAAc1C,WAAag3I,GAAcoD,GAClD33I,EAASC,IAAc6zI,eAAiBuB,GAAmBsC,GAC3D33I,EAASC,IAAc7B,WAAa43I,GAAc2B,GAElD33I,EAASC,IAAc5E,SAAWA,EAClC2E,EAASC,IAAcwJ,WAAaA,EAE7BzJ,EAtDX,IAEQ2yI,EACAF,EACAG,EACAK,EACAJ,EACA8E,EACAjE,EACAjqI,EACAknH,EACAC,EAEE5wH,EAEFo/H,EACA5mI,EACAC,EACAC,EACAC,EACAC,EACAkmJ,EACAC,EACAjM,EACArD,EAGIp0I,GCeD2jJ,GA9CoB,SAACvX,EAAiBlpC,GA2CjD,OAxCQq9C,EAIAnU,EAJAmU,sBACAD,EAGAlU,EAHAkU,6BACAsD,EAEAxX,EAFAwX,qBACAx1I,EACAg+H,EADAh+H,UAIA21H,EAUA6f,EAVA7f,UACA8b,EASA+D,EATA/D,mBACAd,EAQA6E,EARA7E,qBACA1B,EAOAuG,EAPAvG,sBACA6C,EAMA0D,EANA1D,qBACAtC,EAKAgG,EALAhG,sBACAC,EAIA+F,EAJA/F,yBACAC,EAGA8F,EAHA9F,2BACAv8I,EAEAqiJ,EAFAriJ,UACAC,EACAoiJ,EADApiJ,UAGEmD,EAAW,IAERC,IAAc27I,uBAAyBA,EAChD57I,EAASC,IAAc07I,8BAAgCA,EACvD37I,EAASC,IAAcm/H,WAAaA,EACpCp/H,EAAS+uH,eAAiBxwB,EAAgB3hG,UAC1CoD,EAASgvH,cAAgBzwB,EAAgB1hG,SACzCmD,EAASC,IAAci7I,oBAAsBA,EAC7Cl7I,EAASC,IAAcm6I,sBAAwBA,EAC/Cp6I,EAASC,IAAcy4I,uBAAyBA,EAChD14I,EAASC,IAAcs7I,sBAAwBA,EAC/Cv7I,EAASC,IAAcg5I,uBAAyBA,EAChDj5I,EAASC,IAAci5I,0BAA4BA,EACnDl5I,EAASC,IAAck5I,4BAA8BA,EACrDn5I,EAASC,IAAcrD,WAAaA,EACpCoD,EAASC,IAAcpD,UAAYA,EACnCmD,EAASC,IAAcwJ,WAAaA,EAE7BzJ,EAvCX,IAEQ47I,EACAD,EACAsD,EACAx1I,EAIA21H,EACA8b,EACAd,EACA1B,EACA6C,EACAtC,EACAC,EACAC,EACAv8I,EACAC,EAGEmD,GC+GCk/I,GAhIY,SAACzX,EAAiBlpC,GA6HzC,OA1HQm1C,EAGAjM,EAHAiM,qBACAyL,EAEA1X,EAFA0X,oBACAxL,EACAlM,EADAkM,6BAIAvU,EAuBA+f,EAvBA/f,UACAuO,EAsBAwR,EAtBAxR,UACA8P,EAqBA0B,EArBA1B,gCACAC,EAoBAyB,EApBAzB,iCACAC,EAmBAwB,EAnBAxB,+BACAO,EAkBAiB,EAlBAjB,sBACAC,EAiBAgB,EAjBAhB,oBACAiB,EAgBAD,EAhBAC,oBACAC,EAeAF,EAfAE,0BACAC,EAcAH,EAdAG,0BACAC,EAaAJ,EAbAI,sBACAnB,EAYAe,EAZAf,0BACAC,EAWAc,EAXAd,gCACAC,EAUAa,EAVAb,kBACAC,EASAY,EATAZ,mBACAC,EAQAW,EARAX,eACAzhD,EAOAoiD,EAPApiD,wBACAw/C,EAMA4C,EANA5C,8BACAC,EAKA2C,EALA3C,gCACAsB,EAIAqB,EAJArB,oCACArB,EAGA0C,EAHA1C,+BACAprB,EAEA8tB,EAFA9tB,0BACAY,EACAktB,EADAltB,iCAGEjyH,EAAW,IAERC,IAAcm/H,WAAaA,EACpCp/H,EAASC,IAAc0tI,WAAaA,EACpC3tI,EAASC,IAAck4G,aAAew7B,EACtC3zI,EAASC,IAAcw9I,iCAAmCA,EAC1Dz9I,EAASC,IAAcy9I,kCAAoCA,EAC3D19I,EAASC,IAAc09I,gCAAkCA,EACzD39I,EAASC,IAAci+I,uBAAyBA,EAChDl+I,EAASC,IAAck+I,qBAAuBA,EAC9Cn+I,EAASC,IAAcm/I,qBAAuBA,EAC9Cp/I,EAASC,IAAcq/I,2BAA6BA,EACpDt/I,EAASC,IAAco/I,2BAA6BA,EACpDr/I,EAASC,IAAcs/I,uBAAyBA,EAChDv/I,EAASC,IAAcm+I,2BAA6BA,EACpDp+I,EAASC,IAAco+I,iCAAmCA,EAC1Dr+I,EAASC,IAAcq+I,mBAAqBA,EAC5Ct+I,EAASC,IAAcs+I,oBAAsBA,EAC7Cv+I,EAASC,IAAcu+I,gBAAkBA,EACzCx+I,EAASC,IAAc69I,qCAAuCA,EAC9D99I,EAASC,IAAcw8I,gCAAkCA,EACzDz8I,EAASC,IAAcu8I,iCAAmCA,EAC1Dx8I,EAASC,IAAcs8I,+BAAiCA,EACxDv8I,EAASC,IAAcoxH,2BAA6BA,EACpDrxH,EAASC,IAAcgyH,iCAAmCA,EAE1DjyH,EAASC,IAAc4tG,qBAAuB6lC,EAAqBzzI,IAAc4tG,qBACjF7tG,EAASC,IAAcg+I,8BAAgCvK,EAAqBzzI,IAAcg+I,8BAC1Fj+I,EAASC,IAAcV,OAASm0I,EAAqBzzI,IAAcV,OACnES,EAASC,IAAcR,aAAei0I,EAAqBzzI,IAAcR,aACzEO,EAASC,IAAc5E,SAAWq4I,EAAqBzzI,IAAc5E,SACrE2E,EAASC,IAAc3E,QAAUo4I,EAAqBzzI,IAAc3E,QACpE0E,EAASC,IAAcphC,OAAS60K,EAAqBzzI,IAAcphC,OACnEmhC,EAASC,IAAcqE,UAAYovI,EAAqBzzI,IAAcqE,UACtEtE,EAASC,IAAc6B,gBAAkB4xI,EAAqBzzI,IAAc6B,gBAC5E9B,EAASC,IAAc8B,QAAU2xI,EAAqBzzI,IAAc8B,QACpE/B,EAASC,IAAc88F,yBAA2BA,EAKtD,SAAoC/8F,GAAU,IAClCyC,EAAe87F,EAAf97F,WACFqN,EAAsB3H,IAAY2H,oBAAoByuF,GACtDg/C,EAAoB96I,EAAWr+B,SAASujC,KAAgBC,SAC9D5H,EAASC,IAAc4tG,qBAAqBtrG,aAAeg7I,EAC3Dv9I,EAASC,IAAc4tG,qBAAqBlI,iBAAmBzxG,GAAqB6E,YACpFiH,EAASC,IAAc4tG,qBAAqBhI,gBAAkB3xG,GAAqB6E,YACnFiH,EAASC,IAAc6P,qBAAuBA,EAC9C9P,EAASC,IAAcs9I,mBAAqBA,EAC5Cv9I,EAASC,IAAcwC,YAAcA,EACrCzC,EAASC,IAAcyF,mBAAqBjD,EAAW7pC,MAAM,KAE7DonC,EAASC,IAAcV,OAAOgD,aAAeg8F,EAAgBt+F,IAAcV,OAC3ES,EAASC,IAAcV,OAAOomG,iBAAmBzxG,GAAqB6E,YACtEiH,EAASC,IAAcV,OAAOkkG,SAAW3zF,OACLtrD,IAAhC+5I,EAAgB9+F,cAChBO,EAASC,IAAcR,aAAa8C,aAAe6C,aAAuBm5F,EAAgB9+F,aAC1FO,EAASC,IAAcR,aAAagkG,SAAW3zF,GAGnD,IAAI/O,EAAc,GAClB,IAAKP,YAAQ+9F,EAAgBr/F,WAAY,CACrC,IAAMmzH,EAAe9zB,EAAgBr/F,UAAU/vB,KAAK,SAAC+0B,GAAD,OAAaA,EAAQzhD,OACzEs+C,EAAcP,YAAQ6xH,GAAgB,GAAKA,EAG/CryH,EAASC,IAAc5E,SAASkH,aAAexB,EAAY1F,QAC3D2E,EAASC,IAAc5E,SAASooG,SAAW3zF,EAE3C9P,EAASC,IAAc3E,QAAQiH,aAAexB,EAAYzF,OAC1D0E,EAASC,IAAc3E,QAAQmoG,SAAW3zF,EAE1C9P,EAASC,IAAcphC,OAAO0jC,aAAexB,EAAYliC,MACzDmhC,EAASC,IAAcphC,OAAO4kI,SAAW3zF,EAEzC9P,EAASC,IAAcqE,UAAU/B,aAAexB,EAAYuD,SAC5DtE,EAASC,IAAcqE,UAAUm/F,SAAW3zF,EAE5C,IAAM4+B,EAAY6vD,EAAgBt+F,IAAcyuC,WAChD1uC,EAASC,IAAc6B,gBAAgBS,aAAemsC,EAAU5sC,eAChE9B,EAASC,IAAc8B,QAAQQ,aAAemsC,EAAU3sC,OAExD,IAAMpP,EAAS4rG,EAAgBt+F,IAActN,QAK7C,OAHAqN,EAASC,IAAc68F,eAAiBnqG,EAAOC,sBAC/CoN,EAASC,IAAc88F,yBAAyBx6F,aAAe5P,EAAOqO,2BAE/DhB,EAlDAw/I,CAA2Bx/I,GAvEtC,IAEQ0zI,EACAyL,EACAxL,EAIAvU,EACAuO,EACA8P,EACAC,EACAC,EACAO,EACAC,EACAiB,EACAC,EACAC,EACAC,EACAnB,EACAC,EACAC,EACAC,EACAC,EACAzhD,EACAw/C,EACAC,EACAsB,EACArB,EACAprB,EACAY,EAGEjyH,GCNCy/I,GAjCe,SAAA5hL,GAExB,IAEQmiC,EAEF+sI,EAAoB2S,EAAuB1S,EAA8BP,EAASK,EAClFG,EAAoBC,EAAmB9c,EAAkBC,EAAsBC,EAC/E6c,EAA0BC,EAAwBC,EAAuBC,EAAmBC,EAPpGoS,EACE9hL,EADF8hL,8BA6BA,OA1BU3/I,EAAW,GAEb+sI,EAGA4S,EAHA5S,mBAAoB2S,EAGpBC,EAHoBD,sBAAuB1S,EAG3C2S,EAH2C3S,6BAA8BP,EAGzEkT,EAHyElT,QAASK,EAGlF6S,EAHkF7S,SAClFG,EAEA0S,EAFA1S,mBAAoBC,EAEpByS,EAFoBzS,kBAAmB9c,EAEvCuvB,EAFuCvvB,iBAAkBC,EAEzDsvB,EAFyDtvB,qBAAsBC,EAE/EqvB,EAF+ErvB,uBAC/E6c,EACAwS,EADAxS,yBAA0BC,EAC1BuS,EAD0BvS,uBAAwBC,EAClDsS,EADkDtS,sBAAuBC,EACzEqS,EADyErS,kBAAmBC,EAC5FoS,EAD4FpS,mBAEhGvtI,EAASC,IAAc8sI,oBAAsBA,EAC7C/sI,EAASC,IAAcy/I,uBAAyBA,EAChD1/I,EAASC,IAAc+sI,8BAAgCA,EACvDhtI,EAASC,IAAcwsI,SAAWA,EAClCzsI,EAASC,IAAc6sI,UAAYA,EACnC9sI,EAASC,IAAcgtI,oBAAsBA,EAC7CjtI,EAASC,IAAcitI,mBAAqBA,EAC5CltI,EAASC,IAAcmwH,kBAAoBA,EAC3CpwH,EAASC,IAAcowH,sBAAwBA,EAC/CrwH,EAASC,IAAcqwH,wBAA0BA,EACjDtwH,EAASC,IAAcktI,0BAA4BA,EACnDntI,EAASC,IAAcmtI,wBAA0BA,EACjDptI,EAASC,IAAcotI,uBAAyBA,EAChDrtI,EAASC,IAAcqtI,mBAAqBA,EAC5CttI,EAASC,IAAcstI,oBAAsBA,EAEtCvtI,GCMA4/I,GAhC2B,SAACnY,EAAiBlpC,GA6BxD,OA1BQ37F,EAEA6kI,EAFA7kI,mCACAi9I,EACApY,EADAoY,0CAIAzgB,EAMAx8H,EANAw8H,UACAjgG,EAKAv8B,EALAu8B,YACA8rG,EAIAroI,EAJAqoI,kCACApoI,EAGAD,EAHAC,oBACAi9I,EAEAl9I,EAFAk9I,gBACA/8I,EACAH,EADAG,kBAGE/C,EAAW,IAERC,IAAcm/H,WAAaA,EACpCp/H,EAASC,IAAcukI,cAAgBrlG,EACvCn/B,EAASC,IAAcgrI,mCAAqCA,EAC5DjrI,EAASC,IAAck4G,aAAe0nC,EACtC7/I,EAASC,IAAc4C,qBAAuBA,EAC9C7C,EAASC,IAAcguG,gBAAkB6xC,EACzC9/I,EAASC,IAAcuD,iBAAmBT,EAEnC/C,EAzBX,IAEQ4C,EACAi9I,EAIAzgB,EACAjgG,EACA8rG,EACApoI,EACAi9I,EACA/8I,EAGE/C,GCmCD+/I,GAA8B,CACvCC,gBAAiB,kBACjBC,gBAAiB,kBACjBC,mBAAoB,qBACpBC,kBAAmB,oBACnBC,0BAA2B,4BAC3BC,kBAAmB,oBACnBC,iBAAkB,mBAClBC,YAAa,cACbC,WAAY,aACZC,cAAe,iBAGNC,GACT,CAAC,CACGv5L,GAAI,WACJo4C,MAAO,mBACP91C,SAAU,CACN,CAAEtC,GAAI,OAAQo4C,MAAO,OAAQhuB,KAAMwuK,GAA4BC,iBAC/D,CAAE74L,GAAI,OAAQo4C,MAAO,aAAchuB,KAAMwuK,GAA4BE,iBACrE,CAAE94L,GAAI,OAAQo4C,MAAO,kBAAmBhuB,KAAMwuK,GAA4BG,oBAC1E,CAAE/4L,GAAI,OAAQo4C,MAAO,eAAgBhuB,KAAMwuK,GAA4BI,qBAsB/E,CACIh5L,GAAI,WACJo4C,MAAO,GACP91C,SAAU,CACN,CACItC,GAAI,OACJo4C,MAAO,yBACPhuB,KAAMwuK,GAA4BU,iBAI9C,CACIt5L,GAAI,WACJo4C,MAAO,eACP91C,SAAU,CACN,CAAEtC,GAAI,OAAQo4C,MAAO,UAAWhuB,KAAMwuK,GAA4BQ,aAClE,CAAEp5L,GAAI,OAAQo4C,MAAO,qBAAsBhuB,KAAMwuK,GAA4BO,qBAI5EK,GAA2B,CAGpCX,gBAAiB,SAAAniL,GAMX,IALF4pK,EAKE5pK,EALF4pK,gBACAlpC,EAIE1gI,EAJF0gI,gBACAojC,EAGE9jK,EAHF8jK,mBACAoC,EAEElmK,EAFFkmK,2BACA6c,EACE/iL,EADF+iL,uBAEI5gJ,EAAW,IAAI62I,GAAwBpP,EAAiBlpC,GAC5D,OAAOjtF,GAAAllD,EAAA/D,cAACw4L,GAAD,CACH7gJ,SAAUA,EACVu9F,YAAagB,EACbojC,mBAAoBA,EACpBgC,uBAAwBI,EACxBT,mBAAoBsd,KAE5BX,gBAAiB,SAAAxjL,GAA8D,IAA3DgrK,EAA2DhrK,EAA3DgrK,gBAAiBlpC,EAA0C9hI,EAA1C8hI,gBAAiBojC,EAAyBllK,EAAzBklK,mBAC9C3hI,EAAW,IAAIyzI,GAAoBhM,EAAiBlpC,GACxD,OAAOjtF,GAAAllD,EAAA/D,cAACy4L,GAAD,CAAiB9gJ,SAAUA,EAAUu9F,YAAagB,EAAiBojC,mBAAoBA,KAElGue,mBAAoB,SAAAztK,GAA0C,IAAvCg1J,EAAuCh1J,EAAvCg1J,gBAAiBlpC,EAAsB9rH,EAAtB8rH,gBAChCv+F,EAAW,IAAI67I,GAAuBpU,EAAiBlpC,GAC3D,OAAOjtF,GAAAllD,EAAA/D,cAAC04L,GAAD,CAAoB/gJ,SAAUA,KAEzCmgJ,kBAAmB,SAAAvtK,GAA8D,IAA3D60J,EAA2D70J,EAA3D60J,gBAAiBlpC,EAA0C3rH,EAA1C2rH,gBAAiBojC,EAAyB/uJ,EAAzB+uJ,mBAChD3hI,EAAW,IAAI43I,GAA6BnQ,EAAiBlpC,GADYyiD,EAElDvZ,EAAgBiM,qBAAnCr4I,EAFqE2lJ,EAErE3lJ,QAASx8B,EAF4DmiL,EAE5DniL,MA8BjB,OA5BA0/H,EAAgBt+F,IAAcs5B,cAAgBglE,EAAgBt+F,IAAcuF,YAEzBhhD,IAA/C+5I,EAAgBt+F,IAAcR,eAC9B8+F,EAAgBt+F,IAAcR,aAAe2F,aAAuBm5F,EAAgB9+F,cAGnFe,YAAQ+9F,EAAgBt+F,IAAcf,cACvCq/F,EAAgBt+F,IAAcf,WAAaq/F,EAAgBt+F,IAAcf,WAAW7+B,IAAI,SAAC6jC,GAErFA,EAAQjE,IAAchF,cAAgBiJ,EAAQjE,IAAchF,eAAiB/G,GAAqB6E,YAClGmL,EAAQjE,IAAc/E,cAAgBgJ,EAAQjE,IAAc/E,eAAiBhH,GAAqB6E,YAClGmL,EAAQjE,IAAc9E,cAAgB+I,EAAQjE,IAAc9E,eAAiBjH,GAAqB6E,YAClGmL,EAAQjE,IAAcqE,UAAYJ,EAAQjE,IAAcqE,WAAapQ,GAAqB6E,YAC1FmL,EAAQjE,IAAc7E,MAAQ8I,EAAQjE,IAAc7E,OAASlH,GAAqB6E,YAElF,IAAMsH,EAqDtB,SAAoBhF,EAAS1zB,GACzB,IAAMrkB,EAAQqkB,EAAQwH,KAAK,SAACqpD,GAAD,OAAOA,EAAE93B,OAASrF,IAE7C,OAAa,MAAT/3C,EAAwBqkB,EAAQ,GAE7BrkB,EA1D6B29L,CAAW/8I,EAAQ7I,QAASA,EAAQ1zB,SAC5Du8B,EAAQjE,IAAc0mF,aAAetmF,EAAgBh9C,MAErD6gD,EAAQjE,IAAc3E,QAAU4I,EAAQjE,IAAc3E,SAAWpH,GAAqB6E,YACtFmL,EAAQjE,IAAcphC,OAASqlC,EAAQjE,IAAcphC,QAAUq1B,GAAqB6E,YAEpF,IAAMmoJ,EAAoB1yC,GAAwB3vI,EAAOqlC,EAAQjE,IAAcphC,OzHrKlE,SyHwKb,OAFAqlC,EAAQjE,IAAc8mI,WAAama,EAE5Bh9I,KAIRoN,GAAAllD,EAAA/D,cAAC84L,GAAD,CACHnhJ,SAAUA,EACVu9F,YAAagB,EACbojC,mBAAoBA,KAE5B6e,WAAY,SAAAvtK,GAA8D,IAA3Dw0J,EAA2Dx0J,EAA3Dw0J,gBAAiBlpC,EAA0CtrH,EAA1CsrH,gBAAiBojC,EAAyB1uJ,EAAzB0uJ,mBACzC3hI,EAAW,IAAIk/I,GAAmBzX,EAAiBlpC,GACvD,OAAOjtF,GAAAllD,EAAA/D,cAAC+4L,GAAD,CACHphJ,SAAUA,EACVu9F,YAAagB,EACbojC,mBAAoBA,KAE5B8e,cAAe,SAAAvtK,GAA2C,IAAxCu0J,EAAwCv0J,EAAxCu0J,gBAAiBlpC,EAAuBrrH,EAAvBqrH,gBAC3Bv+F,EAAW,IAAIy/I,GAAsBhY,GACzC,OAAOn2H,GAAAllD,EAAA/D,cAACg5L,GAAD,CAAerhJ,SAAUA,EAChCu9F,YAAegB,EACfmuC,kBAAqBqT,GAA4BU,iBAGrDL,0BAA2B,SAAAzsK,GAA8D,IAA3D8zJ,EAA2D9zJ,EAA3D8zJ,gBAAiBlpC,EAA0C5qH,EAA1C4qH,gBAAiBojC,EAAyBhuJ,EAAzBguJ,mBACxD3hI,EAAW,IAAI4/I,GAAkCnY,EAAiBlpC,GACtE,OAAOjtF,GAAAllD,EAAA/D,cAACi5L,GAAD,CACHthJ,SAAUA,EACVu9F,YAAagB,EACbojC,mBAAoBA,KAE5B0e,kBAAmB,SAAAjsK,GACf,OADyDA,EAAvCqzJ,gBAAuCrzJ,EAAtBmqH,gBAC5BjtF,GAAAllD,EAAA/D,cAAC8iL,GAAD,OAEXmV,iBAAkB,SAAAjsK,GAAgE,IAA7DozJ,EAA6DpzJ,EAA7DozJ,gBAAkC1pC,GAA2B1pH,EAA5CkqH,gBAA4ClqH,EAA3B0pH,sBAC/C/9F,EAAW,IAAI6+I,GAA4BpX,GAC/C,OAAOn2H,GAAAllD,EAAA/D,cAACk5L,GAAD,CAAkBvhJ,SAAUA,EAAU+9F,qBAAsBA,KAEvEwiD,YAAa,SAAA/rK,GAA0D,IAAvDizJ,EAAuDjzJ,EAAvDizJ,gBAAiBlpC,EAAsC/pH,EAAtC+pH,gBAAiB2kC,EAAqB1uJ,EAArB0uJ,eAC1CljI,EAAW,IAAIg/I,GAA2BvX,EAAiBlpC,GAC/D,OAAOjtF,GAAAllD,EAAA/D,cAACm5L,GAAD,CAAaxhJ,SAAUA,EAAUkjI,eAAgBA,MCxMhE,SAASue,GAAT5jL,GAOG,IAIW6jL,EAVVnjD,EAMD1gI,EANC0gI,gBACAkpC,EAKD5pK,EALC4pK,gBACAh+H,EAID5rC,EAJC4rC,UACAk4I,EAGD9jL,EAHC8jL,6BACAC,EAED/jL,EAFC+jL,kBACAC,EACDhkL,EADCgkL,kCAEM9gB,EAAet3H,IAAckiH,KAAgBC,WAqEnD,OAAgBt6G,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,MAlENuhI,EAAchB,GAAyBrgL,IAAI,SAACyhL,GAC9C,IA2BIjW,EACAppI,EAEAi9I,EA9BEqC,EAAsBD,EAASr4L,SAAS0lB,KAAK,SAACqpD,GAAD,OAAOA,EAAEjnD,KAAKnN,SAAS27K,GAA4BS,cAChGwB,EAAyBF,EAASr4L,SAAS0lB,KAAK,SAACqpD,GAAD,OAAOA,EAAEjnD,KAAKnN,SAAS27K,GAA4BU,iBACzG,OAAKlgJ,IAAEC,QAAQuhJ,IAAwBhhB,EAC5B,MAGNxgI,IAAEC,QAAQwhJ,IAA4BL,KAGtCphJ,IAAEC,QAAQwhJ,KAkBXnW,EAAmBttC,EAAnBstC,eACAppI,EAAe87F,EAAf97F,WAEAi9I,EAA0BjY,EAAgBkY,8BAA1CD,sBAED/T,GAA0B+T,EAAuB7T,EAAgBppI,KAf5D6O,GAAAllD,EAAA/D,cAAA,MAAIwF,IAAKi0L,EAAS36L,GAAImC,UAAU,oBACpCgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,SAASw4L,EAASviJ,OAgBZ,SAACuiJ,GAC7B,OAAOA,EAASr4L,SAAS4W,IAAI,SAAC4hL,GAC1B,IAqBoBC,EArBdC,GAAoB3hJ,YAAQyhJ,EAAU9nL,MAAQysC,gBAC9Cw7I,EAAM,GAAAh+L,OAAML,OAAOg2B,SAASynF,SAAtB,KAAAp9G,OAAkC69L,EAAU1wK,MACxD,OACI+/B,GAAAllD,EAAA/D,cAAA,MAAIwF,IAAKo0L,EAAU96L,GAAImC,UAAU,QAC7BgoD,GAAAllD,EAAA/D,cAAA,KAAG0jD,KAAMq2I,EACLC,YAAa,SAAC/qL,GACLA,EAAEsa,SAAYta,EAAEua,SAAwB,IAAbva,EAAEzG,OAK9B9M,OAAO0lB,KAAP,sBAAArlB,OAAkC69L,EAAU1wK,MAAQ,SAAU,wBAJ9Dja,EAAEyb,iBACFhvB,OAAO69H,QAAQ5V,UAAU,KAAM,GAAIo2E,GACnCP,EAAkCvqL,EAAG2qL,EAAU1wK,QAKvDjoB,WAOQ44L,EAPsBD,EAAU1wK,KAQpD2wK,IAAuBN,EAChB,SAGJ,KAXUK,EAAU1iJ,MAXf,IAWuB4iJ,EAAmBF,EAAU9nL,IAAM,SAhC7DmoL,CAAoBR,IAZd,OAgBRxwI,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,cAAco4L,IA4ChCpwI,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,UACVy3K,EACGzvH,GAAAllD,EAAA/D,cAAA,KAAG0jD,KAAK,iCAAiC7iD,OAAO,UAASooD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAI,mDAAmDyqE,IAAI,qBACzH/c,GAAAllD,EAAA/D,cAAA,KAAG0jD,KAAK,2BAA2B7iD,OAAO,UAASooD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAI,4CAA4CyqE,IAAI,cAChH/c,GAAAllD,EAAA/D,cAAA,KAAG0jD,KAAK,yBAAyB7iD,OAAO,UAASooD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAI,mEAAmEyqE,IAAI,WACjI/c,GAAAllD,EAAA/D,cAAA,KAAG0jD,KAAK,wBAAwB7iD,OAAO,UAASooD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAI,0DAA0DyqE,IAAI,eAMvIozH,GAAiB7vI,UAAY,CACzB2sF,gBAAiB1sF,KAAUnsD,OAAOu4D,WAClCxU,UAAWoI,KAAUj5B,OAAOqlC,WAC5B0jI,6BAA8B9vI,KAAUqM,KAAKD,WAC7CskI,kBAAmB1wI,KAAUqM,KAAKD,WAClC2jI,kBAAmB/vI,KAAUj5B,OAAOqlC,WACpC4jI,kCAAmChwI,KAAUx3C,KAAK4jD,YAGvCwjI,UCxGf,SAASe,GAAT3kL,GASG,IARC0gI,EAQD1gI,EARC0gI,gBACAkpC,EAOD5pK,EAPC4pK,gBACAh+H,EAMD5rC,EANC4rC,UACAk4I,EAKD9jL,EALC8jL,6BACAY,EAID1kL,EAJC0kL,kBACAX,EAGD/jL,EAHC+jL,kBACAC,EAEDhkL,EAFCgkL,kCACAY,EACD5kL,EADC4kL,kBAEQxyI,EAAuBsuF,EAAvBtuF,SAAUyyI,EAAankD,EAAbmkD,SACZC,EAAmB,WACrB,IAAM9/L,EAAOkB,OAAOg2B,SAASl3B,KAAKwL,UAAU,GACxCxL,GACFg/L,EAAkC,KAAMh/L,IAW9C,OARE6iG,qBAAU,WAIR,OAHAi9F,IACA5+L,OAAOutB,iBAAiB,aAAcqxK,GAE/B,WACL5+L,OAAO0tB,oBAAoB,aAAckxK,KAE1C,IAEDrxI,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oBAAoBmoD,QAASgxI,GACxCnxI,GAAAllD,EAAA/D,cAAA,OAAK4rE,cAAY,OACblW,UAAU,QACV2kH,cAAY,MACZxuG,YAAU,OACVtyD,KAAK,MACLuyD,MAAM,6BACNC,QAAQ,cACR9qE,UAAU,QACVgoD,GAAAllD,EAAA/D,cAAA,QAAMgsE,KAAK,UAAUrvE,EAAE,0VAA0VsE,UAAU,MAE/XgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,cAAhB,eAEJgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,oBAAAlF,OAAsBm+L,EAAoB,UAAY,KAChEjxI,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,aACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,aACXgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,YAAY2mD,IAEhCqB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,aACXgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,SAAS,OACzBgoD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,QAAQo5L,IAE5BpxI,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YAAYmoD,QAASgxI,GAChCnxI,GAAAllD,EAAA/D,cAAA,OAAK4rE,cAAY,OACblW,UAAU,QACV2kH,cAAY,MACZxuG,YAAU,QACVtyD,KAAK,MACLuyD,MAAM,6BACNC,QAAQ,cACR9qE,UAAU,QACVgoD,GAAAllD,EAAA/D,cAAA,QACIgsE,KAAK,UACLrvE,EAAE,0ZACFsE,UAAU,QAK1BgoD,GAAAllD,EAAA/D,cAACu6L,GAAD,CACIrkD,gBAAiBA,EACjBkpC,gBAAiBA,EACjBh+H,UAAWA,EACX84I,kBAAmBA,EACnBX,kBAAmBA,EACnBD,6BAA8BA,EAC9BE,kCAAmCA,MAOvDW,GAAY5wI,UAAY,CACpB2sF,gBAAiB1sF,KAAUnsD,OAAOu4D,WAClCwpH,gBAAiB51H,KAAUnsD,OAAOu4D,WAClCxU,UAAWoI,KAAUj5B,OAAOqlC,WAC5BskI,kBAAmB1wI,KAAUqM,KAAKD,WAClC2jI,kBAAmB/vI,KAAUj5B,OAAOqlC,WACpC4jI,kCAAmChwI,KAAUx3C,KAAK4jD,WAClDwkI,kBAAmB5wI,KAAUx3C,KAAK4jD,YAGvBukI,ihCCtETK,eACF,SAAAA,EAAYzpK,GAAO,IAAA3Q,IAAA,uCAAAo6K,4DAAAC,CAAA3pL,OACfsP,MAAAs6K,GAAAF,GAAAngM,KAAAyW,KAAMigB,+CAANjgB,SACK0F,MAAQ,CACT0/H,gBAAiB,GACjBgkD,mBAAmB,EACnBX,kBAAmB7B,GAA4BC,gBAC/CjiD,qBAAsB,EACtBmlC,eAAgB,IAGpBz6J,EAAKu6K,0BAA4BhxI,KAAMwwB,YACvC/5D,EAAKw6K,aAAe,KACpBx6K,EAAK8qJ,sBAAwB9qJ,EAAK8qJ,sBAAsBttJ,KAA3Bi9K,MAAAz6K,KAC7BA,EAAK06K,+BAAiC16K,EAAK06K,+BAA+Bl9K,KAApCi9K,MAAAz6K,KACtCA,EAAK26K,wBAA0B36K,EAAK26K,wBAAwBn9K,KAA7Bi9K,MAAAz6K,KAC/BA,EAAK46K,qBAAuB56K,EAAK46K,qBAAqBp9K,KAA1Bi9K,MAAAz6K,KAC5BA,EAAKo5K,kCAAoCp5K,EAAKo5K,kCAAkC57K,KAAvCi9K,MAAAz6K,KACzCA,EAAKs7J,2BAA6Bt7J,EAAKs7J,2BAA2B99J,KAAhCi9K,MAAAz6K,KAClCA,EAAKm4K,uBAAyBn4K,EAAKm4K,uBAAuB36K,KAA5Bi9K,MAAAz6K,KAC9BA,EAAK66K,6BAA+B76K,EAAK66K,6BAA6Br9K,KAAlCi9K,MAAAz6K,KACpCA,EAAKk5J,mBAAqBl5J,EAAKk5J,mBAAmB17J,KAAxBi9K,MAAAz6K,KAC1BA,EAAKg6K,kBAAoBh6K,EAAKg6K,kBAAkBx8K,KAAvBi9K,MAAAz6K,KArBVA,qPADOwpC,4DA0BtB94C,KAAKwoK,oBAAmB,gDAInBhhI,YAASxnC,KAAK8pL,cAIPM,YAAapqL,KAAK6pL,4BAC1B7pL,KAAK8pL,aAAaxgH,UAJlBtpE,KAAK8pL,aAAeM,YAAapqL,KAAK6pL,2BAClC,IAAIj1E,GAAgC50G,KAAK6pL,0BAA0Bh1L,QAAS,6BAC5E,oDAOJ2yC,YAASxnC,KAAK8pL,eACd9pL,KAAK8pL,aAAaxgH,4DAIA3E,GAAW,IAE7Bu1F,EAGAv1F,EAHAu1F,kCACA5G,EAEA3uF,EAFA2uF,qBACAluB,EACAzgE,EADAygE,gBAGA80B,IACC7yH,YAAQ+9F,KACTplI,KAAKo6J,sBAAsBh1B,GAEvBkuB,GACAtzJ,KAAKgqL,2FAMb,IAAIvB,EAAoBzjB,aAAmB,qBACnC10H,EAActwC,KAAKigB,MAAMquJ,gBAAzBh+H,UAEJjJ,YAAQohJ,KAIRA,IAAsB7B,GAA4BS,YAClD/2I,IAAckiH,KAAgBC,aAC9Bg2B,EAAoB7B,GAA4BC,iBAGpD7mL,KAAKspL,oBACLtpL,KAAKiqL,wBAAwBxB,GAE7B4B,aAAsB,oEAGJhwB,GAAqB,IAAAloG,EACFnyD,KAAKigB,MAAlCquJ,EAD+Bn8G,EAC/Bm8G,gBAAiBtuI,EADcmyB,EACdnyB,QAEzB,GAAIqH,YAAQinI,IAAoBjnI,YAAQgzH,GACpCr6H,EAAQ9F,kBADZ,CAKA,IAAMkrG,EAAkBh+F,IAAEyqB,UAAUwoG,GACpCj1B,EAAgBklD,WAAaC,aAAcnlD,EAAgBh/F,MAAOkoI,EAAgBiM,qBAAqBn0I,MAAM53B,SAC7G42H,EAAgBtuF,SAAW0zI,aAAYplD,EAAgB3hG,UAAW2hG,EAAgB1hG,UAElF,IAAM+J,EAAkB23F,EAAgB97F,WAAWr+B,SHzF9C,WG0FLm6H,EAAgB33F,gBAAkBA,EAElCuB,IAAYkB,qCAAqCr6C,KAAKE,UAAUqvI,EAAgB97F,aAChF,IAAMmhJ,EAAc,IAAI92L,YAAY,kBAAmB,CAAEC,OAAQ,CAAEq8C,mBAAoBxC,EAAiBnE,WAAY87F,EAAgB97F,cACpIr6C,SAASuE,cAAci3L,GAEvBzqL,KAAK4hD,SACD,SAACgvD,GAAD,OAAA85E,GAAA,GACO95E,EADP,CAEIw0B,iFAKsB1xI,EAAOi3L,GACvB,OAAVj3L,GACAA,EAAMkmB,iBAGV5Z,KAAKspL,oBACLtpL,KAAKiqL,wBAAwBU,mDAGTlC,EAAmBmC,GACvC5qL,KAAK4hD,SACD,SAACl8C,GAAD,OAAAglL,GAAA,GACOhlL,EADP,CAEI+iL,oBACA7jD,qBAAsB,EACtBmlC,eAAgB,MAChB6gB,8CAIOC,GAAwB,IAAA3oH,EACFliE,KAAKigB,MAAlC+f,EAD+BkiC,EAC/BliC,QAASsuI,EADsBpsG,EACtBosG,gBACjB,GAAIjnI,YAAQinI,GACRtuI,EAAQ9F,kBADZ,CAFuC,IAO/B4wJ,EAA2Bxc,EAA3Bwc,uBACR9qJ,EAAQqzH,mBAAmBy3B,EAAwBD,uDAG5BtoJ,GACvBviC,KAAK4hD,SACD,SAACl8C,GAAD,OAAAglL,GAAA,GACOhlL,EADP,CAEI+iL,kBAAmB7B,GAA4BO,iBAC/CviD,qBAAsBriG,qDAKXwnI,GACnB/pK,KAAK4hD,SACD,SAACl8C,GAAD,OAAAglL,GAAA,GACOhlL,EADP,CAEI+iL,kBAAmB7B,GAA4BQ,YAC/Crd,iEAMR/pK,KAAK4hD,SAASopG,GAA2B,qEAGtB,IAAA1zF,EAGft3D,KAAK0F,MADL+iL,EAFenxH,EAEfmxH,kBAAmBrjD,EAFJ9tE,EAEI8tE,gBAAiBgkD,EAFrB9xH,EAEqB8xH,kBAFrB75C,EAI+DvvI,KAAKigB,MAA/EquJ,EAJW/+B,EAIX++B,gBAAiBpU,EAJN3qB,EAIM2qB,kCAAmCtJ,EAJzCrhB,EAIyCqhB,kBACpDtgH,EAAcg+H,EAAdh+H,UAEAy6I,EAD6Bzc,EAA7BiQ,yBACAwM,uBACAvC,EAAiCla,EAAjCka,6BACFwC,GAAwBp6B,GAAqBsJ,IAAsC7yH,YAAQ+9F,GAEjG,OAAIwrB,EAEIz4G,GAAAllD,EAAA/D,cAAA,OACIyrE,oBAAkB,4BAClBswH,4CAA2Cp1L,KAAKE,UAAUg1L,GAC1D/7H,IAAKhvD,KAAK6pL,4BAKlBxiJ,YAAQ+9F,GACDjtF,GAAAllD,EAAA/D,cAAC62E,GAAD,MAGH5tB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,aAClB66L,GAAwB7yI,GAAAllD,EAAA/D,cAACg8L,GAAD,CACrB9lD,gBAAiBA,EACjBkpC,gBAAiBA,EACjBh+H,UAAWA,EACXk4I,6BAA8BA,EAC9BY,kBAAmBA,EACnBX,kBAAmBA,EACnBC,kCAAmC1oL,KAAK0oL,kCACxCY,kBAAmBtpL,KAAKspL,oBAC5BnxI,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,WACV66L,GAAwBhrL,KAAKmqL,wFAMX,IAAAloH,EAMvBjiE,KAAK0F,MAJL+iL,EAFuBxmH,EAEvBwmH,kBACArjD,EAHuBnjE,EAGvBmjE,gBACAR,EAJuB3iE,EAIvB2iE,qBACAmlC,EALuB9nG,EAKvB8nG,eAEIuE,EAAoBtuK,KAAKigB,MAAzBquJ,gBAER,GAAIjnI,YAAQmgJ,GAAyBiB,IACjC,OAAOtwI,GAAAllD,EAAA/D,cAAA,UAAK6rC,GAAqB4D,oBAGrC,IAAMwsJ,EAAwB/jJ,IAAEyqB,UAAUy8G,GACpC8c,EAAwBhkJ,IAAEyqB,UAAUuzE,GAE1C,OAAOoiD,GAAyBiB,GAAmB,CAC/Cna,gBAAiB6c,EACjB/lD,gBAAiBgmD,EACjBxmD,uBACAmlC,iBACAvB,mBAAoBxoK,KAAKwoK,mBACzBoC,2BAA4B5qK,KAAK4qK,2BACjC6c,uBAAwBznL,KAAKynL,0DAKjC,OAAOznL,KAAKkqL,qNAIpBR,GAAgBjxI,UAAY,CACxB61H,gBAAiB51H,KAAUnsD,OAAOu4D,YAqBvBrL,oBAlBf,SAAyB/zC,GACrB,MAAO,CACHkrJ,kBAAmBlrJ,EAAMs1J,YAAYpK,kBACrCsJ,kCAAmCx0J,EAAMs1J,YAAYd,kCACrD5G,qBAAsB5tJ,EAAMs1J,YAAY1H,qBACxCluB,gBAAiB1/H,EAAMs1J,YAAY51B,kBAI3C,SAA4BjhI,GACxB,MAAO,CACH67B,QAAS,CACLqzH,mBAAoBjtJ,aAAmB+0J,GAAuCh3J,GAC9E+1B,YAAa9zB,aAAmBm/J,GAA+BphK,MAK5Ds1C,CAGbiwI,+zBCvQI2B,eACF,SAAAA,EAAYprK,GAAO,IAAA3Q,qCAAA+7K,4DAAAC,CAAAtrL,MAAA,IAAAmyD,GACf7iD,MAAAi8K,GAAAF,GAAA9hM,KAAAyW,KAAMigB,+CAANjgB,SAC+CigB,MAAvC4mB,EAFOsrB,EAEPtrB,SAAoByJ,EAFb6hB,EAEGtrB,SAFH,OAIfv3B,EAAK5J,yUAAL8lL,CAAA,GACOthD,GAAa3G,yBADpB,CAEIjzF,YACAy5G,uBAAuB,IAG3Bz6I,EAAK06I,eAAiBnxG,KAAMwwB,YAC5B/5D,EAAKgkI,cAAgBz6F,KAAMwwB,YAC3B/5D,EAAKsmI,eAAiBqU,GAAoCpjH,GAE1Dv3B,EAAKm8K,qBAAuBn8K,EAAKm8K,qBAAqB3+K,KAA1B4+K,MAAAp8K,KAC5BA,EAAKq8K,2BAA6Br8K,EAAKq8K,2BAA2B7+K,KAAhC4+K,MAAAp8K,KAClCA,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjB4+K,MAAAp8K,KACnBA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlB4+K,MAAAp8K,KACpBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5B4+K,MAAAp8K,KAC9BA,EAAKm7I,0BAA4Bn7I,EAAKm7I,0BAA0B39I,KAA/B4+K,MAAAp8K,KACjCA,EAAKi7I,mBAAqBj7I,EAAKi7I,mBAAmBz9I,KAAxB4+K,MAAAp8K,KAE1BA,EAAKm8K,uBAtBUn8K,2PADWwpC,mEA0BP,IAAAopB,EACWliE,KAAKigB,MAA3B+f,EADWkiC,EACXliC,QAAS6G,EADEq7B,EACFr7B,SAEZW,YAASX,IACV7G,EAAQs+G,6EAKZt+I,KAAK0F,MAAMqkJ,sBAAwB3B,GAAgCpoJ,KAAKszI,cAAetzI,KAAKigB,MAAO4/H,KAAaI,mEAG1Ft7E,GAAW,IAAAp1D,EAAAvP,KAE7B8qJ,EAGAnmF,EAHAmmF,qBACAjyH,EAEA8rC,EAFA9rC,QACAgO,EACA89B,EADA99B,SAGAW,YAASX,KAAcW,YAASxnC,KAAK0F,MAAM4qC,aAC3CtwC,KAAK0F,MAAM4qC,UAAYzJ,EAASyJ,WAGhC9I,YAASX,KAAcW,YAASxnC,KAAK41I,kBACrC51I,KAAK41I,eAAiBqU,GAAoCpjH,IAG1DW,YAASX,KAAc7mC,KAAK0F,MAAMqkJ,wBAClC/pJ,KAAK0F,MAAMqkJ,sBAAwB3B,GAAgCpoJ,KAAKszI,cAAe3uE,EAAWk7E,KAAaI,kBAG9GpnH,IACDiyH,EAKCjyH,GACAiyH,GACD9qJ,KAAK4hD,SAASopG,IAAmC,GAC7C,WACIf,GAAgC16I,EAAKy6I,kBAR7ChqJ,KAAK4hD,SAASopG,IAAmC,GAAQhrJ,KAAKyqJ,0EAa/C,IACXzqH,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAa3G,0BAC3BvjG,EAAQm+G,6EAGgB,IAChB8M,EAA0BjrJ,KAAKigB,MAA/BgrI,sBADgBq3B,EAOpBtiL,KAAKigB,MAAM4mB,SAJX8tC,EAHoB2tG,EAGpB3tG,SACAsqE,EAJoBqjC,EAIpBrjC,kBACAkM,EALoBm3B,EAKpBn3B,oCACAC,EANoBk3B,EAMpBl3B,0CAGJH,EAAsBjrJ,KAAK0F,MAAMohC,IAAcs5B,cAC3C,CACIkrF,iBAAkB32E,EAClB42E,YAAatM,EACbuM,6BAA8BL,EAC9BM,mCAAoCL,sEAI7B13J,0FACfA,EAAMkmB,iBACEitB,EAAa7mC,KAAKigB,MAAlB4mB,UACAkuG,EAAc/0I,KAAK0F,MAAnBqvI,aAGJluG,EAAS6kH,eAAiB3W,GAG9B/0I,KAAK4hD,SAASopG,GAAsCnkH,GAAW7mC,KAAKsqJ,kVAIpE,GAAItqJ,KAAK0F,MAAM49H,cAAf,CAA8B,IAClBxgH,EAAW9iB,KAAK0F,MAAhBod,OACRmnI,GAAuCnnI,EAAQ9iB,KAAK41I,oBAFxD,CAKA,IAAM+V,EAAa3rJ,KAAK41I,eAAe9uG,IAAciuG,WAEjD4W,GACAA,EAAW92J,QAAQorB,MAAM2rI,WAAWvwH,QAGxCr7B,KAAK4hD,SAASopG,IAAmC,GAAOhrJ,KAAK4rL,oDAGnD,IAAAn8K,EAAAzP,KACF6mC,EAAa7mC,KAAKigB,MAAlB4mB,SAER7mC,KAAK4hD,SAAS,CAAEnY,mCAAoC5C,EAAS4C,oCAAsC,WAC/Fh6B,EAAK86I,oEAIQ,IAAAhb,EACavvI,KAAKigB,MAA3B+f,EADSuvG,EACTvvG,QAAS6G,EADA0oG,EACA1oG,SACTglH,EAAoBhlH,EAApBglH,gBACF5M,EAAoBp4G,EAASo4G,mBAAqBlkH,GAAqBwD,wBAE7EyB,EAAQu/G,gBAAgBv/I,KAAK0F,MAAOu5I,EAAmB4M,GACvD7rJ,KAAK4hD,SAAS,CAAEmzF,UAAW,2CAGjB,IAAAvF,EAONxvI,KAAKigB,MALL+rI,EAFMxc,EAENwc,SACAC,EAHMzc,EAGNyc,iBACAnB,EAJMtb,EAINsb,qBACA9M,EALMxO,EAKNwO,yBACAn3G,EANM2oG,EAMN3oG,SAGJ,GAAIQ,YAAQR,GACR,OAAO,KAVD,IAaFqlH,EAAerlH,EAAfqlH,WAER,OAAQ/zG,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAACi9J,GAAD,CACI9iB,YAAa6iB,EAAW7iB,YACxB+b,cAAe8G,EAAW9G,cAC1BE,eAAgB4G,EAAW5G,eAC3BE,gBAAiBwG,EACjBrG,oBAAqBuG,EAAWvG,oBAChCC,qBAAsBsG,EAAWtG,qBACjCH,sBAAuBwG,EACvBnG,6BAA6B,IACjC3tG,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACjBxsG,GAAAllD,EAAA/D,cAACk9J,GAAD,CAAaz0B,QAAS33H,KAAKgqJ,eACvB/jB,iBAAkB6kB,EAClB5kB,SAAU8X,IACbh+I,KAAK2rL,6BACNxzI,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfsB,iBAAkBlrH,GAAqB4C,4BACvCuoH,eAAc,GAAAj7J,OAAK8vC,GAAqBQ,eAA1B,KAAAtwC,OAA4C8vC,GAAqBI,YAC/EqqH,gBAAiBwG,2DAKJ,IAAAl8I,EAAA9P,KACjB6mC,EAAa7mC,KAAKigB,MAAlB4mB,SACAE,EAAgBF,EAAhBE,YACFulH,EAAiBC,YAAe1lH,GAEtC,OAAO8uG,GAAY,CACf9uG,SAAUylH,EACV1W,eAAgB51I,KAAK41I,eACrBtyE,aAAc,SAAC5vE,GAAYoc,EAAK8xC,SAASopG,GAAmCt3J,EAAM3D,UAClFimJ,kBAAmB,SAACtiJ,GAAYoc,EAAK8xC,SAASopG,GAAiDt3J,EAAM3D,UACrGomJ,4BAA6B,SAACziJ,GAAYoc,EAAK8xC,SAASopG,GAAkDt3J,EAAM3D,UAChHsmJ,wBAAyB,SAAC3iJ,GAAYoc,EAAK8xC,SAASopG,GAAyCt3J,EAAOqzC,EAAYuyB,cAChHi9E,oBAAqB,SAACj3F,GAAYxvC,EAAK8xC,SAASopG,GAAqC1rG,KACrFm3F,6BAA8B,SAAC/iJ,GAC3Boc,EAAK8xC,SAASopG,GAA8Ct3J,EAAM3D,OAC9D82C,EAAS84B,gBAAiB94B,EAAS88G,6BAE3CnN,sBAAuB,SAACt+D,GAAc,IAC1Bp1D,EAAWhT,EAAKpK,MAAhBod,OACR,OAAO2pI,GAA8Cv0E,EAAWp1D,uCAKnE,IACGqgH,EAAanjI,KAAK0F,MAAlBy9H,SADHupB,EAEyB1sJ,KAAKigB,MAA3B4Y,EAFH6zH,EAEG7zH,QAASgO,EAFZ6lH,EAEY7lH,SAET0f,EAAgD1f,EAAhD0f,WAAY0hG,EAAoCphH,EAApCohH,gBAAiBE,EAAmBthH,EAAnBshH,eAErC,OACIhwG,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAKhvD,KAAKszI,cAAenjJ,UAAW23J,GAAmC9nJ,KAAKigB,QAC7Ek4B,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAW+3J,GAAkCloJ,KAAKigB,QAE/CunB,YAAS2gH,IACThwG,GAAAllD,EAAA/D,cAAA,WACIipD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAK09J,EAAgBh4J,UAAU,iCAAiC+5E,aAAW,UAGxF/xB,GAAAllD,EAAA/D,cAACo5D,GAAD,CACI/B,WAAYA,IAEhBpO,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACTgzI,GAAYtqG,EAAWsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KACvD/lE,KAAKoqJ,gBAIV5iH,YAASygH,IACT9vG,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAKw9J,EAAiB93J,UAAU,kCAAkC+5E,aAAW,yMAQ1GmhH,GAAoB5yI,UAAY,CAC5BuzG,SAAUtzG,KAAUx3C,KAAK4jD,WACzBjsB,QAAS6f,KAAUqM,KAAKD,WACxBmmG,sBAAuBvyG,KAAUx3C,KAAK4jD,WACtCje,SAAU6R,KAAUnsD,QAsBTktD,oBAnBf,SAAyB/zC,EAAOykH,GAC5B,MAAO,CACHtxF,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9C/lH,SAAWW,YAAS2iF,EAASz9E,kBAA0Dy9E,EAAStjF,SAA/CnhC,EAAMmnJ,aAAangH,iBACpEo+G,qBAAsBplJ,EAAMmnJ,aAAa/B,qBACzC9M,yBAA0Bt4I,EAAMmnJ,aAAa7O,2BAIrD,SAA4B75I,GACxB,MAAO,CACH67B,QAAS,CACLs+G,+BAAgCl4I,aAAmB0mJ,GAAoD3oJ,GACvGo7I,gBAAiBn5I,aAAmB0mJ,GAAqC3oJ,GACzEg6I,uBAAwB/3I,aAAmB0mJ,GAA4C3oJ,MAKpFs1C,CAGb4xI,+zBCrQIQ,eACF,SAAAA,EAAY5rK,GAAO,IAAA3Q,qCAAAu8K,4DAAAC,CAAA9rL,MAAA,IAAAmyD,GACf7iD,MAAAy8K,GAAAF,GAAAtiM,KAAAyW,KAAMigB,+CAANjgB,SAE6CigB,MAArCysB,EAHOylB,EAGPzlB,iBAAkB4D,EAHX6hB,EAGW7hB,UAHX,OAKfhhC,EAAK5J,yUAALsmL,CAAA,GACO9hD,GAAaxG,2BADpB,CAEIpzF,YACAy5G,uBAAuB,IAG3Bz6I,EAAK06I,eAAiBnxG,KAAMwwB,YAC5B/5D,EAAKgkI,cAAgBz6F,KAAMwwB,YAC3B/5D,EAAKsmI,eAAiBqU,GAAoCv9G,GAE1Dp9B,EAAKm8K,qBAAuBn8K,EAAKm8K,qBAAqB3+K,KAA1Bm/K,MAAA38K,KAC5BA,EAAK48K,6BAA+B58K,EAAK48K,6BAA6Bp/K,KAAlCm/K,MAAA38K,KACpCA,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjBm/K,MAAA38K,KACnBA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlBm/K,MAAA38K,KACpBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5Bm/K,MAAA38K,KAC9BA,EAAKm7I,0BAA4Bn7I,EAAKm7I,0BAA0B39I,KAA/Bm/K,MAAA38K,KACjCA,EAAKi7I,mBAAqBj7I,EAAKi7I,mBAAmBz9I,KAAxBm/K,MAAA38K,KAC1BA,EAAK68K,iBAAmB78K,EAAK68K,iBAAiBr/K,KAAtBm/K,MAAA38K,KAExBA,EAAKm8K,uBAxBUn8K,2PADawpC,mEA4BT,IAAAopB,EACmBliE,KAAKigB,MAAnC+f,EADWkiC,EACXliC,QAAS0M,EADEw1B,EACFx1B,iBAEbrF,YAAQqF,IACR1M,EAAQ6qH,sEAKZ7qJ,KAAK0F,MAAMqkJ,sBAAwB3B,GAAgCpoJ,KAAKszI,cAAetzI,KAAKigB,MAAO4/H,KAAaC,qEAG1Fn7E,GAAW,IAAAp1D,EAAAvP,KAE7B8qJ,EAKAnmF,EALAmmF,qBACAp+G,EAIAi4B,EAJAj4B,iBACA7T,EAGA8rC,EAHA9rC,QACAohI,EAEAt1F,EAFAs1F,gCACAzX,EACA79E,EADA69E,qBAOJ,GAJIh7G,YAASkF,KAAsB1sC,KAAK0F,MAAMqkJ,wBAC1C/pJ,KAAK0F,MAAMqkJ,sBAAwB3B,GAAgCpoJ,KAAKszI,cAAe3uE,EAAWk7E,KAAaC,qBAG9GjnH,GAAWohI,EAAiC,KACrC93H,EAAkBuK,EAAlBvK,OAAQz8B,EAAUgnC,EAAVhnC,MAChB1F,KAAK4hD,SAASopG,GAAyCxI,EAAsBrgH,EAAQz8B,KAGpF2hC,YAAQqF,IAAqBrF,YAAQrnC,KAAK41I,kBAC3C51I,KAAK41I,eAAiBqU,GAAoCv9G,IAGzD7T,IACDiyH,EAKCjyH,GACAiyH,GACD9qJ,KAAK4hD,SAASopG,IAAmC,GAC7C,WACIf,GAAgC16I,EAAKy6I,kBAR7ChqJ,KAAK4hD,SAASopG,IAAmC,GAAQhrJ,KAAKyqJ,0EAa/C,IACXzqH,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAaxG,4BAC3B1jG,EAAQm+G,6EAGgB,IAChB8M,EAA0BjrJ,KAAKigB,MAA/BgrI,sBADgBC,EAOpBlrJ,KAAKigB,MAAMysB,iBAJXioC,EAHoBu2E,EAGpBv2E,SACAsqE,EAJoBiM,EAIpBjM,kBACAkM,EALoBD,EAKpBC,oCACAC,EANoBF,EAMpBE,0CAGJU,GAAesgC,8BAEfnhC,EAAsBjrJ,KAAK0F,MAAMohC,IAAcs5B,cAC3C,CACIkrF,iBAAkB32E,EAClB42E,YAAatM,EACbuM,6BAA8BL,EAC9BM,mCAAoCL,sEAI7B13J,0FACfA,EAAMkmB,iBACE8yB,EAAqB1sC,KAAKigB,MAA1BysB,kBACAqoG,EAAc/0I,KAAK0F,MAAnBqvI,aAGJroG,EAAiBg/G,eAAiB3W,GAGtC/0I,KAAK4hD,SAASopG,GAAsCt+G,GAAmB1sC,KAAKsqJ,kVAI5E,GAAItqJ,KAAK0F,MAAM49H,cAAf,CAA8B,IAClBxgH,EAAW9iB,KAAK0F,MAAhBod,OACRmnI,GAAuCnnI,EAAQ9iB,KAAK41I,oBAFxD,CAKA,IAAM+V,EAAa3rJ,KAAK41I,eAAe9uG,IAAciuG,WAEjD4W,GACAA,EAAW92J,QAAQorB,MAAM2rI,WAAWvwH,QAGxCr7B,KAAK4hD,SAASopG,IAAmC,GAAOhrJ,KAAKuqJ,kEAG5C,IAAA96I,EAAAzP,KACT0sC,EAAqB1sC,KAAKigB,MAA1BysB,iBAERo/G,GAAeugC,mCAEX3/I,EAAiBpD,WACjBtpC,KAAK4hD,SAAS,CAAEtY,WAAYoD,EAAiBpD,WAAYG,mCAAoCiD,EAAiBjD,oCAAsC,WAChJh6B,EAAK08K,qBAKbnsL,KAAKmsL,8DAGU,IAAA58C,EACuBvvI,KAAKigB,MAAnC+f,EADOuvG,EACPvvG,QAAS0M,EADF6iG,EACE7iG,iBACTm/G,EAAoBn/G,EAApBm/G,gBACF5M,EAAoBvyG,EAAiBuyG,mBAAqBlkH,GAAqBwD,wBAErF0rH,GAAgCjqJ,KAAK41I,eAAe9uG,IAAcR,cAClEtG,EAAQu/G,gBAAgBv/I,KAAK0F,MAAOu5I,EAAmB4M,GACvD7rJ,KAAK4hD,SAAS,CAAEmzF,UAAW,2CAGjB,IAAAvF,EAONxvI,KAAKigB,MALL+rI,EAFMxc,EAENwc,SACAC,EAHMzc,EAGNyc,iBACAnB,EAJMtb,EAINsb,qBACA9M,EALMxO,EAKNwO,yBACAtxG,EANM8iG,EAMN9iG,iBAGJ,GAAIrF,YAAQqF,GACR,OAAO,KAVD,IAaFw/G,EAAex/G,EAAfw/G,WAER,OAAQ/zG,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAACi9J,GAAD,CACI9iB,YAAa6iB,EAAW7iB,YACxB+b,cAAe8G,EAAW9G,cAC1BE,eAAgB4G,EAAW5G,eAC3BK,oBAAqBuG,EAAWvG,oBAChCC,qBAAsBsG,EAAWtG,qBACjCH,sBAAuBwG,EACvBzG,gBAAiBwG,EACjBlG,6BAA6B,IACjC3tG,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACjBxsG,GAAAllD,EAAA/D,cAACk9J,GAAD,CACIz0B,QAAS33H,KAAKgqJ,eACd/jB,iBAAkB6kB,EAClB5kB,SAAU8X,IACbh+I,KAAKksL,+BACN/zI,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfsB,iBAAkBlrH,GAAqB6C,8BACvCsoH,eAAc,GAAAj7J,OAAK8vC,GAAqBQ,eAA1B,KAAAtwC,OAA4C8vC,GAAqBI,YAC/EqqH,gBAAiBwG,6DAKF,IAAAl8I,EAAA9P,KAAA0sJ,EACW1sJ,KAAKigB,MAAnC+f,EADmB0sH,EACnB1sH,QAAS0M,EADUggH,EACVhgH,iBADU4qB,EAE6Bt3D,KAAK0F,MAArD09H,EAFmB9rE,EAEnB8rE,kBAAmBlhG,EAFAo1B,EAEAp1B,QAASmhG,EAFT/rE,EAES+rE,gBAC5BlhG,EAA+BuK,EAA/BvK,OAAQ4E,EAAuB2F,EAAvB3F,YAAarhC,EAAUgnC,EAAVhnC,MACvB4mL,EAAyB//B,YAAe7/G,GACxC8/G,EAAyBnX,GAAwBi3C,EAAuBxlJ,IAAcphC,OAAQ1F,KAAK0F,MAAMohC,IAAcphC,O9HnOzG,Q8H8OpB,OATA4mL,EAAuBxlJ,IAAc5E,SAASkH,aAAeppC,KAAK0F,MAAMohC,IAAc5E,SACtFoqJ,EAAuBxlJ,IAAc3E,QAAQiH,aAAeppC,KAAK0F,MAAMohC,IAAc3E,QACrFmqJ,EAAuBxlJ,IAAcphC,OAAO0jC,aAAeojH,EAC3D8/B,EAAuBxlJ,IAAc7E,MAAMmH,aAAeppC,KAAK0F,MAAMohC,IAAc7E,MACnFqqJ,EAAuBxlJ,IAAchF,cAAcsH,aAAeppC,KAAK0F,MAAMohC,IAAchF,cAC3FwqJ,EAAuBxlJ,IAAc/E,cAAcqH,aAAeppC,KAAK0F,MAAMohC,IAAc/E,cAC3FuqJ,EAAuBxlJ,IAAc9E,cAAcoH,aAAeppC,KAAK0F,MAAMohC,IAAc9E,cAC3FsqJ,EAAuBxlJ,IAAcqE,UAAU/B,aAAeppC,KAAK0F,MAAMohC,IAAcqE,UAEhFwqG,GAAY,CACf9uG,SAAUylJ,EACV12C,eAAgB51I,KAAK41I,eACrBG,YAAa,CAAE7uG,gBAAiBhF,GAChC2zG,WAAY,CAAEzS,oBAAmBl5I,MAAOi4C,EAASA,EAAOj4C,MAAQ6wC,GAAqB6E,aACrFk2G,UAAW,CAAEzS,kBAAiBn5I,MAAOwb,EAAQA,EAAMxb,MAAQ6wC,GAAqB6E,aAChF0jC,aAAc,SAAC5vE,GAAYoc,EAAK8xC,SAASopG,GAAmCt3J,EAAM3D,UAClFimJ,kBAAmB,SAACtiJ,GAAYoc,EAAK8xC,SAASopG,GAAiDt3J,EAAM3D,UACrGomJ,4BAA6B,SAACziJ,GAAYoc,EAAK8xC,SAASopG,GAAkDt3J,EAAM3D,UAChHqmJ,iBAAkB,SAAC1iJ,GAAYoc,EAAK8xC,SAASopG,GAAkCt3J,KAC/E2iJ,wBAAyB,SAAC3iJ,GAAYoc,EAAK8xC,SAASopG,GAAyCt3J,EAAOqzC,EAAYuyB,cAChHi9E,oBAAqB,SAACj3F,GAAYxvC,EAAK8xC,SAASopG,GAAqC1rG,KACrFm3F,6BAA8B,SAAC/iJ,GAC3Boc,EAAK8xC,SAASopG,GAA8Ct3J,EAAM3D,OAC9D28C,EAAiBizB,gBAAiBjzB,EAAiBi3G,6BAE3DrN,oBAAqB,SAAC5iJ,GAClBoc,EAAK8xC,SAASopG,GAAqCt3J,EAAM3D,OAAQoyC,EAAQz8B,GACrE,WACIs6B,EAAQuwH,+BAGpB/Z,sBAAuB,SAACt+D,GAAc,IAC1Bp1D,EAAWhT,EAAKpK,MAAhBod,OACR,OAAO2pI,GAA8Cv0E,EAAWp1D,uCAKnE,IACGqgH,EAAanjI,KAAK0F,MAAlBy9H,SADHy3B,EAEiC56J,KAAKigB,MAAnC4Y,EAFH+hI,EAEG/hI,QAAS6T,EAFZkuH,EAEYluH,iBACT6Z,EAAgD7Z,EAAhD6Z,WAAY0hG,EAAoCv7G,EAApCu7G,gBAAiBE,EAAmBz7G,EAAnBy7G,eAErC,OACIhwG,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAKhvD,KAAKszI,cAAenjJ,UAAW23J,GAAmC9nJ,KAAKigB,QAC7Ek4B,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAW+3J,GAAkCloJ,KAAKigB,QAE/CunB,YAAS2gH,IACThwG,GAAAllD,EAAA/D,cAAA,WACIipD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAK09J,EAAgBh4J,UAAU,iCAAiC+5E,aAAW,UAGxF/xB,GAAAllD,EAAA/D,cAACo5D,GAAD,CACI/B,WAAYA,IAEhBpO,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACTgzI,GAAYtqG,EAAWsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KACvD/lE,KAAKoqJ,gBAIV5iH,YAASygH,IACT9vG,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAKw9J,EAAiB93J,UAAU,kCAAkC+5E,aAAW,yMAQ1G2hH,GAAsBpzI,UAAY,CAC9B5f,QAAS6f,KAAUqM,KAAKD,WACxBknG,SAAUtzG,KAAUx3C,KAAK4jD,WACzBmmG,sBAAuBvyG,KAAUx3C,KAAK4jD,WACtCxU,UAAWoI,KAAUj5B,OACrBitB,iBAAkBgM,KAAUnsD,QA0BjBktD,oBAvBf,SAAyB/zC,EAAOykH,GAC5B,MAAO,CACHtxF,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9ClgH,iBAAkBtF,IAAEC,QAAQ8iF,EAASz9E,kBAAoBhnC,EAAMmnJ,aAAangH,iBAAmBy9E,EAASz9E,iBACxGo+G,qBAAsBplJ,EAAMmnJ,aAAa/B,qBACzC9M,yBAA0Bt4I,EAAMmnJ,aAAa7O,yBAC7Cic,gCAAiCv0J,EAAMo1J,sBAAsBb,gCAC7Dc,wBAAyBr1J,EAAMo1J,sBAAsBC,wBACrDvY,qBAAsB98I,EAAMo1J,sBAAsBtY,uBAI1D,SAA4Br+I,GACxB,MAAO,CACH67B,QAAS,CACL6qH,wBAAyBzkJ,aAAmB0mJ,GAAsD3oJ,GAClGo7I,gBAAiBn5I,aAAmB0mJ,GAAqC3oJ,GACzEg6I,uBAAwB/3I,aAAmB0mJ,GAA4C3oJ,GACvFosJ,0BAA2BnqJ,aAAmB80J,GAA8C/2J,MAKzFs1C,CAGboyI,qsBC1SIU,eACF,SAAAA,EAAYtsK,GAAO,IAAA3Q,IAAA,uCAAAi9K,4DAAAC,CAAAxsL,OACfsP,MAAAm9K,GAAAF,GAAAhjM,KAAAyW,KAAMigB,+CAANjgB,SACK0F,yUAALgnL,CAAA,GACOxiD,GAAazE,gBADpB,CAEIskB,uBAAuB,EACvB4iC,YAAY,IAGhBr9K,EAAKgkI,cAAgBz6F,KAAMwwB,YAC3B/5D,EAAKs9K,kBAAoBt9K,EAAKs9K,kBAAkB9/K,KAAvB+/K,MAAAv9K,KACzBA,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjB+/K,MAAAv9K,KACnBA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlB+/K,MAAAv9K,KACpBA,EAAKw9K,iBAAmBx9K,EAAKw9K,iBAAiBhgL,KAAtB+/K,MAAAv9K,KACxBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5B+/K,MAAAv9K,KAC9BA,EAAKy9K,oBAAsBz9K,EAAKy9K,oBAAoBjgL,KAAzB+/K,MAAAv9K,KAC3BA,EAAK09K,2BAA6B19K,EAAK09K,2BAA2BlgL,KAAhC+/K,MAAAv9K,KAClCA,EAAK29K,mBAAqB39K,EAAK29K,mBAAmBngL,KAAxB+/K,MAAAv9K,KAC1BA,EAAK49K,yBAA2B59K,EAAK49K,yBAAyBpgL,KAA9B+/K,MAAAv9K,KAChCA,EAAKg0J,6BAA+Bh0J,EAAKg0J,6BAA6Bx2J,KAAlC+/K,MAAAv9K,KACpCA,EAAK+/I,gCAAkC//I,EAAK+/I,gCAAgCviJ,KAArC+/K,MAAAv9K,KAEvCA,EAAK29K,qBACL39K,EAAKg0J,+BAtBUh0J,qPADEwpC,6DA0BA,IAAAqZ,EACmBnyD,KAAKigB,MAAjC+f,EADSmyB,EACTnyB,QAASypH,EADAt3F,EACAs3F,eAEbpiH,YAAQoiH,IACRzpH,EAAQmjI,+EAKQnjK,KAAKigB,MAAjB+f,QAEAsjI,2EAIRtjK,KAAK0F,MAAMqkJ,sBAAwB3B,GAAgCpoJ,KAAKszI,cAAetzI,KAAKigB,MAAO4/H,KAAaoJ,kEAI5FjpJ,KAAKigB,MAAjB+f,QAEAqvH,oFAGc1qF,GAAW,IAE7BhsC,EAQAgsC,EARAhsC,mBACAC,EAOA+rC,EAPA/rC,sBACAirI,EAMAl/F,EANAk/F,YACAspB,EAKAxoH,EALAwoH,sBACAt0J,EAIA8rC,EAJA9rC,QACAmrI,EAGAr/F,EAHAq/F,2BACAopB,EAEAzoH,EAFAyoH,+BACA3jC,EACA9kF,EADA8kF,eAGAjiH,YAASiiH,KAAoBzpJ,KAAK0F,MAAMqkJ,wBACxC/pJ,KAAK0F,MAAMqkJ,sBAAwB3B,GAAgCpoJ,KAAKszI,cAAe3uE,EAAWk7E,KAAaoJ,UAG/GokC,EAAkC1oH,IAAgBq/F,GAA8Bx8H,YAAS4lJ,IACzFptL,KAAKgtL,2BAA2BroH,GAGhC0oH,EAAkC1oH,KAAeq/F,GAA8Bx8H,YAAS4lJ,KACxFptL,KAAK+sL,oBAAoBlpB,EAAal/F,IAGrC9rC,GAAWD,GAAyBD,GACrCw0J,EAAsBtpB,GAGrBhrI,GAAYF,GACb34B,KAAK4hD,SAASopG,IAAuC,mDAItC,IACXhrH,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAazE,iBAC3BzlG,EAAQkjI,0EAGev+F,GACvB,IAAI3xB,YAAkB2xB,GAAtB,CADkC,IAG1B3kC,EAA4B2kC,EAA5B3kC,QAASypH,EAAmB9kF,EAAnB8kF,eAEjB,IAAIz2G,YAAkBhT,KAAYgT,YAAkBy2G,GAApD,CALkC,IAO1B11G,EAAgC01G,EAAhC11G,4BAP0Bu5I,EAS4BD,IAAtDr0J,EAT0Bs0J,EAS1Bt0J,cAAeI,EATWk0J,EASXl0J,kBAAmBE,EATRg0J,EASQh0J,gBAE1C0G,EAAQ3F,wBAAwB,CAC5BrB,gBACAI,oBACAE,kBACA0lH,YAAajrG,kDAIDw5I,EAAY5oH,GAAW,IAAAp1D,EAAAvP,KAC/BwtL,EAAqE7oH,EAArE6oH,gBAAiBC,EAAoD9oH,EAApD8oH,sBAAuBC,EAA6B/oH,EAA7B+oH,yBAC1CtuC,EAAU/lH,cAEXmO,YAASkmJ,IAA6BtuC,IAAYoT,KAAgBM,SACnE9yJ,KAAKqvJ,kCAGTrvJ,KAAK4hD,SAASopG,IAAuC,GAAQ,WACzD,IAAM2iC,EAAoB3oB,aAAmBnwH,KAAe+4I,aACtDjV,EAAY3T,aAAmBnwH,KAAeC,YAE9CvG,EAAYg/I,EAAWj/I,WAAW,qBAAqBrjC,SAASujC,KAAgBC,SAChFjV,EAAS3jC,KAAKC,MAAMy3L,EAAWj/I,WAAW,kBAChDU,IAAYkB,qCAAqCr6C,KAAKE,UAAUw3L,EAAWj/I,WAAW,uBACtFU,IAAYqD,sBAAsBzC,KAAYi+I,gBAAiBN,EAAWj/I,WAAWjC,OACrF2C,IAAYqD,sBAAsB1C,IAAS49I,EAAWj/I,WAAWgE,KAEjE,IAAMC,EAAqBg7I,EAAWj/I,WAAW,6BAWjD,GATIiE,GACAvD,IAAYqD,sBAAsB3C,IAAoB6C,IAG5B,IAA1BhjC,EAAK7J,MAAMinL,aACXp9K,EAAK7J,MAAMinL,YAAa,EACxBp0I,KAAIzjD,KAAK,UAAW,kBAAmBlK,OAAOg2B,SAASgyB,OAGtDvL,YAAQsmJ,GAKb,GAAIp/I,GAAa6wG,IAAYoT,KAAgBM,SAEzC,GAAItrH,YAASkmJ,GAA2B,CACpC,IAAM5nJ,EAAc4nJ,EAAyB5nJ,YACZ0zH,GAA2C1zH,EAAatM,GAIrFw5E,eAFAw6E,EAAgBE,EAA0B7tC,KAAaiJ,yCAK5D,CAGH,IAFuCukC,EAAiD7zJ,GAIpF,YADAg0J,EAAgBC,EAAuB5tC,KAAaiuC,eAIxD,GAAIzmJ,YAAQsxI,GAER,YADA3lE,eAIJivB,oBA5BAzrF,aAAWm3I,sDAiCEn0J,GACrB,YAAqCnuC,IAAjCmuC,EAAOC,wBAAwE,IAAjCD,EAAOC,2DAKhD/lC,GACTA,EAAMkmB,iBADU,IAER6vI,EAAmBzpJ,KAAKigB,MAAxBwpI,eACRzpJ,KAAK4hD,SAASopG,GAAsCvB,GAAiBzpJ,KAAKsqJ,yEAIrEtqJ,KAAK0F,MAAM49H,eACZtjI,KAAK4hD,SAASopG,IAAuC,GAAOhrJ,KAAK8sL,6DAItD,IAAA5qH,EACqBliE,KAAKigB,MAAjC+f,EADOkiC,EACPliC,QAASypH,EADFvnF,EACEunF,eACTxK,EAAsBwK,EAAtBxK,kBAFO3nF,EAOXt3D,KAAK0F,MAHLw0E,EAJW5iB,EAIX4iB,SACA9Z,EALW9I,EAKX8I,aACAjC,EANW7G,EAMX6G,SAEIwjE,EAAyB8nB,EAAzB9nB,qBAER3hG,EAAQikI,WAAW,CACf/pF,WACA9Z,eACAjC,WACA8gF,oBACAtd,+DAIM,IAAA4N,EAONvvI,KAAKigB,MALLgsI,EAFM1c,EAEN0c,iBACAmT,EAHM7vB,EAGN6vB,WACA3V,EAJMla,EAINka,eACA9wH,EALM42G,EAKN52G,mBACAmqI,EANMvzB,EAMNuzB,eAGJ,OAAIz7H,YAAQoiH,GACD,KAGHtxG,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAACi9J,GAAD,CACI9iB,YAAatuG,GAAqBK,OAClCoqH,gBAAiB4Z,EACjBha,cAAerqH,GAAqBa,mBACpC0pH,eAAgBvqH,GAAqBY,eAEzCwc,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACjBxsG,GAAAllD,EAAA/D,cAACk9J,GAAD,CACInmB,iBAAkBttG,EAClButG,SAAU48B,IACb9iK,KAAK4sL,oBACNz0I,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIpG,iBAAkBlrH,GAAqBK,OACvC49C,SAAUh5E,KAAK2kJ,aACfa,gBAAiByG,EACjB/F,eAAgBnrH,GAAqBc,kEAMjC,IAAApsB,EAAAzP,KACRypJ,EAAmBzpJ,KAAKigB,MAAxBwpI,eACR,OAAO9T,GAAY,CACf9uG,SAAU4iH,EACV7T,eAAgB51I,KAAK41I,eACrBI,kBAAmB,SAACtiJ,GAAY+b,EAAKmyC,SAASopG,GAAiDt3J,EAAM3D,UACrGymJ,sBAAuB,SAACt+D,GAAc,IAAUp1D,EAAWrT,EAAK/J,MAAhBod,OAAuB,OAAO2pI,GAA8Cv0E,EAAWp1D,uCAItI,IACG+V,EAAY74B,KAAKigB,MAAjB4Y,QACA6sG,EAAiB1lI,KAAK0F,MAAtBggI,aAER,OACIvtF,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAKhvD,KAAKszI,cAAenjJ,UAAU,iCACpCgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2DACXgoD,GAAAllD,EAAA/D,cAAA,WACCw2I,GAAgB7sG,EAAUsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KACzD/lE,KAAKoqJ,8MAO1BmiC,GAAW9zI,UAAY,CACnB5f,QAAS6f,KAAUqM,KAAKD,WACxBmnG,iBAAkBvzG,KAAUx3C,KAAK4jD,WACjCs6G,WAAY1mH,KAAUx3C,KAAK4jD,WAC3BqoI,sBAAuBz0I,KAAUx3C,KAAK4jD,WACtC0oI,gBAAiB90I,KAAUx3C,KAAK4jD,WAChC2kG,eAAgB/wG,KAAUnsD,OAC1BkhM,sBAAuB/0I,KAAUnsD,QA+BtBktD,oBA5Bf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9CnD,eAAgB/jJ,EAAM2/J,WAAW5b,eACjC9wH,mBAAoBjzB,EAAM2/J,WAAW1sI,mBACrCqrI,2BAA4Bt+J,EAAM2/J,WAAWrB,2BAC7CopB,+BAAgC1nL,EAAM2/J,WAAW+nB,+BACjDx0J,sBAAuBlzB,EAAM2/J,WAAWzsI,sBACxCirI,YAAan+J,EAAM2/J,WAAWxB,YAC9Bf,eAAgBp9J,EAAM2/J,WAAWvC,eACjC2qB,sBAAuB/nL,EAAM2/J,WAAWooB,sBACxCC,yBAA0BhoL,EAAMm1J,mBAAmB6yB,2BAI3D,SAA4BvpL,GACxB,MAAO,CACH67B,QAAS,CACL3F,wBAAyBj0B,aAAmBm/J,GAA2CphK,GACvFg/J,sBAAuB/8J,aAAmBm/J,GAAyCphK,GACnF8/J,WAAY79J,aAAmBm/J,GAA8BphK,GAC7D++J,qBAAsB98J,aAAmBm/J,GAAwCphK,GACjFm/J,6BAA8Bl9J,aAAmBm/J,GAAgDphK,GACjGkrJ,gCAAiCjpJ,aAAmB2nL,GAA2D5pL,MAK5Gs1C,CAGb8yI,IClVK,SAASyB,GAAqBrzB,GACjC,MAAO,CAAEtsK,KAAMsvJ,GAA8Bgd,2BAO1C,SAASszB,KACZ,IAAMpyI,EAAW+B,aAAaC,QAAQ,oBACtC,OAAO,SAAU15C,GACbA,EAASu5I,MACTh9F,GAAciC,SAAS9G,GAAU,GAC5B/hB,KAAK,SAAChmB,GACH,GAAIA,EAASmgC,UAGT,OAFA9vC,EAASy5I,GAAa,CAAC9pI,EAAS7N,qBAChC9B,EAAS6pL,GAAqB,CAAC1uC,MAInCn7I,EAvBL,CAAE9V,KAAMsvJ,GAAgCgd,wBAuBH,CAACrb,QAClCtlH,MAAM,SAACjsB,GAGN,MAFA5J,EAASy5I,GAAa,CAAC7vI,KACvB5J,EAAS6pL,GAAqB,CAAC1uC,MACzBvxI,g0BCChBmgL,eACF,SAAAA,EAAYjuK,GAAO,IAAAo5I,EAAA/pJ,qCAAA4+K,4DAAAC,CAAAnuL,MAAA,IAEP6mC,GADRv3B,MAAA8+K,GAAAF,GAAA3kM,KAAAyW,KAAMigB,+CAANjgB,SAC0BigB,MAAlB4mB,SACAyJ,EAAczJ,EAAdyJ,UAEF1I,EAAc4xH,GAAiC3yH,EAASf,aACxD09E,EAAYg2C,GAAiC3yH,EAASf,aAN7C,OAQfx2B,EAAK5J,yUAAL2oL,CAAA,GACOnkD,GAAa/E,yBADpBmpD,GAAAj1B,EAAA,CAEI/oH,aACCxJ,IAAcV,MAAQozH,GAA2B3yH,EAASf,cAH/DwoJ,GAAAj1B,EAIKvyH,IAAcR,YAAck9E,EAAYm9B,aAAWn9B,EAAUx/E,KAAMw/E,EAAUv/E,MAAOu/E,EAAUt/E,KAAO,MAJ1GoqJ,GAAAj1B,EAKKvyH,IAAc5E,QAAUs3H,GAA6C5xH,EAAad,IAAc5E,UALrGosJ,GAAAj1B,EAMKvyH,IAAc3E,OAASq3H,GAA6C5xH,EAAad,IAAc3E,SANpGmsJ,GAAAj1B,EAOKvyH,IAAcphC,MAAQ8zJ,GAA6C5xH,EAAad,IAAcphC,QAPnG4oL,GAAAj1B,EAQKvyH,IAAc7E,KAAOu3H,GAA6C5xH,EAAad,IAAc7E,OARlGqsJ,GAAAj1B,EASKvyH,IAAchF,aAAe03H,GAA6C5xH,EAAad,IAAchF,eAT1GwsJ,GAAAj1B,EAUKvyH,IAAc/E,aAAey3H,GAA6C5xH,EAAad,IAAc/E,eAV1GusJ,GAAAj1B,EAWKvyH,IAAc9E,aAAew3H,GAA6C5xH,EAAad,IAAc9E,eAX1GssJ,GAAAj1B,EAYKvyH,IAAcqE,SAAWquH,GAA6C5xH,EAAad,IAAcqE,WAZtGmjJ,GAAAj1B,EAaKvyH,IAAcC,YAAcyyH,GAAiC3yH,EAAUC,MAb5EwnJ,GAAAj1B,EAAA,yBAc2B,GAd3BA,IAiBA/pJ,EAAK06I,eAAiBnxG,KAAMwwB,YAC5B/5D,EAAKgkI,cAAgBz6F,KAAMwwB,YAE3B/5D,EAAKi/K,qCAAuCj/K,EAAKi/K,qCAAqCzhL,KAA1C0hL,MAAAl/K,KAC5CA,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjB0hL,MAAAl/K,KACnBA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlB0hL,MAAAl/K,KACpBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5B0hL,MAAAl/K,KAC9BA,EAAKm/K,4BAA8Bn/K,EAAKm/K,4BAA4B3hL,KAAjC0hL,MAAAl/K,KACnCA,EAAK44J,sBAAwB54J,EAAK44J,sBAAsBp7J,KAA3B0hL,MAAAl/K,KAE7BA,EAAKsmI,eAAiBqU,GAAoCpjH,GAnC3Cv3B,2PADqBwpC,gEAuCpB,IAAAqZ,EACenyD,KAAKigB,MAA5B+rI,EADQ75F,EACR65F,SAAUnlH,EADFsrB,EACEtrB,SAEdQ,YAAQR,IACRmlH,IAGJhsJ,KAAK0F,MAAMqkJ,sBAAwB3B,GAAgCpoJ,KAAKszI,cAAetzI,KAAKigB,MAAO4/H,KAAamJ,2BAEhHhpJ,KAAKokJ,0BAELpkJ,KAAKikJ,0BAELjkJ,KAAKmkJ,0EAGiBx/E,GAAW,IAAAp1D,EAAAvP,KAE7B6mC,EAKA89B,EALA99B,SACAmzH,EAIAr1F,EAJAq1F,oBACAnhI,EAGA8rC,EAHA9rC,QACA2pH,EAEA79E,EAFA69E,qBACAyX,EACAt1F,EADAs1F,gCAOJ,GAJIzyH,YAASX,KAAc7mC,KAAK0F,MAAMqkJ,wBAClC/pJ,KAAK0F,MAAMqkJ,sBAAwB3B,GAAgCpoJ,KAAKszI,cAAe3uE,EAAWk7E,KAAamJ,6BAG9GnwH,GAAWohI,EAAiC,KACrC93H,EAAkB0E,EAAlB1E,OAAQz8B,EAAUmhC,EAAVnhC,MAChB1F,KAAK4hD,SAASopG,GAAyCxI,EAAsBrgH,EAAQz8B,IAGpFmzB,IACDmhI,EAKCnhI,GACAmhI,GACDh6J,KAAK4hD,SAASopG,IAAmC,GAC7C,WACIf,GAAgC16I,EAAKy6I,kBAR7ChqJ,KAAK4hD,SAASopG,IAAmC,GAAQhrJ,KAAKyuL,4EAa/C,IACXzuJ,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAa/E,yBAC3BnlG,EAAQovH,iFAGc,IAAAltF,EACgCliE,KAAKigB,MAAnD+rI,EADc9pF,EACd8pF,SAAsBz/G,EADR21B,EACJr7B,SAAY0F,kBAE1BlF,YAAQkF,IACRy/G,IAGJhsJ,KAAK4hD,SAASopG,GAAyCz+G,sDAGjC,IACFpK,EAAaniC,KAAKigB,MAA9B4mB,SAAY1E,OACd+hH,EAAkB93J,IAAI4T,KAAK0F,MAAOohC,IAAc5E,QAAS,MAE/DliC,KAAK4hD,SAASopG,GAAyC9G,EAAiB/hH,oDAGpD,IACAz8B,EAAY1F,KAAKigB,MAA7B4mB,SAAYnhC,MACdw+I,EAAkB93J,IAAI4T,KAAK0F,MAAOohC,IAAc5E,QAAS,MAE/DliC,KAAK4hD,SAASopG,GAAuC9G,EAAiBx+I,0DAG5C,IAAA6pI,EACIvvI,KAAKigB,MAA3B+f,EADkBuvG,EAClBvvG,QAAS6G,EADS0oG,EACT1oG,SACT6nJ,EAAgC7nJ,EAAhC6nJ,aAAcpH,EAAkBzgJ,EAAlBygJ,cAClBoH,EACA1uJ,EAAQ+2H,8BAA8BuwB,EAAchU,QAASgU,EAAcrwB,iBAAkBqwB,EAAcpwB,qBAAsBowB,EAAcnwB,wBAE/In3H,EAAQiuJ,kFAIGv6L,0FACfA,EAAMkmB,iBACEitB,EAAa7mC,KAAKigB,MAAlB4mB,UACAkuG,EAAc/0I,KAAK0F,MAAnBqvI,aAGJluG,EAAS6kH,eAAiB3W,GAG9B/0I,KAAK4hD,SAASopG,GAAsCnkH,GAAW7mC,KAAKsqJ,kVAIpE,GAAItqJ,KAAK0F,MAAM49H,cAAf,CAA8B,IAClBxgH,EAAW9iB,KAAK0F,MAAhBod,OACRmnI,GAAuCnnI,EAAQ9iB,KAAK41I,qBAIxD51I,KAAK4hD,SAASopG,IAAmC,GAAOhrJ,KAAKkoK,uEAGzC,IAAA14B,EACUxvI,KAAKigB,MAA3B+f,EADYwvG,EACZxvG,QAAS6G,EADG2oG,EACH3oG,SACT6zH,EAA2C7zH,EAA3C6zH,eAAgB50H,EAA2Be,EAA3Bf,YAAawK,EAAczJ,EAAdyJ,UAErC25G,GAAgCjqJ,KAAK41I,eAAe9uG,IAAcV,QAClEpG,EAAQlB,0BAA0BwR,EAAWtwC,KAAK0F,MAAOogC,EAAa40H,yCAG5D,IAAAhO,EAQN1sJ,KAAKigB,MANL+rI,EAFMU,EAENV,SACAgO,EAHMtN,EAGNsN,oBACAlL,EAJMpC,EAINoC,uBACA6/B,EALMjiC,EAKNiiC,2BACAh0B,EANMjO,EAMNiO,wBACA9zH,EAPM6lH,EAON7lH,SAGJ,GAAIQ,YAAQR,GACR,OAAO,KAGX,IAAMw/F,EAAoBj/F,IAAEC,QAAQynH,GAA0B6L,EAA0B7L,EAClF8Y,EAAeh9K,OAAOg2B,SAASguK,SAASx7L,cAAc6X,SAASunJ,KAAgBC,WAAWr/J,eAE1Fs7L,EAAe7nJ,EAAS6nJ,aACxBxoC,EAAkBwoC,EAA2G,GAA5G,GAAAzjM,OAAmB8vC,GAAqBkE,6BAAxC,KAAAh0C,OAAwE8vC,GAAqBI,YAC9G8qH,EAAoByoC,EAA2G3zJ,GAAqBgD,qBAAhH6pI,EAAe7sI,GAAqBiD,cAAgBjD,GAAqB+C,eAEnH,OAAQqa,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACjBxsG,GAAAllD,EAAA/D,cAACk9J,GAAD,CACIz0B,QAAS33H,KAAKgqJ,eACd/jB,iBAAkB+zB,GAAuB20B,EACzCzoD,SAAUG,IACbrmI,KAAKuuL,uCACNp2I,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfa,gBAAiBwG,EACjB/F,iBAAkBA,EAClBC,eAAgBA,EAChBC,gBAAiBuoC,qEAMM,IAAAj/K,EAAAzP,KAAA46J,EACL56J,KAAKigB,MAA3B+f,EAD2B46H,EAC3B56H,QAAS6G,EADkB+zH,EAClB/zH,SADkBywB,EAEqBt3D,KAAK0F,MAArD09H,EAF2B9rE,EAE3B8rE,kBAAmBlhG,EAFQo1B,EAERp1B,QAASmhG,EAFD/rE,EAEC+rE,gBAC5BlhG,EAA+B0E,EAA/B1E,OAAQ4E,EAAuBF,EAAvBE,YAAarhC,EAAUmhC,EAAVnhC,MACvB4mJ,EAAiBC,YAAe1lH,GAChC2lH,EAAyBnX,GAAwBiX,EAAexlH,IAAcphC,OAAQ1F,KAAK0F,MAAMohC,IAAcphC,OjI3OjG,QiIsQpB,OAzBA4mJ,EAAexlH,IAAcV,OAAOgD,aAAeppC,KAAK0F,MAAMohC,IAAcV,YAE9B/6C,IAA1C2U,KAAK0F,MAAMohC,IAAcR,cAA8BtmC,KAAK0F,MAAMohC,IAAcR,uBAAwBzoB,OAAS5e,MAAMe,KAAK0F,MAAMohC,IAAcR,gBAC3IgmH,EAAexlH,IAAcR,aAAa8C,eAC3CkjH,EAAexlH,IAAcR,aAAa8C,aAAeppC,KAAK0F,MAAMohC,IAAcR,eAI1FgmH,EAAexlH,IAAc5E,SAASkH,aAAeppC,KAAK0F,MAAMohC,IAAc5E,SAC9EoqH,EAAexlH,IAAc3E,QAAQiH,aAAeppC,KAAK0F,MAAMohC,IAAc3E,QAC7EmqH,EAAexlH,IAAcphC,OAAO0jC,aAAeojH,EACnDF,EAAexlH,IAAc7E,MAAMmH,aAAeppC,KAAK0F,MAAMohC,IAAc7E,MAC3EqqH,EAAexlH,IAAchF,cAAcsH,aAAeppC,KAAK0F,MAAMohC,IAAchF,cACnFwqH,EAAexlH,IAAc/E,cAAcqH,aAAeppC,KAAK0F,MAAMohC,IAAc/E,cACnFuqH,EAAexlH,IAAc9E,cAAcoH,aAAeppC,KAAK0F,MAAMohC,IAAc9E,cACnFsqH,EAAexlH,IAAcqE,UAAU/B,aAAeppC,KAAK0F,MAAMohC,IAAcqE,UAE3EnrC,KAAK0F,MAAMohC,IAAcC,eACpBulH,EAAexlH,IAAcC,aAAaqC,eAC3CkjH,EAAexlH,IAAcC,aAAaqC,aAAe,GACzDkjH,EAAexlH,IAAcC,aAAaqC,aAAalC,gBAAkBlnC,KAAK0F,MAAMohC,IAAcC,aAAaG,gBAC/GolH,EAAexlH,IAAcC,aAAaqC,aAAa1B,YAAc1nC,KAAK0F,MAAMohC,IAAcC,aAAaW,cAI5GiuG,GAAY,CACf9uG,SAAUylH,EACV1W,eAAgB51I,KAAK41I,eACrBG,YAAa,CAAE7uG,gBAAiBhF,GAChC2zG,WAAY,CAAEzS,oBAAmBl5I,MAAOi4C,EAASA,EAAOj4C,MAAQ6wC,GAAqB6E,aACrFk2G,UAAW,CAAEzS,kBAAiBn5I,MAAOwb,EAAQA,EAAMxb,MAAQ6wC,GAAqB6E,aAChF0jC,aAAc,SAAC5vE,GAAY+b,EAAKmyC,SAASopG,GAAmCt3J,EAAM3D,UAClFimJ,kBAAmB,SAACtiJ,GAAY+b,EAAKmyC,SAASopG,GAAiDt3J,EAAM3D,UACrGqmJ,iBAAkB,SAAC1iJ,GAAY+b,EAAKmyC,SAASopG,GAAkCt3J,KAC/E2iJ,wBAAyB,SAAC3iJ,GAAY+b,EAAKmyC,SAASopG,GAAyCt3J,EAAOqzC,EAAYuyB,cAChHi9E,oBAAqB,SAACj3F,GAAY7vC,EAAKmyC,SAASopG,GAAqC1rG,KACrFg3F,oBAAqB,SAAC5iJ,GAClB+b,EAAKmyC,SAASopG,GAAqCt3J,EAAM3D,OAAQoyC,EAAQz8B,GACrE,WACIs6B,EAAQuwH,+BAGpB/Z,sBAAuB,SAACt+D,GAAc,IAC1Bp1D,EAAWrT,EAAK/J,MAAhBod,OACR,OAAO2pI,GAA8Cv0E,EAAWp1D,uCAKnE,IACGqgH,EAAanjI,KAAK0F,MAAlBy9H,SADH02C,EAEyB75K,KAAKigB,MAA3B4Y,EAFHghJ,EAEGhhJ,QAASgO,EAFZgzI,EAEYhzI,SACT0f,EAAgD1f,EAAhD0f,WAAY0hG,EAAoCphH,EAApCohH,gBAAiBE,EAAmBthH,EAAnBshH,eAG/B9e,EADexiG,EAAS6nJ,aACuD3zJ,GAAqBgE,oCAAtEhE,GAAqB+D,0BAIzD,OAFAynB,EAAWE,YAAc4iF,EAGrBlxF,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAKhvD,KAAKszI,cAAenjJ,UAAW23J,GAAmC9nJ,KAAKigB,QAC7Ek4B,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAW+3J,GAAkCloJ,KAAKigB,QAE/CunB,YAAS2gH,IACThwG,GAAAllD,EAAA/D,cAAA,WACIipD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAK09J,EAAgBh4J,UAAU,iCAAiC+5E,aAAW,UAGxF/xB,GAAAllD,EAAA/D,cAACo5D,GAAD,CACI/B,WAAYA,IAEhBpO,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACLgzI,GAAYtqG,EAAWsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KACvD/lE,KAAKoqJ,gBAId5iH,YAASygH,IACT9vG,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAKw9J,EAAiB93J,UAAU,kCAAkC+5E,aAAW,yMAQ1GgkH,GAA8Bz1I,UAAY,CACtCuzG,SAAUtzG,KAAUx3C,KAAK4jD,WACzBjsB,QAAS6f,KAAUqM,KAAKD,WACxBje,SAAU6R,KAAUnsD,OACpB+jD,UAAWoI,KAAUj5B,QA4BVg6B,oBAzBf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9CoN,oBAAqBt0J,EAAMm1J,mBAAmBb,oBAC9ClL,uBAAwBppJ,EAAMm1J,mBAAmB/L,uBACjD6/B,2BAA4BjpL,EAAM44C,OAAOqwI,2BACzCh0B,wBAAyBj1J,EAAM44C,OAAOq8G,wBACtCV,gCAAiCv0J,EAAMo1J,sBAAsBb,gCAC7Dc,wBAAyBr1J,EAAMo1J,sBAAsBC,wBACrDvY,qBAAsB98I,EAAMo1J,sBAAsBtY,uBAI1D,SAA4Br+I,GACxB,MAAO,CACH67B,QAAS,CACLlB,0BAA2B14B,aAAmB60J,GAAiD92J,GAC/FirJ,6BAA8BhpJ,aAAmB60J,GAAoD92J,GACrG8pL,cAAe7nL,aAAmByoL,GAA6B1qL,GAC/DosJ,0BAA2BnqJ,aAAmB80J,GAA8C/2J,GAC5F4yJ,8BAA+B3wJ,aAAmB+0J,GAAkDh3J,MAKjGs1C,CAGby0I,mgCCpUIY,eACF,SAAAA,EAAY7uK,GAAO,IAAAo5I,EAAA/pJ,qCAAAw/K,4DAAAC,CAAA/uL,MAAA,IAEP6mC,GADRv3B,MAAA0/K,GAAAF,GAAAvlM,KAAAyW,KAAMigB,+CAANjgB,SAC0BigB,MAAlB4mB,SAEFe,EAAc4xH,GAAiC3yH,EAASf,aACxD6uC,EAAWvoF,IAAIy6C,EAAUC,IAAc6tC,SAAU,MACjD6uC,EAAYg2C,GAAiC3yH,EAASf,aAN7C,OAQfx2B,EAAK5J,yUAALupL,CAAA,GACO/kD,GAAa/E,yBADpB+pD,GAAA71B,EAAA,GAEKvyH,IAAcV,MAAQozH,GAA2B3yH,EAASf,cAF/DopJ,GAAA71B,EAGKvyH,IAAcR,YAAck9E,EAAYm9B,aAAWn9B,EAAUx/E,KAAMw/E,EAAUv/E,MAAOu/E,EAAUt/E,KAAO,MAH1GgrJ,GAAA71B,EAIKvyH,IAAc5E,QAAUs3H,GAA6C5xH,EAAad,IAAc5E,UAJrGgtJ,GAAA71B,EAKKvyH,IAAc3E,OAASq3H,GAA6C5xH,EAAad,IAAc3E,SALpG+sJ,GAAA71B,EAMKvyH,IAAcphC,MAAQ8zJ,GAA6C5xH,EAAad,IAAcphC,QANnGwpL,GAAA71B,EAOKvyH,IAAc7E,KAAOu3H,GAA6C5xH,EAAad,IAAc7E,OAPlGitJ,GAAA71B,EAQKvyH,IAAchF,aAAe03H,GAA6C5xH,EAAad,IAAchF,eAR1GotJ,GAAA71B,EASKvyH,IAAc/E,aAAey3H,GAA6C5xH,EAAad,IAAc/E,eAT1GmtJ,GAAA71B,EAUKvyH,IAAc9E,aAAew3H,GAA6C5xH,EAAad,IAAc9E,eAV1GktJ,GAAA71B,EAWKvyH,IAAcqE,SAAWquH,GAA6C5xH,EAAad,IAAcqE,WAXtG+jJ,GAAA71B,EAYKvyH,IAAcC,YAAcyyH,GAAiC3yH,EAAUC,MAZ5EooJ,GAAA71B,EAaKvyH,IAAc6tC,SAAWA,GAb9B0kF,IAgBA/pJ,EAAK06I,eAAiBnxG,KAAMwwB,YAC5B/5D,EAAKgkI,cAAgBz6F,KAAMwwB,YAE3B/5D,EAAK6/K,mCAAqC7/K,EAAK6/K,mCAAmCriL,KAAxCsiL,MAAA9/K,KAC1CA,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjBsiL,MAAA9/K,KACnBA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlBsiL,MAAA9/K,KACpBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5BsiL,MAAA9/K,KAC9BA,EAAKm/K,4BAA8Bn/K,EAAKm/K,4BAA4B3hL,KAAjCsiL,MAAA9/K,KACnCA,EAAK44J,sBAAwB54J,EAAK44J,sBAAsBp7J,KAA3BsiL,MAAA9/K,KAE7BA,EAAKsmI,eAAiBqU,GAAoCpjH,GAlC3Cv3B,2PADmBwpC,gEAsClB,IAAAqZ,EAC4BnyD,KAAKigB,MAAzC+rI,EADQ75F,EACR65F,SAAUnlH,EADFsrB,EACEtrB,SAAU8jH,EADZx4F,EACYw4F,YAExBtjH,YAAQR,IACRmlH,IAGJhsJ,KAAKq8J,uBAED1R,IAAgB9K,KAAaiJ,oCAC7BV,GAAgCpoJ,KAAKszI,cAAetzI,KAAKigB,MAAO0qI,GAGpE3qJ,KAAKokJ,0BAELpkJ,KAAKikJ,0BAELjkJ,KAAKmkJ,0GAGuBx/E,gHAExB99B,EAKA89B,EALA99B,SACAmzH,EAIAr1F,EAJAq1F,oBACAnhI,EAGA8rC,EAHA9rC,QACA2pH,EAEA79E,EAFA69E,qBACAyX,EACAt1F,EADAs1F,gCAGI50B,EAAmBrlI,KAAK0F,MAAxB2/H,eAERrlI,KAAKq8J,qBAAqB13F,GAErB9rC,GAAawsG,IAAkB40B,IACxB93H,EAAkB0E,EAAlB1E,OAAQz8B,EAAUmhC,EAAVnhC,MAChB1F,KAAK4hD,SAASopG,GAAyCxI,EAAsBrgH,EAAQz8B,KAGpFmzB,IACDmhI,0BACAq1B,YAA0B,oBACpB3hJ,IAAqB,GAAM,iBACjC1tC,KAAK4hD,SAASopG,IAAmC,GAAQhrJ,KAAKyuL,wDAI7D51J,GACAmhI,GACDh6J,KAAK4hD,SAASopG,IAAmC,GAC7C,WACIf,GAAgC16I,EAAKy6I,gBACrCz6I,EAAKqyC,SAASopG,IAA8B,gJAKrC,IACXhrH,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAa/E,yBAC3BnlG,EAAQovH,8EAIyB,IAAhBzqF,EAAgB/1E,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAJ,GACrBi4C,GAAaW,YAASm9B,GAAaA,EAAY3kE,KAAKigB,OAApD4mB,SACA+1H,GAAoBp1H,YAASX,GAAYA,EAAW,CAAE+1H,iBAAiB,IAAvEA,gBAER,GAAIA,EAAiB,CACjB,IAAMC,EAAc5tK,SAASkc,cAAc,iBAEtC6nC,YAAkB6pH,IACnBv9B,YAAeu9B,EAAa,YAAaD,sDAK3B,IAAA16F,EACgCliE,KAAKigB,MAAnD+rI,EADc9pF,EACd8pF,SAAsBz/G,EADR21B,EACJr7B,SAAY0F,kBAE1BlF,YAAQkF,IACRy/G,IAGJhsJ,KAAK4hD,SAASopG,GAAyCz+G,sDAGjC,IACFpK,EAAaniC,KAAKigB,MAA9B4mB,SAAY1E,OACd+hH,EAAkB93J,IAAI4T,KAAK0F,MAAOohC,IAAc5E,QAAS,MAE/DliC,KAAK4hD,SAASopG,GAAyC9G,EAAiB/hH,oDAGpD,IACAz8B,EAAY1F,KAAKigB,MAA7B4mB,SAAYnhC,MACdw+I,EAAkB93J,IAAI4T,KAAK0F,MAAOohC,IAAc5E,QAAS,MAE/DliC,KAAK4hD,SAASopG,GAAuC9G,EAAiBx+I,0DAG5C,IAAA6pI,EAMtBvvI,KAAKigB,MAJL+f,EAFsBuvG,EAEtBvvG,QACA6G,EAHsB0oG,EAGtB1oG,SACAw9I,EAJsB90C,EAItB80C,iCACAhyB,EALsB9iB,EAKtB8iB,mCAGJryJ,KAAK4hD,SAASopG,IAA8B,IARlB,IAUlBllH,GAAgB0B,YAASX,GAAYA,EAAW,CAAEf,YAAa,KAA/DA,YAEHu+I,GAAqC78I,YAAS6qH,GAK/CxrH,EAASmsE,WACTA,eAI4B,OAA5BnsE,EAASyoJ,qBAAuDjkM,IAA5Bw7C,EAASyoJ,iBAAgF,IAAhDzoJ,EAASyoJ,eAAeC,oBACrGvvJ,EAAQiuJ,gBAERz3I,aAAW3P,EAASyoJ,eAAeE,WAZnCxvJ,EAAQg4H,sBAAsBnxH,EAAUf,wEAgB7BpyC,0FACfA,EAAMkmB,iBACEitB,EAAa7mC,KAAKigB,MAAlB4mB,UACAkuG,EAAc/0I,KAAK0F,MAAnBqvI,aAGJluG,EAAS6kH,eAAiB3W,GAG9B/0I,KAAK4hD,SAASopG,IAA8B,IAC5ChrJ,KAAK4hD,SAASopG,GAAsCnkH,GAAW7mC,KAAKsqJ,mKAIpE,GAAItqJ,KAAK0F,MAAM49H,cAAf,CAA8B,IAClBxgH,EAAW9iB,KAAK0F,MAAhBod,OACRmnI,GAAuCnnI,EAAQ9iB,KAAK41I,qBAIxD51I,KAAK4hD,SAASopG,IAAmC,GAAOhrJ,KAAKkoK,uEAGzC,IAAA14B,EACUxvI,KAAKigB,MAA3B+f,EADYwvG,EACZxvG,QAAS6G,EADG2oG,EACH3oG,SACT6zH,EAAgC7zH,EAAhC6zH,eAAgB50H,EAAgBe,EAAhBf,YAExBmkH,GAAgCjqJ,KAAK41I,eAAe9uG,IAAcV,QAClEpG,EAAQd,wBAAwBl/B,KAAK0F,MAAOogC,EAAa40H,GAEzD5O,GAAeC,kEAGL,IAAAW,EAQN1sJ,KAAKigB,MANL+rI,EAFMU,EAENV,SACAgO,EAHMtN,EAGNsN,oBACAlL,EAJMpC,EAINoC,uBACA6/B,EALMjiC,EAKNiiC,2BACAh0B,EANMjO,EAMNiO,wBACA9zH,EAPM6lH,EAON7lH,SAGJ,GAAIQ,YAAQR,GACR,OAAO,KAEX,IAAMw/F,EAAoBj/F,IAAEC,QAAQynH,GAA0B6L,EAA0B7L,EAElFzlB,EADYxiG,EAAS0F,kBAAkBthC,SAASujC,KAAgBC,SACtC1T,GAAqBqE,yBAA2BrE,GAAqBmE,wBAErG,OAAQiZ,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAACi9J,GAAD,CACI9iB,YAAaA,EACbwc,iBAAiB,IACrB1tG,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACjBxsG,GAAAllD,EAAA/D,cAACk9J,GAAD,CACIz0B,QAAS33H,KAAKgqJ,eACd/jB,iBAAkB+zB,GAAuB20B,EACzCzoD,SAAUG,IACbrmI,KAAKmvL,qCACNh3I,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfa,gBAAiBwG,EACjB/F,iBAAkBlrH,GAAqB+C,eACvCooH,eAAc,GAAAj7J,OAAK8vC,GAAqBoE,2BAA1B,KAAAl0C,OAAwD8vC,GAAqBI,6EAMtE,IAAA1rB,EAAAzP,KAAA46J,EACH56J,KAAKigB,MAA3B+f,EADyB46H,EACzB56H,QAAS6G,EADgB+zH,EAChB/zH,SADgBywB,EAEuBt3D,KAAK0F,MAArD09H,EAFyB9rE,EAEzB8rE,kBAAmBlhG,EAFMo1B,EAENp1B,QAASmhG,EAFH/rE,EAEG+rE,gBAC5BlhG,EAA+B0E,EAA/B1E,OAAQ4E,EAAuBF,EAAvBE,YAAarhC,EAAUmhC,EAAVnhC,MACvB4mJ,EAAiBC,YAAe1lH,GAChC2lH,EAAyBnX,GAAwBiX,EAAexlH,IAAcphC,OAAQ1F,KAAK0F,MAAMohC,IAAcphC,OlIrRjG,QkIiTpB,OA1BImhC,EAAS8tC,WAAakrE,KAAaiJ,qCACnCwD,EAAexlH,IAAc5E,SAASkH,aAAeppC,KAAK0F,MAAMohC,IAAc5E,SAC9EoqH,EAAexlH,IAAc3E,QAAQiH,aAAeppC,KAAK0F,MAAMohC,IAAc3E,QAC7EmqH,EAAexlH,IAAcphC,OAAO0jC,aAAeojH,EACnDF,EAAexlH,IAAc7E,MAAMmH,aAAeppC,KAAK0F,MAAMohC,IAAc7E,MAC3EqqH,EAAexlH,IAAchF,cAAcsH,aAAeppC,KAAK0F,MAAMohC,IAAchF,cACnFwqH,EAAexlH,IAAc/E,cAAcqH,aAAeppC,KAAK0F,MAAMohC,IAAc/E,cACnFuqH,EAAexlH,IAAc9E,cAAcoH,aAAeppC,KAAK0F,MAAMohC,IAAc9E,cACnFsqH,EAAexlH,IAAcqE,UAAU/B,aAAeppC,KAAK0F,MAAMohC,IAAcqE,UAC/EmhH,EAAexlH,IAAcV,OAAOgD,aAAeppC,KAAK0F,MAAMohC,IAAcV,OAExEpmC,KAAK0F,MAAMohC,IAAcC,eACpBulH,EAAexlH,IAAcC,aAAaqC,eAC3CkjH,EAAexlH,IAAcC,aAAaqC,aAAe,GACzDkjH,EAAexlH,IAAcC,aAAaqC,aAAalC,gBAAkBlnC,KAAK0F,MAAMohC,IAAcC,aAAaG,gBAC/GolH,EAAexlH,IAAcC,aAAaqC,aAAa1B,YAAc1nC,KAAK0F,MAAMohC,IAAcC,aAAaW,mBAIrEr8C,IAA1C2U,KAAK0F,MAAMohC,IAAcR,cAA8BtmC,KAAK0F,MAAMohC,IAAcR,uBAAwBzoB,OAAS5e,MAAMe,KAAK0F,MAAMohC,IAAcR,gBAC3IgmH,EAAexlH,IAAcR,aAAa8C,eAC3CkjH,EAAexlH,IAAcR,aAAa8C,aAAeppC,KAAK0F,MAAMohC,IAAcR,gBAKvFqvG,GAAY,CACf9uG,SAAUylH,EACV1W,eAAgB51I,KAAK41I,eACrBG,YAAa,CAAE7uG,gBAAiBhF,GAChC2zG,WAAY,CAAEzS,oBAAmBl5I,MAAOi4C,EAASA,EAAOj4C,MAAQ6wC,GAAqB6E,aACrFk2G,UAAW,CAAEzS,kBAAiBn5I,MAAOwb,EAAQA,EAAMxb,MAAQ6wC,GAAqB6E,aAChF0jC,aAAc,SAAC5vE,GAAY+b,EAAKmyC,SAASopG,GAAmCt3J,EAAM3D,UAClFimJ,kBAAmB,SAACtiJ,GAAY+b,EAAKmyC,SAASopG,GAAiDt3J,EAAM3D,UACrGqmJ,iBAAkB,SAAC1iJ,GAAY+b,EAAKmyC,SAASopG,GAAkCt3J,KAC/E2iJ,wBAAyB,SAAC3iJ,GAAY+b,EAAKmyC,SAASopG,GAAyCt3J,EAAOqzC,EAAYuyB,cAChHi9E,oBAAqB,SAACj3F,GAAY7vC,EAAKmyC,SAASopG,GAAqC1rG,KACrFg3F,oBAAqB,SAAC5iJ,GAClB+b,EAAKmyC,SAASopG,GAAqCt3J,EAAM3D,OAAQoyC,EAAQz8B,GACrE,WACIs6B,EAAQuwH,+BAGpB/Z,sBAAuB,SAACt+D,GAAc,IAC1Bp1D,EAAWrT,EAAK/J,MAAhBod,OACR,OAAO2pI,GAA8Cv0E,EAAWp1D,uCAKnE,IACGqgH,EAAanjI,KAAK0F,MAAlBy9H,SADH02C,EAEsC75K,KAAKigB,MAAxC4Y,EAFHghJ,EAEGhhJ,QAASgO,EAFZgzI,EAEYhzI,SAAU8jH,EAFtBkvB,EAEsBlvB,YAEnB1C,EAAoCphH,EAApCohH,gBAAiBE,EAAmBthH,EAAnBshH,eAEzB,OACIhwG,GAAAllD,EAAA/D,cAAA,OAAK8/D,IAAKhvD,KAAKszI,cAAenjJ,UAAS,sDAAAlF,OAAwDu8C,YAASygH,GAAoB0C,IAAgB9K,KAAaiJ,mCAAqC,uBAAyB,uBAA0B,KAC7O3wG,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAW+3J,GAAkCloJ,KAAKigB,QAE/CunB,YAAS2gH,IACThwG,GAAAllD,EAAA/D,cAAA,WACIipD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAK09J,EAAgBh4J,UAAU,iCAAiC+5E,aAAW,UAGxF/xB,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACTgzI,GAAYtqG,EAAWsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KACvD/lE,KAAKoqJ,gBAIV5iH,YAASygH,IAAoB0C,IAAgB9K,KAAaiJ,oCAC1D3wG,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,+BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKzE,IAAKw9J,EAAiB93J,UAAU,kCAAkC+5E,aAAW,yMAQ1G4kH,GAA4Br2I,UAAY,CACpCuzG,SAAUtzG,KAAUx3C,KAAK4jD,WACzBjsB,QAAS6f,KAAUqM,KAAKD,WACxBje,SAAU6R,KAAUnsD,QA8BTktD,oBA3Bf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9CoN,oBAAqBt0J,EAAMm1J,mBAAmBb,oBAC9ClL,uBAAwBppJ,EAAMm1J,mBAAmB/L,uBACjD6/B,2BAA4BjpL,EAAM44C,OAAOqwI,2BACzCh0B,wBAAyBj1J,EAAM44C,OAAOq8G,wBACtCV,gCAAiCv0J,EAAMo1J,sBAAsBb,gCAC7Dc,wBAAyBr1J,EAAMo1J,sBAAsBC,wBACrDvY,qBAAsB98I,EAAMo1J,sBAAsBtY,qBAClD6hC,iCAAkC3+K,EAAMs1J,YAAYqpB,iCACpDhyB,mCAAoC3sJ,EAAMs1J,YAAY3I,qCAI9D,SAA4BluJ,GACxB,MAAO,CACH67B,QAAS,CACLd,wBAAyB94B,aAAmB60J,GAA+C92J,GAC3FirJ,6BAA8BhpJ,aAAmB60J,GAAoD92J,GACrG8pL,cAAe7nL,aAAmByoL,GAA6B1qL,GAC/DosJ,0BAA2BnqJ,aAAmB80J,GAA8C/2J,GAC5F6zJ,sBAAuB5xJ,aAAmB+0J,GAA0Ch3J,MAKjFs1C,CAGbq1I,4kBC9WIW,eACF,SAAAA,EAAYxvK,GAAO,IAAA3Q,IAAA,uCAAAmgL,4DAAAC,CAAA1vL,OACfsP,MAAAqgL,GAAAF,GAAAlmM,KAAAyW,KAAMigB,+CAANjgB,SAEK0F,MAAQwkI,GAAavE,6BAC1Br2H,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjB8iL,MAAAtgL,KACnBA,EAAKugL,+BAAiCvgL,EAAKugL,+BAA+B/iL,KAApC8iL,MAAAtgL,KACtCA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlB8iL,MAAAtgL,KACpBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5B8iL,MAAAtgL,KAC9BA,EAAKwgL,sBAAwBxgL,EAAKwgL,sBAAsBhjL,KAA3B8iL,MAAAtgL,KAC7BA,EAAKy9K,oBAAsBz9K,EAAKy9K,oBAAoBjgL,KAAzB8iL,MAAAtgL,KAC3BA,EAAKygL,4BAA8BzgL,EAAKygL,4BAA4BjjL,KAAjC8iL,MAAAtgL,KACnCA,EAAKg0J,6BAA+Bh0J,EAAKg0J,6BAA6Bx2J,KAAlC8iL,MAAAtgL,KACpCA,EAAK+/I,gCAAkC//I,EAAK+/I,gCAAgCviJ,KAArC8iL,MAAAtgL,KACvCA,EAAK49K,yBAA2B59K,EAAK49K,yBAAyBpgL,KAA9B8iL,MAAAtgL,KAEhCA,EAAKygL,8BACLzgL,EAAKg0J,+BAhBUh0J,qPADewpC,sEAoBJ,IAAAqZ,EAMtBnyD,KAAKigB,MAJL+f,EAFsBmyB,EAEtBnyB,QACA6jI,EAHsB1xG,EAGtB0xG,YACA7X,EAJsB75F,EAItB65F,SACAnlH,EALsBsrB,EAKtBtrB,SAGAQ,YAAQw8H,GACR7X,IAIA3kH,YAAQR,IACR7G,EAAQyjI,yFAKQzjK,KAAKigB,MAAjB+f,QAEAsjI,yFAIYtjK,KAAKigB,MAAjB+f,QAEAqvH,oFAGc1qF,GAAW,IAE7BqrH,EAGArrH,EAHAqrH,6BACAn3J,EAEA8rC,EAFA9rC,QACAgrI,EACAl/F,EADAk/F,YAGChrI,IAAWm3J,EAKXn3J,GAAYm3J,GACbhwL,KAAK4hD,SAASopG,IAAuC,IALrDhrJ,KAAK+sL,oBAAoBlpB,EAAal/F,kDASvB,IACX3kC,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAazE,iBAC3BzlG,EAAQkjI,mEAGQW,EAAal/F,GAAW,IAChCsrH,EAAoEtrH,EAApEsrH,eAAgBxC,EAAoD9oH,EAApD8oH,sBAAuBC,EAA6B/oH,EAA7B+oH,yBAEzCtuC,EAAU/lH,cACXmO,YAASkmJ,IAA6BtuC,IAAYoT,KAAgBM,SACnE9yJ,KAAKqvJ,kCAGTrvJ,KAAK4hD,SAASopG,IAAuC,GAAQ,WACzD,IAAMz8G,EAAYs1H,EAAYqsB,eAAe33B,eAAe,qBAAqBttJ,SAASujC,KAAgBC,SACpGjV,EAAS3jC,KAAKC,MAAM+tK,EAAYqsB,eAAe33B,eAAe,kBAGpE,GAAIhqH,GAAa6wG,IAAYoT,KAAgBM,SAEzC,GAAItrH,YAASkmJ,GAA2B,CACpC,IAAM5nJ,EAAc4nJ,EAAyB5nJ,YAE7C,IADiC0zH,GAA2C1zH,EAAatM,GAGrF,YADAy2J,EAAevC,EAA0B7tC,KAAaiJ,yCAI3D,CAGH,IAFuCukC,EAAiD7zJ,GAIpF,YADAy2J,EAAexC,EAAuB5tC,KAAaiuC,eAIvD,GAAIzmJ,YAAQ29H,aAAmBnwH,KAAeC,aAE1C,YADAk+D,eAIJivB,mEAKazoG,GACrB,YAAqCnuC,IAAjCmuC,EAAOC,wBAAwE,IAAjCD,EAAOC,4DAK/C,IAAAyoC,EASNliE,KAAKigB,MAPL4Y,EAFMqpC,EAENrpC,QACAmzH,EAHM9pF,EAGN8pF,SACAgkC,EAJM9tH,EAIN8tH,6BACA/sB,EALM/gG,EAKN+gG,yBACAktB,EANMjuH,EAMNiuH,8CACAztB,EAPMxgG,EAONwgG,qCACA77H,EARMq7B,EAQNr7B,SAEIo/H,EAAcp/H,EAAdo/H,UAER,OAAKptI,GACAs3J,IACD9oJ,YAAQR,GAaRQ,YAAQR,GACD,KAIPsR,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAACi9J,GAAD,CACI9iB,YAAa48B,EACbzgB,gBAAiBwG,EACjB1G,eAAgBvqH,GAAqBU,6BAEzC0c,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACjBxsG,GAAAllD,EAAA/D,cAACk9J,GAAD,CACInmB,iBAAkB+pD,EAClB9pD,SAAU+8B,IACbjjK,KAAK6vL,iCACN13I,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfsB,iBAAkBlrH,GAAqBoB,mBA9B5Cgc,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACH7O,GAAAllD,EAAA/D,cAACi9J,GAAD,CACI9iB,YAAatuG,GAAqBmB,oBAClCspH,gBAAiBwG,EACjB1G,eAAgBvqH,GAAqBU,6BAEzC0c,GAAAllD,EAAA/D,cAACk9J,GAAD,CACInmB,iBAAkBkqD,EAClBjqD,SAAUw8B,8DA6BO,IAAAnzJ,EAAAvP,KACrB6mC,EAAa7mC,KAAKigB,MAAlB4mB,SAER,OAAO8uG,GAAY,CACf9uG,WACA+uG,eAAgB51I,KAAK41I,eACrBI,kBAAmB,SAACtiJ,GAChB6b,EAAKqyC,SAASopG,GAAiDt3J,EAAM3D,UAEzEomJ,4BAA6B,SAACziJ,GAAY6b,EAAKqyC,SAASopG,GAAkDt3J,EAAM3D,UAChHymJ,sBAAuB,SAACt+D,GAAc,IAC1Bp1D,EAAWvT,EAAK7J,MAAhBod,OACR,OAAO2pI,GAA8Cv0E,EAAWp1D,2CAK/DpvB,GACTA,EAAMkmB,iBADU,IAERitB,EAAa7mC,KAAKigB,MAAlB4mB,SACR7mC,KAAK4hD,SAASopG,GAAsCnkH,GAAW7mC,KAAKsqJ,yEAIhEtqJ,KAAK0F,MAAM49H,eAIftjI,KAAK4hD,SAASopG,IAAuC,GAAOhrJ,KAAK8vL,uEAG7C,IAAAvgD,EACuBvvI,KAAKigB,MAAxC+f,EADYuvG,EACZvvG,QAAS6jI,EADGt0B,EACHs0B,YAAah9H,EADV0oG,EACU1oG,SACtBs3B,EAAan+D,KAAK0F,MAAlBy4D,SACAwjE,EAAyB96F,EAAzB86F,qBACFsd,EAAoBp4G,EAASo4G,mBAAqBlkH,GAAqB0D,+BAE7EuB,EAAQ4jI,0BAA0B,CAC9BzlG,WACA0lG,cACAliC,uBACAsd,uDAIC,IACGvZ,EAAiB1lI,KAAK0F,MAAtBggI,aACA7sG,EAAY74B,KAAKigB,MAAjB4Y,QACR,OACIsf,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2DACXgoD,GAAAllD,EAAA/D,cAAA,WACEw2I,GAAgB7sG,EAAWsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KAC3D/lE,KAAKoqJ,8MAO1BqlC,GAAwBh3I,UAAY,CAChC5f,QAAS6f,KAAUqM,KAAKD,WACxBknG,SAAUtzG,KAAUx3C,KAAK4jD,WACzB++G,YAAanrH,KAAUnsD,OAAOu4D,WAC9BmrI,eAAgBv3I,KAAUx3C,KAAK4jD,WAC/B2oI,sBAAuB/0I,KAAUnsD,QA4BtBktD,oBAzBf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9CujC,8CAA+CzqL,EAAM2/J,WAAW8qB,8CAChEztB,qCAAsCh9J,EAAM2/J,WAAW3C,qCACvD77H,SAAUnhC,EAAM2/J,WAAW1B,4BAC3BqsB,6BAA8BtqL,EAAM2/J,WAAW2qB,6BAC/C/sB,yBAA0Bv9J,EAAM2/J,WAAWpC,yBAC3CwqB,sBAAuB/nL,EAAM2/J,WAAWooB,sBACxCC,yBAA0BhoL,EAAMm1J,mBAAmB6yB,2BAI3D,SAA4BvpL,GACxB,MAAO,CACH67B,QAAS,CACLyjI,gCAAiCr9J,aAAmBm/J,GAAmDphK,GACvGy/J,0BAA2Bx9J,aAAmBm/J,GAA6CphK,GAC3F++J,qBAAsB98J,aAAmBm/J,GAAwCphK,GACjFm/J,6BAA8Bl9J,aAAmBm/J,GAAgDphK,GACjGkrJ,gCAAiCjpJ,aAAmB2nL,GAA2D5pL,MAK5Gs1C,CAGbg2I,qsBCpRIW,eACF,SAAAA,EAAYnwK,GAAO,IAAA3Q,qCAAA8gL,4DAAAC,CAAArwL,MAAA,IAAAmyD,GACf7iD,MAAAghL,GAAAF,GAAA7mM,KAAAyW,KAAMigB,+CAANjgB,SAE6CigB,MAArCysB,EAHOylB,EAGPzlB,iBAAkB4D,EAHX6hB,EAGW7hB,UAHX,OAKfhhC,EAAK5J,yUAAL6qL,CAAA,GACOrmD,GAAarG,2BADpB,CAEIn3F,mBACA4D,cAGJhhC,EAAK06I,eAAiBnxG,KAAMwwB,YAC5B/5D,EAAKsmI,eAAiBqU,GAAoCv9G,GAE1Dp9B,EAAKm8K,qBAAuBn8K,EAAKm8K,qBAAqB3+K,KAA1B0jL,MAAAlhL,KAC5BA,EAAKmhL,6BAA+BnhL,EAAKmhL,6BAA6B3jL,KAAlC0jL,MAAAlhL,KACpCA,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjB0jL,MAAAlhL,KACnBA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlB0jL,MAAAlhL,KACpBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5B0jL,MAAAlhL,KAC9BA,EAAKm7I,0BAA4Bn7I,EAAKm7I,0BAA0B39I,KAA/B0jL,MAAAlhL,KACjCA,EAAKi7I,mBAAqBj7I,EAAKi7I,mBAAmBz9I,KAAxB0jL,MAAAlhL,KAC1BA,EAAK68K,iBAAmB78K,EAAK68K,iBAAiBr/K,KAAtB0jL,MAAAlhL,KAExBA,EAAKm8K,uBAvBUn8K,qPADawpC,+DA2BT,IAAAopB,EACmBliE,KAAKigB,MAAnC+f,EADWkiC,EACXliC,QAAS0M,EADEw1B,EACFx1B,iBAEbrF,YAAQqF,IACR1M,EAAQ6qH,4EAIUlmF,GAAW,IAAAp1D,EAAAvP,KAE7B8qJ,EAKAnmF,EALAmmF,qBACAp+G,EAIAi4B,EAJAj4B,iBACA7T,EAGA8rC,EAHA9rC,QACAohI,EAEAt1F,EAFAs1F,gCACAzX,EACA79E,EADA69E,qBAGJ,IAAK3pH,GAAWohI,EAAiC,KACrC93H,EAAkBuK,EAAlBvK,OAAQz8B,EAAUgnC,EAAVhnC,MAChB1F,KAAK4hD,SAASopG,GAAyCxI,EAAsBrgH,EAAQz8B,KAGpF2hC,YAAQqF,IAAqBrF,YAAQrnC,KAAK41I,kBAC3C51I,KAAK41I,eAAiBqU,GAAoCv9G,IAGzD7T,IACDiyH,EAKCjyH,GACAiyH,GACD9qJ,KAAK4hD,SAASopG,IAAmC,GAC7C,WACIf,GAAgC16I,EAAKy6I,kBAR7ChqJ,KAAK4hD,SAASopG,IAAmC,GAAQhrJ,KAAKyqJ,0EAa/C,IACXzqH,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAaxG,4BAC3B1jG,EAAQm+G,6EAGgB,IAChB8M,EAA0BjrJ,KAAKigB,MAA/BgrI,sBADgBC,EAOpBlrJ,KAAKigB,MAAMysB,iBAJXioC,EAHoBu2E,EAGpBv2E,SACAsqE,EAJoBiM,EAIpBjM,kBACAkM,EALoBD,EAKpBC,oCACAC,EANoBF,EAMpBE,0CAEJH,EAAsBjrJ,KAAK0F,MAAMohC,IAAcs5B,cAC3C,CACIkrF,iBAAkB32E,EAClB42E,YAAatM,EACbuM,6BAA8BL,EAC9BM,mCAAoCL,yCAInC13J,GACTA,EAAMkmB,iBADU,IAER8yB,EAAqB1sC,KAAKigB,MAA1BysB,iBACR1sC,KAAK4hD,SAASopG,GAAsCt+G,GAAmB1sC,KAAKsqJ,yEAI5E,GAAItqJ,KAAK0F,MAAM49H,cAAf,CAA8B,IAClBxgH,EAAW9iB,KAAK0F,MAAhBod,OACRmnI,GAAuCnnI,EAAQ9iB,KAAK41I,qBAIxD51I,KAAK4hD,SAASopG,IAAmC,GAAOhrJ,KAAKuqJ,iEAG5C,IAAA96I,EAAAzP,KACT0sC,EAAqB1sC,KAAKigB,MAA1BysB,iBAEJA,EAAiBpD,WACjBtpC,KAAK4hD,SAAS,CAAEtY,WAAYoD,EAAiBpD,WAAYG,mCAAoCiD,EAAiBjD,oCAAsC,WAChJh6B,EAAK08K,qBAKbnsL,KAAKmsL,8DAGU,IAAA58C,EACuBvvI,KAAKigB,MAAnC+f,EADOuvG,EACPvvG,QAAS0M,EADF6iG,EACE7iG,iBACTsyG,EAAgBtyG,EAAhBsyG,YACFC,EAAoBvyG,EAAiBuyG,mBAAqBlkH,GAAqBwD,wBAErFmO,EAAiBC,SAAW7F,IAAc4pJ,oBAE1CzmC,GAAgCjqJ,KAAK41I,eAAe9uG,IAAcR,cAClEtG,EAAQu/G,gBAAgBv/I,KAAK0F,MAAOu5I,EAAmBD,yCAG7C,IAAAxP,EAONxvI,KAAKigB,MALL+rI,EAFMxc,EAENwc,SACAC,EAHMzc,EAGNyc,iBACAnB,EAJMtb,EAINsb,qBACA9M,EALMxO,EAKNwO,yBACAtxG,EANM8iG,EAMN9iG,iBAGJ,GAAIrF,YAAQqF,GACR,OAAO,KAVD,IAaFw/G,EAAex/G,EAAfw/G,WAER,OAAQ/zG,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAACi9J,GAAD,CACI9iB,YAAa6iB,EAAW7iB,YACxB+b,cAAe8G,EAAW9G,cAC1BE,eAAgB4G,EAAW5G,eAC3BK,oBAAqBuG,EAAWvG,oBAChCC,qBAAsBsG,EAAWtG,qBACjCH,sBAAuBwG,EACvBzG,gBAAiBwG,EACjBlG,6BAA6B,IACjC3tG,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACjBxsG,GAAAllD,EAAA/D,cAACk9J,GAAD,CACIz0B,QAAS33H,KAAKgqJ,eACd/jB,iBAAkB6kB,EAClB5kB,SAAU8X,IACbh+I,KAAKywL,+BACNt4I,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfsB,iBAAkBlrH,GAAqB6C,8BACvCsoH,eAAc,GAAAj7J,OAAK8vC,GAAqBQ,eAA1B,KAAAtwC,OAA4C8vC,GAAqBI,YAC/EqqH,gBAAiBwG,6DAKF,IAAAl8I,EAAA9P,KAAA0sJ,EACW1sJ,KAAKigB,MAAnC+f,EADmB0sH,EACnB1sH,QAAS0M,EADUggH,EACVhgH,iBADU4qB,EAE6Bt3D,KAAK0F,MAArD09H,EAFmB9rE,EAEnB8rE,kBAAmBlhG,EAFAo1B,EAEAp1B,QAASmhG,EAFT/rE,EAES+rE,gBAC5BlhG,EAAkBuK,EAAlBvK,OAAQz8B,EAAUgnC,EAAVhnC,MACV4mL,EAAyB//B,YAAe7/G,GACxC8/G,EAAyBnX,GAAwBi3C,EAAuBxlJ,IAAcphC,OAAQ1F,KAAK0F,MAAMohC,IAAcphC,OpItMzG,QoIiNpB,OATA4mL,EAAuBxlJ,IAAc5E,SAASkH,aAAeppC,KAAK0F,MAAMohC,IAAc5E,SACtFoqJ,EAAuBxlJ,IAAc3E,QAAQiH,aAAeppC,KAAK0F,MAAMohC,IAAc3E,QACrFmqJ,EAAuBxlJ,IAAcphC,OAAO0jC,aAAeojH,EAC3D8/B,EAAuBxlJ,IAAc7E,MAAMmH,aAAeppC,KAAK0F,MAAMohC,IAAc7E,MACnFqqJ,EAAuBxlJ,IAAchF,cAAcsH,aAAeppC,KAAK0F,MAAMohC,IAAchF,cAC3FwqJ,EAAuBxlJ,IAAc/E,cAAcqH,aAAeppC,KAAK0F,MAAMohC,IAAc/E,cAC3FuqJ,EAAuBxlJ,IAAc9E,cAAcoH,aAAeppC,KAAK0F,MAAMohC,IAAc9E,cAC3FsqJ,EAAuBxlJ,IAAcqE,UAAU/B,aAAeppC,KAAK0F,MAAMohC,IAAcqE,UAEhFwqG,GAAY,CACf9uG,SAAUylJ,EACV12C,eAAgB51I,KAAK41I,eACrBG,YAAa,CAAE7uG,gBAAiBhF,GAChC2zG,WAAY,CAAEzS,oBAAmBl5I,MAAOi4C,EAASA,EAAOj4C,MAAQ6wC,GAAqB6E,aACrFk2G,UAAW,CAAEzS,kBAAiBn5I,MAAOwb,EAAQA,EAAMxb,MAAQ6wC,GAAqB6E,aAChF0jC,aAAc,SAAC5vE,GAAYoc,EAAK8xC,SAASopG,GAAmCt3J,EAAM3D,UAClFimJ,kBAAmB,SAACtiJ,GAAYoc,EAAK8xC,SAASopG,GAAiDt3J,EAAM3D,UACrGomJ,4BAA6B,SAACziJ,GAAYoc,EAAK8xC,SAASopG,GAAkDt3J,EAAM3D,UAChHqmJ,iBAAkB,SAAC1iJ,GAAYoc,EAAK8xC,SAASopG,GAAkCt3J,KAC/E2iJ,wBAAyB,SAAC3iJ,GAAYoc,EAAK8xC,SAASopG,GAAyCt3J,KAC7F4iJ,oBAAqB,SAAC5iJ,GAClBoc,EAAK8xC,SAASopG,GAAqCt3J,EAAM3D,OAAQoyC,EAAQz8B,GACrE,WACIs6B,EAAQuwH,+BAGpB/Z,sBAAuB,SAACt+D,GAAc,IAAUp1D,EAAWhT,EAAKpK,MAAhBod,OAAuB,OAAO2pI,GAA8Cv0E,EAAWp1D,uCAItI,IACGqgH,EAAanjI,KAAK0F,MAAlBy9H,SADHy3B,EAEiC56J,KAAKigB,MAAnC4Y,EAFH+hI,EAEG/hI,QAAS6T,EAFZkuH,EAEYluH,iBAEjB,GAAIrF,YAAQqF,GAAmB,OAAO,KAJjC,IAMG6Z,EAAe7Z,EAAf6Z,WACR,OACIpO,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCACXgoD,GAAAllD,EAAA/D,cAACo5D,GAAD,CACI/B,WAAYA,IAEhBpO,GAAAllD,EAAA/D,cAAA,WAASiB,UAAU,uBACbgzI,GAAYtqG,EAAWsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KACvD/lE,KAAKoqJ,+MAQ9BgmC,GAAsB33I,UAAY,CAC9B5f,QAAS6f,KAAUqM,KAAKD,WACxBknG,SAAUtzG,KAAUx3C,KAAK4jD,WACzBmmG,sBAAuBvyG,KAAUx3C,KAAK4jD,WACtCxU,UAAWoI,KAAUj5B,OACrBitB,iBAAkBgM,KAAUnsD,QA0BjBktD,oBAvBf,SAAyB/zC,EAAOykH,GAC5B,MAAO,CACHtxF,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9ClgH,iBAAkBtF,IAAEC,QAAQ8iF,EAASz9E,kBAAoBhnC,EAAMmnJ,aAAangH,iBAAmBy9E,EAASz9E,iBACxGo+G,qBAAsBplJ,EAAMmnJ,aAAa/B,qBACzC9M,yBAA0Bt4I,EAAMmnJ,aAAa7O,yBAC7Cic,gCAAiCv0J,EAAMo1J,sBAAsBb,gCAC7Dc,wBAAyBr1J,EAAMo1J,sBAAsBC,wBACrDvY,qBAAsB98I,EAAMo1J,sBAAsBtY,uBAI1D,SAA4Br+I,GACxB,MAAO,CACH67B,QAAS,CACL6qH,wBAAyBzkJ,aAAmB0mJ,GAAsD3oJ,GAClGo7I,gBAAiBn5I,aAAmB0mJ,GAAqC3oJ,GACzEg6I,uBAAwB/3I,aAAmB0mJ,GAA4C3oJ,GACvFosJ,0BAA2BnqJ,aAAmB80J,GAA8C/2J,MAKzFs1C,CAGb22I,4kBCzQIO,eACF,SAAAA,EAAY1wK,GAAO,IAAA3Q,IAAA,uCAAAqhL,4DAAAC,CAAA5wL,OACfsP,MAAAuhL,GAAAF,GAAApnM,KAAAyW,KAAMigB,+CAANjgB,SACK0F,MAAQwkI,GAAazE,gBAE1Bn2H,EAAKs9K,kBAAoBt9K,EAAKs9K,kBAAkB9/K,KAAvBgkL,MAAAxhL,KACzBA,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjBgkL,MAAAxhL,KACnBA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlBgkL,MAAAxhL,KACpBA,EAAKw9K,iBAAmBx9K,EAAKw9K,iBAAiBhgL,KAAtBgkL,MAAAxhL,KACxBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5BgkL,MAAAxhL,KAC9BA,EAAKy9K,oBAAsBz9K,EAAKy9K,oBAAoBjgL,KAAzBgkL,MAAAxhL,KAC3BA,EAAK29K,mBAAqB39K,EAAK29K,mBAAmBngL,KAAxBgkL,MAAAxhL,KAG1BA,EAAK29K,qBAbU39K,qPADWwpC,6DAiBT,IAAAqZ,EACmBnyD,KAAKigB,MAAjC+f,EADSmyB,EACTnyB,QAASypH,EADAt3F,EACAs3F,eAEbpiH,YAAQoiH,IACRzpH,EAAQojI,gFAIUz+F,GAAW,IAE7BhsC,EAKAgsC,EALAhsC,mBACAC,EAIA+rC,EAJA/rC,sBACAirI,EAGAl/F,EAHAk/F,YACAspB,EAEAxoH,EAFAwoH,sBACAt0J,EACA8rC,EADA9rC,QAGCA,GAAYD,IAAyBD,GACtC34B,KAAK+sL,uBAGJl0J,GAAWD,GAAyBD,GACrCw0J,EAAsBtpB,GAGrBhrI,GAAYF,GACb34B,KAAK4hD,SAASopG,IAAuC,mDAItC,IACXhrH,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAazE,iBAC3BzlG,EAAQkjI,qEAIRljK,KAAK4hD,SAASopG,IAAuC,GAAQ,WACzD,IAAM2iC,EAAoB3oB,aAAmBnwH,KAAe+4I,aACtDjV,EAAY3T,aAAmBnwH,KAAeC,YAE/CzN,YAAQsmJ,GAKTtmJ,YAAQsxI,GACR3lE,eAIJivB,eATIzrF,aAAWm3I,0CAaVj6L,GACTA,EAAMkmB,iBADU,IAER6vI,EAAmBzpJ,KAAKigB,MAAxBwpI,eACRzpJ,KAAK4hD,SAASopG,GAAsCvB,GAAiBzpJ,KAAKsqJ,yEAIrEtqJ,KAAK0F,MAAM49H,eACZtjI,KAAK4hD,SAASopG,IAAuC,GAAOhrJ,KAAK8sL,6DAItD,IAAA5qH,EACqBliE,KAAKigB,MAAjC+f,EADOkiC,EACPliC,QAASypH,EADFvnF,EACEunF,eACTxK,EAAsBwK,EAAtBxK,kBAFO3nF,EAOXt3D,KAAK0F,MAHLw0E,EAJW5iB,EAIX4iB,SACA9Z,EALW9I,EAKX8I,aACAjC,EANW7G,EAMX6G,SAEIwjE,EAAyB8nB,EAAzB9nB,qBAER3hG,EAAQikI,WAAW,CACf/pF,WACA9Z,eACAjC,WACA8gF,oBACAtd,+DAIM,IAAA4N,EAONvvI,KAAKigB,MALLgsI,EAFM1c,EAEN0c,iBACAmT,EAHM7vB,EAGN6vB,WACA3V,EAJMla,EAINka,eACA9wH,EALM42G,EAKN52G,mBACAmqI,EANMvzB,EAMNuzB,eAGJ,OAAIz7H,YAAQoiH,GACD,KAGHtxG,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAACi9J,GAAD,CACI9iB,YAAatuG,GAAqBK,OAClCoqH,gBAAiB4Z,EACjBha,cAAerqH,GAAqBa,mBACpC0pH,eAAgBvqH,GAAqBY,eAEzCwc,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACjBxsG,GAAAllD,EAAA/D,cAACk9J,GAAD,CACInmB,iBAAkBttG,EAClButG,SAAU48B,IACb9iK,KAAK4sL,oBACNz0I,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIpG,iBAAkBlrH,GAAqBK,OACvC49C,SAAUh5E,KAAK2kJ,aACfa,gBAAiByG,EACjB/F,eAAgBnrH,GAAqBc,kEAMjC,IAAAtsB,EAAAvP,KACRypJ,EAAmBzpJ,KAAKigB,MAAxBwpI,eACR,OAAO9T,GAAY,CACf9uG,SAAU4iH,EACV7T,eAAgB51I,KAAK41I,eACrBI,kBAAmB,SAACtiJ,GAAY6b,EAAKqyC,SAASopG,GAAiDt3J,EAAM3D,UACrGymJ,sBAAuB,SAACt+D,GAAc,IAAUp1D,EAAWvT,EAAK7J,MAAhBod,OAAuB,OAAO2pI,GAA8Cv0E,EAAWp1D,uCAItI,IACG+V,EAAY74B,KAAKigB,MAAjB4Y,QACA6sG,EAAiB1lI,KAAK0F,MAAtBggI,aAER,OACIvtF,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2DACXgoD,GAAAllD,EAAA/D,cAAA,WACCw2I,GAAgB7sG,EAAUsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KACzD/lE,KAAKoqJ,8MAO1BumC,GAAoBl4I,UAAY,CAC5B5f,QAAS6f,KAAUqM,KAAKD,WACxBmnG,iBAAkBvzG,KAAUx3C,KAAK4jD,WACjCs6G,WAAY1mH,KAAUx3C,KAAK4jD,WAC3BqoI,sBAAuBz0I,KAAUx3C,KAAK4jD,WACtC2kG,eAAgB/wG,KAAUnsD,QAwBfktD,oBArBf,SAAyB/zC,GACrB,MAAO,CACHmzB,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9CnD,eAAgB/jJ,EAAM2/J,WAAW5b,eACjC9wH,mBAAoBjzB,EAAM2/J,WAAW1sI,mBACrCC,sBAAuBlzB,EAAM2/J,WAAWzsI,sBACxCirI,YAAan+J,EAAM2/J,WAAWxB,YAC9Bf,eAAgBp9J,EAAM2/J,WAAWvC,iBAIzC,SAA4B3+J,GACxB,MAAO,CACH67B,QAAS,CACLojI,4BAA6Bh9J,aAAmBm/J,GAA+CphK,GAC/F8/J,WAAY79J,aAAmBm/J,GAA8BphK,GAC7D++J,qBAAsB98J,aAAmBm/J,GAAwCphK,MAK9Es1C,CAGbk3I,6HCrGaI,OA/GyB,SACpClqJ,EACAu+F,GA0FA,OArDA,SAA+Dv+F,GAAU,IAAAmyH,EAQrE,GANAnyH,EAASC,IAAcs5B,cAAch3B,aAAeg8F,EAAgBt+F,IAAcuF,OAClFxF,EAASC,IAAcV,OAAOgD,aAAeg8F,EAAgBt+F,IAAcV,OAC3ES,EAASC,IAAcrD,WAAW2F,aAAeg8F,EAAgBt+F,IAAcrD,WAC/EoD,EAASC,IAAcpD,UAAU0F,aAAeg8F,EAAgBt+F,IAAcpD,UAC9EmD,EAASC,IAAcmvC,YAAY7sC,aAAeg8F,EAAgBt+F,IAAcmvC,aAE3E7uC,IAAEC,QAAQ+9F,EAAgBt+F,IAAcC,cAAe,CACxDF,EAASC,IAAcC,aAAaqC,aAAe,GAEnD,IAAMnC,EAAkBG,IAAEyqB,UAAUuzE,EAAgBt+F,IAAcC,cAI5DG,EAyClB,SAA4BL,EAAUoyH,EAAkChyH,GAMpE,OAJsBJ,EAASC,IAAc5E,SAAS1zB,QACjDwH,KAAK,SAACksB,GAAD,OAAckF,IAAEC,QAAQnF,EAAQoF,cAClCpF,EAAQqF,OAAS0xH,KAKPpyH,EAASC,IAAc5E,SAAS1zB,QAC7CwH,KAAK,SAACksB,GAAD,OAAckF,IAAEC,QAAQnF,EAAQoF,cAClCL,EAAgBh8B,SAASi3B,EAAQoF,eApDTG,CAAmBZ,EAFFu+F,EAAgBt+F,IAAcE,8BAEgBC,GAEvFJ,EAASC,IAAcC,aAAaqC,aAAalC,gBAAkBA,EAEnEL,EAASC,IAAcC,aAAaqC,aAAa1B,YAAcT,EAAgBh5C,QAAQi5C,EAAgBI,YAAa,SAGpFj8C,IAAhC+5I,EAAgB9+F,cAChBO,EAASC,IAAcR,aAAa8C,aAAe6C,aAAuBm5F,EAAgB9+F,cAG9F,IAAIsB,EAAc,GAClB,IAAKP,YAAQ+9F,EAAgBr/F,WAAY,CACrC,IAAMmzH,EAAe9zB,EAAgBr/F,UAAU/vB,KAAK,SAAC+0B,GAAD,OAAaA,EAAQzhD,OACzEs+C,EAAcP,YAAQ6xH,GAAgB,GAAKA,EAG/CryH,EAASC,IAAchF,cAAcsH,aAAexB,EAAY9F,aAChE+E,EAASC,IAAc/E,cAAcqH,aAAexB,EAAY7F,aAChE8E,EAASC,IAAc9E,cAAcoH,aAAexB,EAAY5F,aAChE6E,EAASC,IAAcqE,UAAU/B,aAAexB,EAAYuD,SAC5DtE,EAASC,IAAc7E,MAAMmH,aAAexB,EAAY3F,KACxD4E,EAASC,IAAc5E,SAASkH,aAAexB,EAAY1F,QAC3D2E,EAASC,IAAc3E,QAAQiH,aAAexB,EAAYzF,OAC1D0E,EAASC,IAAcphC,OAAO0jC,aAAexB,EAAYliC,MAEzD,IAAM8zB,EAAS4rG,EAAgBt+F,IAActN,QAS7C,OARAqN,EAASC,IAAc4kG,eAAetiG,cAAtC4nJ,GAAAh4B,EAAA,GAEKlyH,IAAcklG,cAAgBxyG,EAAOiR,2BAF1CumJ,GAAAh4B,EAGKlyH,IAAcqlG,aAAe3yG,EAAOkR,2BAHzCsuH,GAMAnyH,EAASC,IAAc68F,eAAev6F,aAAe5P,EAAOC,sBAErDoN,EAnFAoqJ,EAIC7lC,EAA2DvkH,EAA3DukH,0CAA2CpM,EAAgBn4G,EAAhBm4G,YAEnDn4G,EAASC,IAAck4G,aAAeA,EACtCn4G,EAASC,IAAcwJ,WAAazJ,EAASC,IAAcwJ,WAC3DzJ,EAASC,IAAcm4G,mBAAqBmM,EAC5CvkH,EAASC,IAAcs5B,cAAgBv5B,EAASC,IAAcs5B,cAC9Dv5B,EAASC,IAAc8sG,qBAAuB/sG,EAASC,IAAc8sG,qBACrE/sG,EAASC,IAAcV,OAASS,EAASC,IAAcV,OACvDS,EAASC,IAAcrD,WAAaoD,EAASC,IAAcrD,WAC3DoD,EAASC,IAAcpD,UAAYmD,EAASC,IAAcpD,UAC1DmD,EAASC,IAAcR,aAAeO,EAASC,IAAcR,aAC7DO,EAASC,IAAc+tG,kBAAoBhuG,EAASC,IAAc+tG,kBAClEhuG,EAASC,IAAc5E,SAAW2E,EAASC,IAAc5E,SACzD2E,EAASC,IAAc3E,QAAU0E,EAASC,IAAc3E,QACxD0E,EAASC,IAAcphC,OAASmhC,EAASC,IAAcphC,OACvDmhC,EAASC,IAAchF,cAAgB+E,EAASC,IAAchF,cAC9D+E,EAASC,IAAc/E,cAAgB8E,EAASC,IAAc/E,cAC9D8E,EAASC,IAAc9E,cAAgB6E,EAASC,IAAc9E,cAC9D6E,EAASC,IAAc7E,MAAQ4E,EAASC,IAAc7E,MACtD4E,EAASC,IAAcqE,UAAYtE,EAASC,IAAcqE,UAC1DtE,EAASC,IAAcC,aAAeF,EAASC,IAAcC,aAC7DF,EAASC,IAAc6tG,yBAA2B9tG,EAASC,IAAc6tG,yBACzE9tG,EAASC,IAAc4kG,eAAiB7kG,EAASC,IAAc4kG,eAC/D7kG,EAASC,IAAc68F,eAAiB98F,EAASC,IAAc68F,eAC/D98F,EAASC,IAAcmvC,YAAcpvC,EAASC,IAAcmvC,YAErDpvC,IAhCX,IAMYukH,EAA2CpM,0gCCSrDkyC,eACF,SAAAA,EAAYjxK,GAAO,IAAAo5I,EAAA/pJ,qCAAA4hL,4DAAAC,CAAAnxL,MAAA,IAAAmyD,GACf7iD,MAAA8hL,GAAAF,GAAA3nM,KAAAyW,KAAMigB,+CAANjgB,SACqCigB,MAA7B4mB,EAFOsrB,EAEPtrB,SAAUyJ,EAFH6hB,EAEG7hB,UAEZ1I,EAAc4xH,GAAiC3yH,EAASf,aAJ/C,OAMfx2B,EAAK5J,MAAL2rL,GAAA,GACOnnD,GAAa1E,2BADpB8rD,GAAAj4B,EAAA,GAEKvyH,IAAc5E,QAAUs3H,GAA6C5xH,EAAad,IAAc5E,UAFrGovJ,GAAAj4B,EAGKvyH,IAAc3E,OAASq3H,GAA6C5xH,EAAad,IAAc3E,SAHpGmvJ,GAAAj4B,EAIKvyH,IAAcphC,MAAQ8zJ,GAA6C5xH,EAAad,IAAcphC,QAJnG4rL,GAAAj4B,EAKKvyH,IAAc7E,KAAOu3H,GAA6C5xH,EAAad,IAAc7E,OALlGqvJ,GAAAj4B,EAMKvyH,IAAchF,aAAe03H,GAA6C5xH,EAAad,IAAchF,eAN1GwvJ,GAAAj4B,EAOKvyH,IAAc/E,aAAey3H,GAA6C5xH,EAAad,IAAc/E,eAP1GuvJ,GAAAj4B,EAQKvyH,IAAc9E,aAAew3H,GAA6C5xH,EAAad,IAAc9E,eAR1GsvJ,GAAAj4B,EASKvyH,IAAcqE,SAAWquH,GAA6C5xH,EAAad,IAAcqE,WATtGmmJ,GAAAj4B,EAAA,YAUI/oH,GAVJghJ,GAAAj4B,EAAA,kBAWmB,GAXnBA,IAcA/pJ,EAAK06I,eAAiBnxG,KAAMwwB,YAC5B/5D,EAAKsmI,eAAiBqU,GAAoCpjH,GAE1Dv3B,EAAKiiL,4BAA8BjiL,EAAKiiL,4BAA4BzkL,KAAjC0kL,MAAAliL,KACnCA,EAAK86I,YAAc96I,EAAK86I,YAAYt9I,KAAjB0kL,MAAAliL,KACnBA,EAAKq1I,aAAer1I,EAAKq1I,aAAa73I,KAAlB0kL,MAAAliL,KACpBA,EAAKg7I,uBAAyBh7I,EAAKg7I,uBAAuBx9I,KAA5B0kL,MAAAliL,KAC9BA,EAAKmiL,wCAA0CniL,EAAKmiL,wCAAwC3kL,KAA7C0kL,MAAAliL,KAC/CA,EAAKoiL,2BAA6BpiL,EAAKoiL,2BAA2B5kL,KAAhC0kL,MAAAliL,KA5BnBA,qPADYwpC,4DAgCX,IAAAopB,EACwBliE,KAAKigB,MAArC+rI,EADQ9pF,EACR8pF,SAAUnlH,EADFq7B,EACEr7B,SAAU7G,EADZkiC,EACYliC,QAExBqH,YAAQR,IACRmlH,IAJY,IAORhN,EAAgBn4G,EAAhBm4G,YACRh/G,EAAQqzH,mBAAmBrU,GAAa,qDAGlBr6E,GAAW,IAAAp1D,EAAAvP,KAE7B6mC,EAOA89B,EAPA99B,SACAmzH,EAMAr1F,EANAq1F,oBACAnhI,EAKA8rC,EALA9rC,QACA2pH,EAIA79E,EAJA69E,qBACAyX,EAGAt1F,EAHAs1F,gCACAC,EAEAv1F,EAFAu1F,kCACA90B,EACAzgE,EADAygE,gBAGG+0B,EAAkBn6J,KAAK0F,MAAvBy0J,eAEP,GAAKthI,IAAWohI,GAAoCD,EAM/CnhI,IACDmhI,GAKCnhI,GACAmhI,GACDh6J,KAAK4hD,SAASopG,IAAmC,GAC7C,WACIf,GAAgC16I,EAAKy6I,kBAI5CnxH,GAAYwO,YAAQ+9F,KACrB80B,GAAsCC,GACtCn6J,KAAKo6J,sBAAsBh1B,IAd3BplI,KAAK4hD,SAASopG,IAAmC,GAAQhrJ,KAAK65J,0CARlE,CAAyE,IAC7D13H,EAAkB0E,EAAlB1E,OAAQz8B,EAAUmhC,EAAVnhC,MAChB1F,KAAK4hD,SAASopG,GAAyCxI,EAAsBrgH,EAAQz8B,mDAwBvE20J,GAAqB,IAC/BxzH,EAAa7mC,KAAKigB,MAAlB4mB,SAEFu+F,EAAkBh+F,IAAEyqB,UAAUwoG,GAE9BC,EAAsB,IAAIy2B,GAAgClqJ,EAAUu+F,GAE1EplI,KAAK4hD,SAASopG,GAAkCsP,IAEhDt6J,KAAK4hD,SACD,SAACgvD,GAAD,OAAAygF,GAAA,GACOzgF,EADP,CAEI0pD,sBACAH,gBAAe,qDAKJ,IACXn6H,EAAYhgC,KAAKigB,MAAjB+f,QACRhgC,KAAK4hD,SAASsoF,GAAa/E,yBAC3BnlG,EAAQovH,iGAIYpvJ,KAAKigB,MAAjB+f,QACAiuJ,qDAGCv6L,GACTA,EAAMkmB,iBADU,IAERitB,EAAa7mC,KAAKigB,MAAlB4mB,SACR7mC,KAAK4hD,SAASopG,GAAsCnkH,GAAW7mC,KAAKsqJ,yEAIpE,GAAItqJ,KAAK0F,MAAM49H,cAAf,CAA8B,IAClBxgH,EAAW9iB,KAAK0F,MAAhBod,OACRmnI,GAAuCnnI,EAAQ9iB,KAAK41I,qBAIxD51I,KAAK4hD,SAASopG,IAAmC,GAAOhrJ,KAAK0xL,iFAGpC,IAAAniD,EACsBvvI,KAAKigB,MAA5C+f,EADiBuvG,EACjBvvG,QAAS6G,EADQ0oG,EACR1oG,SAAUu+F,EADFmK,EACEnK,gBACnB4Z,EAAgBn4G,EAAhBm4G,YAERiL,GAAgCjqJ,KAAK41I,eAAe9uG,IAAcV,QAClEpG,EAAQiwH,+BAA+BjwJ,KAAK0F,MAAO0/H,EAAiB4Z,GrE6IxE7kH,IAAK+T,0BAAyB,GACzBpU,KAAK,WACGwT,KAAuBoiC,MAAyBpiC,KAAuBoiC,KAAwB,2CqE3I9F,IAAA8/D,EAMNxvI,KAAKigB,MAJL+5I,EAFMxqB,EAENwqB,oBACAlL,EAHMtf,EAGNsf,uBACA6L,EAJMnrB,EAINmrB,wBACA9zH,EALM2oG,EAKN3oG,SAGJ,GAAIQ,YAAQR,GACR,OAAO,KAGX,IAAMw/F,EAAoBj/F,IAAEC,QAAQynH,GAA0B6L,EAA0B7L,EAExF,OAAQ32G,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACJ7O,GAAAllD,EAAA/D,cAAA,QAAM8pF,SAAUh5E,KAAK2kJ,cACjBxsG,GAAAllD,EAAA/D,cAACk9J,GAAD,CACIz0B,QAAS33H,KAAKgqJ,eACd/jB,iBAAkB+zB,EAClB9zB,SAAUG,IACbrmI,KAAKuxL,8BACNp5I,GAAAllD,EAAA/D,cAACm9J,GAAD,CACIrzE,SAAUh5E,KAAK2kJ,aACfsB,iBAAkBlrH,GAAqB8C,4FAMzB,IAAApuB,EAAAzP,KAAA0sJ,EACI1sJ,KAAKigB,MAAlB4mB,GADS6lH,EAClB1sH,QADkB0sH,EACT7lH,UADSywB,EAE8Bt3D,KAAK0F,MAArD09H,EAFkB9rE,EAElB8rE,kBAAmBlhG,EAFDo1B,EAECp1B,QAASmhG,EAFV/rE,EAEU+rE,gBAC5BlhG,EAAkB0E,EAAlB1E,OAAQz8B,EAAUmhC,EAAVnhC,MACV4mJ,EAAiBC,YAAe1lH,GAChC2lH,EAAyBnX,GAAwBiX,EAAexlH,IAAcphC,OAAQ1F,KAAK0F,MAAMohC,IAAcphC,OvInMjG,QuI8MpB,OATA4mJ,EAAexlH,IAAc5E,SAASkH,aAAeppC,KAAK0F,MAAMohC,IAAc5E,SAC9EoqH,EAAexlH,IAAc3E,QAAQiH,aAAeppC,KAAK0F,MAAMohC,IAAc3E,QAC7EmqH,EAAexlH,IAAcphC,OAAO0jC,aAAeojH,EACnDF,EAAexlH,IAAc7E,MAAMmH,aAAeppC,KAAK0F,MAAMohC,IAAc7E,MAC3EqqH,EAAexlH,IAAchF,cAAcsH,aAAeppC,KAAK0F,MAAMohC,IAAchF,cACnFwqH,EAAexlH,IAAc/E,cAAcqH,aAAeppC,KAAK0F,MAAMohC,IAAc/E,cACnFuqH,EAAexlH,IAAc9E,cAAcoH,aAAeppC,KAAK0F,MAAMohC,IAAc9E,cACnFsqH,EAAexlH,IAAcqE,UAAU/B,aAAeppC,KAAK0F,MAAMohC,IAAcqE,UAExEwqG,GAAY,CACf9uG,SAAUylH,EACV1W,eAAgB51I,KAAK41I,eACrBG,YAAa,CAAE7uG,gBAAiBhF,GAChC2zG,WAAY,CAAEzS,oBAAmBl5I,MAAOi4C,EAASA,EAAOj4C,MAAQ6wC,GAAqB6E,aACrFk2G,UAAW,CAAEzS,kBAAiBn5I,MAAOwb,EAAQA,EAAMxb,MAAQ6wC,GAAqB6E,aAChF0jC,aAAc,SAAC5vE,GAAY+b,EAAKmyC,SAASopG,GAAmCt3J,EAAM3D,QAAS0f,EAAK40I,iBAChGrO,kBAAmB,SAACtiJ,GAAY+b,EAAKmyC,SAASopG,GAAiDt3J,EAAM3D,QAAS0f,EAAK40I,iBACnHjO,iBAAkB,SAAC1iJ,GAAY+b,EAAKmyC,SAASopG,GAAkCt3J,GAAQ+b,EAAK40I,iBAC5FhO,wBAAyB,SAAC3iJ,GAAY+b,EAAKmyC,SAASopG,GAAyCt3J,GAAQ+b,EAAK40I,iBAC1GstC,uBAAwB,SAACj+L,GAAY+b,EAAKmyC,SrGjEhB,SAACluD,GAAD,OAAW,SAACgS,GAAU,IAChDod,EAAWpd,EAAXod,OACFk/H,EAAmB1iF,GAAmB5rE,EAAMuiF,YAElD,OAAAyrE,GAAA,GACOh8I,EADP,CAEIuwE,WAAYviF,EAAMuiF,WAClBnzD,OAAQ4+H,GAAA,GACD5+H,EADD,CAEFmzD,WAAY+rE,OqGwDuCgJ,CAAwCt3J,GAAQ+b,EAAK40I,iBACxG/N,oBAAqB,SAAC5iJ,GAClB+b,EAAKmyC,SAASopG,GAAqCt3J,EAAM3D,OAAQoyC,EAAQz8B,KAE7E8wI,sBAAuB,SAACt+D,GAAc,IAC1Bp1D,EAAWrT,EAAK/J,MAAhBod,OACR,OAAO2pI,GAA8Cv0E,EAAWp1D,uCAKnE,IACGqgH,EAAanjI,KAAK0F,MAAlBy9H,SADHy3B,EAEyB56J,KAAKigB,MAA3B4Y,EAFH+hI,EAEG/hI,QACA0tB,EAHHq0G,EAEY/zH,SACT0f,WACR,OACIpO,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sCACXgoD,GAAAllD,EAAA/D,cAACo5D,GAAD,CACI/B,WAAYA,IAChBpO,GAAAllD,EAAA/D,cAAA,WAASiB,UAAU,uBACbgzI,GAAYtqG,EAAWsf,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KACvD/lE,KAAKoqJ,+MAQ9B8mC,GAAqBz4I,UAAY,CAC7B5f,QAAS6f,KAAUqM,KAAKD,WACxBknG,SAAUtzG,KAAUx3C,KAAK4jD,WACzBxU,UAAWoI,KAAUj5B,OACrBonB,SAAU6R,KAAUnsD,QA4BTktD,oBAzBf,SAAyB/zC,EAAOykH,GAC5B,MAAO,CACHtxF,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9C/lH,SAAUO,IAAEC,QAAQ8iF,EAAStjF,UAAYnhC,EAAMmnJ,aAAahmH,SAAWsjF,EAAStjF,SAChFmzH,oBAAqBt0J,EAAMm1J,mBAAmBb,oBAC9ClL,uBAAwBppJ,EAAMm1J,mBAAmB/L,uBACjDmL,gCAAiCv0J,EAAMo1J,sBAAsBb,gCAC7Dc,wBAAyBr1J,EAAMo1J,sBAAsBC,wBACrDvY,qBAAsB98I,EAAMo1J,sBAAsBtY,qBAClDpd,gBAAiB1/H,EAAMs1J,YAAY51B,gBACnC80B,kCAAmCx0J,EAAMs1J,YAAYd,oCAI7D,SAA4B/1J,GACxB,MAAO,CACH67B,QAAS,CACLiwH,+BAAgC7pJ,aAAmB60J,GAAsD92J,GACzGirJ,6BAA8BhpJ,aAAmB60J,GAAoD92J,GACrGosJ,0BAA2BnqJ,aAAmB80J,GAA8C/2J,GAC5FkvJ,mBAAoBjtJ,aAAmB+0J,GAAuCh3J,MAK3Es1C,CAGby3I,uZCzOF,SAASU,KAA6D,IAAtC/qJ,EAAsCj4C,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAA3B,GAAIijM,EAAuBjjM,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,IAAAA,UAAA,GAC1DguK,GAAoBp1H,YAASX,IAA+B,IAAlBgrJ,EAAyB,CAAEj1B,iBAAiB,GAAU/1H,EAAY,CAAE+1H,iBAAiB,IAA/HA,gBAEFC,EAAc5tK,SAASkc,cAAc,iBAEtC6nC,YAAkB6pH,IACnBv9B,YAAeu9B,EAAa,YAAaD,GAIjD,SAAS4C,GAATlmJ,GAAuD,IAA3BgmJ,EAA2BhmJ,EAA3BgmJ,kBAAmBjvJ,EAAQiJ,EAARjJ,KAC3C,OAAQ8nC,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBAAiB6B,MAAO,CAAEo7B,QAAS/c,EAAO,GAAK,SAE9DivJ,EAAkBp4J,IAAI,SAAC07C,GACnB,OAAOzK,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,CAAUtyD,IAAK0yC,IAAEue,YAAYxN,GAAAllD,EAAA/D,cAAA,SAAI0zD,GAAYzK,GAAAllD,EAAA/D,cAAA,eAMpE,SAAS4iM,GAAqB7xK,GAAO,IACzB4mB,EAAsB5mB,EAAtB4mB,SAAU7G,EAAY/f,EAAZ+f,QADe+xJ,EAAAC,GAGW5lG,qBAAS,GAHpB,GAG1BuzE,EAH0BoyB,EAAA,GAGVnyB,EAHUmyB,EAAA,GAAAE,EAAAD,GAImB5lG,qBAAS,GAJ5B,GAI1B/Q,EAJ0B42G,EAAA,GAINnyB,EAJMmyB,EAAA,GAMzBC,EAA2DrrJ,EAA3DqrJ,iBAAkBz2G,EAAyC50C,EAAzC40C,eAAgB02G,EAAyBtrJ,EAAzBsrJ,qBAEpC7yB,EAAoBr5G,aAAiBksI,GACrClyB,EAA2Bh6G,aAAiBw1B,GAelD,OAAQtjC,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KAEAs4G,EAAkB7xK,OAAS,EACvB0qD,GAAAllD,EAAA/D,cAACkjM,GAAD,CAAkB/hL,MAAOgrE,EAAoBikF,kBAAmBA,IAChE,KAERnnH,GAAAllD,EAAA/D,cAAA,OACIiB,UAAW,+CAAgD6B,MAAO,CAAEo7B,QAASiuD,EAAqB,OAAS,KAC3GljC,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,8BACTk9I,aACG6kD,EAAiBjlD,OAAO/iJ,MACxBgoM,EAAiBjlD,OAAO91E,KAAK13D,MAAM,OAG3C04C,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,eACbgoD,GAAAllD,EAAA/D,cAAA,SACIb,KAAK,WACL8B,UAAU,0CACV1G,KAAM,mBACNuE,GAAI,mBACJs/I,gBAAgB,EAChBp9G,SAzBa,SAACx8B,GAC1BksK,GAAmBlsK,EAAM3D,OAAO+nD,YAyBtBK,GAAAllD,EAAA/D,cAAA,UAAQ23C,EAASwrJ,2BAG3Bl6I,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gBACX6B,MAAO,CAAEo7B,QAASuyI,GAAkBtkF,EAAqB,OAAS,SAClEljC,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,oCACV9B,KAAK,SACLk6D,uBAAqB,gBACrBjQ,QA5CgB,SAAC5kD,GACzBA,EAAMkmB,iBAENomB,EAAQsyJ,0CAA0CzrJ,EAAStM,aAAa,EAAM,MAAMT,KAAK,WACrF83J,GAAuB/qJ,GAAU,GACjCi5H,GAAsB,OAyClB3nH,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uCACZgoD,GAAAllD,EAAA/D,cAAA,YAAO23C,EAAS0rJ,kBAChBp6I,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,2BACV0B,MAAM,KACN8gC,OAAO,KACPiyB,UAAU,SAEVzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,0BAK/B1M,GAAAllD,EAAA/D,cAACkjM,GAAD,CAAkB/hL,KAAMgrE,EAAoBikF,kBAAmBW,KAIvE,SAASuyB,GAA0CvyK,GAAO,IAC9C4mB,EAAsB5mB,EAAtB4mB,SAAU7G,EAAY/f,EAAZ+f,QADoCyyJ,EAAAT,GAGV5lG,qBAAS,GAHC,GAG/CuzE,EAH+C8yB,EAAA,GAG/B7yB,EAH+B6yB,EAAA,GAAAC,EAAAV,GAIF5lG,qBAAS,GAJP,GAI/C/Q,EAJ+Cq3G,EAAA,GAI3B5yB,EAJ2B4yB,EAAA,GAM9CC,EAA+E9rJ,EAA/E8rJ,mCAAoCC,EAA2C/rJ,EAA3C+rJ,uBAAwBn3G,EAAmB50C,EAAnB40C,eAE9D6jF,EAAoBr5G,aAAiB2sI,GACrC3yB,EAA2Bh6G,aAAiBw1B,GAelD,OAAQtjC,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KAEAs4G,EAAkB7xK,OAAS,EACvB0qD,GAAAllD,EAAA/D,cAACkjM,GAAD,CAAkB/hL,MAAOgrE,EAAoBikF,kBAAmBA,IAChE,KAERnnH,GAAAllD,EAAA/D,cAAA,OACIiB,UAAW,+CAAgD6B,MAAO,CAAEo7B,QAASiuD,EAAqB,OAAS,KAC3GljC,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,8BACTk9I,aACGslD,EAAmC1lD,OAAO/iJ,MAC1CyoM,EAAmC1lD,OAAO91E,KAAK13D,MAAM,OAG7D04C,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,eACbgoD,GAAAllD,EAAA/D,cAAA,SACIb,KAAK,WACL8B,UAAU,0CACV1G,KAAM,mBACNuE,GAAI,mBACJs/I,gBAAgB,EAChBp9G,SAzBe,SAACx8B,GAC5BksK,GAAmBlsK,EAAM3D,OAAO+nD,YAyBtBK,GAAAllD,EAAA/D,cAAA,UAAQyjM,EAAmCzoM,QAGrDiuD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gBACX6B,MAAO,CAAEo7B,QAASuyI,GAAkBtkF,EAAqB,OAAS,SAClEljC,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,oCACV9B,KAAK,SACLk6D,uBAAqB,gBACrBjQ,QA5CiB,SAAC5kD,GAC1BA,EAAMkmB,iBAENomB,EAAQsyJ,0CAA0CzrJ,EAAStM,aAAa,GAAM,GAAMT,KAAK,WACrF83J,GAAuB/qJ,GAAU,GACjCi5H,GAAsB,OAyClB3nH,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uCACZgoD,GAAAllD,EAAA/D,cAAA,YAAO23C,EAAS0rJ,kBAChBp6I,GAAAllD,EAAA/D,cAAA,OACIiB,UAAU,2BACV0B,MAAM,KACN8gC,OAAO,KACPiyB,UAAU,SAEVzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,0BAK/B1M,GAAAllD,EAAA/D,cAACkjM,GAAD,CAAkB/hL,KAAMgrE,EAAoBikF,kBAAmBW,KAmBxDxmH,uBAff,SAAyB/zC,EAAOykH,GAC5B,MAAO,CACHtxF,QAASnzB,EAAMinJ,UAAUC,mBAAqB,EAC9C/lH,SAAUW,YAAS2iF,EAAStjF,UAAYsjF,EAAStjF,SAAWnhC,EAAM2/J,WAAWooB,wBAIrF,SAA4BtpL,GACxB,MAAO,CACH67B,QAAS,CACLsyJ,0CAA2ClsL,aAAmB60J,GAA8D92J,MAKzHs1C,CA7Nf,SAAA/0C,GAIG,IAHCs7B,EAGDt7B,EAHCs7B,QACA6G,EAEDniC,EAFCmiC,SACAhO,EACDn0B,EADCm0B,QACDszD,EAAA6lG,GACsD5lG,qBAAS,GAD/D,GACQymG,EADR1mG,EAAA,GAC6B2mG,EAD7B3mG,EAAA,GAAA4/C,EAAAimD,GAEuC5lG,qBAAS,GAFhD,GAEQg+D,EAFRre,EAAA,GAEqBq0B,EAFrBr0B,EAAA,GAAAG,EAAA8lD,GAGgE5lG,qBAAS,GAHzE,GAGQ2mG,EAHR7mD,EAAA,GAGkC8mD,EAHlC9mD,EAAA,GAAA2zB,EAAAmyB,GAI+C5lG,qBAAS,GAJxD,GAIQ3+C,EAJRoyH,EAAA,GAIyBM,EAJzBN,EAAA,GAiBC,OAXA+xB,GAAuB/qJ,GAEvB0lD,qBAAU,WACNpyD,IAAK+T,2BAA2BpU,KAAK,SAACqU,GAClCgyH,EAAmBhyH,EAAKG,WAAW,qBAAqBrjC,SAASujC,KAAgBC,UACjFqkJ,EAAsBj9L,KAAKC,MAAMq4C,EAAKG,WAAW,kBAAkB7U,uBACnEu5J,EAA2Bn9L,KAAKC,MAAMq4C,EAAKG,WAAW,kBAAkBzG,4BACxEu4H,GAAe,KAChBpmI,MAAM,SAACu6C,GAAUxpF,QAAQC,IAAIupF,OAIhCp8B,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,cACV0oC,IAAYuxH,EAAcjyG,GAAAllD,EAAA/D,cAAC62E,GAAD,UAA+B,KAC1D5tB,GAAAllD,EAAA/D,cAAA,WAASiB,UAAU,uBACdi6J,EAAcjyG,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KAEPvZ,IAAoBslJ,EAChB56I,GAAAllD,EAAA/D,cAACsjM,GAAD,CAA2C3rJ,SAAUA,EAAU7G,QAASA,KACvE6yJ,GACD16I,GAAAllD,EAAA/D,cAAC4iM,GAAD,CAAsBjrJ,SAAUA,EAAU7G,QAASA,KAEjD,kIClBvB,IAAMizJ,IAAgBC,GAAAC,GAAA,GACxBtzC,KAAagJ,gBAAkB,SAAAnkJ,GAOV,IANlBmiC,EAMkBniC,EANlBmiC,SACAyJ,EAKkB5rC,EALlB4rC,UACAm6G,EAIkB/lJ,EAJlB+lJ,0BACA2oC,EAGkB1uL,EAHlB0uL,aACAC,EAEkB3uL,EAFlB2uL,qBACAxoC,EACkBnmJ,EADlBmmJ,wBACAF,EAAkBjmJ,EAAlBimJ,YACA,OAAOxyG,GAAAllD,EAAA/D,cAACokM,GAAD,CACH5mJ,iBAAkB7F,EAClByJ,UAAWA,EACX26G,sBAAuBR,EACvBuB,SAAUonC,EACVnnC,iBAAkBonC,EAClBxoC,wBAAyBA,EACzBF,YAAaA,MAhBIuoC,GAAAC,GAkBxBtzC,KAAaI,gBAAkB,SAAA38I,GAKD,IAJ3BujC,EAI2BvjC,EAJ3BujC,SACAyJ,EAG2BhtC,EAH3BgtC,UACAm6G,EAE2BnnJ,EAF3BmnJ,0BACA2oC,EAC2B9vL,EAD3B8vL,aACAC,EAA2B/vL,EAA3B+vL,qBACA,OAAOl7I,GAAAllD,EAAA/D,cAACqkM,GAAD,CACH1sJ,SAAUA,EACVyJ,UAAWA,EACX26G,sBAAuBR,EACvBuB,SAAUonC,EACVnnC,iBAAkBonC,MA7BDH,GAAAC,GA+BxBtzC,KAAaC,kBAAoB,SAAAxmI,GAKH,IAJ3ButB,EAI2BvtB,EAJ3ButB,SACAyJ,EAG2Bh3B,EAH3Bg3B,UACAm6G,EAE2BnxI,EAF3BmxI,0BACA2oC,EAC2B95K,EAD3B85K,aACAC,EAA2B/5K,EAA3B+5K,qBACA,OAAOl7I,GAAAllD,EAAA/D,cAACskM,GAAD,CACH9mJ,iBAAkB7F,EAClByJ,UAAWA,EACX26G,sBAAuBR,EACvBuB,SAAUonC,EACVnnC,iBAAkBonC,MA1CDH,GAAAC,GA4CxBtzC,KAAa4zC,kBAAoB,SAAAh6K,GAKH,IAJ3BotB,EAI2BptB,EAJ3BotB,SACAyJ,EAG2B72B,EAH3B62B,UACAojJ,EAE2Bj6K,EAF3Bi6K,+BACAC,EAC2Bl6K,EAD3Bk6K,sBACAN,EAA2B55K,EAA3B45K,qBACA,OAAOl7I,GAAAllD,EAAA/D,cAAC0kM,GAAD,CACHlnJ,iBAAkB7F,EAClByJ,UAAWA,EACX26G,sBAAuByoC,EACvB1nC,SAAU2nC,EACV1nC,iBAAkBonC,MAvDDH,GAAAC,GAyDxBtzC,KAAamJ,0BAA4B,SAAAlvI,GAA2C,IAAxC+sB,EAAwC/sB,EAAxC+sB,SAAUyJ,EAA8Bx2B,EAA9Bw2B,UAAW8iJ,EAAmBt5K,EAAnBs5K,aAC9D,OAAOj7I,GAAAllD,EAAA/D,cAAC2kM,GAAD,CACHhtJ,SAAUA,EACVyJ,UAAWA,EACX07G,SAAUonC,MA7DOF,GAAAC,GAgExBtzC,KAAaiJ,mCAAqC,SAAA/uI,GAAgC,IAA7B8sB,EAA6B9sB,EAA7B8sB,SAAUusJ,EAAmBr5K,EAAnBq5K,aAC5D,OAAOj7I,GAAAllD,EAAA/D,cAAC4kM,GAAD,CACH9nC,SAAUonC,EACVvsJ,SAAUA,EACV8jH,YAAa9K,KAAaiJ,uCApEToqC,GAAAC,GAuExBtzC,KAAakJ,qCAAuC,SAAAvuI,GAAgC,IAA7BqsB,EAA6BrsB,EAA7BqsB,SAAUusJ,EAAmB54K,EAAnB44K,aAC9D,OAAOj7I,GAAAllD,EAAA/D,cAAC4kM,GAAD,CACHjtJ,SAAUA,EACVmlH,SAAUonC,EACVzoC,YAAa9K,KAAakJ,yCA3ETmqC,GAAAC,GA8ExBtzC,KAAaoJ,OAAS,SAAAhuI,GAMjB,IALF4rB,EAKE5rB,EALF4rB,SACAwsJ,EAIEp4K,EAJFo4K,qBACAU,EAGE94K,EAHF84K,eACAnwB,EAEE3oJ,EAFF2oJ,0BACAowB,EACE/4K,EADF+4K,mBAEA,OAAO77I,GAAAllD,EAAA/D,cAAC+kM,GAAD,CACHxqC,eAAgB5iH,EAChBolH,iBAAkBonC,EAClBj0B,WAAY20B,EACZ5G,sBAAuBvpB,EACvB4pB,gBAAiBwG,MA1FAd,GAAAC,GA4FxBtzC,KAAa8wC,oBAAsB,SAAAz1K,GAK9B,IAJF2rB,EAIE3rB,EAJF2rB,SACAwsJ,EAGEn4K,EAHFm4K,qBACAU,EAEE74K,EAFF64K,eACAnwB,EACE1oJ,EADF0oJ,0BAEA,OAAOzrH,GAAAllD,EAAA/D,cAACglM,GAAD,CACHzqC,eAAgB5iH,EAChBolH,iBAAkBonC,EAClBj0B,WAAY20B,EACZ5G,sBAAuBvpB,MAtGNsvB,GAAAC,GAwGxBtzC,KAAaiuC,cAAgB,SAAAzyK,GAGxB,IAFFwrB,EAEExrB,EAFFwrB,SACAyJ,EACEj1B,EADFi1B,UAEA,OAAO6H,GAAAllD,EAAA/D,cAACilM,GAAD,CACHttJ,SAAUA,EACVyJ,UAAWA,MA9GM4iJ,GAAAC,GAiHxBtzC,KAAau0C,oBAAsB,SAAA14K,GAAuD,IAApDmoJ,EAAoDnoJ,EAApDmoJ,YAAauvB,EAAuC13K,EAAvC03K,aAAcY,EAAyBt4K,EAAzBs4K,mBAC9D,OAAO77I,GAAAllD,EAAA/D,cAACmlM,GAAD,CACHxwB,YAAaA,EACb7X,SAAUonC,EACVnD,eAAgB+D,MArHCd,GAAAC,GAwHxBtzC,KAAay0C,eAAiB,SAAAt4K,GAAgC,IAA7B6qB,EAA6B7qB,EAA7B6qB,SAAUusJ,EAAmBp3K,EAAnBo3K,aACxC,OAAOj7I,GAAAllD,EAAA/D,cAACqlM,GAAD,CACH5zB,uBAAwB95H,EACxBmlH,SAAUonC,MA3HOF,GAAAC,GA6HxBtzC,KAAa20C,qBAAuB,SAAA53K,GAAsC,IAAnCiqB,EAAmCjqB,EAAnCiqB,SAAU4tJ,EAAyB73K,EAAzB63K,mBAC9C,OAAOt8I,GAAAllD,EAAA/D,cAACqlM,GAAD,CACH5zB,uBAAwB95H,EACxBmlH,SAAUyoC,MAhIOvB,GAAAC,GAkIxBtzC,KAAa60C,cAAgB,SAAAl3K,GAAkB,IAAfqpB,EAAerpB,EAAfqpB,SAC7B,OAAOsR,GAAAllD,EAAA/D,cAACylM,GAAD,CACH5yB,sBAAuBl7H,MApINqsJ,GAAAC,GAsIxBtzC,KAAa+0C,YAAc,SAAAC,GAAkB,IAAfhuJ,EAAeguJ,EAAfhuJ,SAC3B,OAAOsR,GAAAllD,EAAA/D,cAAC85K,GAAD,CACHxC,oBAAqB3/H,MAxIJqsJ,GAAAC,GA0IxBtzC,KAAai1C,uBAAyB,SAAAC,GAWJ,IAV/B30H,EAU+B20H,EAV/B30H,aACA9vB,EAS+BykJ,EAT/BzkJ,UACA66G,EAQ+B4pC,EAR/B5pC,oCACAlM,EAO+B81C,EAP/B91C,kBACAmM,EAM+B2pC,EAN/B3pC,0CACA9kG,EAK+ByuI,EAL/BzuI,cACA2mG,EAI+B8nC,EAJ/B9nC,iBACAmmC,EAG+B2B,EAH/B3B,aACAqB,EAE+BM,EAF/BN,mBACA9tI,EAC+BouI,EAD/BpuI,yBACA0kG,EAA+B0pC,EAA/B1pC,0BACA,OAAOlzG,GAAAllD,EAAA/D,cAAC8lM,GAAD,CACP50H,aAAcA,EACd9vB,UAAWA,EACX28G,iBAAkBA,EAClB9B,oCAAqCA,EACrClM,kBAAmBA,EACnBmM,0CAA2CA,EAC3C9kG,cAAeA,EACf0lG,SAAUonC,EACVpmC,eAAgBynC,EAChB9tI,yBAA0BA,EAC1B0kG,0BAA2BA,MAjKN6nC,GAAAC,GAmKxBtzC,KAAao1C,yBAA2B,SAAAC,GAQN,IAP/B90H,EAO+B80H,EAP/B90H,aACA9vB,EAM+B4kJ,EAN/B5kJ,UACA66G,EAK+B+pC,EAL/B/pC,oCACAlM,EAI+Bi2C,EAJ/Bj2C,kBACAmM,EAG+B8pC,EAH/B9pC,0CACA9kG,EAE+B4uI,EAF/B5uI,cACAqtI,EAC+BuB,EAD/BvB,sBACAhtI,EAA+BuuI,EAA/BvuI,yBACA,OAAOxO,GAAAllD,EAAA/D,cAAC8lM,GAAD,CACH50H,aAAcA,EACd9vB,UAAWA,EACX66G,oCAAqCA,EACrClM,kBAAmBA,EACnBmM,0CAA2CA,EAC3C9kG,cAAeA,EACf0lG,SAAU2nC,EACVhtI,yBAA0BA,MApLTusI,GAAAC,GAsLxBtzC,KAAas1C,YAAc,SAAAC,GAAkB,IAAfvuJ,EAAeuuJ,EAAfvuJ,SAC3B,OAAOsR,GAAAllD,EAAA/D,cAACmmM,GAAD,CACH/mB,gBAAiBznI,MAxLAqsJ,GAAAC,GA0LxBtzC,KAAasJ,mBAAqB,SAAAmsC,GAKb,IAJlBzuJ,EAIkByuJ,EAJlBzuJ,SACAyJ,EAGkBglJ,EAHlBhlJ,UACAm6G,EAEkB6qC,EAFlB7qC,0BACAgqC,EACkBa,EADlBb,mBACA9pC,EAAkB2qC,EAAlB3qC,YACA,OAAOxyG,GAAAllD,EAAA/D,cAACqmM,GAAD,CACH7oJ,iBAAkB7F,EAClByJ,UAAWA,EACX26G,sBAAuBR,EACvBuB,SAAUyoC,EACV9pC,YAAaA,MArMIuoC,GAAAC,GAwMxBtzC,KAAauJ,mBAAqB,SAAAosC,GAMb,IALlB3uJ,EAKkB2uJ,EALlB3uJ,SACAyJ,EAIkBklJ,EAJlBllJ,UACAm6G,EAGkB+qC,EAHlB/qC,0BACAgqC,EAEkBe,EAFlBf,mBACA5pC,EACkB2qC,EADlB3qC,wBACAF,EAAkB6qC,EAAlB7qC,YACA,OAAOxyG,GAAAllD,EAAA/D,cAACokM,GAAD,CACH5mJ,iBAAkB7F,EAClByJ,UAAWA,EACX26G,sBAAuBR,EACvBuB,SAAUyoC,EACV5pC,wBAAyBA,EACzBF,YAAaA,MArNIuoC,GAAAC,GAwNxBtzC,KAAamJ,0BAA4B,SAAAysC,GAAgC,IAA7B5uJ,EAA6B4uJ,EAA7B5uJ,SAAUusJ,EAAmBqC,EAAnBrC,aACnD,OAAOj7I,GAAAllD,EAAA/D,cAAC2kM,GAAD,CACHhtJ,SAAUA,EACVmlH,SAAUonC,MA3NOF,GAAAC,GA8NxBtzC,KAAawJ,kBAAoB,SAAAqsC,GAKG,IAJjC7uJ,EAIiC6uJ,EAJjC7uJ,SACAyJ,EAGiColJ,EAHjCplJ,UACA8iJ,EAEiCsC,EAFjCtC,aACA54B,EACiCk7B,EADjCl7B,2BACAC,EAAiCi7B,EAAjCj7B,2BACA,OAAOtiH,GAAAllD,EAAA/D,cAACymM,GAAD,CACH9uJ,SAAUA,EACVyJ,UAAWA,EACX07G,SAAUonC,EACV54B,2BAA4BA,EAC5BC,2BAA4BA,MAzOXy4B,GAAAC,GA2OxBtzC,KAAa6b,gBAAkB,SAAAk6B,GAKT,IAJnB/uJ,EAImB+uJ,EAJnB/uJ,SACAyJ,EAGmBslJ,EAHnBtlJ,UACAmqH,EAEmBm7B,EAFnBn7B,2BACAa,EACmBs6B,EADnBt6B,OACAyB,EAAmB64B,EAAnB74B,aACA,OAAO5kH,GAAAllD,EAAA/D,cAAC2mM,GAAD,CACHhvJ,SAAUA,EACVyJ,UAAWA,EACXmqH,2BAA4BA,EAC5Ba,OAAQA,EACRyB,aAAcA,MAtPGm2B,GAAAC,GAwPxBtzC,KAAaqxC,qBAAuB,SAAA4E,GAGd,IAFnBjvJ,EAEmBivJ,EAFnBjvJ,SACAyJ,EACmBwlJ,EADnBxlJ,UACA8iJ,EAAmB0C,EAAnB1C,aACA,OAAOj7I,GAAAllD,EAAA/D,cAAC6mM,GAAD,CACHlvJ,SAAUA,EACVyJ,UAAWA,EACX07G,SAAUonC,MA/POF,GAAAC,GAiQxBtzC,KAAaqJ,iBAAmB,SAAA8sC,GAKF,IAJ3BnvJ,EAI2BmvJ,EAJ3BnvJ,SACAyJ,EAG2B0lJ,EAH3B1lJ,UACA2lJ,EAE2BD,EAF3BC,4BACAC,EAC2BF,EAD3BE,2BACAC,EAA2BH,EAA3BG,qBACA,OAAOh+I,GAAAllD,EAAA/D,cAACknM,GAAD,CACHv4B,cAAc,EACdh3H,SAAUA,EACVyJ,UAAWA,EACX07G,SAAUiqC,EACVhqC,iBAAkBiqC,EAClB92B,WAAY+2B,MA7QKjD,GAAAC,GA+QxBtzC,KAAaye,wBAA0B,SAAA+3B,GAEpB,IADhBxvJ,EACgBwvJ,EADhBxvJ,SACAyJ,EAAgB+lJ,EAAhB/lJ,UACA,OAAO6H,GAAAllD,EAAA/D,cAAConM,GAAD,CACHzvJ,SAAUA,EACVyJ,UAAWA,MApRM4iJ,GAAAC,GAsRxBtzC,KAAa02C,gBAAkB,SAAAC,GAKD,IAJ3B3vJ,EAI2B2vJ,EAJ3B3vJ,SACAyJ,EAG2BkmJ,EAH3BlmJ,UACA8iJ,EAE2BoD,EAF3BpD,aACAC,EAC2BmD,EAD3BnD,qBACA8C,EAA2BK,EAA3BL,qBACA,OAAOh+I,GAAAllD,EAAA/D,cAACknM,GAAD,CACHvvJ,SAAUA,EACVyJ,UAAWA,EACX07G,SAAUonC,EACVnnC,iBAAkBonC,EAClBj0B,WAAY+2B,MAjSKhD,2gCCNvBsD,eACF,SAAAA,EAAYx2K,GAAO,IAAA3Q,qCAAAmnL,4DAAAC,CAAA12L,OACfsP,MAAAqnL,GAAAF,GAAAltM,KAAAyW,KAAMigB,+CAANjgB,SAEK42L,WAAa,CACdC,qBAAsB,YACtBhzB,YAAa,IALF,IAAAye,EAOiChzK,EAAK2Q,MAAM4mB,SAAnDiwJ,EAPOxU,EAOPwU,QAASniH,EAPF2tG,EAOE3tG,SAAU22E,EAPZg3B,EAOYh3B,iBAPZ,OASfh8I,EAAK5J,MAAQ,CACTilJ,YAAah2E,EACboiH,gBAAiBpiH,EACjBqiH,iBAAiB,EACjB1rC,mBACAwrC,UACAG,WAAW,GAGf3nL,EAAK4nL,eAAiB5nL,EAAK4nL,eAAepqL,KAApBqqL,MAAA7nL,KACtBA,EAAK8jL,aAAe9jL,EAAK8jL,aAAatmL,KAAlBqqL,MAAA7nL,KACpBA,EAAKqkL,sBAAwBrkL,EAAKqkL,sBAAsB7mL,KAA3BqqL,MAAA7nL,KAC7BA,EAAKykL,eAAiBzkL,EAAKykL,eAAejnL,KAApBqqL,MAAA7nL,KACtBA,EAAKs0J,0BAA4Bt0J,EAAKs0J,0BAA0B92J,KAA/BqqL,MAAA7nL,KACjCA,EAAKm7I,0BAA4Bn7I,EAAKm7I,0BAA0B39I,KAA/BqqL,MAAA7nL,KACjCA,EAAKokL,+BAAiCpkL,EAAKokL,+BAA+B5mL,KAApCqqL,MAAA7nL,KACtCA,EAAK+jL,qBAAuB/jL,EAAK+jL,qBAAqBvmL,KAA1BqqL,MAAA7nL,KAC5BA,EAAK4mL,2BAA6B5mL,EAAK4mL,2BAA2BppL,KAAhCqqL,MAAA7nL,KAClCA,EAAKu4C,aAAev4C,EAAKu4C,aAAa/6C,KAAlBqqL,MAAA7nL,KACpBA,EAAK8nL,YAAc9nL,EAAK8nL,YAAYtqL,KAAjBqqL,MAAA7nL,KACnBA,EAAK+nL,oBAAsB/nL,EAAK+nL,oBAAoBvqL,KAAzBqqL,MAAA7nL,KAC3BA,EAAKmlL,mBAAqBnlL,EAAKmlL,mBAAmB3nL,KAAxBqqL,MAAA7nL,KAC1BA,EAAK6mL,qBAAuB7mL,EAAK6mL,qBAAqBrpL,KAA1BqqL,MAAA7nL,KAC5BA,EAAK2mL,4BAA8B3mL,EAAK2mL,4BAA4BnpL,KAAjCqqL,MAAA7nL,KACnCA,EAAK0kL,mBAAqB1kL,EAAK0kL,mBAAmBlnL,KAAxBqqL,MAAA7nL,KAC1BA,EAAKkrJ,2BAA6BlrJ,EAAKkrJ,2BAA2B1tJ,KAAhCqqL,MAAA7nL,KAClCA,EAAKmrJ,2BAA6BnrJ,EAAKmrJ,2BAA2B3tJ,KAAhCqqL,MAAA7nL,KAElC4/B,KAAS9W,YAAY,eAAgB9oB,EAAKu4C,cAC1C3Y,KAAS9W,YAAY,aAAc9oB,EAAK8nL,aAtCzB9nL,qPADDupC,KAAMC,oDA0CT,IACHg+I,EAAY92L,KAAKigB,MAAjB62K,QAERp5B,eAAeviK,WAAW2rC,IAAc62H,yBAEnCm5B,GAGL92L,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4xL,GAAA,GACP5xL,EADO,CAEVuxL,WAAW,EACXtsC,YAAajlJ,EAAMqxL,0DAKH/2L,KAAKigB,MAAjB62K,SAKR92L,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4xL,GAAA,GACP5xL,EADO,CAEVuxL,WAAW,+CAIF,IACLF,EAAoB/2L,KAAK0F,MAAzBqxL,gBACFQ,EAAmBv3L,KAAKq3L,sBAE9Br3L,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4xL,GAAA,GACP5xL,EADO,CAEVilJ,YAAa4sC,EACbP,gBAAiBD,IAAoBQ,qDAItB,IACXR,EAAoB/2L,KAAK0F,MAAzBqxL,gBAEAS,EADax3L,KAAKigB,MAAlB4mB,SACA2wJ,0BAERx3L,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4xL,GAAA,GACP5xL,EADO,CAEVilJ,YAAa6sC,EACbR,gBAAiBD,IAAoBS,2DAIhB,IACjBT,EAAoB/2L,KAAK0F,MAAzBqxL,gBADiBU,EAE8Cz3L,KAAKigB,MAApE4mB,SAAY6wJ,EAFKD,EAELC,wBAAyBC,EAFpBF,EAEoBE,oBAE7C,GClHO,yCDkHHA,GAA6DnwJ,YAASmwJ,IAAyBnwJ,YAASkwJ,GAA5G,CAKA,IAAME,EAAeliD,YAAYmK,KAAc63C,GAE/C,GAAKlwJ,YAASowJ,GAAd,CAKA,IAAM76B,ElHrEc,WAAqB,IAApBpoF,EAAoB/lF,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAT,KACpC,QAAI44C,YAASmtC,KAINA,IAAakrE,KAAawJ,mBAC1B10E,IAAakrE,KAAasJ,oBAC1Bx0E,IAAakrE,KAAauJ,oBAC1Bz0E,IAAakrE,KAAaqJ,kBAC1Bv0E,IAAakrE,KAAa20C,sBkH4DRqD,CAAad,GAElC/2L,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4xL,GAAA,GACP5xL,EADO,CAEVilJ,YAAaitC,EACbZ,gBAAiBD,IAAoBa,EACrC76B,wBAVA/8J,KAAKy6J,kCAPLz6J,KAAKy6J,kFAqBgB,IACKq9B,EAA0B5kJ,IAAhDxtC,MAASsnC,UAAa8qJ,kBAEzBtwJ,YAASswJ,IACV96B,eAGJxmH,aAAWshJ,gDAIX93L,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4xL,GAAA,GACP5xL,EADO,CAEVilJ,YAAa9K,KAAaqJ,iBAC1B8tC,iBAAiB,sDAKrBh3L,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4xL,GAAA,GACP5xL,EADO,CAEVilJ,YAAa9K,KAAa8wC,0EAIR9sB,GACtB7jK,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4xL,GAAA,GACP5xL,EADO,CAEVilJ,YAAa9K,KAAau0C,oBAC1BvwB,6DAIWh9H,GAAiD,IAAvC8tC,EAAuC/lF,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAA5BixJ,KAAaiuC,cACjDjnJ,EAAWW,YAASX,GAATywJ,GAAA,GAA0BzwJ,EAA1B,CAAoC+1H,iBAAiB,EAAM5pD,YAAY,IAASnsE,EAE3F7mC,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4xL,GAAA,GACP5xL,EADO,CAEVilJ,YAAah2E,EACb9tC,6DAIc,IAAAywB,EAC4Bt3D,KAAK0F,MAA3C4lJ,EADUh0F,EACVg0F,iBAAkByrC,EADRz/H,EACQy/H,gBAE1B,GAAIzrC,GAAoB,EACpB,OAAOA,EAJO,IAAAysC,EAO+B/3L,KAAKigB,MAAM4mB,SAApDyJ,EAPUynJ,EAOVznJ,UAAWknJ,EAPDO,EAOCP,0BACbQ,EAAsB1nJ,IAAckiH,KAAgBC,WACtD5S,KAAaC,kBACbD,KAAagJ,gBAEjB,OAAOkuC,IAAoBl3C,KAAaoJ,QAAU8tC,IAAoBl3C,KAAa02C,gBAC9E/uJ,YAASgwJ,GAA6BA,EAA4BQ,EACnEjB,oDAGkB32H,KAQvB,IAPC6sF,EAODvoJ,EAPCuoJ,iBACA1B,EAMD7mJ,EANC6mJ,YACAC,EAKD9mJ,EALC8mJ,6BACAC,EAID/mJ,EAJC+mJ,mCACAnlG,EAGD5hD,EAHC4hD,cACAK,EAEDjiD,EAFCiiD,yBACA0kG,EACD3mJ,EADC2mJ,0BACD4sC,EAKKj4L,KAAKigB,MAAM4mB,SAHXskH,EAFL8sC,EAEK9sC,oCACAlM,EAHLg5C,EAGKh5C,kBACAmM,EAJL6sC,EAIK7sC,0CAGJprJ,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4xL,GAAA,GACP5xL,EADO,CAEVilJ,YAAa9K,KAAai1C,uBAC1B10H,eACA+qF,oCAAqCA,GAAuCK,EAC5EvM,kBAAmBsM,GAAetM,EAClCmM,0CAA2CA,GAA6CK,EACxFnlG,gBACA2mG,mBACAtmG,2BACA0kG,uFAIuBjrF,KAM5B,IALCmrF,EAKDjoJ,EALCioJ,YACAC,EAIDloJ,EAJCkoJ,6BACAC,EAGDnoJ,EAHCmoJ,mCACAnlG,EAEDhjD,EAFCgjD,cACAK,EACDrjD,EADCqjD,yBACDuxI,EAKKl4L,KAAKigB,MAAM4mB,SAHXskH,EAFL+sC,EAEK/sC,oCACAlM,EAHLi5C,EAGKj5C,kBACAmM,EAJL8sC,EAIK9sC,0CAGJprJ,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4xL,GAAA,GACP5xL,EADO,CAEVilJ,YAAa9K,KAAao1C,yBAC1B70H,eACA+qF,oCAAqCA,GAAuCK,EAC5EvM,kBAAmBsM,GAAetM,EAClCmM,0CAA2CA,GAA6CK,EACxFnlG,gBACAK,8EAKJ3mD,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4xL,GAAA,GACP5xL,EADO,CAEVilJ,YAAa9K,KAAay0C,wEAK9Bt0L,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4xL,GAAA,GACP5xL,EADO,CAEVilJ,YAAa9K,KAAa20C,gEAK9Bx0L,KAAK4hD,SAAS,SAACl8C,GAAD,OAAA4xL,GAAA,GACP5xL,EADO,CAEVilJ,YAAa9K,KAAaoJ,iEAIU,IAAhB3zG,EAAgB1mD,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAJ,GAC/B44C,YAAS8N,KAAct1C,KAAKm4L,kBAAkB7iJ,KAC/CA,EAAY1qD,OAAOg2B,SAASgyB,MAGhC5D,IAAYopJ,wBAAwB9iJ,GAAW,6CAGjCA,GACd,OAAOA,EAAU5oD,eAAe,iDAGnB,IAAAu1E,EAcTjiE,KAAK0F,MAZLilJ,EAFS1oF,EAET0oF,YACAoS,EAHS96F,EAGT86F,aACA38F,EAJS6B,EAIT7B,aACA42H,EALS/0H,EAKT+0H,gBACA7rC,EANSlpF,EAMTkpF,oCACAlM,EAPSh9E,EAOTg9E,kBACAmM,EARSnpF,EAQTmpF,0CACA9kG,EATS2b,EAST3b,cACA2mG,EAVShrF,EAUTgrF,iBACA4W,EAXS5hG,EAWT4hG,YACAl9G,EAZSsb,EAYTtb,yBACA0kG,EAbSppF,EAaTopF,0BAGIxkH,GAAaW,YAASxnC,KAAK0F,MAAMmhC,UAAY7mC,KAAK0F,MAAQ1F,KAAKigB,OAA/D4mB,SACAyJ,EAAczJ,EAAdyJ,UAEFg8G,EAAiBllH,IAAEyqB,UAAUhrB,GAC3B8wJ,EAAwBrrC,EAAxBqrC,oBAER,OAAO1E,GAAiBtoC,GAAa,CACjC9jH,SAAUmwJ,EAAkB,GAAK1qC,EACjClsF,eACA9vB,YACA66G,sCACAlM,oBACAmM,4CACA9kG,gBACA2mG,mBACA4W,cACAlZ,cACAhkG,2BACA0kG,4BACA0R,aAAcA,GAAgBzQ,EAAeyQ,aAC7CzB,OAAQq8B,EACR5D,eAAgB/zL,KAAK+zL,eACrBtpC,0BAA2BzqJ,KAAKyqJ,0BAChCipC,+BAAgC1zL,KAAK0zL,+BACrCN,aAAcpzL,KAAKozL,aACnB6C,4BAA6Bj2L,KAAKi2L,4BAClC5C,qBAAsBrzL,KAAKqzL,qBAC3BW,mBAAoBh0L,KAAKg0L,mBACzBpwB,0BAA2B5jK,KAAK4jK,0BAChC6wB,mBAAoBz0L,KAAKy0L,mBACzB0B,qBAAsBn2L,KAAKm2L,qBAC3BD,2BAA4Bl2L,KAAKk2L,2BACjC17B,2BAA4Bx6J,KAAKw6J,2BACjCC,2BAA4Bz6J,KAAKy6J,2BACjCk5B,sBAAuB3zL,KAAK2zL,yDAI3B,IACGsD,EAAcj3L,KAAK0F,MAAnBuxL,UAEFoB,GADcr4L,KAAKigB,MAAjB62K,SAC4BG,EACpC,OACI9+I,GAAAllD,EAAA/D,cAACszI,GAAe81D,SAAhB,CAAyBnuM,MAAO6V,KAAK42L,YAChCyB,EAAoBr4L,KAAKk3L,iBAAmB,oMAM7DT,GAAQh+I,UAAY,CAChB5R,SAAU6R,KAAUnsD,OAAOu4D,YAGhB2xI,oBEjWA8B,GAAA,CACX1rC,aAAc,CACVngH,iBAAkB,GAClBwvH,sBAAsB,EACtBpR,sBAAsB,EACtB9M,yBAA0B,GAC1BkP,qCAAqC,EACrChP,gCAAiC,GACjChkE,SAAU,IAEd+iF,aAAc,CACVf,sBAAsB,EACtBT,iBAAkB,GAClBU,sBAAuB,IAE3BtB,mBAAoB,CAChBb,qBAAqB,EACrBlL,uBAAwB,GACxB4+B,yBAA0B,IAE9B8K,YAAa,CACTC,+BAA+B,EAC/BC,mBAAoB,GACpBC,sBAAuB,GACvB1+B,iCAAiC,EACjCc,wBAAyB,GACzBvY,qBAAsB,IAE1BlkG,OAAQ,CACJqwI,4BAA4B,EAC5Bh0B,wBAAyB,IAE7B0K,WAAY,CACR5b,eAAgB,GAChByS,sBAAsB,EACtBvjI,oBAAoB,EACpBqrI,4BAA4B,EAC5BopB,+BAAgC,GAChCtqB,eAAgB,GAChB81B,qBAAqB,EACrBv0B,gBAAiB,GACjBzrI,uBAAuB,EACvBirI,YAAa,GACbssB,+CAA+C,EAC/CztB,qCAAsC,GACtCiB,4BAA6B,GAC7BqsB,8BAA8B,EAC9B/sB,yBAA0B,GAC1BwqB,sBAAuB,IAE3BlsB,mBAAoB,CAChBZ,uBAAwB,GACxBzE,sBAAsB,EACtBqE,uBAAwB,GACxBe,4BAA4B,GAEhC8D,kBAAmB,CACfrD,sBAAuB,GACvB7F,sBAAsB,EACtByF,sBAAuB,GACvBoD,2BAA2B,GAE/BsC,gBAAiB,CACbb,oBAAqB,GACrBtK,sBAAsB,EACtBkK,oBAAqB,GACrBe,yBAAyB,GAE7BnM,YAAa,CACTmQ,+BAA+B,EAC/BjR,mCAAmC,EACnC5G,sBAAsB,EACtB1C,mBAAmB,EACnBypB,gCAAgC,EAChCjB,iCAAiC,EACjCgB,sCAAsC,EACtC9R,gCAAgC,EAChCwZ,mCAAmC,EACnCD,+BAA+B,EAC/BtZ,gCAAgC,EAChCsI,mCAAmC,EACnC9K,iCAAiC,EACjC/hC,qBAAqB,EACrB0uB,oBAAqB,GACrBttB,gBAAiB,GACjBX,iBAAkB,GAClByvB,aAAc,GACdoB,gBAAiB,GACjBvB,kBAAmB,EACnBrD,qCAAsC,GACtCa,6BAA8B,GAC9BE,0BAA2B,GAC3BM,4BAA6B,GAC7BI,uBAAwB,GACxBkyB,kCAAkC,EAClChyB,mCAAoC,IAExC1F,UAAW,CACPC,mBAAoB,EACpBisC,iBAAkB,0zJCvF1B,IAceC,GAdK5zL,aAAgB,CAChC2nJ,aCXW,WAAwE,IAA3CnnJ,EAA2C9W,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAnCs7I,GAAa2iB,aAAczoJ,EAAQxV,UAAAnB,OAAA,EAAAmB,UAAA,QAAAvD,EACnF,OAAQ+Y,EAAO/V,MACX,KAAKsvJ,GACD,OAAAo7C,GAAA,GACOrzL,EADP,CAEIolJ,sBAAsB,EACtB5wE,SAAU91E,EAAO81E,SACjB8jE,yBAA0B55I,EAAO45I,2BAEzC,KAAKL,GACD,OAAAo7C,GAAA,GACOrzL,EADP,CAEIolJ,sBAAsB,EACtB5wE,SAAU,GACV8jE,yBAA0B55I,EAAO45I,2BAEzC,KAAKL,GACD,OAAAo7C,GAAA,GACOrzL,EADP,CAEIw2J,sBAAsB,EACtBxvH,iBAAkBtoC,EAAOsoC,iBACzBsxG,yBAA0B,KAElC,KAAKL,GACD,OAAAo7C,GAAA,GACOrzL,EADP,CAEIw2J,sBAAsB,EACtBxvH,iBAAkB,GAClBsxG,yBAA0B,KAElC,KAAKL,GACD,OAAAo7C,GAAA,GACOrzL,EADP,CAEIwnJ,qCAAqC,EACrChP,gCAAiC95I,EAAO85I,kCAEhD,KAAKP,GACD,OAAAo7C,GAAA,GACOrzL,EADP,CAEIwnJ,qCAAqC,EACrChP,gCAAiC95I,EAAO85I,kCAEhD,KAAKP,GACD,OAAOzT,GAAa2iB,aACxB,KAAKlP,GACD,OAAAo7C,GAAA,GACOrzL,EADP,CAEIgoJ,wBAAwB,IAEhC,KAAK/P,GACD,OAAAo7C,GAAA,GACOrzL,EADP,CAEIgoJ,wBAAwB,IAEhC,QACI,OAAOhoJ,ID3Cfu3J,aEXW,WAAwE,IAA3Cv3J,EAA2C9W,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAnCs7I,GAAa+yB,aAAc74J,EAAQxV,UAAAnB,OAAA,EAAAmB,UAAA,QAAAvD,EACnF,OAAQ+Y,EAAO/V,MACX,KAAKsvJ,GACD,OAAAq7C,GAAA,GACOtzL,EADP,CAEIw2J,sBAAsB,EACtBT,iBAAkBj0H,YAASpjC,EAAOq3J,kBAAoBr3J,EAAOq3J,iBAAmB,GAChFU,sBAAuB,KAE/B,KAAKxe,GACD,OAAAq7C,GAAA,GACOtzL,EADP,CAEIw2J,sBAAsB,EACtBT,iBAAkB,GAClBU,sBAAuB/3J,EAAO6B,eAEtC,QACI,OAAOP,IFLfm1J,mBGbW,WAAgF,IAAjDn1J,EAAiD9W,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAzCs7I,GAAa2wB,mBAAoBz2J,EAAQxV,UAAAnB,OAAA,EAAAmB,UAAA,QAAAvD,EAC3F,OAAQ+Y,EAAO/V,MACX,KAAKsvJ,GACD,OAAAs7C,GAAA,GACOvzL,EADP,CAEIs0J,qBAAqB,EACrBlL,uBAAwB1qJ,EAAO0qJ,yBAEvC,KAAKnR,GACD,OAAAs7C,GAAA,GACOvzL,EADP,CAEIs0J,qBAAqB,EACrBlL,uBAAwB1qJ,EAAO0qJ,yBAEvC,KAAKnR,GACD,OAAAs7C,GAAA,GACOvzL,EADP,CAEIwzL,4CAA4C,EAC5CxL,yBAA0BtpL,EAAOmrJ,8BAEzC,KAAK5R,GACD,OAAAs7C,GAAA,GACOvzL,EADP,CAEIwzL,4CAA4C,EAC5CxL,yBAA0B,KAElC,KAAK/vC,GACD,OAAOzT,GAAa2wB,mBACxB,QACI,OAAOn1J,IHff44C,OIdW,WAA4D,IAArC54C,EAAqC9W,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAA7Bs7I,GAAa5rF,OAAQl6C,EAAQxV,UAAAnB,OAAA,EAAAmB,UAAA,QAAAvD,EACvE,OAAQ+Y,EAAO/V,MACX,KAAKsvJ,GACD,OAAAw7C,GAAA,GACOzzL,EADP,CAEIipL,4BAA4B,EAC5Bh0B,wBAAyBv2J,EAAOu2J,0BAExC,KAAKhd,GACD,OAAAw7C,GAAA,GACOzzL,EADP,CAEIipL,4BAA4B,EAC5B3wC,yBAA0B55I,EAAOu2J,0BAEzC,QACI,OAAOj1J,IJAfo1J,sBKfW,WAAsE,IAA1Cp1J,EAA0C9W,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAlCs7I,GAAasuD,YAAap0L,EAAQxV,UAAAnB,OAAA,EAAAmB,UAAA,QAAAvD,EACjF,OAAQ+Y,EAAO/V,MACX,IxH8E8B,yBwH7E1B,OAAA+qM,GAAA,GACO1zL,EADP,CAEI+yL,+BAA+B,EAC/BC,mBAAoBt0L,EAAOs0L,mBAC3BC,sBAAuB,KAE/B,IxHwE4B,uBwHvExB,OAAAS,GAAA,GACO1zL,EADP,CAEI+yL,+BAA+B,EAC/BC,mBAAoB,GACpBW,qBAAsBj1L,EAAOi1L,uBAErC,IxHmEgC,2BwHlE5B,OAAAD,GAAA,GACO1zL,EADP,CAEIu0J,iCAAiC,EACjCzX,qBAAsBp+I,EAAOk1L,YAC7Bv+B,wBAAyB,KAEjC,IxH6D8B,yBwH5D1B,OAAAq+B,GAAA,GACO1zL,EADP,CAEIu0J,iCAAiC,EACjCzX,qBAAsB,GACtBuY,wBAAyB32J,EAAO22J,0BAExC,KAAKpd,GAAmC,OAAAy7C,GAAA,GACjC1zL,EADiC,CAEpCu0J,iCAAiC,EACjCzX,qBAAsB,KAE1B,QACI,OAAO98I,ILpBf2/J,WMhBW,WAAsE,IAAzC3/J,EAAyC9W,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAjCs7I,GAAam7B,WAAYjhK,EAAQxV,UAAAnB,OAAA,EAAAmB,UAAA,QAAAvD,EACjF,OAAQ+Y,EAAO/V,MACX,KAAKsvJ,GACD,OAAA47C,GAAA,GACO7zL,EADP,CAEIizB,mBAAoBv0B,EAAOw+J,iBAAiBjqI,mBAC5CmqI,eAAgB1+J,EAAOw+J,iBAAiBE,eACxClqI,sBAAuBx0B,EAAOw+J,iBAAiBhqI,sBAC/CirI,YAAaz/J,EAAOw+J,iBAAiBiB,cAE7C,KAAKlmB,GACD,OAAA47C,GAAA,GACO7zL,EADP,CAEIizB,oBAAoB,EACpBC,uBAAuB,EACvBkqI,eAAgB1+J,EAAO0+J,eACvBe,YAAa,KAErB,KAAKlmB,GACD,OAAA47C,GAAA,GACO7zL,EADP,CAEIs+J,2BAA4B5/J,EAAO2/J,oBAAoBC,2BACvDopB,+BAAgC,KAExC,KAAKzvC,GACD,OAAA47C,GAAA,GACO7zL,EADP,CAEIs+J,4BAA4B,EAC5BopB,+BAAgChpL,EAAOutJ,gBAE/C,KAAKhU,GACD,OAAA47C,GAAA,GACO7zL,EADP,CAEIsqL,8BAA8B,EAC9B/sB,yBAA0B7+J,EAAO6+J,2BAEzC,KAAKtlB,GACD,OAAA47C,GAAA,GACO7zL,EADP,CAEIsqL,8BAA8B,EAC9B/sB,yBAA0B7+J,EAAO6+J,2BAEzC,KAAKtlB,GACD,OAAA47C,GAAA,GACO7zL,EADP,CAEIyqL,+CAA+C,EAC/CxsB,4BAA6Bv/J,EAAOu/J,4BACpCjB,qCAAsC,KAE9C,KAAK/kB,GACD,OAAA47C,GAAA,GACO7zL,EADP,CAEIyqL,+CAA+C,EAC/CztB,qCAAsCt+J,EAAOs+J,qCAC7CiB,4BAA6B,KAErC,KAAKhmB,GACD,OAAA47C,GAAA,GACO7zL,EADP,CAEIkzL,qBAAqB,EACrBv0B,gBAAiBjgK,EAAOigK,kBAEhC,KAAK1mB,GACD,OAAA47C,GAAA,GACO7zL,EADP,CAEIkzL,qBAAqB,EACrBv0B,gBAAiBjgK,EAAOigK,kBAEhC,KAAK1mB,GACD,OAAA47C,GAAA,GACO7zL,EADP,CAEIw2J,sBAAsB,EACtBzS,eAAgBrlJ,EAAOqlJ,iBAE/B,KAAK9L,GACD,OAAA47C,GAAA,GACO7zL,EADP,CAEIw2J,sBAAsB,EACtBzS,eAAgB,KAExB,KAAK9L,GACD,OAAA47C,GAAA,GACO7zL,EADP,CAEI+nL,sBAAuBrpL,EAAOo/J,wBAEtC,KAAK7lB,GACD,OAAA47C,GAAA,GACO7zL,EADP,CAEI+jJ,eAAgB,GAChByS,sBAAsB,EACtBvjI,oBAAoB,EACpBmqI,eAAgB,GAChB81B,qBAAqB,EACrBv0B,gBAAiB,GACjBzrI,uBAAuB,EACvBirI,YAAa,GACbssB,+CAA+C,EAC/CztB,qCAAsC,GACtCiB,4BAA6B,GAC7BqsB,8BAA8B,EAC9B/sB,yBAA0B,KAElC,QACI,OAAOv9J,INtFf67J,mBOjBW,WAAoF,IAAjD77J,EAAiD9W,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAzCs7I,GAAaq3B,mBAAoBn9J,EAAQxV,UAAAnB,OAAA,EAAAmB,UAAA,QAAAvD,EAC/F,OAAQ+Y,EAAO/V,MACX,KAAKsvJ,GACD,OAAA67C,GAAA,GACO9zL,EADP,CAEI47J,4BAA4B,EAC5Bf,uBAAwBn8J,EAAOm8J,yBAEvC,KAAK5iB,GACD,OAAA67C,GAAA,GACO9zL,EADP,CAEI47J,4BAA4B,EAC5Bf,uBAAwBn8J,EAAOm8J,yBAEvC,KAAK5iB,GACD,OAAA67C,GAAA,GACO9zL,EADP,CAEIw2J,sBAAsB,EACtByE,uBAAwBv8J,EAAOu8J,uBAC/BJ,uBAAwB,KAEhC,KAAK5iB,GACD,OAAA67C,GAAA,GACO9zL,EADP,CAEIw2J,sBAAsB,EACtByE,uBAAwB,GACxBJ,uBAAwB,KAEhC,KAAK5iB,GACD,OAAOzT,GAAaq3B,mBACxB,QACI,OAAO77J,IPbf0/J,kBQlBW,WAAkF,IAAhD1/J,EAAgD9W,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAxCs7I,GAAak7B,kBAAmBhhK,EAAQxV,UAAAnB,OAAA,EAAAmB,UAAA,QAAAvD,EAC7F,OAAQ+Y,EAAO/V,MACX,KAAKsvJ,GACD,OAAA87C,GAAA,GACO/zL,EADP,CAEIq/J,2BAA2B,EAC3BpD,sBAAuBv9J,EAAOu9J,wBAEtC,KAAKhkB,GACD,OAAA87C,GAAA,GACO/zL,EADP,CAEIq/J,2BAA2B,EAC3BpD,sBAAuBv9J,EAAOu9J,wBAEtC,KAAKhkB,GACD,OAAA87C,GAAA,GACO/zL,EADP,CAEIw2J,sBAAsB,EACtB6F,sBAAuB39J,EAAO29J,sBAC9BJ,sBAAuB,KAE/B,KAAKhkB,GACD,OAAA87C,GAAA,GACO/zL,EADP,CAEIw2J,sBAAsB,EACtB6F,sBAAuB,GACvBJ,sBAAuB,KAE/B,KAAKhkB,GACD,OAAOzT,GAAak7B,kBACxB,QACI,OAAO1/J,IRZf2hK,gBSnBW,WAA8E,IAA9C3hK,EAA8C9W,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAtCs7I,GAAam9B,gBAAiBjjK,EAAQxV,UAAAnB,OAAA,EAAAmB,UAAA,QAAAvD,EACzF,OAAQ+Y,EAAO/V,MACX,KAAKsvJ,GACD,OAAA+7C,GAAA,GACOh0L,EADP,CAEIyhK,yBAAyB,EACzBf,oBAAqBhiK,EAAOgiK,sBAEpC,KAAKzoB,GACD,OAAA+7C,GAAA,GACOh0L,EADP,CAEIyhK,yBAAyB,EACzBf,oBAAqBhiK,EAAOgiK,sBAEpC,KAAKzoB,GACD,OAAA+7C,GAAA,GACOh0L,EADP,CAEIw2J,sBAAsB,EACtBsK,oBAAqBpiK,EAAOoiK,oBAC5BJ,oBAAqB,KAE7B,KAAKzoB,GACD,OAAA+7C,GAAA,GACOh0L,EADP,CAEIw2J,sBAAsB,EACtBsK,oBAAqB,GACrBJ,oBAAqB,KAE7B,KAAKzoB,GACD,OAAOzT,GAAam9B,gBACxB,QACI,OAAO3hK,ITXfs1J,YUpBW,WAAsE,IAA1Ct1J,EAA0C9W,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAlCs7I,GAAa8wB,YAAa52J,EAAQxV,UAAAnB,OAAA,EAAAmB,UAAA,QAAAvD,EACjF,OAAQ+Y,EAAO/V,MACX,KAAKsvJ,GAA2C,OAAAg8C,GAAA,GACzCj0L,EADyC,CAE5CylK,+BAA+B,EAC/Bza,qCAAsC,GACtCgC,oBAAqBtuJ,EAAOsuJ,sBAGhC,KAAK/U,GAAyC,OAAAg8C,GAAA,GACvCj0L,EADuC,CAE1CylK,+BAA+B,EAC/Bza,qCAAsCtsJ,EAAOssJ,qCAC7CgC,oBAAqB,KAGzB,KAAK/U,GAA+C,OAAAg8C,GAAA,GAC7Cj0L,EAD6C,CAEhDylK,+BAA+B,EAC/Bza,qCAAsC,GACtCgC,oBAAqB,KAEzB,KAAK/U,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEI0/H,gBAAiBhhI,EAAOrb,KAAKq8I,gBAC7BkuB,qBAAsBlvJ,EAAOrb,KAAKuqK,qBAClC4G,mCAAmC,EACnCtJ,mBAAmB,EACnByzB,kCAAkC,EAClChyB,mCAAoC,KAE5C,KAAK1U,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEI0/H,gBAAiB,GACjBkuB,sBAAsB,EACtB1C,kBAAmBxsJ,EAAOwsJ,kBAC1BsJ,mCAAmC,IAE3C,KAAKvc,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEI++H,iBAAkBrgI,EAAOqgI,iBACzB41C,gCAAgC,EAChC11C,sBAAuBvgI,EAAOugI,wBAEtC,KAAKgZ,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEI++H,iBAAkB,GAClB41C,gCAAgC,IAExC,KAAK18B,GAAwC,OAAAg8C,GAAA,GACtCj0L,EADsC,CAEzC00K,sCAAsC,EACtCrmB,kBAAmB3vJ,EAAO2vJ,kBAC1BpvB,sBAAuBvgI,EAAOugI,wBAElC,KAAKgZ,GAAsC,OAAAg8C,GAAA,GACpCj0L,EADoC,CAEvC00K,sCAAsC,EACtCrmB,kBAAmB,IAEvB,KAAKpW,GAAkC,OAAAg8C,GAAA,GAChCj0L,EADgC,CAEnCwuJ,aAAc9vJ,EAAO8vJ,aACrBklB,iCAAiC,IAErC,KAAKz7B,GAAgC,OAAAg8C,GAAA,GAC9Bj0L,EAD8B,CAEjCwuJ,aAAc,GACdklB,iCAAiC,IAErC,KAAKz7B,GAAiC,OAAAg8C,GAAA,GAC/Bj0L,EAD+B,CAElC4vJ,gBAAiBlxJ,EAAOkxJ,gBACxB/xH,eAAgBn/B,EAAOm/B,eACvBu+I,mCAAmC,IAEvC,KAAKnkC,GAA+B,OAAAg8C,GAAA,GAC7Bj0L,EAD6B,CAEhC4vJ,gBAAiB,GACjBwsB,mCAAmC,IAEvC,KAAKnkC,GAAiC,OAAAg8C,GAAA,GAC/Bj0L,EAD+B,CAElC6rJ,6BAA8B,GAC9BswB,+BAA+B,IAEnC,KAAKlkC,GAA+B,OAAAg8C,GAAA,GAC7Bj0L,EAD6B,CAEhCm8K,+BAA+B,EAC/BtwB,6BAA8BntJ,EAAOmtJ,+BAEzC,KAAK5T,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEI4iK,gCAAgC,EAChC7W,0BAA2BrtJ,EAAOqtJ,4BAE1C,KAAK9T,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEI4iK,gCAAgC,EAChCtkC,qBAAqB,EACrBytB,0BAA2BrtJ,EAAOqtJ,4BAE1C,KAAK9T,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEI4iK,gCAAgC,EAChC7W,0BAA2BrtJ,EAAOqtJ,4BAE1C,KAAK9T,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEI6iK,gCAAgC,IAExC,KAAK5qB,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEI6iK,gCAAgC,IAExC,KAAK5qB,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEImrK,mCAAmC,EACnC9e,4BAA6B3tJ,EAAO2tJ,8BAE5C,KAAKpU,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEImrK,mCAAmC,EACnC9e,4BAA6B3tJ,EAAO2tJ,8BAE5C,KAAKpU,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEImrK,mCAAmC,EACnC9e,4BAA6B,KAErC,KAAKpU,GAAoC,OAAAg8C,GAAA,GAClCj0L,EADkC,CAErCmrK,mCAAmC,EACnC9e,4BAA6B3tJ,EAAOutJ,gBAExC,KAAKhU,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEIqgK,iCAAiC,EACjC5T,uBAAwB/tJ,EAAO+tJ,yBAEvC,KAAKxU,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEIqgK,iCAAiC,EACjC5T,uBAAwB/tJ,EAAO+tJ,yBAEvC,KAAKxU,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEI4iK,gCAAgC,EAChC7W,0BAA2B,KAEnC,I7H/FwC,mC6HgGpC,OAAAkoC,GAAA,GACOj0L,EADP,CAEIqgK,iCAAiC,EACjC5T,uBAAwB,KAEhC,KAAKxU,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEI2+K,kCAAkC,EAClChyB,mCAAoC,KAE5C,KAAK1U,GACD,OAAAg8C,GAAA,GACOj0L,EADP,CAEI2+K,kCAAkC,EAClChyB,mCAAoCjuJ,EAAOutJ,gBAEnD,QACI,OAAOjsJ,IVnKfinJ,UWhBW,WAMb,IAV+Bt+J,EAK7BqX,EAKF9W,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GALU,CACJg+J,mBAAoB1iB,GAAayiB,UAAUC,mBAC3CisC,iBAAkB3uD,GAAayiB,UAAUksC,kBAE7Cz0L,EACFxV,UAAAnB,OAAA,EAAAmB,UAAA,QAAAvD,EACE,OAAI+Y,EAAO/V,OAASsvJ,GAChBi8C,GAAA,GACOl0L,EADP,CAEIknJ,mBAAoBlnJ,EAAMknJ,mBAAqB,EAC/CisC,iBAAkB,KAItBz0L,EAAO/V,OAASsvJ,GAChBi8C,GAAA,GACOl0L,EADP,CAEIknJ,mBAAoBlnJ,EAAMknJ,mBAAqB,EAC/CisC,iBAAkB,CAAC99J,GAAqB4D,sBAtBL,cADdtwC,EA2BD+V,EAAO/V,MA1BvB6G,UAAU7G,EAAKZ,OAAS,GA2BhCmsM,GAAA,GACOl0L,EADP,CAEIknJ,mBAAoBlnJ,EAAMknJ,mBAAqB,EAC/CitC,gBAAiB,MAIrBz1L,EAAO/V,KACAqX,kdChCMo0L,eACjB,SAAAA,IAAqB,IAAAxiK,EAAAhoB,qCAAAwqL,4DAAAC,CAAA/5L,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAA0iK,GAAAF,IAAAvwM,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,qPADqB0oB,sCAQtCh4B,KAAKjX,KAAO,GAEZ,IACI0nD,IAAc3iC,OACd9N,KAAKjX,KAAO8M,KAAKC,MAAMkK,KAAK8H,aAAa9H,KAAKi4B,KAAKlvC,KAAM,YAC3D,MAAOglB,GACLhjB,QAAQC,IAAI+iB,EAAM60C,SAGtB,GAAK5iD,KAAKjX,KAAV,CAKA,IAAM6D,ECzBHka,aAAYgyL,QADgB5uD,EACWtjI,aAAgBqzL,OD2B1DpuL,kBACIssC,GAAAllD,EAAA/D,cAACuV,GAAA,EAAD,CAAe7X,MAAOA,GAClBurD,GAAAllD,EAAA/D,cAACgrM,GAAD,CACIrzJ,SAAU7mC,KAAKjX,QAGvBiX,KAAKi4B,KAAKkiK,cAZVpvM,QAAQC,IAAI,44BEtBxButC,IAAkBC,cAAchE,OAAO,WAAYslK,QC6FpCM,eAzFX,SAAAA,IAAqB,IAAA9iK,EAAAhoB,qCAAA8qL,4DAAAC,CAAAr6L,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAgjK,GAAAF,IAAA7wM,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,QADiBu6L,GAAAC,MAAAlrL,IAAA,gBA2BL,WACZ,IAAM5J,EAAQ9Y,KAAMkX,WACd8G,EAASxe,IAAIsZ,EAAO,qCAErBkF,GAAWA,EAAO6vL,OAEnBnrL,EAAK5J,MAAM0K,WAAaxF,EAAO6vL,MAAMpqL,OACrCf,EAAK5J,MAAM0K,SAAWxF,EAAO6vL,MAAMpqL,KACnCf,EAAKouF,YAnCQ68F,GAAAC,MAAAlrL,IAAA,cAuCP,SAAC5b,GACP4b,EAAK5J,MAAM0K,UAQXd,EAAKorL,WAAWprL,EAAKxhB,QAAQ8kD,MAIjCl/C,EAAMkmB,mBApDW2gL,GAAAC,MAAAlrL,IAAA,SA8EZ,WACDA,EAAK5J,MAAM0K,UACXd,EAAKxhB,QAAQ6B,UAAUgY,IAAI,aAC3B2H,EAAKxhB,QAAQ6B,UAAUqY,OAAO,cAE9BsH,EAAKxhB,QAAQ6B,UAAUqY,OAAO,aAC9BsH,EAAKxhB,QAAQ6B,UAAUgY,IAAI,eAjF/B2H,EAAKqrL,sBAAwB,KAC7BrrL,EAAKvK,YAAc,KACnBuK,EAAK5J,MAAQ,CACT0gC,MAAO92B,EAAKd,QAAQ43B,MACpBh2B,SAAUd,EAAKd,QAAQ4B,WAAY,EACnCwqL,YAAatrL,EAAKd,QAAQosL,cAAe,GAG7CtrL,EAAKxB,OAXYwB,qPADkB0oB,sCAgB/Bh4B,KAAK0F,MAAMk1L,aACX56L,KAAKo4B,YAAYp4B,KAAKlS,QAAS,QAASkS,KAAK+pE,aAEjDhxB,IAAch1C,UAAUi1C,IAAcC,cACtCj5C,KAAK+E,YAAcnY,KAAMmX,UAAU/D,KAAKoqG,mDAIxCrxD,IAAch0C,YAAYi0C,IAAcC,cACxCj5C,KAAK+E,iDA+BEy1C,GAAK,IAAAjrC,EAAAvP,KACPw6C,KAEDx6C,KAAK26L,uBAA0B36L,KAAK26L,sBAAsBE,QAK9D76L,KAAK26L,sBAAwB/vM,OAAO0lB,KAChCkqC,EACAx6C,KAAKwO,QAAQ43B,MACb,yEAIJstB,WAAW,WACPnkD,EAAKorL,sBAAsB1rM,SAASoF,gBAAgBrC,MAAM4kC,SACtD,SACJrnB,EAAKorL,sBAAsB51G,WAAa,IACxCx1E,EAAKorL,sBAAsBG,YAAc,KAC1C,MAhBC96L,KAAK26L,sBAAsBnqL,+oBC/DvC+nB,IAAkBC,cAAchE,OAAO,gBAAiB4lK,gBCDnCW,eACjB,SAAAA,IAAqB,IAAAzjK,EAAAhoB,qCAAAyrL,4DAAAC,CAAAh7L,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAA2jK,GAAAF,IAAAxxM,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEKk7L,MAAQ5rL,EAAK2oB,KAAKijK,MAEvB5rL,EAAKxB,OALYwB,qPADW0oB,sCASzB,IAAAzoB,EAAAvP,KACCA,KAAKlS,QAAQ6B,UAAUC,SAAS,kBAChCoQ,KAAKk7L,MAAM11L,QAAQ,SAAC2xD,GAChB5nD,EAAK6oB,YAAY++B,EAAM,QAAS5nD,EAAK+oC,QAAQxrC,KAAKyC,sCAKtD7b,GACJA,EAAMkmB,iBAEN,IAAMhQ,EAAYlW,EAAM3D,OAAO+X,aAAa,QACtC29E,EAAcx2F,SAASkc,cAAcvB,GAEvC67E,IACAzlF,KAAKm7L,SAAW,IAAIz1G,KAASD,EAAa,CAAE21G,aAAc,MAC1Dp7L,KAAKm7L,SAAS7nL,mDAKlBtT,KAAKm7L,SAAW,mMC7BxB5iK,IAAkBC,cAAchE,OAAO,UAAW6mK,ivBCE7BC,eACjB,SAAAA,IAAqB,IAAAhkK,EAAAhoB,qCAAAgsL,4DAAAC,CAAAv7L,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAkkK,GAAAF,IAAA/xM,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,QADiBy7L,GAAAC,MAAApsL,IAAA,gBAoDL,SAAC2Q,GACb3Q,EAAKqsL,gBAAkB17K,EAAM27K,mBAE7BtsL,EAAKusL,UAAUvsL,EAAKqsL,mBAvDHF,GAAAC,MAAApsL,IAAA,gBA0DL,SAAC2Q,GACb3Q,EAAKwsL,WAAa77K,EAAMotE,mBAExB/9E,EAAKusL,UAAUvsL,EAAKwsL,cA7DHL,GAAAC,MAAApsL,IAAA,aAgER,WACTA,EAAKm5G,QAAQ92E,OAAO,WAChB,IAAMjoD,EAAOkB,OAAOg2B,SAASl3B,KAE7B,IAAK4lB,EAAKxhB,SAAWpE,EAAM,OAAO,EAIlC,GAFA4lB,EAAKysL,UAAYryM,GAEZ4lB,EAAKysL,UAAW,OAAO,EAM5B,GAJIzsL,EAAK0sL,mBACL1sL,EAAK0sL,kBAAkBrsM,UAAUqY,OAAO,cAGvCsH,EAAK4rL,MAAO,OAAO,EAExB,IAAMc,EAAoB1sL,EAAK4rL,MAAMvrL,OAAO,SAACha,GAAD,OAAUA,EAAKmS,aAAa,UAAYpe,IAEpF4lB,EAAK0sL,kBAAoBA,EAAkB,GAC3C,IAAMtnM,EAAM4a,EAAK4rL,MAAMvqM,QAAQ2e,EAAK0sL,mBAIpC,OAHA1sL,EAAK0sL,kBAAkBrsM,UAAUgY,IAAI,aACrC2H,EAAK2sL,YAAY3sL,EAAKonB,QAAQhiC,KAEvB,MArFX4a,EAAK0sL,kBAAoB,KACzB1sL,EAAK4sL,mBAAqB,KAC1B5sL,EAAK6sL,qBAAuB,EAE5B7sL,EAAK4rL,MAAQ5rL,EAAK2oB,KAAKijK,MACvB5rL,EAAKonB,QAAUpnB,EAAK2oB,KAAKvB,QAEzBpnB,EAAKm5G,QAAU2zE,eAEf9sL,EAAKxB,OAXYwB,qPADe0oB,sCAgBhCh4B,KAAKq8L,aAELntJ,KAAS9W,YAAY,kBAAmBp4B,KAAKs8L,eAC7CptJ,KAAS9W,YAAY,kBAAmBp4B,KAAKu8L,eAE7Cv8L,KAAKw8L,aACLx8L,KAAKy8L,+CAILvtJ,KAASszC,eAAe,kBAAmBxiF,KAAKs8L,eAChDptJ,KAASszC,eAAe,kBAAmBxiF,KAAKu8L,eAEhDG,KAAW10L,OAAOhI,KAAKi4B,KAAKg2E,uCAGtBr7E,GACN,IAAM+pK,EAAS/pK,EAAK9hC,aAChBX,EAAY,GAEhB,OAAQyiC,GACJ,KAAK5yB,KAAK27L,gBACNxrM,EAAY,uBACZ,MACJ,KAAK6P,KAAK87L,WACN3rM,EAAY,iBACZ,MACJ,QACIA,EAAY,GAGhByiC,IACA5yB,KAAKi4B,KAAKg2E,IAAIt+G,UAAUgY,IAAIxX,GAC5B6P,KAAKm8L,qBAAuBn8L,KAAKlS,QAAQiD,UAAY4rM,wCA4CzDD,KAAW/0L,IAAI3H,KAAKi4B,KAAKg2E,wCAGlB,IAAA1+F,EAAAvP,KACP,GAAKA,KAAKk7L,MAAV,CAGA,IAAM0B,EAAgB58L,KAAKk7L,MAAMvrL,OAAO,SAACha,GAAD,OAAUA,EAAKmS,aAAa,UAAYld,OAAOg2B,SAASl3B,OAEnE,IAAzBkzM,EAAcnvM,OACduS,KAAKk7L,MAAM,GAAGvrM,UAAUgY,IAAI,cAE5B3H,KAAKk7L,MAAM11L,QAAQ,SAAC2xD,GAChBA,EAAKxnE,UAAUqY,OAAO,eAE1B40L,EAAc,GAAGjtM,UAAUgY,IAAI,cAGnC3b,OAAOkK,KAAK8J,KAAKk7L,OAAO11L,QAAQ,SAAC9Q,GAC7B,IAAMyiE,EAAO5nD,EAAK2rL,MAAMxmM,GAExB6a,EAAK6oB,YAAY++B,EAAM,QAAS5nD,EAAKg6F,YAAYz8F,KAAKyC,EAAM7a,IAExDyiE,EAAKxnE,UAAUC,SAAS,eACnB2f,EAAKysL,kBASN7kI,EAAKxnE,UAAUqY,OAAO,cARtBuH,EAAKysL,kBAAoB7kI,EAErB5nD,EAAKmnB,QAAQhiC,KACb6a,EAAKmnB,QAAQhiC,GAAK/E,UAAUgY,IAAI,aAChC4H,EAAK2sL,mBAAqB3sL,EAAKmnB,QAAQhiC,6CAU/CA,EAAKyJ,GACbA,EAAEyb,iBAEF5Z,KAAKm8L,qBAAuBn8L,KAAKlS,QAAQiD,UAKzCkmC,IAAM,CACFC,QAASjoC,SAASoF,gBAClBxD,UAAWmP,KAAKm8L,qBAChBnlK,SAAU,IACV3D,OAAQ,gBAGZrzB,KAAK+7L,UAAY59L,EAAEpO,OAAO+X,aAAa,QAElC7Y,SAAS6kE,uBAAuB,oBAAoB,KACrDlpE,OAAOg2B,SAASl3B,KAAOsW,KAAK+7L,WAG5B/7L,KAAKg8L,mBACLh8L,KAAKg8L,kBAAkBrsM,UAAUqY,OAAO,aAG5ChI,KAAKg8L,kBAAoB79L,EAAEpO,OAC3BiQ,KAAKg8L,kBAAkBrsM,UAAUgY,IAAI,aACrC3H,KAAKi8L,YAAYj8L,KAAK02B,QAAQhiC,wCAGtBmoM,GACR,GAAI78L,KAAKk8L,mBAAoB,CACzB,GAAIl8L,KAAKk8L,qBAAuBW,EAC5B,OAGJ78L,KAAKk8L,mBAAmBvsM,UAAUqY,OAAO,aAG7C60L,EAAYltM,UAAUgY,IAAI,aAC1B3H,KAAKk8L,mBAAqBW,63BC9KlCtkK,IAAkBC,cAAchE,OAAO,eAAgB8mK,YCDvD,IA6BewB,eAzBX,SAAAA,IAAqB,IAAAxlK,EAAAhoB,qCAAAwtL,4DAAAC,CAAA/8L,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAA0lK,GAAAF,IAAAvzM,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,QADiBi9L,GAAAC,MAAA5tL,IAAA,kBAgBH,WACdA,EAAKxhB,QAAQ6B,UAAUgY,IAAI,kBAjBVs1L,GAAAC,MAAA5tL,IAAA,mBAoBF,WACfA,EAAKxhB,QAAQ6B,UAAUqY,OAAO,kBAlB9BsH,EAAKxB,OAHYwB,qPADQ0oB,sCAQzBkX,KAAS9W,YAXkB,6BAWsBp4B,KAAKm9L,iBACtDjuJ,KAAS9W,YAXmB,8BAWsBp4B,KAAKo9L,sDAIvDluJ,KAASszC,eAhBkB,6BAgByBxiF,KAAKm9L,iBACzDjuJ,KAASszC,eAhBmB,8BAgByBxiF,KAAKo9L,wpBChBlE7kK,IAAkBC,cAAchE,OAAO,YAAasoK,gBCG/BO,eACjB,SAAAA,IAAqB,IAAA/lK,EAAAhoB,qCAAA+tL,4DAAAC,CAAAt9L,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAimK,GAAAF,IAAA9zM,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACKg8L,kBAAoB,KACzB1sL,EAAK4sL,mBAAqB,KAE1B5sL,EAAK4rL,MAAQ5rL,EAAK2oB,KAAKijK,MACvB5rL,EAAKonB,QAAUpnB,EAAK2oB,KAAKvB,QACzBpnB,EAAK5J,MAAQ,CACTghF,gBAAiB,MAGrBp3E,EAAKxB,OAXYwB,qPADkB0oB,sCAehC,IAAAzoB,EAAAvP,KACHhU,OAAOkK,KAAK8J,KAAKk7L,OAAO11L,QAAQ,SAAC9Q,GAC7B,IAAMyiE,EAAO5nD,EAAK2rL,MAAMxmM,GAGxB,GAFA6a,EAAK6oB,YAAY++B,EAAM,QAAS5nD,EAAKg6F,YAAYz8F,KAAKyC,EAAM4nD,IAExDA,EAAKxnE,UAAUC,SAAS,aACxB,GAAK2f,EAAKysL,kBAWN7kI,EAAKxnE,UAAUqY,OAAO,iBAXG,CACzBuH,EAAKysL,kBAAoB7kI,EAEzB,IAAM0lI,EAActtL,EAAKmnB,QAAQ1gB,KAAK,SAACwnL,GAAD,OAClCrmI,EAAKztE,KAAKuhB,SAASuyL,EAAIxvM,MACvB6uM,IACAA,EAAYltM,UAAUgY,IAAI,aAC1B4H,EAAK2sL,mBAAqBW,0CAUlC1lI,EAAMh5D,GACdA,EAAEyb,iBAEE5Z,KAAKg8L,mBACLh8L,KAAKg8L,kBAAkBrsM,UAAUqY,OAAO,aAG5ChI,KAAKg8L,kBAAoB79L,EAAEpO,OAC3BiQ,KAAKg8L,kBAAkBrsM,UAAUgY,IAAI,aACrC,IAAMk1L,EAAc78L,KAAK02B,QAAQ1gB,KAAK,SAACwnL,GAAD,OAClCrmI,EAAKztE,KAAKuhB,SAASuyL,EAAIxvM,MAC3BgS,KAAKi8L,YAAYY,GAEM,sBAAnBA,EAAY7uM,IACZgS,KAAKy9L,sDAKT,IAAMC,EAAkB9yM,OAAOi9F,aACvBN,EAA0BvnF,KAAKwO,QAA/B+4E,sBAEFo2G,EAAiBn2J,YAAS+/C,EAAsBE,eAClDx4F,SAAS8jD,eAAew0C,EAAsBE,eAC9C,KAGCz0C,YAAkB2qJ,IAClB3qJ,YAAkB0qJ,KAEnB19L,KAAK0F,MAAMghF,gBAAkBH,GACzBm3G,EACAC,wCAKAd,GACR,GAAI78L,KAAKk8L,mBAAoB,CACzB,GAAIl8L,KAAKk8L,qBAAuBW,EAC5B,OAGJ78L,KAAKk8L,mBAAmBvsM,UAAUqY,OAAO,aAG7C60L,EAAYltM,UAAUgY,IAAI,aAC1B3H,KAAKk8L,mBAAqBW,gMCxFlCtkK,IAAkBC,cAAchE,OAAO,OAAQ6oK,ofCA1BO,eACjB,SAAAA,EAAY39K,GAAO,IAAA3Q,IAAA,uCAAAsuL,4DAAAC,CAAA79L,OACfA,OAAA89L,GAAAF,GAAAr0M,KAAAyW,KAAMigB,GAAN3Q,uKAAAtP,SAEK+9L,QAAUllJ,KAAMwwB,YAHN/5D,qPADgBupC,KAAMC,yDAQrC94C,KAAK8pL,aAAe,IAAIz1I,KAAsBr0C,KAAK+9L,QAAQlpM,QAAS,gEAIpEmL,KAAK8pL,aAAaxgH,2CAIlB,OACInxB,GAAAllD,EAAA/D,cAAA,UAAQ8/D,IAAKhvD,KAAK+9L,QACd5tM,UAAW6P,KAAKigB,MAAM9vB,UACtB9B,KAAK,SACLssE,oBAAkB,gBAClBqjI,6BAA4Bh+L,KAAKigB,MAAM2yB,KACvC4R,aAAYxkD,KAAKigB,MAAMg+K,WACvB9lJ,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uCACX6P,KAAKigB,MAAM3vB,yMCxBjB,SAAS4tM,GAAcj+K,GAClC,OACIk4B,GAAAllD,EAAA/D,cAACivM,GAAD,CAAWvrJ,KAAM3yB,EAAM2yB,KACnBziD,UAAU,mBACVgoD,GAAAllD,EAAA/D,cAAA,YAAO+wB,EAAM3vB,UACb6nD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6B0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SACzEzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,qBDyB/B+4I,GAAUnlJ,UAAY,CAClBtoD,UAAWuoD,KAAUj5B,OACrBmzB,KAAM8F,KAAUj5B,OAChBw+K,UAAWvlJ,KAAUj5B,OACrBnvB,SAAUooD,KAAU0lJ,UAAU,CAC1B1lJ,KAAU2lJ,QAAQ3lJ,KAAU9lB,MAC5B8lB,KAAU9lB,QCzBlBsrK,GAAczlJ,UAAY,CACtB7F,KAAM8F,KAAUj5B,OAAOqlC,WACvBx0D,SAAUooD,KAAUj5B,QClBjB,IAOM6+K,GAAa,eACbC,GAAgB,8dCHRC,+kBAAsB3lJ,KAAMC,wDAEzC,OAAO94C,KAAKigB,MAAMw+K,WAAaz+L,KAAKigB,MAAMw+K,WAAa,4CAIvD,GAAIz+L,KAAKigB,MAAMvY,WACX,OAAO,KAGX,GAAI1H,KAAKigB,MAAMvoB,OACX,OAAOsI,KAAKigB,MAAMvoB,OAGtB,IACIgnM,EADEC,EAAgB3+L,KAAKigB,MAAMhO,WAAa,SAAW,MAIrDysL,EADA1+L,KAAKigB,MAAMhO,WACM,qBAEA,gBAGrB,IAAM2sL,EAAgB5+L,KAAKigB,MAAMmmB,MAAMy4J,WAAW,IAAK,KAEvD,OACI1mJ,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,iDACV9B,KAAK,SACLL,GAAE,GAAA/C,OAAK+U,KAAKigB,MAAMhO,WAAa,oBAAsB,gBAAnDhnB,OAAoE2zM,GACtEtmJ,QAASt4C,KAAKigB,MAAMq4B,QACpBkM,aAAYk6I,GACZvmJ,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,kBACZgoD,GAAAllD,EAAA/D,cAAA,YAAOyvM,sCAOnB,IAAMG,EAAet3J,YAASxnC,KAAKigB,MAAM6+K,cAAgB9+L,KAAKigB,MAAM6+K,aDhCtC,WCkC9B,OACI3mJ,GAAAllD,EAAA/D,cAAA,OACIiB,UAAS,iBAAAlF,OAAmB+U,KAAKigB,MAAM8+K,WAA9B,KAAA9zM,OAA4C+U,KAAKigB,MAAMhO,WAAa,cAAgB,GAApF,KAAAhnB,OAA0F+U,KAAKigB,MAAMvY,WAAa,cAAgB,IAC3Is3L,sBAAqBF,GACrB3mJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uBACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0BACVgoD,GAAAllD,EAAA/D,cAAA,YAAO8Q,KAAKigB,MAAMmmB,OAEdpmC,KAAKigB,MAAMg/K,aACP9mJ,GAAAllD,EAAA/D,cAAA,QACIiB,UAAU,yBAAyB6P,KAAKigB,MAAMg/K,cAAuB,IAGrF9mJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BAA0B6P,KAAKigB,MAAMv1B,OAEvDsV,KAAKk/L,mBACLl/L,KAAKm/L,gBAEVhnJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCAAgC0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SAC5EzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,mxBAOnC25I,GAAchuG,aAAe,CACzBuuG,WAAY,IAGhBP,GAAc/lJ,UAAY,CACtBrS,MAAOsS,KAAUj5B,OAAOqlC,WACxB7yC,WAAYymC,KAAUqM,KAAKD,WAC3Bp9C,WAAYgxC,KAAUqM,KACtBr6D,KAAMguD,KAAUj5B,OAChBw/K,aAAcvmJ,KAAUj5B,OACxBg/K,WAAY/lJ,KAAU5qD,QACtB4J,OAAQghD,KAAU5qD,QAClBixM,WAAYrmJ,KAAUj5B,OACtB64B,QAASI,KAAUx3C,UChFFk+L,eACjB,SAAAA,EAAYn/K,GAAO,IAAA3Q,IAAA,uCAAA8vL,4DAAAC,CAAAr/L,OACfsP,MAAAgwL,GAAAF,GAAA71M,KAAAyW,KAAMigB,+CAANjgB,SAEKs4C,QAAUhpC,EAAKgpC,QAAQxrC,KAAbyyL,MAAAjwL,KAHAA,qPADwBupC,KAAMC,+CAU7C,GAFA94C,KAAKigB,MAAMq5G,SAASt5H,KAAKigB,MAAM0+B,aAAa3wD,KAEvCgS,KAAKigB,MAAM0+B,aAAa1sC,WAAY,CACrC,IAAM0sC,EAAe3+C,KAAKigB,MAAM0+B,aAC1BxC,EAAUwC,EAAa9C,SAAS,GAChCiI,EAAe3H,EAAQjU,MvcpBX,IucsBlBqQ,KAAIwL,mBAAmBL,KAAoB87I,YAAa,CACpD3zJ,SAAU/D,GAAiBE,IAC3B79C,MAAO25D,EACPrvD,MAAO,CACH,CACIuvD,QAAS7H,EAAQ0C,UACjBoF,UAAS,GAAAh5D,OAAKkxD,EAAQn7C,IAAb,OAAA/V,OAAsB0zD,EAAavY,OAC5C8B,MAAO4b,EACP7H,SAAU,oDAQ1B,IAAKzU,YAASxnC,KAAKigB,SAAWunB,YAASxnC,KAAKigB,MAAM0+B,cAAe,OAAO,KADvD,IAAAwT,EAGqDnyD,KAAKigB,MAAnDw/K,EAHPttI,EAGTxT,aAAgB8gJ,WAA8BC,EAHrCvtI,EAGqBxT,aAAgB+gJ,UAEtD,IAAKl4J,YAASi4J,IAAeC,EAAW,OAAO,KAL9B,IAOTt5J,EAAsCq5J,EAAtCr5J,MAAO2sG,EAA+B0sD,EAA/B1sD,gBAAiBhsF,EAAc04I,EAAd14I,UAEhC,OAAKvf,YAASpB,GAEP,CACHA,MAAOA,EACP2sG,gBAAiBA,EACjBhsF,UAAWA,GALc,qDAU7B,IAAM04I,EAAaz/L,KAAK2/L,qBAExB,IAAKn4J,YAASi4J,GAAa,OAAO,KAHd,IAKZr5J,EAAsCq5J,EAAtCr5J,MAAO2sG,EAA+B0sD,EAA/B1sD,gBAAiBhsF,EAAc04I,EAAd14I,UAE1B64I,EAAiBp4J,YAASurG,IAAoBvrG,YAASuf,GACvD,CAAEgsF,gBAAiBA,EAAiBvrF,MAAOT,GAC3C,GAEN,OACI5O,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mCACX6B,MAAO4tM,GACNx5J,0CAMT,OAAIpmC,KAAKigB,MAAM0+B,aAAakhJ,WAEpB1nJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCAAf,kCAA8EgoD,GAAAllD,EAAA/D,cAAA,KAC1E0jD,KAAK,yBADqE,WAK/E,sCAIP,IAAM+L,EAAe3+C,KAAKigB,MAAM0+B,aAE1BmhJ,EAAgB,GAChBC,EAAqB,GACrBC,EAAkBhgM,KAAK2/L,qBAEzBhhJ,EAAashJ,kBACbF,EAAmBjrM,KAAK,yBAGvB6pD,EAAauhJ,WAAcvhJ,EAAa+gJ,YAAal4J,YAASw4J,IAC/DD,EAAmBjrM,KAAK,oCAGxB6pD,EAAa+gJ,WACbI,EAAchrM,KAAK,eAGnB6pD,EAAauhJ,WACbJ,EAAchrM,KAAK,eAEvB,IAAM4S,EAAai3C,EAAauhJ,WAAavhJ,EAAa+gJ,UAEpDrrK,EAAO,GAAAppC,OAAM80M,EAAmBjgM,KAAK,KAA9B,KAAA7U,OAAsC60M,EAAchgM,KAAK,MAEtE,OACIq4C,GAAAllD,EAAA/D,cAACixM,GAAD,CAAepB,WAAY1qK,EACvBpiB,WAAY0sC,EAAa1sC,WACzBvK,WAAYA,EACZo3L,aAAcngJ,EAAamgJ,aAC3B14J,MAAOuY,EAAavY,MACpB17C,KAAMi0D,EAAayhJ,YACnBnB,aAActgJ,EAAasgJ,aAC3BvnM,OAAQsI,KAAKm/L,eACbV,WAAYz+L,KAAKqgM,wBACjB/nJ,QAASt4C,KAAKs4C,69BAK9B8mJ,GAAkB3mJ,UAAY,CAC1BkG,aAAcjG,KAAUnsD,OACxB+sI,SAAU5gF,KAAUx3C,UCzGHo/L,eACjB,SAAAA,EAAYrgL,GAAO,IAAA3Q,IAAA,uCAAAgxL,4DAAAC,CAAAvgM,OACfsP,MAAAkxL,GAAAF,GAAA/2M,KAAAyW,KAAMigB,+CAANjgB,SACKygM,YAAc5nJ,KAAMwwB,YACzB/5D,EAAKoxL,YAAcpxL,EAAKoxL,YAAY5zL,KAAjB6zL,MAAArxL,KAHJA,qPADqBupC,KAAMC,yDAQ1C94C,KAAKygM,YAAY5rM,QAAQ2b,4CAGjBsxC,GACR,IAAI8+I,EAAoB,KAExB5gM,KAAKigB,MAAM4gL,eAAer7L,QAAQ,SAACs7L,GAAD,OAC9BA,EAAUnlJ,cAAcn2C,QAAQ,SAACm5C,GACxBiiJ,GACDjiJ,EAAa3wD,KAAO8zD,IAEpB8+I,EAAoBjiJ,OAIhC3+C,KAAKigB,MAAM8gL,qBAAqBH,+CAGhBjiJ,GAChB,IAAIyhJ,EAEJ,OAAQpgM,KAAKigB,MAAM+gL,iBACf,IHrDqB,WGsDjBZ,EAAcpgM,KAAKihM,wBAAwBtiJ,GAC3C,MACJ,IHvDwB,cGwDxB,IHvDoC,0BGwDhCyhJ,EAAcpgM,KAAKkhM,2BAA2BviJ,GAC9C,MACJ,IHzDoB,UG0DpB,IHzD+B,qBG0D3ByhJ,EAAcpgM,KAAKmhM,uBAAuBxiJ,GAC1C,MACJ,QACIyhJ,EAAc,GAGtB,OAAOA,kDAGazhJ,GACpB,IAAMyiJ,EAAcziJ,EAAa9C,SAAS7lC,KAAK,SAACmmC,GAAD,OAC3CA,EAAQ9tD,OAAS2sD,IxbpEI,UwboEmBmB,EAAQn7C,MAC9CqgM,EAAc1iJ,EAAa9C,SAAS7lC,KAAK,SAACmmC,GAAD,OAC3CA,EAAQ9tD,OAAS2sD,IxbrEI,UwbqEmBmB,EAAQn7C,MAC9CsgM,EAAe3iJ,EAAa9C,SAAS7lC,KAAK,SAACmmC,GAAD,OAC5CA,EAAQ9tD,OAAS2sD,IxbtEK,WwbsEkBmB,EAAQn7C,MAE9CugM,EAAU,GAOhB,GANIH,GACAG,EAAQzsM,KAAR,GAAA7J,OAAgBg9C,GAAeyc,gBAAgB08I,EAAYl5J,OAA3D,eAEAm5J,GACAE,EAAQzsM,KAAR,GAAA7J,OAAgBg9C,GAAeyc,gBAAgB28I,EAAYn5J,OAA3D,eAEAo5J,EAAc,CACd,IAAI52M,EAAO,cAEgB,IAAvB42M,EAAap5J,QACbx9C,EAAI,GAAAO,OAAMg9C,GAAeyc,gBAAgB48I,EAAap5J,OAAlD,gBAGRq5J,EAAQzsM,KAAKpK,GAGjB,OAAO62M,EAAQzhM,KAAK,0DAGG6+C,GACvB,IAAM6iJ,EAAoB7iJ,EAAa9C,SAAS7lC,KAAK,SAACmmC,GAAD,OACjDA,EAAQ9tD,OAAS4sD,KACjBvwD,EAAO,GAMX,OAJI82M,IACA92M,GAAI,GAAAO,OAAOg9C,GAAeyc,gBAAgB88I,EAAkBt5J,OAAxD,0BAGDx9C,iDAGYi0D,GACnB,IAAM8iJ,EAAgB9iJ,EAAa9C,SAAS7lC,KAAK,SAAC0rL,GAAD,OAC7CA,EAAQ1gM,MAAQk6C,KAEhBxwD,EAAO,GAMX,OAJI+2M,IACA/2M,GAAI,GAAAO,OAAOg9C,GAAeyc,gBAAgB+8I,EAAcv5J,OAApD,KAAAj9C,OAA8Dw2M,EAAcE,aAG7Ej3M,6CAGQ,IAAA6kB,EAAAvP,KACT6gM,EAAiB7gM,KAAKigB,MAAM4gL,eAElC,OAAKA,EAEEA,EAAe35L,IAAI,SAACy5E,GAAD,OACtBxoC,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBAAiBuE,IAAKisF,EAAS3yF,IAC1CmqD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,0CAA0CwwF,EAASv6C,OAChE72B,EAAKqyL,oBAAoBjhH,EAAShlC,kBALf,iDASZkmJ,GAAmB,IAAApyL,EAAAzP,KACnC,OAAO6hM,EAAkB36L,IAAI,SAACy3C,GAC1B,IAAMmjJ,EAAkBC,GAAc,GAAIpjJ,GAM1C,OAJAmjJ,EAAgB1B,YAAc3wL,EAAKuyL,oBAAoBrjJ,GACvDmjJ,EAAgB7vL,WAAaxC,EAAKwQ,MAAM4hL,kBAAkBnsM,KAAK,SAACusM,GAAD,OAC3DA,EAAcj0M,KAAO8zM,EAAgB9zM,KAGrCmqD,GAAAllD,EAAA/D,cAAA,OAAKwF,IAAKotM,EAAgB9zM,GAAImC,UAAU,wBACpCgoD,GAAAllD,EAAA/D,cAACgzM,GAAD,CACIvjJ,aAAcmjJ,EACdxoE,SAAU7pH,EAAKixL,kDAQ/B,OACIvoJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,WACXgoD,GAAAllD,EAAA/D,cAAA,MACIiB,UAAU,4BACVyX,SAAS,KACTonD,IAAKhvD,KAAKygM,aACZzgM,KAAKigB,MAAMgmJ,WACb9tH,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,SAAS6P,KAAKigB,MAAMkiL,WAAWC,oBH/JpB,yBGiKrBpiM,KAAKigB,MAAM+gL,iBACXx5J,YAASxnC,KAAKigB,MAAMkiL,WAAWE,sBAC/B76J,YAASxnC,KAAKigB,MAAMkiL,WAAWG,uBAC3BnqJ,GAAAllD,EAAA/D,cAACgvM,GAAD,CAAetrJ,KAAM5yC,KAAKigB,MAAMkiL,WAAWE,qBACtCriM,KAAKigB,MAAMkiL,WAAWG,uBAItCtiM,KAAKuiM,maAMtBjC,GAAe7nJ,UAAY,CACvB0pJ,WAAYzpJ,KAAUnsD,OAAOu4D,WAC7B3I,QAASzD,KAAUnsD,OACnBs1M,kBAAmBnpJ,KAAUjjD,MAC7BorM,eAAgBnoJ,KAAUjjD,MAC1BurM,gBAAiBtoJ,KAAUj5B,OAAOqlC,WAClCmhH,UAAWvtH,KAAUj5B,OACrBshL,qBAAsBroJ,KAAUx3C,MCzL7B,IAAMshM,GAAuB3pJ,KAAM4pF,itBCKpCggE,eACF,SAAAA,EAAYxiL,GAAO,IAAA3Q,IAAA,uCAAAmzL,4DAAAC,CAAA1iM,OACfsP,MAAAqzL,GAAAF,GAAAl5M,KAAAyW,KAAMigB,+CAANjgB,SAEK4iM,WAAatzL,EAAKszL,WAAW91L,KAAhB+1L,MAAAvzL,KAHHA,qPADUupC,KAAMC,mDAOrBkJ,GACV,OAAKA,GAAkBA,EAAc/F,SAGjC9D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBAAmBuE,IAAKstD,EAAch0D,IACjDmqD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sBAAsB6xD,EAAc5b,OACnD+R,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBAAf,IAAyC6xD,EAAc/F,UACvD9D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sBAEP6xD,EAAc9Z,MAAQ,EAClBD,GAAeyc,gBAAgB1C,EAAcE,KAC7C,SAVkC,mDAiBpC,IAAA3yC,EAAAvP,KACZ8iM,EAAwB9iM,KAAK+iM,2BAEnC,OAAqC,IAAjCD,EAAsBr1M,OACfuS,KAAK4qD,cAGTk4I,EAAsB57L,IAAI,SAACw1C,GAAD,OAC7BvE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,cAAcuE,IAAKgoD,EAAmB1uD,IACjDmqD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,2BAA2BusD,EAAmBtW,OAExDsW,EAAmBb,SAAS1lD,KAAK,SAAClD,EAAGC,GAAJ,OAAUD,EAAEipD,UAAYhpD,EAAEgpD,YACtDh1C,IAAI,SAAC86C,GAAD,OAAmBzyC,EAAKyzL,cAAchhJ,8CAM3D,OACI7J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCAAf,4EAMR,IAAM8yM,qUAAuBC,CAAA,GAAKljM,KAAKigB,MAAMq+B,OAAO3C,eAOpD,OANA37C,KAAKigB,MAAM4hL,kBAAkBr8L,QAAQ,SAACm5C,GAC5BA,EAAa3wD,MAAMi1M,IACrBA,EAAqBtkJ,EAAa3wD,IAAM2wD,KAIzC3yD,OAAO+kB,OAAOkyL,sCAGdE,EAAeC,GACtB,GAAsB,QAAlBD,EAAyB,CACzB,IAAML,EAAwB9iM,KAAK+iM,2BAE7BM,EAAc35I,GAAe45I,oBAAoBR,GACjD34I,EAAcT,GAAeU,kBAAkB04I,GAErDvqJ,KAAIwL,mBAAmBL,KAAoB2G,eAAgB,CACvDxe,SAAU/D,GAAiBE,IAC3B79C,MAAOk5M,EACP5uM,MAAO01D,sCAKV,IAAA16C,EAAAzP,KACL,OACIm4C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8BACXgoD,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,+BACV9B,KAAK,SACLiqD,QAAS,kBAAM7oC,EAAKwQ,MAAMsjL,yBAE1BprJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0CACX0B,MAAM,KAAK8gC,OAAO,IAAIiyB,UAAU,SAChCzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,uBAGvB1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yCACX0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SACjCzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,kBAEnB1M,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,iCAAd,eACAgoD,GAAAllD,EAAA/D,cAAA,KAAGiB,UAAU,uCACTyiD,KAAM5yC,KAAKigB,MAAM4iC,UACjB2B,aAAW,cACXx2D,GAAG,cAHP,SAKJmqD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iCACV6P,KAAK4hM,wBAGdzpJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qCACXgoD,GAAAllD,EAAA/D,cAAA,qBACAipD,GAAAllD,EAAA/D,cAAA,QACIiB,UAAU,+BAA+B83C,GAAeyc,gBAAgB1kD,KAAKigB,MAAMq+B,OAAOhW,SAEjG,YAAatoC,KAAKigB,MAAMq+B,OACrBnG,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qCACXgoD,GAAAllD,EAAA/D,cAAA,0BACAipD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,oCAChBgoD,GAAAllD,EAAA/D,cAAA,QACIiB,UAAU,+BAA+B83C,GAAeyc,gBAAgB1kD,KAAKigB,MAAMq+B,OAAO6D,WAElG,KACJhK,GAAAllD,EAAA/D,cAAA,OAAKgwH,YAAU,UACVl/G,KAAKigB,MAAM88F,eAAe/8G,KAAK4iM,8MAS5DH,GAAmBhqJ,UAAY,CAC3BopJ,kBAAmBnpJ,KAAUjjD,MAC7B6oD,OAAQ5F,KAAUnsD,OAClBg3M,qBAAsB7qJ,KAAUx3C,KAChC67G,eAAgBrkE,KAAUx3C,KAC1BsiM,GAAI9qJ,KAAUnsD,OAAOu4D,WACrBjC,UAAWnK,KAAUj5B,QAGVgkL,ID9I0B3qJ,GC8I1B2qJ,ID9I0B3qJ,GC8ID2pJ,GD7I7B,SAACxiL,GAAD,OACHk4B,GAAAllD,EAAA/D,cAACszM,GAAqBkB,SAAtB,KACK,SAAC93F,GAAD,OAAazzD,GAAAllD,EAAA/D,cAAC4pD,GAAD6qJ,GAAA,GAAe1jL,EAAf,CAAsBujL,GAAI53F,ilBES/Bg4F,eACjB,SAAAA,EAAY3jL,GAAO,IAAA3Q,IAAA,uCAAAs0L,4DAAAC,CAAA7jM,OACfsP,MAAAw0L,GAAAF,GAAAr6M,KAAAyW,KAAMigB,+CAANjgB,SAEK+jM,gBAAkBz0L,EAAKy0L,gBAAgBj3L,KAArBk3L,MAAA10L,KAHRA,qPADqBupC,KAAMC,yDAQtC94C,KAAKigB,MAAMgkL,4BAA8BjkM,KAAKkkM,uBAC9ClkM,KAAKigB,MAAMwoG,QAAQ3zH,KAAKkL,KAAKmkM,wDAIrBzwM,EAAOkvM,GACd5iM,KAAKkkM,uBACNxwM,EAAMkmB,iBAGVgpL,EAAW,WAAYtE,2CAIvB,IAAI8F,EAAY7F,GAShB,MN5CwB,YMqCpBv+L,KAAKigB,MAAM+gL,kBACXoD,EN/BiB,mBANc,uBMuC/BpkM,KAAKigB,MAAM+gL,kBACXoD,ENjC4B,8BMoCzBA,8CAIP,MNlD4B,gBMkDxBpkM,KAAKigB,MAAM+gL,iBNjDyB,4BMkDpChhM,KAAKigB,MAAM+gL,gBAEJhhM,KAAKigB,MAAM4gL,eAAe,GAAGz6J,MAGjCpmC,KAAKigB,MAAMkiL,WAAWkC,mEAI7B,OAAOrkM,KAAKigB,MAAM4hL,kBAAkBp0M,OAAS,mCAGxC,IAAA8hB,EAAAvP,KACCkkM,EAAsBlkM,KAAKkkM,sBAC3BI,EAAwBJ,EAAsB,GAAK,cAEzD,OACI/rJ,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KACI3K,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACXgoD,GAAAllD,EAAA/D,cAACq1M,GAAD,CACIpC,WAAYniM,KAAKigB,MAAMkiL,WACvB7jJ,OAAQt+C,KAAKigB,MAAMq+B,OACnBujJ,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9BhB,eAAgB7gM,KAAKigB,MAAM4gL,eAC3BG,gBAAiBhhM,KAAKigB,MAAM+gL,gBAC5B/6B,UAAWjmK,KAAKwkM,oBAChBzD,qBAAsB/gM,KAAKigB,MAAM8gL,wBAGzC5oJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBACXgoD,GAAAllD,EAAA/D,cAACu1M,GAAD,CAAoB5C,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9CvjJ,OAAQt+C,KAAKigB,MAAMq+B,OACnBilJ,qBAAsBvjM,KAAKigB,MAAMsjL,qBACjC1gJ,UAAW7iD,KAAKigB,MAAM4iC,UACtBk6D,eAAgB,SAAC6lF,GAAD,OACZzqJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kCACXgoD,GAAAllD,EAAA/D,cAACw1M,GAAA,EAAD,CACI12M,GAAG,iBACHmC,UAAS,4DAAAlF,OAA8Dq5M,GACvE9uK,GAAI0uK,EAAsB30L,EAAK40L,eAAiB,GAChD7rJ,QAAS,SAACn6C,GAAD,OAAOoR,EAAKw0L,gBAAgB5lM,EAAGykM,KACxCzqJ,GAAAllD,EAAA/D,cAAA,wBACAipD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BACX0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SACjCzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,4NAWvD++I,GAAenrJ,UAAY,CACvB0pJ,WAAYzpJ,KAAUnsD,OAAOu4D,WAC7BxG,OAAQ5F,KAAUnsD,OAClBs1M,kBAAmBnpJ,KAAUjjD,MAC7BorM,eAAgBnoJ,KAAUjjD,MAC1BurM,gBAAiBtoJ,KAAUj5B,OAAOqlC,WAClCi8I,qBAAsBroJ,KAAUx3C,KAChCqiM,qBAAsB7qJ,KAAUx3C,KAChCunH,QAAS/vE,KAAUnsD,OAAOu4D,WAC1Bm/I,2BAA4BvrJ,KAAUqM,KAAKD,WAC3C6/I,iCAAkCjsJ,KAAUqM,MChHhD,IAAM6/I,GAAY,SAAC3kL,GAAD,OACdk4B,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBACXgoD,GAAAllD,EAAA/D,cAACw1M,GAAA,EAAD,CAAMv0M,UAAU,qBAAqBqlC,GAAI8oK,IACrCnmJ,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,mBAAhB,eACAgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBAAyB0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SACrEzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,qBAGvB1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gBACV8vB,EAAM4hL,kBAAkB36L,IAAI,SAACy3C,GAAD,OACzBxG,GAAAllD,EAAA/D,cAACw1M,GAAA,EAAD,CACIv0M,UAAU,qBACVqlC,GAAI8oK,GACJ5pM,IAAKiqD,EAAa3wD,IACpB2wD,EAAavY,YAM/Bw+J,GAAUnsJ,UAAY,CAClBopJ,kBAAmBnpJ,KAAUjjD,OAGlBmvM,UCzBA,SAASC,GAAS5kL,GAC7B,OACIk4B,GAAAllD,EAAA/D,cAACw1M,GAAA,EAAD,CAAMv0M,UAAU,0DACZqlC,GAAIvV,EAAM6kL,OACV3sJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BAA0B0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SACtEzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,sBAEnB1M,GAAAllD,EAAA/D,cAAA,YAAO+wB,EAAM3vB,WCRV,SAASy0M,GAAY9kL,GAChC,OACIk4B,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,uCACV9B,KAAK,SACLiqD,QAASr4B,EAAMq4B,SACfH,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uCACZgoD,GAAAllD,EAAA/D,cAAA,YAAO+wB,EAAM3vB,UACb6nD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6B0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SACzEzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,ylBDInCggJ,GAASpsJ,UAAY,CACjBnoD,SAAUooD,KAAUj5B,OACpBqlL,MAAOpsJ,KAAUj5B,OAAOqlC,YCC5BigJ,GAAYtsJ,UAAY,CACpBnoD,SAAUooD,KAAUj5B,OACpB64B,QAASI,KAAUx3C,KAAK4jD,gBCGPkgJ,eACjB,SAAAA,EAAY/kL,GAAO,IAAA3Q,UAAA,uCAAA01L,4DAAAC,CAAAjlM,QACfklM,GAAAF,GAAAz7M,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,UA4FW,SAAC7B,EAAGgmD,GACf70C,EAAK61L,kBAAkBhnM,EAAEpO,OAAO5F,MAAOmlB,EAAK2Q,MAAMk8B,QAAQF,SAAU3sC,EAAK2Q,MAAMk8B,QAAQC,YAAa+H,OA9FrF,oBAAAihJ,MAAA91L,2FAGfA,EAAK+1L,0BAA2B,EAChC/1L,EAAKg2L,0BAA2B,EAChCh2L,EAAKm0C,cAAgB,EALNn0C,qPADkBupC,KAAMC,sDAS1BmD,EAAUspJ,EAAiBnpJ,EAAa+H,GACrD,IAAIqhJ,EAAc,EACZC,EAAuBr5M,cAAI4T,KAAKigB,MAAO,wBAAoB50B,GAIjE,GAFiB,KAAb4wD,IAAmBA,EAAW,GAE9Bj8C,KAAKigB,MAAMk8B,QAAQ9tD,OAAS4sD,GAA0B,CACtD,IAAMyqJ,EAAmBl+J,YAASi+J,IAAkD,IAAzBA,EAA6BA,EAAuBzlM,KAAKyjD,cAC9GkiJ,EAA2Bt4M,KAAKC,MAAM8uD,EAAcspJ,GAAoBA,EAE9E,GAAIzpJ,EAAWypJ,EAAmB,EAAG,CACjC,IAAME,EAAkBv4M,KAAKgiE,MAAMpT,EAAWypJ,GAAoBA,EAClEF,EAAcI,EAAkBD,EAA2BA,EAA2BC,OAEtFJ,EAAcvpJ,IAAaspJ,EAAkB,EAAKtpJ,EAAWG,EAAeH,EAAWkI,EAAiBlI,EAAWspJ,EAAkB,EAAIphJ,EAAiBlI,EAAY0pJ,OAG1KH,EAAcvpJ,IAAaspJ,EAAkB,EAAKtpJ,GAAYG,EAAeH,EAAWkI,EAAiBlI,EAAWspJ,EAAkB,EAAIphJ,EAAiBlI,EAAYG,EAG3K,IAAMypJ,EAAsB,CACxB19L,UAAW,GACXs7C,cAAe,EACfwa,SAAS,EACTunI,cACAD,mBAGJvlM,KAAK8lM,qBAAqBD,GAEtBj7M,OAAOg2B,SAASgyB,KAAK3nC,SVpDO,8BUqD5BjL,KAAKigB,MAAM8lL,wBACP,CACI/3M,GAAIgS,KAAKigB,MAAMk8B,QAAQnuD,GACvBK,KAAM2R,KAAKigB,MAAMk8B,QAAQ9tD,KACzB2S,IAAKhB,KAAKigB,MAAMk8B,QAAQn7C,KAE5BwkM,GAGJxlM,KAAKigB,MAAM8lL,wBACP,CACI13M,KAAM2R,KAAKigB,MAAMk8B,QAAQ9tD,KACzB2S,IAAKhB,KAAKigB,MAAMk8B,QAAQn7C,KAE5BwkM,gDAKSQ,GAWjB,IAVKhmM,KAAKslM,0BAA4BU,EAAWR,YAAcQ,EAAWT,iBACtES,EAAW79L,UAAYu7C,KAAoBC,YAC3CqiJ,EAAWviJ,cAAgBuiJ,EAAWR,YAAcQ,EAAWT,gBAC/DS,EAAW/nI,SAAU,IACbj+D,KAAKqlM,0BAA4BW,EAAWR,YAAcQ,EAAWT,kBAC7ES,EAAW79L,UAAYu7C,KAAoBE,iBAC3CoiJ,EAAWviJ,cAAgBuiJ,EAAWT,gBAAkBS,EAAWR,YACnEQ,EAAW/nI,SAAU,GAGrB+nI,EAAW/nI,QAAS,CACpB,IAAMtiB,EAAgB37C,KAAKigB,MAAM4hL,kBAEjC,GAAIlmJ,EAAcluD,QAAUkuD,EAAc,GAAGE,SAASpuD,OAAQ,CAC1D,IAAMkxD,EAAehD,EAAc,GAC7BQ,EAAUwC,EAAa9C,SAAS,GAChCiI,EAAe3H,EAAQjU,M/cpGf,I+csGdqQ,KAAIwL,mBAAmBiiJ,EAAW79L,UAAW,CACzC0jC,SAAU/D,GAAiBE,IAC3B79C,MAAO25D,EAAekiJ,EAAWviJ,cACjChvD,MAAO,CACH,CACIuvD,QAAS7H,EAAQ0C,UACjBoF,UAAS,GAAAh5D,OAAKkxD,EAAQn7C,IAAb,OAAA/V,OAAsB0zD,EAAavY,OAC5C8B,MAAO4b,EACP7H,SAAU+pJ,EAAWviJ,kEAazC,IAAMtH,EAAUn8C,KAAKigB,MAAMk8B,QAC3B,SAAAlxD,OAAUg9C,GAAeyc,gBAAgBvI,EAAQjU,QAAjDj9C,OAA0DkxD,EAAQwlJ,WAAR,IAAA12M,OAAyBkxD,EAAQwlJ,YAAe,4CAI1G,OAAI3hM,KAAKigB,MAAMk8B,QAAQjU,MAAQ,EAEvBiQ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBAAyB6P,KAAKgiM,uBAG7C7pJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,uDAAf,6CAIR,M/blI0B,W+bkItB6P,KAAKigB,MAAMk8B,QAAQn7C,IAEfm3C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACV6P,KAAKigB,MAAMkiL,WAAW8D,kBAD3B,IACmD9tJ,GAAAllD,EAAA/D,cAACivM,GAAD,CAC3ChuM,UAAU,4BACVyiD,KAAM5yC,KAAKigB,MAAMkiL,WAAW+D,qBAC5B1hJ,aAAW,yCAAyCxkD,KAAKigB,MAAMkiL,WAAWgE,wB/blI3D,e+bqI3BnmM,KAAKigB,MAAMk8B,QAAQn7C,IAEfm3C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACV6P,KAAKigB,MAAMkiL,WAAWiE,sBAD3B,K/btI6B,oB+b0IjCpmM,KAAKigB,MAAMk8B,QAAQn7C,IAEfm3C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACV6P,KAAKigB,MAAMkiL,WAAWkE,2BAD3B,K/b3IwC,8B+b+I5CrmM,KAAKigB,MAAMk8B,QAAQn7C,IAEfm3C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACV6P,KAAKigB,MAAMkiL,WAAWmE,qCAD3B,KAID,gDAGQniJ,GAAe,IAAA50C,EAAAvP,KAC1BumM,EAAkB,GAClBC,EAAU,GACNd,EAAqB1lM,KAAKigB,MAA1BylL,iBAoBR,OAlBI1lM,KAAKigB,MAAMk8B,QAAQ9tD,OAAS4sD,KAC5Bj7C,KAAKyjD,cAAgBjc,YAASk+J,IAA0C,IAArBA,EAAyBA,EAAmB1lM,KAAKyjD,eAGpE,IAAhCzjD,KAAKigB,MAAMk8B,QAAQF,UACnBsqJ,GAAmB,eACnBvmM,KAAKqlM,0BAA2B,GAEhCrlM,KAAKqlM,0BAA2B,EAGhCrlM,KAAKigB,MAAMk8B,QAAQF,UAAYj8C,KAAKigB,MAAMk8B,QAAQC,aAAgBp8C,KAAKigB,MAAMk8B,QAAQF,SAAWj8C,KAAKyjD,cAAiBzjD,KAAKigB,MAAMk8B,QAAQC,aACzIoqJ,GAAW,eACXxmM,KAAKslM,0BAA2B,GAEhCtlM,KAAKslM,0BAA2B,EAIhCntJ,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KACI3K,GAAAllD,EAAA/D,cAAA,UACIb,KAAK,SACL8B,UAAS,wBAAAlF,OAA0Bs7M,GACnCv4M,GAAE,oBAAA/C,OAAsB+U,KAAKigB,MAAMk8B,QAAQn7C,KAC3CtM,IAAG,oBAAAzJ,OAAsB+U,KAAKigB,MAAMk8B,QAAQ4C,uBAC5CzG,QAAS,kBAAM/oC,EAAK41L,iBAAiB51L,EAAK0Q,MAAMk8B,QAAQF,SAAW1sC,EAAKk0C,cAAel0C,EAAK0Q,MAAMk8B,QAAQF,SAAU1sC,EAAK0Q,MAAMk8B,QAAQC,YAAa+H,IACpJj8C,SAAUlI,KAAKigB,MAAMk8B,QAAQz0C,WAC7B88C,aAAA,GAAAv5D,OAAe+U,KAAKigB,MAAMk8B,QAAQ/V,MAAlC,+BACA+R,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,kBACZgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SACnDzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,mBAI3B1M,GAAAllD,EAAA/D,cAAA,SAAOiB,UAAU,sBAAsBhG,MAAO6V,KAAKigB,MAAMk8B,QAAQF,SAAU9uD,IAAI,IAAIC,IAAG,GAAAnC,OAAK+U,KAAKigB,MAAMk8B,QAAQC,aAC1GlsB,SAAU,SAAC/xB,GAAD,OAAOoR,EAAK+zD,aAAanlE,EAAGgmD,MAE1ChM,GAAAllD,EAAA/D,cAAA,UACIb,KAAK,SACL8B,UAAS,wBAAAlF,OAA0Bu7M,GACnCx4M,GAAE,oBAAA/C,OAAsB+U,KAAKigB,MAAMk8B,QAAQn7C,KAC3CtM,IAAG,oBAAAzJ,OAAsB+U,KAAKigB,MAAMk8B,QAAQ4C,uBAC5CzG,QAAS,kBAAM/oC,EAAK41L,iBAAiB51L,EAAK0Q,MAAMk8B,QAAQF,SAAW1sC,EAAKk0C,cAAel0C,EAAK0Q,MAAMk8B,QAAQF,SAAU1sC,EAAK0Q,MAAMk8B,QAAQC,YAAa+H,IACpJj8C,SAAUlI,KAAKigB,MAAMk8B,QAAQz0C,WAC7B88C,aAAA,GAAAv5D,OAAe+U,KAAKigB,MAAMk8B,QAAQ/V,MAAlC,+BACA+R,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,kBACZgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,OAAO0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SACnDzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,iEASnC,IAAM4hJ,EAAe,GACjBtiJ,EAAgB,EAMpB,OAJInkD,KAAKigB,MAAMk8B,QAAQC,YAAcp8C,KAAKigB,MAAMk8B,QAAQE,eACpDr8C,KAAKigB,MAAMk8B,QAAQC,YAAcp8C,KAAKigB,MAAMk8B,QAAQE,c/b3NzB,e+b8N3Br8C,KAAKigB,MAAMk8B,QAAQn7C,K/b7Nc,oB+b6NqBhB,KAAKigB,MAAMk8B,QAAQn7C,K/b5N7B,8B+b4NsEhB,KAAKigB,MAAMk8B,QAAQn7C,KACrIylM,EAAa3xM,KAAKkL,KAAK0mM,mBAAmBviJ,IACnCsiJ,I/bjNwB,mB+boN/BzmM,KAAKigB,MAAMk8B,QAAQn7C,KACnBmjD,E/bhNyC,G+biNzCsiJ,EAAa3xM,KAAKkL,KAAK0mM,mBAAmBviJ,K/brNjB,c+bsNlBnkD,KAAKigB,MAAMk8B,QAAQn7C,KAC1BmjD,EAAgB,EAEhBsiJ,EAAa3xM,KAAKkL,KAAK0mM,mBAAmBviJ,KAE1CsiJ,EAAa3xM,KAAKkL,KAAK0mM,mBAAmBviJ,IAGvCsiJ,oCAIP,IAAMtqJ,EAAUn8C,KAAKigB,MAAMk8B,QACrBwqJ,EAAe3mM,KAAKigB,MAAM0mL,cAAgB,GAC1C5G,E/b3PmB,U+b2PE//L,KAAKigB,MAAMk8B,QAAQn7C,K/bnPT,oB+bmPsChB,KAAKigB,MAAMk8B,QAAQn7C,K/blP9C,8B+bkPuFhB,KAAKigB,MAAMk8B,QAAQn7C,IACtJ,qBAAuB,GAGrB0+L,IADavjJ,EAAQF,UAAYE,EAAQF,SAAW,IACzBE,EAAQujJ,UAEzC,OACIvnJ,GAAAllD,EAAA/D,cAAA,OACIiB,UAAS,GAAAlF,OAAK07M,EAAL,kBAAA17M,OAAkC80M,EAAlC,KAAA90M,OAAwDy0M,EAAY,cAAgB,GAApF,KAAAz0M,OAA0F+U,KAAKigB,MAAMk8B,QAAQC,aAAe,EAAI,wBAA0B,KACnKjE,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,sBACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,yBACVgoD,GAAAllD,EAAA/D,cAAA,YAAOitD,EAAQ/V,OAEX+V,EAAQ8iJ,aACJ9mJ,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,sBAAsBgsD,EAAQ8iJ,cAAuB,IAGhFj/L,KAAK4mM,iBAGLlH,EAGQ,KAHIvnJ,GAAAllD,EAAA/D,cAAA,OACTiB,UAAU,0BACT6P,KAAK6mM,wBAIjB7mM,KAAK8mM,4MCxRP,SAASC,GAAc9mL,GAClC,OACIk4B,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBACV8vB,EAAM+mL,YAAY9/L,IAAI,SAAC60C,GAAD,OACnB5D,GAAAllD,EAAA/D,cAAC+3M,GAAD,CACI9E,WAAYliL,EAAMkiL,WAClBztM,IAAKqnD,EAAO/tD,GACZmuD,QAASJ,EACT8lJ,kBAAmB5hL,EAAM4hL,kBACzBkE,wBAAyB9lL,EAAM8lL,wBAC/BL,iBAAkBzlL,EAAMylL,8dDoR5CV,GAAYvsJ,UAAY,CACpB0pJ,WAAYzpJ,KAAUnsD,OAAOu4D,WAC7B3I,QAASzD,KAAUnsD,OACnBs1M,kBAAmBnpJ,KAAUjjD,MAC7BswM,wBAAyBrtJ,KAAUx3C,KACnCylM,aAAcjuJ,KAAUj5B,OACxBuhL,gBAAiBtoJ,KAAUj5B,QCnR/BsnL,GAAcv2G,aAAe,CACzBw2G,YAAa,GACbnF,kBAAmB,IAGvBkF,GAActuJ,UAAY,CACtB0pJ,WAAYzpJ,KAAUnsD,OAAOu4D,WAC7BkiJ,YAAatuJ,KAAUjjD,MACvBosM,kBAAmBnpJ,KAAUjjD,MAC7BswM,wBAAyBrtJ,KAAUx3C,KAAK4jD,gBClBvBoiJ,eACjB,SAAAA,EAAYjnL,GAAO,IAAA3Q,IAAA,uCAAA43L,4DAAAC,CAAAnnM,OACfA,OAAAonM,GAAAF,GAAA39M,KAAAyW,KAAMigB,GAAN3Q,uKAAAtP,SACKygM,YAAc5nJ,KAAMwwB,YAFV/5D,qPADgCupC,KAAMC,yDAOrD94C,KAAKygM,YAAY5rM,QAAQ2b,yCAIzB,IAAMo3J,EAAgBh9K,OAAOg2B,SAASguK,SAAUx7L,cAChD,OACI+kD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,WACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,4BAA4ByX,SAAS,KAC/ConD,IAAKhvD,KAAKygM,aAAczgM,KAAKigB,MAAMkiL,WAAWkC,sBAClDlsJ,GAAAllD,EAAA/D,cAACm4M,GAAD,CAAWxF,kBAAmB7hM,KAAKigB,MAAM4hL,oBACzC1pJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,SAAS6P,KAAKigB,MAAMkiL,WAAWmF,uBAEzC9/J,YAASxnC,KAAKigB,MAAMkiL,WAAWoF,4BAC/B//J,YAASxnC,KAAKigB,MAAMkiL,WAAWqF,6BAC/BrvJ,GAAAllD,EAAA/D,cAACgvM,GAAD,CACItrJ,KAAM5yC,KAAKigB,MAAMkiL,WAAWoF,2BAA4BvnM,KAAKigB,MAAMkiL,WAAWqF,6BAGzF5/B,EAAa38J,SAAUunJ,KAAgBC,WAAYg1C,sBAChDtvJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BAA2B6P,KAAKigB,MAAMkiL,WAAWuF,wBACpEvvJ,GAAAllD,EAAA/D,cAAC63M,GAAD,CACI5E,WAAYniM,KAAKigB,MAAMkiL,WACvB6E,YAAahnM,KAAKigB,MAAM+mL,YACxBnF,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9BkE,wBAAyB/lM,KAAKigB,MAAM8lL,0BAExC5tJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBACXgoD,GAAAllD,EAAA/D,cAAC61M,GAAD,CAAazsJ,QAASt4C,KAAKigB,MAAM0nL,kBAAjC,mBACAxvJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACV6P,KAAKigB,MAAMkiL,WAAWyF,0BAD3B,IAGQpgK,YAASxnC,KAAKigB,MAAMkiL,WAAW0F,+BAC/BrgK,YAASxnC,KAAKigB,MAAMkiL,WAAW2F,gCAC/B3vJ,GAAAllD,EAAA/D,cAACivM,GAAD,CACIhuM,UAAU,4BACVyiD,KAAM5yC,KAAKigB,MAAMkiL,WAAW0F,6BAC5B5J,UAAU,kBAAkBj+L,KAAKigB,MAAMkiL,WAAW2F,gCAG9D3vJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACXgoD,GAAAllD,EAAA/D,cAAC21M,GAAD,CAAUC,MAAOxG,IAAat+L,KAAKigB,MAAMkiL,WAAW4F,wpBAQ5Eb,GAA0BzuJ,UAAY,CAClC0pJ,WAAYzpJ,KAAUnsD,OAAOu4D,WAC7B+8I,kBAAmBnpJ,KAAUjjD,MAC7BuxM,YAAatuJ,KAAUjjD,MACvBswM,wBAAyBrtJ,KAAUx3C,KACnCymM,iBAAkBjvJ,KAAUx3C,UC/DX8mM,eACjB,SAAAA,EAAY/nL,GAAO,IAAA3Q,IAAA,uCAAA04L,4DAAAC,CAAAjoM,OACfA,OAAAkoM,GAAAF,GAAAz+M,KAAAyW,KAAMigB,GAAN3Q,uKAAAtP,SACKygM,YAAc5nJ,KAAMwwB,YAFV/5D,qPADmCupC,KAAMC,yDAOxD94C,KAAKygM,YAAY5rM,QAAQ2b,yCAIzB,OACI2nC,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,WACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,4BAA4ByX,SAAS,KAAKonD,IAAKhvD,KAAKygM,aAAczgM,KAAKigB,MAAM4gL,eAAe,GAAGz6J,OAC7G+R,GAAAllD,EAAA/D,cAACm4M,GAAD,CAAWxF,kBAAmB7hM,KAAKigB,MAAM4hL,oBACzC1pJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,SAAS6P,KAAKigB,MAAMkiL,WAAWmF,uBAEzC9/J,YAASxnC,KAAKigB,MAAMkiL,WAAWoF,4BAC/B//J,YAASxnC,KAAKigB,MAAMkiL,WAAWqF,6BAC/BrvJ,GAAAllD,EAAA/D,cAACgvM,GAAD,CACItrJ,KAAM5yC,KAAKigB,MAAMkiL,WAAWoF,2BAA4BvnM,KAAKigB,MAAMkiL,WAAWqF,6BAG1FrvJ,GAAAllD,EAAA/D,cAAC63M,GAAD,CACI5E,WAAYniM,KAAKigB,MAAMkiL,WACvB6E,YAAahnM,KAAKigB,MAAM+mL,YACxBnF,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9BkE,wBAAyB/lM,KAAKigB,MAAM8lL,wBACpCL,iBAAkB1lM,KAAKigB,MAAMylL,mBAEjCvtJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACV6P,KAAKigB,MAAMkiL,WAAWgG,6BAD3B,IAGQ3gK,YAASxnC,KAAKigB,MAAMkiL,WAAWiG,kCAC/B5gK,YAASxnC,KAAKigB,MAAMkiL,WAAWkG,mCAC/BlwJ,GAAAllD,EAAA/D,cAACivM,GAAD,CACIhuM,UAAU,4BACVyiD,KAAM5yC,KAAKigB,MAAMkiL,WAAWiG,gCAC5BnK,UAAU,kBAAkBj+L,KAAKigB,MAAMkiL,WAAWkG,mCAG9DlwJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACXgoD,GAAAllD,EAAA/D,cAAC21M,GAAD,CAAUC,MAAOxG,IAAjB,gXAQxB0J,GAA6BvvJ,UAAY,CACrC0pJ,WAAYzpJ,KAAUnsD,OAAOu4D,WAC7B+7I,eAAgBnoJ,KAAUjjD,MAC1BosM,kBAAmBnpJ,KAAUjjD,MAC7BuxM,YAAatuJ,KAAUjjD,MACvBswM,wBAAyBrtJ,KAAUx3C,KACnCymM,iBAAkBjvJ,KAAUx3C,UCjCXonM,4LACMC,EAAgBC,EAAcC,GACjD,GAA8B,IAA1BF,EAAe96M,OACf,MAAO,GAEX,IAAMi7M,EApCd,SAA+BF,EAAcD,GACzC,IAAMG,EAAqB,GAW3B,OAVAH,EAAe/iM,QAAQ,SAAC1X,GACpB,IACMgoB,EADOhoB,EACOE,QAGE3C,IAFAm9M,EAAa1yL,IAG/B4yL,EAAmB5zM,KAAKhH,KAIzB46M,EAwBwBC,CAAsBH,EAAcD,GAEzDK,OAAsDv9M,IAA1Bq9M,EAAmB,GACjDA,EAAmB,GAxB/B,SAAwCH,GACpC,IAAMttM,EAASrQ,OAAOg2B,SAAS3lB,OAEzBy6J,EADS,IAAIt0G,gBAAgBnmD,GACX7O,IAAI,KAE5B,GAAiB,OAAbspK,EAAmB,CACnB,IAAMmzC,EAAcN,EAAevyL,KAAK,SAAAtR,GAAA,OAAAA,EAAG1W,GAAYoF,gBAAkBsiK,EAAStiK,gBAClF,GAAIo0C,YAASqhK,GAET,OAAOA,EAIf,OAAON,EAAe,GAYdO,CAA+BP,GAEnC,IAAKK,EAA0B/sJ,SAAU,MAAO,GAEhD,IAAMktJ,EAAcvvF,KAAarwF,MAAMy/K,EAA0B/sJ,SAASlsC,OAAO,SAACwsC,GAAD,OAC7EssJ,EAAetsJ,MAkBnB,OAhBA4sJ,EAAYvjM,QAAQ,SAAC22C,GAEjBA,EAAQF,SAAW,EAEf2sJ,EAA0B56M,MAAMw6M,GACLA,EAAaI,EAA0B56M,IAC/C6tD,SAASr2C,QAAQ,SAACw8C,GAC7BA,EAAc3zD,OAAS8tD,EAAQ9tD,MAC/B2zD,EAAchhD,MAAQm7C,EAAQn7C,MAE9Bm7C,EAAQF,SAAW+F,EAAc/F,cAM1CL,GAAiBqJ,wBAAwB8jJ,qDAGnBR,EAAgBC,EAAcC,GAC3D,GAA8B,IAA1BF,EAAe96M,OACf,MAAO,GAGX,IAAIs7M,EAAc,GACdt9M,EAAI,EA4BR,OA1BA88M,EAAe/iM,QAAQ,SAACwjM,GACaxvF,KAAarwF,MAAM6/K,EAAcntJ,SAASlsC,OAAO,SAACwsC,GAAD,OAClFssJ,EAAetsJ,MAEU32C,QAAQ,SAAC22C,GAE9BA,EAAQF,SAAW,EACf+sJ,EAAch7M,MAAMw6M,GACOA,EAAaQ,EAAch7M,IACnC6tD,SAASr2C,QAAQ,SAACw8C,GAG7BA,EAAc3zD,OAAS8tD,EAAQ9tD,MAC/B2zD,EAAchhD,MAAQm7C,EAAQn7C,MAG9Bm7C,EAAQF,SAAW+F,EAAc/F,YAK7C8sJ,EAAYt9M,GAAK0wD,EACjB1wD,QAIDmwD,GAAiBqJ,wBAAwB8jJ,qBCrGzC,SAASE,GAAehpL,GACnC,IAAM0wE,EAAW1wE,EAAMvY,WAAa,cAAgB,GAEpD,OACIywC,GAAAllD,EAAA/D,cAAA,UACIiB,UAAS,+CAAAlF,OAAiD0lG,GAC1Dr4C,QAAS,kBAAMr4B,EAAMipL,gBAAgBjpL,EAAMy+B,KAC3CsQ,IAAK/uC,EAAMkpL,eACXjhM,SAAU+X,EAAMvY,WAChB1Z,GAAG,aAEHmqD,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uCACZgoD,GAAAllD,EAAA/D,cAAA,kBAAU+wB,EAAMy+B,GAAK,mBAAqB,IAC1CvG,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BAA0B0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SACtEzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,6lBAOnCokJ,GAAez4G,aAAe,CAC1B9xC,IAAI,GAGRuqJ,GAAexwJ,UAAY,CACvBiG,GAAIhG,KAAUqM,KACdokJ,eAAgBzwJ,KAAUx3C,KAC1BwG,WAAYgxC,KAAUqM,KACtBmkJ,gBAAiBxwJ,KAAUx3C,KAAK4jD,gBCxBfskJ,eACjB,SAAAA,EAAYnpL,GAAO,IAAA3Q,IAAA,uCAAA85L,4DAAAC,CAAArpM,OACfsP,MAAAg6L,GAAAF,GAAA7/M,KAAAyW,KAAMigB,+CAANjgB,SAEK+jM,gBAAkBz0L,EAAKy0L,gBAAgBj3L,KAArBy8L,MAAAj6L,KAHRA,qPADyBupC,KAAMC,qDAOlC36C,EAAGykM,GACV5iM,KAAKigB,MAAMikL,qBACZ/lM,EAAEyb,iBAGNgpL,EAAW,WAAYrE,uCAGhB7/I,EAAIkkJ,GACX5iM,KAAKigB,MAAMipL,gBAAgBxqJ,GAC3B1+C,KAAKwpM,gBAAgB5G,EAAYlkJ,EAAK,sBAAwB,+CAGlDkkJ,EAAYO,GACxBP,EAAWO,EAAe5E,gDAGVqE,GAAY,IAAArzL,EAAAvP,KACtB2wF,EAAW3wF,KAAKigB,MAAMikL,qBAAuBlkM,KAAKigB,MAAMwpL,aAAe,GAAK,cAC5EC,EAAcliK,YAASmpD,GAAY,CAAEg5G,cAAe,QAAW,GAErE,OACIxxJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAS,kCAAAlF,OAAoC0lG,IAC9Cx4C,GAAAllD,EAAA/D,cAACw1M,GAAA,EAAD,CACIv0M,UAAS,4DAAAlF,OAA8D0lG,GACvEn7D,GAAIx1B,KAAKigB,MAAMmkL,UACf9rJ,QAAS,SAACn6C,GAAD,OAAOoR,EAAKw0L,gBAAgB5lM,EAAGykM,IACxC5wM,MAAO03M,GAEPvxJ,GAAAllD,EAAA/D,cAAA,wBACAipD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BAA0B0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SACtEzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,qEAOf+9I,GAAY,IAAAnzL,EAAAzP,KAC5B,OACIm4C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCACXgoD,GAAAllD,EAAA/D,cAAC+5M,GAAD,CACIC,gBAAiB,SAACxqJ,GAAD,OAAQjvC,EAAKwxC,WAAWvC,EAAIkkJ,IAC7Cl7L,YAAa1H,KAAKigB,MAAMwpL,eAE5BtxJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACXgoD,GAAAllD,EAAA/D,cAAA,kIAMJ0zM,GACR,OAAI5iM,KAAKigB,MAAMikL,oBACJlkM,KAAK4pM,oBAAoBhH,GAG7B5iM,KAAK6pM,oBAAoBjH,oCAI3B,IAAA9yL,EAAA9P,KACL,OACIm4C,GAAAllD,EAAA/D,cAACu1M,GAAD,CAAoB5C,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9CvjJ,OAAQt+C,KAAKigB,MAAMq+B,OACnBilJ,qBAAsBvjM,KAAKigB,MAAMsjL,qBACjCxmF,eAAgB,SAAC6lF,GAAD,OAAgB9yL,EAAKg6L,YAAYlH,IACjD//I,UAAW7iD,KAAKigB,MAAM4iC,m2BAKtCumJ,GAAmB3wJ,UAAY,CAC3BopJ,kBAAmBnpJ,KAAUjjD,MAC7B6oD,OAAQ5F,KAAUnsD,OAClBg3M,qBAAsB7qJ,KAAUx3C,KAChCgoM,gBAAiBxwJ,KAAUx3C,KAAK4jD,WAChCs/I,UAAW1rJ,KAAUj5B,OAAOqlC,WAC5Bk8I,gBAAiBtoJ,KAAUj5B,OAAOqlC,WAClCo/I,oBAAqBxrJ,KAAUqM,KAAKD,WACpC2kJ,aAAc/wJ,KAAUqM,KAAKD,gBC1E3BilJ,+kBAA0BlxJ,KAAMC,oDAE9B,IAAIsrJ,EjBbiB,kBiBuBrB,OARIpkM,KAAKigB,MAAM0kL,mCACXP,EjBf4B,+BiBkB5BpkM,KAAKgqM,iBAAmBhqM,KAAKiqM,0BAC7B7F,EjBrBgB,kBiBwBbA,0CAIP,MjBpC4B,gBiBoCrBpkM,KAAKigB,MAAM+gL,iBjBnCsB,4BiBoCpChhM,KAAKigB,MAAM+gL,+DAIf,MjBrCqC,yBiBqC9BhhM,KAAKigB,MAAM+gL,kEAIlB,IAAMkJ,EAAalqM,KAAKigB,MAAM+mL,YAAY9/L,IAAI,SAAC60C,GAAD,OAC1CouJ,GAAc,GAAI,CACd97M,KAAM0tD,EAAO1tD,KACb2S,IAAK+6C,EAAO/6C,QAGpBhB,KAAKigB,MAAM0nL,iBAAiBuC,iDAI5B,MjBnDqC,wBiBmDjClqM,KAAKigB,MAAM+gL,kBAEPhhM,KAAKoqM,qBjB1DY,YiB+DtBpqM,KAAKigB,MAAM+gL,gBAEHhhM,KAAKqqM,oBjBhEY,gBiBmErBrqM,KAAKigB,MAAM+gL,6DAIlB,OAAOhhM,KAAKigB,MAAM+mL,YAAYtxM,KAAK,SAACqmD,GAAD,OAAYA,EAAOE,SAAW,gDAIjE,OAAOqsJ,GAAegC,gBAClBtqM,KAAKigB,MAAM4hL,kBACX7hM,KAAKigB,MAAMq+B,OAAO3C,cAClB,SAACQ,GAAD,Mtc7EwB,Ysc6EXA,EAAQ9tD,OACvBZ,OAAS,mCAIN,IAAA6hB,EAAAtP,KACL,OACIm4C,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KACI3K,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBAEP6P,KAAKgqM,gBAED7xJ,GAAAllD,EAAA/D,cAACq7M,GAAD,CACIpI,WAAYniM,KAAKigB,MAAMkiL,WACvBN,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9BhB,eAAgB7gM,KAAKigB,MAAM4gL,eAC3BmG,YAAahnM,KAAKigB,MAAM+mL,YACxB9C,oBAAqBlkM,KAAKkkM,sBAC1B6B,wBAAyB/lM,KAAKigB,MAAM8lL,wBACpC4B,iBAAkB,kBAAMr4L,EAAKk7L,2BAC7B9E,iBAAkB1lM,KAAKigB,MAAMylL,mBAEjCvtJ,GAAAllD,EAAA/D,cAACu7M,GAAD,CACItI,WAAYniM,KAAKigB,MAAMkiL,WACvBN,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9BmF,YAAahnM,KAAKigB,MAAM+mL,YACxB9C,oBAAqBlkM,KAAKkkM,sBAC1B6B,wBAAyB/lM,KAAKigB,MAAM8lL,wBACpC4B,iBAAkB,kBAAMr4L,EAAKk7L,8BAG7CryJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBACXgoD,GAAAllD,EAAA/D,cAACw7M,GAAD,CACIpsJ,OAAQt+C,KAAKigB,MAAMq+B,OACnB8lJ,UAAWpkM,KAAKmkM,eAChBnD,gBAAiBhhM,KAAKigB,MAAM+gL,gBAC5Ba,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9B0B,qBAAsBvjM,KAAKigB,MAAMsjL,qBACjC2F,gBAAiBlpM,KAAKigB,MAAMipL,gBAC5BhF,oBAAqBlkM,KAAKkkM,sBAC1BuF,aAAczpM,KAAKoqM,qBACnBvnJ,UAAW7iD,KAAKigB,MAAM4iC,4MAsB/B,SAAS8nJ,GAAmB1qL,GACvC,IAAM+mL,EAAcsB,GAAegC,gBAC/BrqL,EAAM4hL,kBACN5hL,EAAMq+B,OAAO3C,cACb,SAACQ,GAAD,OAAaA,EAAQ9tD,OAAS2sD,IAAuBmB,EAAQ9tD,OAAS4sD,KAG1E,OACI9C,GAAAllD,EAAA/D,cAAC07M,GAADT,GAAA,GAAuBlqL,EAAvB,CAA8B+mL,YAAaA,6cAtBnD+C,GAAkBtxJ,UAAY,CAC1B0pJ,WAAYzpJ,KAAUnsD,OAAOu4D,WAC7BxG,OAAQ5F,KAAUnsD,OAClBs1M,kBAAmBnpJ,KAAUjjD,MAC7BorM,eAAgBnoJ,KAAUjjD,MAC1BuxM,YAAatuJ,KAAUjjD,MACvBurM,gBAAiBtoJ,KAAUj5B,OAAOqlC,WAClCokJ,gBAAiBxwJ,KAAUx3C,KAAK4jD,WAChCihJ,wBAAyBrtJ,KAAUx3C,KACnCymM,iBAAkBjvJ,KAAUx3C,KAC5BqiM,qBAAsB7qJ,KAAUx3C,KAChCyjM,iCAAkCjsJ,KAAUqM,UCjI3B8lJ,eACjB,SAAAA,EAAY5qL,GAAO,IAAA3Q,IAAA,uCAAAu7L,4DAAAC,CAAA9qM,OACfA,OAAA+qM,GAAAF,GAAAthN,KAAAyW,KAAMigB,GAAN3Q,uKAAAtP,SACKopE,QAAUvwB,KAAMwwB,YAFN/5D,qPADiBupC,KAAMC,yDAOtCvgB,IAAkBC,cAAc1qB,KAAK9N,KAAKopE,QAAQv0E,wDAIlD0jC,IAAkBC,cAAc8wC,QAAQtpE,KAAKopE,QAAQv0E,uDAGVm2M,GAAa,IAAtC7uJ,EAAsCz3C,EAAtCy3C,QAASwC,EAA6Bj6C,EAA7Bi6C,aAC3B3+C,KAAKigB,MAAMgrL,qBAAqB9uJ,EAASwC,GAAeqsJ,GAExD,IAAM7iM,EAAa6iM,EAAgDtnJ,KAAoBE,iBAAtDF,KAAoBC,YAErDpL,KAAIwL,mBAAmB57C,EAAW,CAC9B0jC,SAAU/D,GAAiBE,IAC3B79C,MAAOgyD,EAAQjU,MACfzzC,MAAO,CACH,CACIuvD,QAAS7H,EAAQ0C,UACjBoF,UAAS,GAAAh5D,OAAKkxD,EAAQn7C,IAAb,OAAA/V,OAAsB0zD,EAAavY,OAC5C8B,MAAOiU,EAAQjU,MACf+T,SAAU,oDAMJ,IAAA1sC,EAAAvP,KAClB,OAAOA,KAAKigB,MAAMirL,WAAWz2M,MAAMyS,IAAI,SAACikM,GAAc,IAC1ChvJ,EAA0BgvJ,EAA1BhvJ,QAASwC,EAAiBwsJ,EAAjBxsJ,aACX0D,EAAsB9yC,EAAK0Q,MAAMq+B,OAAO3C,cAC1C1pC,GAAa,EASjB,OARI0sC,EAAa3wD,MAAMq0D,GACGA,EAAoB1D,EAAa3wD,IAAI6tD,SAAS7lC,KAAK,SAACgsC,GAAD,OACrEA,EAAch0D,KAAOmuD,EAAQnuD,OAE7BikB,GAAa,GAIdkmC,GAAAllD,EAAA/D,cAAA,OAAKwF,IAAKiqD,EAAa3wD,GAAImC,UAAU,0BACxCgoD,GAAAllD,EAAA/D,cAACixM,GAAD,CACIluL,WAAYA,EACZm0B,MAAOuY,EAAavY,MACpB17C,KAAM6kB,EAAK67L,sBAAsBjvJ,GACjC7D,QAAS,kBAAM/oC,EAAK87L,oBAAoBF,EAAWl5L,0CAM/D,OACIkmC,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,cAAc6+D,IAAKhvD,KAAKopE,SACnCjxB,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,wBAAwB6P,KAAKigB,MAAMirL,WAAW9kK,OAC5D+R,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACXgoD,GAAAllD,EAAA/D,cAAA,QACIu4D,wBAAyB,CAAEC,OAAQ1nD,KAAKigB,MAAMirL,WAAWllI,eAFjE,IAGKhmE,KAAKigB,MAAMirL,WAAW1yJ,SAAWL,GAAAllD,EAAA/D,cAAA,KAAGyrE,oBAAkB,gBACnDxqE,UAAU,OACVyiD,KAAM5yC,KAAKigB,MAAMirL,WAAW7yJ,SAAUr4C,KAAKigB,MAAMirL,WAAW1yJ,UAAgB,IAEpFL,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCACV6P,KAAK4hM,sEAMAzlJ,GAClB,IAAImvJ,EAEJ,OAAQnvJ,EAAQn7C,KACZ,Ivc5EsB,Suc6ElBsqM,EAAW,OACX,MACJ,KAAK/vJ,GACD+vJ,EAAWnvJ,EAAQwlJ,WACnB,MACJ,QACI2J,EAAW,KAGnB,OAAIA,EACA,GAAArgN,OAAUg9C,GAAeyc,gBAAgBvI,EAAQjU,OAAjD,SAAAj9C,OAA+DqgN,GAG5D,ssCAIfT,GAAWpyJ,UAAY,CACnB6F,OAAQ5F,KAAUnsD,OAClB2+M,WAAYxyJ,KAAUnsD,OACtBo6M,aAAcjuJ,KAAUj5B,OACxBwrL,qBAAsBvyJ,KAAUx3C,UC5FfqqM,eACjB,SAAAA,EAAYtrL,GAAO,IAAA3Q,IAAA,uCAAAi8L,4DAAAC,CAAAxrM,MACfsP,MAAAm8L,GAAAF,GAAAhiN,KAAAyW,KAAMigB,+CAANjgB,QADe0rM,GAAAC,MAAAr8L,IAAA,0BA2BO,WAA8D,IAA7D6sC,EAA6DvtD,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAnD,KAAMg9M,EAA6Ch9M,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAvB,KAAMqtD,EAAiBrtD,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAN,EAC9E,IAAK44C,YAAS2U,KAAa3U,YAASokK,GAChC,OAAO,EAGX,OAAQzvJ,EAAQn7C,KACZ,KAAKu6C,GACDU,EAAW2vJ,EAAoB3vJ,SAAWX,GAAoCA,GAAoCswJ,EAAoB3vJ,SACtI,MACJ,QACIA,EAAW2vJ,EAAoB3vJ,SAGvC,OAAOA,IAtCP3sC,EAAK27L,qBAAuB37L,EAAK27L,qBAAqBn+L,KAA1B6+L,MAAAr8L,KAFbA,qPADuBupC,KAAMC,0DAM3BqD,EAASwC,EAAcy+D,GAAW,IAAA7tG,EAAAvP,KACnD,GAAKo9G,EAGE,CACH,IAAInhE,EAAW,EAGT4vJ,EAAcltJ,EAAa9C,SAAS7lC,KAAK,SAACrpB,GAAD,OAAOA,EAAE0B,OAASkhB,EAAK0Q,MAAM6rL,qBAG5E,GAAIntJ,EAAa3wD,MAAMgS,KAAKigB,MAAMq+B,OAAO3C,cAAe,CACpD,IAAMiwJ,EAAsB5rM,KAAKigB,MAAMq+B,OAAO3C,cAAcgD,EAAa3wD,IAAI6tD,SAAS7lC,KAAK,SAACgsC,GAAD,OAAmBA,EAAch0D,KAAO69M,EAAY79M,KAC3I49M,IACA3vJ,EAAWj8C,KAAK+rM,wBAAwB5vJ,EAASyvJ,EAAqB3vJ,IAI9Ej8C,KAAKigB,MAAM+gC,wBAAwB7E,EAASwC,EAAc1C,QAf1Dj8C,KAAKigB,MAAM+gC,wBAAwB7E,EAASwC,EAAc,kDAoC9D,IAAMqtJ,EAAahsM,KAAKigB,MAAM4hL,kBAAkBltM,OAAO,SAAC6N,EAAQm8C,GAe5D,OAdeA,EAAa9C,SAASlsC,OAAO,SAACwsC,GAAD,Mxc7DrB,Wwc6DkCA,EAAQ9tD,OAC1DmX,QAAQ,SAACymM,GACNA,EAAcjrM,OAAOwB,IACvBA,EAAOypM,EAAcjrM,KAAO,IAG1BirM,EAAcj+M,MAAMwU,EAAOypM,EAAcjrM,OAC3CwB,EAAOypM,EAAcjrM,KAAKirM,EAAcj+M,IAAM,CAC1CmuD,QAAS+vJ,GAAA,GAAKD,GACdttJ,mBAKLn8C,GACR,IAEG2pM,EAAangN,OAAOkK,KAAK81M,GAAY9kM,IAAI,SAACxS,GAC5C,IAAMw2M,EAAac,EAAWt3M,GACxBD,EAAQzI,OAAOkK,KAAKg1M,GAAYhkM,IAAI,SAACklM,GAAD,OAAgBlB,EAAWkB,KAGrE,MAAO,CACHp+M,GAAI0G,EACJ0xC,MAJU3xC,EAAM,GAAG0nD,QAAQn7C,MAAQu6C,GAAgC,GAAK9mD,EAAM,GAAG0nD,QAAQ/V,MAKzF3xC,WAIA43M,EAAmBrsM,KAAKssM,yBAAxBD,eAMR,OAJIF,EAAW1+M,OAAS,IACpB0+M,EAAW,GAAGnmI,YAAchmE,KAAKusM,oBAAoBF,IAGlDF,2CAIP,IAAMtK,EAAoB7hM,KAAKigB,MAAM4hL,kBAErC,IAAKA,EAAkBp0M,SAAWo0M,EAAkB,GAAGhmJ,SAAU,MAAO,GAExE,IAAM2wJ,EAAsBhzF,KAAarwF,MAAM04K,EAAkB,GAAGhmJ,SAASlsC,OAAO,SAACwsC,GAAD,MxczGxD,Ywc0GxBA,EAAQ9tD,QAINo+M,EAA0B5K,EAAkB36L,IAAI,SAACy3C,GAAD,OAAkBA,EAAa3wD,KAC/E0+M,EAA6B1gN,OAAO+kB,OAAO/Q,KAAKigB,MAAMq+B,OAAO3C,eAAehsC,OAAO,SAAC+sC,GAAD,OAAoF,IAA5D+vJ,EAAwB97M,QAAQ+rD,EAAmB1uD,MAepK,OAbAw+M,EAAoBhnM,QAAQ,SAACk8L,GAEzBgL,EAA2BlnM,QAAQ,SAACk3C,GAChCA,EAAmBb,SAASr2C,QAAQ,SAACw8C,GAC7BA,EAAc3zD,OAASqzM,EAAQrzM,MAC/B2zD,EAAchhD,MAAQ0gM,EAAQ1gM,MAE9B0gM,EAAQzlJ,SAAW+F,EAAc/F,gBAM1CL,GAAiBqJ,wBAAwBunJ,4CAIhD,IAAM3K,EAAoB7hM,KAAKigB,MAAM4hL,kBAErC,IAAKA,EAAkBp0M,SAAWo0M,EAAkB,GAAGhmJ,SAAU,MAAO,GAExE,IAAM8wJ,EAAqBnzF,KAAarwF,MAAM04K,EAAkB,GAAGhmJ,SAASlsC,OAAO,SAACwsC,GAAD,MxcrIxD,WwcsIvBA,EAAQ9tD,QAINo+M,EAA0B5K,EAAkB36L,IAAI,SAACy3C,GAAD,OAAkBA,EAAa3wD,KAC/E0+M,EAA6B1gN,OAAO+kB,OAAO/Q,KAAKigB,MAAMq+B,OAAO3C,eAAehsC,OAAO,SAAC+sC,GAAD,OAAoF,IAA5D+vJ,EAAwB97M,QAAQ+rD,EAAmB1uD,MAepK,OAbA2+M,EAAmBnnM,QAAQ,SAACu2C,GAExB2wJ,EAA2BlnM,QAAQ,SAACk3C,GAChCA,EAAmBb,SAASr2C,QAAQ,SAACw8C,GAC7BA,EAAc3zD,OAAS0tD,EAAO1tD,MAC9B2zD,EAAchhD,MAAQ+6C,EAAO/6C,MAE7B+6C,EAAOE,SAAW+F,EAAc/F,gBAMzCL,GAAiBqJ,wBAAwB0nJ,gDAG/B,IAAAl9L,EAAAzP,KAGjB,OAFwBA,KAAK4sM,uBAEN1lM,IAAI,SAACgkM,GAAD,OACvB/yJ,GAAAllD,EAAA/D,cAAC29M,GAAD,CACIvuJ,OAAQ7uC,EAAKwQ,MAAMq+B,OACnB5pD,IAAKw2M,EAAWl9M,GAChBk9M,WAAYA,EACZD,qBAAsBx7L,EAAKw7L,oEAKpB,IAAAn7L,EAAA9P,KAGf,OAFoBA,KAAK8sM,iBAEN5lM,IAAI,SAACw6L,GAAD,OACnBvpJ,GAAAllD,EAAA/D,cAAC+3M,GAAD,CACI9E,WAAYryL,EAAKmQ,MAAMkiL,WACvBztM,IAAKgtM,EAAQ1zM,GACbmuD,QAASulJ,EACTG,kBAAmB/xL,EAAKmQ,MAAM4hL,kBAC9BkE,wBAAyBj2L,EAAKmQ,MAAM8lL,wBACpCY,aAAa,wEAKJ,IAAA52L,EAAA/P,KAGjB,OAFoBA,KAAK+sM,iBAEN7lM,IAAI,SAAC60C,GAAD,OACnB5D,GAAAllD,EAAA/D,cAAC+3M,GAAD,CACI9E,WAAYpyL,EAAKkQ,MAAMkiL,WACvBztM,IAAKqnD,EAAO/tD,GACZmuD,QAASJ,EACT8lJ,kBAAmB9xL,EAAKkQ,MAAM4hL,kBAC9BkE,wBAAyBh2L,EAAKkQ,MAAM8lL,wBACpCY,aAAa,yEAKM,IAAXhxM,EAAW/G,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,GAAAA,UAAA,GAAJ,GACvB,OAAK44C,YAAS7xC,IAIVA,EAAKsV,SAAS,kBACP,GAJAtV,mDAUU,IACbwsM,EAAeniM,KAAKigB,MAApBkiL,WAER,OAAK36J,YAAS26J,GAaPA,EAZI,CACH6K,kBAAmB,GACnBC,eAAgB,GAChBC,kBAAmB,GACnBb,eAAgB,GAChBc,kBAAmB,GACnBC,iBAAkB,GAClBC,qBAAsB,GACtBC,oBAAqB,qCAOxB,IAAAC,EACyCvtM,KAAKssM,yBAA3CU,EADHO,EACGP,kBAAmBC,EADtBM,EACsBN,eAE3B,OACI90J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,WACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kBACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,SAAS6P,KAAKusM,oBAAoBS,IAChD70J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2BACXgoD,GAAAllD,EAAA/D,cAAA,YAAO8Q,KAAKusM,oBAAoBU,MAIxC90J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBnBjPc,yBmBmPrB6P,KAAKigB,MAAM+gL,gBACPhhM,KAAKwtM,qBACLxtM,KAAKytM,sBAGjBt1J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,2CACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACXgoD,GAAAllD,EAAA/D,cAAC21M,GAAD,CAAUC,MAAOvG,IAAjB,6wBAQxBgN,GAAiB9yJ,UAAY,CACzB0pJ,WAAYzpJ,KAAUnsD,OAAOu4D,WAC7BxG,OAAQ5F,KAAUnsD,OAClBs1M,kBAAmBnpJ,KAAUjjD,MAC7Bi4M,aAAch1J,KAAUjjD,MACxBq2M,mBAAoBpzJ,KAAUj5B,OAAOqlC,WACrCihJ,wBAAyBrtJ,KAAUx3C,KACnC8/C,wBAAyBtI,KAAUx3C,KACnC8/L,gBAAiBtoJ,KAAUj5B,OAAOqlC,gBCxQjB6oJ,eACjB,SAAAA,EAAY1tL,GAAO,IAAA3Q,IAAA,uCAAAq+L,4DAAAC,CAAA5tM,OACfsP,MAAAu+L,GAAAF,GAAApkN,KAAAyW,KAAMigB,+CAANjgB,SAEK+jM,gBAAkBz0L,EAAKy0L,gBAAgBj3L,KAArBghM,MAAAx+L,KAHRA,qPADwBupC,KAAMC,qDAOjC36C,EAAGykM,GACV5iM,KAAKigB,MAAMikL,qBACZ/lM,EAAEyb,iBAGNgpL,EAAW,WAAYrE,uCAGhB7/I,EAAIkkJ,GACX5iM,KAAKigB,MAAMipL,gBAAgBxqJ,GAC3B1+C,KAAKwpM,gBAAgB5G,EAAYlkJ,EAAK,sBAAwB,+CAGlDkkJ,EAAYO,GACxBP,EAAWO,EAAe5E,gDAGVqE,GAAY,IAAArzL,EAAAvP,KACtB2wF,EAAW3wF,KAAKigB,MAAMikL,oBAAsB,GAAK,cACvD,OACI/rJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,kCACXgoD,GAAAllD,EAAA/D,cAACw1M,GAAA,EAAD,CACIv0M,UAAS,4DAAAlF,OAA8D0lG,GACvEn7D,GAAIx1B,KAAKigB,MAAMmkL,UACf9rJ,QAAS,SAACn6C,GAAD,OAAOoR,EAAKw0L,gBAAgB5lM,EAAGykM,KAExCzqJ,GAAAllD,EAAA/D,cAAA,wBACAipD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BAA0B0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SACtEzM,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,qEAOf+9I,GAAY,IAAAnzL,EAAAzP,KAC5B,OACIm4C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCACXgoD,GAAAllD,EAAA/D,cAAC+5M,GAAD,CACIC,gBAAiB,SAACxqJ,GAAD,OAAQjvC,EAAKwxC,WAAWvC,EAAIkkJ,IAC7Cl7L,YAAa1H,KAAKigB,MAAMwpL,eAE5BtxJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACXgoD,GAAAllD,EAAA/D,cAAA,kIAMJ0zM,GACR,OAAI5iM,KAAKigB,MAAMikL,oBACJlkM,KAAK4pM,oBAAoBhH,GAG7B5iM,KAAK6pM,oBAAoBjH,oCAI3B,IAAA9yL,EAAA9P,KACL,OACIm4C,GAAAllD,EAAA/D,cAACu1M,GAAD,CAAoB5C,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9CvjJ,OAAQt+C,KAAKigB,MAAMq+B,OACnBilJ,qBAAsBvjM,KAAKigB,MAAMsjL,qBACjCxmF,eAAgB,SAAC6lF,GAAD,OAAgB9yL,EAAKg6L,YAAYlH,IACjD//I,UAAW7iD,KAAKigB,MAAM4iC,kpBAKtC8qJ,GAAkBl1J,UAAY,CAC1BopJ,kBAAmBnpJ,KAAUjjD,MAC7B6oD,OAAQ5F,KAAUnsD,OAClBg3M,qBAAsB7qJ,KAAUx3C,KAChCgoM,gBAAiBxwJ,KAAUx3C,KAAK4jD,WAChCs/I,UAAW1rJ,KAAUj5B,OAAOqlC,WAC5Bk8I,gBAAiBtoJ,KAAUj5B,OAAOqlC,WAClCo/I,oBAAqBxrJ,KAAUqM,KAAKD,WACpC2kJ,aAAc/wJ,KAAUqM,KAAKD,gBCrFZipJ,+kBAAyBl1J,KAAMC,oDAG5C,IAAIsrJ,EAAY7F,GAShB,OAPGv+L,KAAKigB,MAAM0kL,mCACVP,ErBD4B,8BANK,yBqBUjCpkM,KAAKigB,MAAM+gL,kBACXoD,ErBNiB,mBqBQdA,mCAKP,OACIjsJ,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KACI3K,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACXgoD,GAAAllD,EAAA/D,cAAC8+M,GAAD,CACI7L,WAAYniM,KAAKigB,MAAMkiL,WACvB7jJ,OAAQt+C,KAAKigB,MAAMq+B,OACnBujJ,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9BiK,mBAAoB9rM,KAAKigB,MAAM6rL,mBAC/BjL,eAAgB7gM,KAAKigB,MAAM4gL,eAC3BkF,wBAAyB/lM,KAAKigB,MAAM8lL,wBACpC/kJ,wBAAyBhhD,KAAKigB,MAAM+gC,wBACpC2mJ,iBAAkB3nM,KAAKigB,MAAM0nL,iBAC7B3G,gBAAiBhhM,KAAKigB,MAAM+gL,mBAIpC7oJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBACXgoD,GAAAllD,EAAA/D,cAAC++M,GAAD,CACI3vJ,OAAQt+C,KAAKigB,MAAMq+B,OACnB8lJ,UAAWpkM,KAAKmkM,eAChBnD,gBAAiBhhM,KAAKigB,MAAM+gL,gBAC5Ba,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9B0B,qBAAsBvjM,KAAKigB,MAAMsjL,qBACjC2F,gBAAiBlpM,KAAKigB,MAAMipL,gBAC5BhF,qBAAqB,EACrBuF,cAAc,EACd5mJ,UAAW7iD,KAAKigB,MAAM4iC,gxBAQ9CkrJ,GAAiBt1J,UAAY,CACzB0pJ,WAAYzpJ,KAAUnsD,OAAOu4D,WAC7BxG,OAAQ5F,KAAUnsD,OAClBs1M,kBAAmBnpJ,KAAUjjD,MAC7BorM,eAAgBnoJ,KAAUjjD,MAC1Bq2M,mBAAoBpzJ,KAAUj5B,OAAOqlC,WACrCihJ,wBAAyBrtJ,KAAUx3C,KACnC8/C,wBAAyBtI,KAAUx3C,KACnCymM,iBAAkBjvJ,KAAUx3C,KAC5BqiM,qBAAsB7qJ,KAAUx3C,KAChCgoM,gBAAiBxwJ,KAAUx3C,KAC3B8/L,gBAAiBtoJ,KAAUj5B,OAAOqlC,WAClC6/I,iCAAkCjsJ,KAAUqM,UCjE3B1tB,eACjB,SAAAA,EAAYpX,GAAO,IAAA3Q,IAAA,uCAAA+nB,4DAAA62K,CAAAluM,OACfsP,MAAA6+L,GAAA92K,GAAA9tC,KAAAyW,KAAMigB,+CAANjgB,SACKouM,UAAY,KACjB9+L,EAAK++L,aAAex1J,KAAMwwB,YAC1B/5D,EAAK5J,MAAQ,CACTujI,UAAU,GAGd35H,EAAKg/L,uBAAyBh/L,EAAKg/L,uBAAuBxhM,KAA5ByhM,MAAAj/L,KARfA,qPADgBupC,KAAMC,yDAajC94C,KAAKquM,aAAax5M,UAClBmL,KAAKouM,UAAY,IAAII,EAAmBxuM,KAAKquM,aAAax5M,QAAS,aACnEmL,KAAKouM,UAAUl+K,SAASlwB,KAAKsuM,wEAIdrlE,GACnBjpI,KAAK4hD,SAAS,CAAEqnF,4DAIZjpI,KAAKouM,YACLpuM,KAAKouM,UAAU9kI,UACftpE,KAAKouM,UAAY,uCAKrB,OACIj2J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,qBAAqB6+D,IAAKhvD,KAAKquM,aAAcI,eAAa,aACrEt2J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,0BACXgoD,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,kBACV9B,KAAK,SACLw/I,wBAAsB,WAEtB11F,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,uCACZgoD,GAAAllD,EAAA/D,cAAA,YAAQ8Q,KAAK0F,MAAMujI,UAAYjpI,KAAKigB,MAAMyuL,kBACtC1uM,KAAKigB,MAAMyuL,kBACX1uM,KAAKigB,MAAM0uL,aACfx2J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BAA6B0B,MAAM,KAAK8gC,OAAO,KAAKiyB,UAAU,SACxE5kD,KAAK0F,MAAMujI,SACR9wF,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,0BACf1M,GAAAllD,EAAA/D,cAAA,OAAK21D,UAAU,gCAMnC1M,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,8BACXgoD,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBAAiB09I,wBAAsB,WACjD7tI,KAAKigB,MAAM3vB,kpBAQpC+mC,GAAUohB,UAAY,CAClBk2J,YAAaj2J,KAAUj5B,OAAOqlC,WAC9B4pJ,kBAAmBh2J,KAAUj5B,OAC7BnvB,SAAUooD,KAAU0lJ,UAAU,CAC1B1lJ,KAAU2lJ,QAAQ3lJ,KAAU9lB,MAC5B8lB,KAAU9lB,YCxDGg8K,eACjB,SAAAA,EAAY3uL,GAAO,IAAA3Q,IAAA,uCAAAs/L,4DAAAC,CAAA7uM,OACfA,OAAA8uM,GAAAF,GAAArlN,KAAAyW,KAAMigB,GAAN3Q,uKAAAtP,SACKygM,YAAc5nJ,KAAMwwB,YAFV/5D,qPADwBupC,KAAMC,yDAO7C94C,KAAKygM,YAAY5rM,QAAQ2b,+CAIzB,IAAIu+L,EAAYxQ,GAUhB,MvBjCwB,YuByBpBv+L,KAAKigB,MAAM+gL,kBACX+N,EAAYzQ,IvBxBqB,yBuB2BjCt+L,KAAKigB,MAAM+gL,kBACX+N,EvBxBgB,kBuB2BbA,2CAIP,IAAMC,EAAchvM,KAAKigB,MAAM+uL,YAE/B,IAAKA,IAAgBA,EAAYvhN,OAAQ,OAAO,KAEhD,IAAMwhN,EAAaD,EAAYr/L,OAAO,SAACu/L,GAAD,OAClCA,EAAeluM,MAAQk6C,KAAiB,GAE5C,OAAK+zJ,EAEE92J,GAAAllD,EAAA/D,cAAC+3M,GAAD,CACH9E,WAAYniM,KAAKigB,MAAMkiL,WACvBztM,IAAKu6M,EAAWjhN,GAChBmuD,QAAS8yJ,EACTpN,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9BkE,wBAAyB/lM,KAAKigB,MAAM8lL,0BAPhB,6CAWZiJ,GAAa,IAAAz/L,EAAAvP,KACzB,OAAKzP,MAAMuvB,QAAQkvL,IAAiBA,EAAYvhN,OAEzCuhN,EAAY9nM,IAAI,SAACw6L,GAAD,OACnBvpJ,GAAAllD,EAAA/D,cAAC+3M,GAAD,CACI9E,WAAY5yL,EAAK0Q,MAAMkiL,WACvBztM,IAAKgtM,EAAQ1zM,GACbmuD,QAASulJ,EACTG,kBAAmBtyL,EAAK0Q,MAAM4hL,kBAC9BkE,wBAAyBx2L,EAAK0Q,MAAM8lL,wBACpCY,aAAa,2BAT0C,+CAe/D,IAEMwI,EAFcnvM,KAAKigB,MAAM+uL,YAESr/L,OAAO,SAACu/L,GAAD,OAC3CA,EAAeluM,MAAQk6C,KAE3B,OAAKi0J,EAAoB1hN,OAGrB0qD,GAAAllD,EAAA/D,cAACkgN,GAAD,CAAWT,YAAY,oBAAoBD,kBAAkB,sBACxD1uM,KAAKqvM,gBAAgBF,IAJU,sCAUxC,OACIh3J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,WACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,4BAA4ByX,SAAS,KAAKonD,IAAKhvD,KAAKygM,aAAczgM,KAAKigB,MAAMkiL,WAAWmN,kBACtGn3J,GAAAllD,EAAA/D,cAACm4M,GAAD,CAAWxF,kBAAmB7hM,KAAKigB,MAAM4hL,oBACzC1pJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,SAAd,sBAEIq3C,YAASxnC,KAAKigB,MAAMkiL,WAAWoN,4BAC/B/nK,YAASxnC,KAAKigB,MAAMkiL,WAAWqN,6BAC/Br3J,GAAAllD,EAAA/D,cAACgvM,GAAD,CACItrJ,KAAM5yC,KAAKigB,MAAMkiL,WAAWoN,2BAA4BvvM,KAAKigB,MAAMkiL,WAAWqN,6BAG1Fr3J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBACV6P,KAAKyvM,kBAEVt3J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBACXgoD,GAAAllD,EAAA/D,cAAC61M,GAAD,CAAazsJ,QAASt4C,KAAKigB,MAAM0nL,kBAAjC,mBACAxvJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACV6P,KAAKigB,MAAMkiL,WAAWuN,aAE1B1vM,KAAK2vM,kBACNx3J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACXgoD,GAAAllD,EAAA/D,cAAC21M,GAAD,CAAUC,MAAO9kM,KAAK4vM,gBAAtB,89BAQxBhB,GAAkBn2J,UAAY,CAC1B0pJ,WAAYzpJ,KAAUnsD,OAAOu4D,WAC7BkqJ,YAAat2J,KAAUjjD,MACvBosM,kBAAmBnpJ,KAAUjjD,MAC7BurM,gBAAiBtoJ,KAAUj5B,OAAOqlC,WAClCihJ,wBAAyBrtJ,KAAUx3C,KACnCymM,iBAAkBjvJ,KAAUx3C,UCnHX2uM,eACjB,SAAAA,EAAY5vL,GAAO,IAAA3Q,IAAA,uCAAAugM,4DAAAC,CAAA9vM,OACfsP,MAAAygM,GAAAF,GAAAtmN,KAAAyW,KAAMigB,+CAANjgB,SAEK0F,MAAQ,CACT+jM,aAAcn6L,EAAKw9L,iBAAiBp3M,KAAK,SAACgsM,GAAD,OAAaA,EAAQzlJ,SAAW,IACzE+zJ,eAAe,EACfrnJ,WAAW,GAGfr5C,EAAK2gM,wBAA0B3gM,EAAK2gM,wBAAwBnjM,KAA7BojM,MAAA5gM,KAC/BA,EAAKs5C,wBAA0Bt5C,EAAKs5C,wBAAwB97C,KAA7BojM,MAAA5gM,KAC/BA,EAAKw5C,iBAAmBx5C,EAAKw5C,iBAAiBh8C,KAAtBojM,MAAA5gM,KAXTA,qPADwBupC,KAAMC,+DAgB7C94C,KAAKigB,MAAM05J,cAAgB35K,KAAK4hD,SAAS,CAAE+G,WAAW,IAAU3oD,KAAK4hD,SAAS,CAAE+G,WAAW,gDAG3EjK,EAAIkkJ,GACpB5iM,KAAK4oD,0BAEA5oD,KAAKigB,MAAM05J,eACZ35K,KAAKihD,WAAWvC,EAAIkkJ,8CAIxB5iM,KAAK4hD,SAAS,CAAE+G,WAAW,uCAGpBjK,EAAIkkJ,GACX5iM,KAAKigB,MAAMipL,gBAAgBxqJ,GAC3B1+C,KAAKwpM,gBAAgB5G,EAAYlkJ,EAAK,sBAAwB,yDAI9D,IACMwrJ,EADclqM,KAAK8sM,iBACM5lM,IAAI,SAACw6L,GAAD,OAC/ByO,GAAc,GAAI,CACd9hN,KAAMqzM,EAAQrzM,KACd2S,IAAK0gM,EAAQ1gM,QAGrBhB,KAAKigB,MAAM0nL,iBAAiBuC,2CAGhBtH,EAAYO,GACxBP,EAAWO,ExBhDU,gEwBmDJP,GACjB5iM,KAAKwpM,gBAAgB5G,EAAY,wBACjC5iM,KAAKowM,0BACLpwM,KAAK4hD,SAAS,CAAE6nJ,cAAc,EAAMuG,eAAe,sDAGtB,IAAA79I,GAC7BA,EAAAnyD,KAAKigB,OAAM8lL,wBAAXlnM,MAAAszD,EAAAvjE,WACAoR,KAAK4hD,SAAS,CAAE6nJ,cAAc,EAAMuG,eAAe,6CAInD,OAAO1H,GAAegC,gBAClBtqM,KAAKigB,MAAM4hL,kBACX7hM,KAAKigB,MAAMq+B,OAAO3C,cAClB,SAACQ,GAAD,M7c1EwB,Y6c0EXA,EAAQ9tD,2CAKjBgiN,GACJA,GAAerwM,KAAK0F,MAAMsqM,eAC1Bt8I,WAAW,WACP28I,EAAY7/L,SACb,oCAIF,IAAAjB,EAAAvP,KACL,OACIm4C,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KACI3K,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACXgoD,GAAAllD,EAAA/D,cAACohN,GAAD,CACInO,WAAYniM,KAAKigB,MAAMkiL,WACvBN,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9Bb,gBAAiBhhM,KAAKigB,MAAM+gL,gBAC5BgO,YAAahvM,KAAK8sM,iBAClB/G,wBAAyB/lM,KAAKiwM,wBAC9BtI,iBAAkB,kBAAMp4L,EAAK6gM,8BAGrCj4J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBAEXgoD,GAAAllD,EAAA/D,cAACu1M,GAAD,CACI5C,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9BvjJ,OAAQt+C,KAAKigB,MAAMq+B,OACnBilJ,qBAAsBvjM,KAAKigB,MAAMsjL,qBACjC1gJ,UAAW7iD,KAAKigB,MAAM4iC,UACtBk6D,eAAgB,SAAC6lF,GAAD,OACZrzL,EAAK7J,MAAM+jM,aACPtxJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCACXgoD,GAAAllD,EAAA/D,cAAC+5M,GAAD,CACIC,gBAAiB,SAACxqJ,GAAD,OAAQnvC,EAAKghM,oBAAoB7xJ,EAAIkkJ,IACtDuG,eAAgB55L,EAAKihM,YAAY1jM,KAAKyC,KAE1C4oC,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACXgoD,GAAAllD,EAAA/D,cAAA,6FAEJipD,GAAAllD,EAAA/D,cAAC+5D,GAAD,CACIp3B,OAAQtiB,EAAK7J,MAAMijD,UACnBf,UAAW,MACXC,aAAct4C,EAAKu5C,iBACnBhB,eAAgB,SAACpJ,GAAD,OAAQnvC,EAAK0xC,WAAWvC,EAAIkkJ,IAC5C76I,iBAAiB,EACjBC,yBAAyB,EACzBC,cAAe14C,EAAKu5C,iBACpBZ,wBAAwB,EACxBC,0BAA2B54C,EAAK0Q,MAAMipC,iBAEtC/Q,GAAAllD,EAAA/D,cAACi6D,GAAD,CACItD,qBAAsBt2C,EAAK0Q,MAAMmpC,eACjCtD,uBAAwBv2C,EAAK0Q,MAAMopC,iBACnCtD,oBAAqBx2C,EAAK0Q,MAAMqpC,kBAI5CnR,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,oCACXgoD,GAAAllD,EAAA/D,cAAA,UACIiB,UAAU,gDACVmoD,QAAS,kBAAM/oC,EAAKkhM,qBAAqB7N,KACzCzqJ,GAAAllD,EAAA/D,cAAA,QAAMiB,UAAU,kBACZgoD,GAAAllD,EAAA/D,cAAA,krBAY5C2gN,GAAkBp3J,UAAY,CAC1B0pJ,WAAYzpJ,KAAUnsD,OAAOu4D,WAC7BxG,OAAQ5F,KAAUnsD,OAClBs1M,kBAAmBnpJ,KAAUjjD,MAC7BorM,eAAgBnoJ,KAAUjjD,MAC1BurM,gBAAiBtoJ,KAAUj5B,OAAOqlC,WAClCihJ,wBAAyBrtJ,KAAUx3C,KACnCymM,iBAAkBjvJ,KAAUx3C,KAC5BqiM,qBAAsB7qJ,KAAUx3C,KAChCgoM,gBAAiBxwJ,KAAUx3C,KAC3BkoD,eAAgB1Q,KAAUj5B,OAC1B4pC,iBAAkB3Q,KAAUj5B,OAC5B6pC,cAAe5Q,KAAUj5B,OACzBk6J,cAAejhI,KAAUqM,UC1JR2rJ,eACjB,SAAAA,EAAYzwL,GAAO,IAAA3Q,IAAA,uCAAAohM,4DAAAC,CAAA3wM,OACfA,OAAA4wM,GAAAF,GAAAnnN,KAAAyW,KAAMigB,GAAN3Q,uKAAAtP,SACKygM,YAAc5nJ,KAAMwwB,YAFV/5D,qPADkCupC,KAAMC,yDAOvD94C,KAAKygM,YAAY5rM,QAAQ2b,+CAIzB,IAAIu+L,EAAYzQ,GAMhB,MzB1BmC,uByBsB/Bt+L,KAAKigB,MAAM+gL,kBACX+N,EAAYzQ,IAGTyQ,mDAIP,IAAMtN,EAAgBzhM,KAAKigB,MAAM4hL,kBAAkBhmJ,SAAS7lC,KAAK,SAAC0rL,GAAD,OAC7DA,EAAQ1gM,MAAQk6C,KAEhBxwD,EAAO,GAMX,OAJI+2M,IACA/2M,GAAI,GAAAO,OAAOg9C,GAAeyc,gBAAgB+8I,EAAcv5J,OAApD,KAAAj9C,OAA8Dw2M,EAAcE,aAG7Ej3M,kDAGammN,GACpB,IAAM7B,EAAchvM,KAAKigB,MAAM+uL,YAC/B,KAAK6B,GAAyBA,EAAqBpjN,QAAWuhN,GAAgBA,EAAYvhN,QAAQ,OAAO,KAEzG,IAAIqjN,EAA2B,IAAIvgN,MAOnC,OANAy+M,EAAYxpM,QAAQ,SAAC0pM,GACb2B,EAAqBn7M,KAAK,SAACymD,GAAD,OAAaA,EAAQnuD,KAAOkhN,EAAelhN,MACrE8iN,EAAyBh8M,KAAKo6M,KAI/B4B,iDAGYA,GACnB,OAAKA,GAA6BA,EAAyBrjN,OAEpCqjN,EAAyBnhM,OAAO,SAACu/L,GAAD,OACnDA,EAAeluM,MAAQk6C,KAAiB,IAMrC41J,EAAyB,GAT0C,uDAYpDC,GACtB,IAAKA,IAAyBA,EAAqBtjN,OAAQ,OAAO,KAElE,IAAMqjN,EAA2B9wM,KAAKgxM,wBAAwBD,GACxDE,EAAsBjxM,KAAKkxM,uBAAuBJ,GAExD,OAAO34J,GAAAllD,EAAA/D,cAAC+3M,GAAD,CACH9E,WAAYniM,KAAKigB,MAAMkiL,WACvBztM,IAAKu8M,EAAoBjjN,GACzBmuD,QAAS80J,EACTpP,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9BkE,wBAAyB/lM,KAAKigB,MAAM8lL,wBACpCY,aAAa,6EAIO6F,GAAqB,IAAAj9L,EAAAvP,KAC7C,OAAKwsM,GAAwBA,EAAoB/+M,OAE1C++M,EAAoBtlM,IAAI,SAACgoM,GAAD,OAC3B/2J,GAAAllD,EAAA/D,cAAC+3M,GAAD,CACI9E,WAAY5yL,EAAK0Q,MAAMkiL,WACvBztM,IAAKw6M,EAAelhN,GACpBmuD,QAAS+yJ,EACTrN,kBAAmBtyL,EAAK0Q,MAAM4hL,kBAC9BkE,wBAAyBx2L,EAAK0Q,MAAM8lL,wBACpCY,aAAa,2BAT2C,6CAcpDoK,GACZ,IAAKA,IAAyBA,EAAqBtjN,QAAUsjN,EAAqBtjN,OAAS,EAAG,OAAO,KAErG,IAAMqjN,EAA2B9wM,KAAKgxM,wBAAwBD,GAC9D,IAAKD,IAA6BA,EAAyBrjN,OAAQ,OAAO,KAE1E,IAAMwjN,EAAsBjxM,KAAKkxM,uBAAuBJ,GAClDK,EAA2BL,EAAyBnhM,OAAO,SAACu/L,GAAD,OAC7DA,IAAmB+B,IAEvB,OACI94J,GAAAllD,EAAA/D,cAACkgN,GAAD,CAAWT,YAAY,oBAAoBD,kBAAkB,sBACxD1uM,KAAKoxM,4BAA4BD,qCAKrC,IAAA1hM,EAAAzP,KACL,OACIm4C,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,WACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,4BAA4ByX,SAAS,KAAKonD,IAAKhvD,KAAKygM,aAAczgM,KAAKigB,MAAMkiL,WAAWkP,4BACtGl5J,GAAAllD,EAAA/D,cAACm4M,GAAD,CAAWxF,kBAAmB7hM,KAAKigB,MAAM4hL,oBACzC1pJ,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBACXgoD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,SAAS6P,KAAKigB,MAAMkiL,WAAWmP,2BAEzC9pK,YAASxnC,KAAKigB,MAAMkiL,WAAWoP,sCAC/B/pK,YAASxnC,KAAKigB,MAAMkiL,WAAWqP,uCAC/Br5J,GAAAllD,EAAA/D,cAACgvM,GAAD,CACItrJ,KAAM5yC,KAAKigB,MAAMkiL,WAAWoP,qCAAsCvxM,KAAKigB,MAAMkiL,WAAWqP,uCAGpGr5J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,iBACV6P,KAAKigB,MAAM4hL,kBAAkB36L,IAAI,SAACy3C,GAAD,OAC9BxG,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,CAAgBpuD,IAAKiqD,EAAa3wD,IAC9BmqD,GAAAllD,EAAA/D,cAAA,MAAIiB,UAAU,8BAA8BwuD,EAAavY,OACxD32B,EAAKgiM,0BAA0B9yJ,EAAa9C,UAC5CpsC,EAAKkgM,gBAAgBhxJ,EAAa9C,cAI/C1D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,mBACXgoD,GAAAllD,EAAA/D,cAAC61M,GAAD,CAAazsJ,QAASt4C,KAAKigB,MAAM0nL,kBAAmB3nM,KAAKigB,MAAMkiL,WAAWuP,qCAC1Ev5J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,6BACV6P,KAAKigB,MAAMkiL,WAAWwP,uBAE3Bx5J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACXgoD,GAAAllD,EAAA/D,cAAC21M,GAAD,CAAUC,MAAO9kM,KAAK4vM,gBAAtB,89BAQxBc,GAA4Bj4J,UAAY,CACpC0pJ,WAAYzpJ,KAAUnsD,OAAOu4D,WAC7BkqJ,YAAat2J,KAAUjjD,MACvBosM,kBAAmBnpJ,KAAUjjD,MAC7BurM,gBAAiBtoJ,KAAUj5B,OAAOqlC,WAClCihJ,wBAAyBrtJ,KAAUx3C,KACnCymM,iBAAkBjvJ,KAAUx3C,UCzJX0wM,eACjB,SAAAA,EAAY3xL,GAAO,IAAA3Q,IAAA,uCAAAsiM,4DAAAC,CAAA7xM,OACfsP,MAAAwiM,GAAAF,GAAAroN,KAAAyW,KAAMigB,+CAANjgB,SAEK0F,MAAQ,CACTijD,WAAW,GAEfr5C,EAAKs5C,wBAA0Bt5C,EAAKs5C,wBAAwB97C,KAA7BilM,MAAAziM,KAC/BA,EAAKw5C,iBAAmBx5C,EAAKw5C,iBAAiBh8C,KAAtBilM,MAAAziM,KAPTA,qPADkCupC,KAAMC,+DAYvD94C,KAAKigB,MAAM05J,cAAgB35K,KAAK4hD,SAAS,CAAE+G,WAAW,IAAU3oD,KAAK4hD,SAAS,CAAE+G,WAAW,gDAG3EjK,EAAIkkJ,GACpB5iM,KAAK4oD,0BAEA5oD,KAAKigB,MAAM05J,eACZ35K,KAAKihD,WAAWvC,EAAIkkJ,8CAIxB5iM,KAAK4hD,SAAS,CAAE+G,WAAW,uCAGpBjK,EAAIkkJ,GACX5iM,KAAKigB,MAAMipL,gBAAgBxqJ,GAC3B1+C,KAAKwpM,gBAAgB5G,EAAYlkJ,EAAK,sBAAwB,yDAI9D,IACMwrJ,EADclqM,KAAK8sM,iBACM5lM,IAAI,SAACw6L,GAAD,OAC/BsQ,GAAc,GAAI,CACd3jN,KAAMqzM,EAAQrzM,KACd2S,IAAK0gM,EAAQ1gM,QAGrBhB,KAAKigB,MAAM0nL,iBAAiBuC,2CAGhBtH,EAAYO,GACxBP,EAAWO,E1B3CqB,uE0B+ChC,OAAOmF,GAAe2J,0BAClBjyM,KAAKigB,MAAM4hL,kBACX7hM,KAAKigB,MAAMq+B,OAAO3C,cAClB,SAACQ,GAAD,M/c3DwB,Y+c2DXA,EAAQ9tD,yDAII,IAAA8jE,GAC7BA,EAAAnyD,KAAKigB,OAAM8lL,wBAAXlnM,MAAAszD,EAAAvjE,WACAoR,KAAK4hD,SAAS,CAAE6nJ,cAAc,EAAMuG,eAAe,qCAG9C,IAAAzgM,EAAAvP,KACL,OACIm4C,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KACI3K,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,wBACXgoD,GAAAllD,EAAA/D,cAACgjN,GAAD,CACI/P,WAAYniM,KAAKigB,MAAMkiL,WACvBN,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9Bb,gBAAiBhhM,KAAKigB,MAAM+gL,gBAC5BgO,YAAahvM,KAAK8sM,iBAClB/G,wBAAyB/lM,KAAKigB,MAAM8lL,wBACpC4B,iBAAkB,kBAAMp4L,EAAK6gM,8BAGrCj4J,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,yBACXgoD,GAAAllD,EAAA/D,cAACu1M,GAAD,CACI5C,kBAAmB7hM,KAAKigB,MAAM4hL,kBAC9BvjJ,OAAQt+C,KAAKigB,MAAMq+B,OACnBilJ,qBAAsBvjM,KAAKigB,MAAMsjL,qBACjC1gJ,UAAW7iD,KAAKigB,MAAM4iC,UACtBk6D,eAAgB,SAAC6lF,GAAD,OACZzqJ,GAAAllD,EAAA/D,cAACipD,GAAAllD,EAAM6vD,SAAP,KACI3K,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,gCACXgoD,GAAAllD,EAAA/D,cAAC+5M,GAAD,CACIC,gBAAiB,SAACxqJ,GAAD,OAAQnvC,EAAKghM,oBAAoB7xJ,EAAIkkJ,IACtDl7L,YAAa6H,EAAKu9L,iBAAiBp3M,KAAK,SAACgsM,GAAD,OAAaA,EAAQzlJ,SAAW,MAE5E9D,GAAAllD,EAAA/D,cAAA,OAAKiB,UAAU,YACXgoD,GAAAllD,EAAA/D,cAAA,8FAGRipD,GAAAllD,EAAA/D,cAAC+5D,GAAD,CACIp3B,OAAQtiB,EAAK7J,MAAMijD,UACnBf,UAAW,MACXC,aAAct4C,EAAKu5C,iBACnBhB,eAAgB,SAACpJ,GAAD,OAAQnvC,EAAK0xC,WAAWvC,EAAIkkJ,IAC5C76I,iBAAiB,EACjBC,yBAAyB,EACzBC,cAAe14C,EAAKu5C,iBACpBZ,wBAAwB,EACxBC,0BAA2B54C,EAAK0Q,MAAMipC,iBAEtC/Q,GAAAllD,EAAA/D,cAACi6D,GAAD,CACItD,qBAAsBt2C,EAAK0Q,MAAMmpC,eACjCtD,uBAAwBv2C,EAAK0Q,MAAMopC,iBACnCtD,oBAAqBx2C,EAAK0Q,MAAMqpC,yxBAYxEsoJ,GAA4Bn5J,UAAY,CACpC0pJ,WAAYzpJ,KAAUnsD,OAAOu4D,WAC7BxG,OAAQ5F,KAAUnsD,OAClBs1M,kBAAmBnpJ,KAAUjjD,MAC7BorM,eAAgBnoJ,KAAUjjD,MAC1BurM,gBAAiBtoJ,KAAUj5B,OAAOqlC,WAClCihJ,wBAAyBrtJ,KAAUx3C,KACnCymM,iBAAkBjvJ,KAAUx3C,KAC5BqiM,qBAAsB7qJ,KAAUx3C,KAChCgoM,gBAAiBxwJ,KAAUx3C,KAC3BkoD,eAAgB1Q,KAAUj5B,OAC1B4pC,iBAAkB3Q,KAAUj5B,OAC5B6pC,cAAe5Q,KAAUj5B,OACzBk6J,cAAejhI,KAAUqM,MC7F7B,IAEMotJ,eACF,SAAAA,EAAYlyL,GAAO,IAAA3Q,UAAA,uCAAA6iM,4DAAAC,CAAApyM,QACfqyM,GAAAF,GAAA5oN,KAAAyW,KAAMigB,GAAN3Q,gDAAAtP,UA2CiB,WACbsP,EAAK5J,MAAM4sM,kBACXhjM,EAAKi0L,2BA9CM,0BAAAgP,MAAAjjM,2FAGfA,EAAK20L,4BAA6B,EAClC30L,EAAKw8L,mBAAqBx8L,EAAKkjM,wBAE/BljM,EAAK5J,MAAQ,CACTm8L,kBAAmBvyL,EAAKmjM,2BACxBH,kBAAkB,EAClBI,kBAAkB,GAGtBpjM,EAAKqjM,gCAEA3mN,OAAOkK,KAAKoZ,EAAK5J,MAAMm8L,mBAAmBp0M,SAC3C7C,OAAOg2B,SAASl3B,KAAO,IAG3B4lB,EAAKyxL,qBAAuBzxL,EAAKyxL,qBAAqBj0L,KAA1BylM,MAAAjjM,KAC5BA,EAAKy2L,wBAA0Bz2L,EAAKy2L,wBAAwBj5L,KAA7BylM,MAAAjjM,KAC/BA,EAAKq4L,iBAAmBr4L,EAAKq4L,iBAAiB76L,KAAtBylM,MAAAjjM,KACxBA,EAAKi0L,qBAAuBj0L,EAAKi0L,qBAAqBz2L,KAA1BylM,MAAAjjM,KAE5B4/B,KAAS9W,YAAYu2C,IAA2Br/D,EAAKsjM,oBAErDtjM,EAAKujM,UAAY,CACbhc,qBAAsBvnL,EAAKwjM,2BA1BhBxjM,qPADKupC,KAAMC,wDA+BXgkF,GAEX98H,KAAKigB,MAAMW,WAAak8G,EAAUl8G,UAClCh2B,OAAOy+G,SAAS,EAAG,GAIvBrpG,KAAKikM,4BAA6B,iDAIlC/0J,KAASszC,eAAe7T,IAA2B3uE,KAAK4yM,sEAUxD,OAAQ5yM,KAAKigB,MAAM+gL,iBACf,I3BrGqB,W2BsGjB,MAAO,cACX,I3BtGwB,c2BuGxB,I3BtGoC,0B2BuGhC,OAAOhhM,KAAKigB,MAAM4gL,eAAe,GAAGz6J,MACxC,I3BrGiC,uB2BsG7B,MAAO,cACX,I3BzGoB,U2B0GhB,MAAO,cACX,I3B1G+B,qB2B2GvB,MAAO,yBACf,QACI,MAAO,gEAKf,IAAI2sK,EAAc,GAElB,OAAQ/yM,KAAKigB,MAAM+gL,iBACf,I3BzHqB,W2B0HjB+R,EAAc/3J,GACd,MACJ,I3B3HwB,c2B4HxB,I3B3HoC,0B2B4HhC+3J,EAAc93J,GACd,MACJ,I3B7HoB,U2BgIpB,I3B/H+B,qB2BgIvB83J,EhdlIgB,UgdmIhB,MACR,I3BjIiC,uB2BkI7BA,EAAc/3J,GACd,MACJ,QACI+3J,EAAc/3J,GAGtB,OAAO+3J,qDAGgB,IAAAxjM,EAAAvP,KACjB6hM,EAAoB,GAS1B,OAPA7hM,KAAKigB,MAAM4gL,eAAer7L,QAAQ,SAACm7E,GAAD,OAC9BA,EAAShlC,cAAcn2C,QAAQ,SAACm5C,IACxBpvC,EAAKyjM,kCAAkCr0J,IAAiBpvC,EAAK0jM,0BAA0Bt0J,KACvFkjJ,EAAkB/sM,KAAK0kH,KAAarwF,MAAMw1B,QAI/CkjJ,4DAGuBljJ,GAAc,IAAAlvC,EAAAzP,KACtCkzM,EAA0Bv0J,EAAa9C,SAASlsC,OAAO,SAACwsC,GAAD,OACzDA,EAAQ9tD,OAASohB,EAAKq8L,qBAG1B,GAAIoH,EAAwBzlN,OAAS,EAAG,CACpC,IAAM40D,EAAsBriD,KAAKigB,MAAMq+B,OAAO3C,cAC9C,GAAI0G,EAAoB1D,EAAa3wD,IACjC,OAAOklN,EAAwBx9M,KAAK,SAACymD,GAAD,OAChCkG,EAAoB1D,EAAa3wD,IAAI6tD,SAASnmD,KAAK,SAACssD,GAAD,OAC/CA,EAAc3zD,OAAS8tD,EAAQ9tD,MAC/B2zD,EAAchhD,MAAQm7C,EAAQn7C,QAI9C,OAAO,yDAIP,OAAOyzC,KAAU0+J,qBAlIe,IAkIuCvoN,OAAOg2B,4HAa9E,IAAMwyL,EAAqBpzM,KAAKqzM,+BAC5BD,GACApzM,KAAKszM,iCACLtzM,KAAKikM,2BAA6BjkM,KAAKigB,MAAM4gL,eACxCnrM,KAAK,SAACirF,GAAD,OACFA,EAAShlC,cAAcjmD,KAAK,SAACipD,GAAD,OAAkBA,EAAa3wD,GAAGoF,gBAAkBggN,EAAmBhgN,mBAE3G4M,KAAKikM,4BAA6B,oDAIhBtlJ,GAAc,IAAA7uC,EAAA9P,KACpC,IAAK2+C,EAAa+gJ,UAAW,CACzB,IAAM6T,EAA6B50J,EAAa9C,SAASnmD,KAAK,SAACymD,GAAD,OAAaA,EAAQ9tD,OAASyhB,EAAKg8L,qBAC3FsH,EAAqBpzM,KAAKqzM,+BAChC,GAAIE,IAA+BvgK,YAAkBogK,GACjD,OAAOA,EAAmBhgN,gBAAkBurD,EAAa3wD,GAAGoF,cAIpE,OAAO,+CAGUogN,GAAiB,IAAAzjM,EAAA/P,KAC5BqiD,EAAsBm3D,KAAarwF,MAAMnpB,KAAKigB,MAAMq+B,OAAO3C,eAC3DkmJ,EAAoBroF,KAAarwF,MAAMnpB,KAAK0F,MAAMm8L,mBAClD4R,EAAoBt6J,KAAYu6J,gBAClC7R,EACA,KACA2R,EAAgBxlN,KAGO,IAAvBylN,GAIA5R,EAAkBr8L,QAAQ,SAACm5C,GACnBA,EAAa3wD,MAAMq0D,GACnBtyC,EAAK4jM,cAActxJ,EAAoB1D,EAAa3wD,IAAKwlN,EAAgB33J,YAGjFgmJ,EAAkB/sM,KAAK0+M,KAIvB3R,EAAkB39L,OAAOuvM,EAAmB,GAExCD,EAAgBxlN,MAAMq0D,GAEtBriD,KAAK2zM,cAActxJ,EAAoBmxJ,EAAgBxlN,IAAKwlN,EAAgB33J,WAIpF77C,KAAKigB,MAAM6gC,sBAAsBuB,GACjCriD,KAAK4hD,SAAS,CAAEigJ,sEAWI+R,EAAgB33J,GACpC,IAAMoG,EAAsBm3D,KAAarwF,MAAMnpB,KAAKigB,MAAMq+B,OAAO3C,eAEjE37C,KAAK0F,MAAMm8L,kBAAkBr8L,QAAQ,SAACm5C,GAELA,EAAa9C,SAASlsC,OAAO,SAACwsC,GAAD,OAAanwD,OAAOkK,KAAK09M,GAAgBx0I,MAAM,SAAC5yE,GACtG,IAAMrC,EAAQypN,EAAepnN,GAC7B,OAAO2vD,EAAQ3vD,KAAcrC,MAGZqb,QAAQ,SAACquM,GAErBxxJ,EAAoB1D,EAAa3wD,MAClCq0D,EAAoB1D,EAAa3wD,IAAMwrH,KAAarwF,MAAMw1B,GAC1D0D,EAAoB1D,EAAa3wD,IAAI6tD,SAAW,IAGpD,IAAMmG,EAAgBK,EAAoB1D,EAAa3wD,IAAI6tD,SAAS7lC,KAAK,SAAC6mC,GAAD,OACrEA,EAAiBxuD,OAASwlN,EAAgBxlN,MAC1CwuD,EAAiB77C,MAAQ6yM,EAAgB7yM,MAE7C,GAAIghD,EAAe,CACf,GhdtPmB,egdsPfA,EAAchhD,KAAgD,IAAbi7C,EAAgB,CACjE,IAAMuG,EAAqBH,EAAoB1D,EAAa3wD,IAAI6tD,SAAS7lC,KAAK,SAACgsC,GAAD,OAAmBA,EAAchhD,MAAQu6C,KAEnHiH,IACAA,EAAmBvG,SAAWA,GAItC+F,EAAc/F,SAAWA,MACtB,CACH,IAAM63J,EAAat6F,KAAarwF,MAAM0qL,GACtCC,EAAW73J,SAAWA,EACtBoG,EAAoB1D,EAAa3wD,IAAI6tD,SAAS/mD,KAAKg/M,QAK/D9zM,KAAKigB,MAAM6gC,sBAAsBuB,EAAqBzG,GAAiB6G,kBAAkBmxJ,EAAevlN,KAAMulN,EAAe5yM,+CAGhHkpM,GACb,IAAM7nJ,EAAsBm3D,KAAarwF,MAAMnpB,KAAKigB,MAAMq+B,OAAO3C,eAEjE37C,KAAK0F,MAAMm8L,kBAAkBr8L,QAAQ,SAACm5C,GAClC,GAAIA,EAAa3wD,MAAMq0D,EAAqB,CACxC,IAAM3F,EAAqB2F,EAAoB1D,EAAa3wD,IAE5Dk8M,EAAW1kM,QAAQ,SAAC26D,GAChB,IAAM4zI,EAAqBr3J,EAAmBb,SAAS7mB,UAAU,SAACgtB,GAAD,OAC7DA,EAAc3zD,OAAS8xE,EAAM9xE,MAC7B2zD,EAAchhD,MAAQm/D,EAAMn/D,OAEJ,IAAxB+yM,GACAr3J,EAAmBb,SAAS33C,OAAO6vM,EAAoB,QAMvE/zM,KAAKigB,MAAM6gC,sBAAsBuB,kDAGd,IAAAlyC,EAAAnQ,KACbsyM,EAAmBtyM,KAAK0F,MAAM4sM,iBAEhCA,GACAvkG,KAAeO,QAAQ,yBACvB16C,KAAQl3D,KAAK,2BAEbqxG,KAAeC,MAAM,yBACrBp6C,KAAQvjD,KAAK,0BAGjBrQ,KAAK4hD,SAAS,CAAE0wJ,kBAAmBA,EAAkBI,kBAAkB,GAAQ,WAC3Eh/I,WAAW,WACPvjD,EAAKyxC,SAAS,CAAE8wJ,kBAAkB,KACnC,6CAIGh2J,EAAoBb,GAC9B,IAAMm4J,EAAkBh0M,KAAKi0M,qBAE7Bp4J,EAASr2C,QAAQ,SAAC22C,GAGd,GAF4B63J,EAAgBt+M,KAAK,SAACrH,GAAD,OAAUA,IAAS8tD,EAAQ9tD,OAEnD,CACrB,IAAM0lN,EAAqBr3J,EAAmBb,SAAS7mB,UAAU,SAACgtB,GAAD,OAC7DA,EAAc3zD,OAAS8tD,EAAQ9tD,MAC/B2zD,EAAchhD,MAAQm7C,EAAQn7C,OAEN,IAAxB+yM,GACAr3J,EAAmBb,SAAS33C,OAAO6vM,EAAoB,mDAOnE,IAAMC,EAAkB,GAExB,OAAQh0M,KAAKigB,MAAM+gL,iBACf,I3BtWqB,W2BuWjBgT,EAAgBl/M,KAAKkmD,GhdrWD,WgdsWpB,MACJ,I3BxWwB,c2ByWxB,I3BxWoC,0B2ByWhCg5J,EAAgBl/M,KAAKmmD,GhdzWD,UACD,UgdyWnB,MACJ,I3B1WoB,U2B2WpB,I3B1W+B,qB2B2W3B+4J,EAAgBl/M,Khd7WI,Wgd8WpB,MACJ,I3B5WiC,uB2B6W7Bk/M,EAAgBl/M,KAAKkmD,GhdhXD,UACD,UgdmX3B,OAAOg5J,mCAGF,IAAAtjM,EAAA1Q,KACL,OACIm4C,GAAAllD,EAAA/D,cAACszM,GAAqBlK,SAAtB,CAA+BnuM,MAAO6V,KAAK6yM,WACvC16J,GAAAllD,EAAA/D,cAAA,WACIiB,UAAS,kBAAAlF,OAAoB+U,KAAK0F,MAAM4sM,iBAAmB,qBAAuB,GAAzE,KAAArnN,OAA+E+U,KAAK0F,MAAMgtM,iBAAmB,qBAAuB,KAC7Iv6J,GAAAllD,EAAA/D,cAACw1M,GAAA,EAAD,KACIvsJ,GAAAllD,EAAA/D,cAACw1M,GAAA,EAAD,CACI1vM,KAAMspM,GACNzyL,OAAQ,kBACJssC,GAAAllD,EAAA/D,cAACglN,GAAD,CACI/R,WAAYzxL,EAAKuP,MAAMkiL,WACvB7jJ,OAAQ5tC,EAAKuP,MAAMq+B,OACnBujJ,kBAAmBnxL,EAAKhL,MAAMm8L,kBAC9BhB,eAAgBnwL,EAAKuP,MAAM4gL,eAC3BG,gBAAiBtwL,EAAKuP,MAAM+gL,gBAC5BD,qBAAsBrwL,EAAKqwL,qBAC3BwC,qBAAsB7yL,EAAK6yL,qBAC3B96E,QAAS/3G,EAAKuP,MAAMwoG,QACpBw7E,2BAA4BvzL,EAAKuzL,2BACjCphJ,UAAWnyC,EAAKuP,MAAM4iC,UACtB8hJ,iCAAkCj0L,EAAKuP,MAAM0kL,iCAC7CjnJ,sBAAuBhtC,EAAKuP,MAAMy9B,2BAI9CvF,GAAAllD,EAAA/D,cAACw1M,GAAA,EAAD,CACI1vM,KAAMupM,GACN1yL,OAAQ,kBACJssC,GAAAllD,EAAA/D,cAACy7M,GAAD,CACIxI,WAAYzxL,EAAKuP,MAAMkiL,WACvB7jJ,OAAQ5tC,EAAKuP,MAAMq+B,OACnBujJ,kBAAmBnxL,EAAKhL,MAAMm8L,kBAC9BhB,eAAgBnwL,EAAKuP,MAAM4gL,eAC3BG,gBAAiBtwL,EAAKuP,MAAM+gL,gBAC5B+E,wBAAyBr1L,EAAKq1L,wBAC9B4B,iBAAkBj3L,EAAKi3L,iBACvBpE,qBAAsB7yL,EAAK6yL,qBAC3B2F,gBAAiBx4L,EAAKuP,MAAMghC,WAC5B4B,UAAWnyC,EAAKuP,MAAM4iC,UACtB8hJ,iCAAkCj0L,EAAKuP,MAAM0kL,iCAC7CjnJ,sBAAuBhtC,EAAKuP,MAAMy9B,sBAClCgoJ,iBAAkBh1L,EAAKuP,MAAMylL,sBAIzCvtJ,GAAAllD,EAAA/D,cAACw1M,GAAA,EAAD,CACI1vM,K3B9ZA,iB2B+ZA6W,OAAQ,kBACJssC,GAAAllD,EAAA/D,cAACilN,GAAD,CACIhS,WAAYzxL,EAAKuP,MAAMkiL,WACvB7jJ,OAAQ5tC,EAAKuP,MAAMq+B,OACnBujJ,kBAAmBnxL,EAAKhL,MAAMm8L,kBAC9BhB,eAAgBnwL,EAAKuP,MAAM4gL,eAC3BiL,mBAAoBp7L,EAAKo7L,mBACzB/F,wBAAyBr1L,EAAKq1L,wBAC9B/kJ,wBAAyBtwC,EAAKuP,MAAM+gC,wBACpC2mJ,iBAAkBj3L,EAAKi3L,iBACvBpE,qBAAsB7yL,EAAK6yL,qBAC3B2F,gBAAiBx4L,EAAKuP,MAAMghC,WAC5B+/I,gBAAiBtwL,EAAKuP,MAAM+gL,gBAC5Bn+I,UAAWnyC,EAAKuP,MAAM4iC,UACtB8hJ,iCAAkCj0L,EAAKuP,MAAM0kL,iCAC7CjnJ,sBAAuBhtC,EAAKuP,MAAMy9B,2BAI9CvF,GAAAllD,EAAA/D,cAACw1M,GAAA,EAAD,CACI1vM,K3BlbC,kB2BmbD6W,OAAQ,kBACJssC,GAAAllD,EAAA/D,cAACklN,GAAD,CACIjS,WAAYzxL,EAAKuP,MAAMkiL,WACvB7jJ,OAAQ5tC,EAAKuP,MAAMq+B,OACnBujJ,kBAAmBnxL,EAAKhL,MAAMm8L,kBAC9BhB,eAAgBnwL,EAAKuP,MAAM4gL,eAC3BG,gBAAiBtwL,EAAKuP,MAAM+gL,gBAC5B+E,wBAAyBr1L,EAAKq1L,wBAC9B4B,iBAAkBj3L,EAAKi3L,iBACvBpE,qBAAsB7yL,EAAK6yL,qBAC3B2F,gBAAiBx4L,EAAKuP,MAAMghC,WAC5B4B,UAAWnyC,EAAKuP,MAAM4iC,UACtBnF,sBAAuBhtC,EAAKuP,MAAMy9B,sBAClC0L,eAAgB14C,EAAKuP,MAAMmpC,eAC3BC,iBAAkB34C,EAAKuP,MAAMopC,iBAC7BswH,cAAejpK,EAAKuP,MAAM05J,cAC1BzwH,gBAAiBx4C,EAAKuP,MAAMipC,qBAIxC/Q,GAAAllD,EAAA/D,cAACw1M,GAAA,EAAD,CACI1vM,K3BvcY,6B2BwcZ6W,OAAQ,kBACJssC,GAAAllD,EAAA/D,cAACmlN,GAAD,CACIlS,WAAYzxL,EAAKuP,MAAMkiL,WACvB7jJ,OAAQ5tC,EAAKuP,MAAMq+B,OACnBujJ,kBAAmBnxL,EAAKhL,MAAMm8L,kBAC9BhB,eAAgBnwL,EAAKuP,MAAM4gL,eAC3BiL,mBAAoBp7L,EAAKo7L,mBACzB/F,wBAAyBr1L,EAAKq1L,wBAC9B/kJ,wBAAyBtwC,EAAKuP,MAAM+gC,wBACpC2mJ,iBAAkBj3L,EAAKi3L,iBACvBpE,qBAAsB7yL,EAAK6yL,qBAC3B2F,gBAAiBx4L,EAAKuP,MAAMghC,WAC5B+/I,gBAAiBtwL,EAAKuP,MAAM+gL,gBAC5Bn+I,UAAWnyC,EAAKuP,MAAM4iC,UACtBnF,sBAAuBhtC,EAAKuP,MAAMy9B,sBAClC0L,eAAgB14C,EAAKuP,MAAMmpC,eAC3BC,iBAAkB34C,EAAKuP,MAAMopC,iBAC7BC,cAAe54C,EAAKuP,MAAMqpC,cAC1BJ,gBAAiBx4C,EAAKuP,MAAMipC,gBAC5BywH,cAAejpK,EAAKuP,MAAM05J,mBAItCxhI,GAAAllD,EAAA/D,cAACw1M,GAAA,EAAD,CAAO74L,OAAQ,kBACXssC,GAAAllD,EAAA/D,cAACw1M,GAAA,EAAD,CAAUlvK,GAAI8oK,yMAS1C6T,GAAc15J,UAAY,CACtBooJ,eAAgBnoJ,KAAUjjD,MAC1BurM,gBAAiBtoJ,KAAUj5B,OAAOqlC,WAClClkC,SAAU83B,KAAUnsD,OAAOu4D,WAC3B2jE,QAAS/vE,KAAUnsD,OAAOu4D,WAC1Bq9I,WAAYzpJ,KAAUnsD,OACtB+xD,OAAQ5F,KAAUnsD,OAClBu0D,sBAAuBpI,KAAUx3C,KACjC8/C,wBAAyBtI,KAAUx3C,KACnC+/C,WAAYvI,KAAUx3C,KACtByjM,iCAAkCjsJ,KAAUqM,KAC5CrH,sBAAuBhF,KAAUqM,KACjCqE,eAAgB1Q,KAAUj5B,OAC1B4pC,iBAAkB3Q,KAAUj5B,OAC5B6pC,cAAe5Q,KAAUj5B,OACzBk6J,cAAejhI,KAAUqM,MAI7B,IAAMuvJ,GAA0BC,aAAWpC,IAO5BqC,GANqB,SAACv0L,GAAD,OAChCk4B,GAAAllD,EAAA/D,cAACw1M,GAAA,EAAD,KACIvsJ,GAAAllD,EAAA/D,cAAColN,GAA4Br0L,idCxfhBw0L,eACjB,SAAAA,IAAqB,IAAAn9K,EAAAhoB,qCAAAmlM,4DAAAC,CAAA10M,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAAq9K,GAAAF,IAAAlrN,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,qPAD2B0oB,sCAOzC,IAAAzoB,EAAAvP,KACHA,KAAKjX,KAAO,GAEZ,IACIiX,KAAKjX,KAAO8M,KAAKC,MAAMkK,KAAK8H,aAAa9H,KAAKi4B,KAAKlvC,KAAM,YAC3D,MAAOglB,GACLhjB,QAAQC,IAAI+iB,EAAM60C,SAGtB,GAAK5iD,KAAKjX,KAAV,CAKA,IAAM43F,EAAW3gF,KAAKjX,KAAK6rN,WAAW,GAEtCr8J,KAAIwL,mBAAmBL,KAAoBmxJ,eAAgB,CACvDC,aAAcn0H,EAAS3yF,GACvB+mN,eAAgBp0H,EAASv6C,MACzB3xC,MAAOksF,EAAShlC,cAAcz0C,IAAI,SAACy3C,GAAD,MAAmB,CACjDqF,QAASrF,EAAa9C,SAAS,GAAGgD,UAClCoF,UAAS,GAAAh5D,OAAK0zD,EAAa39C,IAAlB,OAAA/V,OAA2B0zD,EAAavY,OACjD8B,MAAOyW,EAAa9C,SAAS,GAAG3T,Mje/ClB,IiegDd+T,SAAU,OAIlB,IAAM+4J,EAAsBh1M,KAAKi1M,sBAAsBj1M,KAAKjX,KAAKmsN,uBAC3D7rJ,EAAmBrpD,KAAKjX,KAAKsgE,iBAAiB5pD,MAAM,WAAWK,KAAK,MAC1EksD,GAAqBC,2BAA2B+oJ,GAChDnpM,kBAEQssC,GAAAllD,EAAA/D,cAACg9D,GAAD,CACIxO,sBAAuB19C,KAAKjX,KAAK20D,sBACjCsF,sBAAuBhjD,KAAKjX,KAAKi6D,sBACjCH,UAAW7iD,KAAKjX,KAAK85D,UACrBta,mBAAoBvoC,KAAKjX,KAAKw/C,mBAC9B18B,OAAQ,SAAAnH,GAAA,IACJ45C,EADI55C,EACJ45C,OAAQwC,EADJp8C,EACIo8C,sBAAuBE,EAD3Bt8C,EAC2Bs8C,wBAAyBC,EADpDv8C,EACoDu8C,WADpD,OAGJ9I,GAAAllD,EAAA/D,cAACimN,GAAD,CAAe72J,OAAQA,EACnBwC,sBAAuBA,EACvBE,wBAAyBA,EACzBC,WAAYA,EACZ4/I,eAAgBtxL,EAAK6lM,kBAAkB7lM,EAAKxmB,KAAK6rN,YACjDzS,WAAY5yL,EAAKxmB,KAAKwB,KACtBy2M,gBAAiBzxL,EAAK8lM,qBACtBxyJ,UAAWtzC,EAAKxmB,KAAK85D,UACrB8hJ,iCAAkCp1L,EAAKxmB,KAAK47M,iCAC5Cv7I,eAAgB75C,EAAKxmB,KAAKqgE,eAC1BC,iBAAkBA,EAClBC,cAAe/5C,EAAKxmB,KAAKugE,cACzBJ,gBAAiB35C,EAAKxmB,KAAKmgE,gBAC3BywH,cAAepqK,EAAKxmB,KAAK4wL,cACzB+rB,iBAAkBn2L,EAAKxmB,KAAK28M,sBAK5C1lM,KAAKi4B,KAAKkiK,cAjDVpvM,QAAQC,IAAI,2DAqDF61M,GACd,IAAKA,IAAmBA,EAAepzM,OAAQ,MAAO,GAEtD,IAAM6nN,EAAoB97F,KAAarwF,MAAM03K,GAO7C,OALAyU,EAAkB9vM,QAAQ,SAACs7L,GACvBA,EAAUnlJ,cAAgBmlJ,EAAUnlJ,cAAcxlD,KAAK,SAAClD,EAAGC,GAAJ,OACnDD,EAAEipD,UAAYhpD,EAAEgpD,cAGjBo5J,gDAGWC,GAClB,IAAKA,IAAuBA,EAAmB9nN,OAAQ,MAAO,GAE9D,IAAM6nN,EAAoB97F,KAAarwF,MAAMosL,GAO7C,OALAD,EAAkB9vM,QAAQ,SAACs7L,GACvBA,EAAUjlJ,SAAWilJ,EAAUjlJ,SAAS1lD,KAAK,SAAClD,EAAGC,GAAJ,OACzCD,EAAEipD,UAAYhpD,EAAEgpD,cAGjBo5J,+CAIP,IAAME,EAAYx1M,KAAKy1M,eACnBC,E5BpHqB,W4ByJzB,OAnCIF,EAAUG,aACVD,E5BvHqB,Y4B0HrBF,EAAUI,iBACVF,E5B1HwB,e4B6HxBF,EAAUI,iBACVJ,EAAUK,WACVL,EAAUM,cAEVJ,E5BhIoC,2B4BmIpCF,EAAUG,aAAeH,EAAUI,gBAAkBJ,EAAUK,YAC/DH,E5BjIiC,wB4BoIhCF,EAAUG,YACVH,EAAUI,iBACXJ,EAAUM,YACTN,EAAU7Q,mCAEX+Q,E5B3IoB,Y4B8InBF,EAAUG,aACVH,EAAUI,gBACXJ,EAAUM,YACVN,EAAU7Q,mCAEV+Q,E5BlJ+B,sB4BqJ5BA,yCAIP,MAAO,CACHC,WAAY31M,KAAKjX,KAAK4sN,aAAc,EACpCC,eAAgB51M,KAAKjX,KAAK6sN,iBAAkB,EAC5CC,UAAW71M,KAAKjX,KAAK8sN,YAAa,EAClCC,WAAY91M,KAAKjX,KAAK+sN,aAAc,EACpCnR,iCAAkC3kM,KAAKjX,KAAK47M,mCAAoC,EAChFjnJ,sBAAuB19C,KAAKjX,KAAK20D,wBAAyB,iMC/JtEnlB,IAAkBC,cAAchE,OAAO,iBAAkBigL,gDCJpCsB,GACjB,SAAAA,IAAc,IAAAzmM,EAAAtP,sCAAA+1M,4DAAAC,CAAAh2M,MACVA,KAAKo/C,QAAU,KACfp/C,KAAKq/C,OAAS,KAEdr/C,KAAKgsG,QAAU,IAAI7sD,QAAQ,SAACC,EAASC,GACjC/vC,EAAK8vC,QAAUA,EACf9vC,EAAK+vC,OAASA,2vBCJL42J,eACjB,SAAAA,IAAqB,IAAA3+K,EAAAhoB,qCAAA2mM,4DAAAC,CAAAl2M,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAA6+K,GAAAF,IAAA1sN,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SACKo2M,SAAW,KAFC9mM,qPADoB0iG,uCAMlC,IAAAziG,EAAAvP,KAGH,OAFAq2M,GAAAF,GAAAF,EAAAxpN,WAAA,OAAAuT,MAAAzW,KAAAyW,MACAA,KAAKo2M,SAAW,IAAIL,GACb/1M,KAAKo2M,SAASpqG,QAAQlyE,KAAK,SAACt3B,GAE/B,OADA+M,EAAK+mM,iBACE9zM,GACR,SAACuL,GAEA,OADAwB,EAAK+mM,iBACEn3J,QAAQE,OAAOtxC,8CAK1B/N,KAAKo2M,SAAW,qCAIhBC,GAAAF,GAAAF,EAAAxpN,WAAA,QAAAuT,MAAAzW,KAAAyW,MACIA,KAAKo2M,UACLp2M,KAAKo2M,SAAS/2J,yCAId78C,GAAsB,IAAdmO,IAAc/hB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,KAAAA,UAAA,GACtBoR,KAAKo2M,UACLp2M,KAAKo2M,SAASh3J,QAAQ58C,GAEtBmO,GACA3Q,KAAK2Q,uCAINqyK,GAAsB,IAAdryK,IAAc/hB,UAAAnB,OAAA,QAAApC,IAAAuD,UAAA,KAAAA,UAAA,GACrBoR,KAAKo2M,UACLp2M,KAAKo2M,SAAS/2J,OAAO2jI,GAErBryK,GACA3Q,KAAK2Q,i7BCzCjB,IAAM4lM,GAA2B,qFAG3BC,GAA2B,qFAGZC,eACjB,SAAAA,IAAqB,IAAAn/K,EAAAhoB,qCAAAmnM,4DAAAC,CAAA12M,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjBwJ,OAAAgoB,EAAAq/K,GAAAF,IAAAltN,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,gDAATlR,SACKpO,YAAc0d,EAAK2oB,KAAKrmC,YAC7B0d,EAAKsnM,QAAUtnM,EAAK2oB,KAAK2+K,QACzBtnM,EAAKunM,aAAevnM,EAAK2oB,KAAK4+K,aAC9BvnM,EAAKwnM,QAAUxnM,EAAK2oB,KAAK6+K,QACzBxnM,EAAKynM,YAAcznM,EAAK2oB,KAAK8+K,YAC7BznM,EAAK0nM,YAAc1nM,EAAK2oB,KAAK++K,YAE7B1nM,EAAKsiG,MAAQ,KACbtiG,EAAK2nM,YAAc3nM,EAAK2nM,YAAYnqM,KAAjBoqM,MAAA5nM,KACnBA,EAAK6nM,mBAAqB7nM,EAAK6nM,mBAAmBrqM,KAAxBoqM,MAAA5nM,KAC1BA,EAAK8nM,mBAAqB9nM,EAAK8nM,mBAAmBtqM,KAAxBoqM,MAAA5nM,KAC1BA,EAAKu4C,aAAev4C,EAAKu4C,aAAa/6C,KAAlBoqM,MAAA5nM,KAEpBA,EAAKxB,OAfYwB,yPADmB0oB,oDAoBpC,MAAO,CAAC,UAAW,eAAgB,UAAW,cAAe,mDAIzDh4B,KAAK82M,QAAQO,cACbr3M,KAAK42M,QAAQz+L,iBAAiB,QAASnY,KAAKi3M,aAExCj3M,KAAKpO,aACLoO,KAAKpO,YAAYumB,iBAAiB,QAASnY,KAAKi3M,cAIxD/nK,KAAS9W,YAAYk/K,KAAmBt3M,KAAK6nD,kDAI7C3Y,KAASszC,eAAe80H,KAAmBt3M,KAAK6nD,oDAGtC,IAAAt4C,EAAAvP,KACVA,KAAK0xG,WAAWphG,OAAO0pB,MAAM,WAEzBzqB,EAAKgoM,WAETv3M,KAAKw3M,2CAaL,OATmB,OAAfx3M,KAAK4xG,QACL5xG,KAAK4xG,MAAQ,IAAIqkG,GAAgBj2M,KAAK62M,aAAc,CAChDr9G,QAAS,CAAC8J,KAAWsjD,QAEzB5mJ,KAAK+8G,iBACL/8G,KAAK+2M,YAAY5+L,iBAAiB,QAASnY,KAAKm3M,oBAChDn3M,KAAKg3M,YAAY7+L,iBAAiB,QAASnY,KAAKo3M,qBAG7Cp3M,KAAK4xG,mDAIR5xG,KAAK82M,QAAQW,QAAUz3M,KAAK82M,QAAQY,MACpC13M,KAAKw3M,QAELx3M,KAAKu3M,uDAKkB,IAAvBv3M,KAAK82M,QAAQa,MACb33M,KAAK43M,UAEL53M,KAAK63M,wCAKT73M,KAAK82M,QAAQgB,OACb93M,KAAK+2M,YAAYzlN,UAnFS,sFAoF1B0O,KAAK+2M,YAAYhvM,aAAa,aAAc,0CAI5C/H,KAAK82M,QAAQpuG,QACb1oG,KAAK+2M,YAAYzlN,UAAYilN,GAC7Bv2M,KAAK+2M,YAAYhvM,aAAa,aAAc,wCAI5C/H,KAAK82M,QAAQa,OAAQ,EACrB33M,KAAKg3M,YAAY1lN,UA5FU,uFA6F3B0O,KAAKg3M,YAAYjvM,aAAa,aAAc,4CAI5C/H,KAAK82M,QAAQa,OAAQ,EACrB33M,KAAKg3M,YAAY1lN,UAAYklN,GAC7Bx2M,KAAKg3M,YAAYjvM,aAAa,aAAc,iDAI5C/H,KAAK+2M,YAAYzlN,UAAYilN,GAC7Bv2M,KAAK+2M,YAAYhvM,aAAa,aAAc,QAC5C/H,KAAKg3M,YAAY1lN,UAAYklN,GAC7Bx2M,KAAKg3M,YAAYjvM,aAAa,aAAc,6CAGnCgwM,GACLA,GAAkBA,EAAenoN,SAASoQ,KAAKlS,UAC/CkS,KAAKu3M,wfCnHjBh/K,IAAkBC,cAAchE,OAAO,QAASiiL,gBCF3BuB,eACjB,SAAAA,IAAqB,IAAA1gL,EAAAhoB,qCAAA0oM,4DAAAC,CAAAj4M,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,QAAAs3B,EAAA4gL,GAAAF,IAAAzuN,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,uKAAAtP,SAEK8N,OAHYwB,qPAD0B0oB,sCAQ3C,IAAM0gF,EAAgBzmE,IAAQ7lD,IAAI,iBAClC,QAAsBf,IAAlBqtH,EAA6B,CAC7B,IAAMC,EAAuB9iH,KAAKC,MAAM4iH,GAElCy/F,EADS,IAAI/2J,gBAAgBx2D,OAAOg2B,SAAS3lB,QAC3B7O,IAAI,cACrC4T,KAAKlS,QAAQia,aAAa,OAAQ4wG,EAAqBy/F,aAAanqN,QAAQ,MAAOkqN,mMCbtF5/K,IAAkBC,cAAchE,OAAO,iBAAkBwjL,gBCH5CK,GAAgBrsN,OAAO+7C,OAAO,CACvCuwK,kBAAmB,sBAGVC,GAAkBvsN,OAAO+7C,OAAO,CACzCywK,IAAK,glBCAYC,eACjB,SAAAA,IAAqB,IAAAnhL,EAAAhoB,2CAAAmpM,4DAAAC,CAAA14M,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAqhL,GAAAF,IAAAlvN,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,gDAAAtP,UAyCS,SAACigB,GACNA,EAAM9f,OAASo4M,GAAgBC,MAC/BvhL,IAAM,CACFC,QAASjoC,SAASoF,gBAClBxD,UAAW,EACXmmC,SAAU,IACV3D,OAAQ,gBAGZ/jB,EAAK2sL,YAAY3sL,EAAKonB,QAAQzW,EAAMvrB,WAnDvB,kBAAAkkN,MAAAtpM,2FAGjBA,EAAK0sL,kBAAoB,KACzB1sL,EAAK4sL,mBAAqB,KAE1B5sL,EAAK4rL,MAAQ5rL,EAAK2oB,KAAKijK,MACvB5rL,EAAKonB,QAAUpnB,EAAK2oB,KAAKvB,QAEzBpnB,EAAKxB,OATYwB,qPADW0oB,sCAc5BkX,KAAS9W,YAAYigL,GAAcC,kBAAmBt4M,KAAK64M,YAC3D74M,KAAKy8L,+CAILvtJ,KAASszC,eAAe61H,GAAcC,kBAAmBt4M,KAAK64M,+CAGvD,IAAAtpM,EAAAvP,KACPhU,OAAOkK,KAAK8J,KAAKk7L,OAAO11L,QAAQ,SAAC9Q,GAC7B,IAAMyiE,EAAO5nD,EAAK2rL,MAAMxmM,GACxB6a,EAAK6oB,YAAY++B,EAAM,QAAS5nD,EAAKg6F,YAAYz8F,KAAKyC,EAAM7a,IAExDyiE,EAAKxnE,UAAUC,SAAS,eACnB2f,EAAKysL,kBASN7kI,EAAKxnE,UAAUqY,OAAO,cARtBuH,EAAKysL,kBAAoB7kI,EAErB5nD,EAAKmnB,QAAQhiC,KACb6a,EAAKmnB,QAAQhiC,GAAK/E,UAAUgY,IAAI,aAChC4H,EAAK2sL,mBAAqB3sL,EAAKmnB,QAAQhiC,4CAuB/CA,EAAKyJ,GACbA,EAAEyb,iBAEE5Z,KAAKg8L,mBACLh8L,KAAKg8L,kBAAkBrsM,UAAUqY,OAAO,aAG5ChI,KAAKg8L,kBAAoB79L,EAAEpO,OAC3BiQ,KAAKg8L,kBAAkBrsM,UAAUgY,IAAI,aACrC3H,KAAKi8L,YAAYj8L,KAAK02B,QAAQhiC,wCAGtBmoM,GACR,GAAI78L,KAAKk8L,mBAAoB,CACzB,GAAIl8L,KAAKk8L,qBAAuBW,EAC5B,OAGJ78L,KAAKk8L,mBAAmBvsM,UAAUqY,OAAO,aAG7C60L,EAAYltM,UAAUgY,IAAI,aAC1B3H,KAAKk8L,mBAAqBW,gMC9ElCtkK,IAAkBC,cAAchE,OAAO,UAAWikL,ICFlD,IA0BeK,GA1BM,SAAAp0M,GAEf,IADF8J,EACE9J,EADF8J,QAsBA,OApBA+9E,qBAAU,WACN,IAAMwsH,EAAY,uCAElB,IAAK3vH,YAAiB2vH,GAAY,CAC9B,IAAMC,EAAkB/pN,SAASC,cAAc,UAC/C8pN,EAAgB3qN,KAAO,kBACvB2qN,EAAgBvuN,IAAMsuN,EAEtBC,EAAgBhpI,OAAS,WACrB,IAAMipI,EAAmBhqN,SAASC,cAAc,UAChD+pN,EAAiB5qN,KAAO,kBACxB4qN,EAAiB3nN,UAAjB,iCAAArG,OAA8DujB,EAAQ0qM,OAAtE,SAEAjqN,SAASqD,KAAKhD,YAAY2pN,IAG9BhqN,SAASqD,KAAKhD,YAAY0pN,MAI3B7gK,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,mdCRImyJ,eAZX,SAAAA,IAAqB,IAAA7hL,EAAAhoB,qCAAA6pM,4DAAAC,CAAAp5M,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,OACjB9F,KAAAsP,OAAAgoB,EAAA+hL,GAAAF,IAAA5vN,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,uKAATlR,QAEA85C,KAASjuC,OACLssC,GAAAllD,EAAA/D,cAAC83D,GAAA,SAAD,KACI7O,GAAAllD,EAAA/D,cAACoqN,GAAD,CAAc9qM,QAASc,EAAKd,WAEhCc,EAAKxhB,SAPQwhB,+OADK0oB,UCF9BO,IAAkBC,cAAchE,OAAO,SAAU2kL,YCkLjDjmK,IAAIplC,OAGJ,IAAM8xE,GAAQ25H,OACd35H,GAAM1pF,OAAOsP,QAAQo6E,IAGrB,IAAM45H,GAAavqN,SAAS8jD,eAAe,uBAEvCymK,KACAA,GAAWzxM,aAAa,YAAa,SACrCyxM,GAAWzxM,aAAa,cAAe,8BChM3C,IAAA1f,EAAiBC,EAAQ,KAEzBC,EAAAC,SAAAH,EAAA,SAAAA,GAAAI,SAAA,CAAiEC,EAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACjE,IAAAC,EAEA,OAAAL,EAAAM,iBAAAN,EAAAO,OAAA,OAAAF,EAAA,MAAAJ,IAAAgS,WAAAhS,GAAAI,EAAA+O,iBAAA/O,EAAAJ,KACC6wN,EAAA,SAAA9wN,EAAAC,EAAAC,EAAAC,EAAAC,GACD,IAAAC,EAEA,OAAAL,EAAAM,iBAAAN,EAAAO,OAAA,OAAAF,EAAA,MAAAJ,IAAAgS,WAAAhS,GAAAI,EAAAqO,eAAArO,EAAAJ,KACC8wN,EAAA,SAAA/wN,EAAAC,EAAAC,EAAAC,EAAAC,GACD,8BACC4wN,EAAA,SAAAhxN,EAAAC,EAAAC,EAAAC,EAAAC,GACD,8BACC6wN,EAAA,SAAAjxN,EAAAC,EAAAC,EAAAC,EAAAC,GACD,IAAAC,EAAAgB,EAAArB,EAAAO,OAAAe,EAAAtB,EAAAM,iBAEA,4EACAgB,EAAAD,EAAA,OAAAhB,EAAA,MAAAJ,IAAAgS,WAAAhS,GAAAI,EAAA0O,OAAA1O,EAAAJ,IACA,0EACAqB,EAAAD,EAAA,OAAAhB,EAAA,MAAAJ,IAAAG,KAAAH,GAAAI,EAAAkB,MAAAlB,EAAAJ,IACA,oLACCS,SAAA,eAAAC,KAAA,SAAAX,EAAAC,EAAAC,EAAAC,EAAAC,GACD,IAAAC,EAAAoB,EAAAJ,EAAArB,EAAAO,OAAAe,EAAAtB,EAAAM,iBAAAoB,EAAA,MAAAzB,IAAAD,EAAAa,aAAA,GAAiJqwN,EAAAhxN,EAAAixN,mBAEjJ,4BACA7vN,EAAAD,EAAA,OAAAhB,EAAA,MAAAJ,IAAAgS,WAAAhS,GAAAI,EAAA2M,KAAA3M,EAAAJ,IACA,KACoP,OAApPI,EAAAH,EAAA,GAAAU,KAAAc,EAAA,OAAArB,EAAA,MAAAJ,IAAAG,KAAAH,GAAAI,EAAAsgB,YAAAtgB,EAAA,CAAuIS,KAAA,KAAAC,KAAA,GAAqBC,GAAAhB,EAAAiB,QAAA,EAAAb,EAAA,GAAAc,QAAAlB,EAAAiB,QAAA,EAAAb,EAAA,GAAAA,UAAwFC,EAAA,IACpP,sCACAiB,EAAAD,EAAA,OAAAhB,EAAA,MAAAJ,IAAAG,KAAAH,GAAAI,EAAAgF,GAAAhF,EAAAJ,IACA,wBACAqB,EAAAD,EAAA,OAAAhB,EAAA,MAAAJ,IAAAG,KAAAH,GAAAI,EAAAmB,MAAAnB,EAAAJ,IACA,iBACkP,OAAlPI,EAAA6wN,EAAAtwN,KAAAX,EAAAoB,EAAA,OAAAhB,EAAA,MAAAJ,IAAAG,KAAAH,GAAAI,EAAAogB,OAAApgB,EAAAJ,GAAA,CAA2Ia,KAAA,cAAAC,KAAA,GAA8BC,GAAAhB,EAAAiB,QAAA,EAAAb,EAAA,GAAAc,QAAAlB,EAAAmB,KAAAf,UAAyEC,EAAA,IAClP,YACsP,OAAtPA,EAAA6wN,EAAAtwN,KAAAX,EAAAoB,EAAA,OAAAhB,EAAA,MAAAJ,IAAAG,KAAAH,GAAAI,EAAAkf,SAAAlf,EAAAJ,GAAA,CAA6Ia,KAAA,gBAAAC,KAAA,GAAgCC,GAAAhB,EAAAiB,QAAA,EAAAb,EAAA,GAAAc,QAAAlB,EAAAmB,KAAAf,UAAyEC,EAAA,IACtP,aAC0O,OAA1OA,EAAA,mBAAAoB,EAAA,OAAAA,EAAAvB,EAAA6tC,UAAA,MAAA9tC,IAAA8tC,QAAA9tC,IAAAwB,EAAAvB,EAAAyB,eAAAF,EAAAb,KAAAc,EAAA,CAAmMZ,KAAA,UAAAC,KAAA,GAA0BX,SAAaqB,GAAApB,EAAA,IAC1O,QAC8L,OAA9LA,EAAAH,EAAA,GAAAU,KAAAc,EAAA,MAAAzB,IAAAgQ,iBAAAhQ,EAAA,CAAgGa,KAAA,KAAAC,KAAA,GAAqBC,GAAAhB,EAAAiB,QAAA,EAAAb,EAAA,GAAAc,QAAAlB,EAAAmB,KAAAf,UAAyEC,EAAA,IAC9L,cACCe,SAAA,yBC1CD,IAAA1B,EAAiBC,EAAQ,KAEzBC,EAAAC,SAAAH,EAAA,SAAAA,GAAAI,SAAA,CAAiEC,EAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACjE,IAAAC,EAEA,OAAAL,EAAAM,iBAAAN,EAAAO,OAAA,OAAAF,EAAA,MAAAJ,IAAAgS,WAAAhS,GAAAI,EAAAsO,aAAAtO,EAAAJ,KACC6wN,EAAA,SAAA9wN,EAAAC,EAAAC,EAAAC,EAAAC,GACD,IAAAC,EAEA,OAAAL,EAAAM,iBAAAN,EAAAO,OAAA,OAAAF,EAAA,MAAAJ,IAAAgS,WAAAhS,GAAAI,EAAAqO,eAAArO,EAAAJ,KACC8wN,EAAA,SAAA/wN,EAAAC,EAAAC,EAAAC,EAAAC,GACD,mEACC4wN,EAAA,SAAAhxN,EAAAC,EAAAC,EAAAC,EAAAC,GACD,gCACCM,SAAA,eAAAC,KAAA,SAAAX,EAAAC,EAAAC,EAAAC,EAAAC,GACD,IAAAC,EAAAoB,EAAAJ,EAAArB,EAAAO,OAAAe,EAAAtB,EAAAM,iBAAAoB,EAAA,MAAAzB,IAAAD,EAAAa,aAAA,GAAiJqwN,EAAAhxN,EAAAyB,cAEjJ,4BACAL,EAAAD,EAAA,OAAAhB,EAAA,MAAAJ,IAAAgS,WAAAhS,GAAAI,EAAA2M,KAAA3M,EAAAJ,IACA,IACAqB,EAAAD,EAAA,OAAAhB,EAAA,MAAAJ,IAAAgS,WAAAhS,GAAAI,EAAAuO,WAAAvO,EAAAJ,IACA,KACiP,OAAjPI,EAAAH,EAAA,GAAAU,KAAAc,EAAA,OAAArB,EAAA,MAAAJ,IAAAG,KAAAH,GAAAI,EAAAkf,SAAAlf,EAAA,CAAoIS,KAAA,KAAAC,KAAA,GAAqBC,GAAAhB,EAAAiB,QAAA,EAAAb,EAAA,GAAAc,QAAAlB,EAAAiB,QAAA,EAAAb,EAAA,GAAAA,UAAwFC,EAAA,IACjP,8BACAiB,EATiJ,mBASjJG,EAAA,OAAAA,EAAAvB,EAAAqR,iBAAA,MAAAtR,IAAAsR,eAAAtR,IAAAwB,EAAAyvN,GAAAzvN,EAAAb,KAAAc,EAAA,CAA0LZ,KAAA,iBAAAC,KAAA,GAAiCX,SAAaqB,GACxO,wCACAH,EAAAD,EAAA,OAAAhB,EAAA,MAAAJ,IAAAG,KAAAH,GAAAI,EAAAgF,GAAAhF,EAAAJ,IACA,wBACAqB,EAAAD,EAAA,OAAAhB,EAAA,MAAAJ,IAAAG,KAAAH,GAAAI,EAAAmB,MAAAnB,EAAAJ,IACA,aACiP,OAAjPI,EAAAH,EAAA,GAAAU,KAAAc,EAAA,OAAArB,EAAA,MAAAJ,IAAAG,KAAAH,GAAAI,EAAAkf,SAAAlf,EAAA,CAAoIS,KAAA,KAAAC,KAAA,GAAqBC,GAAAhB,EAAAiB,QAAA,EAAAb,EAAA,GAAAc,QAAAlB,EAAAiB,QAAA,EAAAb,EAAA,GAAAA,UAAwFC,EAAA,IACjP,aACuN,OAAvNA,EAjBiJ,mBAiBjJoB,EAAA,OAAAA,EAAAvB,EAAA6tC,UAAA,MAAA9tC,IAAA8tC,QAAA9tC,IAAAwB,EAAAyvN,GAAAzvN,EAAAb,KAAAc,EAAA,CAAgLZ,KAAA,UAAAC,KAAA,GAA0BX,SAAaqB,GAAApB,EAAA,IACvN,kBACCe,SAAA,+1BCrBoB0rD,cACjB,SAAAA,IAAqB,IAAAne,EAAAhoB,qCAAAmmC,4DAAAjuC,CAAAxH,MAAA,QAAAwG,EAAA5X,UAAAnB,OAANyjB,EAAM,IAAA3gB,MAAAiW,GAAAV,EAAA,EAAAA,EAAAU,EAAAV,IAANoL,EAAMpL,GAAAlX,UAAAkX,GAAA,UACjBwxB,EAAAC,EAAAke,IAAAlsD,KAAAsV,MAAAy4B,EAAA,CAAAt3B,MAAA/U,OAASimB,IAAT5B,8CAAAtP,QADiBgJ,EAAA6uB,IAAAvoB,IAAA,OAMd,WACHA,EAAK8oB,YAAY9oB,EAAK2oB,KAAK8hL,UAAW,QAASzqM,EAAK0qM,qBACpD1qM,EAAK8oB,YAAY9oB,EAAK2oB,KAAKgiL,YAAa,QAAS3qM,EAAK4qM,uBACtD5qM,EAAK6qM,oBACL7qM,EAAK8qM,sBAVYpxM,EAAA6uB,IAAAvoB,IAAA,sBAkBC,WAClB,IACI0hC,IAAMgjC,kBACR,MAAOjmE,GACLhjB,QAAQgjB,MAAMA,MAtBD/E,EAAA6uB,IAAAvoB,IAAA,wBA0BG,WACpB,IACI0hC,IAAMotH,SACR,MAAOrwJ,GACLhjB,QAAQgjB,MAAMA,MA9BD/E,EAAA6uB,IAAAvoB,IAAA,oBAkCD,WAChB,IAAM+qM,EAAyBr1C,YAAmB1zH,IAAoBgpK,eACjE9yK,YAAS6yK,KAIdhwB,YAAsB/4I,IAAoBgpK,eAE1CtpK,IAAM6iE,8BACD/5E,KAAK,SAACqU,GACH,IAAK3G,YAAS2G,GACV,IACI6C,IAAMgjC,kBACR,MAAOjmE,GACLhjB,QAAQgjB,MAAMA,MAIzBisB,MAAM,WACH,IACIgX,IAAMgjC,kBACR,MAAOjmE,GACLhjB,QAAQgjB,MAAMA,SAxDT/E,EAAA6uB,IAAAvoB,IAAA,oBA6DD,WAChB,IAAMirM,EAAyBv1C,YAAmB1zH,IAAoBkpK,eACjEhzK,YAAS+yK,IAIdvpK,IAAM6iE,8BACD/5E,KAAK,SAACqU,GACH,GAAI3G,YAAS2G,GACT,IACIqB,cACArV,IAAKC,QAAQ,CAAE7jC,WACjB,MAAOwX,GACLhjB,QAAQgjB,MAAM,qBAAsBA,MAI/CisB,MAAM,SAACjsB,GACJhjB,QAAQgjB,MAAMA,KAEjB0sM,QAAQ,WACLpwB,YAAsB/4I,IAAoBkpK,eAC1C,IACIxpK,IAAMotH,SACR,MAAOrwJ,GACLhjB,QAAQgjB,MAAMA,QAnF1BuB,EAAKxB,OAHYwB,oPADuB0oB,2CAexCh4B,KAAKi4B,KAAK8hL,UAAUzhM,oBAAoB,QAAStY,KAAKg6M,qBACtDh6M,KAAKi4B,KAAKgiL,YAAY3hM,oBAAoB,QAAStY,KAAKk6M","file":"app.9e20e991e2a34e73cddd.js","sourcesContent":["var Handlebars = require(\"D:\\\\a\\\\1\\\\s\\\\src\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return \"
\\r\\n \\\"\\\"\\r\\n
\\r\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return \"
\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = ((stack1 = (depth0 != null ? depth0.data : depth0)) != null ? stack1.customProperties : stack1)) != null ? stack1.image : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"
\\r\\n\";\n},\"useData\":true});","var Handlebars = require(\"D:\\\\a\\\\1\\\\s\\\\src\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return \" \\\"\\\"\\r\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression;\n\n return \"
\\r\\n
\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = ((stack1 = (depth0 != null ? depth0.data : depth0)) != null ? stack1.customProperties : stack1)) != null ? stack1.image : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"
\\r\\n
\\r\\n \"\n + alias2(alias1(((stack1 = (depth0 != null ? depth0.data : depth0)) != null ? stack1.label : stack1), depth0))\n + \"\\r\\n
\\r\\n
\\r\\n \"\n + alias2(alias1(((stack1 = (depth0 != null ? depth0.data : depth0)) != null ? stack1.value : stack1), depth0))\n + \"\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\";\n},\"useData\":true});","var Handlebars = require(\"D:\\\\a\\\\1\\\\s\\\\src\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=container.escapeExpression, alias2=depth0 != null ? depth0 : (container.nullContext || {}), alias3=helpers.helperMissing, alias4=\"function\";\n\n return \"
\\r\\n \\\"\"\n \"\n + ((stack1 = ((helper = (helper = helpers.highlightedText || (depth0 != null ? depth0.highlightedText : depth0)) != null ? helper : alias3),(typeof helper === alias4 ? helper.call(alias2,{\"name\":\"highlightedText\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"\\r\\n
\\r\\n\";\n},\"useData\":true});","var Handlebars = require(\"D:\\\\a\\\\1\\\\s\\\\src\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper;\n\n return \"
\\r\\n
\"\n + ((stack1 = ((helper = (helper = helpers.highlightedText || (depth0 != null ? depth0.highlightedText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"highlightedText\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\";\n},\"useData\":true});","window.onerror = (msg) => {\r\n console.log(`DC Errors Handler - ${msg}`);\r\n};\r\n","(function webpackUniversalModuleDefinition(root, factory) {\n //CommonJS2\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n //AMD\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n //CommonJS\n\telse if(typeof exports === 'object')\n\t\texports[\"Choices\"] = factory();\n //Window\n\telse\n\t\troot[\"Choices\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/public/assets/scripts/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 37);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1f68e731c73fccad66a2","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_wks.js\n// module id = 0\n// module chunks = 0","/* eslint-disable */\n\nexport const getRandomNumber = function(min, max) {\n return Math.floor(Math.random() * (max - min) + min);\n};\n\nexport const generateChars = function(length) {\n let chars = '';\n\n for (let i = 0; i < length; i++) {\n const randomChar = getRandomNumber(0, 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n};\n\nexport const generateId = function(element, prefix) {\n let id =\n element.id ||\n (element.name && `${element.name}-${generateChars(2)}`) ||\n generateChars(4);\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = `${prefix}-${id}`;\n\n return id;\n};\n\nexport const getType = function(obj) {\n return Object.prototype.toString.call(obj).slice(8, -1);\n};\n\nexport const isType = function(type, obj) {\n const clas = getType(obj);\n return obj !== undefined && obj !== null && clas === type;\n};\n\nexport const isElement = (element) => {\n return element instanceof Element;\n};\n\nexport const extend = function() {\n const extended = {};\n const length = arguments.length;\n\n /**\n * Merge one object into another\n * @param {Object} obj Object to merge into extended object\n */\n const merge = function(obj) {\n for (const prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n // If deep merge and property is an object, merge properties\n if (isType('Object', obj[prop])) {\n extended[prop] = extend(true, extended[prop], obj[prop]);\n } else {\n extended[prop] = obj[prop];\n }\n }\n }\n };\n\n // Loop through each passed argument\n for (let i = 0; i < length; i++) {\n // store argument at position i\n const obj = arguments[i];\n\n // If we are in fact dealing with an object, merge it.\n if (isType('Object', obj)) {\n merge(obj);\n }\n }\n\n return extended;\n};\n\nexport const wrap = function(element, wrapper) {\n wrapper = wrapper || document.createElement('div');\n if (element.nextSibling) {\n element.parentNode.insertBefore(wrapper, element.nextSibling);\n } else {\n element.parentNode.appendChild(wrapper);\n }\n return wrapper.appendChild(element);\n};\n\nexport const findAncestor = function(el, cls) {\n while ((el = el.parentElement) && !el.classList.contains(cls));\n return el;\n};\n\nexport const findAncestorByAttrName = function(el, attr) {\n let target = el;\n\n while (target) {\n if (target.hasAttribute(attr)) {\n return target;\n }\n\n target = target.parentElement;\n }\n\n return null;\n};\n\nexport const getAdjacentEl = (startEl, className, direction = 1) => {\n if (!startEl || !className) return;\n\n const parent = startEl.parentNode.parentNode;\n const children = Array.from(parent.querySelectorAll(className));\n\n const startPos = children.indexOf(startEl);\n const operatorDirection = direction > 0 ? 1 : -1;\n\n return children[startPos + operatorDirection];\n};\n\nexport const isScrolledIntoView = (el, parent, direction = 1) => {\n if (!el) return;\n\n let isVisible;\n\n if (direction > 0) {\n // In view from bottom\n isVisible =\n parent.scrollTop + parent.offsetHeight >= el.offsetTop + el.offsetHeight;\n } else {\n // In view from top\n isVisible = el.offsetTop >= parent.scrollTop;\n }\n\n return isVisible;\n};\n\nexport const stripHTML = html =>\n html\n .replace(/&/g, '&')\n .replace(/>/g, '&rt;')\n .replace(/ {\n const value = input.value || input.placeholder;\n let width = input.offsetWidth;\n\n if (value) {\n const testEl = strToEl(`${stripHTML(value)}`);\n testEl.style.position = 'absolute';\n testEl.style.padding = '0';\n testEl.style.top = '-9999px';\n testEl.style.left = '-9999px';\n testEl.style.width = 'auto';\n testEl.style.whiteSpace = 'pre';\n\n if (document.body.contains(input) && window.getComputedStyle) {\n const inputStyle = window.getComputedStyle(input);\n\n if (inputStyle) {\n testEl.style.fontSize = inputStyle.fontSize;\n testEl.style.fontFamily = inputStyle.fontFamily;\n testEl.style.fontWeight = inputStyle.fontWeight;\n testEl.style.fontStyle = inputStyle.fontStyle;\n testEl.style.letterSpacing = inputStyle.letterSpacing;\n testEl.style.textTransform = inputStyle.textTransform;\n testEl.style.padding = inputStyle.padding;\n }\n }\n\n document.body.appendChild(testEl);\n\n requestAnimationFrame(() => {\n if (value && testEl.offsetWidth !== input.offsetWidth) {\n width = testEl.offsetWidth + 4;\n }\n\n document.body.removeChild(testEl);\n\n callback.call(this, `${width}px`);\n });\n } else {\n callback.call(this, `${width}px`);\n }\n};\n\nexport const sortByAlpha = (a, b) => {\n const labelA = (a.label || a.value).toLowerCase();\n const labelB = (b.label || b.value).toLowerCase();\n\n if (labelA < labelB) {\n return -1;\n }\n\n if (labelA > labelB) {\n return 1;\n }\n\n return 0;\n};\n\nexport const sortByScore = (a, b) => a.score - b.score;\n\nexport const dispatchEvent = (element, type, customArgs = null) => {\n const event = new CustomEvent(type, {\n detail: customArgs,\n bubbles: true,\n cancelable: true,\n });\n\n return element.dispatchEvent(event);\n};\n\nexport const regexFilter = (value, regex) => {\n if (!value || !regex) {\n return false;\n }\n\n const expression = new RegExp(regex.source, 'i');\n return expression.test(value);\n};\n\nexport const getWindowHeight = () => {\n const body = document.body;\n const html = document.documentElement;\n return Math.max(\n body.scrollHeight,\n body.offsetHeight,\n html.clientHeight,\n html.scrollHeight,\n html.offsetHeight,\n );\n};\n\nexport const reduceToValues = (items, key = 'value') => {\n const values = items.reduce((prev, current) => {\n prev.push(current[key]);\n return prev;\n }, []);\n\n return values;\n};\n\nexport const fetchFromObject = (object, path) => {\n const index = path.indexOf('.');\n\n if (index > -1) {\n return fetchFromObject(\n object[path.substring(0, index)],\n path.substr(index + 1),\n );\n }\n\n return object[path];\n};\n\nexport const isIE11 = () =>\n !!(\n navigator.userAgent.match(/Trident/) &&\n navigator.userAgent.match(/rv[ :]11/)\n );\n\nexport const existsInArray = (array, value, key = 'value') =>\n array.some(item => {\n if (isType('String', value)) {\n return item[key] === value.trim();\n }\n\n return item[key] === value;\n });\n\nexport const cloneObject = obj => JSON.parse(JSON.stringify(obj));\n\nexport const doKeysMatch = (a, b) => {\n const aKeys = Object.keys(a).sort();\n const bKeys = Object.keys(b).sort();\n return JSON.stringify(aKeys) === JSON.stringify(bKeys);\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/lib/utils.js","var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_core.js\n// module id = 2\n// module chunks = 0","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_global.js\n// module id = 3\n// module chunks = 0","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_hide.js\n// module id = 4\n// module chunks = 0","import { stripHTML, sortByAlpha } from './lib/utils';\n\nexport const DEFAULT_CLASSNAMES = {\n containerOuter: 'choices',\n containerInner: 'choices__inner',\n input: 'choices__input',\n inputCloned: 'choices__input--cloned',\n list: 'choices__list',\n listItems: 'choices__list--multiple',\n listSingle: 'choices__list--single',\n listDropdown: 'choices__list--dropdown',\n item: 'choices__item',\n itemSelectable: 'choices__item--selectable',\n itemDisabled: 'choices__item--disabled',\n itemChoice: 'choices__item--choice',\n placeholder: 'choices__placeholder',\n group: 'choices__group',\n groupHeading: 'choices__heading',\n button: 'choices__button',\n activeState: 'is-active',\n focusState: 'is-focused',\n openState: 'is-open',\n disabledState: 'is-disabled',\n highlightedState: 'is-highlighted',\n hiddenState: 'is-hidden',\n flippedState: 'is-flipped',\n loadingState: 'is-loading',\n noResults: 'has-no-results',\n noChoices: 'has-no-choices',\n};\n\nexport const DEFAULT_CONFIG = {\n items: [],\n choices: [],\n silent: false,\n renderChoiceLimit: -1,\n maxItemCount: -1,\n addItems: true,\n removeItems: true,\n removeItemButton: false,\n editItems: false,\n duplicateItemsAllowed: true,\n delimiter: ',',\n paste: true,\n searchEnabled: true,\n searchChoices: true,\n searchFloor: 1,\n searchResultLimit: 4,\n searchFields: ['label', 'value'],\n position: 'auto',\n resetScrollPosition: true,\n regexFilter: null,\n shouldSort: true,\n shouldSortItems: false,\n sortFn: sortByAlpha,\n placeholder: true,\n placeholderValue: null,\n searchPlaceholderValue: null,\n prependValue: null,\n appendValue: null,\n renderSelectedChoices: 'auto',\n loadingText: 'Loading...',\n noResultsText: 'No results found',\n noChoicesText: 'No choices to choose from',\n itemSelectText: 'Press to select',\n uniqueItemText: 'Only unique values can be added',\n addItemText: value => `Press Enter to add \"${stripHTML(value)}\"`,\n maxItemText: maxItemCount => `Only ${maxItemCount} values can be added`,\n itemComparer: (choice, item) => choice === item,\n fuseOptions: {\n includeScore: true,\n },\n callbackOnInit: null,\n callbackOnCreateTemplates: null,\n classNames: DEFAULT_CLASSNAMES,\n};\n\nexport const EVENTS = {\n showDropdown: 'showDropdown',\n hideDropdown: 'hideDropdown',\n change: 'change',\n choice: 'choice',\n search: 'search',\n addItem: 'addItem',\n removeItem: 'removeItem',\n highlightItem: 'highlightItem',\n highlightChoice: 'highlightChoice',\n};\n\nexport const ACTION_TYPES = {\n ADD_CHOICE: 'ADD_CHOICE',\n FILTER_CHOICES: 'FILTER_CHOICES',\n ACTIVATE_CHOICES: 'ACTIVATE_CHOICES',\n CLEAR_CHOICES: 'CLEAR_CHOICES',\n ADD_GROUP: 'ADD_GROUP',\n ADD_ITEM: 'ADD_ITEM',\n REMOVE_ITEM: 'REMOVE_ITEM',\n HIGHLIGHT_ITEM: 'HIGHLIGHT_ITEM',\n CLEAR_ALL: 'CLEAR_ALL',\n};\n\nexport const KEY_CODES = {\n BACK_KEY: 46,\n DELETE_KEY: 8,\n ENTER_KEY: 13,\n A_KEY: 65,\n ESC_KEY: 27,\n UP_KEY: 38,\n DOWN_KEY: 40,\n PAGE_UP_KEY: 33,\n PAGE_DOWN_KEY: 34,\n};\n\nexport const SCROLLING_SPEED = 4;\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/constants.js","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_export.js\n// module id = 6\n// module chunks = 0","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-dp.js\n// module id = 7\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_an-object.js\n// module id = 8\n// module chunks = 0","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_is-object.js\n// module id = 9\n// module chunks = 0","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_descriptors.js\n// module id = 10\n// module chunks = 0","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_has.js\n// module id = 11\n// module chunks = 0","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_property-desc.js\n// module id = 12\n// module chunks = 0","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_uid.js\n// module id = 13\n// module chunks = 0","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_ctx.js\n// module id = 14\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_cof.js\n// module id = 15\n// module chunks = 0","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-object.js\n// module id = 16\n// module chunks = 0","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_defined.js\n// module id = 17\n// module chunks = 0","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-length.js\n// module id = 18\n// module chunks = 0","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-integer.js\n// module id = 19\n// module chunks = 0","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_shared-key.js\n// module id = 21\n// module chunks = 0","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_fails.js\n// module id = 22\n// module chunks = 0","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_dom-create.js\n// module id = 23\n// module chunks = 0","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_redefine.js\n// module id = 24\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iobject.js\n// module id = 25\n// module chunks = 0","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_shared.js\n// module id = 26\n// module chunks = 0","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_add-to-unscopables.js\n// module id = 28\n// module chunks = 0","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-iobject.js\n// module id = 29\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_array-includes.js\n// module id = 30\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_enum-bug-keys.js\n// module id = 31\n// module chunks = 0","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_set-to-string-tag.js\n// module id = 32\n// module chunks = 0","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/_overArg.js\n// module id = null\n// module chunks = ","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/_root.js\n// module id = null\n// module chunks = ","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/_Symbol.js\n// module id = null\n// module chunks = ","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/_getRawTag.js\n// module id = null\n// module chunks = ","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/_objectToString.js\n// module id = null\n// module chunks = ","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/_baseGetTag.js\n// module id = null\n// module chunks = ","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/_getPrototype.js\n// module id = null\n// module chunks = ","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/isPlainObject.js\n// module id = null\n// module chunks = ","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/isObjectLike.js\n// module id = null\n// module chunks = ","import isPlainObject from 'lodash-es/isPlainObject';\nimport $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nexport var ActionTypes = {\n INIT: '@@redux/INIT'\n\n /**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n};export default function createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux/es/createStore.js\n// module id = null\n// module chunks = ","import { ActionTypes } from './createStore';\nimport isPlainObject from 'lodash-es/isPlainObject';\nimport warning from './utils/warning';\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state. ' + 'If you want this reducer to hold no value, you can return null instead of undefined.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: ActionTypes.INIT });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined. If you don\\'t want to set a value for this reducer, ' + 'you can use null instead of undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined, but can be null.');\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\nexport default function combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning('No reducer provided for key \"' + key + '\"');\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers);\n\n var unexpectedKeyCache = void 0;\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError = void 0;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux/es/combineReducers.js\n// module id = null\n// module chunks = ","function bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nexport default function bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux/es/bindActionCreators.js\n// module id = null\n// module chunks = ","/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\nexport default function compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(undefined, arguments));\n };\n });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux/es/compose.js\n// module id = null\n// module chunks = ","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport compose from './compose';\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\nexport default function applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux/es/applyMiddleware.js\n// module id = null\n// module chunks = ","import createStore from './createStore';\nimport combineReducers from './combineReducers';\nimport bindActionCreators from './bindActionCreators';\nimport applyMiddleware from './applyMiddleware';\nimport compose from './compose';\nimport warning from './utils/warning';\n\n/*\n* This is a dummy function to check if the function name has been altered by minification.\n* If the function has been minified and NODE_ENV !== 'production', warn the user.\n*/\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { createStore, combineReducers, bindActionCreators, applyMiddleware, compose };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux/es/index.js\n// module id = null\n// module chunks = ","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 34\n// module chunks = 0","import { dispatchEvent, isElement } from '../lib/utils';\n\nexport default class WrappedElement {\n constructor({ element, classNames }) {\n Object.assign(this, { element, classNames });\n\n if (!isElement(element)) {\n throw new TypeError('Invalid element passed');\n }\n\n this.isDisabled = false;\n }\n\n get value() {\n return this.element.value;\n }\n\n conceal() {\n // Hide passed input\n this.element.classList.add(this.classNames.input);\n this.element.classList.add(this.classNames.hiddenState);\n\n // Remove element from tab index\n this.element.tabIndex = '-1';\n\n // Backup original styles if any\n const origStyle = this.element.getAttribute('style');\n\n if (origStyle) {\n this.element.setAttribute('data-choice-orig-style', origStyle);\n }\n\n this.element.setAttribute('aria-hidden', 'true');\n this.element.setAttribute('data-choice', 'active');\n }\n\n reveal() {\n // Reinstate passed element\n this.element.classList.remove(this.classNames.input);\n this.element.classList.remove(this.classNames.hiddenState);\n this.element.removeAttribute('tabindex');\n\n // Recover original styles if any\n const origStyle = this.element.getAttribute('data-choice-orig-style');\n\n if (origStyle) {\n this.element.removeAttribute('data-choice-orig-style');\n this.element.setAttribute('style', origStyle);\n } else {\n this.element.removeAttribute('style');\n }\n this.element.removeAttribute('aria-hidden');\n this.element.removeAttribute('data-choice');\n\n // Re-assign values - this is weird, I know\n this.element.value = this.element.value;\n }\n\n enable() {\n this.element.removeAttribute('disabled');\n this.element.disabled = false;\n this.isDisabled = false;\n }\n\n disable() {\n this.element.setAttribute('disabled', '');\n this.element.disabled = true;\n this.isDisabled = true;\n }\n\n triggerEvent(eventType, data) {\n dispatchEvent(this.element, eventType, data);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/components/wrapped-element.js","import classNames from 'classnames';\nimport { strToEl } from './lib/utils';\n\nexport const TEMPLATES = {\n containerOuter(\n globalClasses,\n direction,\n isSelectElement,\n isSelectOneElement,\n searchEnabled,\n passedElementType,\n ) {\n const tabIndex = isSelectOneElement ? 'tabindex=\"0\"' : '';\n let role = isSelectElement ? 'role=\"listbox\"' : '';\n let ariaAutoComplete = '';\n\n if (isSelectElement && searchEnabled) {\n role = 'role=\"combobox\"';\n ariaAutoComplete = 'aria-autocomplete=\"list\"';\n }\n\n return strToEl(`\n \n \n `);\n },\n containerInner(globalClasses) {\n return strToEl(`\n
\n `);\n },\n itemList(globalClasses, isSelectOneElement) {\n const localClasses = classNames(globalClasses.list, {\n [globalClasses.listSingle]: isSelectOneElement,\n [globalClasses.listItems]: !isSelectOneElement,\n });\n\n return strToEl(`\n
\n `);\n },\n placeholder(globalClasses, value) {\n return strToEl(`\n
\n ${value}\n
\n `);\n },\n item(globalClasses, data, removeItemButton) {\n const ariaSelected = data.active ? 'aria-selected=\"true\"' : '';\n const ariaDisabled = data.disabled ? 'aria-disabled=\"true\"' : '';\n\n let localClasses = classNames(globalClasses.item, {\n [globalClasses.highlightedState]: data.highlighted,\n [globalClasses.itemSelectable]: !data.highlighted,\n [globalClasses.placeholder]: data.placeholder,\n });\n\n if (removeItemButton) {\n localClasses = classNames(globalClasses.item, {\n [globalClasses.highlightedState]: data.highlighted,\n [globalClasses.itemSelectable]: !data.disabled,\n [globalClasses.placeholder]: data.placeholder,\n });\n\n return strToEl(`\n \n ${data.label}\n Remove item\n \n \n `);\n }\n\n return strToEl(`\n \n ${data.label}\n \n `);\n },\n choiceList(globalClasses, isSelectOneElement) {\n const ariaMultiSelectable = !isSelectOneElement\n ? 'aria-multiselectable=\"true\"'\n : '';\n\n return strToEl(`\n \n \n `);\n },\n choiceGroup(globalClasses, data) {\n const ariaDisabled = data.disabled ? 'aria-disabled=\"true\"' : '';\n const localClasses = classNames(globalClasses.group, {\n [globalClasses.itemDisabled]: data.disabled,\n });\n\n return strToEl(`\n \n
${data.value}
\n \n `);\n },\n choice(globalClasses, data, itemSelectText) {\n const role = data.groupId > 0 ? 'role=\"treeitem\"' : 'role=\"option\"';\n const localClasses = classNames(\n globalClasses.item,\n globalClasses.itemChoice,\n {\n [globalClasses.itemDisabled]: data.disabled,\n [globalClasses.itemSelectable]: !data.disabled,\n [globalClasses.placeholder]: data.placeholder,\n },\n );\n\n return strToEl(`\n \n ${data.label}\n \n `);\n },\n input(globalClasses) {\n const localClasses = classNames(\n globalClasses.input,\n globalClasses.inputCloned,\n );\n\n return strToEl(`\n \n `);\n },\n dropdown(globalClasses) {\n const localClasses = classNames(\n globalClasses.list,\n globalClasses.listDropdown,\n );\n\n return strToEl(`\n \n \n `);\n },\n notice(globalClasses, label, type = '') {\n const localClasses = classNames(\n globalClasses.item,\n globalClasses.itemChoice,\n {\n [globalClasses.noResults]: type === 'no-results',\n [globalClasses.noChoices]: type === 'no-choices',\n },\n );\n\n return strToEl(`\n
\n ${label}\n
\n `);\n },\n option(data) {\n return strToEl(`\n \n `);\n },\n};\n\nexport default TEMPLATES;\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/templates.js","import Fuse from 'fuse.js';\nimport merge from 'deepmerge';\n\nimport './lib/polyfills';\nimport Store from './store/store';\nimport {\n Dropdown,\n Container,\n Input,\n List,\n WrappedInput,\n WrappedSelect,\n} from './components';\nimport { DEFAULT_CONFIG, EVENTS, KEY_CODES } from './constants';\nimport { TEMPLATES } from './templates';\nimport {\n addChoice,\n filterChoices,\n activateChoices,\n clearChoices,\n} from './actions/choices';\nimport { addItem, removeItem, highlightItem } from './actions/items';\nimport { addGroup } from './actions/groups';\nimport { clearAll, resetTo } from './actions/misc';\nimport {\n isScrolledIntoView,\n getAdjacentEl,\n getType,\n isType,\n strToEl,\n extend,\n sortByScore,\n generateId,\n findAncestorByAttrName,\n regexFilter,\n fetchFromObject,\n isIE11,\n existsInArray,\n cloneObject,\n doKeysMatch,\n} from './lib/utils';\n\n/**\n * Choices\n * @author Josh Johnson\n */\nclass Choices {\n constructor(element = '[data-choice]', userConfig = {}) {\n if (isType('String', element)) {\n const elements = Array.from(document.querySelectorAll(element));\n\n // If there are multiple elements, create a new instance\n // for each element besides the first one (as that already has an instance)\n if (elements.length > 1) {\n return this._generateInstances(elements, userConfig);\n }\n }\n\n this.config = merge.all([DEFAULT_CONFIG, Choices.userDefaults, userConfig]);\n\n if (!doKeysMatch(this.config, DEFAULT_CONFIG)) {\n console.warn('Unknown config option(s) passed');\n }\n\n if (!['auto', 'always'].includes(this.config.renderSelectedChoices)) {\n this.config.renderSelectedChoices = 'auto';\n }\n\n // Retrieve triggering element (i.e. element with 'data-choice' trigger)\n const passedElement = isType('String', element)\n ? document.querySelector(element)\n : element;\n\n if (!passedElement) {\n return console.error(\n 'Could not find passed element or passed element was of an invalid type',\n );\n }\n\n this._isTextElement = passedElement.type === 'text';\n this._isSelectOneElement = passedElement.type === 'select-one';\n this._isSelectMultipleElement = passedElement.type === 'select-multiple';\n this._isSelectElement =\n this._isSelectOneElement || this._isSelectMultipleElement;\n\n if (this._isTextElement) {\n this.passedElement = new WrappedInput({\n element: passedElement,\n classNames: this.config.classNames,\n delimiter: this.config.delimiter,\n });\n } else if (this._isSelectElement) {\n this.passedElement = new WrappedSelect({\n element: passedElement,\n classNames: this.config.classNames,\n });\n }\n\n if (!passedElement) {\n return console.error('Passed element was of an invalid type');\n }\n\n if (\n this.config.shouldSortItems === true &&\n this._isSelectOneElement &&\n !this.config.silent\n ) {\n console.warn(\n \"shouldSortElements: Type of passed element is 'select-one', falling back to false.\",\n );\n }\n\n this.initialised = false;\n\n this._store = new Store(this.render);\n this._initialState = {};\n this._currentState = {};\n this._prevState = {};\n this._currentValue = '';\n this._canSearch = this.config.searchEnabled;\n this._isScrollingOnIe = false;\n this._highlightPosition = 0;\n this._wasTap = true;\n this._placeholderValue = this._generatePlaceholderValue();\n this._baseId = generateId(this.passedElement.element, 'choices-');\n this._direction = this.passedElement.element.getAttribute('dir') || 'ltr';\n this._idNames = {\n itemChoice: 'item-choice',\n };\n // Assign preset choices from passed object\n this._presetChoices = this.config.choices;\n // Assign preset items from passed object first\n this._presetItems = this.config.items;\n // Then add any values passed from attribute\n if (this.passedElement.value) {\n this._presetItems = this._presetItems.concat(\n this.passedElement.value.split(this.config.delimiter),\n );\n }\n\n this._render = this._render.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n this._onKeyUp = this._onKeyUp.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onTouchMove = this._onTouchMove.bind(this);\n this._onTouchEnd = this._onTouchEnd.bind(this);\n this._onMouseDown = this._onMouseDown.bind(this);\n this._onMouseOver = this._onMouseOver.bind(this);\n this._onFormReset = this._onFormReset.bind(this);\n this._onAKey = this._onAKey.bind(this);\n this._onEnterKey = this._onEnterKey.bind(this);\n this._onEscapeKey = this._onEscapeKey.bind(this);\n this._onDirectionKey = this._onDirectionKey.bind(this);\n this._onDeleteKey = this._onDeleteKey.bind(this);\n\n // If element has already been initialised with Choices, fail silently\n if (this.passedElement.element.getAttribute('data-choice') === 'active') {\n console.warn(\n 'Trying to initialise Choices on element already initialised',\n );\n }\n\n // Let's go\n this.init();\n }\n\n /* ========================================\n = Public functions =\n ======================================== */\n\n init() {\n if (this.initialised) {\n return;\n }\n\n this._createTemplates();\n this._createElements();\n this._createStructure();\n\n // Set initial state (We need to clone the state because some reducers\n // modify the inner objects properties in the state) 🤢\n this._initialState = cloneObject(this._store.state);\n this._store.subscribe(this._render);\n this._render();\n this._addEventListeners();\n\n const shouldDisable =\n !this.config.addItems ||\n this.passedElement.element.hasAttribute('disabled');\n\n if (shouldDisable) {\n this.disable();\n }\n\n this.initialised = true;\n\n const { callbackOnInit } = this.config;\n // Run callback if it is a function\n if (callbackOnInit && isType('Function', callbackOnInit)) {\n callbackOnInit.call(this);\n }\n }\n\n destroy() {\n if (!this.initialised) {\n return;\n }\n\n this._removeEventListeners();\n this.passedElement.reveal();\n this.containerOuter.unwrap(this.passedElement.element);\n\n if (this._isSelectElement) {\n this.passedElement.options = this._presetChoices;\n }\n\n this.clearStore();\n\n this.config.templates = null;\n this.initialised = false;\n }\n\n enable() {\n if (this.passedElement.isDisabled) {\n this.passedElement.enable();\n }\n\n if (this.containerOuter.isDisabled) {\n this._addEventListeners();\n this.input.enable();\n this.containerOuter.enable();\n }\n\n return this;\n }\n\n disable() {\n if (!this.passedElement.isDisabled) {\n this.passedElement.disable();\n }\n\n if (!this.containerOuter.isDisabled) {\n this._removeEventListeners();\n this.input.disable();\n this.containerOuter.disable();\n }\n\n return this;\n }\n\n highlightItem(item, runEvent = true) {\n if (!item) {\n return this;\n }\n\n const { id, groupId = -1, value = '', label = '' } = item;\n const group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch(highlightItem(id, true));\n\n if (runEvent) {\n this.passedElement.triggerEvent(EVENTS.highlightItem, {\n id,\n value,\n label,\n groupValue: group && group.value ? group.value : null,\n });\n }\n\n return this;\n }\n\n unhighlightItem(item) {\n if (!item) {\n return this;\n }\n\n const { id, groupId = -1, value = '', label = '' } = item;\n const group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch(highlightItem(id, false));\n this.passedElement.triggerEvent(EVENTS.highlightItem, {\n id,\n value,\n label,\n groupValue: group && group.value ? group.value : null,\n });\n\n return this;\n }\n\n highlightAll() {\n this._store.items.forEach(item => this.highlightItem(item));\n return this;\n }\n\n unhighlightAll() {\n this._store.items.forEach(item => this.unhighlightItem(item));\n return this;\n }\n\n removeActiveItemsByValue(value) {\n this._store.activeItems\n .filter(item => item.value === value)\n .forEach(item => this._removeItem(item));\n\n return this;\n }\n\n removeActiveItems(excludedId) {\n this._store.activeItems\n .filter(({ id }) => id !== excludedId)\n .forEach(item => this._removeItem(item));\n\n return this;\n }\n\n removeHighlightedItems(runEvent = false) {\n this._store.highlightedActiveItems.forEach(item => {\n this._removeItem(item);\n // If this action was performed by the user\n // trigger the event\n if (runEvent) {\n this._triggerChange(item.value);\n }\n });\n\n return this;\n }\n\n showDropdown(preventInputFocus) {\n if (this.dropdown.isActive) {\n return this;\n }\n\n requestAnimationFrame(() => {\n this.dropdown.show();\n this.containerOuter.open(this.dropdown.distanceFromTopWindow());\n\n if (!preventInputFocus && this._canSearch) {\n this.input.focus();\n }\n\n this.passedElement.triggerEvent(EVENTS.showDropdown, {});\n });\n\n return this;\n }\n\n hideDropdown(preventInputBlur) {\n if (!this.dropdown.isActive) {\n return this;\n }\n\n requestAnimationFrame(() => {\n this.dropdown.hide();\n this.containerOuter.close();\n\n if (!preventInputBlur && this._canSearch) {\n this.input.removeActiveDescendant();\n this.input.blur();\n }\n\n this.passedElement.triggerEvent(EVENTS.hideDropdown, {});\n });\n\n return this;\n }\n\n toggleDropdown() {\n this.dropdown.isActive ? this.hideDropdown() : this.showDropdown();\n return this;\n }\n\n getValue(valueOnly = false) {\n const values = this._store.activeItems.reduce((selectedItems, item) => {\n const itemValue = valueOnly ? item.value : item;\n selectedItems.push(itemValue);\n return selectedItems;\n }, []);\n\n return this._isSelectOneElement ? values[0] : values;\n }\n\n setValue(args) {\n if (!this.initialised) {\n return this;\n }\n\n [...args].forEach(value => this._setChoiceOrItem(value));\n return this;\n }\n\n setChoiceByValue(value) {\n if (!this.initialised || this._isTextElement) {\n return this;\n }\n\n // If only one value has been passed, convert to array\n const choiceValue = isType('Array', value) ? value : [value];\n\n // Loop through each value and\n choiceValue.forEach(val => this._findAndSelectChoiceByValue(val));\n\n return this;\n }\n\n setChoices(choices = [], value = '', label = '', replaceChoices = false) {\n if (!this._isSelectElement || !choices.length || !value) {\n return this;\n }\n\n // Clear choices if needed\n if (replaceChoices) {\n this._clearChoices();\n }\n\n this.containerOuter.removeLoadingState();\n const addGroupsAndChoices = groupOrChoice => {\n if (groupOrChoice.choices) {\n this._addGroup({\n group: groupOrChoice,\n id: groupOrChoice.id || null,\n valueKey: value,\n labelKey: label,\n });\n } else {\n this._addChoice({\n value: groupOrChoice[value],\n label: groupOrChoice[label],\n isSelected: groupOrChoice.selected,\n isDisabled: groupOrChoice.disabled,\n customProperties: groupOrChoice.customProperties,\n placeholder: groupOrChoice.placeholder,\n });\n }\n };\n\n choices.forEach(addGroupsAndChoices);\n\n return this;\n }\n\n clearStore() {\n this._store.dispatch(clearAll());\n return this;\n }\n\n clearInput() {\n const shouldSetInputWidth = !this._isSelectOneElement;\n this.input.clear(shouldSetInputWidth);\n\n if (!this._isTextElement && this._canSearch) {\n this._isSearching = false;\n this._store.dispatch(activateChoices(true));\n }\n\n return this;\n }\n\n ajax(fn) {\n if (!this.initialised || !this._isSelectElement || !fn) {\n return this;\n }\n\n requestAnimationFrame(() => this._handleLoadingState(true));\n fn(this._ajaxCallback());\n\n return this;\n }\n\n /* ===== End of Public functions ====== */\n\n /* =============================================\n = Private functions =\n ============================================= */\n\n _render() {\n this._currentState = this._store.state;\n\n const stateChanged =\n this._currentState.choices !== this._prevState.choices ||\n this._currentState.groups !== this._prevState.groups ||\n this._currentState.items !== this._prevState.items;\n const shouldRenderChoices = this._isSelectElement;\n const shouldRenderItems =\n this._currentState.items !== this._prevState.items;\n\n if (!stateChanged) {\n return;\n }\n\n if (shouldRenderChoices) {\n this._renderChoices();\n }\n\n if (shouldRenderItems) {\n this._renderItems();\n }\n\n this._prevState = this._currentState;\n }\n\n _renderChoices() {\n const { activeGroups, activeChoices } = this._store;\n let choiceListFragment = document.createDocumentFragment();\n\n this.choiceList.clear();\n\n if (this.config.resetScrollPosition) {\n requestAnimationFrame(() => this.choiceList.scrollToTop());\n }\n\n // If we have grouped options\n if (activeGroups.length >= 1 && !this._isSearching) {\n // If we have a placeholder choice along with groups\n const activePlaceholders = activeChoices.filter(\n activeChoice =>\n activeChoice.placeholder === true && activeChoice.groupId === -1,\n );\n if (activePlaceholders.length >= 1) {\n choiceListFragment = this._createChoicesFragment(\n activePlaceholders,\n choiceListFragment,\n );\n }\n choiceListFragment = this._createGroupsFragment(\n activeGroups,\n activeChoices,\n choiceListFragment,\n );\n } else if (activeChoices.length >= 1) {\n choiceListFragment = this._createChoicesFragment(\n activeChoices,\n choiceListFragment,\n );\n }\n\n // If we have choices to show\n if (\n choiceListFragment.childNodes &&\n choiceListFragment.childNodes.length > 0\n ) {\n const activeItems = this._store.activeItems;\n const canAddItem = this._canAddItem(activeItems, this.input.value);\n\n // ...and we can select them\n if (canAddItem.response) {\n // ...append them and highlight the first choice\n this.choiceList.append(choiceListFragment);\n this._highlightChoice();\n } else {\n // ...otherwise show a notice\n this.choiceList.append(this._getTemplate('notice', canAddItem.notice));\n }\n } else {\n // Otherwise show a notice\n let dropdownItem;\n let notice;\n\n if (this._isSearching) {\n notice = isType('Function', this.config.noResultsText)\n ? this.config.noResultsText()\n : this.config.noResultsText;\n\n dropdownItem = this._getTemplate('notice', notice, 'no-results');\n } else {\n notice = isType('Function', this.config.noChoicesText)\n ? this.config.noChoicesText()\n : this.config.noChoicesText;\n\n dropdownItem = this._getTemplate('notice', notice, 'no-choices');\n }\n\n this.choiceList.append(dropdownItem);\n }\n }\n\n _renderItems() {\n const activeItems = this._store.activeItems || [];\n this.itemList.clear();\n\n // Create a fragment to store our list items\n // (so we don't have to update the DOM for each item)\n const itemListFragment = this._createItemsFragment(activeItems);\n\n // If we have items to add, append them\n if (itemListFragment.childNodes) {\n this.itemList.append(itemListFragment);\n }\n }\n\n _createGroupsFragment(groups, choices, fragment) {\n const groupFragment = fragment || document.createDocumentFragment();\n const getGroupChoices = group =>\n choices.filter(choice => {\n if (this._isSelectOneElement) {\n return choice.groupId === group.id;\n }\n return (\n choice.groupId === group.id &&\n (this.config.renderSelectedChoices === 'always' || !choice.selected)\n );\n });\n\n // If sorting is enabled, filter groups\n if (this.config.shouldSort) {\n groups.sort(this.config.sortFn);\n }\n\n groups.forEach(group => {\n const groupChoices = getGroupChoices(group);\n if (groupChoices.length >= 1) {\n const dropdownGroup = this._getTemplate('choiceGroup', group);\n groupFragment.appendChild(dropdownGroup);\n this._createChoicesFragment(groupChoices, groupFragment, true);\n }\n });\n\n return groupFragment;\n }\n\n _createChoicesFragment(choices, fragment, withinGroup = false) {\n // Create a fragment to store our list items (so we don't have to update the DOM for each item)\n const choicesFragment = fragment || document.createDocumentFragment();\n const {\n renderSelectedChoices,\n searchResultLimit,\n renderChoiceLimit,\n } = this.config;\n const filter = this._isSearching ? sortByScore : this.config.sortFn;\n const appendChoice = choice => {\n const shouldRender =\n renderSelectedChoices === 'auto'\n ? this._isSelectOneElement || !choice.selected\n : true;\n if (shouldRender) {\n const dropdownItem = this._getTemplate(\n 'choice',\n choice,\n this.config.itemSelectText,\n );\n choicesFragment.appendChild(dropdownItem);\n }\n };\n\n let rendererableChoices = choices;\n\n if (renderSelectedChoices === 'auto' && !this._isSelectOneElement) {\n rendererableChoices = choices.filter(choice => !choice.selected);\n }\n\n // Split array into placeholders and \"normal\" choices\n const { placeholderChoices, normalChoices } = rendererableChoices.reduce(\n (acc, choice) => {\n if (choice.placeholder) {\n acc.placeholderChoices.push(choice);\n } else {\n acc.normalChoices.push(choice);\n }\n return acc;\n },\n { placeholderChoices: [], normalChoices: [] },\n );\n\n // If sorting is enabled or the user is searching, filter choices\n if (this.config.shouldSort || this._isSearching) {\n normalChoices.sort(filter);\n }\n\n let choiceLimit = rendererableChoices.length;\n\n // Prepend placeholeder\n const sortedChoices = [...placeholderChoices, ...normalChoices];\n\n if (this._isSearching) {\n choiceLimit = searchResultLimit;\n } else if (renderChoiceLimit > 0 && !withinGroup) {\n choiceLimit = renderChoiceLimit;\n }\n\n // Add each choice to dropdown within range\n for (let i = 0; i < choiceLimit; i += 1) {\n if (sortedChoices[i]) {\n appendChoice(sortedChoices[i]);\n }\n }\n\n return choicesFragment;\n }\n\n _createItemsFragment(items, fragment = null) {\n // Create fragment to add elements to\n const { shouldSortItems, sortFn, removeItemButton } = this.config;\n const itemListFragment = fragment || document.createDocumentFragment();\n\n // If sorting is enabled, filter items\n if (shouldSortItems && !this._isSelectOneElement) {\n items.sort(sortFn);\n }\n\n if (this._isTextElement) {\n // Update the value of the hidden input\n this.passedElement.value = items;\n } else {\n // Update the options of the hidden input\n this.passedElement.options = items;\n }\n\n const addItemToFragment = item => {\n // Create new list element\n const listItem = this._getTemplate('item', item, removeItemButton);\n // Append it to list\n itemListFragment.appendChild(listItem);\n };\n\n // Add each list item to list\n items.forEach(item => addItemToFragment(item));\n\n return itemListFragment;\n }\n\n _triggerChange(value) {\n if (value === undefined || value === null) {\n return;\n }\n\n this.passedElement.triggerEvent(EVENTS.change, {\n value,\n });\n }\n\n _selectPlaceholderChoice() {\n const placeholderChoice = this._store.placeholderChoice;\n\n if (placeholderChoice) {\n this._addItem({\n value: placeholderChoice.value,\n label: placeholderChoice.label,\n choiceId: placeholderChoice.id,\n groupId: placeholderChoice.groupId,\n placeholder: placeholderChoice.placeholder,\n });\n\n this._triggerChange(placeholderChoice.value);\n }\n }\n\n _handleButtonAction(activeItems, element) {\n if (\n !activeItems ||\n !element ||\n !this.config.removeItems ||\n !this.config.removeItemButton\n ) {\n return;\n }\n\n const itemId = element.parentNode.getAttribute('data-id');\n const itemToRemove = activeItems.find(\n item => item.id === parseInt(itemId, 10),\n );\n\n // Remove item associated with button\n this._removeItem(itemToRemove);\n this._triggerChange(itemToRemove.value);\n\n if (this._isSelectOneElement) {\n this._selectPlaceholderChoice();\n }\n }\n\n _handleItemAction(activeItems, element, hasShiftKey = false) {\n if (\n !activeItems ||\n !element ||\n !this.config.removeItems ||\n this._isSelectOneElement\n ) {\n return;\n }\n\n const passedId = element.getAttribute('data-id');\n\n // We only want to select one item with a click\n // so we deselect any items that aren't the target\n // unless shift is being pressed\n activeItems.forEach(item => {\n if (item.id === parseInt(passedId, 10) && !item.highlighted) {\n this.highlightItem(item);\n } else if (!hasShiftKey && item.highlighted) {\n this.unhighlightItem(item);\n }\n });\n\n // Focus input as without focus, a user cannot do anything with a\n // highlighted item\n this.input.focus();\n }\n\n _handleChoiceAction(activeItems, element) {\n if (!activeItems || !element) {\n return;\n }\n\n // If we are clicking on an option\n const id = element.getAttribute('data-id');\n const choice = this._store.getChoiceById(id);\n const passedKeyCode =\n activeItems[0] && activeItems[0].keyCode ? activeItems[0].keyCode : null;\n const hasActiveDropdown = this.dropdown.isActive;\n\n // Update choice keyCode\n choice.keyCode = passedKeyCode;\n\n this.passedElement.triggerEvent(EVENTS.choice, {\n choice,\n });\n\n if (choice && !choice.selected && !choice.disabled) {\n const canAddItem = this._canAddItem(activeItems, choice.value);\n\n if (canAddItem.response) {\n this._addItem({\n value: choice.value,\n label: choice.label,\n choiceId: choice.id,\n groupId: choice.groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder,\n keyCode: choice.keyCode,\n });\n\n this._triggerChange(choice.value);\n }\n }\n\n this.clearInput();\n\n // We wont to close the dropdown if we are dealing with a single select box\n if (hasActiveDropdown && this._isSelectOneElement) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n }\n\n _handleBackspace(activeItems) {\n if (!this.config.removeItems || !activeItems) {\n return;\n }\n\n const lastItem = activeItems[activeItems.length - 1];\n const hasHighlightedItems = activeItems.some(item => item.highlighted);\n\n // If editing the last item is allowed and there are not other selected items,\n // we can edit the item value. Otherwise if we can remove items, remove all selected items\n if (this.config.editItems && !hasHighlightedItems && lastItem) {\n this.input.value = lastItem.value;\n this.input.setWidth();\n this._removeItem(lastItem);\n this._triggerChange(lastItem.value);\n } else {\n if (!hasHighlightedItems) {\n // Highlight last item if none already highlighted\n this.highlightItem(lastItem, false);\n }\n this.removeHighlightedItems(true);\n }\n }\n\n _handleLoadingState(isLoading = true) {\n let placeholderItem = this.itemList.getChild(\n `.${this.config.classNames.placeholder}`,\n );\n\n if (isLoading) {\n this.disable();\n this.containerOuter.addLoadingState();\n\n if (this._isSelectOneElement) {\n if (!placeholderItem) {\n placeholderItem = this._getTemplate(\n 'placeholder',\n this.config.loadingText,\n );\n this.itemList.append(placeholderItem);\n } else {\n placeholderItem.innerHTML = this.config.loadingText;\n }\n } else {\n this.input.placeholder = this.config.loadingText;\n }\n } else {\n this.enable();\n this.containerOuter.removeLoadingState();\n\n if (this._isSelectOneElement) {\n placeholderItem.innerHTML = this._placeholderValue || '';\n } else {\n this.input.placeholder = this._placeholderValue || '';\n }\n }\n }\n\n _handleSearch(value) {\n if (!value || !this.input.isFocussed) {\n return;\n }\n\n const choices = this._store.choices;\n const { searchFloor, searchChoices } = this.config;\n const hasUnactiveChoices = choices.some(option => !option.active);\n\n // Check that we have a value to search and the input was an alphanumeric character\n if (value && value.length >= searchFloor) {\n const resultCount = searchChoices ? this._searchChoices(value) : 0;\n // Trigger search event\n this.passedElement.triggerEvent(EVENTS.search, {\n value,\n resultCount,\n });\n } else if (hasUnactiveChoices) {\n // Otherwise reset choices to active\n this._isSearching = false;\n this._store.dispatch(activateChoices(true));\n }\n }\n\n _canAddItem(activeItems, value) {\n let canAddItem = true;\n let notice = isType('Function', this.config.addItemText)\n ? this.config.addItemText(value)\n : this.config.addItemText;\n\n if (!this._isSelectOneElement) {\n const isDuplicateValue = existsInArray(activeItems, value);\n\n if (\n this.config.maxItemCount > 0 &&\n this.config.maxItemCount <= activeItems.length\n ) {\n // If there is a max entry limit and we have reached that limit\n // don't update\n canAddItem = false;\n notice = isType('Function', this.config.maxItemText)\n ? this.config.maxItemText(this.config.maxItemCount)\n : this.config.maxItemText;\n }\n\n if (\n this.config.regexFilter &&\n this._isTextElement &&\n this.config.addItems &&\n canAddItem\n ) {\n // If a user has supplied a regular expression filter\n // determine whether we can update based on whether\n // our regular expression passes\n canAddItem = regexFilter(value, this.config.regexFilter);\n }\n\n if (\n !this.config.duplicateItemsAllowed &&\n isDuplicateValue &&\n canAddItem\n ) {\n canAddItem = false;\n notice = isType('Function', this.config.uniqueItemText)\n ? this.config.uniqueItemText(value)\n : this.config.uniqueItemText;\n }\n }\n\n return {\n response: canAddItem,\n notice,\n };\n }\n\n _ajaxCallback() {\n return (results, value, label) => {\n if (!results || !value) {\n return;\n }\n\n const parsedResults = isType('Object', results) ? [results] : results;\n\n if (\n parsedResults &&\n isType('Array', parsedResults) &&\n parsedResults.length\n ) {\n // Remove loading states/text\n this._handleLoadingState(false);\n // Add each result as a choice\n parsedResults.forEach(result => {\n if (result.choices) {\n this._addGroup({\n group: result,\n id: result.id || null,\n valueKey: value,\n labelKey: label,\n });\n } else {\n this._addChoice({\n value: fetchFromObject(result, value),\n label: fetchFromObject(result, label),\n isSelected: result.selected,\n isDisabled: result.disabled,\n customProperties: result.customProperties,\n placeholder: result.placeholder,\n });\n }\n });\n\n if (this._isSelectOneElement) {\n this._selectPlaceholderChoice();\n }\n } else {\n // No results, remove loading state\n this._handleLoadingState(false);\n }\n };\n }\n\n _searchChoices(value) {\n const newValue = isType('String', value) ? value.trim() : value;\n const currentValue = isType('String', this._currentValue)\n ? this._currentValue.trim()\n : this._currentValue;\n\n if (newValue.length < 1 && newValue === `${currentValue} `) {\n return 0;\n }\n\n // If new value matches the desired length and is not the same as the current value with a space\n const haystack = this._store.searchableChoices;\n const needle = newValue;\n const keys = [...this.config.searchFields];\n const options = Object.assign(this.config.fuseOptions, { keys });\n const fuse = new Fuse(haystack, options);\n const results = fuse.search(needle);\n\n this._currentValue = newValue;\n this._highlightPosition = 0;\n this._isSearching = true;\n this._store.dispatch(filterChoices(results));\n\n return results.length;\n }\n\n _addEventListeners() {\n document.addEventListener('keyup', this._onKeyUp);\n document.addEventListener('keydown', this._onKeyDown);\n document.addEventListener('click', this._onClick);\n document.addEventListener('touchmove', this._onTouchMove);\n document.addEventListener('touchend', this._onTouchEnd);\n document.addEventListener('mousedown', this._onMouseDown);\n document.addEventListener('mouseover', this._onMouseOver);\n\n if (this._isSelectOneElement) {\n this.containerOuter.element.addEventListener('focus', this._onFocus);\n this.containerOuter.element.addEventListener('blur', this._onBlur);\n }\n\n this.input.element.addEventListener('focus', this._onFocus);\n this.input.element.addEventListener('blur', this._onBlur);\n\n if (this.input.element.form) {\n this.input.element.form.addEventListener('reset', this._onFormReset);\n }\n\n this.input.addEventListeners();\n }\n\n _removeEventListeners() {\n document.removeEventListener('keyup', this._onKeyUp);\n document.removeEventListener('keydown', this._onKeyDown);\n document.removeEventListener('click', this._onClick);\n document.removeEventListener('touchmove', this._onTouchMove);\n document.removeEventListener('touchend', this._onTouchEnd);\n document.removeEventListener('mousedown', this._onMouseDown);\n document.removeEventListener('mouseover', this._onMouseOver);\n\n if (this._isSelectOneElement) {\n this.containerOuter.element.removeEventListener('focus', this._onFocus);\n this.containerOuter.element.removeEventListener('blur', this._onBlur);\n }\n\n this.input.element.removeEventListener('focus', this._onFocus);\n this.input.element.removeEventListener('blur', this._onBlur);\n\n if (this.input.element.form) {\n this.input.element.form.removeEventListener('reset', this._onFormReset);\n }\n\n this.input.removeEventListeners();\n }\n\n _onKeyDown(event) {\n const { target, keyCode, ctrlKey, metaKey } = event;\n\n if (\n target !== this.input.element &&\n !this.containerOuter.element.contains(target)\n ) {\n return;\n }\n\n const activeItems = this._store.activeItems;\n const hasFocusedInput = this.input.isFocussed;\n const hasActiveDropdown = this.dropdown.isActive;\n const hasItems = this.itemList.hasChildren;\n const keyString = String.fromCharCode(keyCode);\n\n const {\n BACK_KEY,\n DELETE_KEY,\n ENTER_KEY,\n A_KEY,\n ESC_KEY,\n UP_KEY,\n DOWN_KEY,\n PAGE_UP_KEY,\n PAGE_DOWN_KEY,\n } = KEY_CODES;\n const hasCtrlDownKeyPressed = ctrlKey || metaKey;\n\n // If a user is typing and the dropdown is not active\n if (!this._isTextElement && /[a-zA-Z0-9-_ ]/.test(keyString)) {\n this.showDropdown();\n }\n\n // Map keys to key actions\n const keyDownActions = {\n [A_KEY]: this._onAKey,\n [ENTER_KEY]: this._onEnterKey,\n [ESC_KEY]: this._onEscapeKey,\n [UP_KEY]: this._onDirectionKey,\n [PAGE_UP_KEY]: this._onDirectionKey,\n [DOWN_KEY]: this._onDirectionKey,\n [PAGE_DOWN_KEY]: this._onDirectionKey,\n [DELETE_KEY]: this._onDeleteKey,\n [BACK_KEY]: this._onDeleteKey,\n };\n\n // If keycode has a function, run it\n if (keyDownActions[keyCode]) {\n keyDownActions[keyCode]({\n target,\n keyCode,\n metaKey,\n activeItems,\n hasFocusedInput,\n hasActiveDropdown,\n hasItems,\n hasCtrlDownKeyPressed,\n });\n }\n }\n\n _onKeyUp({ target, keyCode }) {\n if (target !== this.input.element) {\n return;\n }\n\n const value = this.input.value;\n const activeItems = this._store.activeItems;\n const canAddItem = this._canAddItem(activeItems, value);\n\n // We are typing into a text input and have a value, we want to show a dropdown\n // notice. Otherwise hide the dropdown\n if (this._isTextElement) {\n if (value) {\n if (canAddItem.notice) {\n const dropdownItem = this._getTemplate('notice', canAddItem.notice);\n this.dropdown.element.innerHTML = dropdownItem.outerHTML;\n }\n\n if (canAddItem.response === true) {\n this.showDropdown(true);\n } else if (!canAddItem.notice) {\n this.hideDropdown(true);\n }\n } else {\n this.hideDropdown(true);\n }\n } else {\n const backKey = KEY_CODES.BACK_KEY;\n const deleteKey = KEY_CODES.DELETE_KEY;\n\n // If user has removed value...\n if ((keyCode === backKey || keyCode === deleteKey) && !target.value) {\n if (!this._isTextElement && this._isSearching) {\n this._isSearching = false;\n this._store.dispatch(activateChoices(true));\n }\n } else if (this._canSearch && canAddItem.response) {\n this._handleSearch(this.input.value);\n }\n }\n\n this._canSearch = this.config.searchEnabled;\n }\n\n _onAKey({ hasItems, hasCtrlDownKeyPressed }) {\n // If CTRL + A or CMD + A have been pressed and there are items to select\n if (hasCtrlDownKeyPressed && hasItems) {\n this._canSearch = false;\n if (\n this.config.removeItems &&\n !this.input.value &&\n this.input.element === document.activeElement\n ) {\n // Highlight items\n this.highlightAll();\n }\n }\n }\n\n _onEnterKey({ target, activeItems, hasActiveDropdown }) {\n const { ENTER_KEY: enterKey } = KEY_CODES;\n // If enter key is pressed and the input has a value\n if (this._isTextElement && target.value) {\n const value = this.input.value;\n const canAddItem = this._canAddItem(activeItems, value);\n\n // All is good, add\n if (canAddItem.response) {\n this.hideDropdown(true);\n this._addItem({ value });\n this._triggerChange(value);\n this.clearInput();\n }\n }\n\n if (target.hasAttribute('data-button')) {\n this._handleButtonAction(activeItems, target);\n event.preventDefault();\n }\n\n if (hasActiveDropdown) {\n const highlighted = this.dropdown.getChild(\n `.${this.config.classNames.highlightedState}`,\n );\n\n // If we have a highlighted choice\n if (highlighted) {\n // add enter keyCode value\n if (activeItems[0]) {\n activeItems[0].keyCode = enterKey; // eslint-disable-line no-param-reassign\n }\n this._handleChoiceAction(activeItems, highlighted);\n }\n\n event.preventDefault();\n } else if (this._isSelectOneElement) {\n // Open single select dropdown if it's not active\n this.showDropdown();\n event.preventDefault();\n }\n }\n\n _onEscapeKey({ hasActiveDropdown }) {\n if (hasActiveDropdown) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n }\n\n _onDirectionKey({ hasActiveDropdown, keyCode, metaKey }) {\n const {\n DOWN_KEY: downKey,\n PAGE_UP_KEY: pageUpKey,\n PAGE_DOWN_KEY: pageDownKey,\n } = KEY_CODES;\n\n // If up or down key is pressed, traverse through options\n if (hasActiveDropdown || this._isSelectOneElement) {\n this.showDropdown();\n this._canSearch = false;\n\n const directionInt =\n keyCode === downKey || keyCode === pageDownKey ? 1 : -1;\n const skipKey =\n metaKey || keyCode === pageDownKey || keyCode === pageUpKey;\n const selectableChoiceIdentifier = '[data-choice-selectable]';\n\n let nextEl;\n if (skipKey) {\n if (directionInt > 0) {\n nextEl = Array.from(\n this.dropdown.element.querySelectorAll(selectableChoiceIdentifier),\n ).pop();\n } else {\n nextEl = this.dropdown.element.querySelector(\n selectableChoiceIdentifier,\n );\n }\n } else {\n const currentEl = this.dropdown.element.querySelector(\n `.${this.config.classNames.highlightedState}`,\n );\n if (currentEl) {\n nextEl = getAdjacentEl(\n currentEl,\n selectableChoiceIdentifier,\n directionInt,\n );\n } else {\n nextEl = this.dropdown.element.querySelector(\n selectableChoiceIdentifier,\n );\n }\n }\n\n if (nextEl) {\n // We prevent default to stop the cursor moving\n // when pressing the arrow\n if (\n !isScrolledIntoView(nextEl, this.choiceList.element, directionInt)\n ) {\n this.choiceList.scrollToChoice(nextEl, directionInt);\n }\n this._highlightChoice(nextEl);\n }\n\n // Prevent default to maintain cursor position whilst\n // traversing dropdown options\n event.preventDefault();\n }\n }\n\n _onDeleteKey({ target, hasFocusedInput, activeItems }) {\n // If backspace or delete key is pressed and the input has no value\n if (hasFocusedInput && !target.value && !this._isSelectOneElement) {\n this._handleBackspace(activeItems);\n event.preventDefault();\n }\n }\n\n _onTouchMove() {\n if (this._wasTap === true) {\n this._wasTap = false;\n }\n }\n\n _onTouchEnd(event) {\n const target = event.target || event.touches[0].target;\n\n // If a user tapped within our container...\n if (this._wasTap === true && this.containerOuter.element.contains(target)) {\n // ...and we aren't dealing with a single select box, show dropdown/focus input\n\n const containerWasTarget =\n target === this.containerOuter.element ||\n target === this.containerInner.element;\n\n if (containerWasTarget && !this._isSelectOneElement) {\n if (this._isTextElement) {\n // If text element, we only want to focus the input\n this.input.focus();\n } else {\n // If a select box, we want to show the dropdown\n this.showDropdown();\n }\n }\n // Prevents focus event firing\n event.stopPropagation();\n }\n\n this._wasTap = true;\n }\n\n _onMouseDown(event) {\n const { target, shiftKey } = event;\n // If we have our mouse down on the scrollbar and are on IE11...\n if (target === this.choiceList && isIE11()) {\n this._isScrollingOnIe = true;\n }\n\n if (\n !this.containerOuter.element.contains(target) ||\n target === this.input.element\n ) {\n return;\n }\n\n const activeItems = this._store.activeItems;\n const hasShiftKey = shiftKey;\n\n const buttonTarget = findAncestorByAttrName(target, 'data-button');\n const itemTarget = findAncestorByAttrName(target, 'data-item');\n const choiceTarget = findAncestorByAttrName(target, 'data-choice');\n\n if (buttonTarget) {\n this._handleButtonAction(activeItems, buttonTarget);\n } else if (itemTarget) {\n this._handleItemAction(activeItems, itemTarget, hasShiftKey);\n } else if (choiceTarget) {\n this._handleChoiceAction(activeItems, choiceTarget);\n }\n\n event.preventDefault();\n }\n\n _onMouseOver({ target }) {\n const targetWithinDropdown =\n target === this.dropdown || this.dropdown.element.contains(target);\n const shouldHighlightChoice =\n targetWithinDropdown && target.hasAttribute('data-choice');\n\n if (shouldHighlightChoice) {\n this._highlightChoice(target);\n }\n }\n\n _onClick({ target }) {\n if (this.containerOuter.element.contains(target)) {\n if (!this.dropdown.isActive && !this.containerOuter.isDisabled) {\n if (this._isTextElement) {\n if (document.activeElement !== this.input.element) {\n this.input.focus();\n }\n } else {\n this.showDropdown();\n this.containerOuter.focus();\n }\n } else if (\n this._isSelectOneElement &&\n target !== this.input.element &&\n !this.dropdown.element.contains(target)\n ) {\n this.hideDropdown();\n }\n } else {\n const hasHighlightedItems = this._store.highlightedActiveItems;\n\n if (hasHighlightedItems) {\n this.unhighlightAll();\n }\n\n this.containerOuter.removeFocusState();\n this.hideDropdown(true);\n }\n }\n\n _onFocus({ target }) {\n if (!this.containerOuter.element.contains(target)) {\n return;\n }\n\n const focusActions = {\n text: () => {\n if (target === this.input.element) {\n this.containerOuter.addFocusState();\n }\n },\n 'select-one': () => {\n this.containerOuter.addFocusState();\n if (target === this.input.element) {\n this.showDropdown(true);\n }\n },\n 'select-multiple': () => {\n if (target === this.input.element) {\n this.showDropdown(true);\n // If element is a select box, the focused element is the container and the dropdown\n // isn't already open, focus and show dropdown\n this.containerOuter.addFocusState();\n }\n },\n };\n\n focusActions[this.passedElement.element.type]();\n }\n\n _onBlur({ target }) {\n // If target is something that concerns us\n if (\n this.containerOuter.element.contains(target) &&\n !this._isScrollingOnIe\n ) {\n const activeItems = this._store.activeItems;\n const hasHighlightedItems = activeItems.some(item => item.highlighted);\n const blurActions = {\n text: () => {\n if (target === this.input.element) {\n this.containerOuter.removeFocusState();\n if (hasHighlightedItems) {\n this.unhighlightAll();\n }\n this.hideDropdown(true);\n }\n },\n 'select-one': () => {\n this.containerOuter.removeFocusState();\n if (\n target === this.input.element ||\n (target === this.containerOuter.element && !this._canSearch)\n ) {\n this.hideDropdown(true);\n }\n },\n 'select-multiple': () => {\n if (target === this.input.element) {\n this.containerOuter.removeFocusState();\n this.hideDropdown(true);\n if (hasHighlightedItems) {\n this.unhighlightAll();\n }\n }\n },\n };\n\n blurActions[this.passedElement.element.type]();\n } else {\n // On IE11, clicking the scollbar blurs our input and thus\n // closes the dropdown. To stop this, we refocus our input\n // if we know we are on IE *and* are scrolling.\n this._isScrollingOnIe = false;\n this.input.element.focus();\n }\n }\n\n _onFormReset() {\n this._store.dispatch(resetTo(this._initialState));\n }\n\n _highlightChoice(el = null) {\n const choices = Array.from(\n this.dropdown.element.querySelectorAll('[data-choice-selectable]'),\n );\n\n if (!choices.length) {\n return;\n }\n\n let passedEl = el;\n const highlightedChoices = Array.from(\n this.dropdown.element.querySelectorAll(\n `.${this.config.classNames.highlightedState}`,\n ),\n );\n\n // Remove any highlighted choices\n highlightedChoices.forEach(choice => {\n choice.classList.remove(this.config.classNames.highlightedState);\n choice.setAttribute('aria-selected', 'false');\n });\n\n if (passedEl) {\n this._highlightPosition = choices.indexOf(passedEl);\n } else {\n // Highlight choice based on last known highlight location\n if (choices.length > this._highlightPosition) {\n // If we have an option to highlight\n passedEl = choices[this._highlightPosition];\n } else {\n // Otherwise highlight the option before\n passedEl = choices[choices.length - 1];\n }\n\n if (!passedEl) {\n passedEl = choices[0];\n }\n }\n\n passedEl.classList.add(this.config.classNames.highlightedState);\n passedEl.setAttribute('aria-selected', 'true');\n this.passedElement.triggerEvent(EVENTS.highlightChoice, { el: passedEl });\n\n if (this.dropdown.isActive) {\n // IE11 ignores aria-label and blocks virtual keyboard\n // if aria-activedescendant is set without a dropdown\n this.input.setActiveDescendant(passedEl.id);\n this.containerOuter.setActiveDescendant(passedEl.id);\n }\n }\n\n _addItem({\n value,\n label = null,\n choiceId = -1,\n groupId = -1,\n customProperties = null,\n placeholder = false,\n keyCode = null,\n }) {\n let passedValue = isType('String', value) ? value.trim() : value;\n\n const passedKeyCode = keyCode;\n const passedCustomProperties = customProperties;\n const items = this._store.items;\n const passedLabel = label || passedValue;\n const passedOptionId = parseInt(choiceId, 10) || -1;\n const group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n const id = items ? items.length + 1 : 1;\n\n // If a prepended value has been passed, prepend it\n if (this.config.prependValue) {\n passedValue = this.config.prependValue + passedValue.toString();\n }\n\n // If an appended value has been passed, append it\n if (this.config.appendValue) {\n passedValue += this.config.appendValue.toString();\n }\n\n this._store.dispatch(\n addItem({\n value: passedValue,\n label: passedLabel,\n id,\n choiceId: passedOptionId,\n groupId,\n customProperties,\n placeholder,\n keyCode: passedKeyCode,\n }),\n );\n\n if (this._isSelectOneElement) {\n this.removeActiveItems(id);\n }\n\n // Trigger change event\n if (group && group.value) {\n this.passedElement.triggerEvent(EVENTS.addItem, {\n id,\n value: passedValue,\n label: passedLabel,\n customProperties: passedCustomProperties,\n groupValue: group.value,\n keyCode: passedKeyCode,\n });\n } else {\n this.passedElement.triggerEvent(EVENTS.addItem, {\n id,\n value: passedValue,\n label: passedLabel,\n customProperties: passedCustomProperties,\n keyCode: passedKeyCode,\n });\n }\n\n return this;\n }\n\n _removeItem(item) {\n if (!item || !isType('Object', item)) {\n return this;\n }\n\n const { id, value, label, choiceId, groupId } = item;\n const group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch(removeItem(id, choiceId));\n\n if (group && group.value) {\n this.passedElement.triggerEvent(EVENTS.removeItem, {\n id,\n value,\n label,\n groupValue: group.value,\n });\n } else {\n this.passedElement.triggerEvent(EVENTS.removeItem, {\n id,\n value,\n label,\n });\n }\n\n return this;\n }\n\n _addChoice({\n value,\n label = null,\n isSelected = false,\n isDisabled = false,\n groupId = -1,\n customProperties = null,\n placeholder = false,\n keyCode = null,\n }) {\n if (typeof value === 'undefined' || value === null) {\n return;\n }\n\n // Generate unique id\n const choices = this._store.choices;\n const choiceLabel = label || value;\n const choiceId = choices ? choices.length + 1 : 1;\n const choiceElementId = `${this._baseId}-${\n this._idNames.itemChoice\n }-${choiceId}`;\n\n this._store.dispatch(\n addChoice({\n value,\n label: choiceLabel,\n id: choiceId,\n groupId,\n disabled: isDisabled,\n elementId: choiceElementId,\n customProperties,\n placeholder,\n keyCode,\n }),\n );\n\n if (isSelected) {\n this._addItem({\n value,\n label: choiceLabel,\n choiceId,\n customProperties,\n placeholder,\n keyCode,\n });\n }\n }\n\n _clearChoices() {\n this._store.dispatch(clearChoices());\n }\n\n _addGroup({ group, id, valueKey = 'value', labelKey = 'label' }) {\n const groupChoices = isType('Object', group)\n ? group.choices\n : Array.from(group.getElementsByTagName('OPTION'));\n const groupId = id || Math.floor(new Date().valueOf() * Math.random());\n const isDisabled = group.disabled ? group.disabled : false;\n\n if (groupChoices) {\n this._store.dispatch(addGroup(group.label, groupId, true, isDisabled));\n\n const addGroupChoices = choice => {\n const isOptDisabled =\n choice.disabled || (choice.parentNode && choice.parentNode.disabled);\n\n this._addChoice({\n value: choice[valueKey],\n label: isType('Object', choice) ? choice[labelKey] : choice.innerHTML,\n isSelected: choice.selected,\n isDisabled: isOptDisabled,\n groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder,\n });\n };\n\n groupChoices.forEach(addGroupChoices);\n } else {\n this._store.dispatch(\n addGroup(group.label, group.id, false, group.disabled),\n );\n }\n }\n\n _getTemplate(template, ...args) {\n if (!template) {\n return null;\n }\n\n const { templates, classNames } = this.config;\n return templates[template].call(this, classNames, ...args);\n }\n\n _createTemplates() {\n const { callbackOnCreateTemplates } = this.config;\n let userTemplates = {};\n\n if (\n callbackOnCreateTemplates &&\n isType('Function', callbackOnCreateTemplates)\n ) {\n userTemplates = callbackOnCreateTemplates.call(this, strToEl);\n }\n\n this.config.templates = extend(TEMPLATES, userTemplates);\n }\n\n _createElements() {\n this.containerOuter = new Container({\n element: this._getTemplate(\n 'containerOuter',\n this._direction,\n this._isSelectElement,\n this._isSelectOneElement,\n this.config.searchEnabled,\n this.passedElement.element.type,\n ),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position,\n });\n\n this.containerInner = new Container({\n element: this._getTemplate('containerInner'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position,\n });\n\n this.input = new Input({\n element: this._getTemplate('input'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n });\n\n this.choiceList = new List({\n element: this._getTemplate('choiceList', this._isSelectOneElement),\n });\n\n this.itemList = new List({\n element: this._getTemplate('itemList', this._isSelectOneElement),\n });\n\n this.dropdown = new Dropdown({\n element: this._getTemplate('dropdown'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n });\n }\n\n _createStructure() {\n // Hide original element\n this.passedElement.conceal();\n // Wrap input in container preserving DOM ordering\n this.containerInner.wrap(this.passedElement.element);\n // Wrapper inner container with outer container\n this.containerOuter.wrap(this.containerInner.element);\n\n if (this._isSelectOneElement) {\n this.input.placeholder = this.config.searchPlaceholderValue || '';\n } else if (this._placeholderValue) {\n this.input.placeholder = this._placeholderValue;\n this.input.setWidth(true);\n }\n\n this.containerOuter.element.appendChild(this.containerInner.element);\n this.containerOuter.element.appendChild(this.dropdown.element);\n this.containerInner.element.appendChild(this.itemList.element);\n\n if (!this._isTextElement) {\n this.dropdown.element.appendChild(this.choiceList.element);\n }\n\n if (!this._isSelectOneElement) {\n this.containerInner.element.appendChild(this.input.element);\n } else if (this.config.searchEnabled) {\n this.dropdown.element.insertBefore(\n this.input.element,\n this.dropdown.element.firstChild,\n );\n }\n\n if (this._isSelectElement) {\n this._addPredefinedChoices();\n } else if (this._isTextElement) {\n this._addPredefinedItems();\n }\n }\n\n _addPredefinedChoices() {\n const passedGroups = this.passedElement.optionGroups;\n\n this._highlightPosition = 0;\n this._isSearching = false;\n\n if (passedGroups && passedGroups.length) {\n // If we have a placeholder option\n const placeholderChoice = this.passedElement.placeholderOption;\n if (\n placeholderChoice &&\n placeholderChoice.parentNode.tagName === 'SELECT'\n ) {\n this._addChoice({\n value: placeholderChoice.value,\n label: placeholderChoice.innerHTML,\n isSelected: placeholderChoice.selected,\n isDisabled: placeholderChoice.disabled,\n placeholder: true,\n });\n }\n\n passedGroups.forEach(group =>\n this._addGroup({\n group,\n id: group.id || null,\n }),\n );\n } else {\n const passedOptions = this.passedElement.options;\n const filter = this.config.sortFn;\n const allChoices = this._presetChoices;\n\n // Create array of options from option elements\n passedOptions.forEach(o => {\n allChoices.push({\n value: o.value,\n label: o.innerHTML,\n selected: o.selected,\n disabled: o.disabled || o.parentNode.disabled,\n placeholder: o.hasAttribute('placeholder'),\n });\n });\n\n // If sorting is enabled or the user is searching, filter choices\n if (this.config.shouldSort) {\n allChoices.sort(filter);\n }\n\n // Determine whether there is a selected choice\n const hasSelectedChoice = allChoices.some(choice => choice.selected);\n const handleChoice = (choice, index) => {\n const { value, label, customProperties, placeholder } = choice;\n\n if (this._isSelectElement) {\n // If the choice is actually a group\n if (choice.choices) {\n this._addGroup({\n group: choice,\n id: choice.id || null,\n });\n } else {\n // If there is a selected choice already or the choice is not\n // the first in the array, add each choice normally\n // Otherwise pre-select the first choice in the array if it's a single select\n const shouldPreselect =\n this._isSelectOneElement && !hasSelectedChoice && index === 0;\n const isSelected = shouldPreselect ? true : choice.selected;\n const isDisabled = shouldPreselect ? false : choice.disabled;\n\n this._addChoice({\n value,\n label,\n isSelected,\n isDisabled,\n customProperties,\n placeholder,\n });\n }\n } else {\n this._addChoice({\n value,\n label,\n isSelected: choice.selected,\n isDisabled: choice.disabled,\n customProperties,\n placeholder,\n });\n }\n };\n\n // Add each choice\n allChoices.forEach((choice, index) => handleChoice(choice, index));\n }\n }\n\n _addPredefinedItems() {\n const handlePresetItem = item => {\n const itemType = getType(item);\n if (itemType === 'Object' && item.value) {\n this._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder,\n });\n } else if (itemType === 'String') {\n this._addItem({\n value: item,\n });\n }\n };\n\n this._presetItems.forEach(item => handlePresetItem(item));\n }\n\n _setChoiceOrItem(item) {\n const itemType = getType(item).toLowerCase();\n const handleType = {\n object: () => {\n if (!item.value) {\n return;\n }\n\n // If we are dealing with a select input, we need to create an option first\n // that is then selected. For text inputs we can just add items normally.\n if (!this._isTextElement) {\n this._addChoice({\n value: item.value,\n label: item.label,\n isSelected: true,\n isDisabled: false,\n customProperties: item.customProperties,\n placeholder: item.placeholder,\n });\n } else {\n this._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder,\n });\n }\n },\n string: () => {\n if (!this._isTextElement) {\n this._addChoice({\n value: item,\n label: item,\n isSelected: true,\n isDisabled: false,\n });\n } else {\n this._addItem({\n value: item,\n });\n }\n },\n };\n\n handleType[itemType]();\n }\n\n _findAndSelectChoiceByValue(val) {\n const choices = this._store.choices;\n // Check 'value' property exists and the choice isn't already selected\n const foundChoice = choices.find(choice =>\n this.config.itemComparer(choice.value, val),\n );\n\n if (foundChoice && !foundChoice.selected) {\n this._addItem({\n value: foundChoice.value,\n label: foundChoice.label,\n id: foundChoice.id,\n groupId: foundChoice.groupId,\n customProperties: foundChoice.customProperties,\n placeholder: foundChoice.placeholder,\n keyCode: foundChoice.keyCode,\n });\n }\n }\n\n _generateInstances(elements, config) {\n return elements.reduce(\n (instances, element) => {\n instances.push(new Choices(element, config));\n return instances;\n },\n [this],\n );\n }\n\n _generatePlaceholderValue() {\n if (this._isSelectOneElement) {\n return false;\n }\n\n return this.config.placeholder\n ? this.config.placeholderValue ||\n this.passedElement.element.getAttribute('placeholder')\n : false;\n }\n\n /* ===== End of Private functions ====== */\n}\n\nChoices.userDefaults = {};\n// We cannot export default here due to Webpack: https://github.com/webpack/webpack/issues/3929\nmodule.exports = Choices;\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/choices.js","/*!\n * Fuse.js v3.3.0 - Lightweight fuzzy-search (http://fusejs.io)\n * \n * Copyright (c) 2012-2017 Kirollos Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n * \n * http://www.apache.org/licenses/LICENSE-2.0\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Fuse\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Fuse\"] = factory();\n\telse\n\t\troot[\"Fuse\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 8);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (obj) {\n return !Array.isArray ? Object.prototype.toString.call(obj) === '[object Array]' : Array.isArray(obj);\n};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar bitapRegexSearch = __webpack_require__(5);\nvar bitapSearch = __webpack_require__(7);\nvar patternAlphabet = __webpack_require__(4);\n\nvar Bitap = function () {\n function Bitap(pattern, _ref) {\n var _ref$location = _ref.location,\n location = _ref$location === undefined ? 0 : _ref$location,\n _ref$distance = _ref.distance,\n distance = _ref$distance === undefined ? 100 : _ref$distance,\n _ref$threshold = _ref.threshold,\n threshold = _ref$threshold === undefined ? 0.6 : _ref$threshold,\n _ref$maxPatternLength = _ref.maxPatternLength,\n maxPatternLength = _ref$maxPatternLength === undefined ? 32 : _ref$maxPatternLength,\n _ref$isCaseSensitive = _ref.isCaseSensitive,\n isCaseSensitive = _ref$isCaseSensitive === undefined ? false : _ref$isCaseSensitive,\n _ref$tokenSeparator = _ref.tokenSeparator,\n tokenSeparator = _ref$tokenSeparator === undefined ? / +/g : _ref$tokenSeparator,\n _ref$findAllMatches = _ref.findAllMatches,\n findAllMatches = _ref$findAllMatches === undefined ? false : _ref$findAllMatches,\n _ref$minMatchCharLeng = _ref.minMatchCharLength,\n minMatchCharLength = _ref$minMatchCharLeng === undefined ? 1 : _ref$minMatchCharLeng;\n\n _classCallCheck(this, Bitap);\n\n this.options = {\n location: location,\n distance: distance,\n threshold: threshold,\n maxPatternLength: maxPatternLength,\n isCaseSensitive: isCaseSensitive,\n tokenSeparator: tokenSeparator,\n findAllMatches: findAllMatches,\n minMatchCharLength: minMatchCharLength\n };\n\n this.pattern = this.options.isCaseSensitive ? pattern : pattern.toLowerCase();\n\n if (this.pattern.length <= maxPatternLength) {\n this.patternAlphabet = patternAlphabet(this.pattern);\n }\n }\n\n _createClass(Bitap, [{\n key: 'search',\n value: function search(text) {\n if (!this.options.isCaseSensitive) {\n text = text.toLowerCase();\n }\n\n // Exact match\n if (this.pattern === text) {\n return {\n isMatch: true,\n score: 0,\n matchedIndices: [[0, text.length - 1]]\n };\n }\n\n // When pattern length is greater than the machine word length, just do a a regex comparison\n var _options = this.options,\n maxPatternLength = _options.maxPatternLength,\n tokenSeparator = _options.tokenSeparator;\n\n if (this.pattern.length > maxPatternLength) {\n return bitapRegexSearch(text, this.pattern, tokenSeparator);\n }\n\n // Otherwise, use Bitap algorithm\n var _options2 = this.options,\n location = _options2.location,\n distance = _options2.distance,\n threshold = _options2.threshold,\n findAllMatches = _options2.findAllMatches,\n minMatchCharLength = _options2.minMatchCharLength;\n\n return bitapSearch(text, this.pattern, this.patternAlphabet, {\n location: location,\n distance: distance,\n threshold: threshold,\n findAllMatches: findAllMatches,\n minMatchCharLength: minMatchCharLength\n });\n }\n }]);\n\n return Bitap;\n}();\n\n// let x = new Bitap(\"od mn war\", {})\n// let result = x.search(\"Old Man's War\")\n// console.log(result)\n\nmodule.exports = Bitap;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isArray = __webpack_require__(0);\n\nvar deepValue = function deepValue(obj, path, list) {\n if (!path) {\n // If there's no path left, we've gotten to the object we care about.\n list.push(obj);\n } else {\n var dotIndex = path.indexOf('.');\n var firstSegment = path;\n var remaining = null;\n\n if (dotIndex !== -1) {\n firstSegment = path.slice(0, dotIndex);\n remaining = path.slice(dotIndex + 1);\n }\n\n var value = obj[firstSegment];\n\n if (value !== null && value !== undefined) {\n if (!remaining && (typeof value === 'string' || typeof value === 'number')) {\n list.push(value.toString());\n } else if (isArray(value)) {\n // Search each item in the array.\n for (var i = 0, len = value.length; i < len; i += 1) {\n deepValue(value[i], remaining, list);\n }\n } else if (remaining) {\n // An object. Recurse further.\n deepValue(value, remaining, list);\n }\n }\n }\n\n return list;\n};\n\nmodule.exports = function (obj, path) {\n return deepValue(obj, path, []);\n};\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function () {\n var matchmask = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var minMatchCharLength = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n var matchedIndices = [];\n var start = -1;\n var end = -1;\n var i = 0;\n\n for (var len = matchmask.length; i < len; i += 1) {\n var match = matchmask[i];\n if (match && start === -1) {\n start = i;\n } else if (!match && start !== -1) {\n end = i - 1;\n if (end - start + 1 >= minMatchCharLength) {\n matchedIndices.push([start, end]);\n }\n start = -1;\n }\n }\n\n // (i-1 - start) + 1 => i - start\n if (matchmask[i - 1] && i - start >= minMatchCharLength) {\n matchedIndices.push([start, i - 1]);\n }\n\n return matchedIndices;\n};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (pattern) {\n var mask = {};\n var len = pattern.length;\n\n for (var i = 0; i < len; i += 1) {\n mask[pattern.charAt(i)] = 0;\n }\n\n for (var _i = 0; _i < len; _i += 1) {\n mask[pattern.charAt(_i)] |= 1 << len - _i - 1;\n }\n\n return mask;\n};\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar SPECIAL_CHARS_REGEX = /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g;\n\nmodule.exports = function (text, pattern) {\n var tokenSeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : / +/g;\n\n var regex = new RegExp(pattern.replace(SPECIAL_CHARS_REGEX, '\\\\$&').replace(tokenSeparator, '|'));\n var matches = text.match(regex);\n var isMatch = !!matches;\n var matchedIndices = [];\n\n if (isMatch) {\n for (var i = 0, matchesLen = matches.length; i < matchesLen; i += 1) {\n var match = matches[i];\n matchedIndices.push([text.indexOf(match), match.length - 1]);\n }\n }\n\n return {\n // TODO: revisit this score\n score: isMatch ? 0.5 : 1,\n isMatch: isMatch,\n matchedIndices: matchedIndices\n };\n};\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (pattern, _ref) {\n var _ref$errors = _ref.errors,\n errors = _ref$errors === undefined ? 0 : _ref$errors,\n _ref$currentLocation = _ref.currentLocation,\n currentLocation = _ref$currentLocation === undefined ? 0 : _ref$currentLocation,\n _ref$expectedLocation = _ref.expectedLocation,\n expectedLocation = _ref$expectedLocation === undefined ? 0 : _ref$expectedLocation,\n _ref$distance = _ref.distance,\n distance = _ref$distance === undefined ? 100 : _ref$distance;\n\n var accuracy = errors / pattern.length;\n var proximity = Math.abs(expectedLocation - currentLocation);\n\n if (!distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy;\n }\n\n return accuracy + proximity / distance;\n};\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bitapScore = __webpack_require__(6);\nvar matchedIndices = __webpack_require__(3);\n\nmodule.exports = function (text, pattern, patternAlphabet, _ref) {\n var _ref$location = _ref.location,\n location = _ref$location === undefined ? 0 : _ref$location,\n _ref$distance = _ref.distance,\n distance = _ref$distance === undefined ? 100 : _ref$distance,\n _ref$threshold = _ref.threshold,\n threshold = _ref$threshold === undefined ? 0.6 : _ref$threshold,\n _ref$findAllMatches = _ref.findAllMatches,\n findAllMatches = _ref$findAllMatches === undefined ? false : _ref$findAllMatches,\n _ref$minMatchCharLeng = _ref.minMatchCharLength,\n minMatchCharLength = _ref$minMatchCharLeng === undefined ? 1 : _ref$minMatchCharLeng;\n\n var expectedLocation = location;\n // Set starting location at beginning text and initialize the alphabet.\n var textLen = text.length;\n // Highest score beyond which we give up.\n var currentThreshold = threshold;\n // Is there a nearby exact match? (speedup)\n var bestLocation = text.indexOf(pattern, expectedLocation);\n\n var patternLen = pattern.length;\n\n // a mask of the matches\n var matchMask = [];\n for (var i = 0; i < textLen; i += 1) {\n matchMask[i] = 0;\n }\n\n if (bestLocation !== -1) {\n var score = bitapScore(pattern, {\n errors: 0,\n currentLocation: bestLocation,\n expectedLocation: expectedLocation,\n distance: distance\n });\n currentThreshold = Math.min(score, currentThreshold);\n\n // What about in the other direction? (speed up)\n bestLocation = text.lastIndexOf(pattern, expectedLocation + patternLen);\n\n if (bestLocation !== -1) {\n var _score = bitapScore(pattern, {\n errors: 0,\n currentLocation: bestLocation,\n expectedLocation: expectedLocation,\n distance: distance\n });\n currentThreshold = Math.min(_score, currentThreshold);\n }\n }\n\n // Reset the best location\n bestLocation = -1;\n\n var lastBitArr = [];\n var finalScore = 1;\n var binMax = patternLen + textLen;\n\n var mask = 1 << patternLen - 1;\n\n for (var _i = 0; _i < patternLen; _i += 1) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from the match location we can stray\n // at this error level.\n var binMin = 0;\n var binMid = binMax;\n\n while (binMin < binMid) {\n var _score3 = bitapScore(pattern, {\n errors: _i,\n currentLocation: expectedLocation + binMid,\n expectedLocation: expectedLocation,\n distance: distance\n });\n\n if (_score3 <= currentThreshold) {\n binMin = binMid;\n } else {\n binMax = binMid;\n }\n\n binMid = Math.floor((binMax - binMin) / 2 + binMin);\n }\n\n // Use the result from this iteration as the maximum for the next.\n binMax = binMid;\n\n var start = Math.max(1, expectedLocation - binMid + 1);\n var finish = findAllMatches ? textLen : Math.min(expectedLocation + binMid, textLen) + patternLen;\n\n // Initialize the bit array\n var bitArr = Array(finish + 2);\n\n bitArr[finish + 1] = (1 << _i) - 1;\n\n for (var j = finish; j >= start; j -= 1) {\n var currentLocation = j - 1;\n var charMatch = patternAlphabet[text.charAt(currentLocation)];\n\n if (charMatch) {\n matchMask[currentLocation] = 1;\n }\n\n // First pass: exact match\n bitArr[j] = (bitArr[j + 1] << 1 | 1) & charMatch;\n\n // Subsequent passes: fuzzy match\n if (_i !== 0) {\n bitArr[j] |= (lastBitArr[j + 1] | lastBitArr[j]) << 1 | 1 | lastBitArr[j + 1];\n }\n\n if (bitArr[j] & mask) {\n finalScore = bitapScore(pattern, {\n errors: _i,\n currentLocation: currentLocation,\n expectedLocation: expectedLocation,\n distance: distance\n });\n\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (finalScore <= currentThreshold) {\n // Indeed it is\n currentThreshold = finalScore;\n bestLocation = currentLocation;\n\n // Already passed `loc`, downhill from here on in.\n if (bestLocation <= expectedLocation) {\n break;\n }\n\n // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.\n start = Math.max(1, 2 * expectedLocation - bestLocation);\n }\n }\n }\n\n // No hope for a (better) match at greater error levels.\n var _score2 = bitapScore(pattern, {\n errors: _i + 1,\n currentLocation: expectedLocation,\n expectedLocation: expectedLocation,\n distance: distance\n });\n\n // console.log('score', score, finalScore)\n\n if (_score2 > currentThreshold) {\n break;\n }\n\n lastBitArr = bitArr;\n }\n\n // console.log('FINAL SCORE', finalScore)\n\n // Count exact matches (those with a score of 0) to be \"almost\" exact\n return {\n isMatch: bestLocation >= 0,\n score: finalScore === 0 ? 0.001 : finalScore,\n matchedIndices: matchedIndices(matchMask, minMatchCharLength)\n };\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Bitap = __webpack_require__(1);\nvar deepValue = __webpack_require__(2);\nvar isArray = __webpack_require__(0);\n\nvar Fuse = function () {\n function Fuse(list, _ref) {\n var _ref$location = _ref.location,\n location = _ref$location === undefined ? 0 : _ref$location,\n _ref$distance = _ref.distance,\n distance = _ref$distance === undefined ? 100 : _ref$distance,\n _ref$threshold = _ref.threshold,\n threshold = _ref$threshold === undefined ? 0.6 : _ref$threshold,\n _ref$maxPatternLength = _ref.maxPatternLength,\n maxPatternLength = _ref$maxPatternLength === undefined ? 32 : _ref$maxPatternLength,\n _ref$caseSensitive = _ref.caseSensitive,\n caseSensitive = _ref$caseSensitive === undefined ? false : _ref$caseSensitive,\n _ref$tokenSeparator = _ref.tokenSeparator,\n tokenSeparator = _ref$tokenSeparator === undefined ? / +/g : _ref$tokenSeparator,\n _ref$findAllMatches = _ref.findAllMatches,\n findAllMatches = _ref$findAllMatches === undefined ? false : _ref$findAllMatches,\n _ref$minMatchCharLeng = _ref.minMatchCharLength,\n minMatchCharLength = _ref$minMatchCharLeng === undefined ? 1 : _ref$minMatchCharLeng,\n _ref$id = _ref.id,\n id = _ref$id === undefined ? null : _ref$id,\n _ref$keys = _ref.keys,\n keys = _ref$keys === undefined ? [] : _ref$keys,\n _ref$shouldSort = _ref.shouldSort,\n shouldSort = _ref$shouldSort === undefined ? true : _ref$shouldSort,\n _ref$getFn = _ref.getFn,\n getFn = _ref$getFn === undefined ? deepValue : _ref$getFn,\n _ref$sortFn = _ref.sortFn,\n sortFn = _ref$sortFn === undefined ? function (a, b) {\n return a.score - b.score;\n } : _ref$sortFn,\n _ref$tokenize = _ref.tokenize,\n tokenize = _ref$tokenize === undefined ? false : _ref$tokenize,\n _ref$matchAllTokens = _ref.matchAllTokens,\n matchAllTokens = _ref$matchAllTokens === undefined ? false : _ref$matchAllTokens,\n _ref$includeMatches = _ref.includeMatches,\n includeMatches = _ref$includeMatches === undefined ? false : _ref$includeMatches,\n _ref$includeScore = _ref.includeScore,\n includeScore = _ref$includeScore === undefined ? false : _ref$includeScore,\n _ref$verbose = _ref.verbose,\n verbose = _ref$verbose === undefined ? false : _ref$verbose;\n\n _classCallCheck(this, Fuse);\n\n this.options = {\n location: location,\n distance: distance,\n threshold: threshold,\n maxPatternLength: maxPatternLength,\n isCaseSensitive: caseSensitive,\n tokenSeparator: tokenSeparator,\n findAllMatches: findAllMatches,\n minMatchCharLength: minMatchCharLength,\n id: id,\n keys: keys,\n includeMatches: includeMatches,\n includeScore: includeScore,\n shouldSort: shouldSort,\n getFn: getFn,\n sortFn: sortFn,\n verbose: verbose,\n tokenize: tokenize,\n matchAllTokens: matchAllTokens\n };\n\n this.setCollection(list);\n }\n\n _createClass(Fuse, [{\n key: 'setCollection',\n value: function setCollection(list) {\n this.list = list;\n return list;\n }\n }, {\n key: 'search',\n value: function search(pattern) {\n this._log('---------\\nSearch pattern: \"' + pattern + '\"');\n\n var _prepareSearchers2 = this._prepareSearchers(pattern),\n tokenSearchers = _prepareSearchers2.tokenSearchers,\n fullSearcher = _prepareSearchers2.fullSearcher;\n\n var _search2 = this._search(tokenSearchers, fullSearcher),\n weights = _search2.weights,\n results = _search2.results;\n\n this._computeScore(weights, results);\n\n if (this.options.shouldSort) {\n this._sort(results);\n }\n\n return this._format(results);\n }\n }, {\n key: '_prepareSearchers',\n value: function _prepareSearchers() {\n var pattern = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n var tokenSearchers = [];\n\n if (this.options.tokenize) {\n // Tokenize on the separator\n var tokens = pattern.split(this.options.tokenSeparator);\n for (var i = 0, len = tokens.length; i < len; i += 1) {\n tokenSearchers.push(new Bitap(tokens[i], this.options));\n }\n }\n\n var fullSearcher = new Bitap(pattern, this.options);\n\n return { tokenSearchers: tokenSearchers, fullSearcher: fullSearcher };\n }\n }, {\n key: '_search',\n value: function _search() {\n var tokenSearchers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var fullSearcher = arguments[1];\n\n var list = this.list;\n var resultMap = {};\n var results = [];\n\n // Check the first item in the list, if it's a string, then we assume\n // that every item in the list is also a string, and thus it's a flattened array.\n if (typeof list[0] === 'string') {\n // Iterate over every item\n for (var i = 0, len = list.length; i < len; i += 1) {\n this._analyze({\n key: '',\n value: list[i],\n record: i,\n index: i\n }, {\n resultMap: resultMap,\n results: results,\n tokenSearchers: tokenSearchers,\n fullSearcher: fullSearcher\n });\n }\n\n return { weights: null, results: results };\n }\n\n // Otherwise, the first item is an Object (hopefully), and thus the searching\n // is done on the values of the keys of each item.\n var weights = {};\n for (var _i = 0, _len = list.length; _i < _len; _i += 1) {\n var item = list[_i];\n // Iterate over every key\n for (var j = 0, keysLen = this.options.keys.length; j < keysLen; j += 1) {\n var key = this.options.keys[j];\n if (typeof key !== 'string') {\n weights[key.name] = {\n weight: 1 - key.weight || 1\n };\n if (key.weight <= 0 || key.weight > 1) {\n throw new Error('Key weight has to be > 0 and <= 1');\n }\n key = key.name;\n } else {\n weights[key] = {\n weight: 1\n };\n }\n\n this._analyze({\n key: key,\n value: this.options.getFn(item, key),\n record: item,\n index: _i\n }, {\n resultMap: resultMap,\n results: results,\n tokenSearchers: tokenSearchers,\n fullSearcher: fullSearcher\n });\n }\n }\n\n return { weights: weights, results: results };\n }\n }, {\n key: '_analyze',\n value: function _analyze(_ref2, _ref3) {\n var key = _ref2.key,\n _ref2$arrayIndex = _ref2.arrayIndex,\n arrayIndex = _ref2$arrayIndex === undefined ? -1 : _ref2$arrayIndex,\n value = _ref2.value,\n record = _ref2.record,\n index = _ref2.index;\n var _ref3$tokenSearchers = _ref3.tokenSearchers,\n tokenSearchers = _ref3$tokenSearchers === undefined ? [] : _ref3$tokenSearchers,\n _ref3$fullSearcher = _ref3.fullSearcher,\n fullSearcher = _ref3$fullSearcher === undefined ? [] : _ref3$fullSearcher,\n _ref3$resultMap = _ref3.resultMap,\n resultMap = _ref3$resultMap === undefined ? {} : _ref3$resultMap,\n _ref3$results = _ref3.results,\n results = _ref3$results === undefined ? [] : _ref3$results;\n\n // Check if the texvaluet can be searched\n if (value === undefined || value === null) {\n return;\n }\n\n var exists = false;\n var averageScore = -1;\n var numTextMatches = 0;\n\n if (typeof value === 'string') {\n this._log('\\nKey: ' + (key === '' ? '-' : key));\n\n var mainSearchResult = fullSearcher.search(value);\n this._log('Full text: \"' + value + '\", score: ' + mainSearchResult.score);\n\n if (this.options.tokenize) {\n var words = value.split(this.options.tokenSeparator);\n var scores = [];\n\n for (var i = 0; i < tokenSearchers.length; i += 1) {\n var tokenSearcher = tokenSearchers[i];\n\n this._log('\\nPattern: \"' + tokenSearcher.pattern + '\"');\n\n // let tokenScores = []\n var hasMatchInText = false;\n\n for (var j = 0; j < words.length; j += 1) {\n var word = words[j];\n var tokenSearchResult = tokenSearcher.search(word);\n var obj = {};\n if (tokenSearchResult.isMatch) {\n obj[word] = tokenSearchResult.score;\n exists = true;\n hasMatchInText = true;\n scores.push(tokenSearchResult.score);\n } else {\n obj[word] = 1;\n if (!this.options.matchAllTokens) {\n scores.push(1);\n }\n }\n this._log('Token: \"' + word + '\", score: ' + obj[word]);\n // tokenScores.push(obj)\n }\n\n if (hasMatchInText) {\n numTextMatches += 1;\n }\n }\n\n averageScore = scores[0];\n var scoresLen = scores.length;\n for (var _i2 = 1; _i2 < scoresLen; _i2 += 1) {\n averageScore += scores[_i2];\n }\n averageScore = averageScore / scoresLen;\n\n this._log('Token score average:', averageScore);\n }\n\n var finalScore = mainSearchResult.score;\n if (averageScore > -1) {\n finalScore = (finalScore + averageScore) / 2;\n }\n\n this._log('Score average:', finalScore);\n\n var checkTextMatches = this.options.tokenize && this.options.matchAllTokens ? numTextMatches >= tokenSearchers.length : true;\n\n this._log('\\nCheck Matches: ' + checkTextMatches);\n\n // If a match is found, add the item to , including its score\n if ((exists || mainSearchResult.isMatch) && checkTextMatches) {\n // Check if the item already exists in our results\n var existingResult = resultMap[index];\n if (existingResult) {\n // Use the lowest score\n // existingResult.score, bitapResult.score\n existingResult.output.push({\n key: key,\n arrayIndex: arrayIndex,\n value: value,\n score: finalScore,\n matchedIndices: mainSearchResult.matchedIndices\n });\n } else {\n // Add it to the raw result list\n resultMap[index] = {\n item: record,\n output: [{\n key: key,\n arrayIndex: arrayIndex,\n value: value,\n score: finalScore,\n matchedIndices: mainSearchResult.matchedIndices\n }]\n };\n\n results.push(resultMap[index]);\n }\n }\n } else if (isArray(value)) {\n for (var _i3 = 0, len = value.length; _i3 < len; _i3 += 1) {\n this._analyze({\n key: key,\n arrayIndex: _i3,\n value: value[_i3],\n record: record,\n index: index\n }, {\n resultMap: resultMap,\n results: results,\n tokenSearchers: tokenSearchers,\n fullSearcher: fullSearcher\n });\n }\n }\n }\n }, {\n key: '_computeScore',\n value: function _computeScore(weights, results) {\n this._log('\\n\\nComputing score:\\n');\n\n for (var i = 0, len = results.length; i < len; i += 1) {\n var output = results[i].output;\n var scoreLen = output.length;\n\n var currScore = 1;\n var bestScore = 1;\n\n for (var j = 0; j < scoreLen; j += 1) {\n var weight = weights ? weights[output[j].key].weight : 1;\n var score = weight === 1 ? output[j].score : output[j].score || 0.001;\n var nScore = score * weight;\n\n if (weight !== 1) {\n bestScore = Math.min(bestScore, nScore);\n } else {\n output[j].nScore = nScore;\n currScore *= nScore;\n }\n }\n\n results[i].score = bestScore === 1 ? currScore : bestScore;\n\n this._log(results[i]);\n }\n }\n }, {\n key: '_sort',\n value: function _sort(results) {\n this._log('\\n\\nSorting....');\n results.sort(this.options.sortFn);\n }\n }, {\n key: '_format',\n value: function _format(results) {\n var finalOutput = [];\n\n if (this.options.verbose) {\n this._log('\\n\\nOutput:\\n\\n', JSON.stringify(results));\n }\n\n var transformers = [];\n\n if (this.options.includeMatches) {\n transformers.push(function (result, data) {\n var output = result.output;\n data.matches = [];\n\n for (var i = 0, len = output.length; i < len; i += 1) {\n var item = output[i];\n\n if (item.matchedIndices.length === 0) {\n continue;\n }\n\n var obj = {\n indices: item.matchedIndices,\n value: item.value\n };\n if (item.key) {\n obj.key = item.key;\n }\n if (item.hasOwnProperty('arrayIndex') && item.arrayIndex > -1) {\n obj.arrayIndex = item.arrayIndex;\n }\n data.matches.push(obj);\n }\n });\n }\n\n if (this.options.includeScore) {\n transformers.push(function (result, data) {\n data.score = result.score;\n });\n }\n\n for (var i = 0, len = results.length; i < len; i += 1) {\n var result = results[i];\n\n if (this.options.id) {\n result.item = this.options.getFn(result.item, this.options.id)[0];\n }\n\n if (!transformers.length) {\n finalOutput.push(result.item);\n continue;\n }\n\n var data = {\n item: result.item\n };\n\n for (var j = 0, _len2 = transformers.length; j < _len2; j += 1) {\n transformers[j](result, data);\n }\n\n finalOutput.push(data);\n }\n\n return finalOutput;\n }\n }, {\n key: '_log',\n value: function _log() {\n if (this.options.verbose) {\n var _console;\n\n (_console = console).log.apply(_console, arguments);\n }\n }\n }]);\n\n return Fuse;\n}();\n\nmodule.exports = Fuse;\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=fuse.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fuse.js/dist/fuse.js\n// module id = 39\n// module chunks = 0","var isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nexport default deepmerge_1;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/deepmerge/dist/es.js\n// module id = 40\n// module chunks = 0","import 'core-js/fn/array/find';\nimport 'core-js/fn/array/from';\nimport 'core-js/fn/array/includes';\nimport 'custom-event-polyfill';\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/lib/polyfills.js","require('../../modules/es6.array.find');\nmodule.exports = require('../../modules/_core').Array.find;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/fn/array/find.js\n// module id = 42\n// module chunks = 0","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es6.array.find.js\n// module id = 43\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_ie8-dom-define.js\n// module id = 44\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-primitive.js\n// module id = 45\n// module chunks = 0","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_a-function.js\n// module id = 46\n// module chunks = 0","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_array-methods.js\n// module id = 47\n// module chunks = 0","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_array-species-create.js\n// module id = 48\n// module chunks = 0","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_array-species-constructor.js\n// module id = 49\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_is-array.js\n// module id = 50\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/fn/array/from.js\n// module id = 51\n// module chunks = 0","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es6.string.iterator.js\n// module id = 52\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_string-at.js\n// module id = 53\n// module chunks = 0","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-define.js\n// module id = 54\n// module chunks = 0","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-create.js\n// module id = 55\n// module chunks = 0","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-create.js\n// module id = 56\n// module chunks = 0","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-dps.js\n// module id = 57\n// module chunks = 0","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-keys.js\n// module id = 58\n// module chunks = 0","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-keys-internal.js\n// module id = 59\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-absolute-index.js\n// module id = 60\n// module chunks = 0","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_html.js\n// module id = 61\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-gpo.js\n// module id = 62\n// module chunks = 0","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es6.array.from.js\n// module id = 63\n// module chunks = 0","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-call.js\n// module id = 64\n// module chunks = 0","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_is-array-iter.js\n// module id = 65\n// module chunks = 0","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_create-property.js\n// module id = 66\n// module chunks = 0","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/core.get-iterator-method.js\n// module id = 67\n// module chunks = 0","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_classof.js\n// module id = 68\n// module chunks = 0","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-detect.js\n// module id = 69\n// module chunks = 0","require('../../modules/es7.array.includes');\nmodule.exports = require('../../modules/_core').Array.includes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/fn/array/includes.js\n// module id = 70\n// module chunks = 0","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es7.array.includes.js\n// module id = 71\n// module chunks = 0","// Polyfill for creating CustomEvents on IE9/10/11\n\n// code pulled from:\n// https://github.com/d4tocchini/customevent-polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n\ntry {\n var ce = new window.CustomEvent('test');\n ce.preventDefault();\n if (ce.defaultPrevented !== true) {\n // IE has problems with .preventDefault() on custom events\n // http://stackoverflow.com/questions/23349191\n throw new Error('Could not prevent default');\n }\n} catch(e) {\n var CustomEvent = function(event, params) {\n var evt, origPrevent;\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n\n evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n origPrevent = evt.preventDefault;\n evt.preventDefault = function () {\n origPrevent.call(this);\n try {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n } catch(e) {\n this.defaultPrevented = true;\n }\n };\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent; // expose definition to window\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/custom-event-polyfill/custom-event-polyfill.js\n// module id = 72\n// module chunks = 0","import { createStore } from 'redux';\nimport rootReducer from './../reducers/index';\n\nexport default class Store {\n constructor() {\n this._store = createStore(\n rootReducer,\n window.devToolsExtension ? window.devToolsExtension() : undefined,\n );\n }\n\n /**\n * Subscribe store to function call (wrapped Redux method)\n * @param {Function} onChange Function to trigger when state changes\n * @return\n */\n subscribe(onChange) {\n this._store.subscribe(onChange);\n }\n\n /**\n * Dispatch event to store (wrapped Redux method)\n * @param {Function} action Action function to trigger\n * @return\n */\n dispatch(action) {\n this._store.dispatch(action);\n }\n\n /**\n * Get store object (wrapping Redux method)\n * @return {Object} State\n */\n get state() {\n return this._store.getState();\n }\n\n /**\n * Get items from store\n * @return {Array} Item objects\n */\n get items() {\n return this.state.items;\n }\n\n /**\n * Get active items from store\n * @return {Array} Item objects\n */\n get activeItems() {\n return this.items.filter(item => item.active === true);\n }\n\n /**\n * Get highlighted items from store\n * @return {Array} Item objects\n */\n get highlightedActiveItems() {\n return this.items.filter(item => item.active && item.highlighted);\n }\n\n /**\n * Get choices from store\n * @return {Array} Option objects\n */\n get choices() {\n return this.state.choices;\n }\n\n /**\n * Get active choices from store\n * @return {Array} Option objects\n */\n get activeChoices() {\n const choices = this.choices;\n const values = choices.filter(choice => choice.active === true);\n\n return values;\n }\n\n /**\n * Get selectable choices from store\n * @return {Array} Option objects\n */\n get selectableChoices() {\n return this.choices.filter(choice => choice.disabled !== true);\n }\n\n /**\n * Get choices that can be searched (excluding placeholders)\n * @return {Array} Option objects\n */\n get searchableChoices() {\n return this.selectableChoices.filter(choice => choice.placeholder !== true);\n }\n\n /**\n * Get placeholder choice from store\n * @return {Object} Found placeholder\n */\n get placeholderChoice() {\n return [...this.choices]\n .reverse()\n .find(choice => choice.placeholder === true);\n }\n\n /**\n * Get groups from store\n * @return {Array} Group objects\n */\n get groups() {\n return this.state.groups;\n }\n\n /**\n * Get active groups from store\n * @return {Array} Group objects\n */\n get activeGroups() {\n const groups = this.groups;\n const choices = this.choices;\n\n return groups.filter(group => {\n const isActive = group.active === true && group.disabled === false;\n const hasActiveOptions = choices.some(\n choice => choice.active === true && choice.disabled === false,\n );\n return isActive && hasActiveOptions;\n }, []);\n }\n\n /**\n * Get single choice by it's ID\n * @return {Object} Found choice\n */\n getChoiceById(id) {\n if (id) {\n const choices = this.activeChoices;\n const foundChoice = choices.find(\n choice => choice.id === parseInt(id, 10),\n );\n return foundChoice;\n }\n return false;\n }\n\n /**\n * Get group by group id\n * @param {Number} id Group ID\n * @return {Object} Group data\n */\n getGroupById(id) {\n return this.groups.find(group => group.id === parseInt(id, 10));\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/store/store.js","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash-es/_freeGlobal.js\n// module id = 74\n// module chunks = 0","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/symbol-observable/es/index.js\n// module id = 75\n// module chunks = 0","module.exports = function(originalModule) {\n\tif(!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif(!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true,\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/harmony-module.js\n// module id = 76\n// module chunks = 0","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/symbol-observable/es/ponyfill.js\n// module id = 77\n// module chunks = 0","import { combineReducers } from 'redux';\nimport items from './items';\nimport groups from './groups';\nimport choices from './choices';\nimport { cloneObject } from '../lib/utils';\n\nconst appReducer = combineReducers({\n items,\n groups,\n choices,\n});\n\nconst rootReducer = (passedState, action) => {\n let state = passedState;\n // If we are clearing all items, groups and options we reassign\n // state and then pass that state to our proper reducer. This isn't\n // mutating our actual state\n // See: http://stackoverflow.com/a/35641992\n if (action.type === 'CLEAR_ALL') {\n state = undefined;\n } else if (action.type === 'RESET_TO') {\n return cloneObject(action.state);\n }\n\n return appReducer(state, action);\n};\n\nexport default rootReducer;\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/reducers/index.js","export const defaultState = [];\n\nexport default function items(state = defaultState, action) {\n switch (action.type) {\n case 'ADD_ITEM': {\n // Add object to items array\n const newState = [\n ...state,\n {\n id: action.id,\n choiceId: action.choiceId,\n groupId: action.groupId,\n value: action.value,\n label: action.label,\n active: true,\n highlighted: false,\n customProperties: action.customProperties,\n placeholder: action.placeholder || false,\n keyCode: null,\n },\n ];\n\n return newState.map(obj => {\n const item = obj;\n item.highlighted = false;\n return item;\n });\n }\n\n case 'REMOVE_ITEM': {\n // Set item to inactive\n return state.map(obj => {\n const item = obj;\n if (item.id === action.id) {\n item.active = false;\n }\n return item;\n });\n }\n\n case 'HIGHLIGHT_ITEM': {\n const changingItem = state.find(obj => obj.id === action.id);\n if (changingItem && changingItem.highlighted !== action.highlighted) {\n return state.map(obj => {\n const item = obj;\n if (item.id === action.id) {\n item.highlighted = action.highlighted;\n }\n return item;\n });\n }\n return state;\n }\n\n default: {\n return state;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/reducers/items.js","export const defaultState = [];\n\nexport default function groups(state = defaultState, action) {\n switch (action.type) {\n case 'ADD_GROUP': {\n return [\n ...state,\n {\n id: action.id,\n value: action.value,\n active: action.active,\n disabled: action.disabled,\n },\n ];\n }\n\n case 'CLEAR_CHOICES': {\n return [];\n }\n\n default: {\n return state;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/reducers/groups.js","export const defaultState = [];\n\nexport default function choices(state = defaultState, action) {\n switch (action.type) {\n case 'ADD_CHOICE': {\n /*\n A disabled choice appears in the choice dropdown but cannot be selected\n A selected choice has been added to the passed input's value (added as an item)\n An active choice appears within the choice dropdown\n */\n return [\n ...state,\n {\n id: action.id,\n elementId: action.elementId,\n groupId: action.groupId,\n value: action.value,\n label: action.label || action.value,\n disabled: action.disabled || false,\n selected: false,\n active: true,\n score: 9999,\n customProperties: action.customProperties,\n placeholder: action.placeholder || false,\n keyCode: null,\n },\n ];\n }\n\n case 'ADD_ITEM': {\n // If all choices need to be activated\n if (action.activateOptions) {\n return state.map(obj => {\n const choice = obj;\n choice.active = action.active;\n return choice;\n });\n }\n\n // When an item is added and it has an associated choice,\n // we want to disable it so it can't be chosen again\n if (action.choiceId > -1) {\n return state.map(obj => {\n const choice = obj;\n if (choice.id === parseInt(action.choiceId, 10)) {\n choice.selected = true;\n }\n return choice;\n });\n }\n\n return state;\n }\n\n case 'REMOVE_ITEM': {\n // When an item is removed and it has an associated choice,\n // we want to re-enable it so it can be chosen again\n if (action.choiceId > -1) {\n return state.map(obj => {\n const choice = obj;\n if (choice.id === parseInt(action.choiceId, 10)) {\n choice.selected = false;\n }\n return choice;\n });\n }\n\n return state;\n }\n\n case 'FILTER_CHOICES': {\n return state.map(obj => {\n const choice = obj;\n // Set active state based on whether choice is\n // within filtered results\n choice.active = action.results.some(({ item, score }) => {\n if (item.id === choice.id) {\n choice.score = score;\n return true;\n }\n return false;\n });\n\n return choice;\n });\n }\n\n case 'ACTIVATE_CHOICES': {\n return state.map(obj => {\n const choice = obj;\n choice.active = action.active;\n return choice;\n });\n }\n\n case 'CLEAR_CHOICES': {\n return defaultState;\n }\n\n default: {\n return state;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/reducers/choices.js","import Dropdown from './dropdown';\nimport Container from './container';\nimport Input from './input';\nimport List from './list';\nimport WrappedInput from './wrapped-input';\nimport WrappedSelect from './wrapped-select';\n\nexport { Dropdown, Container, Input, List, WrappedInput, WrappedSelect };\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/components/index.js","export default class Dropdown {\n constructor({ element, type, classNames }) {\n Object.assign(this, { element, type, classNames });\n\n this.isActive = false;\n }\n\n /**\n * Determine how far the top of our element is from\n * the top of the window\n * @return {Number} Vertical position\n */\n distanceFromTopWindow() {\n this.dimensions = this.element.getBoundingClientRect();\n this.position = Math.ceil(\n this.dimensions.top + window.pageYOffset + this.element.offsetHeight,\n );\n return this.position;\n }\n\n /**\n * Find element that matches passed selector\n * @return {HTMLElement}\n */\n getChild(selector) {\n return this.element.querySelector(selector);\n }\n\n /**\n * Show dropdown to user by adding active state class\n * @return {Object} Class instance\n * @public\n */\n show() {\n this.element.classList.add(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isActive = true;\n return this;\n }\n\n /**\n * Hide dropdown from user\n * @return {Object} Class instance\n * @public\n */\n hide() {\n this.element.classList.remove(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'false');\n this.isActive = false;\n return this;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/components/dropdown.js","import { getWindowHeight, wrap } from '../lib/utils';\n\nexport default class Container {\n constructor({ element, type, classNames, position }) {\n Object.assign(this, { element, classNames, type, position });\n\n this.isOpen = false;\n this.isFlipped = false;\n this.isFocussed = false;\n this.isDisabled = false;\n this.isLoading = false;\n\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n\n /**\n * Add event listeners\n */\n addEventListeners() {\n this.element.addEventListener('focus', this._onFocus);\n this.element.addEventListener('blur', this._onBlur);\n }\n\n /**\n * Remove event listeners\n */\n\n /** */\n removeEventListeners() {\n this.element.removeEventListener('focus', this._onFocus);\n this.element.removeEventListener('blur', this._onBlur);\n }\n\n /**\n * Determine whether container should be flipped\n * based on passed dropdown position\n * @param {Number} dropdownPos\n * @returns\n */\n shouldFlip(dropdownPos, windowHeight = getWindowHeight()) {\n if (dropdownPos === undefined) {\n return false;\n }\n\n // If flip is enabled and the dropdown bottom position is\n // greater than the window height flip the dropdown.\n let shouldFlip = false;\n if (this.position === 'auto') {\n shouldFlip = dropdownPos >= windowHeight;\n } else if (this.position === 'top') {\n shouldFlip = true;\n }\n\n return shouldFlip;\n }\n\n /**\n * Set active descendant attribute\n * @param {Number} activeDescendant ID of active descendant\n */\n setActiveDescendant(activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n }\n\n /**\n * Remove active descendant attribute\n */\n removeActiveDescendant() {\n this.element.removeAttribute('aria-activedescendant');\n }\n\n open(dropdownPos) {\n this.element.classList.add(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isOpen = true;\n\n if (this.shouldFlip(dropdownPos)) {\n this.element.classList.add(this.classNames.flippedState);\n this.isFlipped = true;\n }\n }\n\n close() {\n this.element.classList.remove(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'false');\n this.removeActiveDescendant();\n this.isOpen = false;\n\n // A dropdown flips if it does not have space within the page\n if (this.isFlipped) {\n this.element.classList.remove(this.classNames.flippedState);\n this.isFlipped = false;\n }\n }\n\n focus() {\n if (!this.isFocussed) {\n this.element.focus();\n }\n }\n\n addFocusState() {\n this.element.classList.add(this.classNames.focusState);\n }\n\n removeFocusState() {\n this.element.classList.remove(this.classNames.focusState);\n }\n\n /**\n * Remove disabled state\n */\n enable() {\n this.element.classList.remove(this.classNames.disabledState);\n this.element.removeAttribute('aria-disabled');\n if (this.type === 'select-one') {\n this.element.setAttribute('tabindex', '0');\n }\n this.isDisabled = false;\n }\n\n /**\n * Set disabled state\n */\n disable() {\n this.element.classList.add(this.classNames.disabledState);\n this.element.setAttribute('aria-disabled', 'true');\n if (this.type === 'select-one') {\n this.element.setAttribute('tabindex', '-1');\n }\n this.isDisabled = true;\n }\n\n wrap(element) {\n wrap(element, this.element);\n }\n\n unwrap(element) {\n // Move passed element outside this element\n this.element.parentNode.insertBefore(element, this.element);\n // Remove this element\n this.element.parentNode.removeChild(this.element);\n }\n\n /**\n * Add loading state to element\n */\n addLoadingState() {\n this.element.classList.add(this.classNames.loadingState);\n this.element.setAttribute('aria-busy', 'true');\n this.isLoading = true;\n }\n\n /**\n * Remove loading state from element\n */\n removeLoadingState() {\n this.element.classList.remove(this.classNames.loadingState);\n this.element.removeAttribute('aria-busy');\n this.isLoading = false;\n }\n\n /**\n * Set focussed state\n */\n _onFocus() {\n this.isFocussed = true;\n }\n\n /**\n * Remove blurred state\n */\n _onBlur() {\n this.isFocussed = false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/components/container.js","import { calcWidthOfInput, stripHTML } from '../lib/utils';\n\nexport default class Input {\n constructor({ element, type, classNames, placeholderValue }) {\n Object.assign(this, { element, type, classNames, placeholderValue });\n\n this.element = element;\n this.classNames = classNames;\n this.isFocussed = this.element === document.activeElement;\n this.isDisabled = false;\n\n // Bind event listeners\n this._onPaste = this._onPaste.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n\n set placeholder(placeholder) {\n this.element.placeholder = placeholder;\n }\n\n set value(value) {\n this.element.value = `${value}`;\n }\n\n get value() {\n return stripHTML(this.element.value);\n }\n\n addEventListeners() {\n this.element.addEventListener('input', this._onInput);\n this.element.addEventListener('paste', this._onPaste);\n this.element.addEventListener('focus', this._onFocus);\n this.element.addEventListener('blur', this._onBlur);\n\n if (this.element.form) {\n this.element.form.addEventListener('reset', this._onFormReset);\n }\n }\n\n removeEventListeners() {\n this.element.removeEventListener('input', this._onInput);\n this.element.removeEventListener('paste', this._onPaste);\n this.element.removeEventListener('focus', this._onFocus);\n this.element.removeEventListener('blur', this._onBlur);\n\n if (this.element.form) {\n this.element.form.removeEventListener('reset', this._onFormReset);\n }\n }\n\n enable() {\n this.element.removeAttribute('disabled');\n this.isDisabled = false;\n }\n\n disable() {\n this.element.setAttribute('disabled', '');\n this.isDisabled = true;\n }\n\n focus() {\n if (!this.isFocussed) {\n this.element.focus();\n }\n }\n\n blur() {\n if (this.isFocussed) {\n this.element.blur();\n }\n }\n\n /**\n * Set value of input to blank\n * @return {Object} Class instance\n * @public\n */\n clear(setWidth = true) {\n if (this.element.value) {\n this.element.value = '';\n }\n\n if (setWidth) {\n this.setWidth();\n }\n\n return this;\n }\n\n /**\n * Set the correct input width based on placeholder\n * value or input value\n * @return\n */\n setWidth(enforceWidth) {\n const callback = width => {\n this.element.style.width = width;\n };\n\n if (this._placeholderValue) {\n // If there is a placeholder, we only want to set the width of the input when it is a greater\n // length than 75% of the placeholder. This stops the input jumping around.\n const valueHasDesiredLength =\n this.element.value.length >= this._placeholderValue.length / 1.25;\n\n if ((this.element.value && valueHasDesiredLength) || enforceWidth) {\n this.calcWidth(callback);\n }\n } else {\n // If there is no placeholder, resize input to contents\n this.calcWidth(callback);\n }\n }\n\n calcWidth(callback) {\n return calcWidthOfInput(this.element, callback);\n }\n\n setActiveDescendant(activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n }\n\n removeActiveDescendant() {\n this.element.removeAttribute('aria-activedescendant');\n }\n\n _onInput() {\n if (this.type !== 'select-one') {\n this.setWidth();\n }\n }\n\n _onPaste(event) {\n const { target } = event;\n // Disable pasting into the input if option has been set\n if (target === this.element && this.preventPaste) {\n event.preventDefault();\n }\n }\n\n _onFocus() {\n this.isFocussed = true;\n }\n\n _onBlur() {\n this.isFocussed = false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/components/input.js","import { SCROLLING_SPEED } from '../constants';\n\nexport default class List {\n constructor({ element }) {\n Object.assign(this, { element });\n\n this.scrollPos = this.element.scrollTop;\n this.height = this.element.offsetHeight;\n this.hasChildren = !!this.element.children;\n }\n\n clear() {\n this.element.innerHTML = '';\n }\n\n append(node) {\n this.element.appendChild(node);\n }\n\n getChild(selector) {\n return this.element.querySelector(selector);\n }\n\n scrollToTop() {\n this.element.scrollTop = 0;\n }\n\n scrollToChoice(choice, direction) {\n if (!choice) {\n return;\n }\n\n const dropdownHeight = this.element.offsetHeight;\n const choiceHeight = choice.offsetHeight;\n // Distance from bottom of element to top of parent\n const choicePos = choice.offsetTop + choiceHeight;\n // Scroll position of dropdown\n const containerScrollPos = this.element.scrollTop + dropdownHeight;\n // Difference between the choice and scroll position\n const endpoint =\n direction > 0\n ? this.element.scrollTop + choicePos - containerScrollPos\n : choice.offsetTop;\n\n requestAnimationFrame(time => {\n this._animateScroll(time, endpoint, direction);\n });\n }\n\n _scrollDown(scrollPos, strength, endpoint) {\n const easing = (endpoint - scrollPos) / strength;\n const distance = easing > 1 ? easing : 1;\n\n this.element.scrollTop = scrollPos + distance;\n }\n\n _scrollUp(scrollPos, strength, endpoint) {\n const easing = (scrollPos - endpoint) / strength;\n const distance = easing > 1 ? easing : 1;\n\n this.element.scrollTop = scrollPos - distance;\n }\n\n _animateScroll(time, endpoint, direction) {\n const strength = SCROLLING_SPEED;\n const choiceListScrollTop = this.element.scrollTop;\n let continueAnimation = false;\n\n if (direction > 0) {\n this._scrollDown(choiceListScrollTop, strength, endpoint);\n\n if (choiceListScrollTop < endpoint) {\n continueAnimation = true;\n }\n } else {\n this._scrollUp(choiceListScrollTop, strength, endpoint);\n\n if (choiceListScrollTop > endpoint) {\n continueAnimation = true;\n }\n }\n\n if (continueAnimation) {\n requestAnimationFrame(() => {\n this._animateScroll(time, endpoint, direction);\n });\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/components/list.js","import WrappedElement from './wrapped-element';\nimport { reduceToValues } from './../lib/utils';\n\nexport default class WrappedInput extends WrappedElement {\n constructor({ element, classNames, delimiter }) {\n super({ element, classNames });\n this.delimiter = delimiter;\n }\n\n set value(items) {\n const itemsFiltered = reduceToValues(items);\n const itemsFilteredString = itemsFiltered.join(this.delimiter);\n\n this.element.setAttribute('value', itemsFilteredString);\n this.element.value = itemsFilteredString;\n }\n\n // @todo figure out why we need this? Perhaps a babel issue\n get value() {\n return super.value;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/components/wrapped-input.js","import WrappedElement from './wrapped-element';\nimport templates from './../templates';\n\nexport default class WrappedSelect extends WrappedElement {\n constructor({ element, classNames }) {\n super({ element, classNames });\n }\n\n get placeholderOption() {\n return this.element.querySelector('option[placeholder]');\n }\n\n get optionGroups() {\n return Array.from(this.element.getElementsByTagName('OPTGROUP'));\n }\n\n get options() {\n return Array.from(this.element.options);\n }\n\n set options(options) {\n const fragment = document.createDocumentFragment();\n const addOptionToFragment = data => {\n // Create a standard select option\n const template = templates.option(data);\n // Append it to fragment\n fragment.appendChild(template);\n };\n\n // Add each list item to list\n options.forEach(optionData => addOptionToFragment(optionData));\n\n this.appendDocFragment(fragment);\n }\n\n appendDocFragment(fragment) {\n this.element.innerHTML = '';\n this.element.appendChild(fragment);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/components/wrapped-select.js","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/classnames/index.js\n// module id = 89\n// module chunks = 0","import { ACTION_TYPES } from './../constants';\n\nexport const addChoice = ({\n value,\n label,\n id,\n groupId,\n disabled,\n elementId,\n customProperties,\n placeholder,\n keyCode,\n}) => ({\n type: ACTION_TYPES.ADD_CHOICE,\n value,\n label,\n id,\n groupId,\n disabled,\n elementId,\n customProperties,\n placeholder,\n keyCode,\n});\n\nexport const filterChoices = results => ({\n type: ACTION_TYPES.FILTER_CHOICES,\n results,\n});\n\nexport const activateChoices = (active = true) => ({\n type: ACTION_TYPES.ACTIVATE_CHOICES,\n active,\n});\n\nexport const clearChoices = () => ({\n type: ACTION_TYPES.CLEAR_CHOICES,\n});\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/actions/choices.js","import { ACTION_TYPES } from './../constants';\n\nexport const addItem = ({\n value,\n label,\n id,\n choiceId,\n groupId,\n customProperties,\n placeholder,\n keyCode,\n}) => ({\n type: ACTION_TYPES.ADD_ITEM,\n value,\n label,\n id,\n choiceId,\n groupId,\n customProperties,\n placeholder,\n keyCode,\n});\n\nexport const removeItem = (id, choiceId) => ({\n type: ACTION_TYPES.REMOVE_ITEM,\n id,\n choiceId,\n});\n\nexport const highlightItem = (id, highlighted) => ({\n type: ACTION_TYPES.HIGHLIGHT_ITEM,\n id,\n highlighted,\n});\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/actions/items.js","import { ACTION_TYPES } from './../constants';\n\n/* eslint-disable import/prefer-default-export */\nexport const addGroup = (value, id, active, disabled) => ({\n type: ACTION_TYPES.ADD_GROUP,\n value,\n id,\n active,\n disabled,\n});\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/actions/groups.js","export const clearAll = () => ({\n type: 'CLEAR_ALL',\n});\n\nexport const resetTo = state => ({\n type: 'RESET_TO',\n state,\n});\n\n\n\n// WEBPACK FOOTER //\n// src/scripts/actions/misc.js","module.exports = __webpack_public_path__ + \"images/wave.png\";","/* eslint-disable */\r\n\r\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\r\nif (!Array.prototype.find) {\r\n Object.defineProperty(Array.prototype, 'find', {\r\n value(predicate) {\r\n // 1. Let O be ? ToObject(this value).\r\n if (this == null) {\r\n throw new TypeError('\"this\" is null or not defined');\r\n }\r\n\r\n const o = Object(this);\r\n\r\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\r\n const len = o.length >>> 0;\r\n\r\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\r\n if (typeof predicate !== 'function') {\r\n throw new TypeError('predicate must be a function');\r\n }\r\n\r\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n const thisArg = arguments[1];\r\n\r\n // 5. Let k be 0.\r\n let k = 0;\r\n\r\n // 6. Repeat, while k < len\r\n while (k < len) {\r\n // a. Let Pk be ! ToString(k).\r\n // b. Let kValue be ? Get(O, Pk).\r\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\r\n // d. If testResult is true, return kValue.\r\n const kValue = o[k];\r\n if (predicate.call(thisArg, kValue, k, o)) {\r\n return kValue;\r\n }\r\n // e. Increase k by 1.\r\n k++;\r\n }\r\n\r\n // 7. Return undefined.\r\n return undefined;\r\n },\r\n configurable: true,\r\n writable: true\r\n });\r\n}\r\n\r\n\r\n// https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\r\nif (!Array.prototype.findIndex) {\r\n Object.defineProperty(Array.prototype, 'findIndex', {\r\n value(predicate) {\r\n // 1. Let O be ? ToObject(this value).\r\n if (this == null) {\r\n throw new TypeError('\"this\" is null or not defined');\r\n }\r\n\r\n const o = Object(this);\r\n\r\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\r\n const len = o.length >>> 0;\r\n\r\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\r\n if (typeof predicate !== 'function') {\r\n throw new TypeError('predicate must be a function');\r\n }\r\n\r\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n const thisArg = arguments[1];\r\n\r\n // 5. Let k be 0.\r\n let k = 0;\r\n\r\n // 6. Repeat, while k < len\r\n while (k < len) {\r\n // a. Let Pk be ! ToString(k).\r\n // b. Let kValue be ? Get(O, Pk).\r\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\r\n // d. If testResult is true, return k.\r\n const kValue = o[k];\r\n if (predicate.call(thisArg, kValue, k, o)) {\r\n return k;\r\n }\r\n // e. Increase k by 1.\r\n k++;\r\n }\r\n\r\n // 7. Return -1.\r\n return -1;\r\n },\r\n configurable: true,\r\n writable: true\r\n });\r\n}\r\n\r\n\r\n// Production steps of ECMA-262, Edition 6, 22.1.2.1\r\nif (!Array.from) {\r\n Array.from = (function () {\r\n const toStr = Object.prototype.toString;\r\n const isCallable = function (fn) {\r\n return typeof fn === 'function' || toStr.call(fn) === '[object Function]';\r\n };\r\n const toInteger = function (value) {\r\n const number = Number(value);\r\n if (isNaN(number)) { return 0; }\r\n if (number === 0 || !isFinite(number)) { return number; }\r\n return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\r\n };\r\n const maxSafeInteger = Math.pow(2, 53) - 1;\r\n const toLength = function (value) {\r\n const len = toInteger(value);\r\n return Math.min(Math.max(len, 0), maxSafeInteger);\r\n };\r\n\r\n // The length property of the from method is 1.\r\n return function from(arrayLike/* , mapFn, thisArg */) {\r\n // 1. Let C be the this value.\r\n const C = this;\r\n\r\n // 2. Let items be ToObject(arrayLike).\r\n const items = Object(arrayLike);\r\n\r\n // 3. ReturnIfAbrupt(items).\r\n if (arrayLike == null) {\r\n throw new TypeError('Array.from requires an array-like object - not null or undefined');\r\n }\r\n\r\n // 4. If mapfn is undefined, then let mapping be false.\r\n const mapFn = arguments.length > 1 ? arguments[1] : void undefined;\r\n let T;\r\n if (typeof mapFn !== 'undefined') {\r\n // 5. else\r\n // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.\r\n if (!isCallable(mapFn)) {\r\n throw new TypeError('Array.from: when provided, the second argument must be a function');\r\n }\r\n\r\n // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n if (arguments.length > 2) {\r\n T = arguments[2];\r\n }\r\n }\r\n\r\n // 10. Let lenValue be Get(items, \"length\").\r\n // 11. Let len be ToLength(lenValue).\r\n const len = toLength(items.length);\r\n\r\n // 13. If IsConstructor(C) is true, then\r\n // 13. a. Let A be the result of calling the [[Construct]] internal method\r\n // of C with an argument list containing the single item len.\r\n // 14. a. Else, Let A be ArrayCreate(len).\r\n const A = isCallable(C) ? Object(new C(len)) : new Array(len);\r\n\r\n // 16. Let k be 0.\r\n let k = 0;\r\n // 17. Repeat, while k < len… (also steps a - h)\r\n let kValue;\r\n while (k < len) {\r\n kValue = items[k];\r\n if (mapFn) {\r\n A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);\r\n } else {\r\n A[k] = kValue;\r\n }\r\n k += 1;\r\n }\r\n // 18. Let putStatus be Put(A, \"length\", len, true).\r\n A.length = len;\r\n // 20. Return A.\r\n return A;\r\n };\r\n }());\r\n}\r\n\r\nif (!String.prototype.includes) {\r\n String.prototype.includes = function (search, start) {\r\n if (typeof start !== 'number') {\r\n start = 0;\r\n }\r\n\r\n if (start + search.length > this.length) {\r\n return false;\r\n }\r\n return this.indexOf(search, start) !== -1;\r\n };\r\n}\r\n\r\nNumber.isNaN = Number.isNaN || function(value) {\r\n return typeof value === 'number' && isNaN(value);\r\n};\r\n\r\nif (!Object.assign) {\r\n Object.defineProperty(Object, 'assign', {\r\n enumerable: false,\r\n configurable: true,\r\n writable: true,\r\n value: function(target, firstSource) {\r\n 'use strict';\r\n if (target === undefined || target === null) {\r\n throw new TypeError('Cannot convert first argument to object');\r\n }\r\n\r\n var to = Object(target);\r\n for (var i = 1; i < arguments.length; i++) {\r\n var nextSource = arguments[i];\r\n if (nextSource === undefined || nextSource === null) {\r\n continue;\r\n }\r\n\r\n var keysArray = Object.keys(Object(nextSource));\r\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\r\n var nextKey = keysArray[nextIndex];\r\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\r\n if (desc !== undefined && desc.enumerable) {\r\n to[nextKey] = nextSource[nextKey];\r\n }\r\n }\r\n }\r\n return to;\r\n }\r\n });\r\n}\r\n\r\nif (!Element.prototype.matches) {\r\n Element.prototype.matches = Element.prototype.msMatchesSelector ||\r\n Element.prototype.webkitMatchesSelector;\r\n}\r\n\r\nif (!Element.prototype.closest) {\r\n Element.prototype.closest = function(s) {\r\n var el = this;\r\n\r\n do {\r\n if (el.matches(s)) return el;\r\n el = el.parentElement || el.parentNode;\r\n } while (el !== null && el.nodeType === 1);\r\n return null;\r\n };\r\n}\r\n\r\n/**\r\n * From https://github.com/tc39/proposal-object-values-entries/blob/master/polyfill.js\r\n * @type {any}\r\n */\r\nconst reduce = Function.bind.call(Function.call, Array.prototype.reduce);\r\nconst isEnumerable = Function.bind.call(Function.call, Object.prototype.propertyIsEnumerable);\r\nconst concat = Function.bind.call(Function.call, Array.prototype.concat);\r\nconst keys = Reflect.ownKeys;\r\n\r\nif (!Object.values) {\r\n Object.values = function values(O) {\r\n return reduce(keys(O), (v, k) => concat(v, typeof k === 'string' && isEnumerable(O, k) ? [O[k]] : []), []);\r\n };\r\n}\r\n\r\nif (!Object.entries) {\r\n Object.entries = function entries(O) {\r\n return reduce(keys(O), (e, k) => concat(e, typeof k === 'string' && isEnumerable(O, k) ? [[k, O[k]]] : []), []);\r\n };\r\n}\r\n","import anime from 'animejs';\r\nimport BaseComponent from 'foundation/base-component';\r\n\r\nconst DURATION = 300;\r\nconst EASING = 'linear';\r\n\r\nexport default class Accordion extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this._isOpened = this.element.classList.contains('is-opened') || false;\r\n this._isAnimating = false;\r\n this.isExperienceEditor = false;\r\n\r\n this.onChangeSubscribers = [];\r\n\r\n this.onClickTrigger = this.onClickTrigger.bind(this);\r\n this.onKeydownTrigger = this.onKeydownTrigger.bind(this);\r\n this.onAnimationComplete = this.onAnimationComplete.bind(this);\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['trigger', 'content'];\r\n }\r\n\r\n init() {\r\n setContentToState(this.refs.content, this._isOpened);\r\n\r\n if (!Array.isArray(this.refs.trigger)) {\r\n this.refs.trigger = [this.refs.trigger];\r\n }\r\n\r\n this.refs.trigger.forEach((trigger) => {\r\n trigger.setAttribute('aria-expanded', this._isOpened.toString());\r\n });\r\n this.refs.content.setAttribute('aria-hidden', this._isOpened.toString());\r\n\r\n this.addListeners();\r\n }\r\n\r\n addListeners() {\r\n this.refs.trigger.forEach((trigger) => {\r\n this.addListener(trigger, 'click', this.onClickTrigger);\r\n this.addListener(trigger, 'keydown', this.onKeydownTrigger);\r\n });\r\n }\r\n\r\n onClickTrigger(event) {\r\n if (typeof event !== 'undefined' &&\r\n typeof event.preventDefault === 'function'\r\n ) {\r\n event.preventDefault();\r\n }\r\n\r\n if (this._isAnimating) return;\r\n\r\n if (this._isOpened) {\r\n this.collapse();\r\n } else {\r\n this.expand();\r\n }\r\n }\r\n\r\n onKeydownTrigger(event) {\r\n const keyCode = event.which;\r\n\r\n switch (keyCode) {\r\n case 13:\r\n case 32:\r\n if (!this.isExperienceEditor) {\r\n this.onClickTrigger(event);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n onAnimationComplete() {\r\n this._isAnimating = false;\r\n this._isOpened = !this._isOpened;\r\n\r\n this.onChangeSubscribers.forEach((cb) => {\r\n cb(this._isOpened);\r\n });\r\n }\r\n\r\n expand() {\r\n this._isAnimating = true;\r\n this.refs.trigger.forEach((trigger) => {\r\n trigger.setAttribute('aria-expanded', 'true');\r\n });\r\n this.element.classList.add('is-opened');\r\n expand(this.refs.content, this.onAnimationComplete);\r\n }\r\n\r\n collapse() {\r\n this._isAnimating = true;\r\n this.refs.trigger.forEach((trigger) => {\r\n trigger.setAttribute('aria-expanded', 'false');\r\n });\r\n this.element.classList.remove('is-opened');\r\n collapse(this.refs.content, this.onAnimationComplete);\r\n }\r\n\r\n onChange(cb) {\r\n this.onChangeSubscribers.push(cb);\r\n\r\n return () => {\r\n this.onChangeSubscribers = this.onChangeSubscribers.filter((item) => item !== cb);\r\n };\r\n }\r\n}\r\n\r\nexport function setContentToState(content, isExpanded) {\r\n if (isExpanded) {\r\n content.style.overflow = 'visible';\r\n content.style.display = 'block';\r\n content.style.maxHeight = 'none';\r\n } else {\r\n content.style.maxHeight = 0;\r\n content.style.overflow = 'hidden';\r\n content.style.display = 'none';\r\n }\r\n}\r\n\r\nexport function collapse(content, onComplete = null, duration = DURATION, easing = EASING) {\r\n content.style.overflow = 'hidden';\r\n content.style.maxHeight = `${content.scrollHeight}px`;\r\n\r\n anime({\r\n targets: content,\r\n maxHeight: [content.scrollHeight, 0],\r\n duration,\r\n easing,\r\n complete: () => {\r\n setContentToState(content, false);\r\n content.style.overflow = 'hidden';\r\n content.style.display = 'none';\r\n content.style.maxHeight = '0';\r\n\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function expand(content, onComplete = null, duration = DURATION, easing = EASING) {\r\n content.style.display = 'block';\r\n\r\n anime({\r\n targets: content,\r\n maxHeight: [0, content.scrollHeight],\r\n duration,\r\n easing,\r\n complete: () => {\r\n setContentToState(content, true);\r\n\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n }\r\n });\r\n}\r\n","import Accordion from './js/accordion.component';\r\n\r\nexport default Accordion;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport Accordion from 'Feature/ContentComponents/code/assets/componets/accordion';\r\n\r\nComponentsFactory.getInstance().define('accordion', Accordion);\r\n","import { getWebsiteDomain } from '../../../../../../general/js/helpers';\r\n\r\nexport const isSignInSuccess = (signInFormProps) => {\r\n const {\r\n isSignInSuccessful,\r\n isNewPasswordRequired,\r\n loading\r\n } = signInFormProps;\r\n\r\n return !loading &&\r\n !isNewPasswordRequired &&\r\n isSignInSuccessful;\r\n};\r\n\r\nexport const getLastLogInData = () => {\r\n const date = new Date();\r\n\r\n const lastLoginDate = `${date.getMonth() + 1}/${date.getDate()}/${date.getFullYear()}`;\r\n const lastLoginPlatform = getWebsiteDomain();\r\n const lastLoginDevice = 'Website';\r\n\r\n return {\r\n lastLoginDate,\r\n lastLoginPlatform,\r\n lastLoginDevice\r\n };\r\n};\r\n\r\nexport const hasAgreeToPrivacyPolicyChecked = (optIns) => {\r\n if (optIns.agreedToPrivacyPolicy === undefined || optIns.agreedToPrivacyPolicy === false) return false;\r\n\r\n return true;\r\n};\r\n","import { Auth } from 'aws-amplify';\r\nimport { handleResponse, handleError } from './api-utils';\r\nimport { apiConstants } from './api-constants';\r\n\r\nexport function getSSOSignInFormData() {\r\n return fetch(apiConstants.loadSignInFormDataUrl)\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function getSSORaMembersSignInFormData() {\r\n return fetch(apiConstants.loadRaMembersSignInFormDataUrl)\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function getSSOSignInSuccessFormData() {\r\n return fetch(`${window.location.origin}${apiConstants.signInSuccessFromDataUrl}`)\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function getNewPasswordRequiredFormData() {\r\n return fetch(apiConstants.loadNewPasswordRequiredFormDataUrl)\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function completeNewPassword({ cognitoUser, password }) {\r\n return Auth.completeNewPassword(cognitoUser, password);\r\n}\r\n\r\nexport function signInUser(userSignInData) {\r\n return Auth.signIn(userSignInData.username, userSignInData.password);\r\n}\r\n\r\nexport function signOutUser() {\r\n return Auth.signOut();\r\n}\r\n\r\nexport function updateUserSignInDetails(userDetails, callbackUrl) {\r\n\r\n return Auth.currentSession().then((data) => {\r\n const { accessToken } = data;\r\n return fetch(callbackUrl, {\r\n method: 'PUT',\r\n headers: {\r\n 'content-type': 'application/json',\r\n authorization: `Bearer ${accessToken.jwtToken}`\r\n },\r\n body: JSON.stringify(userDetails)\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n });\r\n}\r\n","export const formMessageConstants = {\r\n\r\n formBannerTitle: 'Join The One Club',\r\n formBannerMessage: 'Creating an account will only take a few minutes and will allow you to buy tickets straight away.',\r\n\r\n yourDetails: 'Your details',\r\n signInHere: 'Sign in here',\r\n signIn: 'Sign in',\r\n reset: 'Reset',\r\n verifyEmail: 'Verify',\r\n\r\n alreadyAMember: 'Already a member?',\r\n rememberPassword: 'Remember your password?',\r\n signInWithDifferentAccount: 'Sign in with a different account?',\r\n resendVerificationEmail: 'Re-send email verification',\r\n\r\n registerHere: 'Register here',\r\n haventGotAnAccount: 'Haven\\'t got an account?',\r\n\r\n forgottenPassword: 'Forgotten password',\r\n forgotPassword: 'Forgot password?',\r\n resetForgottenPassword: 'Please enter your email address to reset the forgotten password.',\r\n\r\n resetPassword: 'Reset password',\r\n resetPasswordFormHeaderLabel: 'Please enter your account\\'s email address, verification code and new password',\r\n newPasswordRequired: 'New password required',\r\n\r\n changePassword: 'Change Password',\r\n saveUserDetails: 'Save details',\r\n editUserDetails: 'Edit details',\r\n upgradeTicketingUserDetails: 'Upgrade to Ticketing',\r\n upgradeMemberPlusUserDetails: 'Upgrade to Member Plus',\r\n seeDetails: 'See details',\r\n viewTickets: 'View tickets',\r\n\r\n noAddressesFound: 'No address has been found.',\r\n addNewAddress: 'Add new address',\r\n saveAddress: 'Save address',\r\n updateAddress: 'Update address',\r\n editAddress: 'Edit address',\r\n removeAddress: 'Remove address',\r\n\r\n cannotRemoveLastAddress: 'Cannot remove the last address.',\r\n cannotRemoveMainAddress: 'Cannot remove the main address',\r\n cannotRemoveShippingAddress: 'Cannot remove the shipping address',\r\n cannotRemoveBillingAddress: 'Cannot remove the billing address',\r\n\r\n emailAddressLabel: 'Email Address',\r\n passwordLabel: 'Password',\r\n confirmPasswordLabel: 'Confirm password',\r\n verificationCodeLabel: 'Verification Code',\r\n\r\n updateNotificationSettings: 'Update Notification Settings',\r\n\r\n submitOneClubFormButtonText: 'JOIN THE ONE CLUB',\r\n updateOneClubDetails: 'Update',\r\n submitDefaultFormButtonText: 'SIGN UP',\r\n submitTicketingFormButtonText: 'SIGN UP',\r\n submitBallotSummaryFormButtonText: 'Update',\r\n upgradeAccount: 'Upgrade',\r\n upgradeAccountResale: 'Submit',\r\n updateAccount: 'Update',\r\n or: 'Or',\r\n socialRegistrationMessage: 'Sign in with a social network',\r\n submitFacebookFormButtonText: 'FACEBOOK',\r\n submitGoogleFormButtonText: 'GOOGLE',\r\n\r\n oneClubRegisterSuccessText: 'Thank you for creating a One Club Account. An email has been sent to the provided email address. After you verify your email address you can access you account.',\r\n ballotOneClubSignInSuccessText: 'You already have a One Club Account. No other action is needed.',\r\n registrationSuccessText: 'Your account has been created successfully.',\r\n forgotPasswordSuccessText: 'An email with more information was sent to the provided address.',\r\n newPasswordRequiredSuccessText: 'Your password has been updated successfully',\r\n updateUserDetailsSuccessText: 'Your details have been updated successfully.',\r\n\r\n somethingWentWrong: 'Something went wrong.',\r\n encounteredAnIssueTO: 'We are experiencing extremely high volumes on the website at the moment. Please try again later.',\r\n encounteredAnIssueWO: 'We are experiencing extremely high volumes on the website at the moment. Please try again later.',\r\n\r\n upgradeToTicketingAccount: 'Complete your profile',\r\n upgradeToTicketingAccountFromResale: 'We just need a few more details…',\r\n personaliseYourExperienceMessage: 'Update your profile so we may enhance and personalise your experience',\r\n alreadyHaveATicketingAccount: 'Already have a Ticketing Account',\r\n\r\n upgradeToOneClubAccount: 'Upgrade to One Club Account',\r\n alreadyHaveAOneClubAccount: 'Already have a One Club Account',\r\n completeToOneClubAccount: 'Complete your One Club profile',\r\n\r\n noOrdersFoundText: 'You do not have any orders in your account',\r\n noProductsFoundText: 'You do not have any products',\r\n noPaymentSummaryFoundText: 'No payment summary found',\r\n noDeliveryDataFoundText: 'No delivery data found',\r\n noHistoryDataFoundText: 'No history data found',\r\n noActionsToPerformText: 'There are no actions to perform',\r\n noUpcomingEventText: 'There is no upcoming event',\r\n\r\n emptyString: '',\r\n defaultNumberValue: 0,\r\n\r\n upcoming: 'Upcoming',\r\n actionsToPerform: 'Actions for you to perform',\r\n actions: 'Actions',\r\n fileSummary: 'File summary',\r\n paymentSummary: 'Payment summary',\r\n installments: 'Installments',\r\n delivery: 'Delivery',\r\n changeHistory: 'Change history',\r\n unitPrice: 'Unit Price',\r\n subTotal: 'Sub-total',\r\n qty: 'Qty',\r\n invoice: 'Invoice',\r\n date: 'Date',\r\n order: 'Order',\r\n type: 'Type',\r\n open: 'Open',\r\n documentsPdf: 'Documents (PDF)',\r\n confirmed: 'Confirmed',\r\n documents: 'Documents',\r\n deliveryMethod: 'Delivery method',\r\n shipmentState: 'Shipment state',\r\n deliveryAddress: 'Delivery address',\r\n totalAmountPaid: 'Total amount paid',\r\n dueDate: 'Due Date',\r\n amountDue: 'Amount Due',\r\n amountPaid: 'Amount Paid',\r\n paymentDate: 'Payment Date',\r\n payByCreditCard: 'Pay by credit card',\r\n amountInvoiced: 'Invoiced amount',\r\n paymentMethod: 'Payment method',\r\n lastStatus: 'Last status',\r\n lastPayment: 'Last payment',\r\n billingContactName: 'Billing Contact Name',\r\n billingContactDetails: 'Billing Contact Details',\r\n billingAddress: 'Billing Address',\r\n addressLine1: 'Address Line 1',\r\n addressLine2: 'Address Line 2',\r\n addressLine3: 'Address Line 3',\r\n city: 'Town/City',\r\n country: 'Country',\r\n county: 'County',\r\n printSummary: 'Print summary',\r\n payReservation: 'Pay reservation',\r\n lastOrderText: 'Your last order',\r\n fileNumber: 'File number',\r\n fileContent: 'File content',\r\n channel: 'Channel',\r\n fileStatus: 'Status',\r\n fileContact: 'File Contact',\r\n lastUpdate: 'Last update',\r\n created: 'Created',\r\n file: 'File',\r\n fileAmount: 'File amount',\r\n expirationDate: 'Expiration Date',\r\n expiryDate: 'Expiry Date',\r\n viewFileDetails: 'View file details',\r\n information: 'Information',\r\n display: 'Display',\r\n close: 'Close',\r\n cancel: 'Cancel',\r\n saveAndContinue: 'Save and Continue',\r\n canceledFiles: 'Canceled files',\r\n hideOldTickets: 'Hide old tickets',\r\n ticketNumber: 'Ticket Number',\r\n firstName: 'First name',\r\n lastName: 'Last name',\r\n verifyEmailSuccessText: 'Your new email was successful validated. Thank you!',\r\n conflictHTTPStatusCode: 409,\r\n removeAddressConfirmationMessage: 'Yes'\r\n};\r\n","export const formDateConstants = {\r\n options: {\r\n weekday: 'long',\r\n year: 'numeric',\r\n month: 'long',\r\n day: 'numeric'\r\n },\r\n region: 'en-US'\r\n};\r\n","export const fileState = {\r\n RUNNING: 0,\r\n SUSPENDED: 1,\r\n IN_OPTION: 2,\r\n IN_RESERVATION: 3,\r\n OPTION_RESERV: 4,\r\n CONFIRMED: 5,\r\n SOLD: 6,\r\n NOT_SOLD: 7,\r\n PART_SOLD: 8,\r\n CANCELED: 9,\r\n ABANDONED: 10,\r\n TECH_ERROR: 11\r\n};\r\n","export const orderType = {\r\n SALE: 0,\r\n REFUND_CLIENT: 1,\r\n REFUND_ORGANIZATION: 2,\r\n EXCHANGE_ORGANIZATION: 3,\r\n EXCHANGE_CLIENT: 4,\r\n RESERVATION: 5,\r\n RENEWAL: 6,\r\n OPTION: 7,\r\n RESERVATION_FREEING: 8,\r\n OPTION_FREEING: 9,\r\n ST_TRANSFER: 10\r\n};\r\n","import { hasValue } from \"../../../../../../general/js/general-helpers\";\r\nimport { formConstants } from \"../../../utils/constants/form-constants\";\r\n\r\nexport const getMainAddress = (currentUser) => {\r\n if (!currentUser || !currentUser.addresses) {\r\n return null;\r\n }\r\n\r\n return currentUser.addresses.find((e) => e.main);\r\n};\r\n\r\nexport const getPropertyFromMainAddress = (mainAddres, propertyName) => {\r\n if (!mainAddres) {\r\n return null;\r\n }\r\n\r\n return mainAddres[propertyName];\r\n};\r\n\r\nexport const getTitle = ( currentUser ) =>\r\n{\r\n if ( !currentUser || !currentUser.title )\r\n {\r\n return null;\r\n }\r\n return currentUser.title;\r\n}\r\n\r\nexport const getDateOfBirth = ( currentUser ) =>\r\n{\r\n if ( !currentUser || !currentUser.dateOfBirth )\r\n {\r\n return null;\r\n }\r\n \r\n const { dateOfBirthDay, dateOfBirthMonth, dateOfBirthYear } = currentUser;\r\n const dayAsNumber = parseInt(dateOfBirthDay, 10);\r\n const monthAsNumber = parseInt(dateOfBirthMonth, 10);\r\n const yearAsNumber = parseInt(dateOfBirthYear, 10);\r\n \r\n return {\r\n year: yearAsNumber,\r\n month: monthAsNumber,\r\n day: dayAsNumber\r\n };\r\n}\r\n\r\nexport const getMobilePhone = ( formData, formConstants ) =>\r\n{\r\n if ( !formData.currentUser || !formData.currentUser.mobilePhone || !formData.currentUser.countryCodeMobilePhonePrefix)\r\n {\r\n return null;\r\n }\r\n\r\n const userMobilePhone = formData.currentUser.mobilePhone;\r\n\r\n const selectedCountry = getSelectedCountry(formData, formConstants);\r\n\r\n if (!hasValue(selectedCountry)){\r\n return null;\r\n }\r\n\r\n return {\r\n phoneNumber: userMobilePhone.replace(selectedCountry.phonePrefix, ''),\r\n selectedCountry: selectedCountry\r\n };\r\n}\r\n\r\nexport const hasOneClubRequiredFields = (currentUser, optIns) => \r\n{\r\n const title = getTitle(currentUser);\r\n const mainAddress = getMainAddress(currentUser);\r\n const dateOfBirth = getDateOfBirth(currentUser);\r\n\r\n if (!hasValue(title) || !hasValue(mainAddress) || !hasValue(dateOfBirth)\r\n || optIns.agreedToTermsAndConditions === undefined || optIns.agreedToTermsAndConditions === false\r\n || optIns.agreedToPrivacyPolicy === undefined || optIns.agreedToPrivacyPolicy === false)\r\n {\r\n return false;\r\n }\r\n\r\n if (hasValue(mainAddress))\r\n {\r\n const country = getPropertyFromMainAddress(mainAddress, formConstants.country);\r\n \r\n if (!hasValue(country))\r\n {\r\n return false;\r\n }\r\n }\r\n \r\n return true;\r\n}\r\n\r\nfunction getSelectedCountry(formData, formConstants) {\r\n let selectedCountry = null;\r\n\r\n if(isFormDataCountryOptionsAvailable(formData, formConstants)){\r\n selectedCountry = formData[formConstants.country].options\r\n .find((country) => !_.isEmpty(country.phonePrefix) &&\r\n country.code === formData.currentUser.countryCodeMobilePhonePrefix);\r\n }\r\n\r\n if (hasValue(selectedCountry))\r\n return selectedCountry;\r\n\r\n if(isFormDataCountryOptionsAvailable(formData, formConstants)){\r\n selectedCountry = formData[formConstants.country].options\r\n .find((country) => !_.isEmpty(country.phonePrefix) &&\r\n formData.currentUser.mobilePhone.includes(country.phonePrefix));\r\n }\r\n\r\n return selectedCountry;\r\n}\r\n\r\nconst isFormDataCountryOptionsAvailable = (formData, formConstants) => {\r\n return hasValue(formData) && hasValue(formConstants) && hasValue(formData[formConstants.country]) && hasValue(formData[formConstants.country].options)\r\n}\r\n","export const CURRENCY_RATIO = 1000;\r\nexport const currencyIsoCodes = Object.freeze({\r\n GBP: 'GBP'\r\n});\r\n\r\nexport default class CurrencyHelper {\r\n static convertToPounds(price) {\r\n return typeof price === 'number' ? `£${(price / CURRENCY_RATIO).toFixed(2)}` : '£';\r\n }\r\n\r\n static getMinusPounds(origin, poundsCount) {\r\n return origin - poundsCount * CURRENCY_RATIO;\r\n }\r\n\r\n static getTotalMcFromTotal(total, masterCardDiscount = 0) {\r\n return Math.max(this.getMinusPounds(total, masterCardDiscount), 0);\r\n }\r\n}\r\n","import _ from 'lodash';\r\nimport get from 'lodash/get';\r\nimport { formConstants } from '../../../components/utils/constants/form-constants';\r\nimport { isEmpty, deepCopyObject } from '../../../components/utils/obj-utils';\r\nimport { formMessageConstants } from '../../../components/utils/constants/form-message-constants';\r\nimport { formDateConstants } from '../../../components/utils/constants/form-date-constants';\r\nimport { fileState } from '../../../components/utils/file-state';\r\nimport { orderType } from '../../../components/utils/order-type';\r\nimport { getDateAsISOString, createDateFromExisting } from '../../../components/utils/date-utils';\r\nimport { ssoFormTypes } from '../../../components/utils/form-types';\r\nimport { domainConstants } from '../../../components/utils/constants/domain-constants';\r\nimport {\r\n isNullOrUndefined,\r\n hasValue\r\n} from '../../../../../general/js/general-helpers';\r\nimport userService from '../../../../../general/js/user/user-service';\r\nimport {\r\n getUserDetailsForSaveToAddressBookRequest,\r\n getSaveUserToAddressBookRequestModel\r\n} from './data-format-helper-dotdigital';\r\nimport { currencyIsoCodes } from '../../../../../general/js/basket/currency-helper';\r\nimport { MembershipTypes } from '../../../../../general/js/utils';\r\n\r\nexport function getFormattedUserRegistrationData(userRegistrationData) {\r\n const { membership } = userRegistrationData;\r\n\r\n if (membership === MembershipTypes.OneClub) {\r\n return getFormattedOneClubUserRegistrationData(userRegistrationData);\r\n }\r\n\r\n if (userService.hasTicketingAccount(userRegistrationData)) {\r\n if (userRegistrationData[formConstants.raMemberId] === null || userRegistrationData[formConstants.raMemberId] === undefined) {\r\n return getFormattedTicketingRegistrationData(userRegistrationData);\r\n }\r\n return getFormattedRaMembersRegistrationData(userRegistrationData);\r\n }\r\n\r\n return getFormattedDefaultUserRegistrationData(userRegistrationData);\r\n}\r\n\r\nfunction getFormattedOneClubUserRegistrationData(userRegistrationData) {\r\n const { membership } = userRegistrationData;\r\n const selectedVenues = userRegistrationData[formConstants.venues];\r\n const selectedFavoritePlayer = userRegistrationData[formConstants.favoritePlayer];\r\n\r\n let activeMemberships;\r\n if (userRegistrationData.mastercard) {\r\n activeMemberships = `${membership};${MembershipTypes.OneClubAdvantage}`;\r\n } else {\r\n activeMemberships = membership;\r\n }\r\n\r\n return {\r\n password: userRegistrationData[formConstants.password],\r\n reCaptcha: userRegistrationData[formConstants.reCaptcha],\r\n formType: userRegistrationData[formConstants.registerFormData][formConstants.formType],\r\n user: {\r\n membership: activeMemberships,\r\n title: userRegistrationData[formConstants.title],\r\n email: getFormattedEmailRemoveSpaces(userRegistrationData[formConstants.emailAddress]),\r\n firstName: userRegistrationData[formConstants.firstName],\r\n lastName: userRegistrationData[formConstants.lastName],\r\n addresses: [{\r\n postcode: userRegistrationData[formConstants.postcode],\r\n country: userRegistrationData[formConstants.country],\r\n county: userRegistrationData[formConstants.county],\r\n state: userRegistrationData[formConstants.state],\r\n main: true,\r\n shippingAddress: true,\r\n billingAddress: true\r\n }],\r\n mobilePhone: getMobilePhone(userRegistrationData),\r\n countryCodeMobilePhonePrefix: getCountryCodeMobilePhonePrefix(userRegistrationData),\r\n currentWebsite: userRegistrationData[formConstants.ssoDomain],\r\n dateOfBirth: userRegistrationData[formConstants.dateOfBirth] ? userRegistrationData[formConstants.dateOfBirth].toISOString() : null,\r\n optIns: {\r\n optedTheOpenOffersByEmail: !userRegistrationData[formConstants.refuseOffers],\r\n optedPartnerOffersByEmail: userRegistrationData[formConstants.acceptOffers],\r\n agreedToTermsAndConditions: userRegistrationData[formConstants.oneClubTermsAndServices],\r\n agreedToPrivacyPolicy: userRegistrationData[formConstants.oneClubTermsAndServices]\r\n },\r\n interests: {\r\n favoritePlayer: _.isEmpty(selectedFavoritePlayer) ? formMessageConstants.emptyString : selectedFavoritePlayer,\r\n venues: _.isEmpty(selectedVenues) ? [] : selectedVenues\r\n },\r\n preferences: {\r\n championships: getDefaultChampionships(userRegistrationData.registerFormData),\r\n interests: getDefaultInterests(userRegistrationData.registerFormData)\r\n },\r\n zoneInfo: getUserZoneInfo(userRegistrationData.registerFormData),\r\n }\r\n };\r\n}\r\n\r\nfunction getFormattedTicketingRegistrationData(userRegistrationData) {\r\n const { membership } = userRegistrationData;\r\n let formType = 0;\r\n if (userRegistrationData[formConstants.registerFormData] === null || userRegistrationData[formConstants.registerFormData] === undefined) {\r\n formType = ssoFormTypes.TicketingRegister;\r\n } else {\r\n formType = userRegistrationData[formConstants.registerFormData][formConstants.formType] == null ? ssoFormTypes.TicketingRegister : userRegistrationData[formConstants.registerFormData][formConstants.formType];\r\n }\r\n\r\n let activeMemberships;\r\n if (userRegistrationData.mastercard) {\r\n activeMemberships = `${membership};${MembershipTypes.OneClubAdvantage}`;\r\n } else {\r\n activeMemberships = membership;\r\n }\r\n\r\n return {\r\n password: userRegistrationData[formConstants.password],\r\n reCaptcha: userRegistrationData[formConstants.reCaptcha],\r\n formType,\r\n user: {\r\n membership: activeMemberships,\r\n title: userRegistrationData[formConstants.title],\r\n email: getFormattedEmailRemoveSpaces(userRegistrationData[formConstants.emailAddress]),\r\n firstName: userRegistrationData[formConstants.firstName],\r\n lastName: userRegistrationData[formConstants.lastName],\r\n addresses: [{\r\n addressLine1: userRegistrationData[formConstants.addressLine1],\r\n addressLine2: userRegistrationData[formConstants.addressLine2],\r\n addressLine3: userRegistrationData[formConstants.addressLine3],\r\n postcode: userRegistrationData[formConstants.postcode],\r\n city: userRegistrationData[formConstants.city],\r\n country: userRegistrationData[formConstants.country],\r\n county: userRegistrationData[formConstants.county],\r\n state: userRegistrationData[formConstants.state],\r\n main: true,\r\n shippingAddress: true,\r\n billingAddress: true\r\n }],\r\n mobilePhone: getMobilePhone(userRegistrationData),\r\n countryCodeMobilePhonePrefix: getCountryCodeMobilePhonePrefix(userRegistrationData),\r\n currentWebsite: userRegistrationData[formConstants.ssoDomain],\r\n dateOfBirth: userRegistrationData[formConstants.dateOfBirth] ? userRegistrationData[formConstants.dateOfBirth].toISOString() : null,\r\n optIns: {\r\n optedTheOpenOffersByEmail: !userRegistrationData[formConstants.refuseOffers],\r\n optedPartnerOffersByEmail: userRegistrationData[formConstants.acceptOffers],\r\n agreedToTermsAndConditions: userRegistrationData[formConstants.oneClubTermsAndServices],\r\n agreedToPrivacyPolicy: userRegistrationData[formConstants.privacyPolicy]\r\n },\r\n preferences: {\r\n championships: getDefaultChampionships(userRegistrationData),\r\n interests: getDefaultInterests(userRegistrationData)\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction getFormattedRaMembersRegistrationData(userRegistrationData) {\r\n const { membership } = userRegistrationData;\r\n return {\r\n password: userRegistrationData[formConstants.password],\r\n user: {\r\n membership,\r\n title: userRegistrationData[formConstants.title],\r\n email: userRegistrationData[formConstants.emailAddress].toLowerCase(),\r\n firstName: userRegistrationData[formConstants.firstName],\r\n lastName: userRegistrationData[formConstants.lastName],\r\n addresses: [{\r\n addressLine1: userRegistrationData[formConstants.addressLine1],\r\n addressLine2: userRegistrationData[formConstants.addressLine2],\r\n addressLine3: userRegistrationData[formConstants.addressLine3],\r\n postcode: userRegistrationData[formConstants.postcode],\r\n city: userRegistrationData[formConstants.city],\r\n country: userRegistrationData[formConstants.country],\r\n county: userRegistrationData[formConstants.county],\r\n state: userRegistrationData[formConstants.state],\r\n main: true,\r\n shippingAddress: true,\r\n billingAddress: true\r\n }],\r\n mobilePhone: getMobilePhone(userRegistrationData),\r\n raMemberId: userRegistrationData[formConstants.raMemberId],\r\n countryCodeMobilePhonePrefix: getCountryCodeMobilePhonePrefix(userRegistrationData),\r\n currentWebsite: userRegistrationData[formConstants.ssoDomain],\r\n dateOfBirth: userRegistrationData[formConstants.dateOfBirth] ? userRegistrationData[formConstants.dateOfBirth].toISOString() : null,\r\n optIns: {\r\n optedTheOpenOffersByEmail: !userRegistrationData[formConstants.refuseOffers],\r\n optedPartnerOffersByEmail: userRegistrationData[formConstants.acceptOffers],\r\n agreedToTermsAndConditions: true,\r\n agreedToPrivacyPolicy: userRegistrationData[formConstants.privacyPolicy]\r\n },\r\n preferences: {\r\n championships: getDefaultChampionships(userRegistrationData),\r\n interests: getDefaultInterests(userRegistrationData)\r\n },\r\n zoneInfo: getUserZoneInfo(userRegistrationData.registerFormData)\r\n }\r\n };\r\n}\r\n\r\nfunction getFormattedDefaultUserRegistrationData(userRegistrationData) {\r\n const { membership } = userRegistrationData;\r\n const formType = userRegistrationData[formConstants.formType] == null ? ssoFormTypes.DefaultRegister : userRegistrationData[formConstants.formType];\r\n\r\n let activeMemberships;\r\n if (userRegistrationData.mastercard) {\r\n activeMemberships = `${membership};${MembershipTypes.OneClubAdvantage}`;\r\n } else {\r\n activeMemberships = membership;\r\n }\r\n\r\n return {\r\n password: userRegistrationData[formConstants.password],\r\n reCaptcha: userRegistrationData[formConstants.reCaptcha],\r\n formType,\r\n user: {\r\n membership: activeMemberships,\r\n email: getFormattedEmailRemoveSpaces(userRegistrationData[formConstants.emailAddress]),\r\n firstName: userRegistrationData[formConstants.firstName],\r\n lastName: userRegistrationData[formConstants.lastName],\r\n currentWebsite: userRegistrationData[formConstants.ssoDomain],\r\n mobilePhone: getMobilePhone(userRegistrationData),\r\n countryCodeMobilePhonePrefix: getCountryCodeMobilePhonePrefix(userRegistrationData),\r\n optIns: {\r\n optedTheOpenOffersByEmail: !userRegistrationData[formConstants.refuseOffers],\r\n optedPartnerOffersByEmail: userRegistrationData[formConstants.acceptOffers],\r\n agreedToTermsAndConditions: userRegistrationData[formConstants.oneClubTermsAndServices],\r\n agreedToPrivacyPolicy: userRegistrationData[formConstants.oneClubTermsAndServices]\r\n },\r\n preferences: {\r\n championships: getDefaultChampionships(userRegistrationData),\r\n interests: getDefaultInterests(userRegistrationData)\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport function getFormattedUserForgotPasswordData(userForgotPasswordData) {\r\n return {\r\n emailAddress: getFormattedEmailRemoveSpaces(userForgotPasswordData[formConstants.emailAddress]),\r\n website: userForgotPasswordData.website\r\n };\r\n}\r\n\r\nexport function getFormattedUserEmailData(emailAddress, ssoDomain) {\r\n return { userEmail: getFormattedEmailRemoveSpaces(emailAddress), website: ssoDomain };\r\n}\r\n\r\nexport function getFormattedUserResetPasswordData(userResetPasswordData) {\r\n return {\r\n emailAddress: getFormattedEmailRemoveSpaces(userResetPasswordData[formConstants.emailAddress]),\r\n confirmationCode: userResetPasswordData[formConstants.verificationCode],\r\n newPassword: userResetPasswordData[formConstants.password],\r\n };\r\n}\r\n\r\nexport function getFormattedUserSignInData(userSignInData) {\r\n const userName = userSignInData[formConstants.userName];\r\n const formattedUserName = userName || getFormattedEmailRemoveSpaces(userSignInData[formConstants.emailAddress]);\r\n\r\n return {\r\n username: formattedUserName,\r\n password: userSignInData[formConstants.password]\r\n };\r\n}\r\n\r\nexport function getFormattedUserDataForUpgradeToTicketingAccount(ssoDomain, currentUser, userDetails) {\r\n const formType = userDetails[formConstants.formType] == null ? ssoFormTypes.UpgradeToTicketingAccount : userDetails[formConstants.formType];\r\n const reCaptcha = userDetails[formConstants.reCaptcha];\r\n currentUser.title = userDetails[formConstants.title];\r\n currentUser.dateOfBirth = userDetails[formConstants.dateOfBirth] ? userDetails[formConstants.dateOfBirth].toISOString() : null;\r\n\r\n currentUser.addresses = updateMainAddress(userDetails, currentUser.addresses);\r\n\r\n currentUser.mobilePhone = getMobilePhone(userDetails);\r\n currentUser.countryCodeMobilePhonePrefix = getCountryCodeMobilePhonePrefix(userDetails);\r\n\r\n currentUser.interests = updateInterests(userDetails, currentUser.interests);\r\n\r\n return { user: currentUser, formType, reCaptcha };\r\n}\r\n\r\nfunction updateInterests(userDetails, existingInterests) {\r\n if (!existingInterests) {\r\n existingInterests = {\r\n favoritePlayer: '',\r\n venues: []\r\n };\r\n }\r\n\r\n const selectedFavoritePlayer = userDetails[formConstants.favoritePlayer] || existingInterests.favoritePlayer;\r\n const selectedVenues = userDetails[formConstants.venues] || existingInterests.venues;\r\n\r\n return {\r\n favoritePlayer: _.isEmpty(selectedFavoritePlayer) ? formMessageConstants.emptyString : selectedFavoritePlayer,\r\n venues: _.isEmpty(selectedVenues) ? [] : selectedVenues\r\n };\r\n}\r\n\r\nexport function getFormattedUserDataForUpgradeToOneClubAccount(currentUser, userDetails) {\r\n const { activeMemberships } = userDetails;\r\n\r\n const uniqueMemberships = addMembershipType(activeMemberships, MembershipTypes.OneClub);\r\n const formType = getUpgradeToOneClubFormType(userDetails);\r\n const reCaptcha = get(userDetails, formConstants.reCaptcha, undefined);\r\n\r\n // Data to upgrade from ticketing to one club\r\n currentUser.interests = updateInterests(userDetails, currentUser.interests);\r\n\r\n // Data to upgrade from default to one club\r\n currentUser.membership = uniqueMemberships;\r\n currentUser.title = userDetails[formConstants.title] || currentUser[formConstants.title];\r\n currentUser.dateOfBirth = userDetails[formConstants.dateOfBirth] ? userDetails[formConstants.dateOfBirth].toISOString() : currentUser[formConstants.dateOfBirth];\r\n currentUser.addresses = updateMainAddress(userDetails, currentUser.addresses);\r\n\r\n currentUser.mobilePhone = getMobilePhone(userDetails);\r\n currentUser.countryCodeMobilePhonePrefix = getCountryCodeMobilePhonePrefix(userDetails);\r\n\r\n currentUser.optIns.agreedToTermsAndConditions = userDetails.oneClubTermsAndServices;\r\n currentUser.optIns.agreedToPrivacyPolicy = userDetails.oneClubTermsAndServices;\r\n\r\n return { user: currentUser, formType, reCaptcha };\r\n}\r\n\r\nexport function getFormattedUserDetailsData(userRegistrationData, accountData) {\r\n const { membership } = accountData;\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n\r\n copyOfAccountData.addresses = updateMainAddress(userRegistrationData, copyOfAccountData.addresses);\r\n\r\n const optedTheOpenOffersByEmail = !userRegistrationData[formConstants.refuseOffers];\r\n const optedPartnerOffersByEmail = userRegistrationData[formConstants.acceptOffers];\r\n const preferenceCentre =\r\n getPreferenceCentreBasedOnOptIns(accountData.preferences, optedTheOpenOffersByEmail, optedPartnerOffersByEmail);\r\n\r\n const user = {\r\n membership,\r\n title: userRegistrationData[formConstants.title],\r\n email: getFormattedEmailRemoveSpaces(userRegistrationData[formConstants.emailAddress]),\r\n firstName: userRegistrationData[formConstants.firstName],\r\n lastName: userRegistrationData[formConstants.lastName],\r\n addresses: copyOfAccountData.addresses,\r\n raMemberId: copyOfAccountData.raMemberId,\r\n mobilePhone: getMobilePhone(userRegistrationData),\r\n countryCodeMobilePhonePrefix: getCountryCodeMobilePhonePrefix(userRegistrationData),\r\n currentWebsite: userRegistrationData[formConstants.ssoDomain],\r\n dateOfBirth: userRegistrationData[formConstants.dateOfBirth] ?\r\n getDateAsISOString(userRegistrationData[formConstants.dateOfBirth]) :\r\n null,\r\n interests: copyOfAccountData.interests,\r\n optIns: {\r\n optedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail,\r\n agreedToTermsAndConditions: accountData.optIns.agreedToTermsAndConditions,\r\n agreedToPrivacyPolicy: userRegistrationData[formConstants.privacyPolicy]\r\n },\r\n preferences: preferenceCentre,\r\n };\r\n\r\n return { user };\r\n}\r\n\r\nexport function getFormattedUserSignInDetailsData(lastLoginDate, lastLoginDevice, lastLoginPlatform) {\r\n return { LastLogInDate: lastLoginDate, LastLogInDevice: lastLoginDevice, LastLogInPlatform: lastLoginPlatform };\r\n}\r\n\r\nexport function getBallotFormattedUserDetailsData(userRegistrationData, accountData) {\r\n const { membership, email } = accountData;\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n const formType = userRegistrationData[formConstants.formType] == null ? ssoFormTypes.BallotSummaryForm : userRegistrationData[formConstants.formType];\r\n const reCaptcha = userRegistrationData[formConstants.reCaptcha];\r\n copyOfAccountData.addresses = updateMainAddress(userRegistrationData, copyOfAccountData.addresses);\r\n\r\n const optedTheOpenOffersByEmail = !userRegistrationData[formConstants.refuseOffers];\r\n const optedPartnerOffersByEmail = userRegistrationData[formConstants.acceptOffers];\r\n const preferenceCentre =\r\n getPreferenceCentreBasedOnOptIns(accountData.preferences, optedTheOpenOffersByEmail, optedPartnerOffersByEmail);\r\n\r\n const activeMemberships = getActiveMemberships(membership);\r\n let uniqueMemberships = addMembershipType(activeMemberships, MembershipTypes.OneClub);\r\n\r\n if (userRegistrationData.mastercard) {\r\n uniqueMemberships = addMembershipType(activeMemberships, MembershipTypes.OneClubAdvantage);\r\n }\r\n\r\n const user = {\r\n membership: uniqueMemberships,\r\n title: getValueOrDefault(userRegistrationData[formConstants.title]),\r\n email: email.toLowerCase(),\r\n firstName: userRegistrationData[formConstants.firstName],\r\n lastName: userRegistrationData[formConstants.lastName],\r\n addresses: copyOfAccountData.addresses,\r\n raMemberId: copyOfAccountData.raMemberId,\r\n mobilePhone: getMobilePhone(userRegistrationData),\r\n countryCodeMobilePhonePrefix: getCountryCodeMobilePhonePrefix(userRegistrationData),\r\n currentWebsite: userRegistrationData[formConstants.ssoDomain],\r\n dateOfBirth: userRegistrationData[formConstants.dateOfBirth] ?\r\n getDateAsISOString(userRegistrationData[formConstants.dateOfBirth]) :\r\n null,\r\n interests: copyOfAccountData.interests,\r\n optIns: {\r\n optedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail,\r\n agreedToTermsAndConditions: userRegistrationData[formConstants.oneClubTermsAndServices],\r\n agreedToPrivacyPolicy: userRegistrationData[formConstants.oneClubTermsAndServices]\r\n },\r\n preferences: preferenceCentre,\r\n };\r\n\r\n return { formType, reCaptcha, user };\r\n}\r\n\r\nexport function getRaMembersFormattedUserDetailsData(userRegistrationData, accountData) {\r\n const { membership, email } = accountData;\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n\r\n copyOfAccountData.addresses = updateMainAddress(userRegistrationData, copyOfAccountData.addresses);\r\n\r\n const optedTheOpenOffersByEmail = !userRegistrationData[formConstants.refuseOffers];\r\n const optedPartnerOffersByEmail = userRegistrationData[formConstants.acceptOffers];\r\n const preferenceCentre =\r\n getPreferenceCentreBasedOnOptIns(accountData.preferences, optedTheOpenOffersByEmail, optedPartnerOffersByEmail);\r\n\r\n const activeMemberships = getActiveMemberships(membership);\r\n const uniqueMemberships = addMembershipType(activeMemberships, MembershipTypes.OneClub);\r\n\r\n const user = {\r\n membership: uniqueMemberships,\r\n title: getValueOrDefault(userRegistrationData[formConstants.title]),\r\n email: email.toLowerCase(),\r\n firstName: userRegistrationData[formConstants.firstName],\r\n lastName: userRegistrationData[formConstants.lastName],\r\n addresses: copyOfAccountData.addresses,\r\n raMemberId: userRegistrationData.raMemberId,\r\n mobilePhone: getMobilePhone(userRegistrationData),\r\n countryCodeMobilePhonePrefix: getCountryCodeMobilePhonePrefix(userRegistrationData),\r\n currentWebsite: userRegistrationData[formConstants.ssoDomain],\r\n dateOfBirth: userRegistrationData[formConstants.dateOfBirth] ?\r\n getDateAsISOString(userRegistrationData[formConstants.dateOfBirth]) :\r\n null,\r\n interests: copyOfAccountData.interests,\r\n optIns: {\r\n optedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail,\r\n agreedToTermsAndConditions: userRegistrationData[formConstants.oneClubTermsAndServices],\r\n agreedToPrivacyPolicy: userRegistrationData[formConstants.oneClubTermsAndServices]\r\n },\r\n preferences: preferenceCentre,\r\n };\r\n\r\n return { user };\r\n}\r\n\r\nfunction getValueOrDefault(title) {\r\n if (isEmpty(title.defaultValue)) { return title; }\r\n\r\n return title.defaultValue;\r\n}\r\n\r\nexport function getFormattedJoinTheOneClubData(userRegistrationData, accountData) {\r\n const { membership, becomeOneClubMember } = userRegistrationData;\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n const activeMemberships = getActiveMemberships(membership);\r\n let isOneClubMember = membership.includes(MembershipTypes.OneClub);\r\n\r\n copyOfAccountData.addresses = updateMainAddressToJoinOneClub(userRegistrationData, copyOfAccountData.addresses);\r\n\r\n const user = {\r\n membership,\r\n title: userRegistrationData[formConstants.title],\r\n email: getFormattedEmailRemoveSpaces(accountData[formConstants.email]),\r\n firstName: accountData[formConstants.firstName],\r\n lastName: accountData[formConstants.lastName],\r\n addresses: copyOfAccountData.addresses,\r\n raMemberId: accountData.raMemberId,\r\n mobilePhone: accountData.mobilePhone,\r\n countryCodeMobilePhonePrefix: accountData.countryCodeMobilePhonePrefix,\r\n dateOfBirth: userRegistrationData[formConstants.dateOfBirth] ?\r\n getDateAsISOString(userRegistrationData[formConstants.dateOfBirth]) :\r\n accountData.dateOfBirth,\r\n optIns: {\r\n optedTheOpenOffersByEmail: accountData.optIns.optedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail: accountData.optIns.optedPartnerOffersByEmail,\r\n agreedToTermsAndConditions: userRegistrationData[formConstants.oneClubTermsAndServices],\r\n agreedToPrivacyPolicy: userRegistrationData[formConstants.oneClubTermsAndServices] === true ? userRegistrationData[formConstants.oneClubTermsAndServices] : accountData.optIns.agreedToPrivacyPolicy\r\n },\r\n preferences: accountData.preferences\r\n };\r\n\r\n if (!becomeOneClubMember && isOneClubMember) {\r\n isOneClubMember = false;\r\n const oneClubIndex = activeMemberships.indexOf(MembershipTypes.OneClub);\r\n activeMemberships.splice(oneClubIndex, 1);\r\n user.membership = activeMemberships.join(';');\r\n }\r\n\r\n if (becomeOneClubMember && !isOneClubMember) {\r\n isOneClubMember = true;\r\n activeMemberships.push(MembershipTypes.OneClub);\r\n user.membership = activeMemberships.join(';');\r\n }\r\n\r\n user.interests = updateInterests(userRegistrationData, user.interests);\r\n\r\n return { user };\r\n}\r\n\r\nfunction getActiveMemberships(membership) {\r\n return membership.split(';');\r\n}\r\n\r\nexport function getFormattedNotificationSettingsData(userRegistrationData, accountData) {\r\n const channels = getChannelInterests(userRegistrationData);\r\n\r\n const optedTheOpenOffersByEmail = getOptInBasedOnChannels(accountData.optIns.optedTheOpenOffersByEmail, channels);\r\n const optedPartnerOffersByEmail = getOptInPartnersBasedOnChannels(accountData.optIns.optedPartnerOffersByEmail, channels);\r\n\r\n const user = {\r\n optIns: {\r\n optedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail\r\n },\r\n preferences: {\r\n championships: getChampionshipInterests(userRegistrationData),\r\n channels,\r\n interests: getUserInterests(userRegistrationData)\r\n }\r\n };\r\n\r\n return user;\r\n}\r\n\r\nfunction getOptInBasedOnChannels(optInValue, channels) {\r\n let value = false;\r\n\r\n Object.keys(channels).forEach((key) => {\r\n if (channels[key]) value = true;\r\n });\r\n\r\n return value;\r\n}\r\n\r\nfunction getOptInPartnersBasedOnChannels(optInValue, channels) {\r\n let value = false;\r\n\r\n Object.keys(channels).forEach((key) => {\r\n if (channels[key]) { value = optInValue; }\r\n });\r\n\r\n return value;\r\n}\r\n\r\nfunction getDefaultChampionships(userRegistrationData) {\r\n const { championshipSection } = userRegistrationData.ssoEmailNotificationSettingsFields;\r\n const { choices } = championshipSection;\r\n\r\n return choices.map((element) => {\r\n return {\r\n id: element.id,\r\n value: true\r\n };\r\n });\r\n}\r\n\r\nfunction getDefaultInterests(userRegistrationData) {\r\n const { interestsSection } = userRegistrationData.ssoEmailNotificationSettingsFields;\r\n const { choices } = interestsSection;\r\n\r\n const obj = {};\r\n\r\n choices.forEach((element) => {\r\n obj[element.id] = true;\r\n });\r\n\r\n return obj;\r\n}\r\n\r\nfunction getChampionshipInterests(userRegistrationData) {\r\n const { championshipSection } = userRegistrationData;\r\n const { choices, defaultValue } = userRegistrationData.formData.championshipSection;\r\n\r\n return choices.map((element) => {\r\n return {\r\n Id: element.id,\r\n Value: isInSelection(element.id, championshipSection, defaultValue)\r\n };\r\n });\r\n}\r\n\r\nfunction isInSelection(id, array, defaultValue) {\r\n let selectedValue = [];\r\n\r\n if (array != null) { selectedValue = array; } else {\r\n selectedValue = defaultValue;\r\n }\r\n\r\n if (selectedValue == null) { return false; }\r\n\r\n const item = selectedValue.find((o) => o.toUpperCase() === id.toUpperCase());\r\n\r\n return !(item == null);\r\n}\r\n\r\nfunction getChannelInterests(userRegistrationData) {\r\n const { channelSection } = userRegistrationData;\r\n const { choices, defaultValue } = userRegistrationData.formData.channelSection;\r\n\r\n const obj = {};\r\n\r\n choices.forEach((element) => {\r\n obj[element.id] = isInSelection(element.id, channelSection, defaultValue);\r\n });\r\n\r\n return obj;\r\n}\r\n\r\nfunction getUserInterests(userRegistrationData) {\r\n const { interestSection } = userRegistrationData;\r\n const { choices, defaultValue } = userRegistrationData.formData.interestSection;\r\n\r\n const obj = {};\r\n\r\n choices.forEach((element) => {\r\n obj[element.id] = isInSelection(element.id, interestSection, defaultValue);\r\n });\r\n\r\n return obj;\r\n}\r\n\r\nfunction getPreferenceCentreBasedOnOptIns(preferences, optedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail) {\r\n if (optedPartnerOffersByEmail) { return getPreferencesForOptIn(preferences); }\r\n\r\n if (optedTheOpenOffersByEmail) { return preferences; }\r\n\r\n if (preferences.channels == null) { return preferences; }\r\n\r\n preferences = getPreferencesForOptOut(preferences);\r\n\r\n return preferences;\r\n}\r\n\r\nfunction getPreferencesForOptOut(preferences) {\r\n Object.keys(preferences.channels).forEach((key) => {\r\n if (preferences.channels[key] === true) { preferences.channels[key] = false; }\r\n });\r\n\r\n return preferences;\r\n}\r\n\r\nfunction getPreferencesForOptIn(preferences) {\r\n Object.keys(preferences.channels).forEach((key) => {\r\n preferences.channels[key] = true;\r\n });\r\n\r\n return preferences;\r\n}\r\n\r\nfunction updateMainAddress(userRegistrationData, addresses) {\r\n if (isEmpty(addresses)) {\r\n addresses = [];\r\n }\r\n\r\n let mainAddress = addresses.find((address) => address.main);\r\n const isNewAddress = isEmpty(mainAddress);\r\n const mainAddressIndex = isNewAddress ? 0 : getAddressIndex(mainAddress, addresses);\r\n\r\n mainAddress = {\r\n addressLine1: userRegistrationData[formConstants.addressLine1],\r\n addressLine2: userRegistrationData[formConstants.addressLine2],\r\n addressLine3: userRegistrationData[formConstants.addressLine3],\r\n postcode: userRegistrationData[formConstants.postcode],\r\n city: userRegistrationData[formConstants.city],\r\n country: userRegistrationData[formConstants.country],\r\n county: userRegistrationData[formConstants.county],\r\n state: userRegistrationData[formConstants.state],\r\n main: isNewAddress ? true : mainAddress.main,\r\n shippingAddress: isNewAddress ? true : mainAddress.shippingAddress,\r\n billingAddress: isNewAddress ? true : mainAddress.billingAddress\r\n };\r\n\r\n addresses[mainAddressIndex] = mainAddress;\r\n return addresses;\r\n}\r\n\r\nfunction updateMainAddressToJoinOneClub(userRegistrationData, addresses) {\r\n if (isEmpty(addresses)) {\r\n addresses = [];\r\n }\r\n\r\n let mainAddress = addresses.find((address) => address.main);\r\n const isNewAddress = isEmpty(mainAddress);\r\n const mainAddressIndex = isNewAddress ? 0 : getAddressIndex(mainAddress, addresses);\r\n mainAddress = isNewAddress ? {} : mainAddress;\r\n\r\n mainAddress = {\r\n addressLine1: mainAddress[formConstants.addressLine1],\r\n addressLine2: mainAddress[formConstants.addressLine2],\r\n addressLine3: mainAddress[formConstants.addressLine3],\r\n postcode: userRegistrationData[formConstants.postcode],\r\n city: mainAddress[formConstants.city],\r\n country: userRegistrationData[formConstants.country],\r\n county: userRegistrationData[formConstants.county],\r\n state: userRegistrationData[formConstants.state],\r\n main: isNewAddress ? true : mainAddress.main,\r\n shippingAddress: isNewAddress ? true : mainAddress.shippingAddress,\r\n billingAddress: isNewAddress ? true : mainAddress.billingAddress\r\n };\r\n\r\n addresses[mainAddressIndex] = mainAddress;\r\n return addresses;\r\n}\r\n\r\nfunction getAddressIndex(addressForFind, addresses) {\r\n const addressForFindJSON = JSON.stringify(addressForFind);\r\n let addressIndex = -1;\r\n\r\n if (isEmpty(addresses)) {\r\n return -1;\r\n }\r\n\r\n addresses.forEach((address, index) => {\r\n if (addressForFindJSON === JSON.stringify(address)) {\r\n addressIndex = index;\r\n }\r\n });\r\n\r\n return addressIndex;\r\n}\r\n\r\nexport function getFormattedOrders(orders) {\r\n return orders.map((order) => {\r\n if (isEmpty(order.lastUpdate)) {\r\n order.formattedLastUpdate = formMessageConstants.emptyString;\r\n return order;\r\n }\r\n const lastUpdateDate = createDateFromExisting(order.lastUpdate);\r\n order.formattedLastUpdate = getFormattedDate(lastUpdateDate);\r\n order.formattedFileAmount = getFormattedMonetaryAmount(order.fileAmount);\r\n order.orderTypeIndex = orderType[order.orderType];\r\n order.fileStateIndex = fileState[order.status];\r\n return order;\r\n });\r\n}\r\n\r\nexport function getFormattedHomePageTicketsData(ticketsData, ssoDomain) {\r\n ticketsData.actionItems = isEmpty(ticketsData.actionItems) ? [] : ticketsData.actionItems.map((actionItem) => {\r\n if (ssoDomain === domainConstants.theOpen &&\r\n orderType[actionItem.orderType] === orderType.SALE &&\r\n fileState[actionItem.fileState] === fileState.IN_RESERVATION) {\r\n actionItem.orderTypeIndex = orderType.RESERVATION;\r\n } else {\r\n actionItem.orderTypeIndex = orderType[actionItem.orderType];\r\n }\r\n return actionItem;\r\n });\r\n\r\n if (_.isEmpty(ticketsData.lastOrder)) {\r\n ticketsData.lastOrder = {\r\n orderType: formMessageConstants.defaultNumberValue,\r\n fileStateIndex: formMessageConstants.defaultNumberValue,\r\n formattedFileAmount: formMessageConstants.defaultNumberValue\r\n };\r\n }\r\n\r\n ticketsData.lastOrder.orderTypeIndex = orderType[ticketsData.lastOrder.orderType];\r\n ticketsData.lastOrder.fileStateIndex = fileState[ticketsData.lastOrder.status];\r\n ticketsData.lastOrder.formattedFileAmount = getFormattedMonetaryAmount(ticketsData.lastOrder.fileAmount);\r\n return ticketsData;\r\n}\r\n\r\nexport function getFormattedOrderDetails(orderDetails) {\r\n orderDetails.formattedFileAmount = getFormattedMonetaryAmount(orderDetails.fileAmount);\r\n orderDetails.orderTypeIndex = orderType[orderDetails.orderType];\r\n\r\n if (!isEmpty(orderDetails.paymentSummary)) {\r\n orderDetails.paymentSummary.formattedTotalAmountPaid = getFormattedMonetaryAmount(orderDetails.paymentSummary.totalAmountPaid);\r\n orderDetails.paymentSummary.formattedAmountInvoiced = getFormattedMonetaryAmount(orderDetails.paymentSummary.amountInvoiced);\r\n orderDetails.paymentSummary.formattedLastPaymentDate = getFormattedDate(orderDetails.paymentSummary.lastPaymentDate);\r\n orderDetails.paymentSummary.installments = orderDetails.paymentSummary.installments.map((installment) => {\r\n installment.formattedDueDate = getFormattedDate(installment.dueDate);\r\n installment.formattedAmountDue = getFormattedMonetaryAmount(installment.amountDue);\r\n installment.formattedAmountPaid = getFormattedMonetaryAmount(installment.amountPaid);\r\n return installment;\r\n });\r\n }\r\n\r\n orderDetails.delivery = isEmpty(orderDetails.delivery) ? {} : orderDetails.delivery;\r\n\r\n orderDetails.history = isEmpty(orderDetails.history) ? [] : orderDetails.history.map((currentHistory) => {\r\n currentHistory.formattedConfirmed = getFormattedMonetaryAmount(currentHistory.confirmed);\r\n currentHistory.formattedOpen = getFormattedMonetaryAmount(currentHistory.open);\r\n currentHistory.orderTypeIndex = orderType[currentHistory.orderType];\r\n return currentHistory;\r\n });\r\n\r\n orderDetails.files = isEmpty(orderDetails.files) ? [] : orderDetails.files.map((file) => {\r\n file.formattedTotalAmount = getFormattedMonetaryAmount(file.total);\r\n file.fileContentItems = file.fileContentItems.map((fileContentItem) => {\r\n fileContentItem.formattedUnitPrice = getFormattedMonetaryAmount(fileContentItem.unitPrice);\r\n fileContentItem.formattedSubTotal = getFormattedMonetaryAmount(fileContentItem.subtotal);\r\n return fileContentItem;\r\n });\r\n return file;\r\n });\r\n\r\n return orderDetails;\r\n}\r\n\r\nexport function getFormattedMonetaryAmount(amount) {\r\n const amountToFormat = amount || 0;\r\n return new Intl.NumberFormat('en', {\r\n style: 'currency',\r\n currency: currencyIsoCodes.GBP\r\n }).format(amountToFormat);\r\n}\r\n\r\nexport function getFormattedDate(date) {\r\n if (isEmpty(date)) {\r\n return formMessageConstants.emptyString;\r\n }\r\n\r\n const dateToFormat = createDateFromExisting(date);\r\n return new Intl.DateTimeFormat(formDateConstants.region, formDateConstants.options).format(dateToFormat);\r\n}\r\n\r\nexport function getFormattedVerifyEmailData(verifyEmailData) {\r\n return verifyEmailData[formConstants.verificationCode];\r\n}\r\n\r\nfunction getCountryCodeMobilePhonePrefix(data) {\r\n return data[formConstants.mobilePhone] && data[formConstants.mobilePhone].selectedCountry ? data[formConstants.mobilePhone].selectedCountry.code : formMessageConstants.emptyString;\r\n}\r\n\r\nfunction getMobilePhone(data) {\r\n return data[formConstants.mobilePhone] && data[formConstants.mobilePhone].selectedCountry && !isEmpty(data[formConstants.mobilePhone].phoneNumber) ?\r\n `${data[formConstants.mobilePhone].selectedCountry.phonePrefix}${data[formConstants.mobilePhone].phoneNumber}` : formMessageConstants.emptyString;\r\n}\r\n\r\nexport function getFormattedUserDetailsAddressesData(userDetails) {\r\n userDetails.dateOfBirth = getDateAsISOString(userDetails[formConstants.dateOfBirth]);\r\n return { user: userDetails };\r\n}\r\n\r\nexport function getFormattedEmailRemoveSpaces(email) {\r\n const value = isEmpty(email.defaultValue) ? email : email.defaultValue;\r\n\r\n const formattedEmail = value.replace(/ /g, '');\r\n\r\n return formattedEmail.toLowerCase();\r\n}\r\n\r\nexport function getFormattedSaveUserToAddressBookRequest(formData = {}, accountData = {}) {\r\n if (!hasValue(formData) || !hasValue(accountData)) {\r\n return undefined;\r\n }\r\n\r\n const { dotDigitalAddressBookData } = formData;\r\n const { email } = accountData;\r\n\r\n const formattedUserDetails = getUserDetailsForSaveToAddressBookRequest(accountData);\r\n\r\n return getSaveUserToAddressBookRequestModel(formattedUserDetails, email, dotDigitalAddressBookData);\r\n}\r\n\r\nfunction addMembershipType(activeMemberships, membershipToAdd) {\r\n if (!activeMemberships.includes(membershipToAdd)) { activeMemberships.push(membershipToAdd); }\r\n\r\n const uniqueMemberships = activeMemberships.filter((v, i) => activeMemberships.indexOf(v) === i);\r\n\r\n const newMemberships = uniqueMemberships.join(';');\r\n\r\n return newMemberships;\r\n}\r\n\r\nfunction getUserZoneInfo(registerFormData) {\r\n if (registerFormData) { return registerFormData.zoneInfo; }\r\n\r\n return null;\r\n}\r\n\r\nfunction getUpgradeToOneClubFormType(userDetails) {\r\n const { activeMemberships } = userDetails;\r\n const userDetailsFormType = get(userDetails, formConstants.formType, null);\r\n\r\n if (hasValue(activeMemberships) && isNullOrUndefined(userDetailsFormType)) {\r\n const computedFormType = userService.hasTicketingAccount(userDetails) ?\r\n ssoFormTypes.UpgradeToOneClubAccountFromTicketing :\r\n ssoFormTypes.UpgradeToOneClubAccountFromDefault;\r\n\r\n return computedFormType;\r\n }\r\n\r\n return userDetailsFormType;\r\n}\r\n","export const userDataCookieConstants = {\r\n USER_DATA_COOKIE_CHANGE_EVENT: 'userDataCookieChange',\r\n USER_DATA_COOKIE_NAME: window.appState.ssoConfig.cookieStorage.userDataCookieName\r\n};\r\n","import { Auth } from 'aws-amplify';\r\nimport { hasValue, safeParseJSON } from '../../../../../general/js/general-helpers';\r\nimport * as cookieHelper from '../../../helpers/cookie-helper';\r\nimport userService from '../../../../../general/js/user/user-service';\r\nimport { userDataCookieConstants } from './user-data-cookie-constants';\r\nimport eventBus from '../../../../../general/js/event-bus';\r\nimport { MembershipTypes } from '../../../../../general/js/utils';\r\n\r\nexport const getUserDataCookie = () => {\r\n const cookie = cookieHelper.getCookie(userDataCookieConstants.USER_DATA_COOKIE_NAME);\r\n\r\n if (!hasValue(cookie)) {\r\n return undefined;\r\n }\r\n\r\n return safeParseJSON(cookie);\r\n};\r\n\r\nexport const getIsOneClubMemberFromCookie = () => {\r\n const userData = getUserDataCookie();\r\n\r\n if (!hasValue(userData)) {\r\n return false;\r\n }\r\n\r\n return userData.isOneClubMember;\r\n};\r\n\r\nexport const updateUserDataCookie = async (emitEventBusEvent = false, bypassCache = false) => {\r\n await Auth.currentAuthenticatedUser({\r\n bypassCache\r\n })\r\n .then((user) => {\r\n updateUserDetailsCookie(user, emitEventBusEvent);\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n });\r\n};\r\n\r\nexport const updateUserDetailsCookie = (user, emitEventBusEvent = false) => {\r\n if (!hasValue(user) || !hasValue(user.attributes)) {\r\n return;\r\n }\r\n const { attributes } = user;\r\n const isOneClub = attributes['custom:Membership'].includes(MembershipTypes.OneClub);\r\n const userDataCookieValue = JSON.stringify({\r\n firstName: attributes.given_name,\r\n lastName: attributes.family_name,\r\n isSignedIn: true,\r\n isOneClubMember: isOneClub,\r\n isRandaMember: false,\r\n hasRaMemberId: !!((attributes['custom:RAMemberId'] !== null && attributes['custom:RAMemberId'] !== undefined))\r\n });\r\n\r\n userService.setUserDataCookie(userDataCookieValue);\r\n\r\n if (emitEventBusEvent) {\r\n eventBus.emit(userDataCookieConstants.USER_DATA_COOKIE_CHANGE_EVENT);\r\n }\r\n};\r\n","/* eslint-disable no-dupe-class-members */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable default-case */\r\nimport { Auth, Hub } from 'aws-amplify';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport { AmplifyClient } from 'project/amplify-client';\r\nimport Cookies from 'js-cookie';\r\nimport app from 'general/js/app';\r\nimport _ from 'lodash';\r\nimport { USER_ID, LAST_VISIT_DATE, SECUTIX_CONTACT_ID } from '../../../general/js/user/constants';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport Oauth from '../../sso/components/oauth';\r\nimport { isNullOrUndefined } from '../../../general/js/general-helpers';\r\nimport { getLastLogInData } from '../../sso/components/forms/helpers/form-helpers/sign-in-form-helpers';\r\nimport { getSSOSignInFormData, updateUserSignInDetails } from '../../sso/store/api/sign-in-form-api';\r\nimport { getFormattedUserSignInDetailsData } from '../../sso/store/actions/helpers/data-format-helper';\r\nimport {\r\n MembershipTypes, OauthQueryConstants, checkOauthFlow, setOauthSignOutReturnUrl\r\n} from '../../../general/js/utils';\r\nimport { CookieNames } from '../../../general/js/utils/cookies';\r\nimport { updateUserDetailsCookie } from '../../sso/components/utils/user-data-cookie/user-data-cookie-helpers';\r\nimport * as cookieHelper from '../../sso/helpers/cookie-helper';\r\n\r\nexport default class Account extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.isUseCognito = false;\r\n this.cookie = this.options.cookieName;\r\n this.userOrderHistoryCallbackUrl = this.options.userOrderHistoryCallbackUrl;\r\n this.ssoDomain = this.options.ssoDomain;\r\n\r\n this.init();\r\n this.checkSignIn();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [\r\n 'signInLink',\r\n 'button',\r\n 'name',\r\n 'signOut'\r\n ];\r\n }\r\n\r\n init() {\r\n this.isUseCognito = this.options.useCognito;\r\n\r\n AmplifyClient.init();\r\n\r\n this.getUserState();\r\n\r\n // This method needed for trigger hide/show tooltip\r\n this.addListener(this.refs.button, 'click', this.onUserButtonClick);\r\n\r\n this.addListener(this.refs.signOut, 'click', this.onSignOut);\r\n this.addListener(this.refs.signInLink, 'click', this.onUserButtonClick);\r\n\r\n this.addListener(document, 'keydown', this.onkeydown);\r\n this.addListener(document, 'click', this.outerClickHandle);\r\n this.addListener(document, 'touchstart', this.outerClickHandle);\r\n this.addListener(document, 'tochDataChanged', this.tochDataChangedHandle);\r\n\r\n Oauth.handleOauthSignedOut({ allowReload: false, purgeValue: true, useDefaultRedirectUri: false });\r\n\r\n if (\r\n checkOauthFlow(OauthQueryConstants.COMPLETE_FORGOT_PASSWORD) ||\r\n checkOauthFlow(OauthQueryConstants.COMPLETE_REGISTER)\r\n ) {\r\n Oauth.handleOauthCompleteFlow();\r\n }\r\n\r\n Hub.listen('auth', ({ payload: { event } }) => {\r\n switch (event) {\r\n case 'signIn':\r\n this.getUserStateCognito();\r\n break;\r\n case 'tokenRefresh':\r\n this.updateLastVisitInfo();\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n\r\n getUserState() {\r\n if (this.isUseCognito) {\r\n this.getUserStateCognito();\r\n } else {\r\n this.getUserStateSecutix();\r\n }\r\n }\r\n\r\n signInLinkShow() {\r\n this.refs.signInLink.classList.add('is-visible');\r\n this.element.classList.remove('is-signed-in');\r\n }\r\n\r\n accountinfoShow(user) {\r\n this.refs.name.forEach((name) => {\r\n name.innerHTML = user;\r\n });\r\n this.refs.button.classList.add('is-visible');\r\n this.element.classList.add('is-signed-in');\r\n\r\n this.refs.signInLink.classList.remove('is-visible');\r\n }\r\n\r\n getUserStateSecutix() {\r\n const cookieStx = Cookies.get(this.cookie);\r\n\r\n if (!cookieStx) {\r\n this.signInLinkShow();\r\n return;\r\n }\r\n\r\n const userData = JSON.parse(cookieStx);\r\n\r\n this.accountinfoShow(userData.firstName);\r\n }\r\n\r\n getUserStateCognito() {\r\n // Instead Call Identity Broker to get user details, pass the token.\r\n Auth.currentAuthenticatedUser({ bypassCache: true })\r\n .then((user) => {\r\n updateUserDetailsCookie(user);\r\n this.accountinfoShow(user.attributes.given_name);\r\n Oauth.handleOauthSignedIn({ allowReload: false, useDefaultRedirectUri: false });\r\n\r\n userService.setDataInLocalStorage(USER_ID, user.attributes.sub);\r\n cookieHelper.setCookiOnDomain(CookieNames.UserId, user.attributes.sub);\r\n\r\n const ticketingAccountId = user.attributes['custom:TicketingAccountId'];\r\n\r\n if (ticketingAccountId) {\r\n userService.setDataInLocalStorage(SECUTIX_CONTACT_ID, ticketingAccountId);\r\n }\r\n\r\n const newMembershipList = user.attributes['custom:Membership'];\r\n const showOneClubHubLink = newMembershipList.split(';').includes(MembershipTypes.OneClub);\r\n const oldMembershipList = JSON.parse(userService.getDataFromLocalStorage(CookieNames.TOCH_USER_MEMBERSHIPS));\r\n\r\n if (newMembershipList !== oldMembershipList) {\r\n userService.setTOCHUserMembershipsInLocalStorage(JSON.stringify(newMembershipList));\r\n this.updateMyOneClubLink(showOneClubHubLink);\r\n }\r\n })\r\n .catch(() => {\r\n this.signInLinkShow();\r\n });\r\n }\r\n\r\n getUserOrderHistory() {\r\n return Auth.currentAuthenticatedUser()\r\n .then(() => {\r\n userService.loadUserOrderHistory(this.userOrderHistoryCallbackUrl, this.ssoDomain);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n onSignOut = (event) => {\r\n event.preventDefault();\r\n\r\n setOauthSignOutReturnUrl();\r\n\r\n userService.signOut();\r\n\r\n userService.removeDataFromLocalStorage(SECUTIX_CONTACT_ID);\r\n userService.removeDataFromLocalStorage(USER_ID);\r\n\r\n cookieHelper.removeCookie(CookieNames.UserId);\r\n };\r\n\r\n getRedirectUrl() {\r\n if (window.location.href.includes('account/profile')) {\r\n return encodeURIComponent(window.location.origin);\r\n }\r\n\r\n return encodeURIComponent(window.location.href);\r\n }\r\n\r\n onUserButtonClick = () => {\r\n if (!this.refs.tooltip) return;\r\n\r\n if (this.refs.tooltip.classList.contains('is-visible')) {\r\n this.refs.tooltip.classList.remove('is-visible');\r\n } else {\r\n this.refs.tooltip.classList.add('is-visible');\r\n }\r\n };\r\n\r\n onkeydown = (event) => {\r\n if (event.keyCode === 27) {\r\n if (!this.refs.tooltip) return;\r\n this.refs.tooltip.classList.remove('is-visible');\r\n }\r\n };\r\n\r\n outerClickHandle = (event) => {\r\n if (\r\n (this.refs.tooltip && !this.refs.tooltip.contains(event.target)) &&\r\n (this.refs.button && !this.refs.button.contains(event.target)) &&\r\n (this.refs.signInLink && !this.refs.signInLink.contains(event.target))\r\n ) {\r\n this.refs.tooltip.classList.remove('is-visible');\r\n }\r\n };\r\n\r\n tochDataChangedHandle = (event) => {\r\n this.updateMyOneClubLink(event.detail.showOneClubHubLink);\r\n userService.setTOCHUserMembershipsInLocalStorage(JSON.stringify(event.detail.membership));\r\n };\r\n\r\n updateMyOneClubLink(showOneClubHubLink) {\r\n const oneClubHeaderElement = document.getElementById('my-one-club-link');\r\n\r\n if (isNullOrUndefined(oneClubHeaderElement)) {\r\n return;\r\n }\r\n\r\n if (showOneClubHubLink) {\r\n oneClubHeaderElement.classList.remove('hidden');\r\n } else {\r\n oneClubHeaderElement.classList.add('hidden');\r\n }\r\n }\r\n\r\n checkSignIn() {\r\n const userDataCookie = Cookies.get(app.state.userDataCookieName);\r\n if (_.isEmpty(userDataCookie)) {\r\n return;\r\n }\r\n\r\n const userData = JSON.parse(userDataCookie);\r\n if (_.isEmpty(userData)) {\r\n return;\r\n }\r\n\r\n if (!userData.isSignedIn) {\r\n return;\r\n }\r\n\r\n this.getUserOrderHistory();\r\n userService.loadTicketsInfo(this.options.userTicketsCallbackUrl);\r\n\r\n this.element.classList.add('is-signed-in');\r\n this.refs.button.classList.add('is-signed-in');\r\n this.refs.tooltip.classList.add('is-signed-in');\r\n if (!_.isEmpty(this.refs.username)) {\r\n this.refs.username.textContent += ' ' + userData.firstName;\r\n }\r\n }\r\n\r\n needsToUpdateLastVisit() {\r\n const storedLastVisitDate = userService.getDataFromLocalStorage(LAST_VISIT_DATE);\r\n if (storedLastVisitDate) {\r\n const storedDate = new Date(storedLastVisitDate);\r\n const currentDate = new Date();\r\n\r\n if (storedDate.toDateString() === currentDate.toDateString()) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n updateLastVisitInfo() {\r\n const needsUpdate = this.needsToUpdateLastVisit();\r\n\r\n if (!needsUpdate) {\r\n return;\r\n }\r\n\r\n const { lastLoginDate, lastLoginPlatform, lastLoginDevice } = getLastLogInData();\r\n getSSOSignInFormData()\r\n .then((response) => {\r\n const { lastLoggedInDataCallBackUrl } = response.data;\r\n updateUserSignInDetails(\r\n getFormattedUserSignInDetailsData(lastLoginDate, lastLoginDevice, lastLoginPlatform),\r\n lastLoggedInDataCallBackUrl\r\n ).then((updateUserResponse) => {\r\n if (updateUserResponse.hasErrors) return;\r\n userService.setDataInLocalStorage(LAST_VISIT_DATE, lastLoginDate);\r\n })\r\n .catch((updateUserError) => {\r\n console.error(updateUserError);\r\n });\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n needsToUpdateLastVisit() {\r\n const storedLastVisitDate = userService.getDataFromLocalStorage(LAST_VISIT_DATE);\r\n if (storedLastVisitDate) {\r\n const storedDate = new Date(storedLastVisitDate);\r\n const currentDate = new Date();\r\n\r\n if (storedDate.toDateString() === currentDate.toDateString()) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n updateLastVisitInfo() {\r\n const needsUpdate = this.needsToUpdateLastVisit();\r\n\r\n if (!needsUpdate) {\r\n return;\r\n }\r\n\r\n const { lastLoginDate, lastLoginPlatform, lastLoginDevice } = getLastLogInData();\r\n getSSOSignInFormData()\r\n .then((response) => {\r\n const { lastLoggedInDataCallBackUrl } = response.data;\r\n updateUserSignInDetails(\r\n getFormattedUserSignInDetailsData(lastLoginDate, lastLoginDevice, lastLoginPlatform),\r\n lastLoggedInDataCallBackUrl\r\n ).then((updateUserResponse) => {\r\n if (updateUserResponse.hasErrors) return;\r\n userService.setDataInLocalStorage(LAST_VISIT_DATE, lastLoginDate);\r\n })\r\n .catch((updateUserError) => {\r\n console.error(updateUserError);\r\n });\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n}\r\n","import UrlHelper from 'foundation/url-helper';\r\nimport ModalTriggerComponent from '../../modal/js/modal-trigger.component';\r\nimport { QueryConstants } from '../../../general/js/utils/query-constants';\r\n\r\nexport default class ModalTriggerLoginComponent extends ModalTriggerComponent {\r\n getAsyncTargetUrl() {\r\n const asyncUrl = super.getAsyncTargetUrl();\r\n const failedReturnUrlParam = this.getAttribute(this.element, 'failed-return-url-param');\r\n return UrlHelper.getUrlByParams(\r\n asyncUrl,\r\n {\r\n [failedReturnUrlParam]: UrlHelper.getUrlByParams(\r\n UrlHelper.getRelativeUrl(window.location), { [QueryConstants.SHOW_POPUP]: UrlHelper.getUrlByParams(asyncUrl, { status: 'LoginFailed' }) }\r\n )\r\n }\r\n );\r\n }\r\n}\r\n","import { Auth, Hub } from 'aws-amplify';\r\nimport { AmplifyClient } from '../../../project/amplify-client';\r\nimport BaseComponent from '../../../foundation/base-component';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport { isEmpty } from '../../sso/components/utils/obj-utils';\r\n\r\nexport default class OauthHandlerComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init = () => {\r\n AmplifyClient.init();\r\n Hub.listen('auth', ({ payload: { event } }) => {\r\n switch (event) {\r\n case 'signIn':\r\n this.handleCustomOAuthState();\r\n break;\r\n case 'customOAuthState':\r\n this.handleCustomOAuthState();\r\n break;\r\n // case 'signOut':\r\n // this.handleRedirectAfterSignOut();\r\n // break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n\r\n handleRedirectAfterSignOut() {\r\n userService.redirectAfterSignOut();\r\n }\r\n\r\n handleCustomOAuthState() {\r\n Auth.currentAuthenticatedUser({ bypassCache: true })\r\n .then(() => {\r\n const returnUrl = userService.getHostedUIReturnUrlFromSessionStorage(true);\r\n\r\n if (!isEmpty(returnUrl) && window.location.href !== returnUrl) {\r\n window.location.href = returnUrl;\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport AccountComponent from './js/account.component';\r\nimport ModalTriggerLoginComponent from './js/modal-trigger-login.component';\r\nimport SSOSignInComponent from './js/sso-sign-in.component';\r\nimport OauthHandlerComponent from './js/oauth-handler.component';\r\n\r\nComponentsFactory.getInstance().define('account', AccountComponent);\r\nComponentsFactory.getInstance().define('modal-trigger-login', ModalTriggerLoginComponent);\r\nComponentsFactory.getInstance().define('sso-sign-in', SSOSignInComponent);\r\nComponentsFactory.getInstance().define('oauth-handler', OauthHandlerComponent);\r\n","import get from 'lodash/get';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport createEvent from '../../../general/js/create-event';\r\nimport pageSpinner from '../../../general/js/page-spinner';\r\nimport { redirectTo } from '../../../general/js/utils';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\n\r\nconst INPUTS_SELECTOR = 'input, textarea, select';\r\nconst INPUTS_SELECTOR_EXCLUDED = 'input[type=button], input[type=submit], input[type=reset], input[type=hidden]';\r\n\r\nconst BIND_ATTRIBUTE = 'user-bind';\r\nconst BIND_MULTIPLE_ATTRIBUTE = 'user-bind-multiple';\r\nconst CONDITION_ATTRIBUTE = 'user-if';\r\n\r\nexport default class AccountProfileComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [];\r\n }\r\n\r\n init() {\r\n pageSpinner.show();\r\n const isLoggedInPromise = userService.isSecuTixLoggedIn();\r\n userService.getCurrentUser().then((user) => {\r\n this.setStylesProfileBlock(user);\r\n this._user = user;\r\n isLoggedInPromise.then((status) => {\r\n this._isLoggedInToSecuTix = status;\r\n this.applyModel();\r\n this.element.classList.add('is-visible');\r\n pageSpinner.hide();\r\n });\r\n }, () => {\r\n this.rejectUser();\r\n });\r\n }\r\n\r\n setStylesProfileBlock(user) {\r\n if (!user.isOneClubMember) return;\r\n this.refs.profileBlock[0].classList.add('is-one-club-member');\r\n this.refs.username.insertAdjacentHTML('afterend', '
one club member
');\r\n }\r\n\r\n rejectUser() {\r\n redirectTo(hasValue(this.options.signInUrl) ? this.options.signInUrl : '/');\r\n }\r\n\r\n isLoggedInToSecuTix() {\r\n return this._isLoggedInToSecuTix;\r\n }\r\n\r\n getModel() {\r\n const user = this._user;\r\n let optedTheOpenOffersByEmail = get(user, 'optIns.optedTheOpenOffersByEmail', true);\r\n if (optedTheOpenOffersByEmail === null) {\r\n optedTheOpenOffersByEmail = true;\r\n }\r\n\r\n return {\r\n ...user,\r\n hasTicketingAccount: userService.hasTicketingAccount(user),\r\n loggedInToSecuTix: this.isLoggedInToSecuTix(),\r\n initials: user.firstName && user.lastName ? `${user.firstName[0]}${user.lastName[0]}` : '',\r\n doNotOptedTheOpenOffersByEmail: !optedTheOpenOffersByEmail\r\n };\r\n }\r\n\r\n applyModel() {\r\n this.applyOneClubStyling();\r\n this.applyConditions();\r\n this.applyBindings();\r\n }\r\n\r\n applyConditions() {\r\n const conditionElements = [...this.element.querySelectorAll(`[${CONDITION_ATTRIBUTE}]`)];\r\n conditionElements.forEach((el) => {\r\n let cond = false;\r\n let inverse = false;\r\n\r\n let prop = el.getAttribute(CONDITION_ATTRIBUTE);\r\n if (prop) {\r\n if (prop[0] === '!') {\r\n inverse = true;\r\n prop = prop.substring(1);\r\n }\r\n cond = this.getModelValue(prop, false);\r\n }\r\n\r\n cond = inverse ? !cond : cond;\r\n if (!cond) {\r\n el.style.display = 'none';\r\n }\r\n });\r\n }\r\n\r\n applyBindings() {\r\n const bindElements = [...this.element.querySelectorAll(`[${BIND_ATTRIBUTE}]`)];\r\n const inputElements = [];\r\n const textElements = [];\r\n\r\n bindElements.forEach((element) => {\r\n if (element.matches(INPUTS_SELECTOR) && !element.matches(INPUTS_SELECTOR_EXCLUDED)) {\r\n inputElements.push(element);\r\n } else {\r\n textElements.push(element);\r\n }\r\n });\r\n\r\n this.applyInputsBindings(inputElements);\r\n this.applyTextBindings(textElements);\r\n }\r\n\r\n applyInputsBindings(elements) {\r\n elements.forEach((el) => {\r\n const prop = el.getAttribute(BIND_ATTRIBUTE);\r\n this.applyInputValue(el, this.getModelValue(prop));\r\n });\r\n }\r\n\r\n applyInputValue(input, value) {\r\n switch (input.type) {\r\n case 'checkbox':\r\n this.applyCheckboxValue(input, value);\r\n break;\r\n case 'radio':\r\n break;\r\n case 'select-multiple':\r\n break;\r\n default:\r\n input.value = value || '';\r\n }\r\n input.dispatchEvent(createEvent('change'));\r\n }\r\n\r\n applyCheckboxValue(input, value) {\r\n if (input.hasAttribute(BIND_MULTIPLE_ATTRIBUTE)) {\r\n const modelValue = value || [];\r\n const inputValue = input.value;\r\n input.checked = modelValue.includes(inputValue);\r\n } else {\r\n input.checked = value || false;\r\n }\r\n }\r\n\r\n getModelValue(prop, defaultValue) {\r\n return get(this.getModel(), prop, defaultValue);\r\n }\r\n\r\n applyTextBindings(elements) {\r\n elements.forEach((el) => {\r\n const prop = el.getAttribute(BIND_ATTRIBUTE);\r\n if (prop) {\r\n el.innerHTML = this.getModelValue(prop, '');\r\n }\r\n });\r\n }\r\n\r\n applyOneClubStyling() {\r\n const { isOneClubMember } = this.getModel();\r\n if (isOneClubMember) {\r\n this.element.classList.add(this.options.oneClubClass);\r\n }\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport AccountProfileComponent from './js/account-profile.component';\r\n\r\nComponentsFactory.getInstance().define('account-profile', AccountProfileComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport gtm from 'general/js/gtm';\r\n\r\nconst AlertBar = ({ model }) => {\r\n const onClickLink = () => {\r\n gtm.push('Alert bar', 'Read More', model.title);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {model.title}\r\n  {model.subtitle}\r\n {\r\n model.linkUrl &&\r\n \r\n {model.linkText}\r\n \r\n }\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nAlertBar.propTypes = {\r\n model: PropTypes.shape({\r\n title: PropTypes.string,\r\n subtitle: PropTypes.string,\r\n linkUrl: PropTypes.string,\r\n linkText: PropTypes.string,\r\n })\r\n};\r\n\r\nexport default AlertBar;\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport ArrayHelper from 'foundation/array-helper';\r\nimport ScoringLoader, { endpointNames } from 'general/js/loaders/scoring-loader';\r\nimport AlertBar from './alert-bar';\r\n\r\nclass AlertBarsLayout extends React.Component {\r\n componentDidMount() {\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(endpointNames.LIVE_SCANNER);\r\n }\r\n\r\n render() {\r\n const { liveScanner } = this.props;\r\n\r\n if (!liveScanner || ArrayHelper.isEmpty(liveScanner.alertBars)) return null;\r\n\r\n return liveScanner.alertBars.map((alertBar) => {\r\n return ;\r\n });\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n liveScanner: state.scoring[endpointNames.LIVE_SCANNER],\r\n});\r\n\r\nconst AlertBarsLayoutContainer = connect(\r\n mapStateToProps,\r\n null\r\n)(AlertBarsLayout);\r\n\r\nexport default AlertBarsLayoutContainer;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport AlertBarsLayout from './alert-bars-layout';\r\n\r\nclass AlertBarsComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n destroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default AlertBarsComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport AlertBarsComponent from './js/alert-bars.component';\r\n\r\nComponentsFactory.getInstance().define('alert-bars', AlertBarsComponent);\r\n","import axios from 'axios';\r\nimport Cookies from 'js-cookie';\r\nimport BaseComponent from 'foundation/base-component';\r\n\r\nconst COOKIE_MAX_AGE = 2147483647;\r\n\r\nclass AntiForgeryTokenComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n if (!this.options.endpointUrl) {\r\n throw new Error('You must provide endpointUrl');\r\n }\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.updateToken(this.getOldToken());\r\n }\r\n\r\n getOldToken() {\r\n return Cookies.get(this.options.cookieName);\r\n }\r\n\r\n updateToken(oldToken) {\r\n const url = `${this.options.endpointUrl}?oldCookieToken=${oldToken}`;\r\n\r\n axios\r\n .get(url)\r\n .then((response) => {\r\n const { formInputToken, cookieTokenValue } = response.data;\r\n\r\n this.refs.tokenInput.value = formInputToken;\r\n\r\n if (cookieTokenValue !== null) {\r\n Cookies.set(this.options.cookieName, cookieTokenValue, { expires: COOKIE_MAX_AGE, secure: true });\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default AntiForgeryTokenComponent;\r\n","//import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport AntiForgeryTokenComponent from './js/anti-forgery-token.component';\r\n\r\nComponentsFactory.getInstance().define('anti-forgery-token', AntiForgeryTokenComponent);\r\n","export const PRODUCT_TYPE_TICKET = 'Ticket';\r\nexport const PRODUCT_TYPE_HOSPITALITY = 'Hospitality';\r\nexport const PRODUCT_TYPE_PARKING = 'Parking';\r\nexport const PRODUCT_TYPE_EXTRAS = 'Extras';\r\n\r\nexport const PRODUCT_TAG_ADULT = 'Adult';\r\nexport const PRODUCT_TAG_YOUTH = 'Youth';\r\nexport const PRODUCT_TAG_JUNIOR = 'Junior';\r\nexport const PRODUCT_TAG_CAR = 'CarParking';\r\nexport const PRODUCT_TAG_MOTORCYCLE = 'MotorcycleParking';\r\nexport const PRODUCT_TAG_COACH = 'CoachParking';\r\nexport const PRODUCT_TAG_MINIBUS = 'MinibusParking';\r\nexport const PRODUCT_TAG_EXTRAS = 'Extras';\r\nexport const PRODUCT_TAG_SWING_BADGE = 'SwingBadge';\r\nexport const PRODUCT_TAG_SWING_BADGE_GUEST = 'SwingBadgeGuest';\r\nexport const PRODUCT_TAG_SWING_BADGE_ADDITIONAL_GUEST = 'SwingBadgeAdditionalGuest';\r\n\r\nexport const MAX_STANDART_TICKETS = 12;\r\nexport const MAX_STANDART_TICKETS_AVAILABLE = 16;\r\nexport const MAX_STANDART_TICKETS_JUNIOR_AVAILABLE = 4;\r\nexport const MAX_HOSPITALITY_TICKETS = 10;\r\nexport const MAX_HOSPITALITY_TICKETS_AVAILABLE = 10;\r\nexport const MAX_SWING_BADGE_AVAILABLE = 1;\r\nexport const MAX_SWING_BADGE_GUEST_AVAILABLE = 3;\r\nexport const MAX_SWING_BADGE_ADDITIONAL_GUEST_AVAILABLE = 2;\r\nexport const MAX_HOSPITALITY_TICKET_PLUS = 4;\r\nexport const MAX_HOSPITALITY_TICKET_PLUS_EXTRA = 1;\r\n\r\nexport const PRODUCT_TAG_SCORERS_PREMIUM = 'ScorersPremium';\r\nexport const PRODUCT_TAG_ENGRAVERS = 'Engravers';\r\nexport const PRODUCT_TAG_TICKET_PLUS = 'TicketPlus';\r\nexport const PRODUCT_TAG_TICKET_PLUS_EXTRA = 'TicketPlusExtra';\r\nexport const PRODUCT_SECUTIX_ID_ENGRAVERS_SUNDAY = '101322505327';\r\nexport const MAX_SCORERS_PREMIUM_TICKETS_AVAILABLE = 10;\r\n\r\nexport const HOSPITALITY_PRODUCTS = {};\r\n\r\nexport const BASKET_STORAGE_KEY = 'ticketBasket2019';\r\nexport const BALLOT_BASKET_STORAGE_KEY = 'ticketBasketBallot';\r\nexport const BASKET_DATE_CREATED_KEY = 'ticketBasket2019DateCreated';\r\nexport const BALLOT_BASKET_DATE_CREATED_KEY = 'ticketBallotBasketDateCreated';\r\nexport const BALLOT_RESERVED_PRODUCTS_STORAGE_KEY = 'ballotReservedProducts';\r\nexport const BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME = 'ballotOrdersFileNumber';\r\n// 30 days\r\nexport const BASKET_TTL_MS = 2592000000;\r\n\r\nexport const CHECKOUT_URL_KEY = 'checkoutUrl';\r\nexport const DEFAULT_BASKET = {\r\n productGroups: {},\r\n isEmpty: true\r\n};\r\n","import {\r\n MAX_HOSPITALITY_TICKETS, MAX_HOSPITALITY_TICKETS_AVAILABLE,\r\n MAX_STANDART_TICKETS, MAX_STANDART_TICKETS_AVAILABLE, MAX_STANDART_TICKETS_JUNIOR_AVAILABLE, PRODUCT_TAG_ADULT, PRODUCT_TAG_JUNIOR,\r\n PRODUCT_TAG_YOUTH, PRODUCT_TYPE_EXTRAS,\r\n PRODUCT_TYPE_HOSPITALITY,\r\n PRODUCT_TYPE_TICKET,\r\n PRODUCT_TAG_SWING_BADGE,\r\n MAX_SWING_BADGE_AVAILABLE,\r\n PRODUCT_TAG_SWING_BADGE_GUEST,\r\n PRODUCT_TAG_SWING_BADGE_ADDITIONAL_GUEST,\r\n MAX_SWING_BADGE_GUEST_AVAILABLE,\r\n MAX_SWING_BADGE_ADDITIONAL_GUEST_AVAILABLE\r\n} from './constants';\r\n\r\nexport default class ValidationHelper {\r\n static getPreparedProductsList(products) {\r\n const totalSelected = products\r\n .filter((ticket) => ticket.tag === PRODUCT_TAG_ADULT || ticket.tag === PRODUCT_TAG_YOUTH)\r\n .reduce((total, curProducts) => (curProducts.quantity ? total + curProducts.quantity : total), 0);\r\n\r\n products\r\n .sort((a, b) => a.sortOrder - b.sortOrder)\r\n .forEach((product) => {\r\n if (product.type === PRODUCT_TYPE_HOSPITALITY ||\r\n product.type === PRODUCT_TYPE_EXTRAS\r\n ) {\r\n switch (product.tag) {\r\n case PRODUCT_TAG_SWING_BADGE:\r\n product.maxQuantity = MAX_STANDART_TICKETS_AVAILABLE;\r\n product.maxAvailable = MAX_SWING_BADGE_AVAILABLE;\r\n break;\r\n case PRODUCT_TAG_SWING_BADGE_GUEST:\r\n product.maxQuantity = MAX_STANDART_TICKETS_AVAILABLE;\r\n product.maxAvailable = MAX_SWING_BADGE_GUEST_AVAILABLE;\r\n break;\r\n case PRODUCT_TAG_SWING_BADGE_ADDITIONAL_GUEST:\r\n product.maxQuantity = MAX_STANDART_TICKETS_AVAILABLE;\r\n product.maxAvailable = MAX_SWING_BADGE_ADDITIONAL_GUEST_AVAILABLE;\r\n break;\r\n default:\r\n product.maxQuantity = MAX_HOSPITALITY_TICKETS;\r\n }\r\n } else {\r\n product.maxQuantity = MAX_STANDART_TICKETS;\r\n }\r\n\r\n if (product.type === PRODUCT_TYPE_TICKET ||\r\n product.type === PRODUCT_TYPE_HOSPITALITY\r\n ) {\r\n product.maxAvailable = 0;\r\n let totalAvailable = 0;\r\n\r\n if (product.type === PRODUCT_TYPE_TICKET) {\r\n totalAvailable = MAX_STANDART_TICKETS_AVAILABLE - totalSelected - MAX_STANDART_TICKETS_JUNIOR_AVAILABLE;\r\n }\r\n\r\n if (product.type === PRODUCT_TYPE_HOSPITALITY) {\r\n totalAvailable = MAX_HOSPITALITY_TICKETS_AVAILABLE - totalSelected;\r\n }\r\n\r\n product.maxAvailable = product.quantity + totalAvailable;\r\n\r\n if (product.tag === PRODUCT_TAG_JUNIOR) {\r\n product.maxQuantity = MAX_STANDART_TICKETS_JUNIOR_AVAILABLE;\r\n product.maxAvailable = (totalSelected * 2 > MAX_STANDART_TICKETS_JUNIOR_AVAILABLE ? MAX_STANDART_TICKETS_JUNIOR_AVAILABLE : totalSelected * 2);\r\n }\r\n }\r\n });\r\n\r\n return products;\r\n }\r\n\r\n static isNeedResetJunior(updatedProductType, updatedProductTag) {\r\n return (updatedProductType === PRODUCT_TYPE_TICKET &&\r\n (updatedProductTag === PRODUCT_TAG_ADULT || updatedProductTag === PRODUCT_TAG_YOUTH)) ||\r\n (updatedProductType === PRODUCT_TYPE_EXTRAS &&\r\n (updatedProductTag === PRODUCT_TAG_SWING_BADGE));\r\n }\r\n\r\n static resetJuniorProducts(productGroups, setToZero = false) {\r\n Object.keys(productGroups).forEach((groupId) => {\r\n const basketProductGroup = productGroups[groupId];\r\n\r\n const juniorProductsList = basketProductGroup.products.filter((product) =>\r\n (product.type === PRODUCT_TYPE_TICKET &&\r\n product.tag === PRODUCT_TAG_JUNIOR) ||\r\n (product.type === PRODUCT_TYPE_EXTRAS &&\r\n product.tag === PRODUCT_TAG_SWING_BADGE_GUEST));\r\n\r\n juniorProductsList.forEach((juniorProduct) => {\r\n const basketJuniorProduct = basketProductGroup.products.find((curBasketProduct) =>\r\n curBasketProduct.type === juniorProduct.type &&\r\n curBasketProduct.tag === juniorProduct.tag);\r\n\r\n if (basketJuniorProduct) {\r\n if (setToZero) {\r\n basketJuniorProduct.quantity = 0;\r\n } else {\r\n basketJuniorProduct.quantity = 1;\r\n }\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","class ThrottleMessage {\r\n constructor() {\r\n }\r\n\r\n show() {\r\n this.throttleElement = document.querySelector('.throttle');\r\n if (this.throttleElement) {\r\n this.throttleElement.classList.add('is-shown'); \r\n }\r\n }\r\n\r\n hide() {\r\n this.throttleElement = document.querySelector('.throttle');\r\n if (this.throttleElement && this.throttleElement.classList.contains('is-shown'))\r\n {\r\n this.throttleElement.classList.remove('is-shown');\r\n } \r\n }\r\n}\r\n\r\nconst instance = new ThrottleMessage();\r\nexport default instance;","/* eslint-disable no-unused-expressions */\r\n/* eslint-disable consistent-return */\r\nimport api, { isResponseHandled } from '../api';\r\nimport app from '../app';\r\nimport { throttle, THROTTLE_TIME_INTERVAL, THROTTLE_RETRY_ATTEMPTS } from '../helpers';\r\nimport userService from '../user/user-service';\r\nimport { getOauthReturnUrl } from '../utils';\r\n\r\nimport {\r\n BASKET_STORAGE_KEY,\r\n BALLOT_BASKET_STORAGE_KEY,\r\n BASKET_DATE_CREATED_KEY,\r\n BALLOT_BASKET_DATE_CREATED_KEY,\r\n BASKET_TTL_MS,\r\n CHECKOUT_URL_KEY,\r\n DEFAULT_BASKET\r\n} from './constants';\r\n\r\nclass BasketService {\r\n constructor() {\r\n this.onBasketUpdateSubscribers = [];\r\n this.onBallotBasketUpdateSubscribers = [];\r\n this._basket = null;\r\n this._ballotbasket = null;\r\n this._dateCreated = null;\r\n this._ballotBasketDateCreated = null;\r\n }\r\n\r\n getBasketDateCreated(isConfiguredForBallot) {\r\n if (isConfiguredForBallot) {\r\n if (this._ballotBasketDateCreated === null) {\r\n const ballotBasketDateCreated = localStorage.getItem(BALLOT_BASKET_DATE_CREATED_KEY);\r\n if (ballotBasketDateCreated) {\r\n this._ballotBasketDateCreated = parseInt(ballotBasketDateCreated, 10);\r\n }\r\n }\r\n return this._ballotBasketDateCreated;\r\n }\r\n if (this._dateCreated === null) {\r\n const dateCreated = localStorage.getItem(BASKET_DATE_CREATED_KEY);\r\n if (dateCreated) {\r\n this._dateCreated = parseInt(dateCreated, 10);\r\n }\r\n }\r\n return this._dateCreated;\r\n }\r\n\r\n updateBasketDateCreated(isConfiguredForBallot) {\r\n isConfiguredForBallot ? localStorage.setItem(BALLOT_BASKET_DATE_CREATED_KEY, Date.now()) :\r\n localStorage.setItem(BASKET_DATE_CREATED_KEY, Date.now());\r\n }\r\n\r\n getBasket(isConfiguredForBallot) {\r\n if (isConfiguredForBallot) {\r\n if (this._ballotbasket === null) {\r\n const storedProductGroups = JSON.parse(localStorage.getItem(BALLOT_BASKET_STORAGE_KEY));\r\n const ballotBasketDateCreated = this.getBasketDateCreated(isConfiguredForBallot);\r\n\r\n if (storedProductGroups) this.setBasket({ productGroups: storedProductGroups }, isConfiguredForBallot);\r\n else this._ballotbasket = DEFAULT_BASKET;\r\n if (ballotBasketDateCreated && this.isBasketExpired(ballotBasketDateCreated)) this.cleanBasket(isConfiguredForBallot);\r\n }\r\n\r\n return this._ballotbasket;\r\n }\r\n if (this._basket === null) {\r\n const storedProductGroups = JSON.parse(localStorage.getItem(BASKET_STORAGE_KEY));\r\n const dateCreated = this.getBasketDateCreated(isConfiguredForBallot);\r\n\r\n if (storedProductGroups) this.setBasket({ productGroups: storedProductGroups }, isConfiguredForBallot);\r\n else this._basket = DEFAULT_BASKET;\r\n if (dateCreated && this.isBasketExpired(dateCreated)) { this.cleanBasket(isConfiguredForBallot); }\r\n }\r\n\r\n return this._basket;\r\n }\r\n\r\n setBasket(basket, isConfiguredForBallot) {\r\n if (isConfiguredForBallot) {\r\n this._ballotbasket = basket;\r\n this._ballotbasket.isEmpty = this._ballotbasket ? Object.keys(basket.productGroups).length === 0 :\r\n false;\r\n } else {\r\n this._basket = basket;\r\n this._basket.isEmpty = this._basket ? Object.keys(basket.productGroups).length === 0 :\r\n false;\r\n }\r\n }\r\n\r\n isBasketExpired(dateCreated) {\r\n return Date.now() > (dateCreated + BASKET_TTL_MS);\r\n }\r\n\r\n saveProductGroups(productGroups, isConfiguredForBallot) {\r\n if (localStorage) {\r\n const dateCreated = this.getBasketDateCreated(isConfiguredForBallot);\r\n\r\n if (!dateCreated || this.isBasketExpired(dateCreated)) this.updateBasketDateCreated(isConfiguredForBallot);\r\n\r\n (isConfiguredForBallot) ? localStorage.setItem(BALLOT_BASKET_STORAGE_KEY, JSON.stringify(productGroups)) :\r\n localStorage.setItem(BASKET_STORAGE_KEY, JSON.stringify(productGroups));\r\n\r\n this.setBasket({ productGroups }, isConfiguredForBallot);\r\n this.triggerOnBasketUpdate(isConfiguredForBallot);\r\n }\r\n }\r\n\r\n getProductGroups(isConfiguredForBallot) {\r\n return this.getBasket(isConfiguredForBallot).productGroups;\r\n }\r\n\r\n checkout(productGroups, mc) {\r\n const products = Object.keys(productGroups).reduce((result, groupId) => {\r\n const productGroup = productGroups[groupId];\r\n\r\n if (productGroup.products && productGroup.products.length > 0) {\r\n const preparedProducts = productGroup.products.map((product) => ({\r\n type: product.type,\r\n productId: product.productId,\r\n quantity: product.quantity,\r\n passId: product.passId,\r\n audienceSubcategoryId: mc && product.audienceSubcategoryIdMc ?\r\n product.audienceSubcategoryIdMc :\r\n product.audienceSubcategoryId,\r\n }));\r\n\r\n result = [...result, ...preparedProducts];\r\n }\r\n\r\n return result;\r\n }, []);\r\n\r\n return this.throttleCheckout(products);\r\n }\r\n\r\n throttleCheckout(products) {\r\n return new Promise(async (resolve, reject) => {\r\n const token = await userService.getUserAccessToken();\r\n\r\n throttle(() => api.post(app.getRequiredConfig(CHECKOUT_URL_KEY), {\r\n redirectUri: getOauthReturnUrl({ noUrlAnchor: false }),\r\n recievedBasket: products\r\n }, {\r\n headers: {\r\n 'content-type': 'application/json',\r\n authorization: `Bearer ${token}`\r\n }\r\n }), THROTTLE_TIME_INTERVAL, THROTTLE_RETRY_ATTEMPTS)\r\n .then((response) => {\r\n if (!isResponseHandled(response)) {\r\n return reject(new Error('unknown result from async data'));\r\n }\r\n\r\n resolve();\r\n }, (error) => {\r\n if (error && error.code && error.code === 429) {\r\n return reject(new Error('429'));\r\n }\r\n return reject();\r\n });\r\n });\r\n }\r\n\r\n onBasketUpdate(callback) {\r\n callback(this.getBasket(false));\r\n this.onBasketUpdateSubscribers.push(callback);\r\n\r\n return () => {\r\n this.onBasketUpdateSubscribers = this.onBasketUpdateSubscribers.filter((item) =>\r\n item !== callback);\r\n };\r\n }\r\n\r\n onBallotBasketUpdate(callback) {\r\n callback(this.getBasket(true));\r\n this.onBallotBasketUpdateSubscribers.push(callback);\r\n\r\n return () => {\r\n this.onBallotBasketUpdateSubscribers = this.onBallotBasketUpdateSubscribers.filter((item) =>\r\n item !== callback);\r\n };\r\n }\r\n\r\n triggerOnBasketUpdate(isConfiguredForBallot) {\r\n isConfiguredForBallot ? this.onBallotBasketUpdateSubscribers.forEach((cb) => cb(this.getBasket(isConfiguredForBallot))) :\r\n this.onBasketUpdateSubscribers.forEach((cb) => cb(this.getBasket(isConfiguredForBallot)));\r\n }\r\n\r\n cleanBasket(isConfiguredForBallot) {\r\n if (isConfiguredForBallot) {\r\n this._ballotbasket = DEFAULT_BASKET;\r\n if (localStorage) {\r\n localStorage.removeItem(BALLOT_BASKET_STORAGE_KEY);\r\n localStorage.removeItem(BALLOT_BASKET_DATE_CREATED_KEY);\r\n }\r\n } else {\r\n this._basket = DEFAULT_BASKET;\r\n if (localStorage) {\r\n localStorage.removeItem(BASKET_STORAGE_KEY);\r\n localStorage.removeItem(BASKET_DATE_CREATED_KEY);\r\n }\r\n }\r\n\r\n this.triggerOnBasketUpdate(isConfiguredForBallot);\r\n }\r\n}\r\n\r\nexport default new BasketService();\r\n","import React from 'react';\r\nimport Cookies from 'js-cookie';\r\nimport ValidationHelper from './validation-helper';\r\nimport pageSpinner from '../page-spinner';\r\nimport throttleMessage from '../throttle-message';\r\nimport basketService from './basket-service';\r\nimport CurrencyHelper from './currency-helper';\r\nimport { PRODUCT_TAG_TICKET_PLUS, PRODUCT_TAG_TICKET_PLUS_EXTRA, PRODUCT_TYPE_TICKET } from './constants';\r\n\r\nconst TEST_LOCALSTORAGE_KEY = 'oAQNNl0Hd@mH';\r\nconst CHECKOUT_CONFIG_COOKIE = 'checkoutConfig';\r\n\r\nexport default class BasketController extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n const basket = this.getPreparedBasket(basketService.getProductGroups(this.props.isConfiguredForBallot));\r\n this.state = {\r\n basket\r\n };\r\n\r\n this.isCheckoutInProgress = false;\r\n this.setCheckoutConfigCookies();\r\n this.onProductGroupsUpdate = this.onProductGroupsUpdate.bind(this);\r\n this.onUpdateProductQuantity = this.onUpdateProductQuantity.bind(this);\r\n this.onCheckout = this.onCheckout.bind(this);\r\n this.redirectToBasket = this.redirectToBasket.bind(this);\r\n }\r\n\r\n setCheckoutConfigCookies() {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n if (!urlParams.has('checkoutConfig')) {\r\n return;\r\n }\r\n\r\n const checkoutConfigUid = urlParams.get('checkoutConfig');\r\n const regexCookieValidation = /(\\.{2}\\/|\\.\\/|\\.{2}|\\.|\\/)/g;\r\n\r\n if (checkoutConfigUid.match(regexCookieValidation) !== null) {\r\n return;\r\n }\r\n\r\n Cookies.set(CHECKOUT_CONFIG_COOKIE, checkoutConfigUid, { secure: true });\r\n }\r\n\r\n onProductGroupsUpdate(productGroups, resetJunior = false) {\r\n this.setProductGroups(productGroups, resetJunior, true);\r\n }\r\n\r\n setProductGroups(productGroups, resetJunior, setToZero = false) {\r\n if (resetJunior) {\r\n ValidationHelper.resetJuniorProducts(productGroups, setToZero);\r\n }\r\n this.clearEmptyProductGroups(productGroups);\r\n basketService.saveProductGroups(productGroups, this.props.isConfiguredForBallot);\r\n const preparedBasket = this.getPreparedBasket(productGroups);\r\n this.setState({ basket: preparedBasket });\r\n }\r\n\r\n /**\r\n * Remove products which have zero quantity and remove empty product groups as well\r\n * @param productGroups\r\n */\r\n clearEmptyProductGroups(productGroups) {\r\n Object.values(productGroups).forEach((productGroup) => {\r\n productGroup.products = productGroup.products.filter((product) => product.quantity && product.quantity > 0);\r\n if (productGroup.products.length === 0) {\r\n delete productGroups[productGroup.id];\r\n }\r\n });\r\n }\r\n\r\n getPreparedBasket(productGroups) {\r\n let total = 0;\r\n let hasStandardTickets = false;\r\n\r\n Object.keys(productGroups).forEach((productGroupId) => {\r\n let basketProductSum = 0;\r\n // sort\r\n productGroups[productGroupId].products.sort((a, b) => a.sortOrder - b.sortOrder)\r\n .forEach((basketProduct) => {\r\n const productSum = basketProduct.price * basketProduct.quantity;\r\n // add sum to every product in basket\r\n basketProduct.sum = productSum;\r\n // calculate subtotal\r\n basketProductSum += productSum;\r\n\r\n // calculate total\r\n total += productSum;\r\n\r\n if (basketProduct.type === PRODUCT_TYPE_TICKET) {\r\n hasStandardTickets = true;\r\n }\r\n });\r\n productGroups[productGroupId].sum = basketProductSum;\r\n });\r\n\r\n const basket = {\r\n productGroups,\r\n total,\r\n };\r\n\r\n if (hasStandardTickets) {\r\n basket.totalMc = CurrencyHelper.getTotalMcFromTotal(total, this.props.masterCardDiscount);\r\n }\r\n\r\n return basket;\r\n }\r\n\r\n\r\n onUpdateProductQuantity(product, productGroup, quantity) {\r\n const basketProductGroups = this.state.basket.productGroups;\r\n\r\n // add product group to basket if it isn't there yet\r\n if (!basketProductGroups[productGroup.id]) {\r\n basketProductGroups[productGroup.id] = { ...productGroup };\r\n basketProductGroups[productGroup.id].products = [];\r\n }\r\n\r\n const basketProductGroup = basketProductGroups[productGroup.id];\r\n const basketProduct = basketProductGroup.products.find((bProduct) => bProduct.id === product.id);\r\n\r\n if (basketProduct) {\r\n if (basketProduct.tag === PRODUCT_TAG_TICKET_PLUS && quantity === 0) {\r\n const basketProductExtra = basketProductGroup.products.find((bProduct) => bProduct.tag === PRODUCT_TAG_TICKET_PLUS_EXTRA);\r\n\r\n if (basketProductExtra) {\r\n basketProductExtra.quantity = quantity;\r\n }\r\n }\r\n\r\n basketProduct.quantity = quantity;\r\n } else {\r\n // add product with the passed quantity\r\n basketProductGroups[productGroup.id].products.push({\r\n ...product,\r\n quantity\r\n });\r\n }\r\n\r\n this.setProductGroups(basketProductGroups, ValidationHelper.isNeedResetJunior(product.type, product.tag));\r\n }\r\n\r\n onCheckout(mc = false) {\r\n throttleMessage.hide();\r\n\r\n if (!this.isCheckoutInProgress) {\r\n this.isCheckoutInProgress = true;\r\n pageSpinner.show();\r\n basketService.checkout(this.state.basket.productGroups, mc)\r\n .then(() => {\r\n pageSpinner.hide();\r\n this.isCheckoutInProgress = false;\r\n }, (error) => {\r\n pageSpinner.hide();\r\n if (error.message === '429') {\r\n throttleMessage.show();\r\n }\r\n this.isCheckoutInProgress = false;\r\n }).catch(() => {\r\n pageSpinner.hide();\r\n this.isCheckoutInProgress = false;\r\n });\r\n }\r\n }\r\n\r\n redirectToBasket() {\r\n window.location = this.props.basketUrl;\r\n }\r\n\r\n isLocalStorageAvailable() {\r\n try {\r\n localStorage.setItem(TEST_LOCALSTORAGE_KEY, '1');\r\n localStorage.removeItem(TEST_LOCALSTORAGE_KEY);\r\n return true;\r\n } catch (error) {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n {\r\n this.isLocalStorageAvailable() ?\r\n this.props.render({\r\n basket: this.state.basket,\r\n onProductGroupsUpdate: this.onProductGroupsUpdate,\r\n onUpdateProductQuantity: this.onUpdateProductQuantity,\r\n onCheckout: this.props.redirectToBasketOnPay ? this.redirectToBasket : this.onCheckout\r\n }) :\r\n
\r\n Something went wrong. Sorry for the inconvenience. In case you are using the private mode for your browser, please, try to switch it off.\r\n
\r\n }\r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CurrencyHelper, { CURRENCY_RATIO, currencyIsoCodes } from '../../../general/js/basket/currency-helper';\r\nimport gtm, { ecommerceEventTypes } from '../../../general/js/gtm';\r\nimport {\r\n PRODUCT_TAG_SCORERS_PREMIUM,\r\n PRODUCT_TAG_ENGRAVERS,\r\n PRODUCT_TAG_CAR,\r\n PRODUCT_TAG_MOTORCYCLE,\r\n PRODUCT_TAG_COACH,\r\n PRODUCT_TAG_MINIBUS,\r\n HOSPITALITY_PRODUCTS\r\n} from '../../../general/js/basket/constants';\r\n\r\nexport default class BasketProduct extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onRemoveClick = this.onRemoveClick.bind(this);\r\n this.onQuantityChange = this.onQuantityChange.bind(this);\r\n this.carProductsArray = [PRODUCT_TAG_CAR, PRODUCT_TAG_MOTORCYCLE, PRODUCT_TAG_COACH, PRODUCT_TAG_MINIBUS];\r\n }\r\n\r\n onQuantityChange(e) {\r\n let quantity = parseInt(e.target.value, 10);\r\n quantity = !Number.isNaN(quantity) ? quantity : 0;\r\n\r\n const product = this.props.product;\r\n const oldQuantity = product.quantity;\r\n\r\n let eventType = '';\r\n let quantityDelta = 0;\r\n\r\n if (quantity > oldQuantity) {\r\n eventType = ecommerceEventTypes.ADD_TO_CART;\r\n quantityDelta = quantity - oldQuantity;\r\n } else if (quantity < oldQuantity) {\r\n eventType = ecommerceEventTypes.REMOVE_FROM_CART;\r\n quantityDelta = oldQuantity - quantity;\r\n }\r\n\r\n const productGroupYear = this.props.productGroup.title.split(' ')[3];\r\n const productPrice = product.price / CURRENCY_RATIO;\r\n\r\n gtm.pushEcommerceEvent(eventType, {\r\n currency: currencyIsoCodes.GBP,\r\n value: productPrice * quantityDelta,\r\n items: [\r\n {\r\n item_id: product.productId,\r\n item_name: `${product.title} ${productGroupYear}`,\r\n price: productPrice,\r\n quantity: quantityDelta\r\n }\r\n ]\r\n });\r\n\r\n this.props.onQuantityUpdate(quantity);\r\n }\r\n\r\n onRemoveClick() {\r\n const product = this.props.product;\r\n const productPrice = product.price / CURRENCY_RATIO;\r\n const productGroupYear = this.props.productGroup.title.split(' ')[3];\r\n\r\n gtm.pushEcommerceEvent(ecommerceEventTypes.REMOVE_FROM_CART, {\r\n currency: currencyIsoCodes.GBP,\r\n value: productPrice * product.quantity,\r\n items: [\r\n {\r\n item_id: product.productId,\r\n item_name: `${product.title} ${productGroupYear}`,\r\n price: productPrice,\r\n quantity: product.quantity\r\n }\r\n ]\r\n });\r\n\r\n this.props.onQuantityUpdate(0);\r\n }\r\n\r\n getProductQuantities(product) {\r\n const result = [];\r\n let startQuantity = 1;\r\n\r\n if (product.tag === PRODUCT_TAG_ENGRAVERS) {\r\n startQuantity = 2;\r\n }\r\n\r\n const hospitalityProduct = HOSPITALITY_PRODUCTS[product.tag];\r\n\r\n if (hospitalityProduct !== undefined) {\r\n if (hospitalityProduct.quantityMultiplier % 2 === 0) {\r\n startQuantity = 2;\r\n }\r\n }\r\n\r\n for (let i = startQuantity; i <= product.maxQuantity; i += startQuantity) {\r\n result.push(i);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n renderControl(product, hasBallotConfiguration) {\r\n return (\r\n !hasBallotConfiguration ?\r\n product.tag === PRODUCT_TAG_SCORERS_PREMIUM ?\r\n \r\n {\r\n {product.quantity}\r\n }\r\n \r\n :\r\n \r\n {\r\n this.getProductQuantities(product).map((quantity) =>\r\n product.maxAvailable}\r\n value={quantity}>{quantity})\r\n }\r\n \r\n\r\n :\r\n (this.carProductsArray.indexOf(product.tag) > -1) ?\r\n this.props.groupHasMoreTypesOfProducts ?\r\n
\r\n {product.quantity}\r\n
\r\n :\r\n \r\n {\r\n this.getProductQuantities(product).map((quantity) =>\r\n product.maxAvailable}\r\n value={quantity}>{quantity})\r\n }\r\n \r\n :\r\n
\r\n {product.quantity}\r\n
\r\n );\r\n }\r\n\r\n render() {\r\n const { product } = this.props;\r\n return (\r\n
\r\n
\r\n {product.title}\r\n
\r\n
\r\n {CurrencyHelper.convertToPounds(product.price)}\r\n
\r\n
\r\n Qty:\r\n {this.renderControl(product, this.props.hasBallotConfiguration)}\r\n {!this.props.hasBallotConfiguration ?\r\n \r\n remove product from basket\r\n \r\n \r\n \r\n \r\n :\r\n (this.carProductsArray.indexOf(product.tag) > -1) ?\r\n this.props.groupHasMoreTypesOfProducts ?\r\n \r\n :\r\n
\r\n
\r\n {\r\n product.price > 0 ?\r\n CurrencyHelper.convertToPounds(product.sum) :\r\n 'Free'\r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nBasketProduct.propTypes = {\r\n product: PropTypes.object.isRequired,\r\n productGroup: PropTypes.object.isRequired,\r\n onQuantityUpdate: PropTypes.func,\r\n hasBallotConfiguration: PropTypes.bool,\r\n groupHasMoreTypesOfProducts: PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CurrencyHelper from '../../../general/js/basket/currency-helper';\r\nimport BasketProduct from './basket-product';\r\nimport ValidationHelper from '../../../general/js/basket/validation-helper';\r\nimport {\r\n PRODUCT_TAG_CAR,\r\n PRODUCT_TAG_MOTORCYCLE,\r\n PRODUCT_TAG_MINIBUS,\r\n PRODUCT_TAG_COACH\r\n} from '../../../general/js/basket/constants';\r\n\r\nexport default class BasketProductGroup extends React.Component {\r\n render() {\r\n const { productGroup } = this.props;\r\n\r\n // apply validation rules\r\n const products = ValidationHelper.getPreparedProductsList(productGroup.products);\r\n const groupHasDifferentTypesOfProducts = this.existOtherProductsThanParkingInGroup(products);\r\n\r\n return (\r\n
\r\n

\r\n {productGroup.title}\r\n

\r\n {\r\n products.length > 0 ?\r\n
\r\n {products.map((product) =>\r\n
\r\n this.props.onUpdateProductQuantity(product, productGroup, quantity)}\r\n hasBallotConfiguration={this.props.hasBallotConfiguration}\r\n groupHasMoreTypesOfProducts={groupHasDifferentTypesOfProducts} />\r\n
)}\r\n
: null\r\n }\r\n
\r\n Sub-total:\r\n {CurrencyHelper.convertToPounds(productGroup.sum)}\r\n
\r\n
\r\n );\r\n }\r\n\r\n existOtherProductsThanParkingInGroup(products) {\r\n let existOtherProductsThanParking = false;\r\n products.forEach((productElement) => {\r\n if (productElement.tag !== PRODUCT_TAG_CAR &&\r\n productElement.tag !== PRODUCT_TAG_MOTORCYCLE &&\r\n productElement.tag !== PRODUCT_TAG_MINIBUS &&\r\n productElement.tag !== PRODUCT_TAG_COACH) {\r\n existOtherProductsThanParking = true;\r\n }\r\n });\r\n\r\n return existOtherProductsThanParking;\r\n }\r\n}\r\n\r\nBasketProductGroup.propTypes = {\r\n productGroup: PropTypes.object.isRequired,\r\n onUpdateProductQuantity: PropTypes.func.isRequired,\r\n hasBallotConfiguration: PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport BasketProductGroup from './basket-product-group';\r\n\r\nexport default class BasketGroups extends React.Component {\r\n render() {\r\n return (\r\n
\r\n {this.props.productGroups.map((productGroup) =>\r\n
\r\n \r\n
)}\r\n
\r\n );\r\n }\r\n}\r\n\r\nBasketGroups.propTypes = {\r\n productGroups: PropTypes.array.isRequired,\r\n onUpdateProductQuantity: PropTypes.func.isRequired,\r\n hasBallotConfiguration : PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CurrencyHelper from '../../../general/js/basket/currency-helper';\r\n\r\nexport default class BasketTotal extends React.Component {\r\n render() {\r\n return (\r\n
\r\n
\r\n Total:\r\n {CurrencyHelper.convertToPounds(this.props.basket.total)}\r\n
\r\n {'totalMc' in this.props.basket ?
\r\n \r\n Total with: \r\n {CurrencyHelper.convertToPounds(this.props.basket.totalMc)}\r\n
: null}\r\n
\r\n );\r\n }\r\n}\r\n\r\nBasketTotal.propTypes = {\r\n basket: PropTypes.object.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport parse from \"html-react-parser\";\r\nimport _ from 'lodash';\r\n\r\nfunction BulletPointList({ listItems }) {\r\n return
    \r\n {listItems.map((listItem) => {\r\n return
  • {parse(listItem)}
  • ;\r\n })}\r\n
;\r\n}\r\n\r\nBulletPointList.propTypes = {\r\n listItems: PropTypes.array.isRequired\r\n};\r\n\r\nexport default BulletPointList;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport BulletPointList from '../../../components/sso/components/common/utility/BulletPointList';\r\nimport { getMultilineText } from '../utils';\r\n\r\nfunction BasketDialogBoxContentBody({\r\n basketDialogBoxTitle,\r\n basketDialogBoxMessage,\r\n basketDialogBoxLogo\r\n}) {\r\n const basketDialogBoxMessageSplit = getMultilineText(basketDialogBoxMessage);\r\n const hasBoxTitle = basketDialogBoxTitle !== '' && basketDialogBoxTitle !== null;\r\n const hasBoxLogo = basketDialogBoxLogo !== null || basketDialogBoxLogo !== undefined;\r\n return (\r\n
\r\n {hasBoxLogo &&\r\n \r\n }\r\n {hasBoxTitle &&\r\n

{basketDialogBoxTitle}

\r\n }\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nBasketDialogBoxContentBody.propTypes = {\r\n basketDialogBoxTitle: PropTypes.string,\r\n basketDialogBoxMessage: PropTypes.string\r\n};\r\n\r\nexport default BasketDialogBoxContentBody;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { Fragment } from 'react';\r\nimport _ from 'lodash';\r\n\r\nfunction RegisterFormBanner(props) {\r\n return displayBanner(props);\r\n}\r\n\r\nconst displayBanner = (props) => {\r\n\r\n if (_.isEmpty(props) || _.isEmpty(props.formBanner))\r\n return \"\";\r\n\r\n const { bannerTitle, bannerMessage, bannerBackgroundImageSrc,\r\n displayMessageUnderImage, displayHeadingOverImage, headingColor, textColor } = props.formBanner;\r\n\r\n if (displayMessageUnderImage) {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n {displayBannerTitle(bannerTitle, headingColor)}\r\n {displayBannerMessage(bannerMessage, textColor)}\r\n
\r\n
\r\n );\r\n }\r\n\r\n if (displayHeadingOverImage) {\r\n return (\r\n \r\n
\r\n {displayBannerTitle(bannerTitle, headingColor)}\r\n
\r\n {displayBannerMessageWithCssClass(bannerMessage, textColor, false)}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n {displayBannerTitle(bannerTitle, headingColor)}\r\n {displayBannerMessage(bannerMessage, textColor)}\r\n
\r\n );\r\n}\r\n\r\nconst displayBannerMessageWithCssClass = (bannerMessage, textColor, addMarginTop) => {\r\n if (_.isEmpty(bannerMessage))\r\n return null;\r\n\r\n return
\r\n {displayBannerMessage(bannerMessage, textColor, addMarginTop)}\r\n
;\r\n}\r\n\r\nconst displayBannerMessage = (bannerMessage, textColor, addMarginTop = true) => {\r\n if (_.isEmpty(bannerMessage)) {\r\n return \"\";\r\n }\r\n\r\n const colorValue = getColor(textColor);\r\n\r\n return
;\r\n}\r\n\r\nconst displayBannerTitle = (bannerTitle, headingColor) => {\r\n if (_.isEmpty(bannerTitle))\r\n return \"\";\r\n\r\n const colorValue = getColor(headingColor);\r\n\r\n return

{bannerTitle || formMessageConstants.formBannerTitle}

;\r\n}\r\n\r\nconst getColor = (color) => {\r\n return _.isEmpty(color) ? 'black' : color;\r\n}\r\n\r\nRegisterFormBanner.propTypes = {\r\n formBanner: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default RegisterFormBanner;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ReactModal from '../../../../modal/js/react-modal';\r\nimport RegisterFormBanner from '../../forms/one-club-register/RegisterFormBanner';\r\n\r\nfunction ConfirmationModal({\r\n isOpen,\r\n children,\r\n inputText,\r\n onModalClose,\r\n onApproveClick,\r\n isApproveDanger,\r\n isApproveButtonDisabled,\r\n onCancelClick,\r\n isCancelButtonDisabled,\r\n masterCardDialogBoxBanner\r\n}) {\r\n function displayModal() {\r\n if (!isOpen) {\r\n return null;\r\n }\r\n \r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n {children}\r\n
\r\n {!isCancelButtonDisabled && \r\n \r\n {'Cancel'}\r\n \r\n \r\n \r\n \r\n }\r\n {!isApproveButtonDisabled &&\r\n \r\n \r\n {inputText}\r\n \r\n \r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
);\r\n }\r\n\r\n return displayModal();\r\n}\r\n\r\n\r\nConfirmationModal.propTypes = {\r\n isOpen: PropTypes.bool.isRequired,\r\n inputText: PropTypes.string.isRequired,\r\n onModalClose: PropTypes.func.isRequired,\r\n onApproveClick: PropTypes.func.isRequired,\r\n isApproveDanger: PropTypes.bool,\r\n isApproveButtonDisabled: PropTypes.bool.isRequired,\r\n onCancelClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default ConfirmationModal;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport BasketDialogBoxContentBody from '../../../general/js/basket/basket-dialog-box-content-body';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport ConfirmationModal from '../../sso/components/common/utility/ConfirmationModal';\r\nimport { BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME } from '../../../general/js/user/constants';\r\n\r\nexport default class BasketPayButtons extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showModal: false\r\n };\r\n this.toggleConfirmationModal = this.toggleConfirmationModal.bind(this);\r\n this.toggleCloseModal = this.toggleCloseModal.bind(this);\r\n }\r\n\r\n toggleConfirmationModal() {\r\n userService.removeDataCookie(BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME);\r\n if (this.props.showAlertBoxBeforePayment) {\r\n this.setState({ showModal: true });\r\n } else {\r\n this.setState({ showModal: false });\r\n this.props.onCheckout();\r\n }\r\n }\r\n\r\n toggleCloseModal() {\r\n this.setState({ showModal: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n \r\n
\r\n We are experiencing high volumes of traffic at the minute. Please try again.\r\n
\r\n
\r\n this.props.onCheckout()}\r\n isApproveDanger={false}\r\n isApproveButtonDisabled={false}\r\n onCancelClick={this.toggleCloseModal}\r\n isCancelButtonDisabled={true}\r\n masterCardDialogBoxBanner={this.props.dialogBoxBanner}\r\n >\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nBasketPayButtons.propTypes = {\r\n basket: PropTypes.object.isRequired,\r\n onCheckout: PropTypes.func.isRequired,\r\n showAlertBoxBeforePayment: PropTypes.bool.isRequired,\r\n dialogBoxTitle: PropTypes.string,\r\n dialogBoxMessage: PropTypes.string,\r\n dialogBoxLogo: PropTypes.string\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class BasketErrors extends React.Component {\r\n render() {\r\n return this.props.errors.length > 0 ? (\r\n
\r\n {this.props.errors.map((error, i) =>
\r\n {error.errorMessage} {error.productName ? `for ${error.productName}` : null} {error.audienceSubcategoryName ? `(${error.audienceSubcategoryName})` : null}\r\n
)}\r\n
\r\n ) : null;\r\n }\r\n}\r\n\r\nBasketErrors.propTypes = {\r\n errors: PropTypes.array.isRequired,\r\n};\r\n","import flatten from 'lodash/flatten';\r\nimport { CURRENCY_RATIO } from './currency-helper';\r\n\r\nexport default class TrackingHelper {\r\n static getBasketTotalValue = (productGroups) => {\r\n return productGroups.reduce((accumulator, productGroup) => {\r\n return accumulator + productGroup.sum / CURRENCY_RATIO;\r\n }, 0);\r\n };\r\n\r\n static getBasketProducts = (productGroups) => {\r\n return flatten(productGroups.map((productGroup) =>\r\n productGroup.products.map((product) => ({\r\n item_id: product.productId,\r\n item_name: `${product.tag} - ${productGroup.title}`,\r\n price: product.price / CURRENCY_RATIO,\r\n quantity: product.quantity\r\n }))));\r\n };\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport BasketGroups from './basket-groups';\r\nimport BasketTotal from './basket-total';\r\nimport BasketPayButtons from './basket-pay-buttons';\r\nimport BasketErrors from './basket-errors';\r\nimport gtm, { ecommerceEventTypes } from '../../../general/js/gtm';\r\nimport TrackingHelper from '../../../general/js/basket/tracking-helper';\r\nimport { CURRENCY_RATIO, currencyIsoCodes } from '../../../general/js/basket/currency-helper';\r\n\r\nexport default class Basket extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onCheckout = this.onCheckout.bind(this);\r\n }\r\n\r\n renderEmpty() {\r\n return (\r\n
Your basket is empty
\r\n );\r\n }\r\n\r\n onCheckout() {\r\n const productGroupList = this.getProductGroupList(this.props.basket.productGroups);\r\n const basketItems = TrackingHelper.getBasketProducts(productGroupList);\r\n\r\n gtm.pushEcommerceEvent(ecommerceEventTypes.BEGIN_CHECKOUT, {\r\n currency: currencyIsoCodes.GBP,\r\n value: this.props.basket.total / CURRENCY_RATIO,\r\n items: basketItems\r\n });\r\n\r\n this.props.onCheckout();\r\n }\r\n\r\n getProductGroupList(productGroups) {\r\n return Object.keys(productGroups).map((id) => productGroups[id]);\r\n }\r\n\r\n render() {\r\n const productsGroupList = this.getProductGroupList(this.props.basket.productGroups);\r\n\r\n return (\r\n
\r\n {productsGroupList.length > 0 ?\r\n \r\n \r\n \r\n \r\n \r\n : this.renderEmpty()\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nBasket.propTypes = {\r\n basket: PropTypes.object.isRequired,\r\n onUpdateProductQuantity: PropTypes.func.isRequired,\r\n onCheckout: PropTypes.func.isRequired,\r\n errors: PropTypes.array,\r\n hasBallotConfiguration: PropTypes.bool,\r\n showAlertBoxBeforePayment: PropTypes.bool,\r\n dialogBoxTitle: PropTypes.string,\r\n dialogBoxMessage: PropTypes.string,\r\n dialogBoxLogo: PropTypes.string\r\n};\r\n","import Cookies from 'js-cookie';\r\nimport {\r\n BALLOT_BASKET_STORAGE_KEY,\r\n BALLOT_RESERVED_PRODUCTS_STORAGE_KEY,\r\n BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME\r\n} from './constants';\r\n\r\nexport default class BasketProductsHelper {\r\n static setSecutixReservedProducts(secutixBallotReservedProducts) {\r\n if (localStorage) {\r\n this.getCookie(BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME) !== '' ? this.addReservedProductsToBallotProductsList(secutixBallotReservedProducts) :\r\n this.removeReservedProductsFromBallotProductsList();\r\n }\r\n }\r\n\r\n static addReservedProductsToBallotProductsList(secutixBallotReservedProducts) {\r\n if (Object.keys(secutixBallotReservedProducts).length !== 0) {\r\n const ballotBasketReservedProducts = {};\r\n\r\n secutixBallotReservedProducts.forEach((element) => {\r\n ballotBasketReservedProducts[element.id] = element;\r\n });\r\n\r\n if (localStorage.getItem(BALLOT_BASKET_STORAGE_KEY) === null) {\r\n localStorage.setItem(BALLOT_BASKET_STORAGE_KEY, JSON.stringify(ballotBasketReservedProducts));\r\n localStorage.setItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY, JSON.stringify(ballotBasketReservedProducts));\r\n } else if (localStorage.getItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY) === null) {\r\n const ballotBasket = JSON.parse(localStorage.getItem(BALLOT_BASKET_STORAGE_KEY));\r\n\r\n secutixBallotReservedProducts.forEach((element) => {\r\n if (!ballotBasket.hasOwnProperty(element.id)) {\r\n ballotBasket[element.id] = element;\r\n }\r\n });\r\n\r\n localStorage.setItem(BALLOT_BASKET_STORAGE_KEY, JSON.stringify(ballotBasket));\r\n localStorage.setItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY, JSON.stringify(ballotBasketReservedProducts));\r\n }\r\n }\r\n }\r\n\r\n static removeReservedProductsFromBallotProductsList() {\r\n if (!this.isBallotLocalStorageEmpty()) {\r\n const basketBallot = JSON.parse(localStorage.getItem(BALLOT_BASKET_STORAGE_KEY));\r\n const secutixBallotProducts = JSON.parse(localStorage.getItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY));\r\n const secutixBallotProductsList = [];\r\n\r\n for (const product in secutixBallotProducts) { secutixBallotProductsList.push(secutixBallotProducts[product]); }\r\n\r\n secutixBallotProductsList.forEach((element) => {\r\n if (basketBallot.hasOwnProperty(element.id)) {\r\n delete basketBallot[element.id];\r\n }\r\n });\r\n\r\n localStorage.removeItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY);\r\n localStorage.setItem(BALLOT_BASKET_STORAGE_KEY, JSON.stringify(basketBallot));\r\n }\r\n }\r\n\r\n static isBallotLocalStorageEmpty() {\r\n if (localStorage.getItem(BALLOT_RESERVED_PRODUCTS_STORAGE_KEY) !== null &&\r\n localStorage.getItem(BALLOT_BASKET_STORAGE_KEY) !== null) { return false; }\r\n\r\n return true;\r\n }\r\n\r\n static getCookie(cookieName) {\r\n const cookie = Cookies.get(cookieName);\r\n return cookie && cookie !== '0' ? cookie : '';\r\n }\r\n}\r\n","/* eslint-disable no-unused-expressions */\r\nimport BaseComponent from 'foundation/base-component';\r\nimport React from 'react';\r\nimport { render } from 'react-dom';\r\nimport Cookies from 'js-cookie';\r\nimport BasketController from '../../../general/js/basket/basket-controller';\r\nimport Basket from './basket';\r\nimport basketProductsHelper from '../../../general/js/basket/basket-products-helper';\r\nimport { safeParseJSON, stringToBoolean } from '../../../general/js/general-helpers';\r\n\r\nexport default class BasketComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n const {\r\n isBallotBasketType, showAlertBoxBeforePayment, dialogBoxTitle, dialogBoxLogo, secutixBallotReservedProducts\r\n } = this.options;\r\n const dialogBoxBanner = {\r\n bannerBackgroundImageSrc: this.options.bannerBackgroundImageSrc,\r\n bannerMessage: this.options.bannerMessage,\r\n bannerTitle: this.options.bannerTitle,\r\n displayHeadingOverImage: stringToBoolean(this.options.displayHeadingOverImage),\r\n displayMessageUnderImage: stringToBoolean(this.options.displayMessageUnderImage),\r\n textColor: this.options.textColor,\r\n headingColor: this.options.headingColor\r\n };\r\n const errorsCookie = Cookies.get('validationErrors');\r\n const hasBallotConfiguration = JSON.parse(isBallotBasketType.toLowerCase());\r\n const hasAlertBoxBeforePayment = JSON.parse(showAlertBoxBeforePayment.toLowerCase());\r\n const dialogBoxMessage = this.options.dialogBoxMessage.split('newline').join('\\n');\r\n\r\n errorsCookie !== undefined ? this.errors = safeParseJSON(errorsCookie) : this.errors = [];\r\n\r\n basketProductsHelper.setSecutixReservedProducts(secutixBallotReservedProducts);\r\n\r\n render(\r\n (\r\n \r\n \r\n }>\r\n \r\n ),\r\n this.element\r\n );\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport BasketComponent from './js/basket.component';\r\n\r\nComponentsFactory.getInstance().define('basket', BasketComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\nimport app from '../../../general/js/app'; \r\n\r\nexport default class BasketBuyLinksComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n const secutixConfigCookie = Cookies.get('secutixConfig');\r\n\t\tif (secutixConfigCookie !== undefined) {\r\n const secutixConfig = JSON.parse(secutixConfigCookie);\r\n if (secutixConfig !== undefined) {\r\n\t\t\t\tif (this.refs.buyticketsurl !== undefined)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(secutixConfig.buyTicketsLink === undefined || secutixConfig.buyTicketsLink === ''){\r\n\t\t\t\t\t\tthis.refs.buyticketsurl.setAttribute('style','display:none;');\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tthis.refs.buyticketsurl.setAttribute('href', secutixConfig.buyTicketsLink);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif (this.refs.buyhospitalityurl !== undefined)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(secutixConfig.buyHospitalityLink === undefined || secutixConfig.buyHospitalityLink === ''){\r\n\t\t\t\t\t\tthis.refs.buyhospitalityurl.setAttribute('style','display:none;');\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tthis.refs.buyhospitalityurl.setAttribute('href', secutixConfig.buyHospitalityLink);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n }\r\n\t\t}\r\n\t\t\r\n\t\tconst userDataCookie = Cookies.get(app.state.userDataCookieName);\r\n\t\tif (userDataCookie !== undefined) {\r\n\t\t\tconst userData = JSON.parse(userDataCookie);\r\n\r\n\t\t\tif (userData !== undefined && userData.isRandaMember !== undefined && userData.isRandaMember) \r\n\t\t\t\t{\r\n\t\t\t\t\tthis.refs.buyticketsurl.setAttribute('href', '/ramembers');\r\n\t\t\t\t}\r\n\t\t}\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport BasketBuyLinksComponent from './js/basket-buy-links.component';\r\n\r\nComponentsFactory.getInstance().define('basket-buy-links', BasketBuyLinksComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport basketService from '../../../general/js/basket/basket-service';\r\n\r\nexport default class BasketCleanerComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n basketService.cleanBasket(true);\r\n basketService.cleanBasket(false);\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport BasketCleanerComponent from './js/basket-cleaner.component';\r\n\r\nComponentsFactory.getInstance().define('basket-cleaner', BasketCleanerComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\nimport basketService from '../../../general/js/basket/basket-service';\r\nimport { BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME } from '../../../general/js/basket/constants';\r\n\r\nexport default class BasketIcon extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n this.onBasketStateUpdate = this.onBasketStateUpdate.bind(this);\r\n this.onBallotBasketStateUpdate = this.onBallotBasketStateUpdate.bind(this);\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [\r\n 'basketLink',\r\n 'basketTooltip'\r\n ];\r\n }\r\n\r\n init() {\r\n this.basketIsEmpty = true;\r\n this.ballotBasketIsEmpty = true;\r\n this.ballotBasketUrl = '';\r\n this.basketUrl = '';\r\n\r\n this.options.forEach((basketItem) => {\r\n basketItem.isBallotBasket ?\r\n this.ballotBasketUrl = basketItem.basketLink.url :\r\n this.basketUrl = basketItem.basketLink.url;\r\n });\r\n\r\n if (this.getCookie(BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME) !== '' &&\r\n this.ballotBasketUrl !== '') { this.ballotBasketIsEmpty = false; }\r\n\r\n basketService.onBasketUpdate(this.onBasketStateUpdate);\r\n basketService.onBallotBasketUpdate(this.onBallotBasketStateUpdate);\r\n }\r\n\r\n onBasketStateUpdate = (basket) => {\r\n if (basket === null) return;\r\n\r\n basket.isEmpty ? this.basketIsEmpty = true : this.basketIsEmpty = false;\r\n\r\n if (this.basketIsEmpty && this.ballotBasketIsEmpty) { this.element.classList.remove('is-filled'); }\r\n\r\n this.removeListeners();\r\n this.addListeners();\r\n };\r\n\r\n onBallotBasketStateUpdate = (basket) => {\r\n if (basket === null && this.getCookie(BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME) === '') return;\r\n\r\n if (this.ballotBasketUrl !== '') {\r\n basket.isEmpty && this.getCookie(BALLOT_ORDER_FILE_NUMBER_COOKIE_NAME) === '' ? this.ballotBasketIsEmpty = true : this.ballotBasketIsEmpty = false;\r\n }\r\n\r\n if (this.basketIsEmpty && this.ballotBasketIsEmpty) { this.element.classList.remove('is-filled'); }\r\n\r\n this.removeListeners();\r\n this.addListeners();\r\n };\r\n\r\n addListeners() {\r\n if (this.basketIsEmpty && !this.ballotBasketIsEmpty) {\r\n this.element.classList.add('is-filled');\r\n this.addListener(this.refs.basketLink, 'click', () => { location.href = this.ballotBasketUrl; });\r\n }\r\n if (!this.basketIsEmpty && this.ballotBasketIsEmpty) {\r\n this.element.classList.add('is-filled');\r\n this.addListener(this.refs.basketLink, 'click', () => { location.href = this.basketUrl; });\r\n }\r\n if (!this.basketIsEmpty && !this.ballotBasketIsEmpty) {\r\n this.element.classList.add('is-filled');\r\n\r\n this.addListener(this.refs.basketLink, 'click', this.onUserButtonClick);\r\n this.addListener(document, 'keydown', this.onkeydown);\r\n this.addListener(document, 'click', this.outerClickHandle);\r\n this.addListener(document, 'touchstart', this.outerClickHandle);\r\n }\r\n }\r\n\r\n onUserButtonClick = () => {\r\n if (!this.refs.basketTooltip) return;\r\n if (this.refs.basketTooltip.classList.contains('is-visible')) { this.refs.basketTooltip.classList.remove('is-visible'); } else { this.refs.basketTooltip.classList.add('is-visible'); }\r\n };\r\n\r\n onkeydown = (event) => {\r\n if (event.keyCode === 27) {\r\n if (!this.refs.basketTooltip) return;\r\n this.refs.basketTooltip.classList.remove('is-visible');\r\n }\r\n };\r\n\r\n outerClickHandle = (event) => {\r\n if ((this.refs.basketTooltip && !this.refs.basketTooltip.contains(event.target)) &&\r\n (this.refs.basketLink && !this.refs.basketLink.contains(event.target))) { this.refs.basketTooltip.classList.remove('is-visible'); }\r\n };\r\n\r\n getCookie(cookieName) {\r\n const cookie = Cookies.get(cookieName);\r\n return cookie && cookie !== '0' ? cookie : '';\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport BasketIconComponent from './js/basket-icon.componenet';\r\n\r\nComponentsFactory.getInstance().define('basket-icon', BasketIconComponent);\r\n","export const carouselEvents = Object.freeze({\r\n NEXT_SLIDE_CLICK: 'carousel:next-slide',\r\n PREV_SLIDE_CLICK: 'carousel:prev-slide'\r\n});\r\n","import BaseComponent from 'foundation/base-component';\r\nimport app from 'general/js/app';\r\n\r\nconst DEFAULT_GROUP_NAME = 'Default';\r\n\r\nclass ContextualManagerComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.state = {\r\n minToShowCount: this.options.minToShowCount || 0,\r\n mainCount: 0,\r\n replacementCount: this.getReplacementCount(),\r\n groups: {}\r\n };\r\n\r\n if (!app.isEditMode) {\r\n this.init();\r\n }\r\n }\r\n\r\n init() {\r\n if (Array.isArray(this.refs.main)) {\r\n this.splitMainToGroups();\r\n this.state.mainCount = this.getMainCount();\r\n this.showMain();\r\n }\r\n\r\n if (this.state.mainCount < this.options.minToShowCount) {\r\n this.showReplacement();\r\n }\r\n }\r\n\r\n splitMainToGroups() {\r\n this.refs.main.forEach((ref) => {\r\n const groupName = this.getAttribute(ref, 'group');\r\n\r\n if (!groupName) return;\r\n\r\n if (!this.state.groups[groupName]) {\r\n this.state.groups[groupName] = [];\r\n }\r\n\r\n this.state.groups[groupName].push(ref);\r\n });\r\n }\r\n\r\n getMainCount() {\r\n const totalRefs = this.refs.main.length;\r\n const totalRefsInGroups = Object.keys(this.state.groups).reduce((prev, groupName) => {\r\n if (groupName === DEFAULT_GROUP_NAME) return prev;\r\n //eslint-disable-next-line no-return-assign\r\n return prev += this.state.groups[groupName].length;\r\n }, 0);\r\n const totalGroups = Object.keys(this.state.groups).length - 1;\r\n\r\n return totalRefs - totalRefsInGroups + totalGroups;\r\n }\r\n\r\n getReplacementCount() {\r\n return (this.refs.replacement && this.refs.replacement.length) || 0;\r\n }\r\n\r\n // this is bad but there is no way to set ref on a wrapper in Sitecore way :(\r\n makeVisible(ref) {\r\n const hiddenWrapper = ref.closest('.is-hidden');\r\n\r\n if (hiddenWrapper) {\r\n hiddenWrapper.classList.remove('is-hidden');\r\n }\r\n }\r\n\r\n showRandomInGroup(group) {\r\n const randomIndex = Math.round(Math.random() * (group.length - 1));\r\n this.makeVisible(group[randomIndex]);\r\n }\r\n\r\n showMain() {\r\n Object.keys(this.state.groups).forEach((groupName) => {\r\n const group = this.state.groups[groupName];\r\n\r\n if (groupName === DEFAULT_GROUP_NAME) {\r\n group.forEach((ref) => this.makeVisible(ref));\r\n } else {\r\n this.showRandomInGroup(group);\r\n }\r\n });\r\n }\r\n\r\n showReplacement() {\r\n if (!Array.isArray(this.refs.replacement)) return;\r\n\r\n let replacementStack = [...this.refs.replacement];\r\n let diff = this.state.minToShowCount - this.state.mainCount;\r\n\r\n while (replacementStack.length > 0 && diff > 0) {\r\n const randomIndex = Math.round(Math.random() * (replacementStack.length - 1));\r\n const replacementRef = replacementStack[randomIndex];\r\n\r\n replacementStack = replacementStack.filter((ref, index) => index !== randomIndex);\r\n\r\n if (replacementRef) {\r\n this.makeVisible(replacementRef);\r\n }\r\n diff--;\r\n }\r\n }\r\n}\r\n\r\nexport default ContextualManagerComponent;\r\n","//import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport ContextualManagerComponent from './js/contextual-manager.component';\r\n\r\nComponentsFactory.getInstance().define('contextual-manager', ContextualManagerComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport get from 'lodash/get';\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport ScoringLoader, { endpointNames } from 'general/js/loaders/scoring-loader';\r\nimport { getRoundById } from 'general/js/helpers';\r\nimport { LiveStatsCardContainer, statsTypes, getStatsCards } from 'components/live-stats';\r\nimport { BlockPlaceholder } from 'components/block-placeholder';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\n\r\nclass ContextualStatsLayout extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const cardType = this.getType();\r\n const statsCards = getStatsCards();\r\n const filteredCards = statsCards.filter((statsCard) => statsCard.type === cardType);\r\n\r\n this.card = this.getRadomCard(filteredCards);\r\n }\r\n\r\n componentDidMount() {\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n ScoringLoader.subscribe(endpointNames.STATISTICS);\r\n ScoringLoader.subscribe(endpointNames.COURSE);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(endpointNames.LIVE_SCANNER);\r\n ScoringLoader.unsubscribe(endpointNames.STATISTICS);\r\n ScoringLoader.unsubscribe(endpointNames.COURSE);\r\n }\r\n\r\n getRound() {\r\n const activeRoundId = get(this.props, 'liveScanner.activeRoundId');\r\n\r\n return getRoundById(this.props.scoringStats.rounds, activeRoundId);\r\n }\r\n\r\n getRandomType() {\r\n const statsTypesList = Object.keys(statsTypes);\r\n const len = statsTypesList.length;\r\n const randomIndex = Math.round(Math.random() * (len - 1));\r\n const key = statsTypesList[randomIndex];\r\n\r\n return statsTypes[key];\r\n }\r\n\r\n getType() {\r\n const { type, players, holes } = this.props.options;\r\n\r\n if (players.length && holes.length) {\r\n return this.getRandomType();\r\n }\r\n\r\n if (players.length) {\r\n return statsTypes.PLAYER;\r\n }\r\n\r\n if (holes.length) {\r\n return statsTypes.HOLE;\r\n }\r\n\r\n return type || this.getRandomType();\r\n }\r\n\r\n getRadomCard(list) {\r\n return list[Math.round(Math.random() * (list.length - 1))];\r\n }\r\n\r\n getSitecoreData(statsName) {\r\n return get(this.props.scoringStats, `sitecoreData[${statsName}]`, null);\r\n }\r\n\r\n getStats(card) {\r\n const { players, holes } = this.props.options;\r\n const round = this.getRound();\r\n const stats = get(round, `[${card.name}].stats`, []);\r\n\r\n // override state\r\n if (players.length || holes.length) {\r\n return card.type === statsTypes.PLAYER ?\r\n this.getStatsByIds(stats, players, 'playerId') :\r\n this.getStatsByIds(stats, holes, 'holeId');\r\n }\r\n\r\n return this.getTopStats(stats);\r\n }\r\n\r\n getTopStats(stats) {\r\n return stats.slice(0, 3);\r\n }\r\n\r\n getStatsByIds(stats, ids, idKey) {\r\n return ids\r\n .map((id) =>\r\n stats.find((statsModel) =>\r\n statsModel[idKey].toString() === id.toString()))\r\n .filter((mappedStat) => mappedStat !== undefined);\r\n }\r\n\r\n generateCard() {\r\n const { scoringStats } = this.props;\r\n\r\n if (!scoringStats) return null;\r\n\r\n const card = cloneDeep(this.card);\r\n\r\n card.sitecoreData = this.getSitecoreData(card.name);\r\n card.stats = this.getStats(card);\r\n card.targetUrl = this.props.options.viewAllUrl;\r\n\r\n return card;\r\n }\r\n\r\n render() {\r\n const { liveScanner, scoringStats } = this.props;\r\n\r\n if (liveScanner === undefined ||\r\n scoringStats === undefined\r\n ) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (!liveScanner ||\r\n !scoringStats ||\r\n !Array.isArray(scoringStats.rounds)\r\n ) {\r\n return null;\r\n }\r\n\r\n const card = this.generateCard();\r\n\r\n return ;\r\n }\r\n}\r\n\r\nContextualStatsLayout.propTypes = {\r\n options: PropTypes.object\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n liveScanner: state.scoring[endpointNames.LIVE_SCANNER],\r\n scoringStats: state.scoring[endpointNames.STATISTICS],\r\n courseStats: state.scoring[endpointNames.COURSE],\r\n});\r\n\r\nconst ContextualStatsLayoutContainer = connect(\r\n mapStateToProps,\r\n null\r\n)(ContextualStatsLayout);\r\n\r\nexport default ContextualStatsLayoutContainer;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport ContextualStatsLayout from './contextual-stats-layout';\r\n\r\nclass ContextualStats extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default ContextualStats;\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport ContextualStats from './js/contextual-stats.component';\r\n\r\nComponentsFactory.getInstance().define('contextual-stats', ContextualStats);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\nimport overlay from '../../../general/js/overlay';\r\nimport _ from 'lodash';\r\n\r\nconst COOKIE_WARNING_AGREED = 'cookie-warning-settings_agreed';\r\nconst COOKIE_WARNING_AGREE_BUTTON_CLASS = 'cookie-warning__agree-button';\r\nconst COOKIE_WARNING_AGREE_LINK_CLASS = 'cookie-warning__agree-link';\r\nconst COOKIE_CONTROL_EXPIRY_DAYS = 'cookieControlExpiryDaysValue';\r\n\r\nexport default class CookieWarningComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.onCloseCookieWarning = this.onCloseCookieWarning.bind(this);\r\n this.closeSlideoutCookiePanelHandler = this.closeSlideoutCookiePanelHandler.bind(this);\r\n this.acceptCookiesHandler = this.acceptCookiesHandler.bind(this);\r\n this.cookieWarningSettingsAgreedTitle = this.getCookieWarningOption('warningSettingsAgreed', COOKIE_WARNING_AGREED);\r\n this.requiredCookiesForGoogleAnalytics = this.getCookieWarningOption('requiredCookiesForGoogleAnalytics');\r\n this.init();\r\n }\r\n\r\n isSiteVisited() {\r\n const warningAgreedCookie = Cookies.get(this.cookieWarningSettingsAgreedTitle);\r\n const acceptedCookies = warningAgreedCookie !== undefined;\r\n return acceptedCookies;\r\n }\r\n\r\n init() {\r\n setTimeout(() => {\r\n if (!this.isSiteVisited()){\r\n this.element.classList.add('is-visible');\r\n overlay.show('overlay');\r\n\r\n const agreeButton = document.getElementsByClassName(COOKIE_WARNING_AGREE_BUTTON_CLASS)[0];\r\n const agreeLink = document.getElementsByClassName(COOKIE_WARNING_AGREE_LINK_CLASS)[0];\r\n let cookieExpiryDays = this.getCookieExpiryDays();\r\n \r\n this.addListener(agreeButton, 'click', () => {\r\n Cookies.set(this.cookieWarningSettingsAgreedTitle, '1', { expires: cookieExpiryDays, secure: true });\r\n this.onCloseCookieWarning();\r\n });\r\n this.addListener(agreeLink, 'click', () => {\r\n this.onCloseCookieWarning();\r\n });\r\n }\r\n }, 100);\r\n }\r\n\r\n onCloseCookieWarning() {\r\n setTimeout(() => {\r\n const { civicukCloseButtonId, civicukAcceptAllButtonId} = this.options;\r\n var slideoutCloseButton = null;\r\n var acceptAllButton = null; \r\n\r\n if (civicukCloseButtonId !== undefined && !_.isEmpty(civicukCloseButtonId)){\r\n slideoutCloseButton = document.getElementById(civicukCloseButtonId);\r\n }\r\n\r\n if (civicukAcceptAllButtonId !== undefined && !_.isEmpty(civicukAcceptAllButtonId)){\r\n acceptAllButton = document.getElementById(civicukAcceptAllButtonId);\r\n }\r\n\r\n this.addClickEventListener(slideoutCloseButton, this.closeSlideoutCookiePanelHandler);\r\n this.addClickEventListener(acceptAllButton, this.acceptCookiesHandler);\r\n\r\n this.element.classList.add('is-closed');\r\n this.element.classList.remove('is-visible');\r\n overlay.hide('overlay');\r\n }, 300);\r\n }\r\n\r\n addClickEventListener(element, callback){\r\n if(element !== null){\r\n element.addEventListener('click', callback, { once: true });\r\n }\r\n }\r\n\r\n getCookieExpiryDays(){\r\n var cookieExpiryDays = parseInt(localStorage.getItem(COOKIE_CONTROL_EXPIRY_DAYS));\r\n if (cookieExpiryDays === null || cookieExpiryDays === undefined)\r\n {\r\n cookieExpiryDays = 90;\r\n }\r\n\r\n return cookieExpiryDays;\r\n }\r\n\r\n closeSlideoutCookiePanelHandler(){\r\n let cookieExpiryDays = this.getCookieExpiryDays();\r\n let cookieControlValue = Cookies.get('CookieControl');\r\n let cookieControlObj = !_.isEmpty(cookieControlValue) ? JSON.parse(cookieControlValue) : {};\r\n var cookieWarningAgreedValue = '0';\r\n\r\n if(this.requiredCookiesForGoogleAnalytics && !_.isEmpty(cookieControlObj) && !_.isEmpty(cookieControlObj.optionalCookies)){\r\n this.requiredCookiesForGoogleAnalytics.forEach(requiredCookie => {\r\n if( Object.keys(cookieControlObj.optionalCookies).some((optionalCookie) => optionalCookie === requiredCookie )){\r\n cookieWarningAgreedValue = '1';\r\n }\r\n });\r\n }\r\n\r\n Cookies.set(this.cookieWarningSettingsAgreedTitle, cookieWarningAgreedValue, { expires: cookieExpiryDays, secure: true });\r\n }\r\n\r\n acceptCookiesHandler() {\r\n const cookieExpiryDays = this.getCookieExpiryDays();\r\n\r\n Cookies.set(this.cookieWarningSettingsAgreedTitle, '1', { expires: cookieExpiryDays, secure: true });\r\n }\r\n\r\n getCookieWarningOption(optionName, defaultValue = undefined){\r\n return this.options ? this.options[optionName] : defaultValue;\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport CookieWarningComponent from './js/cookie-warning.component';\r\n\r\nComponentsFactory.getInstance().define('cookie-warning', CookieWarningComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst SitecoreImageField = (props) => {\r\n const hasImageData = (props.img !== undefined && props.img !== '' && props.img.src !== undefined && props.img.src !== '');\r\n\r\n return (\r\n hasImageData &&\r\n \r\n );\r\n};\r\n\r\nSitecoreImageField.propTypes = {\r\n img: PropTypes.object,\r\n className: PropTypes.string\r\n};\r\n\r\nexport default SitecoreImageField;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst SitecoreLinkField = (props) => {\r\n \r\n\tconst hasLinkData = (props.link !== undefined && props.link !== \"\" && props.link.url !== undefined && props.link.url !== \"\");\r\n\t\r\n return (\r\n\t\thasLinkData &&\r\n \r\n {props.link.text}\r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nSitecoreLinkField.propTypes = {\r\n\tlink : PropTypes.object,\r\n className: PropTypes.string\r\n};\r\n\r\nexport default SitecoreLinkField;\r\n","/* eslint-disable eqeqeq */\r\n/* eslint-disable no-redeclare */\r\n/* eslint-disable no-var */\r\n/* eslint-disable block-scoped-var */\r\nimport Cookies from 'js-cookie';\r\nimport { isEmpty } from '../../../sso/components/utils/obj-utils';\r\nimport userService from '../../../../general/js/user/user-service';\r\nimport {\r\n TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME\r\n} from '../../../../general/js/user/constants';\r\nimport { hasValue, safeParseJSON } from '../../../../general/js/general-helpers';\r\nimport { CookieNames } from '../../../../general/js/utils/cookies';\r\nimport { MembershipTypes } from '../../../../general/js/utils';\r\n\r\nexport const getComponentVisibility = (componentVisibility) => {\r\n const isMastercardUser = handleCheckIsMasterCardMember(CookieNames.TOCH_USER_MEMBERSHIPS);\r\n\r\n if (componentVisibility === 'mastercard' && !isMastercardUser) return false;\r\n\r\n if (componentVisibility === 'non-mastercard' && isMastercardUser) return true;\r\n\r\n return true;\r\n};\r\n\r\nexport const getTOCHMembershipArray = (userAccountData) => {\r\n if (!isEmpty(userAccountData)) return userAccountData.split(';');\r\n\r\n return null;\r\n};\r\n\r\nexport const handleCheckMembershipExists = (membershipArray, membership) => {\r\n if (membershipArray !== null) return membershipArray.includes(membership);\r\n\r\n return null;\r\n};\r\n\r\nexport const handleCheckIsMasterCardMember = (localStorageKey) => {\r\n const jsonUserMemberships = userService.getDataFromLocalStorage(localStorageKey);\r\n const userMembershipsArray = getTOCHMembershipArray(safeParseJSON(jsonUserMemberships));\r\n const isMasterCardUser = handleCheckMembershipExists(userMembershipsArray, MembershipTypes.OneClubAdvantage);\r\n\r\n return isMasterCardUser;\r\n};\r\n\r\nexport const getMasterCardRegisterObject = (masterCardData) => {\r\n const options = {\r\n backgroundImage: masterCardData.item.backgroundImage,\r\n masterCardLogo: masterCardData.item.masterCardBranding.mastercardLogo,\r\n masterCardText: masterCardData.item.masterCardBranding.mastercardText,\r\n masterCardNumberLabel: masterCardData.item.masterCardNumberLabel,\r\n nameLabel: masterCardData.item.nameLabel,\r\n title: masterCardData.item.title,\r\n bottomInfo: masterCardData.item.bottomInfo,\r\n postcodeLabel: masterCardData.item.postcodeLabel,\r\n ctaSignUpForMastercardLink: masterCardData.item.ctaSignUpForMasterCard,\r\n notMasterCardNumberErrorMessage: masterCardData.item.notMasterCardNumberErrorMessage,\r\n masterCardRegistrationSuccessTitle: masterCardData.item.masterCardRegistrationSuccess.title,\r\n masterCardRegistrationSuccessLabel: masterCardData.item.masterCardRegistrationSuccess.label,\r\n masterCardRegistrationSuccessDescription: masterCardData.item.masterCardRegistrationSuccess.description,\r\n masterCardRegistrationSuccessCTALink: masterCardData.item.masterCardRegistrationSuccess.ctaLink,\r\n callbackUrl: masterCardData.item.masterCardRegistrationSettings.callbackUrl,\r\n regexToVerifyMastercard: masterCardData.item.masterCardRegistrationSettings.cardVerificationRegex,\r\n soundToBePlayedAfterSuccessRegister: masterCardData.item.masterCardRegistrationSettings.soundToBePlayedAfterSuccessRegister.url\r\n };\r\n\r\n return options;\r\n};\r\n\r\nexport const checkIfDateIsBetweenDates = (endDate, startDate) => {\r\n const now = new Date();\r\n const end = new Date(endDate);\r\n const start = new Date(startDate);\r\n const dateTimeNowIsBetweenDates = now > start && now < end;\r\n\r\n return dateTimeNowIsBetweenDates;\r\n};\r\n\r\nexport const checkIfDateTimeNowIsHigherThanEndDate = (endDate) => {\r\n const now = new Date();\r\n const end = new Date(endDate);\r\n\r\n return now > end;\r\n};\r\n\r\nexport const handleCheckMasterCardFormDisplayStatus = (value) => {\r\n const hasFormBeenDisplayed = userService.getDataFromLocalStorage(value);\r\n\r\n return hasFormBeenDisplayed != null ? hasFormBeenDisplayed : null;\r\n};\r\n\r\nexport const handleMastercardRegistrationEnforce = (props) => {\r\n const {\r\n componentVisibility,\r\n enableMastercardRegistrationEnforce\r\n } = props;\r\n\r\n const enableEnforce = enableMastercardRegistrationEnforce.toLowerCase() === 'true';\r\n const componentVisibilityForUser = getComponentVisibility(componentVisibility);\r\n if (!componentVisibilityForUser && enableEnforce) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const calculateRemainingDate = (countdownTimer) => {\r\n const countdownTimerDate = new Date(countdownTimer);\r\n\r\n const d = new Date();\r\n const utc = d.getTime() + (d.getTimezoneOffset() * 60000);\r\n const ukTimeNowAsDate = isBSTinEffect(d) ? new Date(utc + (3600000 * 1)) : new Date(utc);\r\n\r\n if (countdownTimerDate < ukTimeNowAsDate) {\r\n const newObject = {\r\n minutes: 0,\r\n hours: 0,\r\n days: 0\r\n };\r\n\r\n return newObject;\r\n }\r\n\r\n let delta = Math.abs(countdownTimerDate - ukTimeNowAsDate) / 1000;\r\n\r\n const days = Math.floor(delta / 86400);\r\n delta -= days * 86400;\r\n\r\n const hours = Math.floor(delta / 3600) % 24;\r\n delta -= hours * 3600;\r\n\r\n const minutes = Math.floor(delta / 60) % 60;\r\n delta -= minutes * 60;\r\n\r\n const newDate = {\r\n minutes,\r\n days,\r\n hours\r\n };\r\n\r\n return newDate;\r\n};\r\n\r\nexport const checkIfExpired = (countdownTimer) => {\r\n const countdownTimerDate = new Date(countdownTimer);\r\n\r\n const d = new Date();\r\n const utc = d.getTime() + (d.getTimezoneOffset() * 60000);\r\n const ukTimeNowAsDate = isBSTinEffect(d) ? new Date(utc + (3600000 * 1)) : new Date(utc);\r\n\r\n if (countdownTimerDate < ukTimeNowAsDate) return true;\r\n\r\n return false;\r\n};\r\n\r\nexport const isBSTinEffect = (d) => {\r\n let lSoM = null;\r\n let lSoO = null;\r\n\r\n // Loop over the 31 days of March for the current year\r\n for (var i = 31; i > 0; i--) {\r\n var tmp = new Date(d.getFullYear(), 2, i);\r\n // If it's Sunday\r\n if (tmp.getDay() == 0) {\r\n // last Sunday of March\r\n lSoM = tmp;\r\n break;\r\n }\r\n }\r\n\r\n // Loop over the 31 days of October for the current year\r\n for (var i = 31; i > 0; i--) {\r\n var tmp = new Date(d.getFullYear(), 9, i);\r\n // If it's Sunday\r\n if (tmp.getDay() == 0) {\r\n // last Sunday of October\r\n lSoO = tmp;\r\n break;\r\n }\r\n }\r\n\r\n // 0 = DST off (GMT)\r\n // 1 = DST on (BST)\r\n if (d < lSoM || d > lSoO) {\r\n return 0;\r\n }\r\n\r\n return 1;\r\n};\r\n\r\nexport const getVerificationEndpoint = (data) => {\r\n const { verificationEndpoint } = data;\r\n\r\n const email = userService.getDataFromLocalStorage(CookieNames.TOCH_USER_EMAIL);\r\n const updatedEndpoint = verificationEndpoint + email;\r\n\r\n return updatedEndpoint;\r\n};\r\n\r\nexport const getUserAddressBooks = () => {\r\n const userAddressBooks = userService.getDataFromLocalStorage(TOCH_USER_ADDRESS_BOOK_LOCALSTORAGE_NAME);\r\n\r\n if (userAddressBooks === null || userAddressBooks === undefined || userAddressBooks === '') return null;\r\n\r\n return userAddressBooks;\r\n};\r\n\r\nexport const verifyUserInAddressBook = (addressBookList, addressBookID) => {\r\n if (addressBookList === null) return false;\r\n\r\n const addressBooksList = JSON.parse(addressBookList);\r\n const addressBookIdAsInt = parseInt(addressBookID, 10);\r\n const isInAddressBook = addressBooksList.some((element) => element.AddressBookId === addressBookIdAsInt);\r\n\r\n return isInAddressBook;\r\n};\r\n\r\nexport const handlePersonalizedCompetitionList = (userAddressBooks, competitions) => {\r\n if (userAddressBooks === null) return null;\r\n\r\n for (let i = 0; i < competitions.length; i++) {\r\n const completedCompetitionIndex = userAddressBooks.findIndex((item) => item.AddressBookId === competitions[i].dotmailerDetails.addressBookID);\r\n\r\n if (completedCompetitionIndex !== -1) {\r\n competitions.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n\r\n return competitions;\r\n};\r\n\r\nexport const addCompletedFormToAddressBookLocalStorage = (dotmailerId, dotmailerName) => {\r\n const userAddressBooks = getUserAddressBooks();\r\n const userAddressBooksObject = JSON.parse(userAddressBooks);\r\n const dotmailerObject = {\r\n AddressBookId: parseInt(dotmailerId, 10),\r\n AddressBookName: dotmailerName\r\n };\r\n\r\n if (userAddressBooksObject === null) return [dotmailerObject];\r\n\r\n userAddressBooksObject.push(dotmailerObject);\r\n\r\n return userAddressBooksObject;\r\n};\r\n\r\nexport const getUserDetailsFromCookie = () => {\r\n const cookie = Cookies.get(CookieNames.TOCH_USER_DATA);\r\n\r\n return safeParseJSON(cookie);\r\n};\r\n\r\nexport const getUserMainAddressPostcode = (userAccountData) => {\r\n if (userAccountData.addresses === null || userAccountData.addresses === undefined) return null;\r\n\r\n const userMainAddress = userAccountData.addresses.find((e) => e.main === true);\r\n\r\n return hasValue(userMainAddress) ? userMainAddress.postcode : undefined;\r\n};\r\n\r\nexport const getBecameMastercardDate = (userAccountData) => {\r\n const userBecameMastercardAttribute = userAccountData['custom:becameMasterCard'];\r\n\r\n const currentDate = new Date();\r\n return !hasValue(userBecameMastercardAttribute) ?\r\n new Date(currentDate.getFullYear(), 1, 1) :\r\n new Date(userBecameMastercardAttribute);\r\n};\r\n\r\nexport const getTochUserDataCookieValue = (userAccountData, membershipArray) => {\r\n const becameMasterCard = getBecameMastercardDate(userAccountData);\r\n\r\n return JSON.stringify({\r\n firstName: userAccountData.given_name,\r\n lastName: userAccountData.family_name,\r\n email: userAccountData.email,\r\n isOneClub: handleCheckMembershipExists(membershipArray, MembershipTypes.OneClub),\r\n isMasterCardExclusive: handleCheckMembershipExists(membershipArray, MembershipTypes.OneClubAdvantage),\r\n createdDate: userAccountData.createdDate,\r\n becameMasterCard,\r\n postcode: getUserMainAddressPostcode(userAccountData)\r\n });\r\n};\r\n\r\nexport const setTochUserDataCookie = (userAccountData) => {\r\n const membershipArray = getTOCHMembershipArray(userAccountData['custom:Membership']);\r\n const cookieValue = getTochUserDataCookieValue(userAccountData, membershipArray);\r\n\r\n userService.setTOCHUserDataCookie(cookieValue);\r\n userService.setTOCHUserMembershipsInLocalStorage(JSON.stringify(userAccountData['custom:Membership']));\r\n};\r\n","import React from 'react';\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\nimport { isEmpty } from '../../../sso/components/utils/obj-utils';\r\nimport {\r\n calculateRemainingDate,\r\n checkIfExpired\r\n} from '../helpers/toch-helpers';\r\n\r\nclass CountdownAlertBar extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n countdownTimer: Date.now(),\r\n days: null,\r\n minutes: null,\r\n hours: null\r\n };\r\n\r\n this.getRemainingDate = this.getRemainingDate.bind(this);\r\n }\r\n\r\n getRemainingDate() {\r\n const { countdownTimer } = this.props.data;\r\n const newDate = calculateRemainingDate(countdownTimer);\r\n\r\n this.setState({ days: newDate.days, hours: newDate.hours, minutes: newDate.minutes });\r\n }\r\n\r\n componentDidMount() {\r\n const { refreshTime } = this.props.data;\r\n const refresh = (isEmpty(refreshTime) || refreshTime === null || refreshTime === undefined) ? 60000 : refreshTime;\r\n\r\n this.interval = setInterval(() => this.getRemainingDate(), refresh);\r\n }\r\n\r\n componentWillUnmount() {\r\n clearInterval(this.interval);\r\n }\r\n\r\n render() {\r\n const {\r\n countdownTimer,\r\n countdownDaysText,\r\n countdownHoursText,\r\n countdownMinutesText,\r\n link,\r\n linkText,\r\n logo,\r\n isInEditMode,\r\n text,\r\n } = this.props.data;\r\n const { days, hours, minutes } = this.state;\r\n\r\n const isExpired = checkIfExpired(countdownTimer);\r\n\r\n const newDate = (days === null && hours === null && minutes === null) ? calculateRemainingDate(countdownTimer) : null;\r\n const daysValue = (days === null || days === undefined) ? newDate.days : days;\r\n const hoursValue = (hours === null || hours === undefined) ? newDate.hours : hours;\r\n const minutesValue = (minutes === null || minutes === undefined) ? newDate.minutes : minutes;\r\n \r\n return (\r\n
\r\n
\r\n {text}\r\n {\r\n (!isExpired) &&\r\n \r\n {daysValue} {countdownDaysText.toLowerCase()}, {hoursValue} {countdownHoursText.toLowerCase()} and {minutesValue} {countdownMinutesText.toLowerCase()} \r\n \r\n }\r\n
\r\n
\r\n {\r\n (link.url !== null && link.url !== undefined) &&\r\n
\r\n {\r\n (logo.src !== null && logo.src !== undefined) &&\r\n \r\n \r\n {linkText}\r\n \r\n }\r\n {\r\n (logo.src === null || logo.src === undefined) &&\r\n \r\n {linkText}\r\n \r\n }\r\n
\r\n }\r\n {\r\n (link.url === null || link.url === undefined) &&\r\n \r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default CountdownAlertBar;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport CountdownAlertBar from './CountdownAlertBar';\r\n\r\nclass CountdownAlertBarComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default CountdownAlertBarComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport CountdownAlertBarComponent from './js/countdown-alertbar/countdown-alertbar.component';\r\n\r\nComponentsFactory.getInstance().define('countdown-alertbar', CountdownAlertBarComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport $ from 'jquery';\r\n\r\nexport default class CountriesComponent extends BaseComponent {\r\n constructor( ...args) {\r\n super(...args);\r\n\r\n this.onCountriesChange = this.onCountriesChange.bind(this);\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (this.refs.countries && this.refs.counties) {\r\n this.getCountriesList();\r\n this.addListener(this.refs.countries, 'change', this.onCountriesChange);\r\n }\r\n }\r\n\r\n getCountriesList() {\r\n const countriesSelect = this.refs.countries.querySelector('select');\r\n if (this.refs.county) {\r\n this.countries = [];\r\n this.refs.county.forEach((county) => {\r\n if (this.countries.indexOf(county.getAttribute('data-country')) === -1) {\r\n this.countries.push(county.getAttribute('data-country'));\r\n }\r\n });\r\n\r\n if (this.countries.indexOf(countriesSelect.value) !== -1) {\r\n this.filterCounties(countriesSelect.value);\r\n this.refs.counties.classList.add('is-visible');\r\n }\r\n }\r\n }\r\n\r\n onCountriesChange = (event) => {\r\n if (this.countries.indexOf(event.target.value) !== -1) {\r\n this.filterCounties(event.target.value);\r\n this.refs.counties.classList.add('is-visible'); \r\n this.refs.counties.querySelector('select').value = '-1';\r\n } else {\r\n this.refs.counties.classList.remove('is-visible');\r\n }\r\n };\r\n\r\n filterCounties(country) {\r\n $('#Address_County').empty();\r\n $('#Address_County').append('');\r\n \r\n this.refs.county.forEach((county) => {\r\n if (county.getAttribute('data-country') === country) {\r\n $('#Address_County').append(county); \r\n } \r\n });\r\n }\r\n}\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport CountriesComponent from './js/countries.component';\r\n\r\nComponentsFactory.getInstance().define('countries', CountriesComponent);\r\n","import React, { Component } from 'react'\r\n\r\nexport default class StepFreeForm extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.updateResult = this.props.updateResult;\r\n\r\n this.state = { answerValue: this.props.initialResult };\r\n this.handleAnswerChange = this.handleAnswerChange.bind(this);\r\n }\r\n\r\n handleAnswerChange(event) {\r\n const {\r\n isOptional,\r\n itemDestinationName\r\n } = this.props.options;\r\n \r\n const { answerValue } = this.state;\r\n let answers = answerValue ? answerValue : {};\r\n answers[itemDestinationName] = event.target.value;\r\n\r\n this.setState({ answerValue: answers });\r\n this.updateResult(\r\n event.target.value !== '' || isOptional,\r\n itemDestinationName,\r\n event.target.value\r\n );\r\n }\r\n\r\n componentDidUpdate() {\r\n const {\r\n canGoToNextStep\r\n } = this.props;\r\n const {itemDestinationName} = this.props.options;\r\n\r\n if (!canGoToNextStep && (this.state.answerValue && this.state.answerValue[itemDestinationName] != '')) {\r\n this.updateResult(\r\n true\r\n );\r\n }\r\n }\r\n\r\n handleLabelClick = () => {\r\n this.inputElement.focus();\r\n }\r\n\r\n render() {\r\n const {\r\n itemLabel,\r\n answerFieldLabel,\r\n errorMessage,\r\n isOptional,\r\n itemDestinationName\r\n } = this.props.options;\r\n const {\r\n textMaximumLength,\r\n viewErrors\r\n } = this.props;\r\n const { answerValue } = this.state;\r\n\r\n const currentAnswer = answerValue && answerValue[itemDestinationName] ? answerValue[itemDestinationName] : \"\";\r\n\r\n const isFilled = currentAnswer && currentAnswer.length > 0;\r\n\r\n return (\r\n
\r\n
{itemLabel}
\r\n
\r\n this.inputElement = input}\r\n className={`form-field__input ${!isOptional && viewErrors && currentAnswer === '' ? 'is-error__border' : \"\"}`}\r\n value={currentAnswer}\r\n onChange={this.handleAnswerChange}\r\n rows=\"4\"\r\n maxLength={textMaximumLength}\r\n />\r\n \r\n {answerFieldLabel}\r\n \r\n {!isOptional && viewErrors && currentAnswer === '' ?
    \r\n
  • {errorMessage}
  • \r\n
: null}\r\n
\r\n
\r\n )\r\n }\r\n}\r\n","import React from 'react'\r\nexport default class StepDropdown extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.updateResult = this.props.updateResult;\r\n\r\n this.state = { answerValue: this.props.initialResult };\r\n }\r\n\r\n onChange = (event) => {\r\n const { itemDestinationName } = this.props.options;\r\n\r\n const { answerValue } = this.state;\r\n let answer = answerValue ? answerValue : {};\r\n answer[itemDestinationName] = event.target.value;\r\n\r\n this.setState({ answerValue: answer });\r\n this.updateResult(\r\n true,\r\n itemDestinationName,\r\n event.currentTarget.value\r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n possibleChoices,\r\n itemLabel,\r\n defaultValue,\r\n errorMessage,\r\n itemDestinationName\r\n } = this.props.options;\r\n\r\n const {\r\n viewErrors,\r\n canGoToNextStep\r\n } = this.props;\r\n\r\n const { answerValue } = this.state;\r\n const currentAnswer = answerValue && answerValue[itemDestinationName] ? answerValue[itemDestinationName] : defaultValue;\r\n\r\n if (!canGoToNextStep && currentAnswer !== defaultValue) {\r\n this.updateResult(\r\n true\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
{itemLabel}
\r\n
\r\n \r\n \r\n {defaultValue}\r\n \r\n {possibleChoices.map((option, index) => {\r\n return (\r\n \r\n {option}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n
\r\n {viewErrors && currentAnswer === defaultValue ?
    \r\n
  • {errorMessage}
  • \r\n
: null}\r\n
\r\n )\r\n }\r\n}","export const formValidationConstants = {\r\n dateOfBirthErrorMessage: 'Please enter a valid date of birth.',\r\n membersMustBeOVer16: 'Members must be 16 or over.',\r\n\r\n minimumValidAge: 16,\r\n minimumValidMonth: 1,\r\n maximumValidMonth: 12,\r\n\r\n privacyPolicyErrorMessage: 'You need to agree to our Privacy Policy to continue.',\r\n oneClubTermsAndServicesErrorMessage: 'You need to agree to our Terms and Services to continue.',\r\n\r\n pleaseInputAValue: 'Please input a value.',\r\n /* eslint-disable-next-line */\r\n emailPattern: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\r\n emailAddressErrorMessage: 'This value should be a valid email.',\r\n blockedDomainMessage: 'Invalid email address. Please try again with a correct domain',\r\n confirmEmailErrorMessage: 'The email and the email confirmation should be the same.',\r\n\r\n passwordPattern: /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$/,\r\n passwordErrorMessage: 'The password should contain at least one small letter, one capital letter and digit. Minimum password length is 8 characters.',\r\n\r\n confirmPasswordErrorMessage: 'The password and the password confirmation should be the same.',\r\n newPasswordErrorMessage: 'The password and the new password should not be the same.',\r\n oldPasswordErrorMessage: 'The new and old password cannot have the same value.',\r\n none: 'None',\r\n\r\n titleErrorMessage: 'Please select a title.',\r\n countryErrorMessage: 'Please select your Country.',\r\n countyErrorMessage: 'Please select your County',\r\n stateErrorMessage: 'Please select your State',\r\n\r\n venuesErrorMessage: 'Please select venues you are interested in.',\r\n championshipSectionErrorMessage: 'Please select the championship you are interested in',\r\n channelSectionErrorMessage: 'Please select the channel you are interested in',\r\n interestSectionErrorMessage: 'Please select your prefered interests',\r\n firstNameErrorMessage: 'Please enter your First Name.',\r\n lastNameErrorMessage: 'Please enter your Last Name.',\r\n addressLine1ErrorMessage: 'Please enter your Address.',\r\n postcodeErrorMessage: 'Please enter your Post Code.',\r\n mobilePhoneErrorMessage: 'Phone number must be between 7 and 15 characters.',\r\n cityErrorMessage: 'Please enter your City.',\r\n favoritePlayerErrorMessage: 'Please specify your favorite golf player name.',\r\n verificationCodeErrorMessage: 'Please input the received verification code.',\r\n specialCharactersErrorMessage: 'Allowed: \\',-.a-z . Please start and finish just with letters.',\r\n specialCharactersNumbersErrorMessage: 'Allowed: \\',-.a-z0-9 . Please start and finish just with letters or numbers.',\r\n specialCharactersNumbersLettersErrorMessage: 'Allowed: a-z0-9 -. Please start and finish just with letters or numbers.',\r\n\r\n raMemberIdEmptyErrorMessage: 'Please enter your R&A Member Id',\r\n raMemberIdInvalidErrorMessage: 'Wrong ID format inputted',\r\n\r\n captchaInvalidErrorMessage: 'Please let us verify you are not a robot',\r\n\r\n suttonixDomain: '@suttontix',\r\n ecrypseDomain: '@ecrypse',\r\n dogpilezDomain: '@dogpilez'\r\n\r\n\r\n};\r\n","/* eslint-disable consistent-return */\r\n/* eslint-disable no-prototype-builtins */\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\nimport { formConstants } from '../components/utils/constants/form-constants';\r\nimport { formValidationConstants } from '../components/utils/constants/form-validation-constants';\r\nimport { getFormattedEmailRemoveSpaces } from '../store/actions/helpers/data-format-helper';\r\n\r\nexport function validateEmail(emailText) {\r\n if (isEmpty(emailText)) {\r\n return { isValid: false, errorMessage: formValidationConstants.pleaseInputAValue };\r\n }\r\n\r\n if (!isEmpty(emailText.defaultValue)) return { isValid: true };\r\n\r\n\r\n const email = getFormattedEmailRemoveSpaces(emailText);\r\n\r\n const emailPattern = formValidationConstants.emailPattern;\r\n if (!emailPattern.test(String(email))) {\r\n return { isValid: false, errorMessage: formValidationConstants.emailAddressErrorMessage };\r\n }\r\n\r\n if (emailText.includes(formValidationConstants.suttonixDomain) || emailText.includes(formValidationConstants.ecrypseDomain) || emailText.includes(formValidationConstants.dogpilezDomain)) {\r\n return { isValid: false, errorMessage: formValidationConstants.blockedDomainMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateConfirmEmail(emailText, confirmEmail) {\r\n if (emailText !== confirmEmail) {\r\n return { isValid: false, errorMessage: formValidationConstants.confirmEmailErrorMessage };\r\n }\r\n\r\n if (isEmpty(confirmEmail)) {\r\n return { isValid: false, errorMessage: formValidationConstants.pleaseInputAValue };\r\n }\r\n\r\n const emailPattern = formValidationConstants.emailPattern;\r\n if (!emailPattern.test(String(confirmEmail).toLowerCase())) {\r\n return { isValid: false, errorMessage: formValidationConstants.emailAddressErrorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validatePassword(passwordText) {\r\n if (isEmpty(passwordText)) {\r\n return { isValid: false, errorMessage: formValidationConstants.pleaseInputAValue };\r\n }\r\n\r\n const passwordPattern = formValidationConstants.passwordPattern;\r\n if (!passwordPattern.test(String(passwordText))) {\r\n return { isValid: false, errorMessage: formValidationConstants.passwordErrorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateNewPassword(password, newPassword) {\r\n if (password === newPassword) {\r\n return { isValid: false, errorMessage: formValidationConstants.newPasswordErrorMessage };\r\n }\r\n\r\n if (isEmpty(newPassword)) {\r\n return { isValid: false, errorMessage: formValidationConstants.pleaseInputAValue };\r\n }\r\n\r\n const passwordPattern = formValidationConstants.passwordPattern;\r\n if (!passwordPattern.test(String(newPassword))) {\r\n return { isValid: false, errorMessage: formValidationConstants.passwordErrorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateOldPassword(password, oldPassword) {\r\n if (password === oldPassword) {\r\n return { isValid: false, errorMessage: formValidationConstants.oldPasswordErrorMessage };\r\n }\r\n\r\n if (isEmpty(oldPassword)) {\r\n return { isValid: false, errorMessage: formValidationConstants.pleaseInputAValue };\r\n }\r\n\r\n const passwordPattern = formValidationConstants.passwordPattern;\r\n if (!passwordPattern.test(String(oldPassword))) {\r\n return { isValid: false, errorMessage: formValidationConstants.passwordErrorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateConfirmPassword(password, confirmPassword) {\r\n if (password !== confirmPassword) {\r\n return { isValid: false, errorMessage: formValidationConstants.confirmPasswordErrorMessage };\r\n }\r\n\r\n if (isEmpty(confirmPassword)) {\r\n return { isValid: false, errorMessage: formValidationConstants.pleaseInputAValue };\r\n }\r\n\r\n const passwordPattern = formValidationConstants.passwordPattern;\r\n if (!passwordPattern.test(String(confirmPassword))) {\r\n return { isValid: false, errorMessage: formValidationConstants.passwordErrorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateSelectedCounty(selectedCounty, selectedCountryCode, county) {\r\n const availableCounties = county.options.filter(\r\n (x) => x.countryCode === selectedCountryCode\r\n );\r\n const hasCounties = availableCounties && availableCounties.length > 0;\r\n\r\n if (hasCounties) {\r\n return validateCounty(selectedCounty);\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateSelectedState(selectedState, selectedCountryCode, stateField = null) {\r\n const availableStates = hasValue(stateField) ?\r\n stateField.options.filter(\r\n (s) => s.countryCode === selectedCountryCode\r\n ) :\r\n [];\r\n const hasStates = availableStates && availableStates.length > 0;\r\n\r\n if (hasStates) {\r\n return validateState(selectedState);\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateTitle(title) {\r\n if (isEmpty(title) || title === formValidationConstants.none) {\r\n return { isValid: false, errorMessage: formValidationConstants.titleErrorMessage };\r\n }\r\n\r\n if (title.hasOwnProperty(formConstants.defaultValuePropertyName)) {\r\n if (isEmpty(title[formConstants.defaultValuePropertyName])) {\r\n return { isValid: false, errorMessage: formValidationConstants.titleErrorMessage };\r\n }\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateCountry(country) {\r\n if (isEmpty(country) || country === formValidationConstants.none) {\r\n return { isValid: false, errorMessage: formValidationConstants.countryErrorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateCounty(county) {\r\n if (isEmpty(county) || county === formValidationConstants.none) {\r\n return { isValid: false, errorMessage: formValidationConstants.countyErrorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateState(stateValue) {\r\n if (isEmpty(stateValue) || stateValue === formValidationConstants.none) {\r\n return { isValid: false, errorMessage: formValidationConstants.stateErrorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateBecomeOneClubMember() {\r\n return noValidationRequired();\r\n}\r\n\r\nexport function validateFirstName(text) {\r\n const validateEmptyString = validateTextValue(text, formValidationConstants.firstNameErrorMessage);\r\n if (!validateEmptyString.isValid) {\r\n return validateEmptyString;\r\n }\r\n\r\n //validation for special characters\r\n if (!new RegExp('^[A-Za-z]+((([,.][ ]{0,1})|([ \\'-]))[A-Za-z]+)*$').test(String(text))) {\r\n return { isValid: false, errorMessage: formValidationConstants.specialCharactersErrorMessage };\r\n }\r\n}\r\n\r\nexport function validateLastName(text) {\r\n const validateEmptyString = validateTextValue(text, formValidationConstants.lastNameErrorMessage);\r\n if (!validateEmptyString.isValid) {\r\n return validateEmptyString;\r\n }\r\n\r\n //validation for special characters\r\n if (!new RegExp('^[A-Za-z]+((([,.][ ]{0,1})|([ \\'-]))[A-Za-z]+)*$').test(String(text))) {\r\n return { isValid: false, errorMessage: formValidationConstants.specialCharactersErrorMessage };\r\n }\r\n}\r\n\r\nexport function validateAddressLine1(text) {\r\n const validateEmptyString = validateTextValue(text, formValidationConstants.addressLine1ErrorMessage);\r\n if (!validateEmptyString.isValid) {\r\n return validateEmptyString;\r\n }\r\n\r\n //validation for special characters\r\n if (!new RegExp('^[A-Za-z0-9]+((([,.][ ]{0,1})|([ \\'-]))[A-Za-z0-9]+)*$').test(String(text))) {\r\n return { isValid: false, errorMessage: formValidationConstants.specialCharactersNumbersErrorMessage };\r\n }\r\n}\r\n\r\nexport function validateAddressLine2() {\r\n return noValidationRequired();\r\n}\r\n\r\nexport function validateAddressLine3() {\r\n return noValidationRequired();\r\n}\r\n\r\nexport function validatePostcode(postCodeText) {\r\n const validateEmptyString = validateTextValue(postCodeText, formValidationConstants.postcodeErrorMessage);\r\n if (!validateEmptyString.isValid) {\r\n return validateEmptyString;\r\n }\r\n\r\n //validation for special characters\r\n if (!new RegExp('^[A-Za-z0-9]+(([ -])[A-Za-z0-9]+)*$').test(String(postCodeText))) {\r\n return { isValid: false, errorMessage: formValidationConstants.specialCharactersNumbersLettersErrorMessage };\r\n }\r\n}\r\n\r\nexport function validateMobilePhone(mobilePhoneValue, isOptional) {\r\n if (!isOptional) {\r\n if (isEmpty(mobilePhoneValue) || mobilePhoneValue.length <= 0) {\r\n return { isValid: false, errorMessage: formValidationConstants.mobilePhoneErrorMessage };\r\n }\r\n }\r\n\r\n if ((mobilePhoneValue.length > 0 && mobilePhoneValue.length < 7) || mobilePhoneValue.length > 15) {\r\n return {\r\n isValid: false, errorMessage: formValidationConstants.mobilePhoneErrorMessage\r\n };\r\n }\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateCity(text) {\r\n const validateEmptyString = validateTextValue(text, formValidationConstants.cityErrorMessage);\r\n if (!validateEmptyString.isValid) {\r\n return validateEmptyString;\r\n }\r\n\r\n //validation for special characters\r\n if (!new RegExp('^[A-Za-z]+((([,.][ ]{0,1})|([ \\'-]))[A-Za-z]+)*$').test(String(text))) {\r\n return { isValid: false, errorMessage: formValidationConstants.specialCharactersErrorMessage };\r\n }\r\n}\r\n\r\nexport function validateMainAddress() {\r\n return noValidationRequired();\r\n}\r\n\r\nexport function validateShippingAddress() {\r\n return noValidationRequired();\r\n}\r\n\r\nexport function validateBillingAddress() {\r\n return noValidationRequired();\r\n}\r\n\r\nexport function validateFavoritePlayer(text) {\r\n const validateEmptyString = validateTextValue(text, formValidationConstants.favoritePlayerErrorMessage);\r\n if (!validateEmptyString.isValid) {\r\n return validateEmptyString;\r\n }\r\n\r\n //validation for special characters\r\n if (!new RegExp('^[A-Za-z]+((([,.][ ]{0,1})|([ \\'-]))[A-Za-z]+)*$').test(String(text))) {\r\n return { isValid: false, errorMessage: formValidationConstants.specialCharactersErrorMessage };\r\n }\r\n}\r\n\r\nexport function validateVenues(venues) { return validateUserChoices(venues, formValidationConstants.venuesErrorMessage); }\r\nexport function validateChampionship(championships) { return validateUserChoices(championships, formValidationConstants.championshipSectionErrorMessage); }\r\nexport function validateChannels(channels) { return validateUserChoices(channels, formValidationConstants.channelSectionErrorMessage); }\r\nexport function validateInterests(interests) { return validateUserChoices(interests, formValidationConstants.interestSectionErrorMessage); }\r\n\r\nfunction validateUserChoices(choices, message) {\r\n if (!choices || choices.length < 1) {\r\n return {\r\n isValid: false, errorMessage: message\r\n };\r\n }\r\n\r\n if (choices.every((x) => x === false)) {\r\n return {\r\n isValid: false, errorMessage: message\r\n };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\nexport function validateVerificationCode(verificationCode) {\r\n const validateEmptyString = validateTextValue(verificationCode, formValidationConstants.verificationCodeErrorMessage);\r\n if (!validateEmptyString.isValid) {\r\n return validateEmptyString;\r\n }\r\n\r\n //validation for special characters\r\n if (!new RegExp('^[A-Za-z0-9]+(([ -])[A-Za-z0-9]+)*$').test(String(verificationCode))) {\r\n return { isValid: false, errorMessage: formValidationConstants.specialCharactersNumbersLettersErrorMessage };\r\n }\r\n}\r\n\r\nexport function noValidationRequired() {\r\n return { isValid: true };\r\n}\r\n\r\nexport function validateRaMemberId(text) {\r\n if (isEmpty(text)) {\r\n return {\r\n isValid: false, errorMessage: formValidationConstants.raMemberIdEmptyErrorMessage\r\n };\r\n }\r\n\r\n if (text.length !== 4 || !Number(text) || hasWhiteSpace(text)) {\r\n return {\r\n isValid: false, errorMessage: formValidationConstants.raMemberIdInvalidErrorMessage\r\n };\r\n }\r\n}\r\n\r\nexport function validateCaptchaBox(isValid) {\r\n if (isValid) return { isValid: true };\r\n\r\n return {\r\n isValid: false, errorMessage: formValidationConstants.captchaInvalidErrorMessage\r\n };\r\n}\r\n\r\nexport function validateMastercard(mastercardNumber, mastercardRegex, notMastercardMessage) {\r\n if (!isEmpty(mastercardNumber)) {\r\n if (mastercardRegex !== undefined && !new RegExp(mastercardRegex).test(String(mastercardNumber))) {\r\n return { isValid: false, errorMessage: notMastercardMessage };\r\n }\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n\r\n\r\nfunction validateTextValue(text, errorMessage) {\r\n if (isEmpty(text)) {\r\n return {\r\n isValid: false, errorMessage\r\n };\r\n }\r\n return { isValid: true };\r\n}\r\n\r\nfunction isEmpty(text) {\r\n return !text || text === '';\r\n}\r\n\r\nfunction hasWhiteSpace(text) {\r\n return text.indexOf(' ') >= 0;\r\n}\r\n","import React from 'react'\r\nimport { validateEmail } from '../../../sso/validators/text-validators';\r\n\r\nconst RandomSeedMaxValue = 10000000;\r\n\r\nexport default class ContactInfoStep extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { emailAddress, initialResult } = this.props;\r\n const { firstnameField, lastnameField, checkbox1Field, checkbox2Field } = this.props.options;\r\n\r\n const result = initialResult ? initialResult : {};\r\n\r\n this.state = {\r\n randomSeedNumber: Math.floor(Math.random() * RandomSeedMaxValue),\r\n firstName: result[firstnameField] ? result[firstnameField] : '',\r\n lastName: result[lastnameField] ? result[lastnameField] : '',\r\n emailAddress: emailAddress ? emailAddress : '',\r\n agreedToC1: result[checkbox1Field] ? result[checkbox1Field] : false,\r\n agreedToC2: result[checkbox2Field] ? result[checkbox2Field] : false,\r\n }\r\n\r\n this.handleFirstnameChange = this.handleFirstnameChange.bind(this);\r\n this.handleLastnameChange = this.handleLastnameChange.bind(this);\r\n this.handleEmailChange = this.handleEmailChange.bind(this);\r\n this.handleCheckbox1Change = this.handleCheckbox1Change.bind(this);\r\n this.handleCheckbox2Change = this.handleCheckbox2Change.bind(this);\r\n\r\n this.isValid = this.isValid.bind(this);\r\n\r\n this.updateResult = this.props.updateResult;\r\n }\r\n\r\n isValid() {\r\n const {\r\n nameFieldsAreOptional,\r\n hideNameFields,\r\n checkbox1IsOptional,\r\n hideCheckbox1,\r\n checkbox2IsOptional,\r\n hideCheckbox2\r\n } = this.props.options;\r\n\r\n const { firstName, lastName, emailAddress, agreedToC1, agreedToC2 } = this.state;\r\n\r\n return (nameFieldsAreOptional || hideNameFields || (firstName !== '' && lastName !== '')) &&\r\n validateEmail(emailAddress).isValid &&\r\n (checkbox1IsOptional || hideCheckbox1 || agreedToC1 === true) &&\r\n (checkbox2IsOptional || hideCheckbox2 || agreedToC2 === true);\r\n }\r\n\r\n handleFirstnameChange(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: event.target.value,\r\n lastName: this.state.lastName,\r\n emailAddress: this.state.emailAddress,\r\n agreedToC1: this.state.agreedToC1,\r\n agreedToC2: this.state.agreedToC2\r\n });\r\n\r\n const { firstnameField } = this.props.options;\r\n\r\n this.updateResult(\r\n this.isValid(),\r\n firstnameField,\r\n event.target.value\r\n );\r\n }\r\n\r\n handleLastnameChange(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: this.state.firstName,\r\n lastName: event.target.value,\r\n emailAddress: this.state.emailAddress,\r\n agreedToC1: this.state.agreedToC1,\r\n agreedToC2: this.state.agreedToC2\r\n });\r\n\r\n const { lastnameField } = this.props.options;\r\n\r\n this.updateResult(\r\n this.isValid(),\r\n lastnameField,\r\n event.target.value\r\n );\r\n }\r\n\r\n handleEmailChange(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: this.state.firstName,\r\n lastName: this.state.lastName,\r\n emailAddress: event.target.value,\r\n agreedToC1: this.state.agreedToC1,\r\n agreedToC2: this.state.agreedToC2\r\n });\r\n\r\n this.updateResult(\r\n this.isValid(),\r\n 'emailAddress',\r\n event.target.value\r\n );\r\n }\r\n\r\n handleCheckbox1Change(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: this.state.firstName,\r\n lastName: this.state.lastName,\r\n emailAddress: this.state.emailAddress,\r\n agreedToC1: event.target.checked,\r\n agreedToC2: this.state.agreedToC2\r\n });\r\n\r\n const { checkbox1Field } = this.props.options;\r\n\r\n this.updateResult(\r\n this.isValid(),\r\n checkbox1Field,\r\n event.target.checked\r\n );\r\n }\r\n\r\n handleCheckbox2Change(event) {\r\n this.setState({\r\n randomSeedNumber: this.state.randomSeedNumber,\r\n firstName: this.state.firstName,\r\n lastName: this.state.lastName,\r\n emailAddress: this.state.emailAddress,\r\n agreedToC1: this.state.agreedToC1,\r\n agreedToC2: event.target.checked\r\n });\r\n\r\n const { checkbox2Field } = this.props.options;\r\n\r\n this.updateResult(\r\n this.isValid(),\r\n checkbox2Field,\r\n event.target.checked\r\n );\r\n }\r\n\r\n createMarkup = (param) => { return { __html: param }; };\r\n\r\n componentDidUpdate() {\r\n const {\r\n canGoToNextStep\r\n } = this.props;\r\n\r\n if (!canGoToNextStep && this.isValid()) {\r\n this.updateResult(\r\n this.isValid()\r\n );\r\n }\r\n }\r\n\r\n focusOnElement = (element) => {\r\n element.focus();\r\n }\r\n\r\n render() {\r\n\r\n const {\r\n options\r\n } = this.props;\r\n\r\n const {\r\n firstnameLabel, firstnameError,\r\n lastnameLabel, lastnameError,\r\n nameFieldsAreOptional, hideNameFields,\r\n emailLabel, emailError,\r\n checkbox1IsOptional, hideCheckbox1,\r\n checkbox1Label, checkbox1Error,\r\n checkbox2Label, checkbox2Error,\r\n checkbox2IsOptional, hideCheckbox2\r\n } = options;\r\n\r\n const {\r\n randomSeedNumber,\r\n firstName,\r\n lastName,\r\n emailAddress,\r\n agreedToC1,\r\n agreedToC2\r\n } = this.state;\r\n\r\n const {\r\n textMaximumLength,\r\n viewErrors,\r\n } = this.props;\r\n\r\n const isFilledFirstname = firstName && firstName.length > 0;\r\n const isFilledLastname = lastName && lastName.length > 0;\r\n const isFilledEmail = emailAddress && emailAddress.length > 0;\r\n const isValidEmail = validateEmail(emailAddress).isValid;\r\n\r\n const checkbox1withRandomSeed = \"checkbox1\" + randomSeedNumber;\r\n const checkbox2withRandomSeed = \"checkbox2\" + randomSeedNumber;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n hideNameFields !== true &&\r\n
\r\n
\r\n this.inputFirstnameElement = input}\r\n className=\"form-field__input\"\r\n type=\"text\"\r\n value={firstName}\r\n maxLength={textMaximumLength}\r\n onChange={this.handleFirstnameChange}\r\n />\r\n this.focusOnElement(this.inputFirstnameElement)}\r\n >\r\n {firstnameLabel}\r\n \r\n {viewErrors && !nameFieldsAreOptional && !isFilledFirstname ?
    \r\n
  • {firstnameError}
  • \r\n
: null}\r\n
\r\n
\r\n this.inputLastnameElement = input}\r\n className=\"form-field__input\"\r\n type=\"text\"\r\n value={lastName}\r\n maxLength={textMaximumLength}\r\n onChange={this.handleLastnameChange}\r\n />\r\n this.focusOnElement(this.inputLastnameElement)}\r\n >\r\n {lastnameLabel}\r\n \r\n {viewErrors && !nameFieldsAreOptional && !isFilledLastname ?
    \r\n
  • {lastnameError}
  • \r\n
: null}\r\n
\r\n
\r\n }\r\n
\r\n this.inputEmailElement = input}\r\n className=\"form-field__input\"\r\n type=\"email\"\r\n value={emailAddress}\r\n maxLength={textMaximumLength}\r\n onChange={this.handleEmailChange}\r\n />\r\n this.focusOnElement(this.inputEmailElement)}\r\n >\r\n {emailLabel}\r\n \r\n {viewErrors && !isValidEmail ?
    \r\n
  • {emailError}
  • \r\n
: null}\r\n
\r\n
\r\n
\r\n {\r\n hideCheckbox1 !== true &&\r\n
\r\n \r\n
\r\n )\r\n }\r\n}","import React from 'react'\r\nexport default class StepFinishStatus extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n const {message, statusClass} = this.props;\r\n\r\n return (\r\n
\r\n )\r\n }\r\n}\r\n","import React, { Component } from 'react'\r\n\r\nexport default class StepQuiz extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.updateResult = this.props.updateResult;\r\n\r\n this.state = { answerValue: this.props.initialResult };\r\n this.updateResult(\r\n true\r\n );\r\n \r\n this.handleChange = this.handleChange.bind(this);\r\n }\r\n\r\n handleChange(event) {\r\n event.preventDefault();\r\n const { name, checked } = event.target;\r\n if (!checked) {\r\n return;\r\n }\r\n const { itemDestinationName } = this.props.options;\r\n\r\n this.updateResult(\r\n true,\r\n itemDestinationName,\r\n name\r\n );\r\n\r\n const { answerValue } = this.state;\r\n let answer = answerValue ? answerValue : {};\r\n answer[itemDestinationName] = name;\r\n\r\n this.setState(() => ({\r\n answerValue: answer\r\n }));\r\n }\r\n\r\n render() {\r\n const { answerValue } = this.state;\r\n const {\r\n possibleChoices,\r\n itemLabel,\r\n itemDestinationName\r\n } = this.props.options;\r\n\r\n const currentAnswer = answerValue && answerValue[itemDestinationName] ? answerValue[itemDestinationName] : possibleChoices[0];\r\n \r\n return (\r\n
\r\n
{itemLabel}
\r\n
\r\n {possibleChoices.map((option, index) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction FormSpinner({ spinnerRef }) {\r\n return (
);\r\n}\r\n\r\nFormSpinner.propTypes = {\r\n spinnerRef: PropTypes.object\r\n};\r\n\r\nexport default FormSpinner;\r\n","import React from 'react';\r\n\r\n// This function takes a component...\r\nexport function withDataCapture(WrappedComponent, selectData) {\r\n // ...and returns another component...\r\n return class extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.handleDataCapture = this.handleDataCapture.bind(this);\r\n this.buildApiData = this.buildApiData.bind(this);\r\n this.state = {\r\n loading: false,\r\n responseReceived: false,\r\n data: {},\r\n errors: {}\r\n };\r\n }\r\n\r\n buildApiData(obj) {\r\n if (!obj) {\r\n return [];\r\n }\r\n\r\n return Object.keys(obj).map(key => ({\r\n \"key\": key,\r\n \"value\": obj[key].toString()\r\n }))\r\n }\r\n\r\n handleDataCapture(result, emailAddress, addressBookId) {\r\n const dataCapture = {\r\n \"emailAddress\": emailAddress,\r\n \"addressBookID\": addressBookId,\r\n \"apiData\": this.buildApiData(result)\r\n };\r\n\r\n this.setState({ loading: true }, () => {\r\n fetch('/api/sitecore/DataCollection/SendDataCapture', {\r\n method: 'POST',\r\n headers: { 'content-type': 'application/json' },\r\n body: JSON.stringify(dataCapture)\r\n })\r\n .then((response) => {\r\n this.setState({\r\n loading: false,\r\n responseReceived: true,\r\n succeeded: response.ok\r\n })\r\n })\r\n .catch((error) => {\r\n this.setState({\r\n loading: false,\r\n responseReceived: true,\r\n succeeded: false\r\n })\r\n });\r\n })\r\n }\r\n\r\n render() {\r\n const { succeeded, loading, responseReceived } = this.state;\r\n return ;\r\n }\r\n };\r\n}","import React from 'react';\r\nimport StepFreeForm from './step-free-form';\r\nimport StepDropdown from './step-dropdown';\r\nimport StepDetails from './step-details';\r\nimport StepFinishStatus from './step-finish-status';\r\nimport StepQuiz from './step-quiz';\r\nimport { withDataCapture } from './with-data-capture';\r\nimport FormSpinner from '../../../sso/components/common/utility/FormSpinner';\r\n\r\nclass WizardDashboard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n const { steps } = props.options;\r\n\r\n let initialResult = {};\r\n for (let i = 0; i < steps.length; i++) {\r\n const item = steps[i];\r\n initialResult[item.itemDestinationName] = item.templateName === \"RadioField\" ? item.possibleChoices[0] : \"\";\r\n }\r\n\r\n this.state = {\r\n wizardIndex: 0,\r\n canGoToNextStep: steps && steps[0] && steps[0].isOptional,\r\n viewErrors: false,\r\n emailAddress: \"\",\r\n result: initialResult\r\n };\r\n this.handleNextButtonClick = this.handleNextButtonClick.bind(this);\r\n this.handlePreviousButtonClick = this.handlePreviousButtonClick.bind(this);\r\n this.displayCurrentStep = this.displayCurrentStep.bind(this);\r\n this.updateResult = this.updateResult.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (!nextProps.loading && nextProps.responseReceived) {\r\n this.setState({\r\n wizardIndex: this.state.wizardIndex + 1,\r\n canGoToNextStep: false,\r\n viewErrors: this.state.viewErrors,\r\n emailAddress: this.state.emailAddress,\r\n result: this.state.result\r\n });\r\n }\r\n }\r\n\r\n handleNextButtonClick(event) {\r\n event.preventDefault();\r\n const { wizardIndex, canGoToNextStep } = this.state;\r\n const { steps } = this.props.options;\r\n\r\n if (!canGoToNextStep) {\r\n this.setState({\r\n wizardIndex: this.state.wizardIndex,\r\n canGoToNextStep: false,\r\n viewErrors: true,\r\n emailAddress: this.state.emailAddress,\r\n result: this.state.result\r\n });\r\n return;\r\n }\r\n //validate if can go next\r\n\r\n if (wizardIndex == steps.length) {\r\n this.props.handleDataCapture(this.state.result, this.state.emailAddress, this.props.options.addressBookID);\r\n return;\r\n }\r\n const nextStep = this.props.options.steps[this.state.wizardIndex + 1];\r\n\r\n this.setState({\r\n wizardIndex: this.state.wizardIndex + 1,\r\n canGoToNextStep: nextStep && (nextStep.isOptional || nextStep.templateName === \"RadioField\"),\r\n viewErrors: false,\r\n emailAddress: this.state.emailAddress,\r\n result: this.state.result\r\n });\r\n }\r\n\r\n handlePreviousButtonClick(event) {\r\n event.preventDefault();\r\n\r\n this.setState({\r\n wizardIndex: this.state.wizardIndex - 1,\r\n canGoToNextStep: true,\r\n viewErrors: false,\r\n emailAddress: this.state.emailAddress,\r\n result: this.state.result\r\n });\r\n }\r\n\r\n updateResult = (canGoToNextStep, parameterName, parameterValue) => {\r\n\r\n if (!parameterName) {\r\n this.setState({\r\n wizardIndex: this.state.wizardIndex,\r\n canGoToNextStep: canGoToNextStep,\r\n viewErrors: this.state.viewErrors,\r\n emailAddress: this.state.emailAddress,\r\n result: this.state.result\r\n });\r\n return;\r\n }\r\n\r\n const newEmailAddress = (parameterName === 'emailAddress') ? parameterValue : this.state.emailAddress;\r\n\r\n if (parameterName !== 'emailAddress' && this.state.result[parameterName] !== parameterValue) {\r\n let partialResult = this.state.result;\r\n partialResult[parameterName] = parameterValue;\r\n this.setState({\r\n wizardIndex: this.state.wizardIndex,\r\n canGoToNextStep: canGoToNextStep,\r\n viewErrors: this.state.viewErrors,\r\n emailAddress: newEmailAddress,\r\n result: partialResult\r\n });\r\n }\r\n else {\r\n this.setState({\r\n wizardIndex: this.state.wizardIndex,\r\n canGoToNextStep: canGoToNextStep,\r\n viewErrors: this.state.viewErrors,\r\n emailAddress: newEmailAddress,\r\n result: this.state.result\r\n });\r\n }\r\n }\r\n\r\n displayCurrentStep() {\r\n const { options, succeeded } = this.props;\r\n const { wizardIndex, emailAddress, canGoToNextStep, result, viewErrors } = this.state;\r\n\r\n // TODO: Verify steps\r\n // TODO: If wizardIndex equals steps length set Details as the current step\r\n\r\n if (wizardIndex === options.steps.length) {\r\n return ;\r\n }\r\n\r\n if (wizardIndex === options.steps.length + 1) {\r\n const message = succeeded ? options.successfullySubmittedMessage : options.errorSubmissionMessage;\r\n const statusClass = succeeded ? \"message-success\" : \"message-error\";\r\n\r\n return ;\r\n }\r\n const item = options.steps[wizardIndex];\r\n\r\n if (item.templateName === \"DropdownField\") {\r\n return \r\n }\r\n\r\n if (item.templateName === \"RadioField\") {\r\n return \r\n }\r\n\r\n if (item.templateName === \"TextField\") {\r\n return \r\n }\r\n }\r\n\r\n render() {\r\n const { options, loading } = this.props;\r\n const {\r\n nextButtonText,\r\n submitButtonText,\r\n hasTheOneClubLayout,\r\n pagesBackgroundImageSource\r\n } = options;\r\n const { wizardIndex } = this.state;\r\n\r\n let showNextButton = wizardIndex < options.steps.length + 1;\r\n let showBackButton = wizardIndex > 0 && wizardIndex < options.steps.length + 1;\r\n\r\n let nextSubmitButtonText =\r\n wizardIndex === options.steps.length ? submitButtonText : nextButtonText;\r\n\r\n return (\r\n \r\n {loading ? : null}\r\n
{options.title}
\r\n
{options.description}
\r\n
\r\n {this.displayCurrentStep()}\r\n
\r\n {\r\n showBackButton &&\r\n \r\n {options.backButtonText}\r\n \r\n }\r\n {\r\n showNextButton &&\r\n \r\n {nextSubmitButtonText}\r\n \r\n }\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default withDataCapture(WizardDashboard);\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport WizardDashboard from './data-capture-wizard/wizard-dashboard';\r\n\r\nclass DataCaptureComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n const options = this.options;\r\n if (!options.steps) {\r\n options.steps = [];\r\n }\r\n const { imageSource } = options;\r\n ReactDOM.render(\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default DataCaptureComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport DataCaptureComponent from './js/data-capture.component';\r\n\r\nComponentsFactory.getInstance().define('data-capture', DataCaptureComponent);\r\n","import generate from 'nanoid/generate';\r\nimport BaseComponent from 'foundation/base-component';\r\n\r\nclass DfpBanner extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.targetId = generate('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 10);\r\n this.element.id = this.targetId;\r\n\r\n window.googletag = window.googletag || {};\r\n window.gptAdSlots = [];\r\n window.googletag.cmd = window.googletag.cmd || [];\r\n window.googletag.cmd.push(() => {\r\n const bottomAdSizes = window.googletag.sizeMapping()\r\n .addSize([768, 0], this.options.adUnitDesktopSize)\r\n .addSize([0, 0], this.options.adUnitMobileSize)\r\n .build();\r\n\r\n window.gptAdSlots[0] = window.googletag\r\n .defineSlot(\r\n this.options.slot, [\r\n this.options.adUnitMobileSize,\r\n this.options.adUnitDesktopSize\r\n ],\r\n this.targetId\r\n );\r\n\r\n if (window.gptAdSlots[0]) {\r\n window.gptAdSlots[0].defineSizeMapping(bottomAdSizes)\r\n .addService(window.googletag.pubads());\r\n }\r\n\r\n window.googletag.pubads().enableSingleRequest();\r\n window.googletag.companionAds().setRefreshUnfilledSlots(true);\r\n window.googletag.pubads().enableVideoAds();\r\n window.googletag.enableServices();\r\n\r\n setInterval(() => {\r\n window.googletag.pubads().refresh();\r\n }, this.options.refreshRate);\r\n });\r\n\r\n window.googletag.cmd.push(() => {\r\n window.googletag.display(this.targetId);\r\n });\r\n\r\n this.loadScipt();\r\n }\r\n\r\n loadScipt() {\r\n if (window.googletag && window.googletag.apiReady) return;\r\n\r\n const script = document.createElement('script');\r\n script.src = '//www.googletagservices.com/tag/js/gpt.js';\r\n script.async = true;\r\n document.body.appendChild(script);\r\n }\r\n}\r\n\r\nexport default DfpBanner;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport DfpBanner from './js/dfp-banner.component';\r\n\r\nComponentsFactory.getInstance().define('dfp-banner', DfpBanner);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport { SchemaOrg } from 'project/schema-org';\r\n\r\nimport { ContentType } from 'components/content-type';\r\nimport { mediaTypes } from 'components/posts';\r\n\r\nclass NewsCard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n }\r\n\r\n onClickRoot = () => {\r\n const { onCardLinkClick, model } = this.props;\r\n onCardLinkClick(model);\r\n }\r\n\r\n getFullTitle() {\r\n const { title, subtitle } = this.props.model;\r\n return title + (subtitle ? ` / ${subtitle}` : '');\r\n }\r\n\r\n getTrackingCategory(contentType) {\r\n switch (contentType) {\r\n case mediaTypes.VIDEO_PLAYER:\r\n return 'Video Player';\r\n case mediaTypes.GALLERY:\r\n return 'Gallery';\r\n default:\r\n return 'Article';\r\n }\r\n }\r\n\r\n renderContentType(model) {\r\n if (model.type === mediaTypes.GALLERY ||\r\n model.type === mediaTypes.VIDEO_PLAYER\r\n ) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n render() {\r\n const { model, bemModifiers } = this.props;\r\n let bemCss = '';\r\n\r\n if (Array.isArray(bemModifiers)) {\r\n bemCss = bemModifiers.map((x) => `news-card--${x}`).join(' ');\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n {this.renderContentType(model)}\r\n
\r\n
\r\n
\r\n

{model.label}

\r\n

\r\n {model.title}\r\n /\r\n {model.subtitle}\r\n

\r\n
\r\n {model.ctaText}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nNewsCard.propTypes = {\r\n model: PropTypes.object.isRequired,\r\n bemModifiers: PropTypes.array,\r\n onCardLinkClick: PropTypes.func,\r\n};\r\n\r\nexport default NewsCard;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\n\r\nclass FactCard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n }\r\n\r\n onClickRoot = () => {\r\n const { onCardLinkClick, model } = this.props;\r\n onCardLinkClick(model);\r\n }\r\n\r\n render() {\r\n const { model, bemModifiers } = this.props;\r\n let bemCss = '';\r\n\r\n if (Array.isArray(bemModifiers)) {\r\n if (model.isDark) {\r\n bemModifiers.push('dark');\r\n }\r\n\r\n bemCss = bemModifiers.map((x) => `fact-card--${x}`).join(' ');\r\n }\r\n\r\n return (\r\n \r\n
\r\n

{model.label}

\r\n

\r\n {model.title}\r\n

\r\n
\r\n {model.ctaText}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nFactCard.propTypes = {\r\n model: PropTypes.object.isRequired,\r\n bemModifiers: PropTypes.array,\r\n onCardLinkClick: PropTypes.func,\r\n};\r\n\r\nexport default FactCard;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport { ContentType } from 'components/content-type';\r\nimport { mediaTypes } from 'components/posts';\r\n\r\nclass PlayerCard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n }\r\n\r\n onClickRoot = () => {\r\n const { onCardLinkClick, model } = this.props;\r\n onCardLinkClick(model);\r\n }\r\n\r\n renderContentType(model) {\r\n if (model.type === mediaTypes.GALLERY ||\r\n model.type === mediaTypes.VIDEO_PLAYER\r\n ) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n render() {\r\n const { model, bemModifiers } = this.props;\r\n let bemCss = '';\r\n\r\n if (Array.isArray(bemModifiers)) {\r\n bemCss = bemModifiers.map((x) => `player-card--${x}`).join(' ');\r\n }\r\n\r\n return (\r\n \r\n
\r\n \"\"\r\n
\r\n {\r\n model.frontImage &&\r\n
\r\n \"\"\r\n
\r\n }\r\n\r\n
\r\n
\r\n

{model.label}

\r\n

\r\n {model.title}\r\n {model.subtitle && /}\r\n {model.subtitle && {model.subtitle}}\r\n

\r\n
\r\n {model.ctaText}\r\n \r\n \r\n \r\n
\r\n {this.renderContentType(model)}\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nPlayerCard.propTypes = {\r\n model: PropTypes.object.isRequired,\r\n bemModifiers: PropTypes.array,\r\n onCardLinkClick: PropTypes.func,\r\n};\r\n\r\nexport default PlayerCard;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport app from 'general/js/app';\r\nimport gtm from 'general/js/gtm';\r\nimport { themeNames } from 'components/news-feed/js/enums';\r\n\r\nclass SocialCard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.rootRef.current.addEventListener('click', this.onClickRoot);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.rootRef.current.removeEventListener('click', this.onClickRoot);\r\n }\r\n\r\n onClickRoot = (event) => {\r\n const label = `${this.getFullTitle()} > ${window.location.href}`;\r\n gtm.push('Social Post', 'Click', label);\r\n\r\n if (app.isEditMode) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n getFullTitle() {\r\n const { title, subtitle } = this.props.model;\r\n return title + (subtitle ? ` / ${subtitle}` : '');\r\n }\r\n\r\n getIconCssName(theme) {\r\n switch (theme) {\r\n case themeNames.TWITTER:\r\n return 'twitter';\r\n case themeNames.INSTAGRAM:\r\n return 'instagram';\r\n case themeNames.FACEBOOK:\r\n return 'facebook';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n renderArticle(model) {\r\n let template = null;\r\n\r\n if (model.theme !== themeNames.INSTAGRAM) {\r\n template = (\r\n
\r\n {model.description}\r\n
\r\n );\r\n } else {\r\n template = null;\r\n }\r\n\r\n return template;\r\n }\r\n\r\n renderTheme(model) {\r\n const iconCssName = this.getIconCssName(model.theme);\r\n\r\n if (!iconCssName) return null;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n render() {\r\n const { model, bemModifiers } = this.props;\r\n let bemCss = '';\r\n\r\n if (Array.isArray(bemModifiers)) {\r\n bemCss = bemModifiers.map((x) => `social-card--${x}`).join(' ');\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {this.renderTheme(model)}\r\n
\r\n
\r\n
\r\n {this.renderTheme(model)}\r\n
\r\n

\r\n {model.title}\r\n {model.subtitle}\r\n

\r\n {this.renderArticle(model)}\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nSocialCard.propTypes = {\r\n model: PropTypes.object.isRequired,\r\n bemModifiers: PropTypes.array\r\n};\r\n\r\nexport default SocialCard;\r\n","export const themeNames = {\r\n NEWS: 'News',\r\n PLAYER: 'Player',\r\n FACT: 'Fact',\r\n STANDALONE_FACT: 'Standalone Fact',\r\n TWITTER: 'Twitter',\r\n INSTAGRAM: 'Instagram',\r\n FACEBOOK: 'Facebook'\r\n};\r\n\r\nexport default {\r\n themeNames\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\n\r\nclass StandaloneFactCard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n }\r\n\r\n render() {\r\n const { model, bemModifiers } = this.props;\r\n let bemCss = '';\r\n\r\n if (Array.isArray(bemModifiers)) {\r\n if (model.isDark) {\r\n bemModifiers.push('dark');\r\n }\r\n\r\n bemCss = bemModifiers.map((x) => `fact-card--${x}`).join(' ');\r\n }\r\n\r\n return (\r\n \r\n
\r\n

{model.label}

\r\n

\r\n {model.title}\r\n

\r\n
\r\n
\r\n \"\"\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nStandaloneFactCard.propTypes = {\r\n model: PropTypes.object.isRequired,\r\n bemModifiers: PropTypes.array,\r\n};\r\n\r\nexport default StandaloneFactCard;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport gtm from 'general/js/gtm';\r\nimport { mediaTypes } from 'components/posts';\r\nimport NewsCard from '../../cards/js/news-card';\r\nimport FactCard from '../../cards/js/fact-card';\r\nimport PlayerCard from '../../cards/js/player-card';\r\nimport SocialCard from '../../cards/js/social-card';\r\nimport StandaloneFactCard from '../../cards/js/standalone-fact-card';\r\nimport { themeNames } from './enums';\r\n\r\nclass NewsFeedListing extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onCardLinkClick = this.onCardLinkClick.bind(this);\r\n }\r\n\r\n getCardByTheme(model, slotModifiers) {\r\n switch (model.theme) {\r\n case themeNames.NEWS:\r\n return (\r\n \r\n );\r\n case themeNames.PLAYER:\r\n return (\r\n \r\n );\r\n case themeNames.FACT:\r\n return (\r\n \r\n );\r\n case themeNames.STANDALONE_FACT:\r\n return (\r\n \r\n );\r\n case themeNames.TWITTER:\r\n return (\r\n \r\n );\r\n case themeNames.INSTAGRAM:\r\n return (\r\n \r\n );\r\n case themeNames.FACEBOOK:\r\n return (\r\n \r\n );\r\n default:\r\n console.log(`Unknown card theme: ${model.theme}, rendering has been ignored.`);\r\n return null;\r\n }\r\n }\r\n\r\n onCardLinkClick(model) {\r\n const actionClick = 'Click';\r\n const fullTitle = this.getFullTitle(model);\r\n const currentLocation = window.location.href;\r\n const trackingCategory = this.getTrackingCategory(model.type);\r\n const label = `${fullTitle} > ${currentLocation}`;\r\n\r\n gtm.push(trackingCategory, actionClick, label);\r\n }\r\n\r\n getFullTitle(model) {\r\n const { title, subtitle } = model;\r\n return title + (subtitle ? ` / ${subtitle}` : '');\r\n }\r\n\r\n getTrackingCategory(contentType) {\r\n switch (contentType) {\r\n case mediaTypes.VIDEO_PLAYER:\r\n return 'Video Player';\r\n case mediaTypes.GALLERY:\r\n return 'Gallery';\r\n default:\r\n return 'Article';\r\n }\r\n }\r\n\r\n getRowPattern(itemIndex) {\r\n const pattern = this.props.pattern;\r\n\r\n if (!Array.isArray(pattern)) return null;\r\n\r\n const totalSlots = pattern.reduce((acc, cur) => acc + cur.slots.length, 0);\r\n const slotIndex = itemIndex % totalSlots;\r\n let total = 0;\r\n\r\n for (let i = 0; i < pattern.length; i++) {\r\n const row = pattern[i];\r\n\r\n total += row.slots.length;\r\n\r\n if (slotIndex <= total - 1) {\r\n return row;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n renderRow(pattern, cardsList, index) {\r\n const rowCss = pattern.modifiers.map((x) => `news-feed-row--${x}`).join(' ');\r\n const gridCss = pattern.modifiers.map((x) => `news-feed-grid--${x}`).join(' ');\r\n\r\n return (\r\n
\r\n
\r\n {\r\n cardsList.map((card, i) => {\r\n const slot = pattern.slots[i];\r\n const slotCss = slot.modifiers.map((x) => `news-feed-slot--${x}`).join(' ');\r\n\r\n return (\r\n
\r\n {this.getCardByTheme(card, slot.modifiers)}\r\n
\r\n );\r\n })\r\n }\r\n
\r\n
\r\n );\r\n }\r\n\r\n renderCards() {\r\n const cardsList = this.props.items || [];\r\n const grid = [];\r\n let i = 0;\r\n let index = 0;\r\n\r\n while (i < cardsList.length) {\r\n const rowPattern = this.getRowPattern(i);\r\n\r\n if (!rowPattern) return null;\r\n\r\n grid.push(this.renderRow(\r\n rowPattern,\r\n cardsList.slice(i, i + rowPattern.slots.length),\r\n index,\r\n ));\r\n\r\n i += rowPattern.slots.length;\r\n index++;\r\n }\r\n\r\n return grid;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.renderCards()}\r\n \r\n );\r\n }\r\n}\r\n\r\nNewsFeedListing.propTypes = {\r\n items: PropTypes.array.isRequired,\r\n pattern: PropTypes.array.isRequired\r\n};\r\n\r\nexport default NewsFeedListing;\r\n","import { DEVICE_TYPE_DESKTOP_WIDE } from '../../../general/js/app';\r\n\r\nexport const rowNames = {\r\n TALL: 'TALL',\r\n TALL_REVERSE: 'TALL_REVERSE',\r\n NARROW: 'NARROW',\r\n NARROW_REVERSE: 'NARROW_REVERSE',\r\n TWO_THIRDS_AND_ONE_THIRD: 'TWO_THIRDS_AND_ONE_THIRD',\r\n ONE_THIRD_AND_TWO_THIRDS: 'ONE_THIRD_AND_TWO_THIRDS',\r\n DOUBLE_TWO_THIRDS: 'DOUBLE_TWO_THIRDS',\r\n TRIPLE_ONE_THIRD: 'TRIPLE_ONE_THIRD'\r\n};\r\n\r\nconst rowPattern = {\r\n [rowNames.TALL]: {\r\n modifiers: ['tall'],\r\n slots: [\r\n {\r\n type: 'tall',\r\n modifiers: ['tall'],\r\n }\r\n ]\r\n },\r\n [rowNames.TALL_REVERSE]: {\r\n modifiers: ['tall-reverse'],\r\n slots: [\r\n {\r\n type: 'tall',\r\n modifiers: ['tall', 'tall-reverse'],\r\n }\r\n ]\r\n },\r\n [rowNames.NARROW]: {\r\n modifiers: ['narrow'],\r\n slots: [\r\n {\r\n type: 'narrow',\r\n modifiers: ['narrow']\r\n }\r\n ]\r\n },\r\n [rowNames.NARROW_REVERSE]: {\r\n modifiers: ['narrow-reverse'],\r\n slots: [\r\n {\r\n type: 'narrow',\r\n modifiers: ['narrow', 'narrow-reverse']\r\n }\r\n ]\r\n },\r\n [rowNames.TWO_THIRDS_AND_ONE_THIRD]: {\r\n modifiers: ['two-thirds-and-one-third'],\r\n slots: [\r\n {\r\n type: 'two-thirds',\r\n modifiers: ['two-thirds']\r\n },\r\n {\r\n type: 'one-third',\r\n modifiers: ['one-third']\r\n }\r\n ]\r\n },\r\n [rowNames.ONE_THIRD_AND_TWO_THIRDS]: {\r\n modifiers: ['one-third-and-two-thirds'],\r\n slots: [\r\n {\r\n type: 'one-third',\r\n modifiers: ['one-third']\r\n },\r\n {\r\n type: 'two-thirds',\r\n modifiers: ['two-thirds']\r\n }\r\n ]\r\n },\r\n [rowNames.DOUBLE_TWO_THIRDS]: {\r\n modifiers: ['double-two-thirds'],\r\n slots: [\r\n {\r\n type: 'two-thirds',\r\n modifiers: ['two-thirds']\r\n },\r\n {\r\n type: 'two-thirds',\r\n modifiers: ['two-thirds']\r\n }\r\n ]\r\n },\r\n [rowNames.TRIPLE_ONE_THIRD]: {\r\n modifiers: ['triple-one-third'],\r\n slots: [\r\n {\r\n type: 'one-third',\r\n modifiers: ['one-third']\r\n },\r\n {\r\n type: 'one-third',\r\n modifiers: ['one-third']\r\n },\r\n {\r\n type: 'one-third',\r\n modifiers: ['one-third']\r\n }\r\n ]\r\n }\r\n};\r\n\r\nconst getTall = (deviceType) => {\r\n switch (deviceType) {\r\n default:\r\n return rowPattern[rowNames.TALL];\r\n }\r\n};\r\n\r\nconst getTallReverse = (deviceType) => {\r\n switch (deviceType) {\r\n default:\r\n return rowPattern[rowNames.TALL_REVERSE];\r\n }\r\n};\r\n\r\nconst getNarrow = (deviceType) => {\r\n switch (deviceType) {\r\n default:\r\n return rowPattern[rowNames.NARROW];\r\n }\r\n};\r\n\r\nconst getNarrowReverse = (deviceType) => {\r\n switch (deviceType) {\r\n default:\r\n return rowPattern[rowNames.NARROW_REVERSE];\r\n }\r\n};\r\n\r\nconst getTwoThirdsAndOneThird = (deviceType) => {\r\n switch (deviceType) {\r\n case DEVICE_TYPE_DESKTOP_WIDE:\r\n return rowPattern[rowNames.TWO_THIRDS_AND_ONE_THIRD];\r\n default:\r\n return rowPattern[rowNames.DOUBLE_TWO_THIRDS];\r\n }\r\n};\r\n\r\nconst getOneThirdAndTwoThirds = (deviceType) => {\r\n switch (deviceType) {\r\n case DEVICE_TYPE_DESKTOP_WIDE:\r\n return rowPattern[rowNames.ONE_THIRD_AND_TWO_THIRDS];\r\n default:\r\n return rowPattern[rowNames.DOUBLE_TWO_THIRDS];\r\n }\r\n};\r\n\r\nconst getTrippleOneThird = (deviceType) => {\r\n switch (deviceType) {\r\n default:\r\n return rowPattern[rowNames.TRIPLE_ONE_THIRD];\r\n }\r\n};\r\n\r\nexport const getPatternByDeviceType = (patternName, deviceType) => {\r\n switch (patternName) {\r\n case rowNames.TALL:\r\n return getTall(deviceType);\r\n case rowNames.TALL_REVERSE:\r\n return getTallReverse(deviceType);\r\n case rowNames.NARROW:\r\n return getNarrow(deviceType);\r\n case rowNames.NARROW_REVERSE:\r\n return getNarrowReverse(deviceType);\r\n case rowNames.TWO_THIRDS_AND_ONE_THIRD:\r\n return getTwoThirdsAndOneThird(deviceType);\r\n case rowNames.ONE_THIRD_AND_TWO_THIRDS:\r\n return getOneThirdAndTwoThirds(deviceType);\r\n case rowNames.TRIPLE_ONE_THIRD:\r\n return getTrippleOneThird(deviceType);\r\n default:\r\n console.log('Unknown row pattern name');\r\n return null;\r\n }\r\n};\r\n\r\nexport default rowPattern;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport app, { EVENT_DEVICE_TYPE_CHANGED } from '../../../general/js/app';\r\nimport NewsFeedListing from '../../news-feed/js/news-feed-listing';\r\nimport { getPatternByDeviceType } from '../../news-feed/js/row-patterns';\r\nimport eventBus from '../../../general/js/event-bus';\r\n\r\nclass FeatureContentCopmonent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.data = this.getData();\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [];\r\n }\r\n\r\n init() {\r\n this.render();\r\n\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.onChangeDeviceType);\r\n }\r\n\r\n getData() {\r\n const data = [];\r\n\r\n if (!Array.isArray(this.refs.row)) return data;\r\n\r\n this.refs.row.forEach((row) => {\r\n const rowData = this.getRowData(row);\r\n\r\n if (rowData && Array.isArray(rowData.items)) {\r\n const pattern = [getPatternByDeviceType(\r\n rowData.patternName,\r\n app.deviceTypeByViewport\r\n )];\r\n\r\n this.removeDataAttr(row);\r\n\r\n data.push({\r\n pattern: pattern || [],\r\n patternName: rowData.patternName,\r\n items: rowData.items,\r\n node: row\r\n });\r\n }\r\n });\r\n\r\n return data;\r\n }\r\n\r\n getRowData(row) {\r\n let data = null;\r\n\r\n try {\r\n data = JSON.parse(this.getAttribute(row, 'json'));\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n removeDataAttr(row) {\r\n this.removeAttribute(row, 'json');\r\n }\r\n\r\n onChangeDeviceType = () => {\r\n this.updatePattern();\r\n this.render();\r\n }\r\n\r\n updatePattern() {\r\n this.data.forEach((row) => {\r\n row.pattern = [getPatternByDeviceType(row.patternName, app.deviceTypeByViewport)];\r\n });\r\n }\r\n\r\n render() {\r\n this.data.forEach((row) => {\r\n ReactDOM.render(\r\n ,\r\n row.node\r\n );\r\n });\r\n }\r\n\r\n onDestroy() {\r\n this.data.forEach((row) => {\r\n ReactDOM.unmountComponentAtNode(row.node);\r\n });\r\n }\r\n}\r\n\r\nexport default FeatureContentCopmonent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport FeatureContentComponent from './js/feature-content.component';\r\n\r\nComponentsFactory.getInstance().define('feature-content', FeatureContentComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\nimport { RANDA_MEMBER, STANDARD, THEONECLUB } from './constants';\r\nimport app from '../../../general/js/app';\r\nimport { RA_MEMBER_UPDATED_INFO } from '../../../general/js/user/constants';\r\nimport { redirectTo } from '../../../general/js/utils';\r\n\r\nexport default class ForceSignInComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.accountType = this.getAttribute(this.element, 'account-type');\r\n this.redirectUrl = this.getAttribute(this.element, 'redirect-url');\r\n this.checkIsUserLoggedIn();\r\n }\r\n\r\n checkIsUserLoggedIn() {\r\n const userDataCookie = Cookies.get(app.state.userDataCookieName);\r\n const raMemberUpdatedInfoCookie = Cookies.get(RA_MEMBER_UPDATED_INFO);\r\n\r\n switch (this.accountType) {\r\n case RANDA_MEMBER:\r\n if (this.isUserLoggedIn(userDataCookie)) {\r\n if (this.isRandaMemberLoggedIn(userDataCookie, raMemberUpdatedInfoCookie)) {\r\n return true;\r\n }\r\n if (this.redirectUrl === '') {\r\n redirectTo(app.state.memberLoginFailedLink);\r\n return false;\r\n }\r\n }\r\n\r\n redirectTo(this.redirectUrl === '' ? app.state.memberLoginFailedLink : this.redirectUrl);\r\n return false;\r\n case STANDARD:\r\n return true;\r\n case THEONECLUB:\r\n return true;\r\n default: return false;\r\n }\r\n }\r\n\r\n isUserLoggedIn(userDataCookie) {\r\n if (userDataCookie !== undefined) {\r\n const userData = JSON.parse(userDataCookie);\r\n if (userData !== undefined && userData.isSignedIn) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isRandaMemberLoggedIn(userDataCookie, raMemberUpdatedInfoCookie) {\r\n const userData = JSON.parse(userDataCookie);\r\n\r\n if (userData.isRandaMember !== undefined && userData.isRandaMember) {\r\n return true;\r\n }\r\n if (userData.hasRaMemberId !== undefined && userData.hasRaMemberId) {\r\n return true;\r\n }\r\n if (raMemberUpdatedInfoCookie && raMemberUpdatedInfoCookie === 'true') {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","export const RANDA_MEMBER = 'RANDAMEMBER';\r\nexport const STANDARD = 'STANDARD';\r\nexport const THEONECLUB = 'THEONECLUB';","import ComponentsFactory from 'foundation/components-factory';\r\nimport ForceSignInComponent from './js/force-sign-in.component';\r\n\r\nComponentsFactory.getInstance().define('force-sign-in', ForceSignInComponent);\r\n","class Facebook {\r\n load = (appId) => {\r\n return new Promise((resolve) => {\r\n if (!window.FB) {\r\n const script = document.createElement('script');\r\n script.src = 'https://connect.facebook.net/en_US/sdk.js';\r\n script.async = true;\r\n script.onload = () => {\r\n this.init(appId).then(() => {\r\n resolve();\r\n });\r\n };\r\n document.body.appendChild(script);\r\n }\r\n resolve();\r\n });\r\n };\r\n\r\n init = (appId) => {\r\n return new Promise((resolve) => {\r\n window.FB.init({\r\n appId,\r\n status: true,\r\n cookie: true,\r\n xfbml: true,\r\n version: 'v3.2'\r\n });\r\n resolve();\r\n });\r\n };\r\n\r\n signIn() {\r\n const fb = window.FB;\r\n\r\n return new Promise((resolve, reject) => {\r\n fb.getLoginStatus((response) => {\r\n if (response.status === 'connected') {\r\n resolve(response.authResponse);\r\n }\r\n\r\n fb.login((loginResponse) => {\r\n if (!loginResponse || !loginResponse.authResponse) {\r\n reject();\r\n }\r\n const accessToken = loginResponse.authResponse.accessToken;\r\n const expiresIn = loginResponse.authResponse.expiresIn;\r\n const authObject = {\r\n accessToken,\r\n expiresIn\r\n };\r\n resolve(authObject);\r\n },\r\n {\r\n // the authorized scopes\r\n scope: 'email'\r\n });\r\n });\r\n });\r\n }\r\n\r\n getUserObject() {\r\n const fb = window.FB;\r\n\r\n return new Promise((resolve) => {\r\n fb.api('/me?fields=id,name,email', (response) => {\r\n const username = response.name.replace(/\\s/g, '');\r\n const id = response.id;\r\n const user = {\r\n id,\r\n username\r\n };\r\n resolve(user);\r\n });\r\n });\r\n }\r\n}\r\n\r\nconst instance = new Facebook();\r\n\r\nexport default instance;\r\n","class Google {\r\n load = (appId) => {\r\n return new Promise((resolve, reject) => {\r\n const meta1 = document.createElement('meta');\r\n meta1.name = \"google-signin-scope\";\r\n meta1.content = \"profile email\";\r\n document.head.appendChild(meta1);\r\n\r\n const clientIdString = appId + '.apps.googleusercontent.com';\r\n const meta2 = document.createElement('meta');\r\n meta2.name = \"google-signin-client_id\";\r\n meta2.content = clientIdString;\r\n document.head.appendChild(meta2);\r\n\r\n const script = document.createElement('script');\r\n script.src = 'https://apis.google.com/js/platform.js';\r\n script.async = true;\r\n script.defer = true;\r\n script.onload = () => {\r\n this.init(appId).then(() => {\r\n resolve();\r\n });\r\n };\r\n document.body.appendChild(script);\r\n });\r\n };\r\n\r\n init = (appId) => {\r\n const clientIdString = appId + '.apps.googleusercontent.com';\r\n\r\n return new Promise((resolve, reject) => {\r\n gapi.load('client:auth2', () => {\r\n //Retrieve the singleton for the GoogleAuth library and set up the client.\r\n this.auth2 = gapi.auth2.init({\r\n client_id: clientIdString,\r\n cookiepolicy: 'single_host_origin',\r\n });\r\n resolve();\r\n });\r\n });\r\n };\r\n\r\n signIn(element) {\r\n return new Promise((resolve, reject) => {\r\n this.auth2.attachClickHandler(element, {},\r\n (googleUser) => {\r\n this.googleUser = googleUser;\r\n const authResponse = googleUser.getAuthResponse();\r\n const accessToken = authResponse['id_token'];\r\n const expiresIn = authResponse['expires_in'];\r\n const authObject = {\r\n accessToken,\r\n expiresIn\r\n };\r\n resolve(authObject);\r\n }, (error) => {\r\n reject(JSON.stringify(error, undefined, 2));\r\n });\r\n });\r\n }\r\n\r\n getUserObject() {\r\n return new Promise((resolve) => {\r\n const profile = this.googleUser.getBasicProfile();\r\n const id = profile.getId();\r\n const username = profile.getGivenName() + '_' + profile.getFamilyName();\r\n const email = profile.getEmail();\r\n const user = {\r\n id,\r\n username,\r\n email\r\n };\r\n resolve(user);\r\n });\r\n }\r\n}\r\n\r\nconst instance = new Google();\r\n\r\nexport default instance;\r\n","import {Auth} from 'aws-amplify';\r\n\r\nclass Amazon {\r\n load = (appId) => {\r\n const domain = window.location.href.toString().split(window.location.host)[1];\r\n return new Promise((resolve) => {\r\n window.onAmazonLoginReady = () => {\r\n amazon.Login.setClientId(appId);\r\n amazon.Login.setSiteDomain('randa.deletestaging.com');\r\n };\r\n\r\n (function(d) {\r\n const a = d.createElement('script');\r\n a.type = 'text/javascript';\r\n a.async = true;\r\n a.id = 'amazon-login-sdk';\r\n a.src = 'https://assets.loginwithamazon.com/sdk/na/login1.js';\r\n a.onload = () => {\r\n resolve();\r\n };\r\n d.body.appendChild(a);\r\n })(document);\r\n });\r\n };\r\n\r\n signIn() {\r\n const options = { scope : 'profile' };\r\n\r\n return new Promise((resolve, reject) => {\r\n amazon.Login.authorize(options, (response) => {\r\n if (response.error) {\r\n reject(response.error);\r\n }\r\n const accessToken = response['access_token'];\r\n const expiresIn = response['expires_in'];\r\n const authObject = {\r\n accessToken,\r\n expiresIn\r\n };\r\n resolve(authObject);\r\n });\r\n });\r\n }\r\n\r\n getUserObject() {\r\n return new Promise((resolve) => {\r\n amazon.Login.retrieveProfile((response) => {\r\n const id = response.profile.CustomerId;\r\n const username = response.profile.Name.replace(/\\s/g, '');\r\n const email = response.profile.PrimaryEmail;\r\n const user = {\r\n id,\r\n username,\r\n email\r\n };\r\n resolve(user);\r\n });\r\n });\r\n }\r\n}\r\n\r\nconst instance = new Amazon();\r\n\r\nexport default instance;\r\n","import { Auth } from 'aws-amplify';\r\nimport 'jquery-serializejson';\r\nimport axios from 'axios';\r\nimport get from 'lodash/get';\r\nimport qs from 'qs';\r\nimport HtmlHelper from 'foundation/html-helper';\r\nimport { AmplifyClient } from 'project/amplify-client';\r\nimport FormComponent from './form.component';\r\nimport facebook from '../../social-provider/js/facebook';\r\nimport google from '../../social-provider/js/google';\r\nimport amazon from '../../social-provider/js/amazon';\r\nimport pageSpinner from '../../../general/js/page-spinner';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport errorsSummaryTemplate from '../html/errors-summary.hbs';\r\nimport GTM from '../../../general/js/gtm';\r\nimport { redirectTo } from '../../../general/js/utils';\r\n\r\nconst api = axios.create({\r\n timeout: 60000,\r\n withCredentials: true,\r\n});\r\n\r\nconst PROFILE_API_URL = window.appState.ssoConfig.userProfileApiUrl;\r\nconst CHECK_EMAIL_URL = PROFILE_API_URL + 'UserProfile/checkEmail';\r\nconst REGISTRATION_URL = PROFILE_API_URL + 'UserProfile';\r\nconst UPDATE_ACCOUNT_URL = PROFILE_API_URL + 'UserProfile';\r\nconst GET_USER_PROFILE_URL = PROFILE_API_URL + 'UserProfile';\r\nconst CREATE_TICKET_ACCOUNT_URL = PROFILE_API_URL + 'UserProfile/createTicketingAccount';\r\nconst CHANGE_PASSWORD_URL = PROFILE_API_URL + 'UserProfile/changePassword';\r\nconst CONFIRM_PASSWORD_URL = PROFILE_API_URL + 'UserProfile/confirmForgotPassword';\r\nconst FORGOT_PASSWORD_URL = PROFILE_API_URL + 'UserProfile/forgotPassword';\r\n\r\nconst HEADERS = {\r\n 'Access-Control-Allow-Origin': window.location.origin,\r\n 'Content-Type': 'application/json'\r\n};\r\n\r\nconst SERVER_ERROR_MESSAGE = 'Something went wrong';\r\nconst USER_NOT_FOUND_ERROR_MESSAGE = 'Your login attempt was unsuccessfull. Please try again.';\r\n\r\nconst GENERATE_PASSWORD_URL = '/api/sitecore/account/generatepassword';\r\nconst ASYNC_ACTION_SAML = 'SamlRequest';\r\n\r\nexport default class FormSsoComponent extends FormComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.formData = {};\r\n this.formNode = this.refs.form ? this.refs.form : this.element;\r\n\r\n AmplifyClient.init();\r\n\r\n this.setFormFieldTracking();\r\n\r\n this.setUrl();\r\n this.setFormType();\r\n this.addListeners();\r\n // this.initProviders();\r\n }\r\n\r\n setUrl() {\r\n this.ACCOUNT_SIGNIN_URL = this.getAttribute(this.element, 'signin-url');\r\n this.COMPLETE_DETAILS_URL = this.getAttribute(this.element, 'complete-details-url');\r\n this.SIGN_OUT_URL = this.refs.signOut ? this.getAttribute(this.refs.signOut, 'signout') : '';\r\n this.DEFAULT_REDIRECT_URL = '/';\r\n }\r\n\r\n setFormType() {\r\n this.getAccessToken();\r\n\r\n if (this.getAttribute(this.element, 'type') === 'register') {\r\n this.formType = 'register';\r\n this.formNode = this.refs.form;\r\n } else if (this.getAttribute(this.element, 'type') === 'register-light') {\r\n this.formType = 'register-light';\r\n this.formNode = this.refs.form;\r\n } else if (this.getAttribute(this.element, 'type') === 'signin') {\r\n this.formType = 'signin';\r\n this.addListener(this.refs.forgotPasswordLink, 'click', this.onShowForgotPassword);\r\n this.formNode = this.refs.form;\r\n }\r\n }\r\n\r\n addListeners() {\r\n this.addListener(this.element, 'submit', this.onSubmit);\r\n\r\n if (this.refs.submitButton) {\r\n this.addListener(this.refs.submitButton, 'click', this.onSubmit);\r\n }\r\n\r\n if (this.refs.optInToOneClub) {\r\n this.addListener(this.refs.optInToOneClub, 'click', this.onOptInOneClub);\r\n }\r\n\r\n if (this.refs.signOut) {\r\n this.addListener(this.refs.signOut, 'click', this.onSignOut);\r\n }\r\n\r\n if (this.refs.updateButton) {\r\n this.addListener(this.refs.updateButton, 'click', this.onUpdateConsents);\r\n }\r\n\r\n if (this.refs.changePassword) {\r\n this.addListener(this.refs.changePassword, 'click', this.onChangePassword);\r\n }\r\n\r\n if (this.refs.updateAddressSubmit) {\r\n this.addListener(this.refs.updateAddressSubmit, 'click', this.onUpdateAddress);\r\n }\r\n\r\n if (this.refs.updateDetailsSubmit) {\r\n this.addListener(this.refs.updateDetailsSubmit, 'click', this.onUpdateDetails);\r\n }\r\n\r\n if (this.refs.completeDetailsSubmit) {\r\n this.addListener(this.refs.completeDetailsSubmit, 'click', this.onCompleteDetails);\r\n }\r\n\r\n if (this.refs.emailInput) {\r\n this.addListener(this.refs.emailInput, 'focusout', this.onEmailFocusOut);\r\n }\r\n }\r\n\r\n initProviders() {\r\n facebook.load(this.options.facebook.appId).then(() => {\r\n if (!this.refs.facebook) return;\r\n this.addListener(this.refs.facebook, 'click', this.onSocialSignin.bind(this, 'facebook'));\r\n });\r\n\r\n google.load(this.options.google.clientId).then(() => {\r\n if (!this.refs.google) return;\r\n this.onSocialSignin('google');\r\n });\r\n\r\n amazon.load(this.options.amazon.clientId).then(() => {\r\n if (!this.refs.amazon) return;\r\n this.addListener(this.refs.amazon, 'click', this.onSocialSignin.bind(this, 'amazon'));\r\n });\r\n }\r\n\r\n onSocialSignin = (provider) => {\r\n if (provider === 'facebook') {\r\n facebook.signIn().then((authObject) => {\r\n facebook.getUserObject().then((user) => {\r\n //this.federatedSignIn(provider, authObject.accessToken, authObject.expiresIn, `${user.username}.${user.id}`);\r\n this.federatedSignIn(provider, authObject.accessToken, authObject.expiresIn, user.username, user.id);\r\n });\r\n });\r\n } else if (provider === 'google') {\r\n google.signIn(this.refs.google).then((authObject) => {\r\n google.getUserObject().then((user) => {\r\n //this.federatedSignIn(provider, authObject.accessToken, authObject.expiresIn, `${user.username}.${user.id}`);\r\n this.federatedSignIn(provider, authObject.accessToken, authObject.expiresIn, user.username, user.id);\r\n });\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n } else if (provider === 'amazon') {\r\n amazon.signIn().then((authObject) => {\r\n amazon.getUserObject().then((user) => {\r\n //this.federatedSignIn(provider, authObject.accessToken, authObject.expiresIn, `${user.username}.${user.id}`);\r\n this.federatedSignIn(provider, authObject.accessToken, authObject.expiresIn, user.username, user.id);\r\n });\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n }\r\n };\r\n\r\n federatedSignIn = (socialProvider, accessToken, expiresIn, username) => {\r\n const date = new Date();\r\n const expiresAt = expiresIn * 1000 + date.getTime();\r\n\r\n pageSpinner.show();\r\n\r\n Auth.federatedSignIn(socialProvider, { token: accessToken, expiresAt }, username)\r\n .then((credentials) => {\r\n console.log(credentials);\r\n this.requestGeneratedPassword().then((generatedPassword) => {\r\n const password = generatedPassword.data.toString();\r\n this.signIn(username, password, socialProvider);\r\n });\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n if (err === 'not authenticated') {\r\n this.requestGeneratedPassword().then((generatedPassword) => {\r\n const password = generatedPassword.data.toString();\r\n this.showCompleteRegister(socialProvider, username, password);\r\n });\r\n }\r\n });\r\n };\r\n\r\n hideErrorsSummary() {\r\n if (this.errorsSummary) {\r\n this.errorsSummary.forEach((errorsSummary) => {\r\n errorsSummary.classList.remove('is-shown');\r\n });\r\n }\r\n }\r\n\r\n onSubmit = (event) => {\r\n event.preventDefault();\r\n\r\n if (this.refs.form && this.refs.form.classList.contains('is-hidden')) return false;\r\n\r\n this.hideErrorsSummary();\r\n this.revalidateForm().then(() => {\r\n pageSpinner.show();\r\n\r\n if (this.formType === 'register') {\r\n const title = this.formData.Title ? this.formData.Title : '';\r\n const firstName = this.formData.FirstName;\r\n const lastName = this.formData.Surname;\r\n const email = this.formData.EmailAddress.toLowerCase();\r\n const address = {\r\n addressLine1: this.formData.AddressLine1 ? this.formData.AddressLine1 : '',\r\n addressLine2: this.formData.AddressLine2 ? this.formData.AddressLine2 : '',\r\n postcode: this.formData.Postcode ? this.formData.Postcode : '',\r\n city: this.formData.City ? this.formData.City : '',\r\n country: this.formData.Country,\r\n county: this.formData.County ? this.formData.County : '',\r\n };\r\n const dateOfBirth = this.getDateOfBirth();\r\n const password = this.formData.Password;\r\n const interests = this.getVenuesObject();\r\n const checkboxesValuesObject = this.collectCheckboxesData();\r\n const optIns = {\r\n optedTheOpenOffersByEmail: !checkboxesValuesObject.OptedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail: checkboxesValuesObject.OptedPartnersOffersByEmail,\r\n agreedToPrivacyPolicy: checkboxesValuesObject.AgreedToPrivacyPolicy\r\n };\r\n const isOneClubMember = this.refs.isOneClubMember ? this.refs.isOneClubMember.value : false;\r\n const createTicketingAccount = (this.getAttribute(this.element, 'checkout') === 'true');\r\n const antiForgeryToken = this.element.querySelector('input[name=\"__RequestVerificationToken\"]') ? this.element.querySelector('input[name=\"__RequestVerificationToken\"]').value : '';\r\n const raMemberId = this.formData.raMemberId;\r\n const fieldsData = {\r\n user: {\r\n title,\r\n email,\r\n firstName,\r\n lastName,\r\n address,\r\n dateOfBirth,\r\n optIns,\r\n interests,\r\n ticketingAccountId: '',\r\n isOneClubMember\r\n },\r\n password,\r\n createTicketingAccount,\r\n raMemberId\r\n };\r\n\r\n this.register(fieldsData, antiForgeryToken);\r\n } else if (this.formType === 'register-light') {\r\n const title = '';\r\n const firstName = this.formData.FirstName;\r\n const lastName = this.formData.Surname;\r\n const dateOfBirth = this.getDateOfBirth();\r\n const email = this.formData.EmailAddress.toLowerCase();\r\n const address = {\r\n country: this.formData.Country,\r\n county: this.formData.County ? this.formData.County : ''\r\n };\r\n const password = this.formData.Password;\r\n const checkboxesValuesObject = this.collectCheckboxesData();\r\n const optIns = {\r\n optedTheOpenOffersByEmail: !checkboxesValuesObject.OptedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail: checkboxesValuesObject.OptedPartnersOffersByEmail,\r\n agreedToPrivacyPolicy: checkboxesValuesObject.AgreedToPrivacyPolicy\r\n };\r\n const isOneClubMember = true;\r\n const createTicketingAccount = false;\r\n const antiForgeryToken = this.element.querySelector('input[name=\"__RequestVerificationToken\"]') ? this.element.querySelector('input[name=\"__RequestVerificationToken\"]').value : '';\r\n const fieldsData = {\r\n user: {\r\n title,\r\n email,\r\n firstName,\r\n lastName,\r\n dateOfBirth,\r\n address,\r\n optIns,\r\n ticketingAccountId: '',\r\n isOneClubMember\r\n },\r\n password,\r\n createTicketingAccount\r\n };\r\n\r\n this.register(fieldsData, antiForgeryToken);\r\n } else if (this.formType === 'signin') {\r\n const username = this.formData.EmailAddress.toLowerCase();\r\n const password = this.formData.Password;\r\n const antiForgeryToken = this.element.querySelector('input[name=\"__RequestVerificationToken\"]') ? this.element.querySelector('input[name=\"__RequestVerificationToken\"]').value : '';\r\n this.signIn(username, password, antiForgeryToken);\r\n }\r\n\r\n return false;\r\n });\r\n\r\n return false;\r\n };\r\n\r\n register(fieldsData, antiForgeryToken) {\r\n api.post(REGISTRATION_URL, fieldsData, {\r\n headers: HEADERS\r\n })\r\n .then((result) => {\r\n pageSpinner.hide();\r\n this.sendFormTracking();\r\n const errors = get(result.data, 'errors', null);\r\n if (errors) {\r\n this.showServerError(errors.general);\r\n } else if (this.getAttribute(this.element, 'checkout') === 'true') {\r\n this.signIn(fieldsData.user.email, fieldsData.password, antiForgeryToken);\r\n } else {\r\n userService.signOut()\r\n .then(() => {\r\n this.onUserNotConfirmed();\r\n })\r\n .catch((err) => {\r\n this.showServerError(err);\r\n });\r\n }\r\n }, (err) => {\r\n if (err.response.status === 409) {\r\n pageSpinner.hide();\r\n this.showServerError(err.response.data);\r\n } else {\r\n pageSpinner.hide();\r\n this.showServerError(SERVER_ERROR_MESSAGE);\r\n }\r\n });\r\n }\r\n\r\n requestGeneratedPassword() {\r\n return api.get(GENERATE_PASSWORD_URL)\r\n .then((response) => {\r\n return Promise.resolve(response);\r\n }, (error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n signIn(username, password, antiForgeryToken, socialProvider = '') {\r\n const userName = username.trim();\r\n\r\n this.checkSignIn().then(() => {\r\n Auth.signIn(userName, password).then((user) => {\r\n this.user = user;\r\n\r\n if (user.challengeName === 'SMS_MFA' ||\r\n user.challengeName === 'SOFTWARE_TOKEN_MFA') {\r\n // You need to get the code from the UI inputs\r\n // and then trigger the following function with a button click\r\n //const code = getCodeFromUserInput();\r\n // If MFA is enabled, sign-in should be confirmed with the confirmation code\r\n // (async () => {\r\n // const loggedUser = await Auth.confirmSignIn(\r\n // user, // Return object from Auth.signIn()\r\n // code, // Confirmation code\r\n // mfaType // MFA Type e.g. SMS, TOTP.\r\n // );\r\n // })();\r\n } else if (user.challengeName === 'NEW_PASSWORD_REQUIRED') {\r\n this.onShowCompletePassword(user);\r\n } else if (user.challengeName === 'MFA_SETUP') {\r\n // This happens when the MFA method is TOTP\r\n // The user needs to setup the TOTP before using it\r\n // More info please check the Enabling MFA part\r\n Auth.setupTOTP(user);\r\n } else {\r\n // The user directly signs in\r\n const emailAddress = username;\r\n const returnUrl = this.refs.returnUrl ? this.refs.returnUrl.value : '/';\r\n const loginFailedReturnUrl = this.refs.loginFailedReturnUrl ? this.refs.loginFailedReturnUrl.value : '/';\r\n\r\n this.getAccessToken().then((token) => {\r\n this.getCurrentUser(token).then((currentUser) => {\r\n const secuTixSignInRequest = {\r\n emailAddress,\r\n password,\r\n returnUrl,\r\n loginFailedReturnUrl,\r\n __RequestVerificationToken: antiForgeryToken\r\n };\r\n\r\n if (this.getAttribute(this.element, 'checkout') === 'true') {\r\n if (currentUser.ticketingAccountId) {\r\n this.secutixSignIn(secuTixSignInRequest);\r\n } else if (!this.checkRequiredSecutixFields(currentUser)) {\r\n redirectTo(this.COMPLETE_DETAILS_URL);\r\n } else {\r\n const headers = this.setAuthorizationHeader(token);\r\n\r\n api.post(CREATE_TICKET_ACCOUNT_URL, { emailAddress, password }, {\r\n headers\r\n })\r\n .then(() => {\r\n this.secutixSignIn(secuTixSignInRequest);\r\n }, () => {\r\n this.showServerError(SERVER_ERROR_MESSAGE);\r\n });\r\n }\r\n } else {\r\n this.sendFormTracking();\r\n this.redirect();\r\n }\r\n });\r\n });\r\n }\r\n }, (err) => {\r\n if (err.code === 'UserNotConfirmedException' && socialProvider) {\r\n // The error happens if the user didn't finish the confirmation step when signing up\r\n // In this case you need to resend the code and confirm the user\r\n // About how to resend the code and confirm the user, please check the signUp part\r\n this.showCompleteRegister(socialProvider, username, password);\r\n } else if (err.code === 'UserNotConfirmedException') {\r\n this.onUserNotConfirmed(username, password);\r\n } else if (err.code === 'PasswordResetRequiredException') {\r\n // The error happens when the password is reset in the Cognito console\r\n // In this case you need to call forgotPassword to reset the password\r\n // Please check the Forgot Password part.\r\n this.onShowForgotPassword();\r\n } else if (err.code === 'UserNotFoundException' && socialProvider) {\r\n this.showCompleteRegister(socialProvider, username, password);\r\n } else if (err.code === 'UserNotFoundException') {\r\n this.showServerError(USER_NOT_FOUND_ERROR_MESSAGE);\r\n } else {\r\n this.showServerError(err);\r\n }\r\n });\r\n });\r\n }\r\n\r\n secutixSignIn(signInRequest) {\r\n const formData = qs.stringify(signInRequest);\r\n\r\n fetch(this.ACCOUNT_SIGNIN_URL, {\r\n headers: {\r\n 'content-type': 'application/x-www-form-urlencoded'\r\n },\r\n method: 'POST',\r\n body: formData\r\n }).then((response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n\r\n throw new Error('invalid signin response');\r\n }).then((data) => {\r\n this.sendFormTracking();\r\n if (data.action === ASYNC_ACTION_SAML) {\r\n const formString = data.content.match(//i);\r\n\r\n if (!formString || !formString.length) {\r\n throw new Error('Server doesn\\'t returned form');\r\n }\r\n\r\n const syncForm = HtmlHelper.createElement(formString[0]);\r\n\r\n document.body.appendChild(syncForm);\r\n syncForm.submit();\r\n }\r\n });\r\n }\r\n\r\n checkRequiredSecutixFields(user) {\r\n return (\r\n user.title &&\r\n user.address.addressLine1 &&\r\n user.address.postcode &&\r\n user.address.city &&\r\n user.address.country &&\r\n user.interests.venues &&\r\n user.optIns.agreedToPrivacyPolicy\r\n );\r\n }\r\n\r\n updateUserObject(userAttributesObject, token) {\r\n pageSpinner.show();\r\n\r\n const headers = this.setAuthorizationHeader(token);\r\n\r\n api.put(UPDATE_ACCOUNT_URL, userAttributesObject, {\r\n headers\r\n })\r\n .then(() => {\r\n pageSpinner.hide();\r\n this.redirect();\r\n }, (err) => {\r\n console.log(JSON.stringify(err.response.data.errors));\r\n pageSpinner.hide();\r\n if (err.response.status === 400) {\r\n this.showServerError(err.response.data.errors);\r\n } else {\r\n this.showServerError(SERVER_ERROR_MESSAGE);\r\n }\r\n });\r\n }\r\n\r\n onUserNotConfirmed(username, password) {\r\n if (this.options.emailConfirmationWorkflow === 'code') {\r\n this.showRegistrationCodeField(username, password);\r\n } else {\r\n this.showSuccessMessage();\r\n }\r\n }\r\n\r\n showRegistrationCodeField(username, password) {\r\n this.refs.form.classList.add('is-hidden');\r\n this.refs.codeWrap.classList.add('is-visible');\r\n this.formNode = this.refs.codeWrap;\r\n this.setFormFieldTracking();\r\n\r\n this.addListener(this.refs.registrationCodeSubmit, 'click', (event) => {\r\n event.preventDefault();\r\n\r\n const code = this.refs.code.value;\r\n pageSpinner.show();\r\n // After retrieving the confirmation code from the user\r\n Auth.confirmSignUp(username, code)\r\n .then(() => {\r\n this.signIn(username, password);\r\n })\r\n .catch((err) => {\r\n pageSpinner.hide();\r\n this.showServerError(err);\r\n });\r\n\r\n return false;\r\n });\r\n }\r\n\r\n showSuccessMessage() {\r\n pageSpinner.hide();\r\n this.refs.form.classList.add('is-hidden');\r\n this.refs.successMessage.classList.add('is-visible');\r\n this.refs.complete.classList.remove('is-visible');\r\n }\r\n\r\n showCompleteRegister(socialProvider, username, password) {\r\n pageSpinner.hide();\r\n this.refs.form.classList.add('is-hidden');\r\n this.refs.complete.classList.add('is-visible');\r\n this.formNode = this.refs.complete;\r\n this.setFormFieldTracking();\r\n\r\n this.addListener(this.refs.completeButton, 'click', (event) => {\r\n event.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n const firstName = this.formData.FirstName;\r\n const lastName = this.formData.Surname;\r\n const email = this.formData.EmailAddress;\r\n const checkboxesValuesObject = this.collectCheckboxesData();\r\n const optIns = {\r\n optedTheOpenOffersByEmail: !checkboxesValuesObject.OptedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail: checkboxesValuesObject.OptedPartnersOffersByEmail,\r\n agreedToPrivacyPolicy: checkboxesValuesObject.AgreedToPrivacyPolicy\r\n };\r\n const interests = this.getVenuesObject();\r\n const isOneClubMember = false;\r\n\r\n this.register({\r\n user: {\r\n title: '',\r\n email,\r\n firstName,\r\n lastName,\r\n address: '',\r\n dateOfBirth: '',\r\n optIns,\r\n interests,\r\n ticketingAccountId: '',\r\n isOneClubMember\r\n },\r\n password,\r\n createTicketingAccount: false\r\n });\r\n\r\n return false;\r\n });\r\n });\r\n }\r\n\r\n onShowForgotPassword = (event) => {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n\r\n this.refs.passwordResetSuccess.classList.remove('is-visible');\r\n this.refs.forgotPasswordInput.value = '';\r\n\r\n if (this.errorsSummary) {\r\n this.errorsSummary.forEach((errorsSummary) => {\r\n errorsSummary.innerHTML = '';\r\n errorsSummary.classList.remove('is-shown');\r\n });\r\n }\r\n\r\n this.refs.form.classList.add('is-hidden');\r\n\r\n this.refs.forgotPassword.classList.add('is-visible');\r\n\r\n this.formNode = this.refs.forgotPassword;\r\n\r\n this.setFormFieldTracking();\r\n\r\n this.addListener(this.refs.forgotPasswordSubmit, 'click', (e) => {\r\n e.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n const email = {\r\n emailAddress: this.formData.EmailAddress\r\n };\r\n pageSpinner.show();\r\n api.post(FORGOT_PASSWORD_URL, email, {\r\n headers: HEADERS\r\n })\r\n .then(() => {\r\n pageSpinner.hide();\r\n this.sendFormTracking();\r\n this.showPasswordCodeField(email);\r\n this.hideErrorsSummary();\r\n }, (error) => {\r\n pageSpinner.hide();\r\n\r\n if (error.response && error.response.status === 404) {\r\n this.sendFormTracking();\r\n this.showPasswordCodeField(email);\r\n } else if (error.response && error.response.status === 429) {\r\n this.showServerError(error, true);\r\n } else {\r\n this.showServerError(error);\r\n }\r\n });\r\n });\r\n });\r\n };\r\n\r\n onShowCompletePassword = (user) => {\r\n pageSpinner.hide();\r\n this.refs.form.classList.add('is-hidden');\r\n this.refs.completePassword.classList.add('is-visible');\r\n this.formNode = this.refs.completePassword;\r\n this.setFormFieldTracking();\r\n\r\n this.addListener(this.refs.completePasswordSubmit, 'click', (e) => {\r\n e.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n const newPassword = this.formData.Password;\r\n\r\n pageSpinner.show();\r\n Auth.completeNewPassword(\r\n user,\r\n newPassword,\r\n {\r\n email: user.email\r\n }\r\n ).then(() => {\r\n pageSpinner.hide();\r\n this.sendFormTracking();\r\n this.redirect();\r\n }).catch(() => {\r\n pageSpinner.hide();\r\n this.showServerError(SERVER_ERROR_MESSAGE);\r\n });\r\n });\r\n });\r\n };\r\n\r\n showPasswordCodeField(email) {\r\n this.refs.form.classList.add('is-hidden');\r\n this.refs.forgotPassword.classList.remove('is-visible');\r\n this.refs.codeWrap.classList.add('is-visible');\r\n this.formNode = this.refs.codeWrap;\r\n this.setFormFieldTracking();\r\n\r\n this.refs.code.value = '';\r\n this.refs.newPasswordInput.value = '';\r\n this.refs.newPasswordInputConfirm.value = '';\r\n\r\n this.addListener(this.refs.codeSubmit, 'click', (event) => {\r\n event.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n pageSpinner.show();\r\n\r\n api.post(CONFIRM_PASSWORD_URL, {\r\n emailAddress: email.emailAddress,\r\n confirmationCode: this.formData.Code,\r\n newPassword: this.formData.Password\r\n }, {\r\n headers: HEADERS\r\n })\r\n .then(() => {\r\n pageSpinner.hide();\r\n this.sendFormTracking();\r\n this.refs.passwordResetSuccess.classList.add('is-visible');\r\n this.refs.form.classList.remove('is-hidden');\r\n this.refs.codeWrap.classList.remove('is-visible');\r\n this.hideErrorsSummary();\r\n this.formNode = this.refs.form;\r\n this.setFormFieldTracking();\r\n }, (err) => {\r\n pageSpinner.hide();\r\n this.showServerError(err.response.data);\r\n });\r\n });\r\n });\r\n }\r\n\r\n onChangePassword = (event) => {\r\n event.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n const oldPassword = this.formData.OldPassword;\r\n const newPassword = this.formData.Password;\r\n\r\n this.getAccessToken()\r\n .then((token) => {\r\n const headers = this.setAuthorizationHeader(token);\r\n\r\n api.post(CHANGE_PASSWORD_URL, {\r\n oldPassword,\r\n newPassword\r\n }, {\r\n headers\r\n })\r\n .then(() => {\r\n if (this.refs.changePasswordSuccess) {\r\n this.refs.form.classList.add('is-hidden');\r\n this.refs.changePasswordSuccess.classList.add('is-visible');\r\n this.formNode = this.refs.changePasswordSuccess;\r\n this.hideErrorsSummary();\r\n this.setFormFieldTracking();\r\n } else {\r\n this.redirect();\r\n }\r\n }, (error) => {\r\n if (error.response && error.response.data) {\r\n this.showServerError(error.response.data);\r\n } else {\r\n this.showServerError(error);\r\n }\r\n });\r\n })\r\n .catch(() => {\r\n this.showServerError(SERVER_ERROR_MESSAGE);\r\n });\r\n });\r\n };\r\n\r\n onSignOut = (event) => {\r\n event.preventDefault();\r\n\r\n userService.setHostedUIReturnUrl(this.SIGN_OUT_URL);\r\n\r\n userService.signOut()\r\n .then(() => {\r\n })\r\n .catch((err) => {\r\n this.showServerError(err);\r\n });\r\n };\r\n\r\n onOptInOneClub = (event) => {\r\n event.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n const checkboxesValuesObject = this.collectCheckboxesData();\r\n const optInValue = checkboxesValuesObject.OptInToTheOneClub;\r\n\r\n this.getAccessToken().then((token) => {\r\n const userAttributesObject = {\r\n user: {\r\n isOneClubMember: optInValue\r\n }\r\n };\r\n this.updateUserObject(userAttributesObject, token);\r\n });\r\n });\r\n };\r\n\r\n onUpdateConsents = (event) => {\r\n event.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n const checkboxesValuesObject = this.collectCheckboxesData();\r\n const interests = this.getVenuesObject();\r\n\r\n const optIns = {\r\n optedTheOpenOffersByEmail: !checkboxesValuesObject.OptedTheOpenOffersByEmail,\r\n optedPartnerOffersByEmail: checkboxesValuesObject.OptedPartnersOffersByEmail\r\n };\r\n\r\n this.getAccessToken().then((token) => {\r\n const userAttributesObject = {\r\n user: {\r\n interests,\r\n optIns\r\n }\r\n };\r\n\r\n this.updateUserObject(userAttributesObject, token);\r\n });\r\n });\r\n };\r\n\r\n onUpdateAddress = (event) => {\r\n event.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n const address = {\r\n addressLine1: this.formData.AddressLine1,\r\n addressLine2: this.formData.AddressLine2,\r\n postcode: this.formData.Postcode,\r\n city: this.formData.City,\r\n country: this.formData.Country,\r\n county: this.formData.County ? this.formData.County : ''\r\n };\r\n\r\n this.getAccessToken().then((token) => {\r\n const userAttributesObject = {\r\n user: {\r\n address\r\n }\r\n };\r\n\r\n this.updateUserObject(userAttributesObject, token);\r\n });\r\n });\r\n };\r\n\r\n onUpdateDetails = (event) => {\r\n event.preventDefault();\r\n const dateOfBirth = this.getDateOfBirth();\r\n\r\n this.revalidateForm().then(() => {\r\n this.getAccessToken().then((token) => {\r\n const userAttributesObject = {\r\n user: {\r\n title: this.formData.Title,\r\n firstName: this.formData.FirstName,\r\n lastName: this.formData.LastName,\r\n email: this.formData.Email,\r\n dateOfBirth\r\n }\r\n };\r\n\r\n this.updateUserObject(userAttributesObject, token);\r\n });\r\n });\r\n };\r\n\r\n onCompleteDetails = (event) => {\r\n event.preventDefault();\r\n\r\n this.revalidateForm().then(() => {\r\n this.setFormFieldTracking();\r\n let dateOfBirth;\r\n\r\n if (this.element.querySelector('[data-dc-form-date-ref=\"day\"]')) {\r\n dateOfBirth = this.getDateOfBirth();\r\n } else {\r\n dateOfBirth = this.element.querySelector('[name=DateOfBirth]').value;\r\n }\r\n\r\n const firstName = this.formData.FirstName;\r\n const lastName = this.formData.LastName;\r\n\r\n const interests = this.getVenuesObject();\r\n\r\n const address = {\r\n addressLine1: this.formData.AddressLine1,\r\n addressLine2: this.formData.AddressLine2,\r\n postcode: this.formData.Postcode,\r\n city: this.formData.City,\r\n country: this.formData.Country,\r\n county: this.formData.County ? this.formData.County : ''\r\n };\r\n\r\n this.getAccessToken().then((token) => {\r\n const userAttributesObject = {\r\n user: {\r\n title: this.formData.Title,\r\n firstName,\r\n lastName,\r\n address,\r\n dateOfBirth,\r\n interests\r\n },\r\n createTicketingAccount: this.refs.createTicketingAccount ? this.refs.createTicketingAccount.value : false\r\n };\r\n\r\n this.sendFormTracking();\r\n this.updateUserObject(userAttributesObject, token);\r\n });\r\n });\r\n };\r\n\r\n onEmailFocusOut = () => {\r\n this.getParsleyForm().destroy();\r\n this._parsleyForm = null;\r\n this.getParsleyForm().fields.forEach((field) => {\r\n const name = field.$element[0].name;\r\n if (name) {\r\n const fieldName = name.substring(name.indexOf('.') + 1);\r\n this.formData[fieldName] = field.$element[0].value;\r\n }\r\n });\r\n\r\n const emailRequest = {\r\n emailAddress: this.formData.EmailAddress ? this.formData.EmailAddress : this.formData.Email\r\n };\r\n const emailJson = JSON.stringify(emailRequest);\r\n\r\n api.post(CHECK_EMAIL_URL, emailJson, {\r\n headers: HEADERS\r\n })\r\n .then(() => {\r\n const errorList = this.refs.emailInput.querySelector('ul');\r\n if (errorList) {\r\n errorList.remove();\r\n }\r\n })\r\n .catch((error) => {\r\n if (error.response.status === 409) {\r\n this.showFieldError(this.refs.emailInput, error.response.data);\r\n } else {\r\n this.showServerError(SERVER_ERROR_MESSAGE);\r\n }\r\n });\r\n };\r\n\r\n revalidateForm() {\r\n return new Promise((resolve) => {\r\n this.getParsleyForm().destroy();\r\n this._parsleyForm = null;\r\n this.getParsleyForm().fields.forEach((field) => {\r\n const name = field.$element[0].name;\r\n if (name) {\r\n const fieldName = name.substring(name.indexOf('.') + 1);\r\n this.formData[fieldName] = field.$element[0].value;\r\n }\r\n });\r\n\r\n this.getParsleyForm().on('field:error', this.onFieldError);\r\n if (this.getParsleyForm().validate() === true) {\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n collectCheckboxesData() {\r\n const checkboxesInputs = [...this.formNode.querySelectorAll('input[type=\"checkbox\"]')];\r\n\r\n function isArrayOrObject(name) {\r\n return /(.+)\\[(.*)\\]/.test(name);\r\n }\r\n\r\n return checkboxesInputs.reduce((result, checkbox) => {\r\n if (!isArrayOrObject(checkbox.name)) {\r\n result[checkbox.name] = checkbox.checked;\r\n }\r\n return result;\r\n }, {});\r\n }\r\n\r\n showErrorsSummary(groupped) {\r\n if (this.errorsSummary) {\r\n this.errorsSummary.forEach((errorsSummary) => {\r\n if (Object.keys(groupped).length) {\r\n const errors = Object.keys(groupped).reduce((groupErrors, key) =>\r\n [...groupErrors, ...groupped[key]], []);\r\n errorsSummary.innerHTML = errorsSummaryTemplate({ errors });\r\n errorsSummary.classList.add('is-shown');\r\n } else {\r\n this.hideErrorsSummary();\r\n }\r\n });\r\n }\r\n }\r\n\r\n showServerError(err, data = false) {\r\n pageSpinner.hide();\r\n\r\n if (this.errorsSummary) {\r\n this.errorsSummary.forEach((errorsSummary) => {\r\n if (data) {\r\n errorsSummary.innerHTML = err.response.data ? err.response.data : err;\r\n } else {\r\n errorsSummary.innerHTML = err.message ? err.message : err;\r\n }\r\n\r\n errorsSummary.classList.add('is-shown');\r\n });\r\n }\r\n }\r\n\r\n showFieldError(inputElement, errors) {\r\n const errorListOld = inputElement.querySelector('ul');\r\n if (errorListOld) {\r\n errorListOld.remove();\r\n }\r\n const errorList = document.createElement('ul');\r\n errorList.classList.add('form-field__error-list');\r\n errorList.classList.add('filled');\r\n inputElement.appendChild(errorList);\r\n if (typeof errors === 'string') {\r\n this.createErrorItem(errors, errorList);\r\n } else if (typeof errors === 'object') {\r\n Object.values(errors).forEach((error) => {\r\n this.createErrorItem(error, errorList);\r\n });\r\n }\r\n }\r\n\r\n createErrorItem(error, errorList) {\r\n const errorItem = document.createElement('li');\r\n errorItem.classList.add('form-field__error-item');\r\n errorItem.innerHTML = error;\r\n errorList.appendChild(errorItem);\r\n }\r\n\r\n redirect() {\r\n const returnUrl = this.refs.returnUrl ? this.refs.returnUrl.value : this.getAttribute(this.element, 'return-url');\r\n\r\n redirectTo(returnUrl || this.DEFAULT_REDIRECT_URL);\r\n }\r\n\r\n sendFormTracking() {\r\n if (this.getAttribute(this.formNode, 'track')) {\r\n GTM.push(this.getTrackCategory(), this.getTrackAction(), this.getTrackLabel());\r\n }\r\n }\r\n\r\n setFormFieldTracking() {\r\n if (this.refs.trackFields && this.getAttribute(this.formNode, 'track')) {\r\n this.refs.trackFields.forEach((field) => {\r\n if (this.formNode.contains(field)) {\r\n field.addEventListener('focusin', this.sendFormFieldTracking);\r\n }\r\n });\r\n }\r\n }\r\n\r\n sendFormFieldTracking(e) {\r\n const target = e.target;\r\n if (this.refs.trackFields && this.refs.trackFields.indexOf(target) !== -1) {\r\n const label = this.getAttribute(target, 'track-label');\r\n if (label) {\r\n GTM.push(this.getTrackCategory(), 'Field Entry', label);\r\n }\r\n }\r\n }\r\n\r\n setAuthorizationHeader(token) {\r\n return Object.assign(HEADERS, { Authorization: 'Bearer ' + token });\r\n }\r\n\r\n getTrackCategory() {\r\n this._trackCategory = this.getAttribute(this.formNode, 'track-category');\r\n return this._trackCategory;\r\n }\r\n\r\n getTrackAction() {\r\n this._trackAction = this.getAttribute(this.formNode, 'track-action');\r\n return this._trackAction;\r\n }\r\n\r\n getTrackLabel() {\r\n this._trackLabel = this.getAttribute(this.formNode, 'track-label');\r\n return this._trackLabel;\r\n }\r\n\r\n getAccessToken() {\r\n return userService.getAccessToken();\r\n }\r\n\r\n getCurrentUser(token) {\r\n const headers = this.setAuthorizationHeader(token);\r\n\r\n return api.get(GET_USER_PROFILE_URL, {\r\n headers\r\n })\r\n .then((response) => {\r\n return Promise.resolve(response.data);\r\n })\r\n .catch(() => {\r\n this.showServerError(SERVER_ERROR_MESSAGE);\r\n });\r\n }\r\n\r\n checkSignIn() {\r\n return Auth.currentSession()\r\n .then(() => {\r\n userService.signOut().catch((err) => {\r\n this.showServerError(err);\r\n });\r\n })\r\n .catch(() => {\r\n return Promise.resolve();\r\n });\r\n }\r\n\r\n getDateOfBirth() {\r\n const day = this.element.querySelector('[data-dc-form-date-ref=\"day\"]').value;\r\n const month = this.element.querySelector('[data-dc-form-date-ref=\"month\"]').value;\r\n const year = this.element.querySelector('[data-dc-form-date-ref=\"year\"]').value;\r\n return `${year}-${month}-${day}`;\r\n }\r\n\r\n getVenuesObject() {\r\n const interests = {\r\n venues: []\r\n };\r\n this.refs.venues.forEach((venue) => {\r\n if (venue.checked) {\r\n interests.venues.push(venue.value);\r\n }\r\n });\r\n return interests;\r\n }\r\n}\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport FormComponent from './js/form.component';\r\nimport FormSsoComponent from './js/form-sso.component';\r\n\r\nComponentsFactory.getInstance().define('form', FormComponent);\r\nComponentsFactory.getInstance().define('form-sso', FormSsoComponent);\r\n","export default class ChoicesWrapper {\r\n constructor(element, options) {\r\n this.element = element;\r\n // workaround https://github.com/jshjohnson/Choices/issues/457\r\n const isDisabled = this.element.disabled;\r\n if (isDisabled) {\r\n this.element.disabled = false;\r\n }\r\n\r\n this.choicesInstance = new window.Choices(element, options);\r\n if (isDisabled) {\r\n this.element.disabled = true;\r\n this.choicesInstance.disable();\r\n }\r\n\r\n this.addListeners();\r\n }\r\n\r\n getChoicesInstance() {\r\n return this.choicesInstance;\r\n }\r\n\r\n addListeners() {\r\n this.observer = new MutationObserver((mutations) => {\r\n mutations.forEach((mutation) => {\r\n if (mutation.type === 'attributes' && mutation.attributeName === 'disabled') {\r\n this.updateChoicesDisabled(this.element.disabled);\r\n }\r\n });\r\n });\r\n this.observer.observe(this.element, { attributes: true });\r\n }\r\n\r\n updateChoicesDisabled(isDisabled) {\r\n if (isDisabled) {\r\n this.choicesInstance.disable();\r\n } else {\r\n this.choicesInstance.enable();\r\n }\r\n }\r\n\r\n destroy() {\r\n this.observer.disconnect();\r\n }\r\n}\r\n","import BaseComponent from 'foundation/base-component';\r\nimport ChoicesWrapper from './choices-wrapper';\r\nimport baseItemTemplate from '../html/item.hbs';\r\nimport baseChoiseTemplate from '../html/choise.hbs';\r\n\r\nexport default class FormCustomSelectComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['native'];\r\n }\r\n\r\n init() {\r\n this.choicesWrapperInstance = new ChoicesWrapper(this.refs.native, {\r\n placeholderValue: this.options.placeholder,\r\n removeItemButton: ('removeItemButton' in this.options) ? this.options.removeItemButton : false,\r\n shouldSort: false,\r\n itemSelectText: '',\r\n classNames: {\r\n hiddenState: 'visually-hidden'\r\n },\r\n callbackOnCreateTemplates(strToEl) {\r\n const itemSelectText = this.config.itemSelectText;\r\n return {\r\n item(classNames, data, removeItemButton) {\r\n return strToEl(baseItemTemplate({\r\n classNames,\r\n data,\r\n content: data.label,\r\n removeItemButton\r\n }));\r\n },\r\n choice(classNames, data) {\r\n return strToEl(baseChoiseTemplate({\r\n classNames,\r\n data,\r\n itemSelectText,\r\n content: data.label\r\n }));\r\n },\r\n };\r\n },\r\n });\r\n this.choicesInstance = this.choicesWrapperInstance.getChoicesInstance();\r\n // hide dropdown on every select\r\n this.refs.native.addEventListener('choice', () => {\r\n this.choicesInstance.hideDropdown();\r\n }, false);\r\n }\r\n\r\n onDestroy() {\r\n this.choicesWrapperInstance.destroy();\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport FormCustomSelectComponent from './js/form-custom-select.component';\r\n\r\nComponentsFactory.getInstance().define('form-custom-select', FormCustomSelectComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport eventBus from '../../../general/js/event-bus';\r\n\r\nexport default class FormFieldComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.onChange = this.onChange.bind(this);\r\n this.onFocus = this.onFocus.bind(this);\r\n this.onBlur = this.onBlur.bind(this);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['native'];\r\n }\r\n\r\n init() {\r\n eventBus.addListener('hide-form-field-tooltip', this.hideFormFieldTooltip.bind(this));\r\n\r\n this.addListeners();\r\n this.checkFill();\r\n }\r\n\r\n hideFormFieldTooltip() {\r\n if (!this.refs.tooltip) return false;\r\n this.refs.tooltip.classList.add('is-hidden');\r\n }\r\n\r\n addListeners() {\r\n this.addListener(this.refs.native, 'change', this.onChange);\r\n this.addListener(this.refs.native, 'focus', this.onFocus);\r\n this.addListener(this.refs.native, 'blur', this.onBlur);\r\n }\r\n\r\n onChange() {\r\n this.checkFill();\r\n }\r\n\r\n onFocus() {\r\n this.element.classList.add('is-focused');\r\n this.element.classList.add('is-placeholder-visible');\r\n\r\n if (!this.refs.tooltip || this.element.classList.contains('is-invalid')) {\r\n return false;\r\n }\r\n\r\n this.refs.tooltip.classList.remove('is-hidden');\r\n }\r\n\r\n onBlur() {\r\n this.element.classList.remove('is-focused');\r\n this.element.classList.remove('is-placeholder-visible');\r\n this.checkFill();\r\n\r\n if (!this.refs.tooltip) return false;\r\n\r\n this.refs.tooltip.classList.add('is-hidden');\r\n }\r\n\r\n checkFill() {\r\n if (this.refs.native.value === '') {\r\n this.element.classList.remove('is-filled');\r\n this.element.classList.add('is-empty');\r\n } else {\r\n this.element.classList.add('is-filled');\r\n this.element.classList.remove('is-empty');\r\n }\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport FormFieldComponent from './js/form-field.component';\r\n\r\nComponentsFactory.getInstance().define('form-field', FormFieldComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\n\r\nexport default class FormFileComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.defaultCaption = this.element.dataset.placeholder || 'No file chosen';\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['native', 'caption'];\r\n }\r\n\r\n init() {\r\n this.fileInput = this.refs.native;\r\n this.captionContainer = this.refs.caption;\r\n\r\n this.caption = document.createElement('span');\r\n this.captionContainer.appendChild(this.caption);\r\n\r\n\r\n this.fileInput.addEventListener('change', this.onFileChange.bind(this));\r\n this.updateCaption();\r\n }\r\n\r\n onFileChange() {\r\n this.updateCaption();\r\n }\r\n\r\n updateCaption() {\r\n let caption = '';\r\n if (this.fileInput.files && this.fileInput.files.length > 1) {\r\n caption = `${this.fileInput.files.length} files selected`;\r\n } else {\r\n caption = this.fileInput.value.split('\\\\').pop();\r\n }\r\n if (caption) {\r\n this.caption.innerHTML = caption;\r\n } else {\r\n this.caption.innerHTML = this.defaultCaption;\r\n }\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport FormFileComponent from './js/form-file.component';\r\n\r\nComponentsFactory.getInstance().define('form-file', FormFileComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport baseItemTemplate from '../../form-custom-select/html/item.hbs';\r\nimport itemContentTemplate from '../html/item.hbs';\r\nimport baseChoiseTemplate from '../../form-custom-select/html/choise.hbs';\r\nimport choiseContentTemplate from '../html/choise.hbs';\r\nimport ChoicesWrapper from '../../form-custom-select/js/choices-wrapper';\r\n\r\nexport default class FormPhoneInputComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.countries = this.options.countries || [];\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['country'];\r\n }\r\n\r\n init() {\r\n this.choicesWrapperInstance = new ChoicesWrapper(this.refs.country, {\r\n choices: this.getChoices(),\r\n searchEnabled: false,\r\n shouldSort: false,\r\n itemSelectText: '',\r\n callbackOnCreateTemplates(strToEl) {\r\n const itemSelectText = this.config.itemSelectText;\r\n return {\r\n item(classNames, data) {\r\n return strToEl(baseItemTemplate({\r\n classNames,\r\n data,\r\n content: itemContentTemplate({ classNames, data })\r\n }));\r\n },\r\n choice(classNames, data) {\r\n return strToEl(baseChoiseTemplate({\r\n classNames,\r\n data,\r\n itemSelectText,\r\n content: choiseContentTemplate({ classNames, data, itemSelectText })\r\n }));\r\n },\r\n };\r\n },\r\n });\r\n }\r\n\r\n getChoices() {\r\n return this.countries.map(({\r\n value, label, image, selected = false\r\n }) => ({\r\n value,\r\n label,\r\n selected,\r\n disabled: false,\r\n customProperties: { image }\r\n }));\r\n }\r\n\r\n onDestroy() {\r\n this.choicesWrapperInstance.destroy();\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport FormPhoneInputComponent from './js/form-phone-input.component';\r\n\r\nComponentsFactory.getInstance().define('form-phone-input', FormPhoneInputComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport gtm from '../../../general/js/gtm';\r\n\r\nexport default class GtmTriggerComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.category = null;\r\n this.action = null;\r\n this.label = null;\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.addListener(this.element, 'click', this.onClick);\r\n }\r\n\r\n onClick = () => {\r\n gtm.push(this.getCategory(), this.getAction(), this.getLabel());\r\n }\r\n\r\n\r\n getCategory() {\r\n if (this.category === null) {\r\n this.category = this.getAttribute(this.element, 'category');\r\n }\r\n return this.category;\r\n }\r\n\r\n getAction() {\r\n if (this.action === null) {\r\n this.action = this.getAttribute(this.element, 'action');\r\n }\r\n return this.action;\r\n }\r\n\r\n getLabel() {\r\n if (this.label === null) {\r\n this.label = this.getAttribute(this.element, 'label');\r\n }\r\n return this.label;\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport GtmTriggerComponent from './js/gtm-trigger.component';\r\n\r\nComponentsFactory.getInstance().define('gtm', GtmTriggerComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport anime from 'animejs';\r\nimport gtm from 'general/js/gtm';\r\nimport eventBus from '../../../general/js/event-bus';\r\nimport { EVENT_DEVICE_TYPE_CHANGED } from '../../../general/js/app';\r\n\r\nconst EASING = 'easeOutQuad';\r\nconst DURATION_OPEN = 400;\r\nconst DURATION_CLOSE = 300;\r\nconst DURATION_SLIDE = 284;\r\n\r\nexport default class Header extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.visibleLocation = false;\r\n this.visibleLocationLatest = false;\r\n this.locationPanelHeight = this.refs.location.offsetHeight;\r\n this.headerCanBeAnimated = true;\r\n this.menuCanBeAnimated = true;\r\n this.keyboardEvent = false;\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (this.refs.dynamicButton) {\r\n this.refs.dynamicButton.forEach((button) => {\r\n this.addListener(button, 'click', this.onClickDynamicButton);\r\n this.addListener(button, 'keypress', this.onKeypressDynamicButton);\r\n });\r\n }\r\n\r\n if (this.refs.dynamicButtonLatest) {\r\n this.refs.dynamicButtonLatest.forEach((button) => {\r\n this.addListener(button, 'click', this.onClickDynamicButtonLatest);\r\n this.addListener(button, 'keypress', this.onKeypressDynamicButtonLatest);\r\n });\r\n }\r\n\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.onChangeDeviceType);\r\n this.addListener(this.refs.gtmLeftMenuClick, 'click', this.saveActionToGtm);\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.onChangeDeviceType);\r\n }\r\n\r\n saveActionToGtm = (event) => {\r\n const clickedItem = event.target;\r\n const itemText = clickedItem.innerText || clickedItem.textContent;\r\n\r\n gtm.push('Top Ribbon', 'Click', itemText);\r\n }\r\n\r\n onChangeDeviceType = () => {\r\n this.refs.location.classList.remove('is-hidden');\r\n this.refs.locationLatest.classList.remove('is-hidden');\r\n this.locationPanelHeight = this.refs.location.offsetHeight;\r\n\r\n if (!this.visibleLocation) {\r\n anime({\r\n targets: this.refs.location,\r\n marginTop: -this.locationPanelHeight,\r\n duration: 0,\r\n easing: EASING\r\n });\r\n }\r\n if (!this.visibleLocationLatest) {\r\n anime({\r\n targets: this.refs.locationLatest,\r\n marginTop: -this.locationPanelHeight,\r\n duration: 0,\r\n easing: EASING\r\n });\r\n }\r\n }\r\n\r\n setAnimation(arrayItems, boolean) {\r\n if (boolean) {\r\n [...arrayItems].forEach((item) => {\r\n item.classList.add('is-animation');\r\n });\r\n } else {\r\n [...arrayItems].forEach((item) => {\r\n item.classList.remove('is-animation');\r\n });\r\n }\r\n }\r\n\r\n ariaExpandedTrigger(array, state) {\r\n array.forEach((item) => {\r\n item.setAttribute('aria-expanded', state);\r\n });\r\n }\r\n\r\n async toggleLocationsPanel(location, dynamicButton, cb) {\r\n this.locationPanelHeight = location.offsetHeight;\r\n\r\n if (this.headerCanBeAnimated) {\r\n this.headerCanBeAnimated = false;\r\n\r\n switch (location.className.includes('__latest')) {\r\n case true:\r\n if (this.visibleLocationLatest) {\r\n this.closingMenuAnimation(location, dynamicButton);\r\n this.visibleLocationLatest = false;\r\n } else {\r\n if (this.closeOtherMenuAnimation(location)) {\r\n await this.timeout(DURATION_SLIDE);\r\n }\r\n\r\n this.openingMenuAnimation(location, dynamicButton, cb);\r\n this.visibleLocationLatest = true;\r\n }\r\n break;\r\n case false:\r\n if (this.visibleLocation) {\r\n this.closingMenuAnimation(location, dynamicButton);\r\n this.visibleLocation = false;\r\n } else {\r\n if (this.closeOtherMenuAnimation(location)) {\r\n await this.timeout(DURATION_SLIDE);\r\n }\r\n\r\n this.openingMenuAnimation(location, dynamicButton, cb);\r\n this.visibleLocation = true;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n onKeypressDynamicButton = (event) => {\r\n this.keyboardEvent = true;\r\n event.preventDefault();\r\n this.toggleLocationsPanel(this.refs.location, this.refs.dynamicButton, this.setFocus(this.refs.locationLink));\r\n }\r\n\r\n onKeypressDynamicButtonLatest = (event) => {\r\n this.keyboardEvent = true;\r\n\r\n event.preventDefault();\r\n this.toggleLocationsPanel(this.refs.locationLatest, this.refs.dynamicButtonLatest, this.setFocus(this.refs.locationLinkLatest));\r\n }\r\n\r\n onClickDynamicButton = (event) => {\r\n if (this.keyboardEvent) return;\r\n\r\n event.preventDefault();\r\n this.toggleLocationsPanel(this.refs.location, this.refs.dynamicButton);\r\n }\r\n\r\n onClickDynamicButtonLatest = (event) => {\r\n if (this.keyboardEvent) return;\r\n\r\n event.preventDefault();\r\n this.toggleLocationsPanel(this.refs.locationLatest, this.refs.dynamicButtonLatest);\r\n }\r\n\r\n openingMenuAnimation(location, dynamicButton, cb) {\r\n this.ariaExpandedTrigger(dynamicButton, 'true');\r\n\r\n location.classList.remove('is-hidden');\r\n location.classList.add('is-visible');\r\n\r\n if (location.className.includes('__latest')) {\r\n this.setAnimation(this.refs.dynamicIconsLatest, true);\r\n window.setTimeout(() => {\r\n this.setAnimation(this.refs.locationItemLatest, true);\r\n }, 1);\r\n this.setAnimation(this.refs.locationLinkLatest, true);\r\n } else {\r\n this.setAnimation(this.refs.dynamicIcons, true);\r\n window.setTimeout(() => {\r\n this.setAnimation(this.refs.locationItem, true);\r\n }, 1);\r\n this.setAnimation(this.refs.locationLink, true);\r\n }\r\n\r\n anime({\r\n targets: location,\r\n marginTop: 0,\r\n duration: DURATION_OPEN,\r\n easing: EASING,\r\n complete: () => {\r\n this.keyboardEvent = false;\r\n this.headerCanBeAnimated = true;\r\n if (typeof cb === 'function') {\r\n cb();\r\n }\r\n }\r\n });\r\n }\r\n\r\n closingMenuAnimation(location, dynamicButton) {\r\n this.ariaExpandedTrigger(dynamicButton, 'false');\r\n\r\n if (location.className.includes('__latest')) {\r\n this.setAnimation(this.refs.dynamicIconsLatest, false);\r\n this.setAnimation(this.refs.locationItemLatest, false);\r\n this.setAnimation(this.refs.locationLinkLatest, false);\r\n } else {\r\n this.setAnimation(this.refs.dynamicIcons, false);\r\n this.setAnimation(this.refs.locationItem, false);\r\n this.setAnimation(this.refs.locationLink, false);\r\n }\r\n\r\n anime({\r\n targets: location,\r\n marginTop: -this.locationPanelHeight,\r\n duration: DURATION_CLOSE,\r\n easing: EASING,\r\n complete: () => {\r\n location.classList.remove('is-visible');\r\n location.classList.add('is-hidden');\r\n this.keyboardEvent = false;\r\n this.headerCanBeAnimated = true;\r\n }\r\n });\r\n }\r\n\r\n closeOtherMenuAnimation(location) {\r\n if (location.className.includes('__latest')) {\r\n if (this.visibleLocation) {\r\n this.closingMenuAnimation(this.refs.location, this.refs.dynamicButton);\r\n this.visibleLocation = false;\r\n return true;\r\n }\r\n } else if (this.visibleLocationLatest) {\r\n this.closingMenuAnimation(this.refs.locationLatest, this.refs.dynamicButtonLatest);\r\n this.visibleLocationLatest = false;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n async timeout(interval) {\r\n return new Promise((resolve) => setTimeout(resolve, interval));\r\n }\r\n\r\n setFocus = (locationLink) => {\r\n locationLink[0].focus();\r\n };\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport HeaderComponent from './js/header.component';\r\n\r\nComponentsFactory.getInstance().define('header', HeaderComponent);\r\n","import anime from 'animejs';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport Scroller from '../../../general/js/scroller';\r\nimport * as cookieHelper from '../../sso/helpers/cookie-helper';\r\n\r\nexport default class Hero extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.state = {\r\n isOneClubMember: this.getOneClubMemberValueFromCookie()\r\n };\r\n\r\n this.sticky = this.refs.sticky;\r\n this.stickyIsShown = false;\r\n this.observerIsCreated = false;\r\n this.promptScroller = null;\r\n\r\n this.onResize = this.onResize.bind(this);\r\n this.onClickPrompt = this.onClickPrompt.bind(this);\r\n\r\n this.onResize();\r\n this.init();\r\n}\r\n\r\n init() {\r\n this.disableButtonsWhenUserIsOneClubMember();\r\n this.checkViewportWidth();\r\n this.addBottomPadding();\r\n\r\n this.addListener(window, 'resize', this.onResize);\r\n\r\n if (this.refs.prompt) {\r\n this.initScroller();\r\n }\r\n }\r\n\r\n getOneClubMemberValueFromCookie() {\r\n const cookie = cookieHelper.getCookie('userData');\r\n const parsedCookie = JSON.parse(cookie);\r\n\r\n if (parsedCookie != null) {\r\n return parsedCookie.isOneClubMember;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n disableButtonsWhenUserIsOneClubMember() {\r\n if (this.state.isOneClubMember && this.options.disableCta1 === 'true') {\r\n this.refs.cta1.classList.add('hidden');\r\n this.refs.cta1sticky.classList.add('hidden');\r\n }\r\n\r\n if (this.state.isOneClubMember && this.options.disableCta2 === 'true') {\r\n this.refs.cta2.classList.add('hidden');\r\n this.refs.cta2sticky.classList.add('hidden');\r\n }\r\n }\r\n\r\n checkViewportWidth() {\r\n this.viewportWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\r\n }\r\n\r\n onResize() {\r\n this.checkViewportWidth();\r\n\r\n if (this.viewportWidth > 767 && !this.observerIsCreated) {\r\n this.removeBottomPadding();\r\n this.createObserver();\r\n } else if (this.viewportWidth < 768 && this.observerIsCreated) {\r\n this.addBottomPadding();\r\n this.observer.disconnect();\r\n this.sticky.classList.remove('is-shown');\r\n this.observerIsCreated = false;\r\n }\r\n }\r\n\r\n createObserver() {\r\n this.observer = new IntersectionObserver((changes) => {\r\n const change = changes[0];\r\n if (change.intersectionRatio > 0) {\r\n this.hideSticky();\r\n } else if (!this.state.isOneClubMember) {\r\n this.showSticky();\r\n } else if (this.options.disableStickyHeader === 'false') {\r\n this.showSticky();\r\n }\r\n });\r\n this.observer.observe(this.element);\r\n this.observerIsCreated = true;\r\n }\r\n\r\n showSticky() {\r\n this.stickyIsShown = true;\r\n this.sticky.classList.add('is-shown');\r\n\r\n anime({\r\n targets: this.sticky,\r\n translateY: [-100, 0],\r\n duration: 500,\r\n easing: 'linear'\r\n });\r\n }\r\n\r\n hideSticky() {\r\n if (this.stickyIsShown) {\r\n this.stickyIsShown = false;\r\n anime({\r\n targets: this.sticky,\r\n translateY: [0, -100],\r\n duration: 300,\r\n easing: 'linear',\r\n complete: () => {\r\n this.sticky.classList.remove('is-shown');\r\n }\r\n });\r\n }\r\n }\r\n\r\n initScroller() {\r\n const elementId = this.refs.prompt.getAttribute('href');\r\n const blockToShow = document.querySelector(elementId);\r\n\r\n if (blockToShow) {\r\n this.promptScroller = new Scroller(blockToShow);\r\n this.addListener(this.refs.prompt, 'click', this.onClickPrompt);\r\n }\r\n }\r\n\r\n onClickPrompt(event) {\r\n event.preventDefault();\r\n this.promptScroller.scrollToTop();\r\n }\r\n\r\n addBottomPadding() {\r\n this.blankElement = document.createElement('div');\r\n this.blankElement.style.height = `${this.sticky.clientHeight}px`;\r\n document.body.appendChild(this.blankElement);\r\n }\r\n\r\n removeBottomPadding() {\r\n if (this.blankElement) {\r\n document.body.removeChild(this.blankElement);\r\n }\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport HeroComponent from './js/hero.component';\r\n\r\nComponentsFactory.getInstance().define('hero', HeroComponent);\r\n","\r\nimport BaseComponent from 'foundation/base-component';\r\n\r\nexport default class ImageGallery extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.total = this.refs.slides.length;\r\n this.setImage(0);\r\n\r\n this.refs.prev.addEventListener('click', () => {\r\n this.setImage(((this.current - 1) + this.total) % this.total);\r\n });\r\n\r\n this.refs.next.addEventListener('click', () => {\r\n this.setImage(((this.current + 1)) % this.total);\r\n });\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['slides'];\r\n }\r\n\r\n setImage(current) {\r\n this.current = current;\r\n\r\n this.refs.slides.forEach((slide, index) => {\r\n if (this.current === index) {\r\n slide.classList.add('is-active');\r\n } else {\r\n slide.classList.remove('is-active');\r\n }\r\n });\r\n\r\n const labelCurrent = this.current < 9 ? ('0' + (this.current + 1)) : (this.current + 1).toString();\r\n const labelTotal = this.total < 10 ? ('0' + this.total) : this.total.toString();\r\n\r\n this.refs.counter.innerHTML = labelCurrent + ' / ' + labelTotal;\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport ImgeGallery from './js/image-gallery.component';\r\nimport './scss/index.scss';\r\n\r\nComponentsFactory.getInstance().define('image-gallery', ImgeGallery);\r\n","import {\r\n hasValue,\r\n isNullOrUndefined,\r\n setHtmlIdAttribute,\r\n} from '../../../general/js/general-helpers';\r\n\r\nexport const initialiseEventCentreInstance =\r\n (clipTag, eventCenterParams) => (state) => {\r\n const { shotViewElement } = state;\r\n\r\n if (hasValue(eventCenterParams) && isNullOrUndefined(shotViewElement)) {\r\n return {\r\n ...state,\r\n shotViewElement: clipTag.eventCentre(eventCenterParams),\r\n };\r\n }\r\n\r\n return {\r\n ...state,\r\n };\r\n };\r\n\r\nexport const setClipTagContainerId = (\r\n liveShotViewConfig,\r\n clipTagContainerDiv\r\n) => {\r\n if (!hasValue(liveShotViewConfig)) return;\r\n\r\n const { eventCentreParameters } = liveShotViewConfig;\r\n\r\n if (!hasValue(eventCentreParameters)) return;\r\n\r\n const { targetElement } = eventCentreParameters;\r\n\r\n setHtmlIdAttribute(clipTagContainerDiv, targetElement);\r\n};\r\n\r\nexport const formatEventCentreParameters = (eventCentreParameters = null) => {\r\n const formattedParams = isValidEventCentreParameters(eventCentreParameters) ?\r\n {\r\n operator: eventCentreParameters.operator,\r\n sport: eventCentreParameters.sport,\r\n eventId: eventCentreParameters.eventId,\r\n targetModule: eventCentreParameters.targetModule,\r\n version: eventCentreParameters.imgaVersion,\r\n language: eventCentreParameters.imgaLanguage,\r\n targetElementSelector: `#${eventCentreParameters.targetElementSelector}`,\r\n } :\r\n {};\r\n\r\n if (!hasValue(formattedParams)) {\r\n return formattedParams;\r\n }\r\n\r\n if (hasValue(eventCentreParameters.environment)) {\r\n formattedParams.env = eventCentreParameters.environment;\r\n }\r\n\r\n if (hasValue(eventCentreParameters.contextView)) {\r\n formattedParams.initialContext = {\r\n view: eventCentreParameters.contextView,\r\n };\r\n }\r\n\r\n return formattedParams;\r\n};\r\n\r\nexport const isValidEventCentreParameters = (eventCentreParameters = null) => {\r\n return (\r\n hasValue(eventCentreParameters) &&\r\n hasValue(eventCentreParameters.operator) &&\r\n hasValue(eventCentreParameters.sport) &&\r\n hasValue(eventCentreParameters.eventId) &&\r\n hasValue(eventCentreParameters.targetModule) &&\r\n hasValue(eventCentreParameters.imgaVersion) &&\r\n hasValue(eventCentreParameters.imgaLanguage) &&\r\n hasValue(eventCentreParameters.targetElementSelector)\r\n );\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n hasValue,\r\n isScriptEmbedded,\r\n embedScript,\r\n} from '../../../general/js/general-helpers';\r\nimport {\r\n initialiseEventCentreInstance,\r\n setClipTagContainerId,\r\n formatEventCentreParameters,\r\n} from './imga-iframe-helpers';\r\n\r\nimport {\r\n getIMGArenaESModuleScriptInnerHTML,\r\n shouldLoadRouteToHoleClipTag,\r\n} from '../../shot-tracker/js/shot-tracker-helpers';\r\n\r\nclass IMGAiFrameHolder extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n shotViewElement: null,\r\n };\r\n\r\n this.clipTagContainerDiv = React.createRef();\r\n\r\n this.loadRouteToHoleClipTag = this.loadRouteToHoleClipTag.bind(this);\r\n this.updateProps = this.updateProps.bind(this);\r\n\r\n window.frontRowSeatESModuleCallback = this.loadRouteToHoleClipTag;\r\n }\r\n\r\n componentDidMount() {\r\n this.updateProps();\r\n this.initHolderDivId();\r\n this.loadShotViewScripts();\r\n }\r\n\r\n updateProps() {\r\n const { eventCentreParameters } = this.props;\r\n\r\n if (\r\n eventCentreParameters !== undefined &&\r\n eventCentreParameters !== null\r\n ) {\r\n eventCentreParameters.targetElementSelector =\r\n eventCentreParameters.targetElement;\r\n }\r\n }\r\n\r\n initHolderDivId() {\r\n const { eventCentreParameters } = this.props;\r\n if (hasValue(eventCentreParameters)) {\r\n setClipTagContainerId(this.props, this.clipTagContainerDiv.current);\r\n }\r\n }\r\n\r\n loadRouteToHoleClipTag() {\r\n const clipTag = window.frontRowSeat;\r\n const routeHolder = this.clipTagContainerDiv.current;\r\n const { eventCentreParameters } = this.props;\r\n\r\n if (shouldLoadRouteToHoleClipTag(routeHolder, clipTag)) {\r\n const formattedEventCenterParams = formatEventCentreParameters(\r\n eventCentreParameters\r\n );\r\n\r\n this.setState(\r\n initialiseEventCentreInstance(\r\n clipTag,\r\n formattedEventCenterParams,\r\n routeHolder\r\n )\r\n );\r\n }\r\n }\r\n\r\n loadShotViewScripts() {\r\n const { shotViewScripts } = this.props;\r\n\r\n if (!hasValue(shotViewScripts)) {\r\n return;\r\n }\r\n\r\n shotViewScripts.forEach((script) => {\r\n const { scriptSourceUrl, scriptType } = script;\r\n let innerHTML = '';\r\n\r\n if (scriptType === 'module') {\r\n innerHTML = getIMGArenaESModuleScriptInnerHTML(scriptSourceUrl);\r\n }\r\n\r\n if (!isScriptEmbedded(scriptSourceUrl, innerHTML)) {\r\n const { loadScriptAsync, useNoModule } = script;\r\n\r\n embedScript(\r\n scriptSourceUrl,\r\n loadScriptAsync,\r\n this.loadRouteToHoleClipTag,\r\n useNoModule,\r\n scriptType,\r\n innerHTML\r\n );\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n );\r\n }\r\n}\r\n\r\nIMGAiFrameHolder.propTypes = {\r\n eventCentreParameters: PropTypes.object,\r\n shotViewScripts: PropTypes.array,\r\n};\r\n\r\nexport default IMGAiFrameHolder;\r\n","export function isMobile() {\r\n return window.innerWidth <= 767;\r\n}\r\n","import React, { Fragment } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport IMGAiFrameHolder from './imga-iframe-holder';\r\nimport { isMobile } from '../../../general/js/utils/screen-size-utils';\r\n\r\nclass IMGAiFrameComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n this.updateIframeSize();\r\n }\r\n\r\n updateIframeSize() {\r\n const {\r\n iFrameAspectRatioWdith,\r\n iFrameAspectRatioHeight,\r\n mobileIFrameAspectRatioHeight,\r\n mobileIFrameAspectRatioWidth\r\n } = this.options;\r\n\r\n if (iFrameAspectRatioHeight === '0' &&\r\n iFrameAspectRatioWdith === '0' &&\r\n mobileIFrameAspectRatioHeight === '0' &&\r\n mobileIFrameAspectRatioWidth === '0'\r\n ) {\r\n this.element.style.height = '640px';\r\n } else {\r\n const desktopPaddingTopPercent = `${(iFrameAspectRatioHeight / iFrameAspectRatioWdith) * 100}%`;\r\n const mobilePaddingTopPercent = `${(mobileIFrameAspectRatioHeight / mobileIFrameAspectRatioWidth) * 100}%`;\r\n\r\n this.element.style.paddingTop = isMobile() ? mobilePaddingTopPercent : desktopPaddingTopPercent;\r\n }\r\n }\r\n\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n const { shotViewScripts, eventCentreParameters } = this.options;\r\n\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default IMGAiFrameComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport IMGAiFrameComponent from './js/imga-iframe.component';\r\n\r\nComponentsFactory.getInstance().define('imga-iframe', IMGAiFrameComponent);\r\n","export const base64Decoder = {\r\n convert(input) {\r\n return getAtob()(input);\r\n },\r\n};\r\n\r\nexport const base64UrlDecode = (str) => {\r\n const base64 = str.replace(/-/g, '+').replace(/_/g, '/');\r\n\r\n return decodeURIComponent(\r\n base64Decoder\r\n .convert(base64)\r\n .split('')\r\n .map((char) => `%${`00${char.charCodeAt(0).toString(16)}`.slice(-2)}`)\r\n .join('')\r\n );\r\n};\r\n\r\nexport const getAtob = () => {\r\n // browser\r\n if (typeof window !== 'undefined' && typeof window.atob === 'function') {\r\n return window.atob;\r\n }\r\n\r\n // Next.js global polyfill\r\n if (typeof atob === 'function') {\r\n return atob;\r\n }\r\n\r\n return undefined;\r\n};\r\n","import KJUR from 'jsrsasign';\r\nimport { hasValue, safeParseJSON } from '../general-helpers';\r\nimport { base64UrlDecode } from './decode-utils';\r\n\r\nexport const decodeJWT = (token) => {\r\n if (!hasValue(token)) {\r\n return undefined;\r\n }\r\n\r\n const tokenParts = token.split('.');\r\n\r\n if (tokenParts.length !== 3) {\r\n console.error('Invalid Token');\r\n return undefined;\r\n }\r\n\r\n try {\r\n const header = safeParseJSON(base64UrlDecode(tokenParts[0]));\r\n const payload = safeParseJSON(base64UrlDecode(tokenParts[1]));\r\n const signature = tokenParts[2];\r\n\r\n return {\r\n toString: () => token,\r\n header,\r\n payload,\r\n signature\r\n };\r\n } catch (err) {\r\n console.error(err);\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const encodeJWT = (header, payload, secret = '') => {\r\n try {\r\n const sHeader = JSON.stringify(header);\r\n const sPayload = JSON.stringify(payload);\r\n const sJWT = KJUR.jws.JWS.sign(null, sHeader, sPayload, secret);\r\n\r\n return sJWT;\r\n } catch (error) {\r\n console.error('Error encoding JWT:', error);\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const stripToken = (token, allowedAttributes, secret = '', overWriteHeader = undefined) => {\r\n const decoded = decodeJWT(token);\r\n\r\n if (!decoded) {\r\n console.error('Invalid token');\r\n return undefined;\r\n }\r\n\r\n const { header, payload } = decoded;\r\n\r\n const filteredPayload = Object.keys(payload)\r\n .filter((key) => allowedAttributes.includes(key))\r\n .reduce((obj, key) => {\r\n obj[key] = payload[key];\r\n return obj;\r\n }, {});\r\n\r\n const headerToEncode = {\r\n ...header,\r\n ...overWriteHeader\r\n };\r\n\r\n return encodeJWT(headerToEncode, filteredPayload, secret);\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { getCurrentUserAttributes } from '../../sso/components/oauth/auth-provider-methods';\r\nimport { stripToken } from '../../../general/js/utils/jwt-utils';\r\nimport { hasValue, safeParseJSON, stringToArray } from '../../../general/js/general-helpers';\r\nimport { addQueryParams } from '../../../general/js/utils';\r\n\r\nexport function IMGAMatchupsGameLayout(props) {\r\n const {\r\n allowedUserAttributes,\r\n iFrameDatasource,\r\n tokenHeader,\r\n tokenQueryKey\r\n } = props;\r\n\r\n const [userIdTokenShortened, setUserIdTokenShortened] = useState(undefined);\r\n\r\n useEffect(() => {\r\n getCurrentUserAttributes()\r\n .then((user) => {\r\n setUserIdTokenShortened(\r\n stripToken(\r\n user.idToken,\r\n stringToArray(allowedUserAttributes),\r\n '',\r\n safeParseJSON(tokenHeader)\r\n )\r\n );\r\n })\r\n .catch((e) => {\r\n console.error(e);\r\n });\r\n }, []);\r\n\r\n if (\r\n !hasValue(userIdTokenShortened) ||\r\n !hasValue(iFrameDatasource) ||\r\n !hasValue(iFrameDatasource.source)) {\r\n return null;\r\n }\r\n\r\n const iFrameSrc = addQueryParams(iFrameDatasource.source, [\r\n {\r\n key: tokenQueryKey,\r\n value: userIdTokenShortened\r\n }\r\n ]);\r\n\r\n return (\r\n \r\n );\r\n}\r\n","import React, { Fragment } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport { IMGAMatchupsGameLayout } from './imga-matchups-game-layout';\r\nimport { isMobile } from '../../../general/js/utils/screen-size-utils';\r\n\r\nclass IMGAMatchupsGameComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.updatePaddingTop();\r\n this.render();\r\n }\r\n\r\n updatePaddingTop() {\r\n const {\r\n iFrameAspectRatioWidth,\r\n iFrameAspectRatioHeight,\r\n mobileIFrameAspectRatioHeight,\r\n mobileIFrameAspectRatioWidth\r\n } = this.options;\r\n\r\n const desktopPaddingTopPercent = `${(iFrameAspectRatioHeight / iFrameAspectRatioWidth) * 100}%`;\r\n const mobilePaddingTopPercent = `${(mobileIFrameAspectRatioHeight / mobileIFrameAspectRatioWidth) * 100}%`;\r\n\r\n this.element.style.paddingTop = isMobile() ? mobilePaddingTopPercent : desktopPaddingTopPercent;\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default IMGAMatchupsGameComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from '../../foundation/components-factory';\r\nimport IMGAMatchupsGameComponent from './js/imga-matchups-game.component';\r\n\r\nComponentsFactory.getInstance().define('imga-matchups-game', IMGAMatchupsGameComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport eventBus from '../../../general/js/event-bus';\r\n\r\nexport default class LargeHero extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n eventBus.emit('large-hero-init', {\r\n largeHeroStickyRef: this.refs.sticky\r\n });\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LargeHero from './js/large-hero.component';\r\n\r\nComponentsFactory.getInstance().define('large-hero', LargeHero);\r\n","import get from 'lodash/get';\r\nimport has from 'lodash/has';\r\nimport { cellTypes } from '../enums';\r\n\r\nconst sortAsc = (players, property, checkRule) => {\r\n return [...players].sort((a, b) => {\r\n if (property !== \"position.sortValue\") {\r\n let compareCutResult = compareByCut(a, b);\r\n\r\n if (compareCutResult != 0) {\r\n return compareCutResult;\r\n }\r\n }\r\n\r\n let aVal = 0;\r\n let bVal = 0;\r\n if (has(a, property)) {\r\n const aPropValue = get(a, property);\r\n if (checkRule !== null && checkRule !== undefined) {\r\n aVal = checkRule(aPropValue);\r\n } else {\r\n aVal = parseInt(aPropValue, 10);\r\n }\r\n }\r\n if (has(b, property)) {\r\n const bPropValue = get(b, property);\r\n if (checkRule !== null && checkRule !== undefined) {\r\n bVal = checkRule(bPropValue);\r\n } else {\r\n bVal = parseInt(bPropValue, 10);\r\n }\r\n }\r\n\r\n return aVal - bVal;\r\n });\r\n};\r\n\r\nconst sortDesc = (players, property, checkRule) => {\r\n return [...players].sort((a, b) => {\r\n if (property !== \"position.sortValue\") {\r\n let compareCutResult = compareByCut(a, b);\r\n\r\n if (compareCutResult != 0) {\r\n return compareCutResult;\r\n }\r\n }\r\n\r\n let aVal = 0;\r\n let bVal = 0;\r\n if (has(a, property)) {\r\n const aPropValue = get(a, property);\r\n if (checkRule !== null && checkRule !== undefined) {\r\n aVal = checkRule(aPropValue);\r\n } else {\r\n aVal = parseInt(aPropValue, 10);\r\n }\r\n }\r\n if (has(b, property)) {\r\n const bPropValue = get(b, property);\r\n if (checkRule !== null && checkRule !== undefined) {\r\n bVal = checkRule(bPropValue);\r\n } else {\r\n bVal = parseInt(bPropValue, 10);\r\n }\r\n }\r\n\r\n return bVal - aVal;\r\n });\r\n};\r\n\r\nexport const sortAscAZ = (players, property) => {\r\n return [...players].sort((a, b) => {\r\n if (property !== \"position.sortValue\") {\r\n let compareCutResult = compareByCut(a, b);\r\n\r\n if (compareCutResult != 0) {\r\n return compareCutResult;\r\n }\r\n }\r\n\r\n let aVal = 'z';\r\n let bVal = 'z';\r\n if (has(a, property)) {\r\n aVal = get(a, property);\r\n }\r\n if (has(b, property)) {\r\n bVal = get(b, property);\r\n }\r\n return aVal.toLowerCase() > bVal.toLowerCase() ? 1 : -1;\r\n });\r\n};\r\n\r\nconst sortDescAZ = (players, property) => {\r\n return [...players].sort((a, b) => {\r\n if (property !== \"position.sortValue\") {\r\n let compareCutResult = compareByCut(a, b);\r\n\r\n if (compareCutResult != 0) {\r\n return compareCutResult;\r\n }\r\n }\r\n\r\n let aVal = '';\r\n let bVal = '';\r\n if (has(a, property)) {\r\n aVal = get(a, property);\r\n }\r\n if (has(b, property)) {\r\n bVal = get(b, property);\r\n }\r\n return bVal.toLowerCase() > aVal.toLowerCase() ? 1 : -1;\r\n });\r\n};\r\n\r\nfunction compareByCut(playerA, playerB) {\r\n let cutProperty = \"position.displayValue\";\r\n let aCutVal = 'z';\r\n let bCutVal = 'z';\r\n\r\n if (has(playerA, cutProperty)) {\r\n aCutVal = get(playerA, cutProperty);\r\n }\r\n if (has(playerB, cutProperty)) {\r\n bCutVal = get(playerB, cutProperty);\r\n }\r\n\r\n if (aCutVal == null || bCutVal == null) {\r\n return 0;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'unknown');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'rtd');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'mcdnp');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'dqc');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'wdc');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'dns');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'dq');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'wd');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n let statusCompare = compareByStatus(aCutVal, bCutVal, 'cut');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n return 0;\r\n}\r\n\r\nfunction compareByStatus(playerAStatus, playerBStatus, status) {\r\n if (playerAStatus.toLowerCase() === status && playerBStatus.toLowerCase() != status) {\r\n return 1;\r\n }\r\n\r\n if (playerAStatus.toLowerCase() != status && playerBStatus.toLowerCase() === status) {\r\n return -1;\r\n }\r\n\r\n return 0;\r\n}\r\n\r\nexport const sortingStrategies = {\r\n [cellTypes.POSITION]: {\r\n filteringFunc: (players, isAsc) => {\r\n return isAsc ?\r\n sortAsc(players, 'position.sortValue') :\r\n sortDesc(players, 'position.sortValue');\r\n }\r\n },\r\n [cellTypes.MOVERS]: {\r\n filteringFunc: (players, isAsc) => {\r\n return isAsc ? sortAsc(players, 'movers') : sortDesc(players, 'movers');\r\n }\r\n },\r\n [cellTypes.PLAYER]: {\r\n filteringFunc: (players, isAsc) => {\r\n return isAsc ?\r\n sortAscAZ(players, 'sitecoreData.lastName') :\r\n sortDescAZ(players, 'sitecoreData.lastName');\r\n }\r\n },\r\n [cellTypes.PAR]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n // make toParworse to move in the end\r\n if (!val || val.toUpperCase() === 'WD') return 1000;\r\n\r\n return val === 'E' ? 0 : parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'toPar', checkRule) :\r\n sortDesc(players, 'toPar', checkRule);\r\n }\r\n },\r\n [cellTypes.HOLE]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') {\r\n return 0;\r\n }\r\n\r\n return val === 'F' ? 19 : parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'hole', checkRule) : sortDesc(players, 'hole', checkRule);\r\n }\r\n },\r\n [cellTypes.TOTAL]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'total', checkRule) : sortDesc(players, 'total', checkRule);\r\n }\r\n },\r\n [cellTypes.TODAY]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n // make player par worse to move in the end\r\n if (!val || val === '-') return 1000;\r\n\r\n return val === 'E' ? 0 : parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'today', checkRule) :\r\n sortDesc(players, 'today', checkRule);\r\n }\r\n },\r\n [cellTypes.R1]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ? sortAsc(players, 'r1', checkRule) : sortDesc(players, 'r1', checkRule);\r\n }\r\n },\r\n [cellTypes.R2]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ? sortAsc(players, 'r2', checkRule) : sortDesc(players, 'r2', checkRule);\r\n }\r\n },\r\n [cellTypes.R3]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ? sortAsc(players, 'r3', checkRule) : sortDesc(players, 'r3', checkRule);\r\n }\r\n },\r\n [cellTypes.R4]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ? sortAsc(players, 'r4', checkRule) : sortDesc(players, 'r4', checkRule);\r\n }\r\n }\r\n};\r\n","import React from 'react';\r\nimport { CountryFlag } from 'project/country-flag';\r\nimport { livePlayer } from 'components/live-player';\r\nimport { sortAscAZ } from './sortingStrategies';\r\n\r\nclass LeaderboardAlphaList extends React.Component {\r\n renderRow(player) {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n livePlayer.show(player.playerId)}\r\n >\r\n \r\n
\r\n
{player.lastName}
\r\n ,\r\n
{player.firstName}
\r\n { player.isAmateur && (a) }\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n );\r\n }\r\n\r\n render() {\r\n const { players } = this.props;\r\n\r\n if (!Array.isArray(players)) return null;\r\n\r\n const sortedPlayers = sortAscAZ(players, 'lastName');\r\n\r\n return (\r\n
\r\n {sortedPlayers.map((player) => this.renderRow(player))}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardAlphaList;\r\n","import React from 'react';\r\nimport { SpriteSvg } from 'project/sprite-svg';\r\n\r\nconst FavoriteButton = ({ childCss, onClick, stateFavoriteButton }) => {\r\n const getState = () => {\r\n let stateFavoriteButtonClassName = '';\r\n if (stateFavoriteButton) {\r\n stateFavoriteButtonClassName = 'is-active';\r\n }\r\n return stateFavoriteButtonClassName;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nFavoriteButton.defaultProps = {\r\n childCss: '',\r\n};\r\n\r\nexport default FavoriteButton;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { LazyImage } from 'project/lazy-image';\r\nimport { SpriteSvg } from 'project/sprite-svg';\r\nimport { viewTypes } from '../enums';\r\nimport { FLAG_IMAGE_PATH } from 'general/js/constants';\r\n\r\nconst LeaderboardHbhButton = ({ view, toggleHoleByHoleView }) => {\r\n const stateCss = classNames({\r\n 'is-active': view === viewTypes.HOLE_BY_HOLE,\r\n });\r\n\r\n return (\r\n \r\n \r\n Hole By Hole\r\n {\r\n view === viewTypes.HOLE_BY_HOLE &&\r\n \r\n }\r\n {\r\n view !== viewTypes.HOLE_BY_HOLE &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n );\r\n};\r\n\r\nexport default LeaderboardHbhButton;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { cellTypes } from '../enums';\r\n\r\nconst LeaderboardCellHoleTitle = ({ sortingHandlerProps, processingState }) => {\r\n const isActive = processingState.sortingType === cellTypes.HOLE;\r\n const stateCss = classNames({\r\n 'is-active': isActive,\r\n 'is-top': isActive && processingState.isSortingAscending\r\n });\r\n\r\n return (\r\n
\r\n sortingHandlerProps(cellTypes.HOLE)}\r\n >\r\n
hole
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n hole\r\n
\r\n
\r\n );\r\n};\r\nexport default LeaderboardCellHoleTitle;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { viewTypes } from '../enums';\r\n\r\nconst LeaderboardRScore = ({ view, toggleRScore }) => {\r\n const renderContentRScore = () => {\r\n if (view !== viewTypes.R_SCORE) {\r\n return (\r\n \r\n
round score
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const stateCss = classNames({\r\n 'is-close': view === viewTypes.R_SCORE\r\n });\r\n\r\n return (\r\n \r\n
\r\n {renderContentRScore()}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default LeaderboardRScore;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport LeaderboardRScore from './leaderboard-r-score';\r\nimport { viewTypes, cellTypes } from '../enums';\r\n\r\nconst LeaderboardCellPlayerTitle = (\r\n {\r\n view,\r\n toggleRScore,\r\n sortingHandlerProps,\r\n processingState,\r\n }\r\n) => {\r\n const isActive = processingState.sortingType === cellTypes.PLAYER;\r\n const stateCss = classNames({\r\n 'is-active': isActive,\r\n 'is-top': isActive && processingState.isSortingAscending\r\n });\r\n\r\n return (\r\n \r\n sortingHandlerProps(cellTypes.PLAYER)}\r\n >\r\n
player
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n view !== viewTypes.HOLE_BY_HOLE &&\r\n \r\n }\r\n\r\n
player
\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellPlayerTitle;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { cellTypes } from '../enums';\r\n\r\nconst LeaderboardCellMoversTitle = ({ sorted, processingState }) => {\r\n const isActive = processingState.sortingType === cellTypes.MOVERS;\r\n const stateCss = classNames({\r\n 'is-active': isActive,\r\n 'is-top': isActive && processingState.isSortingAscending\r\n });\r\n\r\n return (\r\n \r\n sorted(cellTypes.MOVERS)}\r\n >\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellMoversTitle;\r\n","import React from 'react';\r\n\r\nconst LeaderboardCellScoresTitle = ({ scoringCourseRound }) => {\r\n return (\r\n
\r\n {\r\n scoringCourseRound.holePars.map((holePar) => {\r\n return (\r\n
\r\n
{holePar.holeId}
\r\n
{holePar.par}
\r\n
\r\n );\r\n })\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellScoresTitle;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { getCellModifierByType, getTitleByType } from '../enums';\r\n\r\nconst LeaderboardCellTitleBasic = (\r\n {\r\n type,\r\n sortingHandler,\r\n processingState\r\n }\r\n) => {\r\n const isActive = processingState.sortingType === type;\r\n const stateCss = classNames({\r\n 'is-active': isActive,\r\n 'is-top': isActive && processingState.isSortingAscending\r\n });\r\n\r\n const modifier = getCellModifierByType(type);\r\n const title = getTitleByType(type);\r\n\r\n return (\r\n \r\n sortingHandler(type)}\r\n >\r\n
{title}
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
{title}
\r\n \r\n );\r\n};\r\n\r\nexport default LeaderboardCellTitleBasic;\r\n","import React from 'react';\r\nimport { cellTypes, viewTypes } from '../enums';\r\nimport LeaderboardCellHoleTitle from './leaderboard-cell-hole-title';\r\nimport LeaderboardCellPlayerTitle from './leaderboard-cell-player-title';\r\nimport LeaderboardCellMoversTitle from './leaderboard-cell-movers-title';\r\nimport LeaderboardCellScoresTitle from './leaderboard-cell-scores-title';\r\nimport LeaderboardCellTitleBasic from './leaderboard-cell-title-basic';\r\n\r\nconst LeaderboardRowTitle = (\r\n {\r\n view,\r\n scoringCourseRound,\r\n toggleRScore,\r\n sortingHandlerProps,\r\n processingState,\r\n }\r\n) => {\r\n const renderTitleBasic = (type, sortingHandler) => {\r\n return (\r\n \r\n );\r\n };\r\n\r\n return (\r\n
\r\n\r\n {renderTitleBasic(cellTypes.POSITION, sortingHandlerProps, processingState)}\r\n\r\n \r\n\r\n \r\n\r\n {renderTitleBasic(cellTypes.PAR, sortingHandlerProps, processingState)}\r\n\r\n {view === viewTypes.R_SCORE && renderTitleBasic(cellTypes.R1, sortingHandlerProps, processingState)}\r\n {view === viewTypes.R_SCORE && renderTitleBasic(cellTypes.R2, sortingHandlerProps, processingState)}\r\n {view === viewTypes.R_SCORE && renderTitleBasic(cellTypes.R3, sortingHandlerProps, processingState)}\r\n {view === viewTypes.R_SCORE && renderTitleBasic(cellTypes.R4, sortingHandlerProps, processingState)}\r\n\r\n {view === viewTypes.HOLE_BY_HOLE && }\r\n\r\n {\r\n view !== viewTypes.R_SCORE &&\r\n view !== viewTypes.HOLE_BY_HOLE &&\r\n \r\n }\r\n\r\n {view === viewTypes.R_SCORE && renderTitleBasic(cellTypes.TOTAL, sortingHandlerProps, processingState)}\r\n {view !== viewTypes.R_SCORE && renderTitleBasic(cellTypes.TODAY, sortingHandlerProps, processingState)}\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardRowTitle;\r\n","import React from 'react';\r\n\r\nconst LeaderboardCellPos = ({ data }) => {\r\n const position = (data.position && data.position.displayValue) || '-';\r\n\r\n return (\r\n
\r\n
{position}
\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellPos;\r\n","import React from 'react';\r\n\r\nconst LeaderboardMoversBasicIcon = ({ stateIcon }) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardMoversBasicIcon;\r\n","import React from 'react';\r\n\r\nconst LeaderboardMoversExtendedIcon = ({ stateIcon }) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardMoversExtendedIcon;\r\n","import React from 'react';\r\nimport LeaderboardMoversBasicIcon from './leaderboard-movers-basic-icon';\r\nimport LeaderboardMoversExtendedIcon from './leaderboard-movers-extended-icon';\r\n\r\nconst LeaderboardCellSort = ({ data, options }) => {\r\n const renderArrows = (movers) => {\r\n\r\n if (movers < 0 && Math.abs(movers) >= options.threshold) {\r\n return ;\r\n }\r\n\r\n if (movers < 0 && Math.abs(movers) < options.threshold) {\r\n return ;\r\n }\r\n\r\n if (movers > 0 && Math.abs(movers) >= options.threshold) {\r\n return ;\r\n }\r\n\r\n if (movers > 0 && Math.abs(movers) < options.threshold) {\r\n return ;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const getMovers = (movers) => {\r\n let moversValue = '-';\r\n\r\n if (!movers || movers === 0) {\r\n return moversValue;\r\n }\r\n\r\n if (movers > 0) {\r\n moversValue = movers;\r\n }\r\n\r\n if (movers < 0) {\r\n moversValue = movers.toString().replace('-', '');\r\n }\r\n\r\n return moversValue;\r\n };\r\n\r\n return (\r\n
\r\n
\r\n {/*
*/}\r\n
\r\n {renderArrows(data.movers)}\r\n {getMovers(data.movers)}\r\n
\r\n {/*
*/}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellSort;\r\n","import React from 'react';\r\nimport { SpriteSvg } from 'project/sprite-svg';\r\n\r\nconst LeaderboardFeaturedGroupLive = ({ targetUrl }) => {\r\n if (!targetUrl) return null;\r\n\r\n return (\r\n \r\n
\r\n Featured group\r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default LeaderboardFeaturedGroupLive;\r\n","import React from 'react';\r\nimport get from 'lodash/get';\r\nimport eventBus from 'general/js/event-bus';\r\nimport app, { EVENT_DEVICE_TYPE_CHANGED, DEVICE_TYPE_MOBILE } from 'general/js/app';\r\nimport { playerSitecoreData } from 'components/live-player';\r\nimport LeaderboardFeaturedGroupLive from './leaderboard-featured-group-live';\r\nimport LeaderboardTeeTimesGroup from './leaderboard-tee-times-group';\r\nimport { playOffStatuses, viewTypes } from '../enums';\r\n\r\n\r\nclass LeaderboardCellPlayerExtra extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n deviceType: app.deviceTypeByViewport\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.onDeviceTypeChanged);\r\n }\r\n\r\n componentWillUnmount() {\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.onDeviceTypeChanged);\r\n }\r\n\r\n onDeviceTypeChanged = (oldDeviceType, newDeviceType) => {\r\n this.setState({\r\n deviceType: newDeviceType\r\n });\r\n }\r\n\r\n renderPlayOffStatus() {\r\n const { player, hasChampion } = this.props;\r\n const playerSD = player.sitecoreData || playerSitecoreData;\r\n\r\n if (hasChampion) return null;\r\n\r\n if (playerSD.suddenDeathStatus &&\r\n playerSD.suddenDeathStatus !== playOffStatuses.NOT_PLAYING) {\r\n return 'Sudden death';\r\n }\r\n\r\n if (playerSD.playOffStatus &&\r\n playerSD.playOffStatus !== playOffStatuses.NOT_PLAYING) {\r\n return 'Play off';\r\n }\r\n\r\n return null;\r\n }\r\n\r\n render() {\r\n const { player, view, isPlayOff, currentRound, scoringLeaderboard } = this.props;\r\n const selectedRound = get(scoringLeaderboard, 'currentRound');\r\n const featuredGroupLiveUrl = get(player, 'sitecoreData.featuredGroupLiveUrl');\r\n\r\n return (\r\n
\r\n \r\n {\r\n (currentRound == selectedRound) &&\r\n \r\n }\r\n {\r\n isPlayOff &&\r\n view === viewTypes.HOLE_BY_HOLE &&\r\n
{this.renderPlayOffStatus()}
\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardCellPlayerExtra;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { favoritePlayerService } from 'general/js/services';\r\nimport {\r\n DEVICE_TYPE_MOBILE,\r\n DEVICE_TYPE_MOBILE_WIDE,\r\n DEVICE_TYPE_TABLET,\r\n} from 'general/js/app';\r\nimport { CountryFlag } from 'project/country-flag';\r\nimport { LazyImage } from 'project/lazy-image';\r\nimport FavoritePlayerButton from 'components/favorite-player-button';\r\nimport { livePlayer } from 'components/live-player';\r\nimport {\r\n renderSitecoreData,\r\n} from '../actions/renderData';\r\n\r\nimport LeaderboardCellPlayerExtra from './leaderboard-cell-player-extra';\r\n\r\nconst LeaderboardCellPlayerBasic = ({\r\n deviceTypeByViewport,\r\n player,\r\n ...rest\r\n}) => {\r\n const renderNameComponent = () => {\r\n const playerSD = player.sitecoreData;\r\n\r\n if (!playerSD) return null;\r\n\r\n let firstName = playerSD.firstName;\r\n\r\n if (deviceTypeByViewport === DEVICE_TYPE_MOBILE ||\r\n deviceTypeByViewport === DEVICE_TYPE_MOBILE_WIDE ||\r\n deviceTypeByViewport === DEVICE_TYPE_TABLET) {\r\n firstName = firstName.charAt(0);\r\n }\r\n\r\n const fullnameCss = classNames({\r\n //'is-long': playerSD.lastName.length > 10,\r\n 'is-lengthy': playerSD.lastName.length > 12,\r\n });\r\n\r\n return (\r\n
\r\n
\r\n {playerSD.lastName}\r\n
\r\n {\r\n firstName &&\r\n ,\r\n }\r\n
\r\n {firstName}\r\n
\r\n {\r\n playerSD.isAmateur &&\r\n (a)\r\n }\r\n
\r\n );\r\n };\r\n\r\n const favouriteTheme = {};\r\n\r\n if (favoritePlayerService.isFavourite(player.id.toString())) {\r\n favouriteTheme.isWhite = true;\r\n } else {\r\n favouriteTheme.isDark = true;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n livePlayer.show(player.id)}\r\n >\r\n \r\n {renderNameComponent()}\r\n {\r\n player.sitecoreData &&\r\n player.sitecoreData.sponsorLogoSrc &&\r\n
\r\n \r\n
\r\n }\r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellPlayerBasic;\r\n","export const renderSitecoreData = (data, title) => {\r\n if (data.sitecoreData) {\r\n return data.sitecoreData[title];\r\n }\r\n\r\n return null;\r\n};\r\n","import React from 'react';\r\nimport { ScorePlayerCell } from 'components/scores';\r\n\r\nclass LeaderboardPlayerResult extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.setScrollToEnd();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.setScrollToEnd();\r\n }\r\n\r\n setScrollToEnd = () => {\r\n const { scrollWidth, offsetWidth } = this.rootRef.current;\r\n\r\n this.rootRef.current.scrollLeft = scrollWidth - offsetWidth;\r\n };\r\n\r\n playerResult = () => {\r\n const { playOffRound } = this.props;\r\n\r\n if (!playOffRound || !Array.isArray(playOffRound.info)) return null;\r\n\r\n return (\r\n playOffRound.info.map((item, index) => {\r\n return (\r\n \r\n
\r\n
{item.holeId}
\r\n
\r\n
\r\n
{item.holePar}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n })\r\n );\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n {this.playerResult()}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardPlayerResult;\r\n","import React from 'react';\r\nimport get from 'lodash/get';\r\nimport classNames from 'classnames';\r\nimport ArrayHelper from 'foundation/array-helper';\r\nimport { favoritePlayerService } from 'general/js/services';\r\nimport { getRoundById } from 'general/js/helpers';\r\nimport { LazyImage } from 'project/lazy-image';\r\nimport { CountryFlag } from 'project/country-flag';\r\nimport { livePlayer, playerSitecoreData } from 'components/live-player';\r\nimport FavoritePlayerButton from 'components/favorite-player-button';\r\nimport { ScorePlayerCell } from 'components/scores';\r\nimport LeaderboardPlayerResult from './leaderboard-player-result';\r\nimport LeaderboardCellPlayerExtra from './leaderboard-cell-player-extra';\r\n\r\nconst LeaderboardCellPlayerLeaders = (\r\n {\r\n player,\r\n scoringCourseRound,\r\n currentRound,\r\n isPlayOff,\r\n liveScanner,\r\n ...rest\r\n }\r\n) => {\r\n if (!player || ArrayHelper.isEmpty(player.rounds)) return null;\r\n\r\n const playerSD = player.sitecoreData || playerSitecoreData;\r\n const foundRound = getRoundById(player.rounds, currentRound);\r\n const playOffRoundId = liveScanner.liveComponents.leaderboard !== undefined ? liveScanner.liveComponents.leaderboard.playoffRoundId : 401;\r\n\r\n const renderIndicators = () => {\r\n return scoringCourseRound.holePars.map((holePar, i) => {\r\n const playerPar = get(foundRound, `info[${i}].playerPar`) || null;\r\n\r\n return (\r\n \r\n );\r\n });\r\n };\r\n\r\n const renderIndicatorsComponent = () => {\r\n if (!foundRound || ArrayHelper.isEmpty(foundRound.info)) return null;\r\n\r\n if (isPlayOff) {\r\n const playOffRound = getRoundById(player.rounds, playOffRoundId);\r\n\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n r{currentRound}\r\n
\r\n
\r\n {renderIndicators()}\r\n
\r\n
\r\n );\r\n };\r\n\r\n\r\n const favouriteTheme = {};\r\n\r\n if (favoritePlayerService.isFavourite(player.id.toString())) {\r\n favouriteTheme.isWhite = true;\r\n } else {\r\n favouriteTheme.isDark = true;\r\n }\r\n\r\n const lastNameCss = classNames({\r\n 'is-long': playerSD.lastName.length > 12\r\n });\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n livePlayer.show(player.id)}\r\n >\r\n
\r\n {playerSD.firstName}\r\n
\r\n
\r\n
\r\n {playerSD.lastName}\r\n {\r\n playerSD.isAmateur &&\r\n (a)\r\n }\r\n
\r\n {\r\n playerSD.sponsorLogoSrc &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n \r\n\r\n {renderIndicatorsComponent()}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellPlayerLeaders;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport app from 'general/js/app';\r\nimport LeaderboardCellPlayerBasic from './leaderboard-cell-player-basic.js';\r\nimport LeaderboardCellPlayerLeaders from './leaderboard-cell-player-leaders.js';\r\nimport { viewTypes } from '../enums';\r\n\r\nconst LeaderboardCellPlayer = (\r\n {\r\n player,\r\n view,\r\n isChampion,\r\n isPlayOff,\r\n isEnhanced,\r\n liveScanner,\r\n ...rest\r\n }\r\n) => {\r\n let playOffHoles = null;\r\n const playOffRoundId = liveScanner.liveComponents.leaderboard !== undefined ? liveScanner.liveComponents.leaderboard.playoffRoundId : 401;\r\n\r\n if (Array.isArray(player.rounds)) {\r\n playOffHoles = player.rounds.find((round) => round.id === playOffRoundId);\r\n }\r\n\r\n const renderPlayOffView = () => {\r\n if (!isPlayOff || isChampion) return false;\r\n\r\n return playOffHoles && playOffHoles.length > 6;\r\n };\r\n\r\n const getIsChampionPlayOff = () => {\r\n return isChampion &&\r\n view !== viewTypes.HOLE_BY_HOLE &&\r\n playOffHoles &&\r\n playOffHoles.length > 6;\r\n };\r\n\r\n const renderPlayerContent = () => {\r\n if (isEnhanced && view !== viewTypes.HOLE_BY_HOLE) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n const renderChampionStatus = () => {\r\n if (!isChampion || view === viewTypes.HOLE_BY_HOLE) return null;\r\n\r\n return (\r\n

\r\n
{app.state.championLabels.mobile}
\r\n
\r\n
{app.state.championLabels.desktop}
\r\n
\r\n

\r\n );\r\n };\r\n\r\n const cellStateCss = classNames({\r\n 'is-leaders': view !== viewTypes.HOLE_BY_HOLE && isEnhanced,\r\n 'is-play-off': isPlayOff && view !== viewTypes.HOLE_BY_HOLE,\r\n 'is-play-off-res': renderPlayOffView(),\r\n 'is-champion': isChampion,\r\n 'is-champion-play-off': getIsChampionPlayOff()\r\n });\r\n\r\n return (\r\n
\r\n
\r\n {renderChampionStatus()}\r\n
\r\n {renderPlayerContent()}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellPlayer;\r\n","import React from 'react';\r\nimport { ScoreTotalCell } from 'components/scores';\r\nimport { viewTypes } from '../enums';\r\n\r\nconst LeaderboardCellToPar = (\r\n {\r\n player,\r\n playerSD,\r\n view,\r\n isPlayOff\r\n }\r\n) => {\r\n const renderInfo = () => {\r\n let playOffText = '';\r\n\r\n if (playerSD.suddenDeathStatus) {\r\n playOffText = 'Sudden death';\r\n } else if (playerSD.playOffStatus) {\r\n playOffText = 'PlayOff';\r\n }\r\n\r\n return (\r\n
\r\n
{playOffText}
\r\n \r\n
\r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n {\r\n isPlayOff &&\r\n view !== viewTypes.HOLE_BY_HOLE &&\r\n renderInfo()\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellToPar;\r\n","import React from 'react';\r\nimport { ScoreTodayCell } from 'components/scores';\r\n\r\nconst LeaderboardCellToday = ({ data }) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellToday;\r\n","import React from 'react';\r\nimport { ScoreCell } from 'components/scores';\r\n\r\nconst LeaderboardCellTotal = ({ data }) => {\r\n return (\r\n
\r\n
\r\n {data.total || '-'}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellTotal;\r\n","import React from 'react';\r\nimport { ScoreCell } from 'components/scores';\r\n\r\nconst LeaderboardCellHole = ({ data }) => {\r\n return (\r\n
\r\n {data.hole || '-'}\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellHole;\r\n","import React from 'react';\r\nimport get from 'lodash/get';\r\nimport { ScorePlayerCell } from 'components/scores';\r\n\r\nconst LeaderboardCellScores = ({ scoringCourseRound, scoringPlayerRound }) => {\r\n return (\r\n
\r\n {\r\n scoringCourseRound.holePars.map((holePar, i) => {\r\n const playerPar = get(scoringPlayerRound, `info[${i}].playerPar`) || null;\r\n\r\n return ;\r\n })\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellScores;\r\n","import React from 'react';\r\nimport { ScoreCell } from 'components/scores';\r\n\r\nconst LeaderboardCellRound = ({ data }) => {\r\n let scoreText = data;\r\n\r\n if (!data || data === '0') {\r\n scoreText = '-';\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {scoreText}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellRound;\r\n","import React from 'react';\r\nimport { getTotalBemClass, ScoreCell } from 'components/scores';\r\n\r\nconst LeaderboardCellRoundTotal = ({ scoringCourseRound, player, currentRound }) => {\r\n const playerTotal = player[`r${currentRound}`];\r\n const roundTotal = scoringCourseRound.totalPar;\r\n const difference = playerTotal - roundTotal;\r\n let bemList = ['default', 'has-border'];\r\n\r\n if (playerTotal && roundTotal && !Number.isNaN(difference)) {\r\n bemList = [getTotalBemClass(difference), 'has-border'];\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {playerTotal || '-'}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardCellRoundTotal;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { favoritePlayerService } from 'general/js/services';\r\nimport { getRoundById } from 'general/js/helpers';\r\nimport { LazyImage } from 'project/lazy-image';\r\nimport { playerSitecoreData } from 'components/live-player';\r\nimport { playOffStatuses, viewTypes } from '../enums';\r\nimport LeaderboardCellPos from './leaderboard-cell-pos';\r\nimport LeaderboardCellSort from './leaderboard-cell-sort';\r\nimport LeaderboardCellPlayer from './leaderboard-cell-player';\r\nimport LeaderboardCellToPar from './leaderboard-cell-to-par';\r\nimport LeaderboardCellToday from './leaderboard-cell-today';\r\nimport LeaderboardCellTotal from './leaderboard-cell-total';\r\nimport LeaderboardCellHole from './leaderboard-cell-hole';\r\nimport LeaderboardCellScores from './leaderboard-cell-scores';\r\nimport LeaderboardCellRound from './leaderboard-cell-round';\r\nimport LeaderboardCellRoundTotal from './leaderboard-cell-round-total';\r\nimport { CHAMPION_IMAGE_PATH } from 'general/js/constants';\r\n\r\nconst LeaderboardRows = (\r\n {\r\n options,\r\n scoringCourseRound,\r\n scoringLeaderboard,\r\n currentRound,\r\n cutStatus,\r\n deviceTypeByViewport,\r\n players,\r\n playersCut,\r\n view,\r\n hasChampion,\r\n isPlayOffMode,\r\n liveScanner\r\n }\r\n) => {\r\n const getIsPlayOff = (playerSD) => {\r\n if (!playerSD) return false;\r\n\r\n if (playerSD.playOffStatus &&\r\n playerSD.playOffStatus !== playOffStatuses.NOT_PLAYING\r\n ) {\r\n return true;\r\n }\r\n\r\n return !!(playerSD.suddenDeathStatus &&\r\n playerSD.suddenDeathStatus !== playOffStatuses.NOT_PLAYING);\r\n };\r\n\r\n const getIsLostPlayOff = (playerSD) => {\r\n if (!playerSD) return false;\r\n\r\n if (playerSD.playOffStatus &&\r\n playerSD.playOffStatus === playOffStatuses.LOST\r\n ) {\r\n return true;\r\n }\r\n\r\n return !!(playerSD.suddenDeathStatus &&\r\n playerSD.suddenDeathStatus === playOffStatuses.LOST);\r\n };\r\n\r\n const getIsEnhanced = (isPlayOff, isChampion, isFavorite) => {\r\n return isChampion || isPlayOff || isFavorite;\r\n };\r\n\r\n const renderRows = (playersList) => {\r\n return playersList.map((player, index) => {\r\n const scoringPlayerRound = getRoundById(player.rounds, currentRound);\r\n const playerSD = player.sitecoreData || playerSitecoreData;\r\n const isChampion = playerSD.isChampion || false;\r\n const isPlayOff = getIsPlayOff(playerSD);\r\n const isLostPlayOff = getIsLostPlayOff(playerSD);\r\n const isFavorite = favoritePlayerService.isFavourite(player.id);\r\n const isEnhanced = player.isEnhancedListings ||\r\n getIsEnhanced(isChampion, isPlayOff, isFavorite);\r\n\r\n let isCut = player.status !== 1;\r\n\r\n if (isPlayOffMode && !hasChampion) {\r\n if (!isPlayOff || (isPlayOff && isLostPlayOff)) {\r\n isCut = true;\r\n }\r\n }\r\n\r\n const rowStateCss = classNames({\r\n 'is-cut': isCut,\r\n 'is-leaders': view !== viewTypes.HOLE_BY_HOLE && isEnhanced,\r\n 'is-play-off': isPlayOff,\r\n 'is-champion': isChampion,\r\n 'is-favorite': isFavorite,\r\n });\r\n if (playerSD.firstName) {\r\n return (\r\n
\r\n {\r\n isChampion &&\r\n view !== viewTypes.HOLE_BY_HOLE &&\r\n \r\n }\r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n {view === viewTypes.R_SCORE && }\r\n {view === viewTypes.R_SCORE && }\r\n {view === viewTypes.R_SCORE && }\r\n {view === viewTypes.R_SCORE && }\r\n\r\n {\r\n view === viewTypes.HOLE_BY_HOLE &&\r\n \r\n }\r\n\r\n {view === viewTypes.SUMMARY && }\r\n\r\n {view === viewTypes.SUMMARY && }\r\n {view === viewTypes.R_SCORE && }\r\n {\r\n view === viewTypes.HOLE_BY_HOLE &&\r\n \r\n }\r\n
\r\n );\r\n }\r\n });\r\n };\r\n\r\n const renderProjectedCut = () => {\r\n return
PROJECTED CUT
;\r\n };\r\n\r\n const renderCut = () => {\r\n return
CUT
;\r\n };\r\n\r\n return (\r\n \r\n {renderRows(players)}\r\n {cutStatus === 'projected' && renderProjectedCut()}\r\n {cutStatus === 'cut' && renderCut()}\r\n {renderRows(playersCut)}\r\n \r\n );\r\n};\r\n\r\nexport default LeaderboardRows;\r\n","import React from 'react';\r\nimport ArrayHelper from 'foundation/array-helper';\r\nimport classNames from 'classnames';\r\nimport { getRoundById, checkIfRoundHasTeeTimes } from 'general/js/helpers';\r\nimport LeaderboardRowTitle from './leaderboard-row-title';\r\nimport LeaderboardRows from './leaderboard-rows';\r\n\r\nconst LeaderboardTable = ({\r\n options,\r\n scoringCourse,\r\n currentRound,\r\n deviceTypeByViewport,\r\n players,\r\n playersCut,\r\n favoritePlayers,\r\n favoriteState,\r\n activeRoundId,\r\n toggleRScore,\r\n sortingHandlerProps,\r\n processingState,\r\n liveScanner,\r\n ...rest\r\n}) => {\r\n const scoringCourseRound = getRoundById(scoringCourse.courseRounds, currentRound);\r\n\r\n if (!scoringCourseRound || ArrayHelper.isEmpty(scoringCourseRound.holePars)) return null;\r\n\r\n const hasTeeTime = checkIfRoundHasTeeTimes(players);\r\n\r\n const stateCss = classNames({\r\n 'is-active-mobile': !hasTeeTime\r\n });\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LeaderboardTable;\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport Scrollable from 'general/js/scrollable';\r\nimport LeaderboardTable from '../components/leaderboard-table';\r\nimport { viewTypes } from '../enums';\r\n\r\nclass LeaderboardTableWrapper extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.rootRef = React.createRef();\r\n this.wrapperRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.scrollable = new Scrollable(\r\n this.rootRef.current,\r\n this.wrapperRef.current,\r\n );\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.scrollable) {\r\n this.scrollable.update();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.scrollable) {\r\n this.scrollable.destroy();\r\n }\r\n }\r\n\r\n getViewState = () => {\r\n const { view } = this.props;\r\n\r\n let viewState = '';\r\n\r\n switch (view) {\r\n case viewTypes.HOLE_BY_HOLE:\r\n viewState = 'leaderboard__table-wrapper--hole-by-hole';\r\n break;\r\n case viewTypes.R_SCORE:\r\n viewState = 'leaderboard__table-wrapper--r-score';\r\n break;\r\n default:\r\n viewState = '';\r\n }\r\n\r\n return viewState;\r\n };\r\n\r\n render() {\r\n const {\r\n favoriteState,\r\n isPlayOffMode,\r\n view,\r\n liveScanner,\r\n ...rest\r\n } = this.props;\r\n\r\n const tableWrapperStateCss = classNames({\r\n 'is-play-off': isPlayOffMode,\r\n 'is-favorite-state': view !== viewTypes.HOLE_BY_HOLE && favoriteState,\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardTableWrapper;\r\n","import React from 'react';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\n\r\nclass LeaderboardInfoButton extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n }\r\n\r\n onClick = () => {\r\n if (this.props.onClick) {\r\n this.props.onClick();\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardInfoButton;\r\n","import partition from 'lodash/partition';\r\n\r\nconst getCutLineData = (players, cutLine) => {\r\n return partition(players, (obj) => {\r\n let displayValue = null;\r\n if(obj.position.displayValue){\r\n displayValue = !isSpecialStatus(obj) ? parseInt(obj.position.displayValue.replace('T', ''), 10) : obj.position.displayValue;\r\n }\r\n else{\r\n displayValue = '';\r\n }\r\n\r\n\r\n if (isNaN(displayValue) || displayValue === ''){\r\n if(!isSpecialStatus(obj)){\r\n return true;\r\n }\r\n if(obj.position.sortValue > cutLine){\r\n return true;\r\n }\r\n }\r\n\r\n return displayValue > cutLine;\r\n });\r\n};\r\n\r\nconst getStatusData = (players) => {\r\n return partition(players, (player) => {\r\n return player.status !== 1;\r\n });\r\n};\r\n\r\nconst isSpecialStatus = (player) => {\r\n return player.position.displayValue === 'WD' || player.position.displayValue === 'RTD' || player.position.displayValue === 'DSQ' || player.position.displayValue === 'DQ';\r\n};\r\n\r\nexport const splitPlayers = (cutLineState, scoringPlayersCopy, cutLine = null) => {\r\n let playersAll = [];\r\n\r\n if (cutLineState) {\r\n playersAll = getCutLineData(scoringPlayersCopy, cutLine);\r\n } else {\r\n playersAll = getStatusData(scoringPlayersCopy);\r\n }\r\n\r\n return playersAll;\r\n};\r\n","import React from 'react';\r\nimport get from 'lodash/get';\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport classNames from 'classnames';\r\nimport eventBus from 'general/js/event-bus';\r\nimport app,\r\n{\r\n EVENT_DEVICE_TYPE_CHANGED,\r\n DEVICE_TYPE_DESKTOP,\r\n DEVICE_TYPE_DESKTOP_WIDE,\r\n} from 'general/js/app';\r\nimport { favoritePlayerService } from 'general/js/services';\r\nimport {\r\n EVENT_FAVOURITE_PLAYER_SERVICE_ADD,\r\n EVENT_FAVOURITE_PLAYER_SERVICE_REMOVE\r\n} from 'general/js/services/favorite-player-services';\r\nimport {\r\n generateBemCss,\r\n isRoundChoicesEqual,\r\n isRoundChoiceAvailable,\r\n setSelectedChoice\r\n} from 'general/js/helpers';\r\nimport gtm from 'general/js/gtm';\r\nimport { LazyImage } from 'project/lazy-image';\r\nimport { LiveEventSelect } from 'components/live-event-select';\r\nimport { LivePreMessage } from 'components/live-pre-message';\r\nimport {\r\n SearchAutocomplete,\r\n getSuggestionList,\r\n getDefaultCallback,\r\n} from 'components/search-autocomplete';\r\nimport { PlayerSuggestion, CountrySuggestion } from 'components/search-suggestions';\r\nimport { FavoriteButton } from 'components/favorite-button';\r\nimport LeaderboardHbhButton from './components/leaderboard-hbh-button';\r\nimport LeaderboardTableWrapper from './containers/leaderboard-table-wrapper';\r\nimport LeaderboardInfoButton from './components/leaderboard-info-button';\r\nimport { sortingStrategies } from './components/sortingStrategies';\r\nimport { splitPlayers } from './actions/get-players-data';\r\nimport { viewTypes, cellTypes, noFavoriteMessage } from './enums';\r\n\r\nconst SUBLAYOUT_FULLWIDTH_ENABLE = 'SUBLAYOUT_FULLWIDTH_ENABLE';\r\nconst SUBLAYOUT_FULLWIDTH_DISABLE = 'SUBLAYOUT_FULLWIDTH_DISABLE';\r\n\r\nclass LeaderboardContainer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n view: viewTypes.SUMMARY,\r\n roundChoices: null,\r\n selectedRoundId: null,\r\n favoritePlayerList: favoritePlayerService.getAll(),\r\n sortingType: cellTypes.POSITION,\r\n isSortingAscending: true,\r\n isPredictive: false,\r\n predictiveSearchResults: [],\r\n applyFavourite: false,\r\n notify: true\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n eventBus.addListener(EVENT_FAVOURITE_PLAYER_SERVICE_ADD, this.renderFavoritePlayers);\r\n eventBus.addListener(EVENT_FAVOURITE_PLAYER_SERVICE_REMOVE, this.renderFavoritePlayers);\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.changedRenderedViews);\r\n this.updateChoices();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.updateChoices();\r\n }\r\n\r\n componentWillUnmount() {\r\n eventBus.removeListener(EVENT_FAVOURITE_PLAYER_SERVICE_ADD, this.renderFavoritePlayers);\r\n eventBus.removeListener(EVENT_FAVOURITE_PLAYER_SERVICE_REMOVE, this.renderFavoritePlayers);\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.changedRenderedViews);\r\n }\r\n\r\n updateChoices() {\r\n const { liveScanner } = this.props;\r\n const { selectedRoundId } = this.state;\r\n\r\n if (!liveScanner) return;\r\n\r\n const prevChoices = this.state.roundChoices;\r\n const roundChoices = get(liveScanner, 'liveComponents.leaderboard.roundChoices');\r\n\r\n if (this.state.selectedRoundId &&\r\n isRoundChoiceAvailable(roundChoices, selectedRoundId)\r\n ) {\r\n setSelectedChoice(cloneDeep(roundChoices), selectedRoundId);\r\n\r\n if (!isRoundChoicesEqual(prevChoices, roundChoices)) {\r\n this.setState({ roundChoices });\r\n }\r\n return;\r\n }\r\n\r\n if (isRoundChoicesEqual(prevChoices, roundChoices)) return;\r\n\r\n this.setState({\r\n roundChoices,\r\n selectedRoundId: null,\r\n });\r\n }\r\n\r\n toggleHoleByHoleView = () => {\r\n let view = viewTypes.HOLE_BY_HOLE;\r\n\r\n if (this.state.view === viewTypes.HOLE_BY_HOLE) {\r\n view = viewTypes.SUMMARY;\r\n eventBus.emit(SUBLAYOUT_FULLWIDTH_DISABLE);\r\n } else {\r\n eventBus.emit(SUBLAYOUT_FULLWIDTH_ENABLE);\r\n gtm.push('Leaderboard', 'Hole by Hole', 'Select Hole by Hole');\r\n }\r\n\r\n this.setState({ view, selectedRoundId: this.state.currentRound });\r\n }\r\n\r\n changedRenderedViews = () => {\r\n if (!(app.deviceTypeByViewport === DEVICE_TYPE_DESKTOP ||\r\n app.deviceTypeByViewport === DEVICE_TYPE_DESKTOP_WIDE) &&\r\n this.state.view !== viewTypes.HOLE_BY_HOLE\r\n ) {\r\n this.setState({\r\n view: viewTypes.SUMMARY,\r\n });\r\n }\r\n }\r\n\r\n toggleRScoreView = () => {\r\n let view = viewTypes.R_SCORE;\r\n\r\n if (this.state.view === viewTypes.R_SCORE) {\r\n view = viewTypes.SUMMARY;\r\n } else {\r\n gtm.push('Leaderboard', 'Select', 'Round Score');\r\n }\r\n\r\n this.setState({ view });\r\n }\r\n\r\n setRound = (roundId) => {\r\n this.setState({ selectedRoundId: roundId });\r\n }\r\n\r\n toggleFilterByFavourite = () => {\r\n if (!this.state.applyFavourite) {\r\n gtm.push('Leaderboard', 'Favourites', 'Select Favourites');\r\n }\r\n this.setState({ applyFavourite: !this.state.applyFavourite });\r\n }\r\n\r\n filterByFavorite = (playersData) => {\r\n return playersData.filter((player) =>\r\n favoritePlayerService.isFavourite(player.id.toString()));\r\n }\r\n\r\n sortStateInit = (playersData) => {\r\n const currentStrategy = sortingStrategies[this.state.sortingType];\r\n return currentStrategy.filteringFunc(playersData, this.state.isSortingAscending);\r\n }\r\n\r\n processData(players) {\r\n const { applyFavourite, predictiveSearchResults } = this.state;\r\n let processedPlayers = players;\r\n\r\n if (applyFavourite) {\r\n processedPlayers = this.filterByFavorite(processedPlayers);\r\n }\r\n\r\n if (predictiveSearchResults.length) {\r\n processedPlayers = processedPlayers.filter((player) => {\r\n return predictiveSearchResults.find((predictivePlayer) =>\r\n predictivePlayer.id === player.id);\r\n });\r\n }\r\n\r\n processedPlayers = this.sortStateInit(processedPlayers);\r\n\r\n return processedPlayers;\r\n }\r\n\r\n sortingHandler = (type) => {\r\n let isSortingAscending = this.state.isSortingAscending;\r\n\r\n if (this.state.sortingType === type) {\r\n isSortingAscending = !isSortingAscending;\r\n } else {\r\n isSortingAscending = true;\r\n }\r\n\r\n this.setState({\r\n sortingType: type,\r\n isSortingAscending\r\n });\r\n }\r\n\r\n renderFavoritePlayers = () => {\r\n this.setState({\r\n favoritePlayerList: favoritePlayerService.getAll()\r\n });\r\n }\r\n\r\n showPlayerCard = (playerId) => {\r\n this.setState({ activePlayerId: playerId, isModalOpen: true });\r\n }\r\n\r\n prepareSuggestions = (players) => {\r\n const completeSuggestions = getSuggestionList(\r\n players,\r\n 'id',\r\n ['sitecoreData.firstName', 'sitecoreData.lastName'],\r\n (item) => ,\r\n this.processSearchResults,\r\n true\r\n );\r\n\r\n const countries = getSuggestionList(\r\n players,\r\n 'sitecoreData.country',\r\n ['sitecoreData.country', 'sitecoreData.countryAliases'],\r\n (item) => ,\r\n this.processSearchResults\r\n );\r\n\r\n return completeSuggestions.concat(countries);\r\n }\r\n\r\n processSearchResults = (filteredDataList, terms) => {\r\n this.setState({ predictiveSearchResults: filteredDataList });\r\n if (terms && terms.length > 0) {\r\n gtm.push('Leaderboard', 'Search', terms.join(' '));\r\n }\r\n }\r\n\r\n onSearchToggleState = (isActive) => {\r\n this.setState({ isPredictive: isActive });\r\n }\r\n\r\n getCutStatus() {\r\n const { scoringLeaderboard } = this.props;\r\n const { currentRound, currentRoundStatus } = scoringLeaderboard;\r\n\r\n if ((currentRound === 2 &&\r\n (currentRoundStatus !== 5 && currentRoundStatus !== 6)) &&\r\n scoringLeaderboard.cutLine\r\n ) {\r\n return 'projected';\r\n }\r\n\r\n if ((currentRound > 2 ||\r\n (currentRound === 2 &&\r\n (currentRoundStatus === 5 || currentRoundStatus === 6))) &&\r\n scoringLeaderboard.cutLine\r\n ) {\r\n return 'cut';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n onInfoButtonClick = () => {\r\n gtm.push('Leaderboard', 'Information', 'Select Information');\r\n }\r\n\r\n render() {\r\n const {\r\n liveScanner,\r\n scoringLeaderboard,\r\n scoringCourse,\r\n hasChampion,\r\n options\r\n } = this.props;\r\n const { view, roundChoices, selectedRoundId } = this.state;\r\n\r\n let players = this.processData(scoringLeaderboard.players);\r\n let cutPlayers = [];\r\n let cutStatus = '';\r\n\r\n if (this.state.sortingType === cellTypes.POSITION &&\r\n this.state.isSortingAscending &&\r\n !this.state.predictiveSearchResults.length &&\r\n !this.state.applyFavourite\r\n ) {\r\n cutStatus = this.getCutStatus();\r\n\r\n if (cutStatus) {\r\n const splittedPlayers = splitPlayers(true, scoringLeaderboard.players, scoringLeaderboard.cutLine);\r\n\r\n players = splittedPlayers[1];\r\n cutPlayers = splittedPlayers[0];\r\n }\r\n }\r\n\r\n const bemList = [this.state.view];\r\n\r\n if (this.props.isPlayOffMode && !hasChampion) {\r\n bemList.push('play-off');\r\n }\r\n\r\n if (hasChampion) {\r\n bemList.push('has-champion');\r\n }\r\n\r\n const bemCss = generateBemCss('leaderboard', bemList);\r\n const controlPanelCss = classNames({\r\n 'is-predictive': this.state.isPredictive\r\n });\r\n\r\n let currentRound = liveScanner.activeRoundId;\r\n\r\n if (view === viewTypes.HOLE_BY_HOLE && this.state.selectedRoundId) {\r\n currentRound = selectedRoundId;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n view === viewTypes.HOLE_BY_HOLE &&\r\n \r\n {\r\n roundChoices.length === 1 &&\r\n
{roundChoices[0].label}
\r\n }\r\n {\r\n roundChoices.length > 1 &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n }\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n this.state.applyFavourite &&\r\n !players.length &&\r\n \r\n }\r\n {\r\n players.length &&\r\n this.sortingHandler(type)}\r\n showPlayerCard={this.showPlayerCard}\r\n liveScanner={liveScanner}\r\n />\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardContainer;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport get from 'lodash/get';\r\nimport ArrayHelper from 'foundation/array-helper';\r\nimport ScoringLoader, { endpointNames } from 'general/js/loaders/scoring-loader';\r\nimport { getPlayerSitecoreData } from 'general/js/helpers';\r\nimport { BlockPlaceholder } from 'components/block-placeholder';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\nimport { bemClasses, LivePreMessage } from 'components/live-pre-message';\r\nimport { playerSitecoreData } from 'components/live-player';\r\nimport LeaderboardAlphaList from './components/leaderboard-alpha-list';\r\nimport LeaderboardContainer from './leaderboard-container';\r\n\r\nclass LeaderboardLayout extends React.Component {\r\n componentDidMount() {\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n ScoringLoader.subscribe(endpointNames.PLAYERS);\r\n ScoringLoader.subscribe(endpointNames.LEADERBOARD);\r\n ScoringLoader.subscribe(endpointNames.COURSE);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(endpointNames.LIVE_SCANNER);\r\n ScoringLoader.unsubscribe(endpointNames.PLAYERS);\r\n ScoringLoader.unsubscribe(endpointNames.LEADERBOARD);\r\n ScoringLoader.unsubscribe(endpointNames.COURSE);\r\n }\r\n\r\n isPlayOffMode() {\r\n return this.props.scoringLeaderboard.players.some((player) => {\r\n return (player.sitecoreData &&\r\n (player.sitecoreData.playOffStatus ||\r\n player.sitecoreData.suddenDeathtatus ||\r\n player.sitecoreData.isChampion));\r\n });\r\n }\r\n\r\n hasChampion() {\r\n return this.props.scoringLeaderboard.players.some((player) => {\r\n return player.sitecoreData && player.sitecoreData.isChampion;\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n liveScanner,\r\n scoringLeaderboard,\r\n scoringCourse,\r\n sitecorePlayers,\r\n options\r\n } = this.props;\r\n\r\n if (liveScanner === undefined ||\r\n sitecorePlayers === undefined ||\r\n scoringCourse === undefined ||\r\n scoringLeaderboard === undefined\r\n ) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const config = get(liveScanner, 'liveComponents.leaderboard');\r\n\r\n if (!config.show ||\r\n !liveScanner.activeRoundId ||\r\n !sitecorePlayers ||\r\n !scoringCourse ||\r\n !scoringLeaderboard ||\r\n ArrayHelper.isEmpty(scoringCourse.courseRounds)\r\n ) {\r\n const messageModel = {\r\n title: config.title,\r\n body: config.subtitle,\r\n textColor: config.textColor\r\n };\r\n return ;\r\n }\r\n\r\n if (ArrayHelper.isEmpty(scoringLeaderboard.players)) {\r\n return ;\r\n }\r\n\r\n const isPlayOffMode = this.isPlayOffMode();\r\n const hasChampion = this.hasChampion();\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nLeaderboardLayout.propTypes = {\r\n options: PropTypes.object.isRequired\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n const sitecorePlayers = state.scoring[endpointNames.PLAYERS];\r\n const scoringLeaderboard = state.scoring[endpointNames.LEADERBOARD];\r\n\r\n if (sitecorePlayers === undefined) return {};\r\n\r\n // inject player sitecore data from players feed\r\n if (sitecorePlayers &&\r\n scoringLeaderboard &&\r\n !ArrayHelper.isEmpty(scoringLeaderboard.players)\r\n ) {\r\n scoringLeaderboard.players.forEach((player) => {\r\n player.sitecoreData =\r\n getPlayerSitecoreData(sitecorePlayers, player.id) ||\r\n playerSitecoreData;\r\n });\r\n }\r\n\r\n return ({\r\n liveScanner: state.scoring[endpointNames.LIVE_SCANNER],\r\n scoringCourse: state.scoring[endpointNames.COURSE],\r\n scoringLeaderboard,\r\n sitecorePlayers,\r\n });\r\n};\r\n\r\nconst LeaderboardLayoutWrapper = connect(\r\n mapStateToProps,\r\n null\r\n)(LeaderboardLayout);\r\n\r\nexport default LeaderboardLayoutWrapper;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport LeaderboardLayout from './leaderboard-layout.js';\r\n\r\nclass LeaderboardComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LeaderboardComponent from './js/leaderboard.component';\r\n\r\nComponentsFactory.getInstance().define('leaderboard', LeaderboardComponent);\r\n\r\nexport * from './js/components/sortingStrategies';\r\n","import React from 'react';\r\nimport { CountryFlag } from 'project/country-flag';\r\nimport { getPlayerExternalLink } from 'components/live-player';\r\nimport { sortAscAZ } from 'components/leaderboard';\r\n\r\nclass LeaderboardWidgetAlphaList extends React.Component {\r\n renderRow(player) {\r\n const { options } = this.props;\r\n let targetUrl = null;\r\n\r\n if (options.targetsConfig) {\r\n targetUrl = getPlayerExternalLink(options.targetsConfig.url, player.playerId);\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
{player.lastName},
\r\n
{player.firstName}
\r\n
\r\n
\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const { players } = this.props;\r\n\r\n if (!Array.isArray(players)) return null;\r\n\r\n const sortedPlayers = sortAscAZ(players, 'lastName');\r\n\r\n return (\r\n
\r\n {sortedPlayers.slice(0, 10).map((player) => this.renderRow(player))}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardWidgetAlphaList;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport get from 'lodash/get';\r\nimport ArrayHelper from 'foundation/array-helper';\r\nimport ScoringLoader, { endpointNames } from 'general/js/loaders/scoring-loader';\r\nimport { getPlayerSitecoreData } from 'general/js/helpers';\r\nimport { BlockPlaceholder } from 'components/block-placeholder';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\nimport { stateTypes } from './enums';\r\nimport LeaderboardWidget from './leaderboard-widget';\r\nimport LeaderboardWidgetAlphaList from './leaderboard-widget-alpha-list';\r\n\r\nclass LeaderboardWidgetLayout extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.players = [];\r\n this.topPlayersToShowState = true;\r\n this.numberOfCells = [\r\n { id: stateTypes.POSITION },\r\n { id: stateTypes.NAME },\r\n { id: stateTypes.TEE },\r\n { id: stateTypes.TO_PAR, textTitle: 'par' },\r\n { id: stateTypes.HOLE, textTitle: 'hole' },\r\n { id: stateTypes.TODAY, textTitle: 'today' }\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n ScoringLoader.subscribe(endpointNames.PLAYERS);\r\n ScoringLoader.subscribe(endpointNames.LEADERBOARD);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(endpointNames.LIVE_SCANNER);\r\n ScoringLoader.unsubscribe(endpointNames.PLAYERS);\r\n ScoringLoader.unsubscribe(endpointNames.LEADERBOARD);\r\n }\r\n\r\n getPlayers = (players) => {\r\n const { options } = this.props;\r\n let playersList = [];\r\n\r\n if (!ArrayHelper.isEmpty(options.playerIds)) {\r\n this.topPlayersToShowState = false;\r\n playersList = players.filter((player) => (options.playerIds.includes(player.id)));\r\n\r\n return playersList;\r\n }\r\n\r\n if (ArrayHelper.isEmpty(players)) { return playersList; }\r\n\r\n return players.slice(0, options.topPlayersToShow);\r\n }\r\n\r\n render() {\r\n const {\r\n options,\r\n liveScanner,\r\n scoringLeaderboard,\r\n sitecorePlayers\r\n } = this.props;\r\n\r\n if (liveScanner === undefined ||\r\n scoringLeaderboard === undefined ||\r\n sitecorePlayers === undefined\r\n ) {\r\n return (\r\n \r\n \r\n );\r\n }\r\n\r\n const config = get(liveScanner, 'liveComponents.leaderboard');\r\n\r\n if (!config ||\r\n (options.type === 'contextual' && !config.ccpShow) ||\r\n !scoringLeaderboard ||\r\n !sitecorePlayers\r\n ) {\r\n return null;\r\n }\r\n\r\n if (liveScanner.showAlphaListOnLeaderboardWidget && ArrayHelper.isEmpty(scoringLeaderboard.players)) {\r\n return ;\r\n }\r\n\r\n\r\n this.players = this.getPlayers(scoringLeaderboard.players);\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nLeaderboardWidgetLayout.propTypes = {\r\n options: PropTypes.object\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n const sitecorePlayers = state.scoring[endpointNames.PLAYERS];\r\n const scoringLeaderboard = state.scoring[endpointNames.LEADERBOARD];\r\n\r\n if (sitecorePlayers === undefined) return {};\r\n\r\n // inject player sitecore data from players feed\r\n if (sitecorePlayers &&\r\n scoringLeaderboard &&\r\n !ArrayHelper.isEmpty(scoringLeaderboard.players)\r\n ) {\r\n scoringLeaderboard.players.forEach((player) => {\r\n player.sitecoreData = getPlayerSitecoreData(sitecorePlayers, player.id);\r\n });\r\n }\r\n\r\n return ({\r\n liveScanner: state.scoring[endpointNames.LIVE_SCANNER],\r\n scoringLeaderboard,\r\n sitecorePlayers,\r\n });\r\n};\r\n\r\nconst LeaderboardWidgetLayoutWrapper = connect(\r\n mapStateToProps,\r\n null\r\n)(LeaderboardWidgetLayout);\r\n\r\nexport default LeaderboardWidgetLayoutWrapper;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport LeaderboardWidgetLayout from './leaderboard-widget-layout.js';\r\n\r\nclass LeaderboardWidgetComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default LeaderboardWidgetComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LeaderboardWidgetComponent from './js/leaderboard-widget.component';\r\n\r\nComponentsFactory.getInstance().define('leaderboard-widget', LeaderboardWidgetComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class ListingLoadMore extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onLoadMoreClick = this.onLoadMoreClick.bind(this);\r\n }\r\n\r\n render() {\r\n const shouldHandleLoadMore = this.props.pagination &&\r\n (this.props.pagination.currentPage < this.props.pagination.pageCount);\r\n\r\n if (shouldHandleLoadMore) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return null;\r\n }\r\n\r\n onLoadMoreClick() {\r\n this.props.onLoadMore();\r\n }\r\n}\r\n\r\nListingLoadMore.propTypes = {\r\n isLoadingMore: PropTypes.bool.isRequired,\r\n pagination: PropTypes.object.isRequired,\r\n onLoadMore: PropTypes.func.isRequired,\r\n};\r\n","export const CONTROL_TYPE_CHECKLIST = 'checklist';\r\nexport const CONTROL_TYPE_SELECT = 'dropdown';\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { LazyImage } from 'project/lazy-image';\r\nimport ScoringLoader, { endpointNames } from 'general/js/loaders/scoring-loader';\r\n\r\nclass LiveHeaderTitle extends React.Component {\r\n componentDidMount() {\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(endpointNames.LIVE_SCANNER);\r\n }\r\n\r\n render() {\r\n const { liveScanner } = this.props;\r\n\r\n if (!liveScanner || !liveScanner.liveHeader) return null;\r\n\r\n const model = liveScanner.liveHeader;\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n {model.title} \r\n {model.subtitle}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n liveScanner: state.scoring[endpointNames.LIVE_SCANNER],\r\n});\r\n\r\nconst ALiveHeaderTitleContainer = connect(\r\n mapStateToProps,\r\n null\r\n)(LiveHeaderTitle);\r\n\r\nexport default ALiveHeaderTitleContainer;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport store from 'general/js/store';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport LiveHeaderTitle from './live-header-title';\r\n\r\nclass LiveHeaderComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n destroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n if (this.refs.title) {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.refs.title\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default LiveHeaderComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LiveHeaderComponent from './js/live-header.component';\r\n\r\nComponentsFactory.getInstance().define('live-header', LiveHeaderComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport anime from 'animejs';\r\nimport app from 'general/js/app';\r\nimport gtm from 'general/js/gtm';\r\nimport { spaLoad } from 'components/spa-load';\r\n\r\nconst EASING = 'easeOutQuad';\r\n\r\nexport default class LiveNavigation extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [\r\n 'link'\r\n ];\r\n }\r\n\r\n onDestroy() {\r\n this.unsubscribeHisporyChange();\r\n }\r\n\r\n init() {\r\n this.highlightSelected();\r\n this.unsubscribeHisporyChange = spaLoad.subscribeOnHistoryChange(() => {\r\n this.highlightSelected();\r\n });\r\n\r\n this.refs.link.forEach((link) => {\r\n this.addListener(link, 'click', this.onNavigationLinkClick);\r\n this.addListener(link, 'click', this.saveActionToGtm);\r\n });\r\n }\r\n\r\n saveActionToGtm = (event) => {\r\n const clickedItem = event.target;\r\n const itemText = clickedItem.innerText || clickedItem.textContent;\r\n if (clickedItem && clickedItem.tagName === 'A') {\r\n gtm.push('Top Ribbon', 'Click', itemText);\r\n }\r\n }\r\n\r\n highlightSelected = () => {\r\n this.clearSelection(this.refs.link);\r\n this.refs.selector.classList.remove('is-visible');\r\n\r\n const link = this.getActiveLink();\r\n if (link) {\r\n link.classList.add('is-active');\r\n this.refs.selector.style.left = this.calculateSelectorPosition(link);\r\n this.refs.selector.classList.add('is-visible');\r\n }\r\n };\r\n\r\n getActiveLink() {\r\n let result = null;\r\n const pathname = this.getNormalizedPathname();\r\n for (const i in this.refs.link) {\r\n const link = this.refs.link[i];\r\n\r\n if (link.getAttribute('href') === pathname) {\r\n result = link;\r\n break;\r\n } else {\r\n const aliasesAttribute = this.getAttribute(link, 'aliases');\r\n if (aliasesAttribute) {\r\n const aliases = JSON.parse(aliasesAttribute);\r\n const activeAlias = aliases.find((a) => pathname.includes(a));\r\n if (activeAlias) {\r\n result = link;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getNormalizedPathname() {\r\n // for the same page window.location.pathname can return slightly different results\r\n // case 1: manually enter url in the search bar, for example /watch/\r\n // result 1: window.location.pathname returns /watch/\r\n // case 2 navigate via links with href=\"/watch\"\r\n // result 2: returns /watch\r\n // so there is no normalization within Location object so we have to do it ourselves\r\n // and always return pathname without trailing slash\r\n let pathname = window.location.pathname;\r\n if (pathname.length > 1 && pathname[pathname.length - 1] === '/') {\r\n pathname = pathname.slice(0, pathname.length - 1);\r\n }\r\n\r\n return pathname;\r\n }\r\n\r\n clearSelection(nodesArray) {\r\n nodesArray.forEach((node) => {\r\n if (node.classList.contains('is-active')) {\r\n node.classList.remove('is-active');\r\n }\r\n });\r\n }\r\n\r\n onNavigationLinkClick = (event) => {\r\n if (app.isEditMode) return;\r\n\r\n const ignoreSpa = event.currentTarget.getAttribute('data-ignore-spa') === 'true';\r\n\r\n if (!ignoreSpa) {\r\n event.preventDefault();\r\n this.navigate(event.target);\r\n }\r\n };\r\n\r\n navigate(link) {\r\n if (!link) {\r\n return;\r\n }\r\n\r\n if (this.currentAnimation) {\r\n this.currentAnimation.pause();\r\n this.currentAnimation = null;\r\n }\r\n\r\n const leftCoord = this.calculateSelectorPosition(link);\r\n this.currentAnimation = anime({\r\n targets: this.refs.selector,\r\n left: leftCoord,\r\n duration: 250,\r\n easing: EASING,\r\n complete: () => {\r\n spaLoad.updateContent(link.getAttribute('href'));\r\n this.currentAnimation = null;\r\n }\r\n });\r\n }\r\n\r\n calculateSelectorPosition(item) {\r\n const itemWidth = item.clientWidth;\r\n const navigationCoords = this.element.getBoundingClientRect();\r\n const itemCoords = item.getBoundingClientRect();\r\n const itemPosition = itemCoords.left - navigationCoords.left;\r\n const selectorWidth = this.refs.selector.clientWidth;\r\n\r\n return itemPosition + (itemWidth / 2) - (selectorWidth / 2) + 'px';\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LiveNavigationComponent from './js/live-navigation.component';\r\n\r\nComponentsFactory.getInstance().define('live-navigation', LiveNavigationComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport app from 'general/js/app';\r\nimport { spaLoad } from 'components/spa-load';\r\nimport gtm from '../../../general/js/gtm';\r\n\r\nexport default class LiveSubmenu extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [\r\n 'link'\r\n ];\r\n }\r\n\r\n init() {\r\n this.checkIfItemIsSelected();\r\n\r\n this.refs.link.forEach((link) => {\r\n this.addListener(link, 'click', this.onLinkClick);\r\n this.addListener(link, 'click', this.saveActionToGtm);\r\n });\r\n }\r\n\r\n saveActionToGtm = (event) => {\r\n const clickedItem = event.target;\r\n const itemText = clickedItem.innerText || clickedItem.textContent;\r\n gtm.push('Top Ribbon', 'Click', itemText);\r\n }\r\n\r\n checkIfItemIsSelected = () => {\r\n this.clearSelection(this.refs.link);\r\n\r\n this.refs.link.forEach((link) => {\r\n if (link.getAttribute('href') === window.location.pathname) {\r\n window.scrollTo(0, 0);\r\n link.classList.add('is-active');\r\n } else if (this.getAttribute(link, 'aliases')) {\r\n const aliases = JSON.parse(this.getAttribute(link, 'aliases'));\r\n if (aliases.includes(window.location.pathname)) {\r\n link.classList.add('is-active');\r\n }\r\n }\r\n });\r\n };\r\n\r\n clearSelection(nodesArray) {\r\n nodesArray.forEach((node) => {\r\n if (node.classList.contains('is-active')) {\r\n node.classList.remove('is-active');\r\n }\r\n });\r\n }\r\n\r\n onLinkClick = (event) => {\r\n if (app.isEditMode) return;\r\n\r\n const ignoreSpa = event.currentTarget.getAttribute('data-ignore-spa') === 'true';\r\n\r\n if (!ignoreSpa) {\r\n event.preventDefault();\r\n spaLoad.updateContent(event.target.getAttribute('href'));\r\n this.checkIfItemIsSelected();\r\n }\r\n };\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LiveSubmenuComponent from './js/live-submenu.component';\r\n\r\nComponentsFactory.getInstance().define('live-submenu', LiveSubmenuComponent);\r\n","import get from 'lodash/get';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport gtm from 'general/js/gtm';\r\nimport ScoringLoader, { endpointNames } from 'general/js/loaders/scoring-loader';\r\nimport store from 'general/js/store';\r\n\r\nclass LiveVideoWidget extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.unsubscribe = null;\r\n this.state = {\r\n isLive: this.options.isLive,\r\n title: null,\r\n };\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['title'];\r\n }\r\n\r\n init() {\r\n this.element.addEventListener('click', this.onRootClick);\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n this.unsubscribe = store.subscribe(this.onStoreUpdate);\r\n }\r\n\r\n onDestroy() {\r\n ScoringLoader.unsubscribe(endpointNames.LIVE_SCANNER);\r\n this.unsubscribe();\r\n }\r\n\r\n onRootClick = () => {\r\n const { title } = this.state;\r\n\r\n if (title) {\r\n gtm.push('Live Video', 'Play Video', title);\r\n }\r\n }\r\n\r\n onStoreUpdate = () => {\r\n const state = store.getState();\r\n const config = get(state, 'scoring.liveScanner.liveVideoWidget');\r\n\r\n if (!config) return;\r\n\r\n if (this.state.isLive !== config.isLive) {\r\n if (config.isLive) {\r\n this.element.classList.add('is-live');\r\n } else {\r\n this.element.classList.remove('is-live');\r\n }\r\n this.element.href = config.pageUrl;\r\n this.element.style.backgroundImage = `url(${config.imageUrl})`;\r\n this.refs.title.innerHTML = config.title;\r\n this.refs.partner.src = config.partnersLogoUrl ? config.partnersLogoUrl : \"\";\r\n this.state.title = config.title;\r\n this.state.isLive = config.isLive;\r\n }\r\n }\r\n}\r\n\r\nexport default LiveVideoWidget;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LiveVideoWidget from './js/live-video-widget.component';\r\n\r\nComponentsFactory.getInstance().define('live-video-widget', LiveVideoWidget);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport qs from 'qs';\r\nimport axios from 'axios';\r\nimport { connect } from 'react-redux';\r\nimport classNames from 'classnames';\r\nimport ScoringLoader, { endpointNames } from 'general/js/loaders/scoring-loader';\r\nimport { makeCancelable } from 'general/js/helpers';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\nimport { BlockPlaceholder } from 'components/block-placeholder';\r\nimport { LiveTextListing } from 'components/live-text';\r\n\r\nclass LiveWidgetVideos extends React.Component {\r\n constructor(...args) {\r\n super(...args);\r\n this.state = {\r\n batches: [],\r\n nextBatchId: null,\r\n type: null,\r\n isFetching: false,\r\n showSpinner: true\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getData();\r\n this.getDataAfterTimeout();\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n }\r\n\r\n componentWillUnmount() {\r\n clearTimeout(this.timeoutId);\r\n this.cancelGetData();\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n }\r\n\r\n onLoadMore = () => {\r\n this.getData(true);\r\n }\r\n\r\n getTopBatchId() {\r\n const topBatch = this.state.batches[0];\r\n\r\n return (topBatch && topBatch.id) || null;\r\n }\r\n\r\n getUpdatedBatches(newBatches) {\r\n const { batches } = this.state;\r\n const topBatchId = this.getTopBatchId();\r\n const hasTopBatch = newBatches.some((newBatch) => newBatch.id === topBatchId);\r\n\r\n if (!hasTopBatch) {\r\n return newBatches;\r\n }\r\n\r\n for (let i = newBatches.length - 1; i >= 0; i--) {\r\n const newBatch = newBatches[i];\r\n const foundBatch = batches.find((batch) =>\r\n batch.id === newBatch.id);\r\n\r\n if (foundBatch) {\r\n if (foundBatch.lastUpdated !== newBatch.lastUpdated) {\r\n foundBatch.posts = newBatch.posts;\r\n foundBatch.lastUpdated = newBatch.lastUpdated;\r\n }\r\n } else {\r\n batches.unshift(newBatch);\r\n }\r\n }\r\n\r\n return batches;\r\n }\r\n\r\n getDataAfterTimeout() {\r\n const updateInSeconds = this.props.options.updateInSeconds || 20;\r\n\r\n clearTimeout(this.timeoutId);\r\n this.timeoutId = setTimeout(() => {\r\n this.setState({\r\n showSpinner: false,\r\n }, this.getData);\r\n }, updateInSeconds * 1000);\r\n }\r\n\r\n getData(isLoadMore) {\r\n const { context } = this.props.options;\r\n const { nextBatchId, type } = this.state;\r\n const qsProps = { context };\r\n let url = this.props.options.endpointUrl;\r\n\r\n if (isLoadMore) {\r\n url += '/' + nextBatchId;\r\n }\r\n\r\n if (type) {\r\n qsProps.type = type;\r\n }\r\n\r\n url += '?' + qs.stringify(qsProps);\r\n\r\n this.cancelGetData();\r\n this.cancelableGetData = makeCancelable(axios.get(url));\r\n this.cancelableGetData\r\n .promise\r\n .then((response) => {\r\n if (!response.data || !Array.isArray(response.data.batches)) {\r\n return;\r\n }\r\n\r\n let batches = [];\r\n\r\n if (isLoadMore) {\r\n batches = this.state.batches;\r\n batches.push(...response.data.batches);\r\n } else {\r\n batches = this.getUpdatedBatches(response.data.batches);\r\n }\r\n\r\n this.setState({\r\n batches,\r\n nextBatchId: response.data.nextBatch || null,\r\n isFetching: false,\r\n });\r\n this.getDataAfterTimeout();\r\n })\r\n .catch((error) => {\r\n if (!error.isCanceled) {\r\n this.setState({ isFetching: false, showSpinner: true });\r\n this.getDataAfterTimeout();\r\n }\r\n });\r\n\r\n this.setState({ isFetching: true });\r\n }\r\n\r\n cancelGetData() {\r\n if (this.cancelableGetData) {\r\n this.cancelableGetData.cancel();\r\n }\r\n }\r\n\r\n getPosts() {\r\n const { batches } = this.state;\r\n const posts = [];\r\n\r\n batches.forEach((batch) => {\r\n if (Array.isArray(batch.posts)) {\r\n posts.push(...batch.posts);\r\n }\r\n });\r\n\r\n return posts;\r\n }\r\n\r\n render() {\r\n const { isFetching, nextBatchId } = this.state;\r\n const { options, liveScanner } = this.props;\r\n const posts = this.getPosts();\r\n\r\n const showLoadMore = nextBatchId && posts.length < options.maxPosts;\r\n const loadMoreCss = classNames({\r\n 'is-loading': isFetching\r\n });\r\n\r\n if (!liveScanner) { return null; }\r\n\r\n return (\r\n liveScanner.liveComponents.liveText.show ?\r\n \r\n {isFetching && }\r\n \r\n {\r\n showLoadMore &&\r\n
\r\n load more\r\n \r\n
\r\n } \r\n
\r\n :\r\n
\r\n {liveScanner.liveComponents.liveText.subtitle}\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n liveScanner: state.scoring[endpointNames.LIVE_SCANNER],\r\n});\r\n\r\nLiveWidgetVideos.propTypes = {\r\n options: PropTypes.object,\r\n mediaContentType: PropTypes.string\r\n};\r\n\r\nconst LiveWidgetPostsWrapper = connect(\r\n mapStateToProps,\r\n null\r\n)(LiveWidgetVideos);\r\n\r\nexport default LiveWidgetPostsWrapper;\r\n","import React from 'react';\r\n\r\nexport const LiveWidgetEmbeddedContent = (props) => {\r\n const { embedCode } = props.options;\r\n return
;\r\n};\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport store from 'general/js/store';\r\nimport LiveWidgetPosts from './live-widget-posts';\r\nimport { LiveWidgetEmbeddedContent } from './live-widget-embedded-content';\r\n\r\nclass LiveWidgetComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (this.refs.embeddedContent) {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.refs.embeddedContent\r\n );\r\n }\r\n if (this.refs.liveText) {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.refs.liveText\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default LiveWidgetComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport LiveWidgetComponent from './js/live-widget.component';\r\n\r\nComponentsFactory.getInstance().define('live-widget', LiveWidgetComponent);\r\n","import createFocusTrap from 'focus-trap';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport anime from 'animejs';\r\nimport gtm from 'general/js/gtm';\r\nimport contentBlocker from '../../../general/js/content-blocker';\r\n\r\nconst EDITOR = 'editor';\r\nconst EASING_DEFAULT = 'linear';\r\nconst EASING = 'easeOutQuad';\r\nconst DURATION_DEFAULT = 400;\r\n\r\nexport default class MainNavComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.focusTrap = null;\r\n this.menuCanBeAnimated = true;\r\n\r\n this.init();\r\n\r\n this.setFocusTrap = this.setFocusTrap.bind(this);\r\n }\r\n\r\n static getRequiredRefs() {\r\n return [\r\n 'nav',\r\n 'wrapper',\r\n 'opener',\r\n ];\r\n }\r\n\r\n init() {\r\n this.refs.closers.forEach((button) => {\r\n this.addListener(button, 'click', this.closeMenu);\r\n });\r\n\r\n this.addListener(this.refs.opener, 'click', this.openMenu);\r\n this.addListener(this.refs.nav, 'click', this.saveActionToGtm);\r\n\r\n this.addListener(document, 'keydown', this.onkeydown);\r\n this.addListener(document, 'click', this.outerClickHandle);\r\n this.addListener(document, 'touchstart', this.outerClickHandle);\r\n }\r\n\r\n saveActionToGtm = (event) => {\r\n const clickedItem = event.target;\r\n const itemText = clickedItem.innerText || clickedItem.textContent;\r\n\r\n if (clickedItem && clickedItem.tagName === 'A') {\r\n gtm.push('Burger Bar', 'Click', itemText);\r\n } \r\n }\r\n \r\n openMenu = () => {\r\n contentBlocker.block('main-nav');\r\n\r\n gtm.push('Burger Bar', 'Open', 'Burger Bar Open');\r\n\r\n if (this.menuCanBeAnimated) {\r\n this.menuCanBeAnimated = false;\r\n anime({\r\n targets: this.refs.nav,\r\n opacity: [0, 1],\r\n duration: DURATION_DEFAULT,\r\n easing: EASING,\r\n begin: () => {\r\n this.refs.nav.classList.add('is-opened');\r\n },\r\n complete: () => {\r\n this.refs.wrapper.classList.add('is-visible');\r\n this.refs.nav.setAttribute('aria-hidden', 'false');\r\n this.refs.opener.setAttribute('aria-expanded', 'true');\r\n this.menuCanBeAnimated = true;\r\n this.setFocusTrap();\r\n }\r\n });\r\n }\r\n };\r\n\r\n closeMenu = () => {\r\n contentBlocker.unblock('main-nav');\r\n this.refs.wrapper.classList.remove('is-visible');\r\n\r\n if (this.menuCanBeAnimated) {\r\n this.menuCanBeAnimated = false;\r\n anime({\r\n targets: this.refs.nav,\r\n opacity: [1, 0],\r\n duration: DURATION_DEFAULT,\r\n easing: EASING_DEFAULT,\r\n complete: () => {\r\n this.refs.nav.classList.remove('is-opened');\r\n this.refs.nav.setAttribute('aria-hidden', 'true');\r\n this.refs.opener.setAttribute('aria-expanded', 'false');\r\n this.menuCanBeAnimated = true;\r\n }\r\n });\r\n }\r\n\r\n this.removeFocusTrap();\r\n };\r\n\r\n setFocusTrap() {\r\n if (this.options.mode !== EDITOR) {\r\n this.focusTrap = createFocusTrap(this.refs.nav, {\r\n escapeDeactivates: false\r\n });\r\n this.focusTrap.activate();\r\n }\r\n }\r\n\r\n removeFocusTrap() {\r\n if (this.focusTrap) {\r\n this.focusTrap.deactivate();\r\n }\r\n }\r\n\r\n onkeydown = (event) => {\r\n if (event.keyCode === 27) {\r\n this.closeMenu();\r\n }\r\n };\r\n\r\n outerClickHandle = (event) => {\r\n if (this.refs.nav.contains(event.target) &&\r\n !this.refs.wrapper.contains(event.target)) {\r\n this.closeMenu();\r\n }\r\n };\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport MainNavComponent from './js/main-nav.component';\r\n\r\nComponentsFactory.getInstance().define('main-nav', MainNavComponent);\r\n","import React, { useEffect, useLayoutEffect, useRef } from 'react';\r\n\r\nconst MakeStoriesLayout = ({\r\n options\r\n}) => {\r\n const { playerId, widgetId } = options;\r\n\r\n const wrapperRef = useRef(null);\r\n\r\n const canUseDOM = typeof window !== 'undefined';\r\n const useEffectHook = canUseDOM ? useLayoutEffect : useEffect;\r\n\r\n useEffectHook(() => {\r\n if (!wrapperRef.current) return;\r\n\r\n const playerWrapper = document.createElement('div');\r\n playerWrapper.id = `${playerId}`;\r\n playerWrapper.innerHTML = '
';\r\n\r\n wrapperRef.current.appendChild(playerWrapper);\r\n\r\n const styleLink = document.createElement('link');\r\n styleLink.href = 'https://cdn.ampproject.org/amp-story-player-v0.css';\r\n styleLink.rel = 'stylesheet';\r\n styleLink.type = 'text/css';\r\n document.head.appendChild(styleLink);\r\n\r\n const scriptUrls = [\r\n 'https://cdn.ampproject.org/amp-story-player-v0.js',\r\n 'https://js.makestories.io/player/StoryPlayer.js',\r\n ];\r\n\r\n let scriptsToLoad = scriptUrls.length;\r\n\r\n const onScriptsLoaded = () => {\r\n if (scriptsToLoad === 0) {\r\n const inlineScript = document.createElement('script');\r\n inlineScript.innerHTML = `msPlayer({ root: \"#${playerId}\", widgetId: \"${widgetId}\" });`;\r\n wrapperRef.current.appendChild(inlineScript);\r\n }\r\n };\r\n\r\n scriptUrls.forEach((url) => {\r\n const script = document.createElement('script');\r\n script.src = url;\r\n script.async = true;\r\n script.onload = () => {\r\n scriptsToLoad--;\r\n onScriptsLoaded();\r\n };\r\n\r\n document.body.appendChild(script);\r\n });\r\n\r\n return () => {\r\n document.head.removeChild(styleLink);\r\n\r\n scriptUrls.forEach((url) => {\r\n document\r\n .querySelectorAll(`script[src=\"${url}\"]`)\r\n .forEach((el) => document.body.removeChild(el));\r\n });\r\n\r\n wrapperRef.current.removeChild(playerWrapper);\r\n };\r\n }, [playerId, widgetId]);\r\n\r\n return (\r\n
\r\n );\r\n};\r\n\r\nexport default MakeStoriesLayout;\r\n","import BaseComponent from 'foundation/base-component';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport MakeStoriesLayout from './make-stories-layout.js';\r\n\r\nclass MakeStoriesComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n ReactDOM.render(\r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default MakeStoriesComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport MakeStoriesComponent from './js/make-stories.component';\r\n\r\nComponentsFactory.getInstance().define('make-stories', MakeStoriesComponent);\r\n","import nanoid from 'nanoid';\r\nimport UrlHelper from 'foundation/url-helper';\r\nimport HtmlHelper from 'foundation/html-helper';\r\nimport _ from 'lodash';\r\nimport gtm from './gtm';\r\nimport Modal, { bemClasses } from './modal';\r\nimport api, { isHtmlContentType } from './api';\r\nimport pageSpinner from './page-spinner';\r\nimport historyController from './history-controller';\r\nimport { throttle } from './helpers';\r\nimport { redirectTo, reloadPage } from './utils';\r\n\r\nconst MODAL_SPA_ID = 'modal-spa';\r\n\r\nconst renderType = Object.freeze({\r\n WINDOW: 'window',\r\n POPUP: 'popup'\r\n});\r\n\r\nclass ModalSpa {\r\n constructor() {\r\n this.options = {\r\n url: '',\r\n };\r\n this.isOpenning = false;\r\n this.modalCache = [];\r\n this.currentModal = null;\r\n this.unregisterHistroyController = null;\r\n\r\n this.sessionId = nanoid();\r\n this.chainStartUrl = '';\r\n this.init();\r\n }\r\n\r\n init() {\r\n historyController.register(MODAL_SPA_ID, this.onHistoryChange);\r\n }\r\n\r\n destroy() {\r\n if (typeof this.unregisterHistroyController === 'function') {\r\n this.unregisterHistroyController();\r\n }\r\n }\r\n\r\n open(options) {\r\n this.options = { ...this.options, ...options };\r\n const openLinkInPopup = this.options.openLinkInPopup !== undefined ? this.options.openLinkInPopup : true;\r\n\r\n if (!this.chainStartUrl) {\r\n this.chainStartUrl = window.location.href;\r\n }\r\n\r\n if (!openLinkInPopup) {\r\n redirectTo(this.options.url);\r\n } else {\r\n this.openModal(this.options.url);\r\n this.setHistoryState(this.options.url);\r\n }\r\n }\r\n\r\n openModal(url) {\r\n if (!this.isOpenning) {\r\n this.isOpenning = true;\r\n this.getModal(url).then(([modal, title]) => {\r\n try {\r\n modal.open();\r\n this.isOpenning = false;\r\n this.currentModal = modal;\r\n gtm.sendCurrentLocationAsVirtualUrl(title);\r\n } catch (error) {\r\n throw new Error('Can not open modal.');\r\n }\r\n }).catch(() => {\r\n this.isOpenning = false;\r\n });\r\n }\r\n }\r\n\r\n closeModal() {\r\n if (this.currentModal) this.currentModal.close();\r\n }\r\n\r\n getModal(url) {\r\n const contentUrl = UrlHelper.getOverlayUrl(url);\r\n return this.getData(contentUrl).then(([target, title]) => {\r\n try {\r\n const modal = {};\r\n modal[url] = [\r\n new Modal(target, {\r\n previousOpenedModal: this.currentModal,\r\n bemList: [bemClasses.MOBILE_FIXED, bemClasses.DEKSTOP_WIDE],\r\n delegateControl: true,\r\n onCloseCb: () => this.onClose(url)\r\n }),\r\n title\r\n ];\r\n this.modalCache.push(modal);\r\n\r\n return modal[url];\r\n } catch (error) {\r\n return Promise.reject(error);\r\n }\r\n });\r\n }\r\n\r\n getData(url) {\r\n if (!url) return Promise.reject();\r\n\r\n pageSpinner.show();\r\n\r\n return throttle(() => api.get(url)).then((response) => {\r\n if (isHtmlContentType(response)) {\r\n let responseHtml = response.data;\r\n responseHtml = HtmlHelper.modifySocialElementsStyleFromPopupHtml(responseHtml);\r\n return [responseHtml, HtmlHelper.getTitleFromPopupHtml(responseHtml)];\r\n }\r\n return Promise.reject(new Error('Unknown result from async data'));\r\n }).then((result) => {\r\n pageSpinner.hide();\r\n return result;\r\n }, (error) => {\r\n console.log(error);\r\n\r\n if (error && error.code && error.code === 429) {\r\n this.forceHideErrorsSummary();\r\n this.showThrottleMessage();\r\n }\r\n\r\n pageSpinner.hide();\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n forceHideErrorsSummary() { //this.errorsSummary is undefined in this case\r\n if (this.refs.serverErrors) {\r\n this.refs.serverErrors.classList.remove('is-shown');\r\n }\r\n }\r\n\r\n showThrottleMessage() {\r\n if (this.refs.throttleMessage) {\r\n this.refs.throttleMessage.classList.add('is-shown');\r\n }\r\n }\r\n\r\n removeThrottleMessage() {\r\n if (this.refs.throttleMessage) {\r\n this.refs.throttleMessage.classList.remove('is-shown');\r\n }\r\n }\r\n\r\n setHistoryState(url) {\r\n historyController.pushState(\r\n MODAL_SPA_ID,\r\n null,\r\n url,\r\n {\r\n renderType: renderType.POPUP,\r\n sessionId: this.sessionId\r\n }\r\n );\r\n }\r\n\r\n setInitialHistoryState() {\r\n historyController.pushState(\r\n MODAL_SPA_ID,\r\n null,\r\n this.chainStartUrl,\r\n {\r\n renderType: renderType.WINDOW,\r\n sessionId: this.sessionId\r\n }\r\n );\r\n HtmlHelper.removeElementsFromDom('[data-modal]');\r\n this.chainStartUrl = '';\r\n this.currentModal = null;\r\n }\r\n\r\n getPreviousOpenedModalUrl() {\r\n if (!_.isEmpty(this.modalCache)) {\r\n const previousOpenedModal = this.modalCache.slice(-1).pop();\r\n return Object.keys(previousOpenedModal).slice(-1).pop();\r\n }\r\n\r\n return this.chainStartUrl;\r\n }\r\n\r\n onClose = (url) => {\r\n const innerState = historyController.getState();\r\n\r\n if (innerState && innerState.url.toLowerCase() === url.toLowerCase()) {\r\n this.modalCache.pop();\r\n if (_.isEmpty(this.modalCache)) {\r\n this.setInitialHistoryState();\r\n } else {\r\n const modalUrl = this.getPreviousOpenedModalUrl();\r\n this.setHistoryState(modalUrl);\r\n }\r\n }\r\n }\r\n\r\n onHistoryChange = (prevState, newState, shouldClean) => {\r\n if (shouldClean) {\r\n this.cleanContent(prevState);\r\n } else {\r\n this.updateContent(prevState, newState);\r\n }\r\n }\r\n\r\n updateContent(prevState, newState) {\r\n if (prevState && prevState.sessionId === this.sessionId &&\r\n newState.sessionId !== this.sessionId\r\n ) {\r\n this.closeModal();\r\n return;\r\n }\r\n\r\n if (newState.sessionId === this.sessionId) {\r\n if (newState.renderType === renderType.POPUP) {\r\n this.openModal(newState.url);\r\n } else if (newState.renderType === renderType.WINDOW) {\r\n this.closeModal();\r\n }\r\n } else {\r\n // after page reload flow, we always reload pages\r\n // instead of to show modal\r\n reloadPage();\r\n }\r\n }\r\n\r\n cleanContent(prevState) {\r\n if (prevState.sessionId === this.sessionId) {\r\n this.closeModal();\r\n } else {\r\n reloadPage();\r\n }\r\n }\r\n}\r\n\r\nexport default new ModalSpa();\r\n","import BaseComponent from 'foundation/base-component';\r\nimport app from 'general/js/app';\r\nimport modalSpa from 'general/js/modal-spa';\r\n\r\nexport default class ModalSpaTrigger extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.url = this.element.getAttribute('href') || this.element.getAttribute('data-href') || this.getAttribute(this.element, 'href');\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.addListener(this.element, 'click', this.onClickElement);\r\n }\r\n\r\n onClickElement = (event) => {\r\n if (!app.isEditMode) {\r\n modalSpa.open({ url: this.url, openLinkInPopup : this.options.openLinkInPopup });\r\n }\r\n event.preventDefault();\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport ModalSpaTriggerComponent from './js/modal-spa-trigger.component';\r\n\r\nComponentsFactory.getInstance().define('modal-spa-trigger', ModalSpaTriggerComponent);\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\nimport { useScreenDetector } from '../../../general/js/hooks/useScreenDetector';\r\nimport { getImageSrc } from '../../../general/js/utils';\r\nimport Oauth from '../../sso/components/oauth';\r\n\r\nconst ModalTriggerPromoPanelWrapper = (props) => {\r\n const [ currentUser, setCurrentUser ] = useState(null);\r\n const { isMobile, isTablet } = useScreenDetector();\r\n\r\n useEffect(() => {\r\n Oauth.getCurrentAuthenticatedUser()\r\n .then((user) => {\r\n setCurrentUser(user);\r\n })\r\n .catch(() => {\r\n return;\r\n });\r\n }, []);\r\n\r\n if (hasValue(currentUser)) {\r\n return null;\r\n }\r\n \r\n const {\r\n image,\r\n tabletImage,\r\n mobileImage,\r\n heading,\r\n subHeading,\r\n ctaButtonLabel,\r\n ctaButtonActionResource,\r\n desktopImageOpacity,\r\n mobileImageOpacity\r\n } = props;\r\n\r\n const mobileOpacity = isMobile && mobileImageOpacity && mobileImageOpacity !== 0 ? mobileImageOpacity : undefined;\r\n const imageOpacity = !isMobile && desktopImageOpacity && desktopImageOpacity !== 0 ? desktopImageOpacity : undefined;\r\n\r\n const imgStyle = imageOpacity || mobileOpacity ? {\r\n opacity: imageOpacity || mobileOpacity\r\n } :\r\n undefined;\r\n\r\n const imageSrc = isMobile ? getImageSrc(mobileImage) : \r\n isTablet ? getImageSrc(tabletImage) : getImageSrc(image)\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {\r\n hasValue(imageSrc) &&\r\n \"\"\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
{heading}
\r\n
\r\n

{subHeading}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nModalTriggerPromoPanelWrapper.propTypes = {\r\n image: PropTypes.object,\r\n heading: PropTypes.string,\r\n subHeading: PropTypes.string,\r\n ctaButtonLabel: PropTypes.string,\r\n ctaButtonActionResource: PropTypes.string\r\n};\r\n\r\nexport default ModalTriggerPromoPanelWrapper;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport ModalTriggerPromoPanelWrapper from './modal-trigger-promo-panel-wrapper';\r\n\r\nclass ModalTriggerPromoPanelComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n displayPromoBanner() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n\r\n render() {\r\n return this.displayPromoBanner();\r\n }\r\n}\r\nModalTriggerPromoPanelComponent.propTypes = {\r\n heading: PropTypes.string,\r\n subHeading: PropTypes.string,\r\n image: PropTypes.object,\r\n ctaButtonLabel: PropTypes.string,\r\n ctaButtonActionResource: PropTypes.string\r\n};\r\nexport default ModalTriggerPromoPanelComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport ModalTriggerPromoPanelComponent from './js/modal-trigger-promo-panel.component';\r\nimport ModalTriggerLoginComponent from '../account/js/modal-trigger-login.component';\r\n\r\nComponentsFactory.getInstance().define('modal-trigger-promo-panel', ModalTriggerPromoPanelComponent);\r\nComponentsFactory.getInstance().define('modal-trigger-login', ModalTriggerLoginComponent);\r\n","import { tns } from 'tiny-slider/src/tiny-slider';\r\nimport BaseComponent from 'foundation/base-component';\r\n\r\nconst ERROR_MARGIN = 2;\r\nclass MultimediaCarouselComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.gallery = null;\r\n this.sliderInfo = null;\r\n this.lastSlide = null;\r\n this.currentSlidePosition = null;\r\n this.slidesContainerPosition = null;\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['slides'];\r\n }\r\n\r\n init() {\r\n this.gallery = tns({\r\n container: this.refs.slides,\r\n autoWidth: true,\r\n loop: false,\r\n nav: false,\r\n controls: false,\r\n touch: false,\r\n responsive: {\r\n 579: {\r\n slideBy: 2\r\n },\r\n 1023: {\r\n slideBy: 3\r\n }\r\n }\r\n });\r\n\r\n if (Array.isArray(this.refs.prevBtn)) {\r\n this.refs.prevBtn.forEach((x) => {\r\n this.addListener(x, 'click', this.onClickPrevBtn);\r\n });\r\n }\r\n if (Array.isArray(this.refs.nextBtn)) {\r\n this.refs.nextBtn.forEach((x) => {\r\n this.addListener(x, 'click', this.onClickNextBtn);\r\n });\r\n }\r\n }\r\n\r\n onClickPrevBtn = (event) => {\r\n event.preventDefault();\r\n this.gallery.goTo('prev');\r\n }\r\n\r\n onClickNextBtn = (event) => {\r\n event.preventDefault();\r\n this.gallery.goTo('next');\r\n this.sliderInfo = this.gallery.getInfo();\r\n if ( this.isSliderEnd() )\r\n {\r\n this.handleLastSlide(); \r\n }\r\n }\r\n\r\n onDestroy() {\r\n this.gallery.destroy();\r\n }\r\n isSliderEnd()\r\n {\r\n return this.sliderInfo.index > this.sliderInfo.slideCount - 2 * this.sliderInfo.slideBy;\r\n }\r\n\r\n handleLastSlide()\r\n {\r\n this.lastSlide = this.sliderInfo.slideItems[ this.sliderInfo.slideCount - 1 ];\r\n const { x, y, z } = this.getTranslateValues( this.refs.slides );\r\n this.currentSlidePosition = this.sliderInfo.slideItems[ this.sliderInfo.index ].getBoundingClientRect();\r\n this.slidesContainerPosition = this.refs.slides.parentElement.getBoundingClientRect();\r\n if ( this.notCurrentSlideDisplayedOk() )\r\n {\r\n this.setCurrentSlidePosition( x, y, z );\r\n }\r\n else\r\n {\r\n if ( !this.isFullyShown( this.lastSlide, this.refs.slides.parentElement ) )\r\n {\r\n this.setLastSlidePosition( x, y, z );\r\n }\r\n }\r\n }\r\n\r\n getTranslateValues( element )\r\n {\r\n const style = window.getComputedStyle(element)\r\n const matrix = style['transform'] || style.webkitTransform || style.mozTransform\r\n\r\n if (matrix === 'none') {\r\n return {\r\n x: 0,\r\n y: 0,\r\n z: 0\r\n }\r\n }\r\n const matrixType = matrix.includes('3d') ? '3d' : '2d'\r\n const matrixValues = matrix.match(/matrix.*\\((.+)\\)/)[1].split(', ')\r\n\r\n // 2d matrices have 6 values\r\n // Last 2 values are X and Y.\r\n if (matrixType === '2d') {\r\n return {\r\n x: matrixValues[4],\r\n y: matrixValues[5],\r\n z: 0\r\n }\r\n }\r\n\r\n // 3d matrices have 16 values\r\n // The 13th, 14th, and 15th values are X, Y, and Z\r\n if (matrixType === '3d') {\r\n return {\r\n x: matrixValues[12],\r\n y: matrixValues[13],\r\n z: matrixValues[14]\r\n }\r\n }\r\n }\r\n\r\n notCurrentSlideDisplayedOk()\r\n {\r\n return (\r\n this.sliderInfo.index < this.sliderInfo.slideCount - this.sliderInfo.slideBy &&\r\n this.currentSlidePosition.left > this.slidesContainerPosition.left + ERROR_MARGIN\r\n );\r\n }\r\n\r\n setCurrentSlidePosition(currentX, currentY, currentZ)\r\n {\r\n this.setNewTranslate( currentX - (this.currentSlidePosition.left - this.slidesContainerPosition.left), currentY, currentZ, this.refs.slides );\r\n }\r\n setLastSlidePosition(currentX, currentY, currentZ)\r\n {\r\n var lastSlidePosition = this.lastSlide.getBoundingClientRect();\r\n this.setNewTranslate( currentX - (lastSlidePosition.right - this.slidesContainerPosition.right), currentY, currentZ, this.refs.slides );\r\n }\r\n setNewTranslate( newX, newY, newZ, element )\r\n {\r\n element.style.transform = `translate3d(${newX}px, ${newY}px, ${newZ}px)`;\r\n }\r\n\r\n isFullyShown(element, container) {\r\n const elementPosition = element.getBoundingClientRect();\r\n const containerPosition = container.getBoundingClientRect();\r\n return (\r\n elementPosition.right <= containerPosition.right &&\r\n elementPosition.left >= containerPosition.left\r\n );\r\n }\r\n\r\n\r\n}\r\n\r\nexport default MultimediaCarouselComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport PlayerCarouselComponent from './js/multimedia-carousel.component';\r\n\r\nComponentsFactory.getInstance().define('multimedia-carousel', PlayerCarouselComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\n\r\nexport default class MyAccountUrlComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n const isUseCognito = this.options.useCognito;\r\n const secutixCookie = Cookies.get('secutixConfig');\r\n\r\n if (secutixCookie !== undefined && isUseCognito === false) {\r\n const secutixConfiguration = JSON.parse(secutixCookie);\r\n this.element.setAttribute('href', secutixConfiguration.myAccountUrl);\r\n }\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport MyAccountUrlComponent from './js/my-account-url.component';\r\n\r\nComponentsFactory.getInstance().define('my-account-url', MyAccountUrlComponent);\r\n","import {\r\n getPatternByDeviceType,\r\n rowNames\r\n} from './row-patterns';\r\n\r\nexport const getPattern = (deviceType) => [\r\n getPatternByDeviceType(rowNames.TRIPLE_ONE_THIRD, deviceType),\r\n getPatternByDeviceType(rowNames.NARROW, deviceType),\r\n getPatternByDeviceType(rowNames.TWO_THIRDS_AND_ONE_THIRD, deviceType),\r\n getPatternByDeviceType(rowNames.NARROW_REVERSE, deviceType),\r\n getPatternByDeviceType(rowNames.TRIPLE_ONE_THIRD, deviceType),\r\n getPatternByDeviceType(rowNames.ONE_THIRD_AND_TWO_THIRDS, deviceType),\r\n];\r\n","import UrlHelper from 'foundation/url-helper';\r\nimport ObjectHelper from 'foundation/object-helper';\r\nimport { CONTROL_TYPE_CHECKLIST, CONTROL_TYPE_SELECT } from './constants';\r\n\r\nexport function getDefaultFilters(filters) {\r\n return filters.reduce((defaultFilters, filterConfig) => {\r\n switch (filterConfig.type) {\r\n case CONTROL_TYPE_CHECKLIST: {\r\n defaultFilters[filterConfig.name] = filterConfig.defaultValue;\r\n break;\r\n }\r\n case CONTROL_TYPE_SELECT: {\r\n const defaultItem = filterConfig.options.find((f) => f.isDefault);\r\n if (defaultItem) {\r\n defaultFilters[filterConfig.name] = defaultItem.value;\r\n } else {\r\n console.error(`filter ${filterConfig.name} doesn't have a default value. the filter will be ignored`);\r\n }\r\n break;\r\n }\r\n default:\r\n throw new Error('unknown filter type');\r\n }\r\n\r\n return defaultFilters;\r\n }, {});\r\n}\r\n\r\nexport function getPathWithQueryString(location, exceptParams = []) {\r\n const baseUrl = location.pathname;\r\n const searchObject = UrlHelper.getSearchFromLocation(location);\r\n const paramsKeys = Object.keys(searchObject).filter((key) => exceptParams.indexOf(key) === -1);\r\n const paramsObject = paramsKeys.reduce((result, key) => {\r\n result[key] = searchObject[key];\r\n return result;\r\n }, {});\r\n return UrlHelper.getUrlByParams(baseUrl, paramsObject);\r\n}\r\n\r\n\r\nexport function isFilterValuesEqual(parameter1, parameter2) {\r\n if ((ObjectHelper.isObject(parameter1) && ObjectHelper.isObject(parameter2)) || (Array.isArray(parameter1) && Array.isArray(parameter2))) {\r\n return ObjectHelper.isEqual(parameter1, parameter2);\r\n }\r\n\r\n return parameter1 === parameter2;\r\n}\r\n\r\n\r\nexport function isFiltersDirty(filters, filtersConfigs) {\r\n return filtersConfigs.some((filterConfig) => {\r\n const name = filterConfig.name;\r\n return (name in filters) && !isFilterValuesEqual(filters[filterConfig.name], filterConfig.defaultValue);\r\n });\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport anime from 'animejs';\r\nimport axios from 'axios';\r\nimport qs from 'qs';\r\nimport UrlHelper from 'foundation/url-helper';\r\nimport historyController from 'general/js/history-controller';\r\nimport pageSpinner from 'general/js/page-spinner';\r\nimport api from 'general/js/api';\r\nimport { getPathWithQueryString } from './listing-helper';\r\n\r\nconst PAGINATION_DEFAULT = {\r\n perPage: 0,\r\n totalCount: 0,\r\n currentPage: 1,\r\n pageCount: 0,\r\n};\r\n\r\nconst LISTING_ID = 'listing';\r\n\r\nexport default class Listing extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.hasInitialItems = Array.isArray(props.options.initialItems);\r\n\r\n const pagination = props.options.pagination || PAGINATION_DEFAULT;\r\n\r\n this.state = {\r\n items: this.hasInitialItems ? props.options.initialItems : [],\r\n filters: this.getInitialFilters(),\r\n pagination,\r\n isLoadingMore: false,\r\n isFiltersApplied: false,\r\n isInitialRequestFulfilled: this.hasInitialItems,\r\n };\r\n\r\n this.currentPage = pagination.currentPage;\r\n this.lastRequestCancel = null;\r\n\r\n this.onFiltersChange = this.onFiltersChange.bind(this);\r\n this.onLoadMore = this.onLoadMore.bind(this);\r\n this.animateChange = this.animateChange.bind(this);\r\n\r\n // baseUrl is the url without filtering params\r\n // for example if we have 2 filters: \"order\" and \"title\" and the url is /test/products/?categoryId=25&title=beer\r\n // we will store /test/products/?categoryId=25 as a baseUrl and will be combining our filters with it\r\n this.baseUrl = getPathWithQueryString(window.location, Object.keys(this.props.defaultFilters));\r\n historyController.register(LISTING_ID, this.onHistoryChange);\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.hasInitialItems) {\r\n this.loadItems();\r\n }\r\n\r\n this.listElement = this.getListElement();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.listElement = this.getListElement();\r\n }\r\n\r\n focusSection() {\r\n if (this.listElement) {\r\n this.listElement.focus();\r\n }\r\n }\r\n\r\n // it has been disabled, but it can be an improvement\r\n //focusOnResult() {\r\n // if (this.listElement) {\r\n // const firstLink = this.listElement.querySelector('a');\r\n // if (firstLink) {\r\n // firstLink.focus();\r\n // }\r\n // }\r\n //}\r\n\r\n getListElement() {\r\n return this.element.querySelector('[data-content]');\r\n }\r\n\r\n animateChange(changeAction) {\r\n anime.timeline()\r\n .add({\r\n targets: this.listElement,\r\n opacity: [1, 0],\r\n easing: 'easeInOutQuart',\r\n duration: 100,\r\n complete: () => {\r\n if (changeAction) {\r\n changeAction();\r\n }\r\n }\r\n })\r\n .add({\r\n targets: this.listElement,\r\n opacity: [0, 1],\r\n easing: 'easeInOutQuart',\r\n duration: 400\r\n });\r\n }\r\n\r\n loadItems() {\r\n this.focusSection();\r\n pageSpinner.show({ fade: true });\r\n this.getItems().then((result) => {\r\n this.animateChange(() => {\r\n this.setState({\r\n items: result.items,\r\n pagination: result.pagination,\r\n isInitialRequestFulfilled: true,\r\n isFiltersApplied: true,\r\n });\r\n this.currentPage = result.pagination.currentPage;\r\n pageSpinner.hide();\r\n // we can focus on first result here with focusOnResult method\r\n });\r\n }, (error) => {\r\n // hide after error only when our request has been canceled\r\n if (!axios.isCancel(error)) {\r\n pageSpinner.hide();\r\n }\r\n });\r\n }\r\n\r\n loadNextPageItems() {\r\n if (!this.state.isLoadingMore) {\r\n this.setState({ isLoadingMore: true }, () => {\r\n this.getItems(this.currentPage + 1).then((result) => {\r\n this.setState({\r\n items: [...this.state.items, ...result.items],\r\n pagination: result.pagination\r\n });\r\n this.currentPage = result.pagination.currentPage;\r\n this.setState({ isLoadingMore: false });\r\n }, () => {\r\n this.setState({ isLoadingMore: false });\r\n });\r\n });\r\n }\r\n }\r\n\r\n setFilters(filters, apply = true) {\r\n const newState = {\r\n filters,\r\n };\r\n\r\n if (!apply) {\r\n // set filters without applying\r\n newState.isFiltersApplied = false;\r\n }\r\n\r\n this.setState(newState, () => {\r\n if (apply) {\r\n this.loadItems();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * parse initial location to extract currently applied query parameters\r\n * which are the part of the listing's filters\r\n * @returns {*}\r\n */\r\n getInitialFilters() {\r\n return this.getFiltersFromLocation();\r\n }\r\n\r\n /**\r\n * Analyzing the location to apply filters from the browser's query\r\n */\r\n onHistoryChange = () => {\r\n this.setFilters(this.getFiltersFromLocation());\r\n }\r\n\r\n getFiltersFromLocation() {\r\n return { ...this.props.defaultFilters, ...this.getFiltersByLocation(document.location) };\r\n }\r\n\r\n onFiltersChange(filterObject, apply = true) {\r\n const passedFilters = this.getValidFilters(filterObject);\r\n const updatedFilters = { ...this.state.filters, ...passedFilters };\r\n this.setFilters(updatedFilters, apply);\r\n\r\n if (apply) {\r\n let url = this.baseUrl;\r\n const searchableFilters = UrlHelper.getSearchableParams(updatedFilters, this.props.defaultFilters);\r\n if (Object.keys(searchableFilters).length > 0) {\r\n url = UrlHelper.getUrlByParams(url, searchableFilters);\r\n }\r\n\r\n historyController.pushState(LISTING_ID, null, url, updatedFilters);\r\n }\r\n }\r\n\r\n onLoadMore() {\r\n this.loadNextPageItems();\r\n }\r\n\r\n getItems(page = 1) {\r\n const customParams = this.props.options.customParams || {};\r\n const params = { ...this.state.filters, ...customParams };\r\n params.currentPage = page;\r\n\r\n const searchableFilters = UrlHelper.getSearchableParams(params, this.props.defaultFilters);\r\n\r\n if (this.lastRequestCancel) {\r\n this.lastRequestCancel('Request was canceled');\r\n this.lastRequestCancel = null;\r\n }\r\n\r\n const CancelToken = axios.CancelToken;\r\n const source = CancelToken.source();\r\n this.lastRequestCancel = source.cancel.bind(source);\r\n\r\n return api.get(this.props.options.endpointUrl, {\r\n params: {\r\n ...searchableFilters,\r\n headers: this.props.options.customHeaders ? this.props.options.customHeaders : {},\r\n cancelToken: source.token,\r\n },\r\n paramsSerializer: (params1) => {\r\n return qs.stringify(params1);\r\n },\r\n }).then((result) => {\r\n this.lastRequestCancel = null;\r\n return result.data;\r\n }, (error) => {\r\n if (!axios.isCancel(error)) {\r\n this.lastRequestCancel = null;\r\n }\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n /**\r\n * We are parsing location but count only filters that we are aware of\r\n * @param location\r\n */\r\n getFiltersByLocation(location) {\r\n const search = UrlHelper.getSearchFromLocation(location);\r\n return this.getValidFilters(search);\r\n }\r\n\r\n getValidFilters(filters) {\r\n /* eslint-disable */\r\n const result = {};\r\n for (const i in filters) {\r\n if (i in this.props.defaultFilters) {\r\n result[i] = filters[i];\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n render() {\r\n return (\r\n
{\r\n this.element = el;\r\n }}>\r\n {this.props.render({\r\n isInitialRequestFulfilled: this.state.isInitialRequestFulfilled,\r\n filters: this.state.filters,\r\n isFiltersApplied: this.state.isFiltersApplied,\r\n items: this.state.items,\r\n pagination: this.state.pagination,\r\n onFiltersChange: this.onFiltersChange,\r\n animateChange: this.animateChange,\r\n onLoadMore: this.onLoadMore,\r\n isLoadingMore: this.state.isLoadingMore,\r\n })}\r\n
\r\n );\r\n }\r\n}\r\n\r\nListing.propTypes = {\r\n options: PropTypes.object.isRequired,\r\n defaultFilters: PropTypes.object.isRequired,\r\n render: PropTypes.func.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport nanoid from 'nanoid';\r\n\r\nexport const TYPE_FILTERS_NAME = 'Types';\r\n\r\nclass NewsFeedTypeFilter extends React.Component {\r\n renderControls() {\r\n const { config, selectedFilters } = this.props;\r\n\r\n return config.options.map((option) => {\r\n const id = nanoid();\r\n return (\r\n
  • \r\n
    \r\n \r\n this.props.onFiltersChange(\r\n TYPE_FILTERS_NAME,\r\n option.value,\r\n event.target.checked\r\n )\r\n }\r\n />\r\n \r\n
    \r\n
  • \r\n );\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
      \r\n {this.renderControls()}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nNewsFeedTypeFilter.propTypes = {\r\n config: PropTypes.object.isRequired,\r\n selectedFilters: PropTypes.array.isRequired,\r\n onFiltersChange: PropTypes.func.isRequired\r\n};\r\n\r\nexport default NewsFeedTypeFilter;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport nanoid from 'nanoid';\r\n\r\nexport const TAG_FILTERS_NAME = 'Tags';\r\n\r\nclass NewsFeedTagFilter extends React.Component {\r\n renderControls() {\r\n const { config, selectedFilters } = this.props;\r\n\r\n return config.options.map((option) => {\r\n const id = nanoid();\r\n return (\r\n
  • \r\n
    \r\n \r\n this.props.onFiltersChange(\r\n TAG_FILTERS_NAME,\r\n option.value,\r\n event.target.checked\r\n )\r\n }\r\n />\r\n \r\n
    \r\n
  • \r\n );\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
      \r\n {this.renderControls()}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nNewsFeedTagFilter.propTypes = {\r\n config: PropTypes.object.isRequired,\r\n selectedFilters: PropTypes.array.isRequired,\r\n onFiltersChange: PropTypes.func.isRequired\r\n};\r\n\r\nexport default NewsFeedTagFilter;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport NewsFeedTypeFilter, { TYPE_FILTERS_NAME } from './news-feed-type-filter';\r\nimport NewsFeedTagFilter, { TAG_FILTERS_NAME } from './news-feed-tag-filter';\r\n\r\nclass NewsFeedHeader extends React.Component {\r\n getConfigByName(name) {\r\n const { options } = this.props;\r\n return options.filters.find((filter) => filter.name === name);\r\n }\r\n\r\n onFiltersChange = (filterName, changedCheckboxValue, isChecked) => {\r\n const selectedFilters = this.props.filters[filterName];\r\n let newValue = null;\r\n\r\n if (isChecked) {\r\n newValue = [...selectedFilters, changedCheckboxValue];\r\n } else {\r\n newValue = selectedFilters.filter((value) => value !== changedCheckboxValue);\r\n }\r\n\r\n this.props.onFiltersChange({ [filterName]: newValue });\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n

    \r\n {this.props.translations.title} \r\n {this.props.translations.shortDate}\r\n {this.props.translations.date}\r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nNewsFeedHeader.propTypes = {\r\n filters: PropTypes.object.isRequired,\r\n options: PropTypes.object.isRequired,\r\n translations: PropTypes.object,\r\n onFiltersChange: PropTypes.func.isRequired\r\n};\r\n\r\nexport default NewsFeedHeader;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Banner } from 'components/banner';\r\n\r\nconst BannerCard = ({ model }) => (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n);\r\n\r\nBannerCard.propTypes = {\r\n model: PropTypes.object.isRequired\r\n};\r\n\r\nexport default BannerCard;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport gtm from 'general/js/gtm';\r\nimport { getDefaultFilters, isFiltersDirty } from '../../listing/js/listing-helper';\r\nimport Listing from '../../listing/js/Listing';\r\nimport ListingLoadMore from '../../listing/js/ListingLoadMore';\r\nimport NewsFeedHeader from './news-feed-header';\r\nimport NewsFeedListing from './news-feed-listing';\r\nimport BannerCard from 'components/cards/js/banner-card';\r\n\r\nclass NewsFeedLayout extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.defaultFilters = {\r\n ...getDefaultFilters(props.options.filters)\r\n };\r\n }\r\n\r\n renderGroupsListing(items) {\r\n const groupsList = [];\r\n const totalGroups = Math.ceil(items.length / this.props.patternSize);\r\n\r\n for (let i = 0; i < totalGroups; i++) {\r\n const startIndex = i * this.props.patternSize;\r\n const endIndex = (i + 1) * this.props.patternSize;\r\n const groupItems = items.slice(startIndex, endIndex);\r\n\r\n groupsList.push(\r\n \r\n \r\n {\r\n groupItems.length === this.props.patternSize &&\r\n this.renderBanner()\r\n }\r\n \r\n );\r\n }\r\n\r\n return groupsList;\r\n }\r\n\r\n renderBanner() {\r\n if (!this.props.banner) return null;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n renderNoResults() {\r\n return (\r\n
    \r\n
    \r\n

    No results.

    \r\n

    Please try making your search a little wider

    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n onLoadMoreClick = (onLoadMoreFromProps) => {\r\n gtm.push('Load More', 'Click', window.location.href);\r\n onLoadMoreFromProps();\r\n }\r\n\r\n render() {\r\n return (\r\n (\r\n \r\n {\r\n this.props.onFiltersDirtyChange(isFiltersDirty(filters, this.props.options.filters))\r\n }\r\n {\r\n ReactDOM.createPortal(\r\n ,\r\n this.props.filtersNode\r\n )\r\n }\r\n
    \r\n {this.renderGroupsListing(items)}\r\n {!items.length && this.renderNoResults()}\r\n
    \r\n this.onLoadMoreClick(onLoadMore)}\r\n pagination={pagination}\r\n isLoadingMore={isLoadingMore}/>\r\n
    \r\n )}/>\r\n );\r\n }\r\n}\r\n\r\nNewsFeedLayout.propTypes = {\r\n options: PropTypes.object.isRequired,\r\n pattern: PropTypes.array.isRequired,\r\n translations: PropTypes.object,\r\n banner: PropTypes.object,\r\n patternSize: PropTypes.number,\r\n filtersNode: PropTypes.instanceOf(Element).isRequired,\r\n onFiltersDirtyChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default NewsFeedLayout;\r\n","import React from 'react';\r\nimport ReactDOM, { render } from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport eventBus from 'general/js/event-bus';\r\nimport app, { EVENT_DEVICE_TYPE_CHANGED } from 'general/js/app';\r\nimport { CONTROL_TYPE_CHECKLIST } from '../../listing/js/constants';\r\nimport { getPattern } from './patterns';\r\nimport NewsFeedLayout from './news-feed-layout';\r\n\r\n\r\nclass NewsFeedComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.data = this.getData();\r\n\r\n if (!this.data) {\r\n throw new Error('Invalid JSON initial data');\r\n }\r\n\r\n const endpointUrl = this.data.endpointUrl;\r\n\r\n if (!endpointUrl) {\r\n throw new Error('EndpointUrl should be passed via options');\r\n }\r\n\r\n const filters = this.data.filters.map((filter) => (\r\n {\r\n type: CONTROL_TYPE_CHECKLIST,\r\n name: filter.name,\r\n options: filter.values,\r\n defaultValue: []\r\n }\r\n ));\r\n\r\n this.listingOptions = {\r\n endpointUrl,\r\n filters,\r\n initialItems: this.data.articles,\r\n pagination: this.data.pagination,\r\n customParams: this.data.data\r\n };\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['filters', 'listing'];\r\n }\r\n\r\n init() {\r\n this.renderSection();\r\n\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.onChangeDeviceType);\r\n }\r\n\r\n getData() {\r\n let data = null;\r\n\r\n try {\r\n data = JSON.parse(this.getAttribute(this.refs.data, 'json'));\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n onFiltersDirtyChange = (isDirty) => {\r\n if (!Array.isArray(this.refs.components)) return;\r\n\r\n this.refs.components.forEach((component) => {\r\n component.hidden = isDirty;\r\n });\r\n }\r\n\r\n onChangeDeviceType = () => {\r\n this.renderSection();\r\n }\r\n\r\n renderSection() {\r\n render(\r\n ,\r\n this.refs.listing\r\n );\r\n }\r\n\r\n getPattern() {\r\n return getPattern(app.deviceTypeByViewport);\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.refs.listing);\r\n }\r\n}\r\n\r\nexport default NewsFeedComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport NewsFeedComponent from './js/news-feed.component';\r\nimport NewsFeedListing from './js/news-feed-listing';\r\n\r\nComponentsFactory.getInstance().define('news-feed', NewsFeedComponent);\r\n\r\nexport * from './js/patterns';\r\nexport {\r\n NewsFeedListing\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport axios from 'axios';\r\nimport qs from 'qs';\r\nimport classNames from 'classnames';\r\nimport app, { EVENT_DEVICE_TYPE_CHANGED } from 'general/js/app';\r\nimport gtm from 'general/js/gtm';\r\nimport eventBus from 'general/js/event-bus';\r\nimport { makeCancelable } from 'general/js/helpers';\r\nimport { NewsFeedService } from 'general/js/services';\r\nimport { NewsFeedListing, getPattern } from 'components/news-feed';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\n\r\nclass NewsFeedLiveLayout extends React.Component {\r\n constructor(...args) {\r\n super(...args);\r\n this.data = null;\r\n this.state = {\r\n items: [],\r\n pagination: {\r\n currentPage: 0,\r\n },\r\n pattern: getPattern(app.deviceTypeByViewport),\r\n isFetching: false,\r\n showPartialPattern: true,\r\n tags: [],\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n NewsFeedService.onChange(this.onNewsFeedServiceChange);\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.onChangeDeviceType);\r\n this.getData();\r\n }\r\n\r\n componentWillUnmount() {\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.onChangeDeviceType);\r\n this.cancelGetData();\r\n }\r\n\r\n onChangeDeviceType = (oldDeviceType, newDeviceType) => {\r\n this.setState({ pattern: getPattern(newDeviceType) });\r\n }\r\n\r\n onNewsFeedServiceChange = (tags) => {\r\n this.setState({\r\n tags,\r\n pagination: {\r\n currentPage: 0\r\n }\r\n }, () => this.getData());\r\n }\r\n\r\n getData(isLoadMore) {\r\n const { endpointUrl, tags, newsfeedParentItemGuid } = this.props.options;\r\n const currentPage = this.state.pagination.currentPage;\r\n const paginationQs = qs.stringify({ currentPage: currentPage + 1 });\r\n const tagsQs = qs.stringify({ tags: [...tags, ...this.state.tags] });\r\n const newsfeedParentItemGuidQs = qs.stringify({ newsfeedParentItemGuid: newsfeedParentItemGuid });\r\n const url = `${endpointUrl}?${newsfeedParentItemGuidQs}&${paginationQs}&${tagsQs}`;\r\n\r\n this.cancelGetData();\r\n this.cancelableGetData = makeCancelable(axios.get(url));\r\n this.cancelableGetData\r\n .promise\r\n .then((response) => {\r\n let { items } = response.data;\r\n\r\n if (!Array.isArray(items)) {\r\n this.setState({ isFetching: false });\r\n return;\r\n }\r\n\r\n let showPartialPattern = items.length > 4;\r\n\r\n if (isLoadMore) {\r\n items = [...this.state.items, ...items];\r\n showPartialPattern = false;\r\n }\r\n\r\n this.setState({\r\n items,\r\n pagination: response.data.pagination,\r\n showPartialPattern,\r\n isFetching: false\r\n });\r\n })\r\n .catch(() => {\r\n this.setState({ isFetching: false });\r\n });\r\n\r\n this.setState({ isFetching: true });\r\n }\r\n\r\n cancelGetData() {\r\n if (this.cancelableGetData) {\r\n this.cancelableGetData.cancel();\r\n }\r\n }\r\n\r\n onLoadMore = () => {\r\n if (this.state.showPartialPattern) {\r\n this.setState({ showPartialPattern: false });\r\n return;\r\n }\r\n\r\n this.getData(true);\r\n }\r\n\r\n getItems() {\r\n const { showPartialPattern, items } = this.state;\r\n\r\n if (showPartialPattern) {\r\n return items.slice(0, 4);\r\n }\r\n\r\n return items;\r\n }\r\n\r\n onSeeAllClick = () => {\r\n gtm.push('See all News', 'Click', window.location.href);\r\n }\r\n\r\n render() {\r\n const { seeAllUrl, title } = this.props.options;\r\n const { showPartialPattern, isFetching } = this.state;\r\n const { currentPage, pageCount } = this.state.pagination;\r\n const items = this.getItems();\r\n const loadMoreCss = classNames({\r\n 'is-loading': isFetching\r\n });\r\n\r\n if (!items.length) return null;\r\n\r\n return (\r\n
    \r\n {isFetching && }\r\n
    \r\n
    \r\n

    {title}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n (showPartialPattern || currentPage < pageCount) &&\r\n
    \r\n \r\n load more\r\n \r\n
    \r\n }\r\n {\r\n !showPartialPattern &&\r\n currentPage === pageCount &&\r\n
    \r\n See all News\r\n
    \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n );\r\n }\r\n}\r\n\r\nNewsFeedLiveLayout.propTypes = {\r\n options: PropTypes.object\r\n};\r\n\r\nexport default NewsFeedLiveLayout;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport NewsFeedLiveLayout from './news-feed-live-layout';\r\n\r\nclass NewsFeedLiveComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default NewsFeedLiveComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport NewsFeedLiveComponent from './js/news-feed-live.component';\r\n\r\nComponentsFactory.getInstance().define('news-feed-live', NewsFeedLiveComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport { NewsFeedService } from 'general/js/services';\r\n\r\nclass NewsFeedLiveSelector extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.state = {\r\n };\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['input'];\r\n }\r\n\r\n init() {\r\n this.onInputChange();\r\n this.addListener(this.refs.input, 'change', this.onInputChange);\r\n }\r\n\r\n onInputChange = () => {\r\n if (this.refs.input.checked) {\r\n NewsFeedService.add(this.refs.input.value);\r\n } else {\r\n NewsFeedService.remove(this.refs.input.value);\r\n }\r\n }\r\n}\r\n\r\nexport default NewsFeedLiveSelector;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport NewsFeedLiveSelector from './js/news-feed-live-selector.component';\r\n\r\nComponentsFactory.getInstance().define('news-feed-live-selector', NewsFeedLiveSelector);\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport eventBus from 'general/js/event-bus';\r\nimport app, { EVENT_DEVICE_TYPE_CHANGED } from 'general/js/app';\r\nimport { NewsFeedListing } from 'components/news-feed';\r\nimport { getPattern } from './patterns';\r\n\r\nconst VISIBLE_NUMBER_OF_NEWS_STANDART = 3;\r\n\r\nexport default class NewsFeedPreview extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.data = this.getAttribute(this.refs.data, 'options');\r\n this.cardsList = JSON.parse(this.data);\r\n\r\n this.newsCardsList = null;\r\n this.statePrimaryButton = false;\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.renderCardsList();\r\n\r\n this.addListener(this.refs.primaryButton, 'click', this.onClickPrimaryButton);\r\n\r\n this.reactDOMRender();\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.changedRenderedViews);\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.changedRenderedViews);\r\n }\r\n\r\n renderCardsList() {\r\n this.newsCardsList = this.cardsList;\r\n\r\n if (this.newsCardsList.length > VISIBLE_NUMBER_OF_NEWS_STANDART) {\r\n this.newsCardsList = this.cardsList.slice(0, VISIBLE_NUMBER_OF_NEWS_STANDART);\r\n this.statePrimaryButton = true;\r\n }\r\n }\r\n\r\n onClickPrimaryButton = (event) => {\r\n if (this.statePrimaryButton) {\r\n event.preventDefault();\r\n this.newsCardsList = this.cardsList;\r\n this.reactDOMRender();\r\n this.statePrimaryButton = false;\r\n }\r\n };\r\n\r\n reactDOMRender() {\r\n ReactDOM.render(\r\n ,\r\n this.refs.primaryWrapper\r\n );\r\n }\r\n\r\n changedRenderedViews = () => {\r\n this.reactDOMRender();\r\n };\r\n\r\n getPattern() {\r\n return getPattern(this.newsCardsList.length, app.deviceTypeByViewport);\r\n }\r\n}\r\n","import {\r\n getPatternByDeviceType,\r\n rowNames\r\n} from '../../news-feed/js/row-patterns';\r\n\r\nexport const getPattern = (totalItems, deviceType) => {\r\n switch (totalItems) {\r\n case 1:\r\n return [\r\n getPatternByDeviceType(rowNames.NARROW, deviceType)\r\n ];\r\n case 2:\r\n return [\r\n getPatternByDeviceType(rowNames.TWO_THIRDS_AND_ONE_THIRD, deviceType)\r\n ];\r\n default:\r\n return [\r\n getPatternByDeviceType(rowNames.TRIPLE_ONE_THIRD, deviceType)\r\n ];\r\n }\r\n};\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport NewsFeedPreview from './js/news-feed-preview.component';\r\n\r\nComponentsFactory.getInstance().define('news-feed-preview', NewsFeedPreview);\r\n","import { tns } from 'tiny-slider/src/tiny-slider';\r\nimport BaseComponent from 'foundation/base-component';\r\n\r\nclass PlayerCarouselComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.gallery = null;\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['slides'];\r\n }\r\n\r\n init() {\r\n this.gallery = tns({\r\n container: this.refs.slides,\r\n autoWidth: true,\r\n loop: false,\r\n nav: false,\r\n controls: false,\r\n touch: false,\r\n responsive: {\r\n 579: {\r\n slideBy: 2\r\n },\r\n 1023: {\r\n slideBy: 3\r\n }\r\n }\r\n });\r\n\r\n if (Array.isArray(this.refs.prevBtn)) {\r\n this.refs.prevBtn.forEach((x) => {\r\n this.addListener(x, 'click', this.onClickPrevBtn);\r\n });\r\n }\r\n if (Array.isArray(this.refs.nextBtn)) {\r\n this.refs.nextBtn.forEach((x) => {\r\n this.addListener(x, 'click', this.onClickNextBtn);\r\n });\r\n }\r\n }\r\n\r\n onClickPrevBtn = (event) => {\r\n event.preventDefault();\r\n this.gallery.goTo('prev');\r\n }\r\n\r\n onClickNextBtn = (event) => {\r\n event.preventDefault();\r\n this.gallery.goTo('next');\r\n }\r\n\r\n onDestroy() {\r\n this.gallery.destroy();\r\n }\r\n}\r\n\r\nexport default PlayerCarouselComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport PlayerCarouselComponent from './js/player-carousel.component';\r\n\r\nComponentsFactory.getInstance().define('player-carousel', PlayerCarouselComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport $ from 'jquery';\r\n\r\nexport default class PlayerHeroComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n \r\n this.init();\r\n }\r\n \r\n\r\n init() {\r\n if(this.refs.dateOfBirth){\r\n this.dateOfBirth = this.getAttribute(this.refs.dateOfBirth, 'options');\r\n this.age_latest = this.calculate_age(this.dateOfBirth);\r\n this.render(this.age_latest);\r\n } \r\n }\r\n\r\n render(age) {\r\n ReactDOM.render(\r\n
    { age }
    , \r\n this.refs.dateOfBirth\r\n );\r\n };\r\n\r\n\r\n calculate_age (dob) {\r\n const birthDate = new Date(dob); \r\n const difference = Date.now() - birthDate.getTime();\r\n const age = new Date(difference);\r\n\r\n return Math.abs(age.getUTCFullYear() - 1970);\r\n }\r\n\r\n}","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport PlayerHeroComponent from './js/player-hero.component';\r\n\r\nComponentsFactory.getInstance().define('player-hero', PlayerHeroComponent);","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { CountryFlag } from 'project/country-flag';\r\n\r\nconst QualLeaderboardDefaultView = (props) => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    player
    \r\n
    \r\n
    \r\n
    \r\n {\r\n props.items.map((item, i) => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {item.lastName.toUpperCase()}, {item.firstName} {item.playerStatus === 0 && '(a)'}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n })\r\n }\r\n
    \r\n );\r\n};\r\n\r\nQualLeaderboardDefaultView.propTypes = {\r\n items: PropTypes.array.isRequired\r\n};\r\n\r\nexport default QualLeaderboardDefaultView;\r\n","export const deviceTypes = Object.freeze({\r\n MOBILE: 'mobile'\r\n});\r\n\r\nexport const qualificationTypes = Object.freeze({\r\n REGIONAL: 'Regional',\r\n FINAL: 'Final'\r\n});\r\n\r\nexport const R1_TEE_TIME = 'r1TeeTime';\r\nexport const R2_TEE_TIME = 'r2TeeTime';\r\n","import React from 'react';\r\nimport { SpriteSvg } from 'project/sprite-svg';\r\nimport { deviceTypes } from './enums';\r\n\r\nclass QualDrawSearchInput extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.inputRef = React.createRef();\r\n\r\n this.searchBehaviorState = true;\r\n\r\n this.state = {\r\n animationState: false,\r\n clearValueSearchInput: false,\r\n defaultSearchValue: ''\r\n };\r\n }\r\n\r\n renderIcon = () => {\r\n if (!this.state.clearValueSearchInput) {\r\n return ;\r\n }\r\n\r\n return ;\r\n }\r\n\r\n searchBehavior = (event, callback) => {\r\n if (this.state.defaultSearchValue === '') {\r\n this.setState({ clearValueSearchInput: true });\r\n }\r\n\r\n if (this.state.clearValueSearchInput) {\r\n callback('');\r\n this.setState({\r\n clearValueSearchInput: false,\r\n defaultSearchValue: ''\r\n });\r\n return false;\r\n }\r\n\r\n callback(this.state.defaultSearchValue);\r\n this.setState({ clearValueSearchInput: true });\r\n\r\n return true;\r\n }\r\n\r\n handleKeyPress = (event, callback) => {\r\n if (event.key !== 'Enter') return false;\r\n this.searchBehavior(event, callback);\r\n return true;\r\n }\r\n\r\n searchMobileBehavior = () => {\r\n if (this.searchBehaviorState &&\r\n this.props.deviceTypeByViewport === deviceTypes.MOBILE) {\r\n\r\n this.setState({ animationState: true });\r\n\r\n window.setTimeout(() => {\r\n this.inputRef.current.focus();\r\n }, 300);\r\n\r\n this.searchBehaviorState = false;\r\n\r\n return false;\r\n }\r\n\r\n if (this.state.clearValueSearchInput) {\r\n this.setState({ animationState: false });\r\n this.searchBehaviorState = true;\r\n }\r\n\r\n if (this.searchBehaviorState &&\r\n this.props.deviceTypeByViewport !== deviceTypes.MOBILE) {\r\n this.searchBehaviorState = false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n startSearchBehavior = (event, callback) => {\r\n this.searchBehavior(event, callback);\r\n this.searchMobileBehavior();\r\n }\r\n\r\n renderAnimationState = () => {\r\n let isActive = '';\r\n\r\n if (this.props.deviceTypeByViewport !== deviceTypes.MOBILE) {\r\n isActive = 'is-active';\r\n }\r\n\r\n if (this.state.animationState &&\r\n this.props.deviceTypeByViewport === deviceTypes.MOBILE) {\r\n isActive = 'is-active';\r\n }\r\n\r\n return isActive;\r\n }\r\n\r\n handleSearch = (event) => {\r\n if (this.state.clearValueSearchInput) {\r\n this.setState({ clearValueSearchInput: false });\r\n }\r\n\r\n this.setState({\r\n defaultSearchValue: event.target.value,\r\n });\r\n }\r\n\r\n render() {\r\n if (this.props.deviceTypeByViewport !== deviceTypes.MOBILE) {\r\n this.searchBehaviorState = true;\r\n }\r\n\r\n return (\r\n
    \r\n\r\n this.handleSearch(event)}\r\n onKeyPress={(event) => this.handleKeyPress(event, this.props.defaultCallback)}\r\n />\r\n\r\n this.startSearchBehavior(event, this.props.defaultCallback)}\r\n >\r\n
    \r\n {this.renderIcon()}\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default QualDrawSearchInput;\r\n","import React from 'react';\r\n\r\nclass QualDrawSelect extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.choicesInstance = null;\r\n this.selectRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n const { options } = this.props;\r\n const block = 'randa-select';\r\n\r\n this.choicesInstance = new window.Choices(this.selectRef.current, {\r\n choices: options,\r\n searchEnabled: false,\r\n shouldSort: false,\r\n itemSelectText: '',\r\n classNames: {\r\n containerOuter: `choices ${block}`,\r\n containerInner: `choices__inner ${block}__inner`,\r\n list: `choices__list ${block}__list`,\r\n listDropdown: `choices__list--dropdown ${block}__list--dropdown`,\r\n listSingle: `choices__list--single ${block}__list--single`,\r\n item: `choices__item ${block}__item`,\r\n itemSelectable: `choices__item--selectable ${block}__item--selectable`,\r\n itemDisabled: `choices__item--disabled ${block}__item--disabled`,\r\n itemChoice: `choices__item--choice ${block}__item--choice`\r\n }\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.choicesInstance) {\r\n this.choicesInstance.destroy();\r\n }\r\n }\r\n\r\n getOptionValue = () => {\r\n const value = this.choicesInstance.getValue(true);\r\n\r\n if (typeof this.props.onChange === 'function') {\r\n this.props.onChange(value);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default QualDrawSelect;\r\n","import findIndex from 'lodash/findIndex';\r\n\r\nexport const getChoices = (items, qsObj) => {\r\n const optionItems = items.reduce((res, el) => {\r\n const alreadyExist = Boolean(res.find((item) => {\r\n return item.locationName === el.locationName;\r\n }));\r\n\r\n if (!alreadyExist) {\r\n res.push({\r\n id: res.length + 1,\r\n locationName: el.locationName\r\n });\r\n }\r\n\r\n return res;\r\n }, []);\r\n\r\n const choicesInitial = [\r\n { label: 'Select course', value: '', selected: false }\r\n ];\r\n\r\n const optionItemsSorted = optionItems.sort((a, b) => {\r\n return a.locationName > b.locationName ? 1 : -1;\r\n });\r\n\r\n optionItemsSorted.forEach((option) => {\r\n choicesInitial.push({\r\n label: option.locationName,\r\n value: option.locationName,\r\n selected: false\r\n });\r\n });\r\n\r\n const choiceIndex = findIndex(choicesInitial, (choice) => (choice.value === qsObj.course));\r\n\r\n if (choiceIndex === -1) {\r\n choicesInitial[0].selected = true;\r\n } else {\r\n choicesInitial[choiceIndex].selected = true;\r\n }\r\n\r\n return choicesInitial;\r\n};\r\n","export const sortByTeeTime = (players, r1TeeTime, r2TeeTime) => {\r\n let teeTime = '';\r\n if (r1TeeTime) teeTime = 'r1TeeTime';\r\n //if (r2TeeTime) teeTime = 'r2TeeTime';\r\n const teeTimeGroups = {};\r\n const result = [];\r\n const sortedByTeeTime = [...players].sort((a, b) =>\r\n new Date(a[teeTime]) - new Date(b[teeTime]));\r\n\r\n sortedByTeeTime.forEach((player) => {\r\n const curTeeTime = player[teeTime];\r\n\r\n if (!teeTimeGroups[curTeeTime]) {\r\n teeTimeGroups[curTeeTime] = [];\r\n }\r\n\r\n teeTimeGroups[curTeeTime].push(player);\r\n });\r\n\r\n Object.keys(teeTimeGroups).forEach((key) => {\r\n teeTimeGroups[key].sort((a, b) => a.r1StartHole - b.r1StartHole);\r\n result.push(...teeTimeGroups[key]);\r\n });\r\n\r\n return result;\r\n};\r\n\r\nexport const filteringStrategies = {\r\n selectCourse: {\r\n filteringFunc: ({ players, selectValue }) => {\r\n return players.filter((courseItem) => courseItem.locationName === selectValue);\r\n }\r\n },\r\n searchPlayers: {\r\n filteringFunc: ({ players, searchQuery }) => {\r\n const filterBy = ['firstName', 'lastName'];\r\n\r\n return players.filter((item) => {\r\n return filterBy.some((prop) => {\r\n return searchQuery.some((val) => {\r\n return item[prop].toLowerCase().includes(val);\r\n });\r\n });\r\n });\r\n }\r\n }\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport qs from 'qs';\r\nimport classNames from 'classnames';\r\nimport { format } from 'date-fns';\r\nimport { CountryFlag } from 'project/country-flag';\r\nimport eventBus from 'general/js/event-bus';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport app, { EVENT_DEVICE_TYPE_CHANGED } from 'general/js/app';\r\nimport { SpriteSvg } from 'project/sprite-svg';\r\nimport QualDrawTablePlayer from './qual-draw-table-player';\r\nimport QualDrawSearchInput from './qual-draw-search-input';\r\nimport QualDrawSelect from './qual-draw-select';\r\nimport { getChoices } from './action-helper';\r\nimport { filteringStrategies, sortByTeeTime } from './filtering-strategies';\r\nimport {\r\n R1_TEE_TIME,\r\n R2_TEE_TIME,\r\n qualificationTypes\r\n} from './enums';\r\n\r\nclass QualDrawContainer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.rootRef = React.createRef();\r\n this.arrowLeftRef = React.createRef();\r\n this.arrowRightRef = React.createRef();\r\n this.searchQuery = '';\r\n this.r1TeeTime = false;\r\n this.r2TeeTime = false;\r\n this.isFinalQualificationDraw = false;\r\n this.lastScroll = 0;\r\n this.chainStartUrl = window.location.pathname;\r\n this.chainStartHash = window.location.hash;\r\n this.qsObj = qs.parse(window.location.search, { ignoreQueryPrefix: true });\r\n\r\n this.state = {\r\n deviceTypeByViewport: '',\r\n searchAnimationState: false,\r\n selectedCourse: this.qsObj.course || '',\r\n applySearchPlayers: false\r\n };\r\n\r\n this.initState();\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.changedRenderedViews);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.changedRenderedViews);\r\n }\r\n\r\n initState = () => {\r\n this.optionItems = getChoices(this.props.players, this.qsObj);\r\n\r\n if (this.props.options.type === qualificationTypes.FINAL) {\r\n this.isFinalQualificationDraw = true;\r\n }\r\n\r\n this.props.players.forEach((item) => {\r\n if (item[R1_TEE_TIME]) {\r\n this.r1TeeTime = true;\r\n }\r\n\r\n if (item[R2_TEE_TIME]) {\r\n this.r2TeeTime = true;\r\n }\r\n });\r\n }\r\n\r\n changedRenderedViews = () => {\r\n this.setState({ deviceTypeByViewport: app.deviceTypeByViewport });\r\n }\r\n\r\n renderStartHole = (startHole) => {\r\n if (startHole !== 10) return '';\r\n return '*';\r\n }\r\n\r\n renderMatchNumber = (item) => {\r\n if (this.isFinalQualificationDraw) return null;\r\n\r\n if (item.isScoringCompleted) {\r\n return (\r\n
    \r\n
    \r\n {item.r1MatchNo}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {item.r1MatchNo}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n renderField = (field, title, data, startHole) => {\r\n field = field || '';\r\n title = title || false;\r\n data = data || null;\r\n startHole = startHole || null;\r\n\r\n const roundNoIdentifier = this.isFinalQualificationDraw ? 'r1' : '';\r\n\r\n if (this.r1TeeTime && field === R1_TEE_TIME) {\r\n if (title) {\r\n return (\r\n
    \r\n
    tee time {roundNoIdentifier}
    \r\n
    \r\n );\r\n }\r\n return (\r\n
    \r\n
    \r\n {data !== null ? data : '-'}\r\n {this.renderStartHole(startHole)}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n if (this.r2TeeTime && field === R2_TEE_TIME) {\r\n if (title) {\r\n return (\r\n
    \r\n
    tee time r2
    \r\n
    \r\n );\r\n }\r\n return (\r\n
    \r\n
    \r\n {data !== null ? data : '-'}\r\n {this.renderStartHole(startHole)}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n return null;\r\n };\r\n\r\n renderItem = () => {\r\n return (\r\n this.items.map((item) => {\r\n const teeTimeR1 = item.r1TeeTime && format(item.r1TeeTime.replace('Z', ''), 'h:mm a');\r\n const teeTimeR2 = item.r2TeeTime && format(item.r2TeeTime.replace('Z', ''), 'h:mm a');\r\n const playerId = '' +\r\n item.firstName + '-' +\r\n item.lastName + '-' +\r\n item.nationality + '-' +\r\n item.clubName + '-' +\r\n item.locationName;\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {item.lastName.toUpperCase()}, {item.firstName} {item.playerStatus === 0 && '(a)'}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {item.clubName}\r\n
    \r\n
    \r\n {\r\n item.sitecoreData &&\r\n item.sitecoreData.pageUrl &&\r\n \r\n {item.sitecoreData.name}\r\n \r\n }\r\n\r\n
    \r\n {this.renderMatchNumber(item)}\r\n {this.renderField(R1_TEE_TIME, false, teeTimeR1, item.r1StartHole)}\r\n {this.renderField(R2_TEE_TIME, false, teeTimeR2, item.r2StartHole)}\r\n
    \r\n );\r\n })\r\n );\r\n }\r\n\r\n onScrollLeftElement = (event) => {\r\n const scrollLeft = event.target.scrollLeft;\r\n const scrollWidth = event.target.scrollWidth;\r\n const offsetWidth = event.target.offsetWidth;\r\n\r\n if (scrollLeft === scrollWidth - offsetWidth) {\r\n this.arrowRightRef.current.classList.add('is-animation');\r\n } else if (scrollLeft === 0) {\r\n this.arrowLeftRef.current.classList.remove('is-animation');\r\n } else if (scrollLeft > this.lastScroll) {\r\n this.arrowLeftRef.current.classList.add('is-animation');\r\n } else if (scrollLeft < this.lastScroll) {\r\n this.arrowRightRef.current.classList.remove('is-animation');\r\n }\r\n\r\n this.lastScroll = event.target.scrollLeft;\r\n }\r\n\r\n handleChangeSelect = (value) => {\r\n let url = '';\r\n\r\n if (value === '') {\r\n url = `${this.chainStartUrl}${this.chainStartHash}`;\r\n } else {\r\n url = `${this.chainStartUrl}?course=${value}${this.chainStartHash}`;\r\n }\r\n\r\n //TODO: apply history controller\r\n window.history.pushState(null, null, url);\r\n\r\n this.setState({ selectedCourse: value });\r\n }\r\n\r\n getDefaultCallback = (term) => {\r\n this.searchQuery = term.trim().toLowerCase().split(/\\s+/);\r\n\r\n this.setState({ applySearchPlayers: term !== '' });\r\n }\r\n\r\n filteredStateInit = (data, filteringType) => {\r\n const currentStrategy = filteringStrategies[filteringType];\r\n\r\n const props = {\r\n players: data,\r\n selectValue: this.state.selectedCourse,\r\n searchQuery: this.searchQuery\r\n };\r\n\r\n return currentStrategy.filteringFunc(props);\r\n }\r\n\r\n processData(players) {\r\n if (!Array.isArray(players)) return [];\r\n\r\n let processedPlayers = players;\r\n\r\n if (this.state.selectedCourse) {\r\n processedPlayers = this.filteredStateInit(processedPlayers, 'selectCourse');\r\n processedPlayers = sortByTeeTime(processedPlayers, this.r1TeeTime, this.r2TeeTime);\r\n }\r\n\r\n if (this.state.applySearchPlayers) {\r\n processedPlayers = this.filteredStateInit(processedPlayers, 'searchPlayers');\r\n processedPlayers = sortByTeeTime(processedPlayers, this.r1TeeTime, this.r2TeeTime);\r\n }\r\n\r\n return processedPlayers;\r\n }\r\n\r\n render() {\r\n this.items = this.processData(this.props.players);\r\n const stateCss = classNames({\r\n 'is-search-active': this.state.searchAnimationState\r\n });\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n {this.optionItems.length > 1 &&\r\n \r\n }\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n this.items.length > 0 ?\r\n
    \r\n\r\n \r\n\r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    player
    \r\n
    \r\n
    \r\n \r\n
    club/attachment
    \r\n
    attachment
    \r\n
    \r\n
    \r\n
    course
    \r\n
    \r\n {this.isFinalQualificationDraw ? null :\r\n
    \r\n
    game
    \r\n
    }\r\n {this.renderField(R1_TEE_TIME, true)}\r\n {this.renderField(R2_TEE_TIME, true)}\r\n
    \r\n\r\n {this.renderItem()}\r\n \r\n \r\n :
    \r\n
    No results.
    \r\n
    Please try making your search a little wider
    \r\n
    \r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nQualDrawContainer.propTypes = {\r\n options: PropTypes.object,\r\n players: PropTypes.array\r\n};\r\n\r\nexport default QualDrawContainer;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport ScoringLoader from 'general/js/loaders/scoring-loader';\r\nimport { BlockPlaceholder } from 'components/block-placeholder';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\nimport QualDrawContainer from './qual-draw-container';\r\nimport { bemClasses, LivePreMessage } from '../../live-pre-message';\r\n\r\nclass QualDrawLayout extends React.Component {\r\n componentDidMount() {\r\n ScoringLoader.subscribe(`draw${this.props.options.type}`);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(`draw${this.props.options.type}`);\r\n }\r\n\r\n render() {\r\n const { scoringDraw } = this.props;\r\n\r\n if (scoringDraw === undefined) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (!scoringDraw || !Array.isArray(scoringDraw.players)) {\r\n return ;\r\n }\r\n\r\n const players = [...scoringDraw.players].sort((a, b) => {\r\n return a.r1TeeTime.localeCompare(b.r1TeeTime);\r\n });\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nQualDrawLayout.propTypes = {\r\n options: PropTypes.shape({\r\n type: PropTypes.string,\r\n infoPopupUrl: PropTypes.string\r\n }),\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n scoringDraw: state.scoring[`draw${ownProps.options.type}`]\r\n});\r\n\r\nconst QualDrawLayoutWrapper = connect(\r\n mapStateToProps\r\n)(QualDrawLayout);\r\n\r\nexport default QualDrawLayoutWrapper;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport store from 'general/js/store';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport QualDrawLayout from './qual-draw-layout.js';\r\n\r\nclass QualDrawComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['root'];\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.refs.root);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.refs.root\r\n );\r\n }\r\n}\r\n\r\nexport default QualDrawComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport QualDrawComponent from './js/qual-draw.component';\r\n\r\nComponentsFactory.getInstance().define('qual-draw', QualDrawComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport get from 'lodash/get';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\n\r\nclass QualEventItem extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n }\r\n\r\n render() {\r\n const sitecoreData = get(this.props, 'location.sitecoreData');\r\n\r\n if (!sitecoreData) return null;\r\n let isFirstLinkDefined = sitecoreData.link1 !== null && sitecoreData.link1 !== undefined;\r\n let isSecondLinkDefined = sitecoreData.link2 !== null && sitecoreData.link2 !== undefined;\r\n \r\n return (\r\n
  • \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    {sitecoreData.name}

    \r\n {\r\n isFirstLinkDefined &&\r\n \r\n {sitecoreData.firstLinkText}\r\n \r\n }\r\n {\r\n isSecondLinkDefined &&\r\n \r\n {sitecoreData.secondLinkText}\r\n \r\n }\r\n \r\n View more\r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n );\r\n }\r\n}\r\n\r\nQualEventItem.propTypes = {\r\n location: PropTypes.object\r\n};\r\n\r\nexport default QualEventItem;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport ScoringLoader from 'general/js/loaders/scoring-loader';\r\nimport { BlockPlaceholder } from 'components/block-placeholder';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\nimport QualEventItem from './qual-events-item';\r\n\r\nclass QualEventsContainer extends React.Component {\r\n componentDidMount() {\r\n ScoringLoader.subscribe(`summary${this.props.options.type}`);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(`summary${this.props.options.type}`);\r\n }\r\n\r\n render() {\r\n var { scoringSummary } = this.props;\r\n if (scoringSummary === undefined) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (!scoringSummary || !Array.isArray(scoringSummary.locations)) return null;\r\n\r\n scoringSummary.locations = sortAlfa(scoringSummary.locations);\r\n\r\n return (\r\n
      \r\n {\r\n scoringSummary.locations.map((location) =>\r\n )\r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nQualEventsContainer.propTypes = {\r\n options: PropTypes.object\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n scoringSummary: state.scoring[`summary${ownProps.options.type}`]\r\n});\r\n\r\nconst sortAlfa = (locations) =>\r\n{\r\n return [...locations].sort((a,b)=>{\r\n if (a.sitecoreData && b.sitecoreData) {\r\n return a.sitecoreData.name.localeCompare(b.sitecoreData.name)\r\n }\r\n});\r\n};\r\n\r\nconst QualEventsContainerWrapper = connect(\r\n mapStateToProps\r\n)(QualEventsContainer);\r\n\r\nexport default QualEventsContainerWrapper;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport store from 'general/js/store';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport QualEventsContainer from './qual-events.container.js';\r\n\r\nclass QualEventsComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['cardsRootContainer'];\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.refs.cardsRootContainer);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.refs.cardsRootContainer\r\n );\r\n }\r\n}\r\n\r\nexport default QualEventsComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport QualEventsComponent from './js/qual-events.component';\r\n\r\nComponentsFactory.getInstance().define('qual-events', QualEventsComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst qualLeaderboardScoringInfo = (props) => {\r\n const showScoringInfoContent = () => {\r\n let isVisible = '';\r\n\r\n if (props.scoringInfoClassName) {\r\n isVisible = 'is-visible';\r\n }\r\n\r\n return isVisible;\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n props.clicked()}\r\n >\r\n
    \r\n Scoring\r\n info\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
      \r\n
    • \r\n Birdie\r\n
    • \r\n
    • \r\n Eagle or better\r\n
    • \r\n
    • \r\n Bogey or worse\r\n
    • \r\n
    • \r\n Par\r\n
    • \r\n
    \r\n
      \r\n
    • \r\n Qualified\r\n Q\r\n
    • \r\n
    • \r\n Reserve Place\r\n RES\r\n
    • \r\n
    • \r\n No Return\r\n NR\r\n
    • \r\n
    • \r\n Disqualified\r\n DQ\r\n
    • \r\n
    • \r\n Retired\r\n RTD\r\n
    • \r\n
    • \r\n Withdrawn\r\n WD\r\n
    • \r\n
    • \r\n * 10th Tee start\r\n
    • \r\n
    • \r\n (a) Amateur\r\n
    • \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nqualLeaderboardScoringInfo.propTypes = {\r\n scoringInfoClassName: PropTypes.bool,\r\n clicked: PropTypes.func\r\n};\r\n\r\nexport default qualLeaderboardScoringInfo;\r\n","export const DEFAULT_VIEW = 'default';\r\nexport const HOLES_VIEW = 'holes-view';\r\nexport const QUALIFY_RESERVE_FLAG = 'qualifyReserveFlag';\r\nexport const TEE_START_POSITION = 'teeStartPosition';\r\nexport const CLUB_NAME = 'clubName';\r\nexport const FQ_HOLE = 'fqHole';\r\nexport const RQ_HOLE = 'rqHole';\r\nexport const R1 = 'r1';\r\nexport const R2 = 'r2';\r\nexport const ROUND_ONE = '1';\r\nexport const ROUND_TWO = '2';\r\nexport const TOTAL = 'total';\r\nexport const IN = 'in';\r\nexport const SCORE = 'score';\r\nexport const TODAY = 'today';\r\nexport const QUALIFIED_STATUS = 'qualifiedStatus';\r\nexport const TENTH_HOLE = 10;\r\n","import { format } from 'date-fns';\r\n\r\nexport const getPlayerRoundById = (player, id) => {\r\n if (!player || !Array.isArray(player.rounds)) return null;\r\n\r\n const foundRound = player.rounds.find((round) => round.roundNo.toString() === id);\r\n\r\n return foundRound || null;\r\n};\r\n\r\nexport const getPlayerTeeTimeByRoundId = (player, id) => {\r\n if (!player || !Array.isArray(player.teeTimes)) return null;\r\n\r\n const teeTime = player.teeTimes.find((p) => p.roundNo.toString() === id);\r\n\r\n return teeTime ? teeTime.teeTime : null;\r\n};\r\n\r\nexport const renderStartHoleByRoundId = (player, id) => {\r\n if (!player || !Array.isArray(player.teeTimes)) return null;\r\n\r\n let holesPlayed = 0;\r\n if (Array.isArray(player.rounds) && player.rounds[id - 1]) {\r\n holesPlayed = player.rounds[id - 1].holesNoPlayed;\r\n }\r\n\r\n const teeTime = player.teeTimes.find((p) => p.roundNo.toString() === id);\r\n\r\n if (teeTime && teeTime.isStartingFromTenthHole && holesPlayed === 0) return '*';\r\n return '';\r\n};\r\n\r\nexport const getRoundParsById = (roundPars, id) => {\r\n if (!Array.isArray(roundPars)) return null;\r\n\r\n const foundRound = roundPars.find((round) => round.roundId.toString() === id);\r\n\r\n return foundRound || null;\r\n};\r\n\r\nexport const getPlayerFormattedTeeTimeByRound = (player, roundId) => {\r\n const teeTime = getPlayerTeeTimeByRoundId(player, roundId);\r\n let holesPlayed = 0;\r\n let roundToPar = '';\r\n\r\n if (player && player.rounds[roundId - 1]) {\r\n holesPlayed = player.rounds[roundId - 1].holesNoPlayed;\r\n roundToPar = player.rounds[roundId - 1].roundToPar;\r\n }\r\n\r\n if (holesPlayed > 0) {\r\n if (roundToPar === 'Par') {\r\n return 'E';\r\n }\r\n\r\n const parsedInt = parseInt(roundToPar, 10);\r\n\r\n if (parsedInt > 0) {\r\n roundToPar = `+${parsedInt}`;\r\n }\r\n\r\n return roundToPar;\r\n }\r\n\r\n return teeTime !== null ? format(teeTime.replace('Z', ''), 'h:mm a') : '-';\r\n};\r\n\r\nexport const renderQualifiedStatus = (data) => {\r\n const q = data.qualifiedStatus;\r\n const res = data.reservedStatusNumber;\r\n\r\n if (q == null || q === 'NQ') return '';\r\n\r\n if (q === 'R' || q === 'RES') {\r\n return `RES ${res}`;\r\n }\r\n\r\n return `${q}`;\r\n};\r\n\r\nexport const renderToPar = (toPar) => {\r\n if (!toPar) return '-';\r\n if (toPar === 0 || toPar === 'Par') return 'E';\r\n\r\n return toPar;\r\n};\r\n\r\nexport const renderRoundToPar = (toPar) => {\r\n if (!toPar) return '-';\r\n if (toPar === 0 || toPar === 'Par') return 'E';\r\n if (toPar > 0) return `+${toPar}`;\r\n\r\n return toPar;\r\n};\r\n","import React from 'react';\r\nimport { CountryFlag } from 'project/country-flag';\r\nimport FavoritePlayerButton from 'components/favorite-player-button';\r\nimport {\r\n QUALIFY_RESERVE_FLAG,\r\n TEE_START_POSITION,\r\n CLUB_NAME,\r\n FQ_HOLE,\r\n RQ_HOLE,\r\n R1,\r\n R2,\r\n TOTAL,\r\n IN,\r\n SCORE,\r\n TODAY,\r\n QUALIFIED_STATUS\r\n} from './qual-leaderboard-const';\r\nimport { renderQualifiedStatus, renderToPar } from './helpers/roundHelper';\r\n\r\nconst QualLeaderboardPlayerRow = (props) => {\r\n const {\r\n renderField,\r\n player,\r\n renderPlayerPar,\r\n renderColorState,\r\n isFavorite,\r\n } = props;\r\n\r\n const favouriteTheme = {};\r\n if (isFavorite) {\r\n favouriteTheme.isWhite = true;\r\n } else {\r\n favouriteTheme.isDark = true;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n {player.position ? player.position.text : '-'}
    \r\n \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {player.lastName.toUpperCase()}, {player.firstName} {player.playerStatus === 0 && '(a)'}\r\n
    \r\n
    {player.clubName}
    \r\n {renderQualifiedStatus(player)}
    \r\n
    \r\n
    \r\n \r\n {renderField(QUALIFY_RESERVE_FLAG, false, player)}\r\n {renderField(CLUB_NAME, false, player)}\r\n {renderField(TEE_START_POSITION, false, player)}\r\n {renderField(QUALIFIED_STATUS, false, player)}\r\n
    \r\n
    \r\n
    \r\n {renderToPar(player.toPar)}\r\n
    \r\n
    \r\n
    \r\n {renderPlayerPar(player)}\r\n {renderField(FQ_HOLE, false, player)}\r\n {renderField(R1, false, player)}\r\n {renderField(R2, false, player)}\r\n {renderField(TOTAL, false, player)}\r\n {renderField(RQ_HOLE, false, player)}\r\n {renderField(IN, false, player)}\r\n {renderField(SCORE, false, player)}\r\n {renderField(TODAY, false, player)}\r\n \r\n );\r\n};\r\n\r\nexport default QualLeaderboardPlayerRow;\r\n","export const renderColorState = (data, title) => {\r\n let property = null;\r\n\r\n switch (title) {\r\n case 'par':\r\n property = parseInt(data.toPar, 10);\r\n break;\r\n case 'today':\r\n property = parseInt(data, 10);\r\n break;\r\n default:\r\n return property;\r\n }\r\n\r\n if (property < 0) {\r\n return 'is-under';\r\n }\r\n\r\n if (\r\n property === 0 ||\r\n data === 'Par' ||\r\n data === 'E' ||\r\n (data && (data.toPar === 'Par' || data.toPar === 'E'))\r\n ) {\r\n return 'is-equal';\r\n }\r\n\r\n if (property > 0) {\r\n return 'is-over';\r\n }\r\n\r\n return 'is-equal';\r\n};\r\n\r\nexport const renderColorStateHoles = (holes) => {\r\n if (!holes.score) return false;\r\n\r\n let colorStateHoles = '';\r\n const par = holes.par;\r\n const score = holes.score;\r\n const res = score - par;\r\n\r\n if (res === -1) {\r\n colorStateHoles = 'is-under-par';\r\n return colorStateHoles;\r\n }\r\n\r\n if (res < -1) {\r\n colorStateHoles = 'is-more-under-par';\r\n return colorStateHoles;\r\n }\r\n\r\n if (res === 0) {\r\n colorStateHoles = 'is-equal';\r\n return colorStateHoles;\r\n }\r\n\r\n if (res > 0) {\r\n colorStateHoles = 'is-more-than-par';\r\n return colorStateHoles;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport const renderRoundColorState = (total, parSum) => {\r\n let property = null;\r\n let colorStateToPar = '';\r\n property = parseInt(total, 10);\r\n\r\n if (property < parSum) {\r\n colorStateToPar = 'is-under';\r\n return colorStateToPar;\r\n }\r\n\r\n if (property === parSum) {\r\n colorStateToPar = 'is-equal';\r\n return colorStateToPar;\r\n }\r\n\r\n if (property > parSum) {\r\n colorStateToPar = 'is-over';\r\n return colorStateToPar;\r\n }\r\n\r\n return colorStateToPar;\r\n};\r\n\r\nexport const renderTotalColorState = (total, parSum1, parSum2) => {\r\n let property = null;\r\n let parSum = null;\r\n let colorStateToPar = '';\r\n property = parseInt(total, 10);\r\n parSum = parSum1 + parSum2;\r\n\r\n if (property < parSum) {\r\n colorStateToPar = 'is-under';\r\n return colorStateToPar;\r\n }\r\n\r\n if (property === parSum) {\r\n colorStateToPar = 'is-equal';\r\n return colorStateToPar;\r\n }\r\n\r\n if (property > parSum) {\r\n colorStateToPar = 'is-over';\r\n return colorStateToPar;\r\n }\r\n\r\n return colorStateToPar;\r\n};\r\n","export const qualificationTypes = Object.freeze({\r\n REGIONAL: 'Regional',\r\n FINAL: 'Final',\r\n REGIONAL_WO: 'RegionalWO',\r\n FINAL_WO: 'FinalWO'\r\n});\r\n\r\nexport const cellTypes = Object.freeze({\r\n POSITION: 'pos',\r\n MOVERS: 'movers',\r\n NATIONALITY: 'nationality',\r\n PLAYER: 'player',\r\n PAR: 'par',\r\n HOLE: 'hole',\r\n TOTAL: 'total',\r\n TODAY: 'today',\r\n R1: 'r1',\r\n R1_SCORE: 'r1Score',\r\n R1_OUT: 'r1Out',\r\n R1_IN: 'r1In',\r\n R1_TO_PAR: 'r1ToPar',\r\n R2: 'r2',\r\n R2_SCORE: 'r2Score',\r\n R2_OUT: 'r2Out',\r\n R2_IN: 'r2In',\r\n R2_TO_PAR: 'r2ToPar'\r\n});\r\n\r\nexport const getCellModifierByType = (type) => {\r\n switch (type) {\r\n case cellTypes.R1_IN:\r\n case cellTypes.R2_IN:\r\n return 'in';\r\n case cellTypes.R1_OUT:\r\n case cellTypes.R2_OUT:\r\n return 'out';\r\n case cellTypes.R1_TO_PAR:\r\n case cellTypes.R2_TO_PAR:\r\n return 'today';\r\n case cellTypes.R1_SCORE:\r\n case cellTypes.R2_SCORE:\r\n return 'total';\r\n default:\r\n return type;\r\n }\r\n};\r\n\r\nexport const getTitleByType = (type) => {\r\n switch (type) {\r\n case cellTypes.PAR:\r\n return 'to par';\r\n case cellTypes.TOTAL:\r\n return 'total';\r\n case cellTypes.HOLE:\r\n return 'holes';\r\n case cellTypes.R1_IN:\r\n case cellTypes.R2_IN:\r\n return 'in';\r\n case cellTypes.R1_OUT:\r\n case cellTypes.R2_OUT:\r\n return 'out';\r\n case cellTypes.R1_TO_PAR:\r\n case cellTypes.R2_TO_PAR:\r\n return 'rnd par';\r\n case cellTypes.R1_SCORE:\r\n case cellTypes.R2_SCORE:\r\n return 'rnd score';\r\n default:\r\n return type;\r\n }\r\n};\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { getCellModifierByType, getTitleByType } from './enums';\r\nimport app,\r\n{\r\n DEVICE_TYPE_TABLET,\r\n DEVICE_TYPE_MOBILE,\r\n DEVICE_TYPE_MOBILE_WIDE,\r\n} from 'general/js/app';\r\n\r\nconst QualLeaderboardRowTitle = (\r\n {\r\n type,\r\n sortingHandler,\r\n processingState,\r\n inOutTotal\r\n }\r\n) => {\r\n const isActive = processingState.sortingType === type;\r\n const stateCss = classNames({\r\n 'is-active': isActive,\r\n 'is-top': isActive && processingState.isSortingAscending\r\n });\r\n\r\n const modifier = getCellModifierByType(type);\r\n const title = getTitleByType(type);\r\n function getNationalityTitle(title) {\r\n if (title == 'nationality') {\r\n return 'nat';\r\n }\r\n return title;\r\n }\r\n\r\n return (\r\n \r\n sortingHandler(type)}\r\n >\r\n
    {getNationalityTitle(title)}
    \r\n {(modifier === 'in' || modifier === 'out' || modifier === 'total') && (\r\n
    {inOutTotal}
    \r\n )}\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    {getNationalityTitle(title)}
    \r\n \r\n );\r\n};\r\n\r\nexport default QualLeaderboardRowTitle;\r\n","import { DEFAULT_VIEW, HOLES_VIEW } from '../qual-leaderboard-const';\r\n\r\nexport const renderClassName = ({\r\n className, view, r1, r2, qualifyReserveFlag, teeStartPosition\r\n}) => {\r\n let classNameTable = className || 'qual-leaderboard__table';\r\n\r\n if (view === DEFAULT_VIEW) {\r\n if (r1 && r2) {\r\n classNameTable = `${classNameTable}--r`;\r\n return classNameTable;\r\n }\r\n\r\n if (teeStartPosition && !qualifyReserveFlag) {\r\n classNameTable = `${classNameTable}--during`;\r\n return classNameTable;\r\n }\r\n\r\n if (teeStartPosition && qualifyReserveFlag) {\r\n classNameTable = `${classNameTable}--post`;\r\n return classNameTable;\r\n }\r\n }\r\n\r\n if (view === HOLES_VIEW) {\r\n classNameTable = `${classNameTable}--holebyhole`;\r\n return classNameTable;\r\n }\r\n\r\n return '';\r\n};\r\n","/* eslint-disable no-shadow */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { favoritePlayerService } from 'general/js/services';\r\nimport QualLeaderboardPlayerRow from './qual-leaderboard-player-row';\r\nimport {\r\n renderColorState, renderColorStateHoles, renderRoundColorState\r\n} from './actions/render-color-state';\r\n\r\nimport {\r\n DEFAULT_VIEW,\r\n HOLES_VIEW,\r\n QUALIFY_RESERVE_FLAG,\r\n TEE_START_POSITION,\r\n CLUB_NAME,\r\n FQ_HOLE,\r\n RQ_HOLE,\r\n R1,\r\n R2,\r\n ROUND_ONE,\r\n ROUND_TWO,\r\n TOTAL,\r\n IN,\r\n SCORE,\r\n TODAY,\r\n QUALIFIED_STATUS\r\n} from './qual-leaderboard-const';\r\nimport { cellTypes, qualificationTypes } from './enums';\r\nimport QualLeaderboardRowTitle from './qual-leaderboard-row-title';\r\nimport {\r\n getPlayerFormattedTeeTimeByRound, getPlayerRoundById, getRoundParsById, renderRoundToPar, renderStartHoleByRoundId\r\n} from './helpers/roundHelper';\r\nimport { renderClassName } from './helpers/utils';\r\nimport {\r\n clubNameView, fqHoleView,\r\n qualifiedReserveFlagView, qualifiedStatusView, rqHoleView, teeStartPositionView, totalViewField\r\n} from './helpers/viewHelper';\r\n\r\nconst QualLeaderboardTable = (props) => {\r\n const tableWrapper = React.createRef();\r\n const arrowLeftRef = React.createRef();\r\n const arrowRightRef = React.createRef();\r\n const view = props.view;\r\n const processingState = props.processingState;\r\n const sortingHandler = props.sortingHandler;\r\n const players = props.players;\r\n let lastScroll = 0;\r\n let qualifyReserveFlag = false;\r\n let teeStartPosition = false;\r\n let r1 = false;\r\n let r2 = false;\r\n let qualifiedStatus = false;\r\n let finalQualificationHole = false;\r\n\r\n const initState = () => {\r\n if (view === DEFAULT_VIEW && props.options.type === qualificationTypes.FINAL) {\r\n r1 = true;\r\n r2 = true;\r\n finalQualificationHole = true;\r\n }\r\n\r\n players.forEach((player) => {\r\n if (view === DEFAULT_VIEW) {\r\n if (player[TEE_START_POSITION] && player[TEE_START_POSITION] !== '') {\r\n teeStartPosition = true;\r\n }\r\n\r\n if (player[QUALIFY_RESERVE_FLAG]) {\r\n qualifyReserveFlag = true;\r\n }\r\n\r\n if (player[QUALIFIED_STATUS]) {\r\n qualifiedStatus = true;\r\n }\r\n }\r\n });\r\n };\r\n\r\n const classNameProps = {\r\n view,\r\n r1,\r\n r2,\r\n qualifyReserveFlag,\r\n teeStartPosition\r\n };\r\n\r\n const renderRoundField = (title, player, roundId) => {\r\n if (title) {\r\n return (\r\n \r\n {roundId === ROUND_ONE && renderSortableField(cellTypes.R1, sortingHandler)}\r\n {roundId === ROUND_TWO && renderSortableField(cellTypes.R2, sortingHandler)}\r\n \r\n );\r\n }\r\n\r\n const playerRound = getPlayerRoundById(player, roundId);\r\n let contentText = '-';\r\n let totalColorState = '';\r\n\r\n if (playerRound && playerRound.total) {\r\n contentText = playerRound.total;\r\n }\r\n\r\n if (playerRound && playerRound.total && playerRound.parSum) {\r\n totalColorState = renderRoundColorState(playerRound.total, playerRound.parSum);\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {contentText !== '-' ? contentText : `${getPlayerFormattedTeeTimeByRound(player, roundId)} ${renderStartHoleByRoundId(player, roundId)}`}\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const renderSortableField = (type, sortingHandler, inOutTotal) => {\r\n return (\r\n \r\n );\r\n };\r\n\r\n const renderField = (field, title, player) => {\r\n field = field || '';\r\n title = title || false;\r\n const playerRound = getPlayerRoundById(player, props.selectedRoundId);\r\n const roundPars = getRoundParsById(props.location.roundPars, props.selectedRoundId);\r\n\r\n if (view === DEFAULT_VIEW) {\r\n if (field === CLUB_NAME) {\r\n return clubNameView(title, player);\r\n }\r\n\r\n if (field === TOTAL) {\r\n return totalViewField(title, player);\r\n }\r\n\r\n if (qualifyReserveFlag && field === QUALIFY_RESERVE_FLAG && !r1) {\r\n return qualifiedReserveFlagView(title, player);\r\n }\r\n\r\n if (qualifiedStatus && field === QUALIFIED_STATUS) {\r\n return qualifiedStatusView(title, player);\r\n }\r\n\r\n if (teeStartPosition && field === TEE_START_POSITION && !r1) {\r\n return teeStartPositionView(title, player);\r\n }\r\n\r\n if (finalQualificationHole && field === FQ_HOLE) {\r\n return fqHoleView(title, player);\r\n }\r\n\r\n if (!finalQualificationHole && field === RQ_HOLE) {\r\n return rqHoleView(title, player);\r\n }\r\n\r\n if (r1 && field === R1) {\r\n return renderRoundField(title, player, ROUND_ONE);\r\n }\r\n\r\n if (r2 && field === R2) {\r\n return renderRoundField(title, player, ROUND_TWO);\r\n }\r\n }\r\n\r\n if (view === HOLES_VIEW) {\r\n if (field === IN) {\r\n if (title) {\r\n return (\r\n \r\n {props.selectedRoundId === ROUND_ONE && renderSortableField(cellTypes.R1_IN, sortingHandler, roundPars && roundPars.inTotal)}\r\n {props.selectedRoundId === ROUND_TWO && renderSortableField(cellTypes.R2_IN, sortingHandler, roundPars && roundPars.inTotal)}\r\n \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n
    {playerRound && playerRound.in}
    \r\n
    \r\n );\r\n }\r\n\r\n if (field === SCORE) {\r\n if (title) {\r\n return (\r\n \r\n {props.selectedRoundId === ROUND_ONE && renderSortableField(cellTypes.R1_SCORE, sortingHandler, roundPars && roundPars.parSum)}\r\n {props.selectedRoundId === ROUND_TWO && renderSortableField(cellTypes.R2_SCORE, sortingHandler, roundPars && roundPars.parSum)}\r\n \r\n );\r\n }\r\n return (\r\n
    \r\n
    {playerRound && playerRound.total}
    \r\n
    \r\n );\r\n }\r\n\r\n if (field === TODAY) {\r\n if (title) {\r\n return (\r\n \r\n {props.selectedRoundId === ROUND_ONE && renderSortableField(cellTypes.R1_TO_PAR, sortingHandler)}\r\n {props.selectedRoundId === ROUND_TWO && renderSortableField(cellTypes.R2_TO_PAR, sortingHandler)}\r\n \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n {renderRoundToPar(playerRound.roundToPar)}\r\n
    \r\n
    \r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n\r\n const createHolesField = () => {\r\n if (view === HOLES_VIEW) {\r\n const roundPars = getRoundParsById(props.location.roundPars, props.selectedRoundId);\r\n\r\n if (!roundPars || !Array.isArray(roundPars.holePars)) return null;\r\n\r\n return roundPars.holePars.map((hole, index) => {\r\n return (\r\n \r\n {\r\n index === 9 && (\r\n \r\n {props.selectedRoundId === ROUND_ONE && renderSortableField(cellTypes.R1_OUT, sortingHandler, roundPars && roundPars.outTotal)}\r\n {props.selectedRoundId === ROUND_TWO && renderSortableField(cellTypes.R2_OUT, sortingHandler, roundPars && roundPars.outTotal)}\r\n \r\n )\r\n }\r\n \r\n
    \r\n
    {hole.holeNo}
    \r\n
    {hole.par ? hole.par : '-'}
    \r\n
    \r\n \r\n
    \r\n );\r\n });\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const getScoreByItemHole = (hole) => {\r\n return hole.score || '-';\r\n };\r\n\r\n const renderPlayerPar = (player) => {\r\n if (view === HOLES_VIEW) {\r\n const playerRound = getPlayerRoundById(player, props.selectedRoundId);\r\n\r\n //TODO: not stable, should go through locations round pars\r\n if (!playerRound || !Array.isArray(playerRound.holes)) return null;\r\n\r\n return playerRound.holes.map((hole, index) => {\r\n return (\r\n \r\n {\r\n index === 9 && (\r\n \r\n
    {playerRound.out}
    \r\n \r\n )\r\n }\r\n \r\n {getScoreByItemHole(hole)}\r\n \r\n
    \r\n );\r\n });\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const onScrollLeftElement = (event) => {\r\n const scrollLeft = event.target.scrollLeft;\r\n const scrollWidth = event.target.scrollWidth;\r\n const offsetWidth = event.target.offsetWidth;\r\n\r\n if (scrollLeft === scrollWidth - offsetWidth) {\r\n arrowRightRef.current.classList.add('is-animation');\r\n tableWrapper.current.classList.add('is-animation');\r\n } else if (scrollLeft === 0) {\r\n arrowLeftRef.current.classList.remove('is-animation');\r\n } else if (scrollLeft > lastScroll) {\r\n arrowLeftRef.current.classList.add('is-animation');\r\n } else if (scrollLeft < lastScroll) {\r\n arrowRightRef.current.classList.remove('is-animation');\r\n tableWrapper.current.classList.remove('is-animation');\r\n }\r\n\r\n lastScroll = event.target.scrollLeft;\r\n };\r\n\r\n initState();\r\n\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n {renderSortableField(cellTypes.POSITION, sortingHandler)}\r\n {renderSortableField(cellTypes.NATIONALITY, sortingHandler)}\r\n {renderSortableField(cellTypes.PLAYER, sortingHandler)}\r\n\r\n {renderField(QUALIFY_RESERVE_FLAG, true)}\r\n {renderField(CLUB_NAME, true)}\r\n {renderField(QUALIFIED_STATUS, true)}\r\n {renderField(TEE_START_POSITION, true)}\r\n\r\n {renderSortableField(cellTypes.PAR, sortingHandler)}\r\n {createHolesField()}\r\n {view === DEFAULT_VIEW && finalQualificationHole && renderSortableField(cellTypes.HOLE, sortingHandler)}\r\n {r1 && renderSortableField(cellTypes.R1, sortingHandler)}\r\n {r2 && renderSortableField(cellTypes.R2, sortingHandler)}\r\n {view === DEFAULT_VIEW && renderSortableField(cellTypes.TOTAL, sortingHandler)}\r\n {view === DEFAULT_VIEW && !finalQualificationHole && renderSortableField(cellTypes.HOLE, sortingHandler)}\r\n {renderField(IN, true)}\r\n {renderField(SCORE, true)}\r\n {renderField(TODAY, true)}\r\n
    \r\n
    \r\n {\r\n players.map((player) => {\r\n const playerRound = getPlayerRoundById(player, props.selectedRoundId);\r\n const isFavorite = favoritePlayerService.isFavourite(player.entryId);\r\n\r\n if (!playerRound) return null;\r\n return ();\r\n })\r\n }\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nQualLeaderboardTable.propTypes = {\r\n options: PropTypes.object,\r\n location: PropTypes.object,\r\n selectedRoundId: PropTypes.string,\r\n view: PropTypes.string.isRequired\r\n};\r\n\r\nexport default QualLeaderboardTable;\r\n","import React from 'react';\r\nimport { renderTotalColorState } from '../actions/render-color-state';\r\nimport { ROUND_ONE, TENTH_HOLE } from '../qual-leaderboard-const';\r\nimport { getPlayerFormattedTeeTimeByRound, renderQualifiedStatus } from './roundHelper';\r\n\r\nexport const clubNameView = (title, player) => {\r\n if (title) {\r\n return (\r\n \r\n
    club/attachment
    \r\n
    attachment
    \r\n \r\n );\r\n }\r\n return (\r\n
    \r\n
    {player.clubName}
    \r\n
    \r\n );\r\n};\r\n\r\nexport const totalViewField = (title, player) => {\r\n if (title) {\r\n return (\r\n \r\n
    score
    \r\n \r\n );\r\n }\r\n\r\n let totalColorState = '';\r\n\r\n if (player.total && player.rounds[0] && player.rounds[1]) {\r\n totalColorState = renderTotalColorState(player.total, player.rounds[0].parSum, player.rounds[1].parSum);\r\n }\r\n\r\n return (\r\n
    \r\n
    {player.total ? player.total : '-'}
    \r\n
    \r\n );\r\n};\r\n\r\n\r\nexport const qualifiedReserveFlagView = (title, player) => {\r\n if (title) {\r\n return (\r\n \r\n
    \r\n \r\n );\r\n }\r\n return (\r\n
    \r\n
    {player.qualifyReserveFlag}
    \r\n
    \r\n );\r\n};\r\n\r\nexport const qualifiedStatusView = (title, player) => {\r\n if (title) {\r\n return (\r\n \r\n
    \r\n \r\n );\r\n }\r\n return (\r\n
    \r\n
    {renderQualifiedStatus(player)}
    \r\n
    \r\n );\r\n};\r\n\r\nexport const teeStartPositionView = (title, player) => {\r\n if (title) {\r\n return (\r\n \r\n
    \r\n \r\n );\r\n }\r\n return (\r\n
    \r\n
    {player.teeStartPosition}
    \r\n
    \r\n );\r\n};\r\n\r\nexport const fqHoleView = (title, player) => {\r\n if (title) {\r\n return (\r\n \r\n
    holes
    \r\n \r\n );\r\n }\r\n return (\r\n
    \r\n
    {player.hole}
    \r\n
    \r\n );\r\n};\r\n\r\nconst showFormattedTeeTime = (player) => {\r\n if (player && player.isPlaying) {\r\n const teeTime = getPlayerFormattedTeeTimeByRound(player, ROUND_ONE);\r\n\r\n return teeTime + ` ${player.startingHole === TENTH_HOLE ? '*' : ''}`;\r\n }\r\n\r\n return '-';\r\n};\r\n\r\nexport const rqHoleView = (title, player) => {\r\n if (title) {\r\n return (\r\n \r\n
    holes
    \r\n \r\n );\r\n }\r\n\r\n if (player.hole && player.hole !== '-' && player.hole !== '-*') {\r\n return (\r\n
    \r\n
    {player.hole}
    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {showFormattedTeeTime(player)}\r\n
    \r\n
    \r\n );\r\n};\r\n","import React from 'react';\r\n\r\nconst QualLeaderboardArticle = (props) => {\r\n if (!props.location || !props.location.competitionStatus) return null;\r\n\r\n return (\r\n

    \r\n );\r\n};\r\n\r\nexport default QualLeaderboardArticle;\r\n","import get from 'lodash/get';\r\nimport has from 'lodash/has';\r\nimport { cellTypes } from './enums';\r\n\r\nconst sortAsc = (players, property, checkRule) => {\r\n return [...players].sort((a, b) => {\r\n if (property !== 'position.value') {\r\n const compareCutResult = compareByCut(a, b);\r\n\r\n if (compareCutResult !== 0) {\r\n return compareCutResult;\r\n }\r\n }\r\n\r\n let aVal = '';\r\n let bVal = '';\r\n if (has(a, property)) {\r\n const aPropValue = get(a, property);\r\n if (checkRule !== null && checkRule !== undefined) {\r\n aVal = checkRule(aPropValue);\r\n } else {\r\n aVal = parseInt(aPropValue, 10);\r\n }\r\n }\r\n if (has(b, property)) {\r\n const bPropValue = get(b, property);\r\n if (checkRule !== null && checkRule !== undefined) {\r\n bVal = checkRule(bPropValue);\r\n } else {\r\n bVal = parseInt(bPropValue, 10);\r\n }\r\n }\r\n\r\n return aVal - bVal;\r\n });\r\n};\r\n\r\nconst sortDesc = (players, property, checkRule) => {\r\n return [...players].sort((a, b) => {\r\n if (property !== 'position.value') {\r\n const compareCutResult = compareByCut(a, b);\r\n\r\n if (compareCutResult !== 0) {\r\n return compareCutResult;\r\n }\r\n }\r\n\r\n let aVal = '';\r\n let bVal = '';\r\n if (has(a, property)) {\r\n const aPropValue = get(a, property);\r\n if (checkRule !== null && checkRule !== undefined) {\r\n aVal = checkRule(aPropValue);\r\n } else {\r\n aVal = parseInt(aPropValue, 10);\r\n }\r\n }\r\n if (has(b, property)) {\r\n const bPropValue = get(b, property);\r\n if (checkRule !== null && checkRule !== undefined) {\r\n bVal = checkRule(bPropValue);\r\n } else {\r\n bVal = parseInt(bPropValue, 10);\r\n }\r\n }\r\n\r\n return bVal - aVal;\r\n });\r\n};\r\n\r\nexport const sortAscAZ = (players, property) => {\r\n return [...players].sort((a, b) => {\r\n if (property !== 'position.value') {\r\n const compareCutResult = compareByCut(a, b);\r\n\r\n if (compareCutResult !== 0) {\r\n return compareCutResult;\r\n }\r\n }\r\n\r\n let aVal = 'z';\r\n let bVal = 'z';\r\n if (has(a, property)) {\r\n aVal = get(a, property);\r\n }\r\n if (has(b, property)) {\r\n bVal = get(b, property);\r\n }\r\n return aVal.toLowerCase() > bVal.toLowerCase() ? 1 : -1;\r\n });\r\n};\r\n\r\nconst sortDescAZ = (players, property) => {\r\n return [...players].sort((a, b) => {\r\n if (property !== 'position.value') {\r\n const compareCutResult = compareByCut(a, b);\r\n\r\n if (compareCutResult !== 0) {\r\n return compareCutResult;\r\n }\r\n }\r\n\r\n let aVal = '';\r\n let bVal = '';\r\n if (has(a, property)) {\r\n aVal = get(a, property);\r\n }\r\n if (has(b, property)) {\r\n bVal = get(b, property);\r\n }\r\n return bVal.toLowerCase() > aVal.toLowerCase() ? 1 : -1;\r\n });\r\n};\r\n\r\nfunction compareByCut(playerA, playerB) {\r\n const cutProperty = 'position.text';\r\n let aCutVal = 'z';\r\n let bCutVal = 'z';\r\n\r\n if (has(playerA, cutProperty)) {\r\n aCutVal = get(playerA, cutProperty);\r\n }\r\n if (has(playerB, cutProperty)) {\r\n bCutVal = get(playerB, cutProperty);\r\n }\r\n\r\n if (aCutVal == null || bCutVal == null) {\r\n return 0;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'unknown');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'rtd');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'mcdnp');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'dqc');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'wdc');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'dns');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'dq');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'wd');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'mc');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'nr');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'ns');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n statusCompare = compareByStatus(aCutVal, bCutVal, 'hcp');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n let statusCompare = compareByStatus(aCutVal, bCutVal, 'cut');\r\n if (statusCompare !== 0) {\r\n return statusCompare;\r\n }\r\n\r\n return 0;\r\n}\r\n\r\nfunction compareByStatus(playerAStatus, playerBStatus, status) {\r\n if (playerAStatus.toLowerCase() === status && playerBStatus.toLowerCase() !== status) {\r\n return 1;\r\n }\r\n\r\n if (playerAStatus.toLowerCase() !== status && playerBStatus.toLowerCase() === status) {\r\n return -1;\r\n }\r\n\r\n return 0;\r\n}\r\n\r\nexport const qualSortingStrategies = {\r\n [cellTypes.POSITION]: {\r\n filteringFunc: (players, isAsc) => {\r\n return isAsc ?\r\n sortAsc(players, 'position.value') :\r\n sortDesc(players, 'position.value');\r\n }\r\n },\r\n [cellTypes.PLAYER]: {\r\n filteringFunc: (players, isAsc) => {\r\n return isAsc ?\r\n sortAscAZ(players, 'lastName') :\r\n sortDescAZ(players, 'lastName');\r\n }\r\n },\r\n [cellTypes.NATIONALITY]: {\r\n filteringFunc: (players, isAsc) => {\r\n return isAsc ?\r\n sortAscAZ(players, 'nationality') :\r\n sortDescAZ(players, 'nationality');\r\n }\r\n },\r\n [cellTypes.PAR]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n // make toParworse to move in the end\r\n if (!val || val.toUpperCase() === 'WD') return 1000;\r\n\r\n return val === 'E' || val.toLowerCase() === 'par' ? 0 : parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'toPar', checkRule) :\r\n sortDesc(players, 'toPar', checkRule);\r\n }\r\n },\r\n [cellTypes.HOLE]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') {\r\n return 0;\r\n }\r\n\r\n return val === 'F' ? 19 : parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'hole', checkRule) :\r\n sortDesc(players, 'hole', checkRule);\r\n }\r\n },\r\n [cellTypes.TOTAL]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 1000;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'total', checkRule) :\r\n sortDesc(players, 'total', checkRule);\r\n }\r\n },\r\n [cellTypes.TODAY]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n // make player par worse to move in the end\r\n if (!val || val === '-') return 1000;\r\n\r\n return val === 'E' || val.toLowerCase() === 'par' ? 0 : parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'today', checkRule) :\r\n sortDesc(players, 'today', checkRule);\r\n }\r\n },\r\n [cellTypes.R1]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[0].total', checkRule) :\r\n sortDesc(players, 'rounds[0].total', checkRule);\r\n }\r\n },\r\n [cellTypes.R1_SCORE]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[0].total', checkRule) :\r\n sortDesc(players, 'rounds[0].total', checkRule);\r\n }\r\n },\r\n [cellTypes.R1_OUT]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[0].out', checkRule) :\r\n sortDesc(players, 'rounds[0].out', checkRule);\r\n }\r\n },\r\n [cellTypes.R1_IN]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[0].in', checkRule) :\r\n sortDesc(players, 'rounds[0].in', checkRule);\r\n }\r\n },\r\n [cellTypes.R1_TO_PAR]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n // make toParworse to move in the end\r\n if (!val || val.toUpperCase() === 'WD') return 1000;\r\n\r\n return val === 'E' || val.toLowerCase() === 'par' ? 0 : parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[0].roundToPar', checkRule) :\r\n sortDesc(players, 'rounds[0].roundToPar', checkRule);\r\n }\r\n },\r\n [cellTypes.R2]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[1].total', checkRule) :\r\n sortDesc(players, 'rounds[1].total', checkRule);\r\n }\r\n },\r\n [cellTypes.R2_SCORE]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[1].total', checkRule) :\r\n sortDesc(players, 'rounds[1].total', checkRule);\r\n }\r\n },\r\n [cellTypes.R2_OUT]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[1].out', checkRule) :\r\n sortDesc(players, 'rounds[1].out', checkRule);\r\n }\r\n },\r\n [cellTypes.R2_IN]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n if (!val || val === '-') return 0;\r\n\r\n return parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[1].in', checkRule) :\r\n sortDesc(players, 'rounds[1].in', checkRule);\r\n }\r\n },\r\n [cellTypes.R2_TO_PAR]: {\r\n filteringFunc: (players, isAsc) => {\r\n const checkRule = (val) => {\r\n // make toParworse to move in the end\r\n if (!val || val.toUpperCase() === 'WD') return 1000;\r\n\r\n return val === 'E' || val.toLowerCase() === 'par' ? 0 : parseInt(val, 10);\r\n };\r\n\r\n return isAsc ?\r\n sortAsc(players, 'rounds[1].roundToPar', checkRule) :\r\n sortDesc(players, 'rounds[1].roundToPar', checkRule);\r\n }\r\n },\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { SpriteSvg } from 'project/sprite-svg';\r\nimport { LiveEventSelect } from 'components/live-event-select';\r\nimport { LazyImage } from 'project/lazy-image';\r\nimport { FLAG_IMAGE_PATH } from 'general/js/constants';\r\nimport {\r\n EVENT_FAVOURITE_PLAYER_SERVICE_ADD,\r\n EVENT_FAVOURITE_PLAYER_SERVICE_REMOVE\r\n} from 'general/js/services/favorite-player-services';\r\nimport { FavoriteButton } from 'components/favorite-button';\r\nimport eventBus from 'general/js/event-bus';\r\nimport { favoritePlayerService } from 'general/js/services';\r\nimport gtm from 'general/js/gtm';\r\nimport QualLeaderboardScoringInfo from './qual-leaderboard-scoring-info';\r\nimport QualLeaderboardTable from './qual-leaderboard-table';\r\nimport QualLeaderboardArticle from './qual-leaderboard-article';\r\nimport { cellTypes } from './enums';\r\nimport { qualSortingStrategies } from './qualSortingStrategies';\r\nimport {\r\n DEFAULT_VIEW,\r\n HOLES_VIEW\r\n} from './qual-leaderboard-const';\r\n\r\nclass QualLeaderboardContainer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const currentRound = props.location.currentRound && props.location.currentRound.toString();\r\n this.defaultRoundId = currentRound || '1';\r\n\r\n this.state = {\r\n view: DEFAULT_VIEW,\r\n round: this.defaultRoundId,\r\n scoringInfoClassName: false,\r\n sortingType: cellTypes.POSITION,\r\n isSortingAscending: true,\r\n favoritePlayerList: favoritePlayerService.getAll(),\r\n applyFavourite: false,\r\n };\r\n }\r\n\r\n\r\n componentDidMount() {\r\n eventBus.addListener(EVENT_FAVOURITE_PLAYER_SERVICE_ADD, this.renderFavoritePlayers);\r\n eventBus.addListener(EVENT_FAVOURITE_PLAYER_SERVICE_REMOVE, this.renderFavoritePlayers);\r\n }\r\n\r\n componentWillUnmount() {\r\n eventBus.removeListener(EVENT_FAVOURITE_PLAYER_SERVICE_ADD, this.renderFavoritePlayers);\r\n eventBus.removeListener(EVENT_FAVOURITE_PLAYER_SERVICE_REMOVE, this.renderFavoritePlayers);\r\n }\r\n\r\n\r\n renderFavoritePlayers = () => {\r\n this.setState({\r\n favoritePlayerList: favoritePlayerService.getAll()\r\n });\r\n }\r\n\r\n changeView = () => {\r\n if (this.state.view === DEFAULT_VIEW) {\r\n this.setState({ view: HOLES_VIEW });\r\n } else {\r\n this.setState({ view: DEFAULT_VIEW, round: this.defaultRoundId });\r\n }\r\n }\r\n\r\n renderClassName = () => {\r\n if (this.state.view === HOLES_VIEW) {\r\n return 'is-holes-view';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n getChoices = () => {\r\n const roundChoices = [\r\n { label: 'Round 1', value: '1', selected: false },\r\n { label: 'Round 2', value: '2', selected: false }\r\n ];\r\n\r\n roundChoices.forEach((choice) => {\r\n choice.selected = choice.value === this.state.round.toString();\r\n });\r\n\r\n return roundChoices;\r\n }\r\n\r\n handleChangeSelect = (value) => {\r\n this.setState({ round: value });\r\n }\r\n\r\n renderSelectControl = () => {\r\n if (this.state.view === HOLES_VIEW && this.props.location.rndAvailable === 2) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n return null;\r\n };\r\n\r\n showScoringInfoContent = () => {\r\n this.setState({ scoringInfoClassName: !this.state.scoringInfoClassName });\r\n };\r\n\r\n sortStateInit = (playersData) => {\r\n const currentStrategy = qualSortingStrategies[this.state.sortingType];\r\n return currentStrategy.filteringFunc(playersData, this.state.isSortingAscending);\r\n };\r\n\r\n sortingHandler = (type) => {\r\n let isSortingAscending = this.state.isSortingAscending;\r\n\r\n if (this.state.sortingType === type) {\r\n isSortingAscending = !isSortingAscending;\r\n } else {\r\n isSortingAscending = true;\r\n }\r\n\r\n this.setState({\r\n sortingType: type,\r\n isSortingAscending\r\n });\r\n };\r\n\r\n toggleFilterByFavourite = () => {\r\n if (!this.state.applyFavourite) {\r\n gtm.push('Leaderboard', 'Favourites', 'Select Favourites');\r\n }\r\n this.setState({ applyFavourite: !this.state.applyFavourite });\r\n }\r\n\r\n filterByFavorite = (playersData) => {\r\n return playersData.filter((player) =>\r\n favoritePlayerService.isFavourite(player.entryId.toString()));\r\n }\r\n\r\n processData(players) {\r\n const { applyFavourite } = this.state;\r\n let processedPlayers = players;\r\n\r\n if (applyFavourite) {\r\n processedPlayers = this.filterByFavorite(processedPlayers);\r\n }\r\n\r\n processedPlayers = this.sortStateInit(processedPlayers);\r\n\r\n return processedPlayers;\r\n }\r\n\r\n render() {\r\n const players = this.processData(this.props.location.players);\r\n\r\n return (\r\n \r\n {\r\n this.props.location.competitionStatus &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n {this.renderSelectControl()}\r\n
    \r\n {\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    hole by hole
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n this.sortingHandler(type)}\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nQualLeaderboardContainer.propTypes = {\r\n options: PropTypes.object,\r\n location: PropTypes.object,\r\n};\r\n\r\nexport default QualLeaderboardContainer;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport ScoringLoader from 'general/js/loaders/scoring-loader';\r\nimport { BlockPlaceholder } from 'components/block-placeholder';\r\nimport { BlockSpinner } from 'components/block-spinner';\r\nimport { bemClasses, LivePreMessage } from 'components/live-pre-message';\r\nimport QualLeaderboardContainer from './qual-leaderboard-container';\r\n\r\nclass QualLeaderboardLayout extends React.Component {\r\n componentDidMount() {\r\n ScoringLoader.subscribe(`summary${this.props.options.type}`);\r\n }\r\n\r\n componentWillUnmount() {\r\n ScoringLoader.unsubscribe(`summary${this.props.options.type}`);\r\n }\r\n\r\n getLocationById(id) {\r\n const { scoringSummary } = this.props;\r\n\r\n if (!scoringSummary || !Array.isArray(scoringSummary.locations)) return null;\r\n\r\n const location = scoringSummary.locations.find((item) =>\r\n item.locationId === id);\r\n\r\n return location || null;\r\n }\r\n\r\n\r\n render() {\r\n const { scoringSummary } = this.props;\r\n\r\n if (scoringSummary === undefined) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const location = this.getLocationById(this.props.options.locationId);\r\n\r\n if (!location || !Array.isArray(location.players)) {\r\n return ;\r\n }\r\n\r\n return ;\r\n }\r\n}\r\n\r\nQualLeaderboardLayout.propTypes = {\r\n options: PropTypes.object\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => ({\r\n scoringSummary: state.scoring[`summary${ownProps.options.type}`]\r\n});\r\n\r\nconst QualLeaderboardLayoutWrapper = connect(\r\n mapStateToProps\r\n)(QualLeaderboardLayout);\r\n\r\nexport default QualLeaderboardLayoutWrapper;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport store from 'general/js/store';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport QualLeaderboardLayout from './qual-leaderboard-layout';\r\n\r\nclass QualLeaderboardComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['container'];\r\n }\r\n\r\n init() {\r\n this.render();\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.refs.container);\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.refs.container\r\n );\r\n }\r\n}\r\n\r\nexport default QualLeaderboardComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport QualLeaderboardComponent from './js/qual-leaderboard.component';\r\n\r\nComponentsFactory.getInstance().define('qual-leaderboard', QualLeaderboardComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { SchemaOrg } from 'project/schema-org';\r\n\r\nexport default class QualifiedPlayerCard extends React.PureComponent {\r\n getLinkAriaLabel() {\r\n return `${this.props.item.firstName} ${this.props.item.lastName}`;\r\n }\r\n\r\n render() {\r\n const item = this.props.item;\r\n const subtitleModCss = item.lastName.length > 8 ? 'qualified-player-card__subtitle--small' : '';\r\n\r\n return (\r\n \r\n
    \r\n {item.championOfTheYears.length > 0 ?\r\n
    \r\n \"the\r\n
      \r\n {item.championOfTheYears.map((year) =>\r\n
    • {year}
    • )}\r\n
    \r\n
    : null}\r\n {\r\n item.flag &&\r\n \"\"/\r\n }\r\n
    \r\n
    \r\n {item.playerImageSrcSet ?\r\n \"\"/ :\r\n null}\r\n
    \r\n
    \r\n {!item.isPlaying ? (\r\n
    \r\n Not Playing - \r\n {item.missingReason}\r\n \r\n
    \r\n ) : null}\r\n

    \r\n {item.firstName}\r\n {item.lastName} {item.isAmateur ? (a) : null} \r\n

    \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nQualifiedPlayerCard.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n bg: PropTypes.number\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport QualifiedPlayerCard from './QualifiedPlayerCard';\r\n\r\nexport default function QualifiedPlayerCardItem({ index, ...rest }) {\r\n function getBgIndex() {\r\n return ((index) % 3) + 1;\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nQualifiedPlayerCardItem.propTypes = {\r\n index: PropTypes.number.isRequired\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport QualifiedPlayerCardItem from '../../qualified-player-card/js/QualifiedPlayerCardItem';\r\n\r\nexport default function QualifiedGolfersPlayersList({ items }) {\r\n return (\r\n
      \r\n {items.map((item, i) => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n );\r\n}\r\n\r\nQualifiedGolfersPlayersList.propTypes = {\r\n items: PropTypes.array.isRequired,\r\n};\r\n","/**\r\n * Analogue C# string format\r\n * interpolate('Lorem {0} dolor {1} amet', 'ipsum', 'sit')\r\n * @return {String} compiled template\r\n */\r\nexport function interpolate(...args) {\r\n const [template, ...rest] = args;\r\n return template.replace(/{(\\d+)}/g, (match, number) => (typeof rest[number] !== 'undefined' ?\r\n rest[number] :\r\n match));\r\n}\r\n\r\nexport function interpolateWithPlural(single, plural, number) {\r\n if (number === 0 || number === 1) {\r\n return interpolate(single, number);\r\n }\r\n return interpolate(plural, number);\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n collapse,\r\n expand,\r\n setContentToState\r\n} from 'Feature/ContentComponents/code/assets/componets/accordion/js/accordion.component';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport app from '../../../general/js/app';\r\nimport QualifiedGolfersPlayersList from './QualifiedGolfersPlayersList';\r\nimport { interpolateWithPlural } from '../../../general/js/string-helpers';\r\n\r\nclass PreviousQualificationEvent extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isGolfersShown: false\r\n };\r\n this.rootRef = React.createRef();\r\n this.restPlayersRef = this.restPlayersRef.bind(this);\r\n this.onVisibilityTriggerClick = this.onVisibilityTriggerClick.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n }\r\n\r\n onVisibilityTriggerClick() {\r\n const isGolfersShown = !this.state.isGolfersShown;\r\n this.handleRestPlayersVisibility(isGolfersShown);\r\n this.setState({ isGolfersShown });\r\n }\r\n\r\n handleRestPlayersVisibility(isVisible) {\r\n if (isVisible) {\r\n expand(this.restPlayersElement);\r\n } else {\r\n collapse(this.restPlayersElement);\r\n }\r\n }\r\n\r\n restPlayersRef(el) {\r\n this.restPlayersElement = el;\r\n setContentToState(this.restPlayersElement, this.state.isGolfersShown);\r\n }\r\n\r\n getPlayersToShow() {\r\n if (app.isDesktopWide) {\r\n return 5;\r\n } if (app.isDesktop) {\r\n return 4;\r\n }\r\n return 3;\r\n }\r\n\r\n getPreviewPlayers() {\r\n return this.props.event.golfers.slice(0, this.getPlayersToShow());\r\n }\r\n\r\n getRestPlayers() {\r\n return this.props.event.golfers.slice(this.getPlayersToShow());\r\n }\r\n\r\n render() {\r\n const previewPlayers = this.getPreviewPlayers();\r\n const restPlayers = this.getRestPlayers();\r\n\r\n const event = this.props.event;\r\n\r\n return (\r\n
    \r\n
    \r\n {event.logoImageSrcSet ?\r\n \"\"/ :\r\n null}\r\n
    \r\n
    \r\n
    \r\n {event.title}\r\n
    \r\n
    \r\n
    \r\n {this.getPlayersQualifiedCaption()}\r\n
    \r\n {\r\n event.infoLink &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n {restPlayers.length > 0 ? (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n getTriggerButtonCaption(restPlayersCount) {\r\n if (this.state.isGolfersShown) {\r\n return 'Hide';\r\n }\r\n const { single, plural } = this.props.translations.showPlayers;\r\n return interpolateWithPlural(single, plural, restPlayersCount);\r\n }\r\n\r\n getPlayersQualifiedCaption() {\r\n const { single, plural } = this.props.translations.qualifiedPlayers;\r\n return interpolateWithPlural(single, plural, this.props.event.golfers.length);\r\n }\r\n}\r\n\r\nPreviousQualificationEvent.propTypes = {\r\n translations: PropTypes.object.isRequired,\r\n event: PropTypes.object.isRequired,\r\n deviceType: PropTypes.string.isRequired\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n const { deviceType, translations } = state;\r\n return { deviceType, translations };\r\n};\r\n\r\nexport default connect(mapStateToProps)(PreviousQualificationEvent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport PreviousQualificationEvent from './PreviousQualificationEvent';\r\n\r\nfunction PreviousQualificationEvents({ events }) {\r\n return (\r\n
    \r\n {events.map((event) => (\r\n
    \r\n \r\n
    \r\n ))}\r\n
    \r\n );\r\n}\r\n\r\nPreviousQualificationEvents.propTypes = {\r\n events: PropTypes.array.isRequired,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n const { events } = state;\r\n return { events };\r\n};\r\n\r\nexport default connect(mapStateToProps)(PreviousQualificationEvents);\r\n","import types from './types.js';\r\n\r\nconst showPreviousEvents = () => ({\r\n type: types.SHOW_PREVIOUS_EVENTS,\r\n});\r\n\r\nconst changeDeviceType = (deviceType) => ({\r\n type: types.CHANGE_DEVICE_TYPE,\r\n deviceType\r\n});\r\n\r\nexport default {\r\n showPreviousEvents,\r\n changeDeviceType\r\n};\r\n","const SHOW_PREVIOUS_EVENTS = 'SHOW_PREVIOUS_EVENTS';\r\nconst CHANGE_DEVICE_TYPE = 'CHANGE_DEVICE_TYPE';\r\n\r\nexport default {\r\n SHOW_PREVIOUS_EVENTS,\r\n CHANGE_DEVICE_TYPE,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport creators from './actions';\r\nimport QualifiedPlayerCardItem from '../../qualified-player-card/js/QualifiedPlayerCardItem';\r\nimport app from '../../../general/js/app';\r\n\r\nclass QualifiedGolfersPreview extends React.Component {\r\n getPlayersToShow() {\r\n if (app.isDesktopWide) {\r\n return 5;\r\n } if (app.isDesktop) {\r\n return 4;\r\n } if (app.isTablet) {\r\n return 3;\r\n }\r\n\r\n return 2;\r\n }\r\n\r\n getPreviewPlayers() {\r\n return this.props.previewPlayers.slice(0, this.getPlayersToShow());\r\n }\r\n\r\n\r\n render() {\r\n const previewPlayers = this.getPreviewPlayers();\r\n const morePlayersCount = this.props.totalPlayersCount - previewPlayers.length;\r\n\r\n return (\r\n
    \r\n
    \r\n {this.props.translations.title}\r\n
    \r\n
    \r\n
    \r\n
      \r\n {previewPlayers.map((item, i) => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n
    \r\n {morePlayersCount > 0 ? (\r\n \r\n + {morePlayersCount}\r\n \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nQualifiedGolfersPreview.propTypes = {\r\n deviceType: PropTypes.string.isRequired,\r\n totalPlayersCount: PropTypes.number.isRequired,\r\n translations: PropTypes.object.isRequired,\r\n previewPlayers: PropTypes.array.isRequired,\r\n onShowEventsClick: PropTypes.func.isRequired,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n const {\r\n translations, previewPlayers, totalPlayersCount, deviceType\r\n } = state;\r\n return {\r\n translations, previewPlayers, totalPlayersCount, deviceType\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n onShowEventsClick: () => {\r\n dispatch(creators.showPreviousEvents());\r\n },\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(QualifiedGolfersPreview);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport PreviousQualificationEvents from './PreviousQualificationEvents';\r\nimport QualifiedGolfersPreview from './QualifiedGolfersPreview';\r\n\r\nfunction QualifiedGolfers({ isEventsShown }) {\r\n return (\r\n
    \r\n {isEventsShown ? : }\r\n
    \r\n );\r\n}\r\n\r\nQualifiedGolfers.propTypes = {\r\n isEventsShown: PropTypes.bool.isRequired,\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n const { isEventsShown } = state;\r\n return { isEventsShown };\r\n};\r\n\r\nexport default connect(mapStateToProps)(QualifiedGolfers);\r\n","import types from './types';\r\nimport { DEVICE_TYPE_MOBILE } from '../../../general/js/app';\r\n\r\nconst INITIAL_STATE = {\r\n isEventsShown: false,\r\n deviceType: DEVICE_TYPE_MOBILE,\r\n previewPlayers: [],\r\n totalPlayersCount: 0,\r\n events: []\r\n};\r\n\r\nexport default (state = INITIAL_STATE, action) => {\r\n // initializing the state by margin default with preloaded state\r\n if (!state.hydrated) {\r\n state = { ...INITIAL_STATE, ...state, hydrated: true };\r\n }\r\n\r\n switch (action.type) {\r\n case types.SHOW_PREVIOUS_EVENTS: {\r\n return {\r\n ...state,\r\n isEventsShown: true\r\n };\r\n }\r\n case types.CHANGE_DEVICE_TYPE:\r\n return {\r\n ...state,\r\n deviceType: action.deviceType\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport { createStore } from 'redux';\r\nimport { Provider } from 'react-redux';\r\nimport QualifiedGolfers from './QualifiedGolfers';\r\nimport app, { EVENT_DEVICE_TYPE_CHANGED } from '../../../general/js/app';\r\nimport eventBus from '../../../general/js/event-bus';\r\nimport reducer from './reducer';\r\nimport creators from './actions';\r\n\r\nexport default class QualifiedGolfersComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n const {\r\n previewPlayers, totalPlayersCount, events, translations\r\n } = this.options;\r\n\r\n this.store = createStore(reducer, {\r\n previewPlayers,\r\n totalPlayersCount,\r\n events,\r\n translations,\r\n deviceType: app.deviceTypeByViewport,\r\n });\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.render();\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.onDeviceTypeChanged);\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.onDeviceTypeChanged);\r\n }\r\n\r\n onDeviceTypeChanged = (oldDeviceType, newDeviceType) => {\r\n this.store.dispatch(creators.changeDeviceType(newDeviceType));\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n \r\n , this.element);\r\n }\r\n}\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport QualifiedGolfersComponent from './js/qualified-golfers.component';\r\n\r\nComponentsFactory.getInstance().define('qualified-golfers', QualifiedGolfersComponent);\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport QualifiedPlayerCard from './QualifiedPlayerCard';\r\n\r\nexport default class QualifiedPlayerCardComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.item = this.options.item;\r\n this.bg = this.options.bg;\r\n this.init();\r\n }\r\n\r\n init() {\r\n ReactDOM.render(, this.element);\r\n }\r\n}\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport QualifiedPlayerCardComponent from './js/qualified-player-card.component';\r\n\r\nComponentsFactory.getInstance().define('qualified-player-card', QualifiedPlayerCardComponent);\r\n","import React from 'react';\r\nimport QualifiedPlayerCardItem from '../../qualified-player-card/js/QualifiedPlayerCardItem';\r\n\r\nexport default class QualifiedPlayersListingItem extends React.PureComponent {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport QualifiedPlayersListingItem from './QualifiedPlayersListingItem';\r\n\r\nexport default class QualifiedPlayersListingContent extends React.PureComponent {\r\n render() {\r\n const isEmpty = this.props.isInitialRequestFulfilled && this.props.items.length === 0;\r\n\r\n return (\r\n
    \r\n
    \r\n {!isEmpty > 0 ?\r\n
      \r\n {this.props.items.map((item, i) =>\r\n )}\r\n
    : (\r\n
    \r\n
    \r\n

    No results.

    \r\n

    Please try making your search a little wider

    \r\n
    \r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nQualifiedPlayersListingContent.propTypes = {\r\n items: PropTypes.array.isRequired,\r\n isInitialRequestFulfilled: PropTypes.bool.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport $ from 'jquery';\r\nimport 'devbridge-autocomplete';\r\nimport axios from 'axios';\r\nimport api from '../../../general/js/api';\r\n\r\nexport default class PredictiveSearch extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onSubmit = this.onSubmit.bind(this);\r\n this.onClearButtonClick = this.onClearButtonClick.bind(this);\r\n this.inputRef = this.inputRef.bind(this);\r\n this.formRef = this.formRef.bind(this);\r\n\r\n this.baseElement = null;\r\n this.inputElement = null;\r\n this.lastRequestCancel = null;\r\n this.predictiveSearchUrl = this.props.endpointUrl;\r\n this.maxSuggestionsCount = this.props.maxSuggestionsCount;\r\n this.moreSuggestionsAvailableClass = 'more-suggestions-available';\r\n }\r\n\r\n componentWillUnmount() {\r\n this.autocompleteInstance.dispose();\r\n }\r\n\r\n transformSuggestions(result) {\r\n return {\r\n suggestions: result.map((suggestion) => {\r\n const {\r\n text, searchType, ...rest\r\n } = suggestion;\r\n return {\r\n value: text,\r\n data: {\r\n type: searchType.toString(),\r\n ...rest,\r\n }\r\n };\r\n })\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.$inputElement = $(this.inputElement);\r\n\r\n this.autocompleteInstance = this.$inputElement.devbridgeAutocomplete({\r\n minChars: 3,\r\n deferRequestBy: 300,\r\n zIndex: 30,\r\n appendTo: this.baseElement,\r\n showNoSuggestionNotice: true,\r\n noSuggestionNotice: 'No results found!',\r\n triggerSelectOnValidInput: false,\r\n lookup: (query, done) => {\r\n this.spinnerElement.classList.add('is-loading');\r\n this.getSuggestions(query).then((data) => {\r\n if (document.activeElement === this.inputElement) {\r\n if (data.total > this.maxSuggestionsCount) {\r\n this.baseElement.classList.add(this.moreSuggestionsAvailableClass);\r\n } else {\r\n this.baseElement.classList.remove(this.moreSuggestionsAvailableClass);\r\n }\r\n done(this.transformSuggestions(data.result));\r\n }\r\n this.spinnerElement.classList.remove('is-loading');\r\n }, (error) => {\r\n // hide after error only when our request has been canceled\r\n if (!axios.isCancel(error)) {\r\n this.spinnerElement.classList.remove('is-loading');\r\n }\r\n });\r\n },\r\n /**\r\n * Build suggestion markup\r\n * Based on default library method\r\n *\r\n * @param suggestion\r\n * @param currentValue\r\n * @returns {string}\r\n */\r\n formatResult: (suggestion, currentValue) => {\r\n let highlightedText = suggestion.value;\r\n\r\n // Do not replace anything if the current value is empty\r\n if (currentValue) {\r\n const pattern = '(' + currentValue.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&') + ')';\r\n highlightedText = highlightedText.replace(new RegExp(pattern, 'gi'), '$1');\r\n }\r\n\r\n return this.props.renderSuggestion ?\r\n this.props.renderSuggestion(suggestion.value, suggestion.data.type, suggestion.data, highlightedText) :\r\n highlightedText;\r\n },\r\n onSelect:\r\n (suggestion) => {\r\n this.handlePredictiveSelect(suggestion);\r\n }\r\n }).devbridgeAutocomplete();\r\n this.autocompleteInstance.suggestionsContainer.setAttribute('max-suggestions-count', this.maxSuggestionsCount);\r\n }\r\n\r\n getSuggestions(query) {\r\n if (this.lastRequestCancel) {\r\n this.lastRequestCancel();\r\n this.lastRequestCancel = null;\r\n }\r\n const CancelToken = axios.CancelToken;\r\n const source = CancelToken.source();\r\n this.lastRequestCancel = source.cancel.bind(source);\r\n\r\n return api.get(this.predictiveSearchUrl, {\r\n params: { term: query },\r\n cancelToken: source.token\r\n }).then(\r\n ({ data }) => data,\r\n (error) => {\r\n if (!axios.isCancel(error)) {\r\n this.lastRequestCancel = null;\r\n }\r\n return Promise.reject(error);\r\n }\r\n );\r\n }\r\n\r\n formRef(el) {\r\n this.baseElement = el;\r\n }\r\n\r\n inputRef(el) {\r\n this.inputElement = el;\r\n if (this.props.inputRef) {\r\n this.props.inputRef(el);\r\n }\r\n }\r\n\r\n isFilledMode() {\r\n return this.props.query !== '' && this.props.isSubmitted && !this.props.isFocused;\r\n }\r\n\r\n renderInnerButton() {\r\n if (this.isFilledMode()) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const isFilledMode = this.isFilledMode();\r\n const isMinimized = this.props.isMinimized;\r\n const isExpanded = this.props.isExpanded && !isFilledMode;\r\n\r\n return (\r\n \r\n
    \r\n \r\n\r\n {/* additional input is a workaround to stop form submit after clicking on button[type=\"button\"] */}\r\n \r\n
    { this.spinnerElement = el; }}>\r\n
    \r\n {this.renderInnerButton(isFilledMode)}\r\n
    \r\n {\r\n (isMinimized && isExpanded) ? (\r\n \r\n ) : null\r\n }\r\n \r\n );\r\n }\r\n\r\n onClearButtonClick(e) {\r\n e.preventDefault();\r\n this.props.onClear();\r\n }\r\n\r\n onSubmit(e) {\r\n e.preventDefault();\r\n this.props.onSubmit();\r\n }\r\n\r\n handlePredictiveSelect(suggestion) {\r\n this.props.onSelect(suggestion.value, suggestion.data.type, suggestion.data);\r\n }\r\n}\r\n\r\nPredictiveSearch.propTypes = {\r\n endpointUrl: PropTypes.string.isRequired,\r\n maxSuggestionsCount: PropTypes.number.isRequired,\r\n renderSuggestion: PropTypes.func,\r\n onClear: PropTypes.func.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n onSelect: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n query: PropTypes.string,\r\n onBlur: PropTypes.func.isRequired,\r\n onFocus: PropTypes.func.isRequired,\r\n onCollapseButtonClick: PropTypes.func.isRequired,\r\n onSearchButtonClick: PropTypes.func.isRequired,\r\n inputRef: PropTypes.func,\r\n isMinimized: PropTypes.bool.isRequired,\r\n isSubmitted: PropTypes.bool.isRequired,\r\n isFocused: PropTypes.bool.isRequired,\r\n isExpanded: PropTypes.bool.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PredictiveSearch from '../../predictive-search/js/PredictiveSearch';\r\nimport flagSuggestionTemplate from '../html/flag-suggestion.hbs';\r\nimport playerSuggestionTemplate from '../html/player-suggestion.hbs';\r\nimport { redirectTo } from '../../../general/js/utils';\r\n\r\nconst SUGGESTION_TYPE_PLAYER = '2';\r\nconst SUGGESTION_TYPE_FLAG = '1';\r\n\r\nexport default class QualifiedPlayersPredictiveSearch extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onClear = this.onClear.bind(this);\r\n this.onChange = this.onChange.bind(this);\r\n this.onSelect = this.onSelect.bind(this);\r\n this.onSubmit = this.onSubmit.bind(this);\r\n this.renderSuggestion = this.renderSuggestion.bind(this);\r\n }\r\n\r\n onClear() {\r\n this.props.onFiltersChange(getPredictiveSearchDefaultFilters());\r\n }\r\n\r\n onChange(e) {\r\n // Change filters without applying\r\n this.props.onFiltersChange({\r\n ...getPredictiveSearchDefaultFilters(),\r\n term: e.target.value,\r\n }, false);\r\n }\r\n\r\n onSelect(value, type, suggestionInfo) {\r\n switch (type) {\r\n case SUGGESTION_TYPE_PLAYER:\r\n redirectTo(suggestionInfo.playerURL);\r\n break;\r\n default:\r\n this.props.onFiltersChange({\r\n term: value,\r\n searchType: type,\r\n countryId: suggestionInfo.countryId || ''\r\n });\r\n break;\r\n }\r\n }\r\n\r\n onSubmit() {\r\n // Apply current filters\r\n this.props.onFiltersChange({});\r\n }\r\n\r\n renderSuggestion(text, type, info, highlightedText) {\r\n let result;\r\n switch (type) {\r\n case SUGGESTION_TYPE_FLAG:\r\n result = flagSuggestionTemplate({ text, highlightedText, info });\r\n break;\r\n case SUGGESTION_TYPE_PLAYER:\r\n result = playerSuggestionTemplate({ text, highlightedText, info });\r\n break;\r\n default:\r\n result = text;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n render() {\r\n let { filters, ...passProps } = this.props; // eslint-disable-line\r\n const { term, type } = filters;\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nQualifiedPlayersPredictiveSearch.propTypes = {\r\n onFiltersChange: PropTypes.func.isRequired,\r\n filters: PropTypes.object.isRequired,\r\n isFiltersApplied: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport function getPredictiveSearchDefaultFilters() {\r\n return {\r\n term: '',\r\n searchType: '',\r\n countryId: ''\r\n };\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport ListingLoadMore from '../../listing/js/ListingLoadMore';\r\n\r\nexport default class QualifiedPlayersListingLoadMore extends React.PureComponent {\r\n render() {\r\n return ReactDOM.createPortal(\r\n ,\r\n this.props.loadMoreElement,\r\n );\r\n }\r\n}\r\n\r\n\r\nQualifiedPlayersListingLoadMore.propTypes = {\r\n loadMoreElement: PropTypes.instanceOf(Element).isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class QualifiedPlayersListingFiltersTriggerButton extends React.PureComponent {\r\n getButtonText() {\r\n if (this.props.isFiltersVisible) {\r\n return 'Hide filters';\r\n }\r\n return 'Show filters';\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nQualifiedPlayersListingFiltersTriggerButton.propTypes = {\r\n onClick: PropTypes.func.isRequired,\r\n isFiltersVisible: PropTypes.bool.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport QualifiedPlayersPredictiveSearch from './QualifiedPlayersPredictiveSearch';\r\nimport QualifiedPlayersListingFiltersTriggerButton\r\n from './QualifiedPlayersListingFiltersTriggerButton';\r\nimport app, {\r\n DEVICE_TYPE_MOBILE,\r\n EVENT_DEVICE_TYPE_CHANGED\r\n} from '../../../general/js/app';\r\nimport eventBus from '../../../general/js/event-bus';\r\n\r\nexport default class QualifiedPlayersListingControls extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isMinimized: this.getIsMinimized(),\r\n isFocused: false,\r\n isExpanded: false\r\n };\r\n\r\n this.onPredictiveSearchBlur = this.onPredictiveSearchBlur.bind(this);\r\n this.onPredictiveSearchFocus = this.onPredictiveSearchFocus.bind(this);\r\n this.onCollapseButtonClick = this.onCollapseButtonClick.bind(this);\r\n this.onSearchButtonClick = this.onSearchButtonClick.bind(this);\r\n this.inputRef = this.inputRef.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.onDeviceTypeChanged);\r\n }\r\n\r\n componentWillUnmount() {\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.onDeviceTypeChanged);\r\n }\r\n\r\n inputRef(el) {\r\n this.inputElement = el;\r\n }\r\n\r\n onDeviceTypeChanged = () => {\r\n const newState = {\r\n isMinimized: this.getIsMinimized(),\r\n };\r\n\r\n if (newState.isMinimized !== this.state.isMinimized) {\r\n newState.isExpanded = false;\r\n }\r\n this.setState(newState);\r\n }\r\n\r\n onPredictiveSearchBlur() {\r\n const newState = {\r\n isFocused: false\r\n };\r\n if (this.state.isMinimized && this.props.isFiltersApplied && this.state.isExpanded) {\r\n newState.isExpanded = false;\r\n }\r\n this.setState(newState);\r\n }\r\n\r\n onPredictiveSearchFocus() {\r\n const newState = {\r\n isFocused: true\r\n };\r\n if (this.state.isMinimized && !this.state.isExpanded) {\r\n newState.isExpanded = true;\r\n }\r\n this.setState(newState);\r\n }\r\n\r\n onCollapseButtonClick() {\r\n this.setState({ isExpanded: false });\r\n }\r\n\r\n onSearchButtonClick(e) {\r\n const isMinimized = this.state.isMinimized;\r\n const isExpanded = this.state.isExpanded;\r\n\r\n if (isMinimized && !isExpanded) {\r\n e.preventDefault();\r\n this.setState({ isExpanded: true });\r\n this.inputElement.focus();\r\n }\r\n }\r\n\r\n getIsMinimized() {\r\n return app.deviceTypeByViewport === DEVICE_TYPE_MOBILE;\r\n }\r\n\r\n isTriggerButtonVisible() {\r\n return !this.state.isMinimized || !this.state.isExpanded;\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {this.isTriggerButtonVisible() ?\r\n : null}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nQualifiedPlayersListingControls.propTypes = {\r\n onFiltersChange: PropTypes.func.isRequired,\r\n filters: PropTypes.object.isRequired,\r\n isFiltersApplied: PropTypes.bool.isRequired,\r\n isFiltersVisible: PropTypes.bool.isRequired,\r\n options: PropTypes.object,\r\n onFiltersTogglerClick: PropTypes.func.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class ListingSelect extends React.PureComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.onChange = this.onChange.bind(this);\r\n }\r\n\r\n onChange(e) {\r\n this.props.onChange({ [this.props.config.name]: e.target.value });\r\n }\r\n\r\n render() {\r\n const config = this.props.config;\r\n return (\r\n
    \r\n
    {config.label}
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nListingSelect.propTypes = {\r\n config: PropTypes.object.isRequired,\r\n value: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default class ListingCheckList extends React.PureComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.onChange = this.onChange.bind(this);\r\n }\r\n\r\n onChange(changedCheckboxValue, isChecked) {\r\n const currentValue = this.props.value;\r\n let newValue = null;\r\n if (isChecked) {\r\n newValue = [...currentValue, changedCheckboxValue];\r\n } else {\r\n newValue = currentValue.filter((value) => value !== changedCheckboxValue);\r\n }\r\n this.props.onChange({ [this.props.config.name]: newValue });\r\n }\r\n\r\n render() {\r\n const config = this.props.config;\r\n return (\r\n
    \r\n
    \r\n {config.options.map((option, index) => (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nListingCheckList.defaultProps = {\r\n value: []\r\n};\r\n\r\nListingCheckList.propTypes = {\r\n config: PropTypes.object.isRequired,\r\n value: PropTypes.array.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n collapse,\r\n expand,\r\n setContentToState\r\n} from 'Feature/ContentComponents/code/assets/componets/accordion/js/accordion.component';\r\nimport ListingSelect from '../../listing/js/ListingSelect';\r\nimport ListingCheckList from '../../listing/js/ListingCheckList';\r\nimport { CONTROL_TYPE_SELECT, CONTROL_TYPE_CHECKLIST } from '../../listing/js/constants';\r\n\r\nexport default class QualifiedPlayersListingFilters extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.filtersRef = this.filtersRef.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n setContentToState(this.filtersElement, this.props.isFiltersVisible);\r\n }\r\n\r\n filtersRef(el) {\r\n this.filtersElement = el;\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.isFiltersVisible !== this.props.isFiltersVisible) {\r\n this.handleFiltersVisibility();\r\n }\r\n }\r\n\r\n handleFiltersVisibility() {\r\n if (this.filtersElement) {\r\n if (this.props.isFiltersVisible) {\r\n expand(this.filtersElement);\r\n } else {\r\n collapse(this.filtersElement);\r\n }\r\n }\r\n }\r\n\r\n renderFilter(filterConfig) {\r\n switch (filterConfig.type) {\r\n case CONTROL_TYPE_CHECKLIST:\r\n return (\r\n \r\n );\r\n\r\n case CONTROL_TYPE_SELECT:\r\n return (\r\n \r\n );\r\n default:\r\n throw new Error('unknown control type');\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n {this.props.options.filters.map((filterConfig) => this.renderFilter(filterConfig))}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nQualifiedPlayersListingFilters.defaultProps = {\r\n options: {\r\n // filters config\r\n filters: [],\r\n }\r\n};\r\n\r\nQualifiedPlayersListingFilters.propTypes = {\r\n onFiltersChange: PropTypes.func.isRequired,\r\n filters: PropTypes.object.isRequired,\r\n isFiltersVisible: PropTypes.bool.isRequired,\r\n options: PropTypes.object,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport QualifiedPlayersListingControls from './QualifiedPlayersListingControls';\r\nimport QualifiedPlayersListingFilters from './QualifiedPlayersListingFilters';\r\nimport { isFiltersDirty } from '../../listing/js/listing-helper';\r\n\r\nexport default class QualifiedPlayersListingHeader extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isFiltersVisible : true\r\n };\r\n this.onFiltersTogglerClick = this.onFiltersTogglerClick.bind(this);\r\n }\r\n\r\n onFiltersTogglerClick() {\r\n if (!isFiltersDirty(this.props.filters, this.props.options.filters)) {\r\n this.setState({ isFiltersVisible: !this.state.isFiltersVisible });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n \r\n\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nQualifiedPlayersListingHeader.propTypes = {\r\n onFiltersChange: PropTypes.func.isRequired,\r\n filters: PropTypes.object.isRequired,\r\n options: PropTypes.object.isRequired,\r\n isFiltersApplied: PropTypes.bool.isRequired,\r\n itemsCount: PropTypes.number.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport QualifiedPlayersListingContent from './QualifiedPlayersListingContent';\r\nimport Listing from '../../listing/js/Listing';\r\nimport { getDefaultFilters } from '../../listing/js/listing-helper';\r\nimport { getPredictiveSearchDefaultFilters } from './QualifiedPlayersPredictiveSearch';\r\nimport QualifiedPlayersListingLoadMore from './QualifiedPlayersListingLoadMore';\r\nimport QualifiedPlayersListingHeader from './QualifiedPlayersListingHeader';\r\n\r\nexport default class QualifiedPlayersListing extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.defaultFilters = {\r\n ...getPredictiveSearchDefaultFilters(),\r\n ...getDefaultFilters(props.options.filters)\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n (\r\n
    \r\n \r\n \r\n \r\n
    \r\n )}/>\r\n );\r\n }\r\n}\r\n\r\nQualifiedPlayersListing.propTypes = {\r\n options: PropTypes.object.isRequired,\r\n loadMoreElement: PropTypes.instanceOf(Element).isRequired,\r\n};\r\n","import BaseComponent from 'foundation/base-component';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport QualifiedPlayersListing from './QualifiedPlayersListing';\r\nimport { CONTROL_TYPE_CHECKLIST } from '../../listing/js/constants';\r\n\r\nexport default class QualifiedPlayersListingComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.listingElement = this.refs.listing;\r\n this.loadMoreElement = this.refs.loadmore;\r\n\r\n const endpointUrl = this.options.SearchApiUrl;\r\n if (!endpointUrl) {\r\n throw new Error('SearchApiUrl should be passed via options');\r\n }\r\n\r\n const predictiveEndpointUrl = this.options.PredictiveSearchApiUrl;\r\n if (!endpointUrl) {\r\n throw new Error('PredictiveSearchApiUrl should be passed via options');\r\n }\r\n\r\n const filtersConfig = this.options.Filters[0];\r\n\r\n const filters = [{\r\n type: CONTROL_TYPE_CHECKLIST,\r\n name: filtersConfig.name,\r\n options: filtersConfig.values,\r\n defaultValue: []\r\n }];\r\n\r\n\r\n this.playersListingOptions = {\r\n endpointUrl,\r\n predictiveEndpointUrl,\r\n filters,\r\n };\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['listing', 'loadmore'];\r\n }\r\n\r\n init() {\r\n ReactDOM.render(, this.listingElement);\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n}\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport QualifiedPlayersListingComponent from './js/qualified-players-listing.component';\r\n\r\nComponentsFactory.getInstance().define('qualified-players-listing', QualifiedPlayersListingComponent);\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport RecaptchaComponent from './js/recaptcha.component';\r\n\r\nComponentsFactory.getInstance().define('recaptcha', RecaptchaComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\nimport { AppState } from '@aws-amplify/core';\r\nimport app from '../../../general/js/app'; \r\n\r\nexport default class ResetPasswordUrlComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n const secutixCookie = Cookies.get('secutixConfig');\r\n if (secutixCookie !== undefined) {\r\n const secutixConfiguration = JSON.parse(secutixCookie);\r\n\t\t\tthis.element.setAttribute('href', secutixConfiguration.resetPasswordUrl);\r\n }\r\n else {\r\n this.element.setAttribute('href', app.state.resetPasswordLink);\r\n }\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport ResetPasswordUrlComponent from './js/reset-password-url.component';\r\n\r\nComponentsFactory.getInstance().define('reset-password-url', ResetPasswordUrlComponent);\r\n","import { getElementByQuery, getElementsByQuery, getSiblingByQuery, isNullOrUndefined, toggleCssClass } from '../../../general/js/general-helpers';\r\nimport { getIsOneClubMemberFromCookie } from '../../sso/components/utils/user-data-cookie/user-data-cookie-helpers';\r\nimport { rightHeaderLinksConstants } from './right-header-link-item-constants';\r\n\r\nexport const displayRightHeaderLinkByOneClubMembership = (container = document) => {\r\n const isOneClubMember = getIsOneClubMemberFromCookie();\r\n const mainRightHeaderLinkItem = getMainRightLinkItem(container);\r\n const memberRightHeaderLinkItem = getMemberRightLinkItem(container);\r\n\r\n toggleRightHeaderLink(isOneClubMember, mainRightHeaderLinkItem, memberRightHeaderLinkItem);\r\n}\r\n\r\nexport const toggleRightHeaderLink = (isOneClubMember = false, mainRightHeaderLinkItem = null, memberRightHeaderLinkItem = null) => {\r\n if(isNullOrUndefined(mainRightHeaderLinkItem)){\r\n return;\r\n }\r\n\r\n const displayMemberLinkItemCondition = isOneClubMember && !isNullOrUndefined(memberRightHeaderLinkItem);\r\n \r\n toggleCssClass(mainRightHeaderLinkItem, rightHeaderLinksConstants.HIDDEN_CLASS, displayMemberLinkItemCondition);\r\n toggleCssClass(memberRightHeaderLinkItem, rightHeaderLinksConstants.HIDDEN_CLASS, !displayMemberLinkItemCondition);\r\n}\r\n\r\nexport const getMainRightLinkItem = (container = document) => {\r\n return getElementByQuery(`.${rightHeaderLinksConstants.RIGHT_NAV_TITLE_CLASS}`,{ rightHeaderLinkItem: [container] });\r\n}\r\n\r\nexport const getMemberRightLinkItem = (container = document) => {\r\n return getElementByQuery(`.${rightHeaderLinksConstants.MEMBER_RIGHT_NAV_TITLE_CLASS}`,{ rightHeaderLinkItem: [container] });\r\n}\r\n\r\nexport const getAllMainRightLinkItems = (container = document) => {\r\n return getElementsByQuery(`.${rightHeaderLinksConstants.TOP_NAV_LINK_RIGHT_CLASS} .${rightHeaderLinksConstants.RIGHT_NAV_TITLE_CLASS}`,{ rightHeaderLinkItem: [container] });\r\n}\r\n\r\nexport const getSiblingMemberRightLinkItem = (element = null) => {\r\n if (isNullOrUndefined(element)){\r\n return null;\r\n }\r\n\r\n return getSiblingByQuery(`.${rightHeaderLinksConstants.MEMBER_RIGHT_NAV_TITLE_CLASS}`, element);\r\n}\r\n","export const rightHeaderLinksConstants = {\r\n TOP_NAV_LINK_RIGHT_CLASS: 'header__top-nav-link-right',\r\n RIGHT_NAV_TITLE_CLASS: 'right-nav-title',\r\n MEMBER_RIGHT_NAV_TITLE_CLASS: 'member-right-nav-title',\r\n HIDDEN_CLASS: 'hidden'\r\n};\r\n\r\n","import ReactDOM from 'react-dom';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport gtm from '../../../general/js/gtm';\r\nimport { displayRightHeaderLinkByOneClubMembership } from './right-header-link-item-helpers';\r\n\r\nclass RightHeaderLinkItem extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n displayRightHeaderLinkByOneClubMembership(this.element);\r\n this.addListener(this.element, 'click', this.saveActionToGtm);\r\n }\r\n\r\n saveActionToGtm = (event) => {\r\n const clickedItem = event.target;\r\n const itemText = clickedItem.innerText || clickedItem.textContent;\r\n gtm.push('Top Ribbon', 'Click', itemText);\r\n }\r\n\r\n onDestroy() {\r\n ReactDOM.unmountComponentAtNode(this.element);\r\n }\r\n}\r\n\r\nexport default RightHeaderLinkItem;\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport RightHeaderLinkItem from './js/right-header-link-item.component';\r\n\r\nComponentsFactory.getInstance().define('right-header-link-item', RightHeaderLinkItem);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport { getAllMainRightLinkItems, getSiblingMemberRightLinkItem, toggleRightHeaderLink } from '../../right-header-link-item/js/right-header-link-item-helpers';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\nimport eventBus from '../../../general/js/event-bus';\r\nimport { getIsOneClubMemberFromCookie } from '../../sso/components/utils/user-data-cookie/user-data-cookie-helpers';\r\nimport { userDataCookieConstants } from '../../sso/components/utils/user-data-cookie/user-data-cookie-constants';\r\n\r\nclass RightHeaderLinks extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.handleUserDataCookieChange = this.handleUserDataCookieChange.bind(this);\r\n this.init();\r\n }\r\n\r\n init() {\r\n eventBus.addListener(userDataCookieConstants.USER_DATA_COOKIE_CHANGE_EVENT, this.handleUserDataCookieChange);\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener(userDataCookieConstants.USER_DATA_COOKIE_CHANGE_EVENT, this.handleUserDataCookieChange);\r\n }\r\n\r\n handleUserDataCookieChange = () => {\r\n const isOneClubMember = getIsOneClubMemberFromCookie();\r\n const mainRightHeaderLinkItems = getAllMainRightLinkItems(this.element);\r\n\r\n if (!hasValue(mainRightHeaderLinkItems)) {\r\n return;\r\n }\r\n\r\n mainRightHeaderLinkItems.forEach((mainLinkItem) => {\r\n const memberLinkItem = getSiblingMemberRightLinkItem(mainLinkItem);\r\n toggleRightHeaderLink(isOneClubMember, mainLinkItem, memberLinkItem);\r\n });\r\n }\r\n}\r\n\r\nexport default RightHeaderLinks;\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport RightHeaderLinks from './js/right-header-links.component';\r\n\r\nComponentsFactory.getInstance().define('right-header-links', RightHeaderLinks);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport { isValid } from 'date-fns';\r\n\r\nclass RolexWatchComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.intervalId = null;\r\n this.currentDate = new Date(this.options.currentDate);\r\n this.thresholdDate = new Date(this.options.thresholdDate);\r\n\r\n if (!isValid(this.currentDate)) {\r\n throw new Error('Please provide a valid \"currentDate\" parameter');\r\n }\r\n\r\n if (!isValid(this.thresholdDate)) {\r\n throw new Error('Please provide a valid \"thresholdDate\" parameter');\r\n }\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n let isSimple = false;\r\n\r\n if (!this.options.shouldShowCountdown) {\r\n isSimple = true;\r\n } else {\r\n isSimple = this.currentDate > this.thresholdDate;\r\n }\r\n\r\n this.lazyloadIframes();\r\n\r\n if (isSimple) {\r\n this.element.classList.add('is-simple');\r\n } else {\r\n this.element.classList.add('is-countdown');\r\n this.intervalId = setInterval(() => {\r\n this.currentDate.setSeconds(this.currentDate.getSeconds() + 1);\r\n\r\n const shouldSimple = this.currentDate > this.thresholdDate;\r\n\r\n if (shouldSimple !== isSimple) {\r\n clearInterval(this.intervalId);\r\n this.element.classList.remove('is-countdown');\r\n this.element.classList.add('is-simple');\r\n }\r\n }, 1000);\r\n }\r\n\r\n }\r\n\r\n lazyloadIframes() {\r\n if (!Array.isArray(this.refs.iframes)) return;\r\n\r\n this.refs.iframes.forEach((iframe) => {\r\n iframe.src = this.getAttribute(iframe, 'src');\r\n });\r\n }\r\n}\r\n\r\nexport default RolexWatchComponent;\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport RolexWatchComponent from './js/rolex-watch.component';\r\n\r\nComponentsFactory.getInstance().define('rolex-watch', RolexWatchComponent);\r\n","import * as cookieHelper from './cookie-helper';\r\nimport { formConstants } from '../components/utils/constants/form-constants';\r\nimport * as signInFormApi from '../store/api/sign-in-form-api';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport { reloadToBasePage } from '../../../general/js/utils';\r\n\r\nexport const activityHelper = (function () {\r\n\r\n let isOnPage = true;\r\n let timeoutHandle;\r\n\r\n function _attachUserActivityEventListener() {\r\n\r\n if ('hidden' in document) {\r\n document.addEventListener('visibilitychange', _onChange);\r\n return;\r\n }\r\n\r\n if ('mozHidden' in document) {\r\n document.addEventListener('mozvisibilitychange', _onChange);\r\n return;\r\n }\r\n\r\n if ('webkitHidden' in document) {\r\n document.addEventListener('webkitvisibilitychange', _onChange);\r\n return;\r\n }\r\n\r\n if ('msHidden' in document) {\r\n document.addEventListener('msvisibilitychange', _onChange);\r\n return;\r\n }\r\n\r\n window.onpageshow = _onChange;\r\n window.onpagehide = _onChange;\r\n }\r\n\r\n function _onChange() {\r\n isOnPage = isOnPage === undefined ? true : !isOnPage;\r\n\r\n if (isOnPage) {\r\n return;\r\n }\r\n\r\n const maxIdleTimeInSeconds = cookieHelper.getCookie(formConstants.maxIdleTimeInSeconds);\r\n if (!maxIdleTimeInSeconds) {\r\n return;\r\n }\r\n const parsedMaxIdleTimeInSeconds = maxIdleTimeInSeconds ? parseInt(maxIdleTimeInSeconds, 10) : NaN;\r\n\r\n if (Number.isNaN(parsedMaxIdleTimeInSeconds)) {\r\n return;\r\n }\r\n\r\n if (parsedMaxIdleTimeInSeconds <= 0) {\r\n return;\r\n }\r\n\r\n window.clearTimeout(timeoutHandle);\r\n timeoutHandle = setTimeout(_timeOutFunction, parsedMaxIdleTimeInSeconds * 1000);\r\n }\r\n\r\n function _timeOutFunction() {\r\n if (isOnPage) {\r\n return;\r\n }\r\n\r\n signInFormApi.signOutUser().then(() => {\r\n userService.setAccessTokenCookie(null);\r\n cookieHelper.setCookie(formConstants.maxIdleTimeInSeconds, 0);\r\n reloadToBasePage();\r\n });\r\n }\r\n\r\n function _refreshMyAccountStyle() {\r\n const currentAddress = window.location.href;\r\n const randaPage = document.body.getElementsByClassName('randa-page')[0];\r\n\r\n if (!randaPage) {\r\n return;\r\n }\r\n\r\n if (!currentAddress.includes('account/profile')) {\r\n randaPage.classList.remove('my-account-page');\r\n return;\r\n }\r\n\r\n randaPage.classList.add('my-account-page');\r\n }\r\n\r\n return {\r\n handleUserIdleTime: () => {\r\n _attachUserActivityEventListener();\r\n },\r\n refreshMyAccountStyle: () => {\r\n _refreshMyAccountStyle();\r\n }\r\n };\r\n}());\r\n","import React from 'react';\r\nimport { activityHelper } from '../helpers/user-activity-helper';\r\n\r\nexport const SSOFormContext = React.createContext();\r\nactivityHelper.handleUserIdleTime();\r\nactivityHelper.refreshMyAccountStyle();\r\n\r\nexport function withSSOFormContext(Component) {\r\n // eslint-disable-next-line react/display-name\r\n return (props) => (\r\n \r\n {(context) => }\r\n \r\n );\r\n}\r\n","export const formFieldConstants = {\r\n selectFieldOptionsCode: 'code',\r\n selectFieldOptionsLabel: 'label',\r\n itemList: 'itemList'\r\n}\r\n","\r\nexport const addressesFormStateConstants = {\r\n AddressDisplayForm: 'addressDisplayForm',\r\n AddressAddForm: 'addressAddForm',\r\n AddressUpdateForm: 'addressUpdateForm'\r\n};\r\n\r\nexport const addressesFormCallbackFunctions = {\r\n HandleShowDisplayAddressForm: 'handleShowDisplayAddressForm',\r\n HandleShowAddAddressForm: 'handleShowAddAddressForm',\r\n HandleAddNewAddress: 'handleAddNewAddress',\r\n HandleShowUpdateAddressForm: 'handleShowUpdateAddressForm',\r\n HandleUpdateAddress: 'handleUpdateAddress',\r\n HandleRemoveAddress: 'handleRemoveAddress'\r\n};\r\n","import { MembershipTypes } from '../../../../../../general/js/utils';\r\nimport { addressesFormStateConstants } from './user-account/address-form-state';\r\nimport { orderHistoryFormStateConstants } from './user-account/order-history-form-state';\r\n\r\nexport default {\r\n oneClubRegisterFormState: {\r\n membership: MembershipTypes.OneClub,\r\n isSaving: false,\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false\r\n },\r\n defaultRegisterFormState: {\r\n membership: MembershipTypes.OneClub,\r\n isSaving: false,\r\n errors: {},\r\n formHasErrors: false\r\n },\r\n ballotRegisterFormState: {\r\n membership: MembershipTypes.OneClub,\r\n isSaving: false,\r\n errors: {},\r\n formHasErrors: false,\r\n emailCheckInProgress: false\r\n },\r\n ticketingRegisterFormState: {\r\n membership: MembershipTypes.OneClub,\r\n isSaving: false,\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false,\r\n privacyPolicy: false,\r\n oneClubTermsAndServices: false\r\n },\r\n raMembersRegisterFormState: {\r\n membership: MembershipTypes.OneClub,\r\n isSaving: false,\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false,\r\n privacyPolicy: false,\r\n oneClubTermsAndServices: false\r\n },\r\n userDetailsFormState: {\r\n isSaving: false,\r\n formData: {},\r\n isConfirmationPopUpOpen: false,\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false,\r\n isUserUpdatingEmail: false\r\n },\r\n changePasswordFormState: {\r\n errors: {},\r\n formHasErrors: false\r\n },\r\n userAddressesFormState: {\r\n isSaving: false,\r\n formState: addressesFormStateConstants.AddressDisplayForm,\r\n accountData: {},\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false\r\n },\r\n emailNotificationSettingsFormState: {\r\n isSaving: false,\r\n formData: {},\r\n accountData: {},\r\n errors: {},\r\n formHasErrors: false\r\n },\r\n theOneClubFormState: {\r\n isSaving: false,\r\n formData: {},\r\n leaveOneClubCheck: false,\r\n accountData: {},\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false\r\n },\r\n orderHistoryFormState: {\r\n orderHistoryData: {},\r\n orderHistoryActivePageNumber: 1,\r\n displayCancelledFiles: false,\r\n formState: orderHistoryFormStateConstants.OrderHistoryDisplayForm,\r\n fileNumberForDisplay: 0\r\n },\r\n userTicketsFormState: {\r\n hideOldTickets: true,\r\n isTicketPrintModalOpen: false,\r\n printOptions: {},\r\n modalFormData: {}\r\n },\r\n addUserAddressesFormState: {\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false\r\n },\r\n updateUserAddressesFormState: {\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false\r\n },\r\n upgradeAccountFormState: {\r\n activeMemberships: [],\r\n isSaving: false,\r\n userAccountData: {},\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false,\r\n isSubmitAction: false\r\n },\r\n upgradeBallotFormState: {\r\n activeMemberships: [MembershipTypes.OneClub],\r\n isSaving: false,\r\n userAccountData: {},\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false,\r\n isSubmitAction: false\r\n },\r\n ssoItemListFormState: {\r\n itemList: [],\r\n loading: false\r\n },\r\n upgradeRaMembersFormState: {\r\n activeMemberships: [],\r\n isSaving: false,\r\n userAccountData: {},\r\n availableCounties: {},\r\n availableStates: {},\r\n errors: {},\r\n formHasErrors: false,\r\n isSubmitAction: false\r\n },\r\n signInFormState: {\r\n errors: {},\r\n isProcessing: false,\r\n formHasErrors: false\r\n },\r\n newPasswordRequiredFormState: {\r\n errors: {},\r\n isProcessing: false,\r\n formHasErrors: false\r\n },\r\n forgotPasswordFormState: {\r\n errors: {},\r\n isProcessing: false,\r\n formHasErrors: false\r\n },\r\n resetPasswordFormState: {\r\n errors: {},\r\n verificationCode: '',\r\n isProcessing: false\r\n },\r\n verifyEmailFormState: {\r\n errors: {},\r\n verificationCode: '',\r\n isProcessing: false\r\n }\r\n};\r\n","\r\nexport const orderHistoryFormStateConstants = {\r\n OrderHistoryDisplayForm: 'orderHistoryDisplayForm',\r\n FileDetailsDisplayForm: 'fileDetailsDisplayForm'\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nfunction FormMessage({\r\n formRef,\r\n isSuccessMessage,\r\n messages\r\n}) {\r\n const classType = isSuccessMessage ? '__success' : '__error';\r\n\r\n function displayFormMessages() {\r\n if (isEmpty(messages)) {\r\n return null;\r\n }\r\n\r\n const fieldClass = `form-field${classType}-item`;\r\n\r\n const messagesToDisplay = messages.map((m) => {\r\n return (
  • {m}
  • );\r\n });\r\n\r\n return (\r\n
      \r\n {messagesToDisplay}\r\n
    \r\n
    );\r\n }\r\n\r\n return displayFormMessages();\r\n}\r\n\r\nFormMessage.propTypes = {\r\n formRef: PropTypes.object,\r\n isSuccessMessage: PropTypes.bool.isRequired,\r\n messages: PropTypes.array,\r\n};\r\n\r\nexport default FormMessage;\r\n","export const ssoFieldTypes = {\r\n EmailAddress: 0,\r\n Username: 1,\r\n ConfirmEmailAddress: 2,\r\n OldPassword: 3,\r\n Password: 4,\r\n ConfirmPassword: 5,\r\n Title: 6,\r\n FirstName: 7,\r\n LastName: 8,\r\n DateOfBirth: 9,\r\n AddressLine1: 10,\r\n AddressLine2: 11,\r\n AddressLine3: 12,\r\n Postcode: 13,\r\n MobilePhone: 14,\r\n City: 15,\r\n Country: 16,\r\n County: 17,\r\n MainAddress: 18,\r\n ShippingAddress: 19,\r\n BillingAddress: 20,\r\n FavoritePlayer: 21,\r\n Venues: 22,\r\n Consent: 23,\r\n OffersDetails: 24,\r\n AcceptOffers: 25,\r\n OffersConsent: 26,\r\n RefuseOffers: 27,\r\n Policy: 28,\r\n PrivacyPolicy: 29,\r\n OneClubTermsAndServices: 30,\r\n ContactDetails: 31,\r\n VerificationCode: 32,\r\n BecomeOneClubMember: 33,\r\n SelectOption: 34,\r\n MultipleChoiceOption: 35,\r\n LookupSuggestion: 36,\r\n FrequentlyAskedQuestion: 37,\r\n HTMLText: 38,\r\n BecomeOneClubMemberInfo: 39,\r\n MainAddressLabel: 40,\r\n ChampionshipSection: 41,\r\n ChannelSection: 42,\r\n InterestSection: 43,\r\n RaMemberId: 44,\r\n Captcha: 45,\r\n Mastercard: 46,\r\n State: 47,\r\n TextAndImageTile: 48\r\n};\r\n","\r\nexport const formStyleConstants = {\r\n smallField: 'size-4-12',\r\n isFilled: 'is-filled',\r\n isSuccess: 'is-success',\r\n isInvalid: 'is-invalid',\r\n isOpened: 'is-opened',\r\n fieldHeaderClassName: 'fieldHeader',\r\n customFieldClassName: 'customField'\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\n\r\nfunction FieldHeader({\r\n fieldName,\r\n headerTitle,\r\n headerText,\r\n textClassName\r\n}) {\r\n const fieldClassName = fieldName || formStyleConstants.fieldHeaderClassName;\r\n return (\r\n isEmpty(headerTitle) && isEmpty(headerText) ?\r\n null :\r\n
    \r\n

    {headerTitle}

    \r\n
    \r\n {headerText}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nFieldHeader.propTypes = {\r\n fieldName: PropTypes.string,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n textClassName: PropTypes.string,\r\n};\r\n\r\nexport default FieldHeader;\r\n","import React, { Component, Fragment } from 'react';\r\nimport ReactTooltip from \"react-tooltip\";\r\nimport PropTypes from 'prop-types';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faInfoCircle } from '@fortawesome/free-solid-svg-icons'\r\n\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport FieldHeader from './FieldHeader';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\n\r\nclass FormTextInput extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { validState, defaultValue } = this.props;\r\n\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleChangeCallback = this.handleChangeCallback.bind(this);\r\n this.handleFieldIsFilled = this.handleFieldIsFilled.bind(this);\r\n this.getFieldType = this.getFieldType.bind(this);\r\n\r\n this.initialState = {\r\n defaultValue: defaultValue || formMessageConstants.emptyString,\r\n isFilled: !isEmpty(defaultValue),\r\n isValid: true,\r\n errorMessage: ''\r\n };\r\n if (validState) {\r\n this.initialState.isValid = validState.isValid;\r\n this.initialState.errorMessage = validState.errorMessage;\r\n }\r\n this.state = this.initialState;\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.defaultValue === nextProps.defaultValue) {\r\n return;\r\n }\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n defaultValue: nextProps.defaultValue || formMessageConstants.emptyString,\r\n isFilled: !isEmpty(nextProps.defaultValue)\r\n }));\r\n }\r\n\r\n handleChange(event) {\r\n const { value } = event.target;\r\n const { onChange } = this.props;\r\n onChange(event);\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n defaultValue: value\r\n })\r\n );\r\n }\r\n\r\n handleChangeCallback() {\r\n const { onChange } = this.props;\r\n onChange(this.state);\r\n }\r\n\r\n handleBlur(event) {\r\n const { onBlur } = this.props;\r\n const { value } = event.target;\r\n this.handleFieldIsFilled(value);\r\n if (onBlur) {\r\n onBlur(event);\r\n }\r\n }\r\n\r\n handleFieldIsFilled(value) {\r\n const isFilled = value !== '';\r\n this.setState((state) => ({ ...state, isFilled }));\r\n }\r\n\r\n getFieldType() {\r\n const { isPassword } = this.props;\r\n return isPassword ? 'password' : 'text';\r\n }\r\n\r\n render() {\r\n const {\r\n name,\r\n autocompleteValue,\r\n label,\r\n isHidden,\r\n headerTitle,\r\n headerText,\r\n size,\r\n isPassword,\r\n validState,\r\n formRef,\r\n isDisabled,\r\n tooltipText,\r\n } = this.props;\r\n\r\n const { isValid, errorMessage } = validState || this.state;\r\n const { defaultValue, isFilled } = this.state;\r\n const fieldClassName = name || formStyleConstants.customFieldClassName;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {\r\n !isEmpty(tooltipText) ?
    \r\n
    : null\r\n }\r\n \r\n \r\n \r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormTextInput.propTypes = {\r\n formRef: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n autocompleteValue: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n size: PropTypes.string,\r\n isPassword: PropTypes.bool,\r\n defaultValue: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n onBlur: PropTypes.func,\r\n validState: PropTypes.object,\r\n isDisabled: PropTypes.bool,\r\n tooltipText: PropTypes.string\r\n};\r\n\r\nexport default FormTextInput;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\nimport app from '../../../../../general/js/app';\r\n\r\nclass FormCaptchaField extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { validState } = this.props;\r\n\r\n this.initialState = {\r\n isValid: true,\r\n errorMessage: ''\r\n };\r\n if (validState) {\r\n this.initialState.isValid = validState.isValid;\r\n this.initialState.errorMessage = validState.errorMessage;\r\n }\r\n this.state = this.initialState;\r\n }\r\n\r\n render() {\r\n const {\r\n validState,\r\n formRef,\r\n onChange,\r\n isHidden\r\n } = this.props;\r\n\r\n const { isValid, errorMessage } = validState || this.state;\r\n const fieldClassName = formStyleConstants.customFieldClassName;\r\n const recaptchaPublicKey = app.state.recaptchaPublicKey;\r\n const recaptchaStyle = {\r\n marginTop: '15px',\r\n display: isHidden ? 'none' : 'block'\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n\r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormCaptchaField.propTypes = {\r\n formRef: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n isHidden: PropTypes.bool.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n validState: PropTypes.object,\r\n};\r\n\r\nexport default FormCaptchaField;\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formConstants } from '../utils/constants/form-constants';\r\nimport FieldHeader from './utility/FieldHeader';\r\nimport { getDestructuredText } from '../../../../general/js/utils';\r\n\r\nfunction FormOffers({\r\n offersDetails,\r\n onChange,\r\n refuseOffersName,\r\n acceptOffersName,\r\n defaultValue,\r\n isDisabled\r\n}) {\r\n const [isDirty, setIsDirty] = useState(false);\r\n\r\n const [refuseOffers, setRefuseOffers] = useState(false);\r\n const [acceptOffers, setAcceptOffers] = useState(false);\r\n\r\n const refuseOffersDefaultValueFromProps = isDirty ?\r\n refuseOffers : defaultValue === undefined ? false : defaultValue[formConstants.refuseOffers];\r\n const acceptOffersDefaultValueFromProps = isDirty ?\r\n acceptOffers : defaultValue === undefined ? false : defaultValue[formConstants.acceptOffers];\r\n\r\n if (refuseOffers !== refuseOffersDefaultValueFromProps) {\r\n setRefuseOffers(refuseOffersDefaultValueFromProps);\r\n }\r\n\r\n if (acceptOffers !== acceptOffersDefaultValueFromProps) {\r\n setAcceptOffers(acceptOffersDefaultValueFromProps);\r\n }\r\n\r\n const acceptOffersFieldTitle = offersDetails.acceptOffers.fieldHeaderTitle;\r\n const acceptOffersFieldText = offersDetails.acceptOffers.fieldHeaderText;\r\n\r\n const refuseOffersFieldTitle = offersDetails.refuseOffers.fieldHeaderTitle;\r\n const refuseOffersFieldText = offersDetails.refuseOffers.fieldHeaderText;\r\n\r\n const onRefuseCheckboxChange = (event) => {\r\n const checkboxValue = event.target.checked;\r\n setRefuseOffers(checkboxValue);\r\n onChange(event);\r\n setIsDirty(true);\r\n };\r\n\r\n const onAcceptCheckboxChange = (event) => {\r\n const checkboxValue = event.target.checked;\r\n setAcceptOffers(checkboxValue);\r\n onChange(event);\r\n setIsDirty(true);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n {\r\n !offersDetails.refuseOffers.isHidden &&\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n {getDestructuredText(\r\n offersDetails.emailConsent.label,\r\n offersDetails.emailConsent.link\r\n )}\r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nFormOffers.propTypes = {\r\n offersDetails: PropTypes.object.isRequired,\r\n refuseOffersName: PropTypes.string.isRequired,\r\n acceptOffersName: PropTypes.string.isRequired,\r\n defaultValue: PropTypes.object,\r\n onChange: PropTypes.func\r\n};\r\n\r\nexport default FormOffers;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formStyleConstants } from '../utils/constants/form-style-constants';\r\nimport { getDestructuredTextWithMultipleLinks } from '../../../../general/js/utils';\r\n\r\nfunction FormPolicy({\r\n policy,\r\n isHidden,\r\n showConsent,\r\n consentLabel,\r\n policyName,\r\n onChange,\r\n validState,\r\n defaultValue\r\n}) {\r\n const { isValid, errorMessage } = validState || { isValid: true };\r\n if (isHidden) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {getDestructuredTextWithMultipleLinks(\r\n policy.label,\r\n policy.link.split(';')\r\n )}\r\n
    \r\n\r\n { showConsent ?\r\n
    \r\n \r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n
    : null}\r\n
    \r\n );\r\n}\r\n\r\nFormPolicy.propTypes = {\r\n policy: PropTypes.object.isRequired,\r\n consentLabel: PropTypes.string.isRequired,\r\n policyName: PropTypes.string.isRequired,\r\n onChange: PropTypes.func,\r\n validState: PropTypes.object\r\n};\r\n\r\nexport default FormPolicy;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formStyleConstants } from '../utils/constants/form-style-constants';\r\n\r\nclass FormConsentDetails extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { isOpened: false };\r\n this.handleClick = this.handleClick.bind(this);\r\n }\r\n\r\n handleClick() {\r\n this.setState((state) => {\r\n return { isOpened: !state.isOpened };\r\n });\r\n }\r\n\r\n render() {\r\n const { consentDetails } = this.props;\r\n const { isOpened } = this.state;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n \r\n {consentDetails.label}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {consentDetails.text}\r\n

    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nFormConsentDetails.propTypes = {\r\n consentDetails: PropTypes.object.isRequired\r\n};\r\n\r\nexport default FormConsentDetails;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\nimport FieldHeader from './FieldHeader';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\n\r\nclass FormSelectField extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { defaultValue, options } = props;\r\n const selectedOption = options.find((option) => option.code === defaultValue) || {};\r\n this.state = { defaultValue, selectedOption };\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.defaultValue === nextProps.defaultValue) {\r\n return;\r\n }\r\n const { defaultValue, options } = nextProps;\r\n const selectedOption = options.find((option) => option.code === defaultValue) || {};\r\n\r\n this.setState((state) => ({ ...state, defaultValue: nextProps.defaultValue, selectedOption }));\r\n }\r\n\r\n handleChange(event) {\r\n const { onChange, options } = this.props;\r\n const { value } = event.target;\r\n const selectedOption = options.find((option) => option.code === value) || {};\r\n this.setState((state) => ({ ...state, defaultValue: value, selectedOption }));\r\n onChange(event);\r\n }\r\n\r\n render() {\r\n const {\r\n name,\r\n label,\r\n isHidden,\r\n headerTitle,\r\n headerText,\r\n size,\r\n isDisabled,\r\n options,\r\n propertyForValue,\r\n validState,\r\n formRef\r\n } = this.props;\r\n const { defaultValue, selectedOption } = this.state;\r\n const { isValid, errorMessage } = validState || { isValid: true };\r\n const fieldClassName = name || formStyleConstants.customFieldClassName;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {selectedOption.flag && \"flag\"}\r\n \r\n \r\n {options.map((option) => {\r\n return (\r\n \r\n {option.label}\r\n \r\n );\r\n })\r\n }\r\n \r\n \r\n \r\n \r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n \r\n
    );\r\n }\r\n}\r\n\r\nFormSelectField.propTypes = {\r\n formRef: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n size: PropTypes.string,\r\n options: PropTypes.array.isRequired,\r\n propertyForValue: PropTypes.string.isRequired,\r\n defaultValue: PropTypes.string,\r\n onChange: PropTypes.func,\r\n validState: PropTypes.object\r\n};\r\n\r\nexport default FormSelectField;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport FieldHeader from './FieldHeader';\r\n\r\nclass FormDateField extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { validState, defaultValue } = this.props;\r\n\r\n this.initialState = {\r\n day: '', month: '', year: '', isValid: true, errorMessage: ''\r\n };\r\n\r\n if (validState) {\r\n this.initialState.isValid = validState.isValid;\r\n this.initialState.errorMessage = validState.errorMessage;\r\n }\r\n\r\n if (!isEmpty(defaultValue)) {\r\n this.initialState.day = defaultValue.getDate();\r\n this.initialState.month = defaultValue.getMonth() + 1;\r\n this.initialState.year = defaultValue.getFullYear();\r\n }\r\n\r\n this.state = this.initialState;\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleChangeCallback = this.handleChangeCallback.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.defaultValue === nextProps.defaultValue) {\r\n return;\r\n }\r\n if (isEmpty(nextProps.defaultValue)) return;\r\n const dayValue = nextProps.defaultValue.getDate();\r\n const monthValue = nextProps.defaultValue.getMonth() + 1;\r\n const yearValue = nextProps.defaultValue.getFullYear();\r\n\r\n this.setState((state) => ({\r\n ...state, day: dayValue, month: monthValue, year: yearValue\r\n }));\r\n }\r\n\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n [name]: value\r\n }),\r\n this.handleChangeCallback\r\n );\r\n }\r\n\r\n handleChangeCallback() {\r\n const { onChange } = this.props;\r\n onChange(this.state);\r\n }\r\n\r\n render() {\r\n const {\r\n validState,\r\n formRef,\r\n isHidden,\r\n headerTitle,\r\n headerText,\r\n isDisabled,\r\n name\r\n } = this.props;\r\n const { day, month, year } = this.state;\r\n const { isValid, errorMessage } = validState || this.state;\r\n return (\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormDateField.propTypes = {\r\n formRef: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n validState: PropTypes.object,\r\n defaultValue: PropTypes.object\r\n};\r\n\r\nexport default FormDateField;\r\n","import React, { Component, Fragment } from 'react';\r\nimport FieldHeader from './utility/FieldHeader';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmpty } from '../utils/obj-utils';\r\n\r\nclass FormMultipleInterests extends Component {\r\n constructor(props) {\r\n super(props);\r\n // TODO: fix venues update;\r\n const { validState, defaultValue } = props;\r\n this.initialState = { venues: [], isValid: true, errorMessage: '' };\r\n\r\n if (validState) {\r\n this.initialState.isValid = validState.isValid;\r\n this.initialState.errorMessage = validState.errorMessage;\r\n }\r\n\r\n if (!isEmpty(defaultValue)) {\r\n this.initialState.venues = defaultValue;\r\n }\r\n\r\n this.state = this.initialState;\r\n\r\n this.displayVenues = this.displayVenues.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleChangeCallback = this.handleChangeCallback.bind(this);\r\n this.displayHeader = this.displayHeader.bind(this);\r\n }\r\n\r\n displayHeader() {\r\n const { name,\r\n headerTitle,\r\n headerText,\r\n isHidden,\r\n interestsData } = this.props;\r\n\r\n if (isHidden || interestsData.choices.length == 0)\r\n return;\r\n\r\n return \r\n ;\r\n }\r\n\r\n displayVenues() {\r\n const { interestsData, defaultValue } = this.props;\r\n\r\n return interestsData.choices.map((venue) => {\r\n let isSelected = false;\r\n if (!isEmpty(defaultValue)) {\r\n const defaultValuesUpper = defaultValue.map(item => item.toUpperCase()); \r\n isSelected = defaultValuesUpper.includes(venue.id.toUpperCase());\r\n }\r\n\r\n return (\r\n \r\n );\r\n });\r\n }\r\n\r\n handleChange(event) {\r\n const target = event.target;\r\n const isChecked = target.checked;\r\n const name = target.name;\r\n\r\n const venues = this.state.venues.map(item => item.toUpperCase());\r\n\r\n const indexOfVenue = venues.indexOf(name.toUpperCase());\r\n\r\n this.setState((state) => {\r\n const venues = isChecked ?\r\n [...state.venues, name] :\r\n state.venues.filter((item, j) => indexOfVenue !== j);\r\n\r\n return {\r\n venues\r\n };\r\n }, this.handleChangeCallback);\r\n }\r\n\r\n handleChangeCallback() {\r\n const { onChange, name } = this.props;\r\n onChange({\r\n target: {\r\n name,\r\n value: this.state.venues\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n interestsData,\r\n isHidden,\r\n validState,\r\n formRef\r\n } = this.props;\r\n const { isValid, errorMessage } = validState || this.state;\r\n\r\n return (\r\n \r\n {this.displayHeader()}\r\n
    \r\n { interestsData.choices.length == 0 ? \"\" : \r\n
    \r\n
    \r\n {interestsData.label}\r\n
    \r\n {this.displayVenues()}\r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n
    \r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormMultipleInterests.propTypes = {\r\n formRef: PropTypes.object,\r\n interestsData: PropTypes.object.isRequired,\r\n name: PropTypes.string.isRequired,\r\n defaultValue: PropTypes.array,\r\n onChange: PropTypes.func,\r\n validState: PropTypes.object\r\n};\r\n\r\nexport default FormMultipleInterests;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { getDestructuredText } from '../../../../general/js/utils';\r\n\r\nfunction FormContactInfo({ contactDetails }) {\r\n return (\r\n
    \r\n
    \r\n {getDestructuredText(contactDetails.label, contactDetails.link)}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nFormContactInfo.propTypes = {\r\n contactDetails: PropTypes.object.isRequired\r\n};\r\n\r\nexport default FormContactInfo;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport FieldHeader from './FieldHeader';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\n\r\nclass FormCheckboxInput extends Component {\r\n render() {\r\n const {\r\n formRef,\r\n name,\r\n label,\r\n headerTitle,\r\n headerText,\r\n onChange,\r\n defaultValue\r\n } = this.props;\r\n const fieldClassName = name || formStyleConstants.customFieldClassName;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nFormCheckboxInput.propTypes = {\r\n formRef: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n defaultValue: PropTypes.bool,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default FormCheckboxInput;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport FieldHeader from './FieldHeader';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\nimport { isEmpty, isAllWhiteSpace } from '../../utils/obj-utils';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\n\r\nclass FormLookupField extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { validState, defaultValue } = props;\r\n\r\n this.initialState = {\r\n isFilled: !isEmpty(defaultValue),\r\n lookupValue: isEmpty(defaultValue) ? '' : defaultValue,\r\n areSuggestionsVisible: false,\r\n isValid: true,\r\n errorMessage: ''\r\n };\r\n\r\n if (validState) {\r\n this.initialState.isValid = validState.isValid;\r\n this.initialState.errorMessage = validState.errorMessage;\r\n }\r\n this.state = this.initialState;\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.displaySuggestedPlayers = this.displaySuggestedPlayers.bind(this);\r\n this.displayHeader = this.displayHeader.bind(this);\r\n this.handleCloseSuggestions = this.handleCloseSuggestions.bind(this);\r\n this.handleFieldIsFilled = this.handleFieldIsFilled.bind(this);\r\n }\r\n\r\n handleChange(event, newLookupValue) {\r\n const { name, onChange } = this.props;\r\n const { value } = event.target;\r\n let updatedLookUpValue = newLookupValue !== undefined ? newLookupValue : value;\r\n\r\n if ((typeof updatedLookUpValue) !== 'string') {\r\n updatedLookUpValue = '';\r\n }\r\n\r\n this.handleFieldIsFilled(updatedLookUpValue);\r\n this.setState((state) => ({\r\n ...state,\r\n lookupValue: updatedLookUpValue,\r\n areSuggestionsVisible: true\r\n }));\r\n onChange({ target: { name, value: updatedLookUpValue, type: 'text' } });\r\n }\r\n\r\n handleBlur() {\r\n this.handleCloseSuggestions();\r\n }\r\n\r\n handleFieldIsFilled(value) {\r\n const isFilled = value !== '';\r\n this.setState((state) => ({ ...state, isFilled }));\r\n }\r\n\r\n displaySuggestedPlayers() {\r\n const { suggestions } = this.props;\r\n const { lookupValue } = this.state;\r\n\r\n if (isEmpty(suggestions)) {\r\n return (
    No results found!
    );\r\n }\r\n\r\n const filteredSuggestions = suggestions.filter((suggestion) => {\r\n if (isEmpty(lookupValue) || isAllWhiteSpace(lookupValue)) {\r\n return true;\r\n }\r\n\r\n return suggestion.firstName.toLowerCase().includes(lookupValue.toLowerCase()) ||\r\n suggestion.lastName.toLowerCase().includes(lookupValue.toLowerCase());\r\n });\r\n\r\n if (isEmpty(filteredSuggestions)) {\r\n return
    No results found!
    ;\r\n }\r\n\r\n const suggestionsUi = filteredSuggestions.map((filteredSuggestion) => {\r\n return (\r\n
  • {\r\n this.handleChange(event, filteredSuggestion.label);\r\n this.handleCloseSuggestions();\r\n }}>\r\n
    \r\n
    \r\n
    {filteredSuggestion.firstName}
    \r\n
    {filteredSuggestion.lastName}
    \r\n
    \r\n
    \r\n
  • );\r\n });\r\n\r\n return suggestionsUi;\r\n }\r\n\r\n displayHeader() {\r\n const { name,\r\n headerTitle,\r\n headerText,\r\n isHidden } = this.props;\r\n\r\n if (isHidden)\r\n return;\r\n\r\n return \r\n ;\r\n }\r\n\r\n handleCloseSuggestions() {\r\n this.setState({ areSuggestionsVisible: false });\r\n }\r\n\r\n render() {\r\n const { lookupValue, areSuggestionsVisible } = this.state;\r\n const {\r\n name,\r\n autocompleteValue,\r\n label,\r\n isHidden,\r\n size,\r\n validState,\r\n formRef\r\n } = this.props;\r\n const { isValid, errorMessage } = validState || this.state;\r\n const { isFilled } = this.state;\r\n\r\n return (\r\n \r\n {this.displayHeader()}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {!areSuggestionsVisible ? : null}\r\n {areSuggestionsVisible ? : null}\r\n \r\n \r\n
    \r\n
    \r\n
      \r\n {this.displaySuggestedPlayers()}\r\n
    \r\n
    \r\n
    \r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormLookupField.propTypes = {\r\n formRef: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n suggestions: PropTypes.array.isRequired,\r\n autocompleteValue: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n size: PropTypes.string,\r\n defaultValue: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n onBlur: PropTypes.func,\r\n validState: PropTypes.object\r\n};\r\n\r\nexport default FormLookupField;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\n\r\nfunction FormHTML({\r\n fieldName,\r\n headerTitle,\r\n headerText,\r\n isHidden,\r\n textClassName\r\n}) {\r\n const fieldClassName = fieldName || formStyleConstants.fieldHeaderClassName;\r\n const hasEmptyValues = isEmpty(headerTitle) && isEmpty(headerText);\r\n return (\r\n isHidden || hasEmptyValues ?\r\n null :\r\n
    \r\n

    {headerTitle}

    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nFormHTML.propTypes = {\r\n fieldName: PropTypes.string,\r\n isHidden: PropTypes.bool,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n textClassName: PropTypes.string,\r\n};\r\n\r\nexport default FormHTML;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport FieldHeader from './FieldHeader';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\n\r\nclass FormMobilePhoneInput extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { validState } = this.props;\r\n\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleFieldIsFilled = this.handleFieldIsFilled.bind(this);\r\n this.handleFlagContainerClick = this.handleFlagContainerClick.bind(this);\r\n this.handleFlagsListContainer = this.handleFlagsListContainer.bind(this);\r\n this.handleListItemEnter = this.handleListItemEnter.bind(this);\r\n this.handleListItemLeave = this.handleListItemLeave.bind(this);\r\n this.handleCountryItemClick = this.handleCountryItemClick.bind(this);\r\n this.getProcessedDefaultValue = this.getProcessedDefaultValue.bind(this);\r\n this.getRetrievedDefaultValue = this.getRetrievedDefaultValue.bind(this);\r\n\r\n this.box = React.createRef();\r\n this.flagsListContainer = React.createRef();\r\n\r\n const processedDefaultValue = this.getProcessedDefaultValue();\r\n\r\n this.initialState = {\r\n ...processedDefaultValue,\r\n isValid: true,\r\n errorMessage: formMessageConstants.emptyString\r\n };\r\n\r\n if (validState) {\r\n this.initialState.isValid = validState.isValid;\r\n this.initialState.errorMessage = validState.errorMessage;\r\n }\r\n\r\n this.state = this.initialState;\r\n }\r\n componentDidMount() {\r\n document.addEventListener('click', this.handleOutsideClick);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n let defaultValue = this.props.defaultValue;\r\n\r\n if (_.isEmpty(defaultValue)) {\r\n defaultValue = {};\r\n }\r\n\r\n if (_.isEmpty(nextProps.defaultValue) || defaultValue.phoneNumber === nextProps.defaultValue.phoneNumber) {\r\n return;\r\n }\r\n\r\n if (!_.isEmpty(nextProps.defaultValue)) {\r\n const retrievedDefaultValue = this.getRetrievedDefaultValue(nextProps.defaultValue);\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ...retrievedDefaultValue\r\n }));\r\n\r\n return;\r\n }\r\n\r\n const processedDefaultValue = this.getProcessedDefaultValue();\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n processedDefaultValue\r\n }));\r\n }\r\n\r\n componentWillUnmount(){\r\n document.removeEventListener('click', this.handleOutsideClick);\r\n }\r\n\r\n getRetrievedDefaultValue(selectedValue) {\r\n const { phoneNumber, selectedCountry } = selectedValue;\r\n\r\n return { defaultValue: phoneNumber, selectedCountry, isFilled: true };\r\n }\r\n\r\n getProcessedDefaultValue() {\r\n const { defaultValue, countries } = this.props;\r\n\r\n let phoneNumber = formMessageConstants.emptyString;\r\n let selectedCountry = countries.find((country) => country.code === 'GB');\r\n\r\n if (!_.isEmpty(defaultValue)) {\r\n phoneNumber = defaultValue.phoneNumber;\r\n selectedCountry = defaultValue.selectedCountry;\r\n }\r\n\r\n return { defaultValue: phoneNumber, selectedCountry, isFilled: !isEmpty(defaultValue) };\r\n }\r\n\r\n handleOutsideClick = (event) => {\r\n if (this.box && !this.box.current.contains(event.target) & !this.flagsListContainer.current.contains(event.target)) {\r\n if (!this.flagsListContainer.current.classList.contains('display-flags-list')) {\r\n return;\r\n }\r\n \r\n this.flagsListContainer.current.classList.remove('display-flags-list');\r\n }\r\n }\r\n\r\n handleChange(event) {\r\n const { onChange } = this.props;\r\n const { value } = event.target;\r\n const { selectedCountry } = this.state;\r\n\r\n onChange({\r\n selectedCountry: selectedCountry,\r\n phoneNumber: value\r\n });\r\n\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n defaultValue: value\r\n })\r\n );\r\n }\r\n\r\n handleBlur(event) {\r\n const { onBlur } = this.props;\r\n const { selectedCountry } = this.state;\r\n const { value } = event.target;\r\n this.handleFieldIsFilled(value);\r\n\r\n if (onBlur) {\r\n onBlur({\r\n selectedCountry: selectedCountry,\r\n phoneNumber: value\r\n });\r\n }\r\n }\r\n\r\n handleFieldIsFilled(value) {\r\n const isFilled = value !== formMessageConstants.emptyString;\r\n this.setState((state) => ({ ...state, isFilled }));\r\n }\r\n\r\n handleFlagContainerClick(event) {\r\n const { isDisabled } = this.props;\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (isDisabled) {\r\n return;\r\n }\r\n\r\n this.flagsListContainer.current.classList.toggle('display-flags-list');\r\n }\r\n\r\n handleFlagsListContainer(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (!this.flagsListContainer.current.classList.contains('display-flags-list')) {\r\n return;\r\n }\r\n\r\n this.flagsListContainer.current.classList.remove('display-flags-list');\r\n }\r\n\r\n handleListItemEnter(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n event.target.classList.add('country-list-item-highlight');\r\n }\r\n\r\n handleListItemLeave(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n event.target.classList.remove('country-list-item-highlight');\r\n }\r\n\r\n handleCountryItemClick(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (_.isEmpty(event) ||\r\n _.isEmpty(event.currentTarget) ||\r\n _.isEmpty(event.currentTarget.children)) {\r\n return;\r\n }\r\n\r\n const targetChildren = event.currentTarget.children;\r\n const selectedCountryItem = targetChildren[1];\r\n const selectedCountryPhonePrefix = targetChildren[2];\r\n\r\n if (_.isEmpty(selectedCountryItem) ||\r\n _.isEmpty(selectedCountryPhonePrefix)) {\r\n return;\r\n }\r\n\r\n const { onChange } = this.props;\r\n const { defaultValue } = this.state;\r\n const { countries } = this.props;\r\n\r\n const selectedCountryItemValue = selectedCountryItem.innerText.trim();\r\n const selectedCountryPhonePrefixValue = selectedCountryPhonePrefix.innerText.trim();\r\n\r\n const selectedCountry = countries.find((country) => country.label === selectedCountryItemValue &&\r\n country.phonePrefix === selectedCountryPhonePrefixValue);\r\n this.flagsListContainer.current.classList.remove('display-flags-list');\r\n\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n selectedCountry\r\n })\r\n );\r\n\r\n onChange({\r\n selectedCountry,\r\n phoneNumber: defaultValue\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n name,\r\n label,\r\n isHidden,\r\n headerTitle,\r\n headerText,\r\n countries,\r\n isDisabled,\r\n validState,\r\n formRef\r\n } = this.props;\r\n\r\n const { isValid, errorMessage } = validState || this.state;\r\n const { defaultValue, isFilled, selectedCountry } = this.state;\r\n const fieldClassName = name || formStyleConstants.customFieldClassName;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n {selectedCountry &&\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    }\r\n\r\n \r\n \r\n \r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n
    \r\n \r\n
    \r\n
      \r\n {countries.map((country) => {\r\n return
    • \r\n
      \r\n {country.flag && }\r\n
      \r\n {country.label}\r\n {country.phonePrefix}\r\n
    • ;\r\n })}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormMobilePhoneInput.propTypes = {\r\n formRef: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n defaultValue: PropTypes.object,\r\n countries: PropTypes.array,\r\n onChange: PropTypes.func.isRequired,\r\n onBlur: PropTypes.func,\r\n validState: PropTypes.object\r\n};\r\n\r\nexport default FormMobilePhoneInput;\r\n","import React, { Component, Fragment } from 'react';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport PropTypes from 'prop-types';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faInfoCircle } from '@fortawesome/free-solid-svg-icons';\r\n\r\nimport { SitecoreImageField } from 'components/sitecore-fields';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\n\r\nclass FormMastercardField extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { validState, defaultValue } = this.props;\r\n\r\n this.handleBlur = this.handleBlur.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleChangeCallback = this.handleChangeCallback.bind(this);\r\n this.handleFieldIsFilled = this.handleFieldIsFilled.bind(this);\r\n\r\n this.initialState = {\r\n defaultValue: defaultValue || formMessageConstants.emptyString,\r\n isFilled: !isEmpty(defaultValue),\r\n isValid: true,\r\n errorMessage: ''\r\n };\r\n if (validState) {\r\n this.initialState.isValid = validState.isValid;\r\n this.initialState.errorMessage = validState.errorMessage;\r\n }\r\n this.state = this.initialState;\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (this.props.defaultValue === nextProps.defaultValue) {\r\n return;\r\n }\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n defaultValue: nextProps.defaultValue || formMessageConstants.emptyString,\r\n isFilled: !isEmpty(nextProps.defaultValue)\r\n }));\r\n }\r\n\r\n handleChange(event) {\r\n const { value } = event.target;\r\n const { onChange } = this.props;\r\n onChange(event);\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n defaultValue: value\r\n })\r\n );\r\n }\r\n\r\n handleChangeCallback() {\r\n const { onChange } = this.props;\r\n onChange(this.state);\r\n }\r\n\r\n handleBlur(event) {\r\n const { onBlur } = this.props;\r\n const { value } = event.target;\r\n this.handleFieldIsFilled(value);\r\n if (onBlur) {\r\n onBlur(event);\r\n }\r\n }\r\n\r\n handleFieldIsFilled(value) {\r\n const isFilled = value !== '';\r\n this.setState((state) => ({ ...state, isFilled }));\r\n }\r\n\r\n render() {\r\n const {\r\n name,\r\n autocompleteValue,\r\n label,\r\n isHidden,\r\n headerTitle,\r\n headerText,\r\n size,\r\n validState,\r\n formRef,\r\n isDisabled,\r\n tooltipText,\r\n mastercardLogo\r\n } = this.props;\r\n\r\n const { isValid, errorMessage } = validState || this.state;\r\n const { defaultValue, isFilled } = this.state;\r\n const fieldClassName = name || formStyleConstants.customFieldClassName;\r\n\r\n return (\r\n \r\n
    \r\n {!isHidden ?\r\n
    \r\n
    \r\n
    \r\n

    \r\n {headerTitle}\r\n

    \r\n { mastercardLogo &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n !isEmpty(headerText) ?
    :\r\n null\r\n }\r\n
    \r\n \r\n {\r\n !isEmpty(tooltipText) ?
    \r\n
    : null\r\n }\r\n \r\n \r\n\r\n {!isValid ?
      \r\n
    • {errorMessage}
    • \r\n
    : null}\r\n
    \r\n \r\n
    \r\n
    \r\n
    :\r\n null}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormMastercardField.propTypes = {\r\n formRef: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n autocompleteValue: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n headerTitle: PropTypes.string,\r\n headerText: PropTypes.string,\r\n size: PropTypes.string,\r\n defaultValue: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n onBlur: PropTypes.func,\r\n validState: PropTypes.object,\r\n isDisabled: PropTypes.bool,\r\n tooltipText: PropTypes.string,\r\n mastercardLogo: PropTypes.object\r\n};\r\n\r\nexport default FormMastercardField;\r\n","import React, { Component, Fragment } from 'react';\r\nimport '../../../../form-text-and-image-field'\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\n\r\nclass FormTextAndImageField extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n getTagStyle(){\r\n const { tag } = this.props;\r\n\r\n if(!hasValue(tag) || !hasValue(tag.title)){\r\n return null\r\n }\r\n const { backgroundColor, textColor } = tag;\r\n return hasValue(backgroundColor) || hasValue(textColor) \r\n ? { backgroundColor: backgroundColor, color: textColor}\r\n : { };\r\n }\r\n\r\n render() {\r\n const { formRef, imageSrc, tag, headerTitle, headerText } = this.props;\r\n const displayTag = hasValue(tag) && hasValue(tag.title);\r\n const inlineTagMessageStyle = displayTag ? this.getTagStyle() : {};\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n displayTag &&\r\n
    \r\n {tag.title}\r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n hasValue(headerTitle) &&\r\n
    {headerTitle}
    \r\n }\r\n {\r\n displayTag &&\r\n
    \r\n {tag.title}\r\n
    \r\n }\r\n
    \r\n {\r\n hasValue(headerText) && \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nFormTextAndImageField.propTypes = {\r\n};\r\n\r\nexport default FormTextAndImageField;\r\n","import React from 'react';\r\nimport FormTextInput from '../../common/utility/FormTextInput';\r\nimport FormCaptchaField from '../../common/utility/FormCaptchaField';\r\nimport FormOffers from '../../common/FormOffers';\r\nimport FormPolicy from '../../common/FormPolicy';\r\nimport FormConsentDetails from '../../common/FormConsentDetails';\r\nimport FormSelectField from '../../common/utility/FormSelectField';\r\nimport FormDateField from '../../common/utility/FormDateField';\r\nimport FormMultipleInterests from '../../common/FormMultipleInterests';\r\nimport FormContactInfo from '../../common/FormContactInfo';\r\nimport FormCheckboxInput from '../../common/utility/FormChecboxInput';\r\nimport FormLookupField from '../../common/utility/FormLookupField';\r\nimport FormHTML from '../../common/utility/FormHTML';\r\nimport FormMobilePhoneInput from '../../common/utility/FormMobilePhoneInput';\r\nimport FormMastercardField from '../../common/utility/FormMastercardField';\r\nimport FormTextAndImageField from '../../common/utility/FormTextAndImageField';\r\n\r\nexport const formFields = {\r\n /* eslint-disable */\r\n text: (fieldProperties) => {\r\n return \r\n },\r\n emailAddress: (fieldProperties) => {\r\n return \r\n },\r\n username: (fieldProperties) => formFields['text'](fieldProperties),\r\n confirmEmailAddress: (fieldProperties) => formFields['text'](fieldProperties),\r\n oldPassword: (fieldProperties) => {\r\n fieldProperties['isPassword'] = true;\r\n return formFields['text'](fieldProperties);\r\n },\r\n password: (fieldProperties) => {\r\n fieldProperties['isPassword'] = true;\r\n return formFields['text'](fieldProperties);\r\n },\r\n confirmPassword: (fieldProperties) => {\r\n fieldProperties['isPassword'] = true;\r\n return formFields['text'](fieldProperties);\r\n },\r\n title: (fieldProperties) => {\r\n return \r\n },\r\n firstName: (fieldProperties) => formFields['text'](fieldProperties),\r\n lastName: (fieldProperties) => formFields['text'](fieldProperties),\r\n dateOfBirth: (fieldProperties) => {\r\n return \r\n },\r\n addressLine1: (fieldProperties) => formFields['text'](fieldProperties),\r\n addressLine2: (fieldProperties) => formFields['text'](fieldProperties),\r\n addressLine3: (fieldProperties) => formFields['text'](fieldProperties),\r\n postcode: (fieldProperties) => formFields['text'](fieldProperties),\r\n mobilePhone: (fieldProperties) => {\r\n return \r\n },\r\n city: (fieldProperties) => formFields['text'](fieldProperties),\r\n country: (fieldProperties) => {\r\n return \r\n },\r\n county: (fieldProperties) => {\r\n const { fieldOptions } = fieldProperties;\r\n return fieldOptions !== undefined && fieldOptions.length > 0 ? () : null\r\n },\r\n state: (fieldProperties) => {\r\n const { fieldOptions } = fieldProperties;\r\n return fieldOptions !== undefined && fieldOptions.length > 0 ? () : null\r\n },\r\n mainAddress: (fieldProperties) => {\r\n return \r\n },\r\n shippingAddress: (fieldProperties) => {\r\n return \r\n },\r\n billingAddress: (fieldProperties) => {\r\n return \r\n },\r\n favoritePlayer: (fieldProperties) => {\r\n return \r\n },\r\n venues: (fieldProperties) => {\r\n return \r\n },\r\n consent: (fieldProperties) => {\r\n return \r\n },\r\n offersDetails: (fieldProperties) => {\r\n return \r\n },\r\n privacyPolicy: (fieldProperties) => {\r\n return \r\n },\r\n oneClubTermsAndServices: (fieldProperties) => formFields['privacyPolicy'](fieldProperties),\r\n contactDetails: (fieldProperties) => {\r\n return \r\n },\r\n verificationCode: (fieldProperties) => {\r\n return ;\r\n },\r\n becomeOneClubMember: (fieldProperties) => {\r\n return \r\n },\r\n becomeOneClubMemberInfo: (fieldProperties) => {\r\n return \r\n \r\n },\r\n mainAddressLabel: (fieldProperties) => {\r\n return \r\n \r\n },\r\n championshipSection: (fieldProperties) => formFields['venues'](fieldProperties),\r\n channelSection: (fieldProperties) => formFields['venues'](fieldProperties),\r\n interestSection: (fieldProperties) => formFields['venues'](fieldProperties),\r\n raMemberId: (fieldProperties) => formFields['text'](fieldProperties),\r\n reCaptcha: (fieldProperties) => {\r\n return \r\n },\r\n mastercard: (fieldProperties) => {\r\n return \r\n },\r\n textAndImageTile: (fieldProperties) => {\r\n return \r\n }\r\n /* eslint-enable */\r\n};\r\n","import { \r\n hasValue,\r\n findElementByProperty,\r\n getProperty,\r\n getObjectKeyByValue,\r\n isNullOrUndefined\r\n} from \"../../../../../../general/js/general-helpers\";\r\nimport { formMessageConstants } from \"../../../utils/constants/form-message-constants\";\r\nimport { formFieldConstants } from \"../../../utils/constants/form-field-constants\";\r\nimport { ssoFieldTypes } from \"../../../utils/field-types\";\r\nimport { ssoFormTypes } from \"../../../utils/form-types\";\r\n\r\nexport const findOptionInSelectField = (selectField = {}, optionValue = '', propertyToReturn = '') => {\r\n if(!hasValue(selectField) || !hasValue(optionValue)){\r\n return formMessageConstants.emptyString;\r\n }\r\n\r\n const { options } = selectField;\r\n \r\n if(!hasValue(options)){\r\n return formMessageConstants.emptyString;\r\n }\r\n\r\n let selectedOption = findElementByProperty(options, formFieldConstants.selectFieldOptionsCode, optionValue);\r\n\r\n if (hasValue(selectedOption))\r\n return hasValue(propertyToReturn) ? getProperty(selectedOption, propertyToReturn) : selectedOption;\r\n\r\n selectedOption = findElementByProperty(options, formFieldConstants.selectFieldOptionsLabel, optionValue);\r\n\r\n return hasValue(propertyToReturn) ? getProperty(selectedOption, propertyToReturn) : selectedOption;\r\n};\r\n\r\nexport const isTextAndImageField = (formDataKey = '') => {\r\n if(!hasValue(formDataKey)){\r\n return false;\r\n }\r\n\r\n const ssoFieldType = getObjectKeyByValue(ssoFieldTypes, ssoFieldTypes.TextAndImageTile).toLowerCase();\r\n\r\n\r\n return formDataKey.toLowerCase().includes(ssoFieldType);\r\n}\r\n\r\nexport const hasFormFields = (formData = {}) => {\r\n if(!hasValue(formData)){\r\n return false;\r\n }\r\n\r\n var fields = Object.entries(formData).filter(([key, value]) => !isNullOrUndefined(value) && !isNullOrUndefined(value.fieldType));\r\n\r\n if(!hasValue(fields)){\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport const isBallotForm = (formType = null) => {\r\n if(!hasValue(formType)){\r\n return false;\r\n }\r\n\r\n return formType === ssoFormTypes.BallotSummaryForm\r\n || formType === ssoFormTypes.BallotLiteRegister\r\n || formType === ssoFormTypes.BallotFullRegister\r\n || formType === ssoFormTypes.BallotSignInForm\r\n || formType === ssoFormTypes.BallotForgotPassword;\r\n};","/* eslint-disable no-unused-vars */\r\nimport { ssoFieldTypes } from '../../utils/field-types';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport * as formFieldsConfig from './form-fields-config';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport { formStyleConstants } from '../../utils/constants/form-style-constants';\r\nimport { createDateFromExisting } from '../../utils/date-utils';\r\nimport { isTextAndImageField } from './form-helpers/form-field-helpers';\r\n\r\nconst FormBuilder = ({\r\n formData,\r\n formReferences,\r\n verificationCode,\r\n countyData,\r\n stateData,\r\n countryData,\r\n handleChange,\r\n handleFieldChange,\r\n handleConfirmEmailChange,\r\n handleOldPasswordChange,\r\n handleConfirmPasswordChange,\r\n handleDateChange,\r\n handleMobilePhoneChange,\r\n handleCountryChange,\r\n handleCaptchaChange,\r\n handleFieldValidState,\r\n handleOnBlur,\r\n handleMastercardNumberChange,\r\n isReadOnly,\r\n}) => {\r\n function buildForm() {\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n\r\n if (isEmpty(formReferences)) {\r\n formReferences = [];\r\n }\r\n\r\n /* eslint-disable-next-line */\r\n var array = Object.entries(formData).filter(([key, value]) => value != undefined && value.fieldType !== undefined);\r\n\r\n array.sort(([, a], [, b]) => {\r\n const firstItemOrderNo = getOrderNo(a);\r\n const secondItemOrderNo = getOrderNo(b);\r\n\r\n return firstItemOrderNo - secondItemOrderNo;\r\n });\r\n\r\n return array.filter(([key, value]) => value !== undefined && value.fieldType !== undefined)\r\n .map(([formDataKey, formDataValue]) => {\r\n const fieldName = formDataKey;\r\n\r\n if (isTextAndImageField(formDataKey)) {\r\n formDataKey = formDataKey.substring(0, formDataKey.indexOf('-'));\r\n }\r\n\r\n const formField = formFieldsConfig.formFields[formDataKey];\r\n\r\n if (!formField) {\r\n return null;\r\n }\r\n\r\n let fieldOptions = isEmpty(formDataValue.options) ? formDataValue.choices : formDataValue.options;\r\n\r\n if (formDataValue.fieldType === ssoFieldTypes.MobilePhone) {\r\n const countryFormData = formData[formConstants.country];\r\n const countries = countryFormData.options;\r\n fieldOptions = countries;\r\n }\r\n\r\n const fieldProperties = getFieldProperties({\r\n fieldType: formDataValue.fieldType,\r\n fieldLabel: formDataValue.label,\r\n fieldHeaderTitle: formDataValue.fieldHeaderTitle,\r\n fieldHeaderText: formDataValue.fieldHeaderText,\r\n isHidden: formDataValue.isHidden,\r\n defaultValue: formDataValue.defaultValue,\r\n fieldSuggestions: formDataValue.suggestions,\r\n fieldOptions,\r\n isDisabled: isReadOnly || formDataValue.isDisabled,\r\n tooltipText: formDataValue.tooltipText,\r\n imageSrc: formDataValue.imageSrc,\r\n tag: formDataValue.tag\r\n }, fieldName, formReferences[fieldName]);\r\n return formField(fieldProperties);\r\n });\r\n\r\n function getOrderNo(item) {\r\n return item.orderNo !== undefined ? item.orderNo : Number.MAX_SAFE_INTEGER;\r\n }\r\n }\r\n\r\n function getFieldProperties({\r\n fieldType,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldSuggestions,\r\n fieldOptions,\r\n isDisabled,\r\n tooltipText,\r\n imageSrc,\r\n tag\r\n }, fieldName, formReference) {\r\n if (fieldType === ssoFieldTypes.EmailAddress) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'email',\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isDisabled,\r\n tooltipText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState,\r\n handleOnBlur\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.ConfirmEmailAddress) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'email',\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden: true,\r\n defaultValue,\r\n fieldChangeCallback: handleConfirmEmailChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Username) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'username email',\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Password) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'current-password new-password',\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.OldPassword) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'current-password',\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleOldPasswordChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.ConfirmPassword) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'new-password',\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleConfirmPasswordChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.FirstName) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'given-name',\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.RaMemberId) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'given-name',\r\n formReference,\r\n isDisabled,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.LastName) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'family-name',\r\n formReference,\r\n isDisabled,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.AddressLine1) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'address-line-1',\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.AddressLine2) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'address-line-2',\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.AddressLine3) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'address-line-3',\r\n formReference,\r\n isDisabled,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.City) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'shipping locality',\r\n formReference,\r\n isDisabled,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.MainAddress ||\r\n fieldType === ssoFieldTypes.ShippingAddress ||\r\n fieldType === ssoFieldTypes.BillingAddress ||\r\n fieldType === ssoFieldTypes.BecomeOneClubMember) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.BecomeOneClubMemberInfo) {\r\n return {\r\n fieldName,\r\n fieldHeaderText,\r\n isHidden,\r\n fieldHeaderTitle\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.MainAddressLabel) {\r\n return {\r\n fieldName,\r\n fieldHeaderText,\r\n isDisabled,\r\n fieldHeaderTitle\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Postcode) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'postal-code',\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n isDisabled,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldSize: formStyleConstants.smallField,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.MobilePhone) {\r\n return {\r\n fieldName,\r\n autocompleteValue: 'tel',\r\n formReference,\r\n isDisabled,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldOptions,\r\n fieldChangeCallback: handleMobilePhoneChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Title) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n isDisabled,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldOptions,\r\n propertyForValue: formConstants.titlePropertyForValue,\r\n fieldSize: formStyleConstants.smallField,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.DateOfBirth) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue: defaultValue === undefined || defaultValue === null ? {} : createDateFromExisting(defaultValue),\r\n fieldChangeCallback: handleDateChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Country) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldOptions,\r\n propertyForValue: formConstants.countryPropertyForValue,\r\n fieldChangeCallback: handleCountryChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.County) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel: countyData.label,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isDisabled,\r\n isHidden,\r\n defaultValue,\r\n fieldOptions: countyData.availableCounties,\r\n propertyForValue: formConstants.countyPropertyForValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.State) {\r\n return {\r\n fieldName,\r\n formReference,\r\n isDisabled,\r\n fieldLabel: stateData.label,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldOptions: stateData.availableStates,\r\n propertyForValue: formConstants.statePropertyForValue,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.FavoritePlayer) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n fieldSuggestions,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Venues) {\r\n return {\r\n fieldName,\r\n formReference,\r\n isDisabled,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n interestsData: { choices: fieldOptions, label: fieldLabel },\r\n name: formConstants.venues,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.OffersDetails) {\r\n const { offersDetails } = formData;\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldHeaderTitle,\r\n isDisabled,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n offersDetails,\r\n fieldChangeCallback: handleChange,\r\n acceptOffersName: formConstants.acceptOffers,\r\n refuseOffersName: formConstants.refuseOffers,\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Consent) {\r\n const { consentDetails } = formData;\r\n return {\r\n fieldName,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isDisabled,\r\n isHidden,\r\n defaultValue,\r\n formReference,\r\n consentDetails\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.PrivacyPolicy) {\r\n const { privacyPolicy } = formData;\r\n return {\r\n fieldName,\r\n formReference,\r\n defaultValue,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n policy: privacyPolicy.policy,\r\n consentLabel: privacyPolicy.label,\r\n showConsent: privacyPolicy.showConsent,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.OneClubTermsAndServices) {\r\n const { oneClubTermsAndServices } = formData;\r\n return {\r\n fieldName,\r\n formReference,\r\n defaultValue,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n policy: oneClubTermsAndServices.policy,\r\n consentLabel: oneClubTermsAndServices.label,\r\n showConsent: oneClubTermsAndServices.showConsent,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.ContactDetails) {\r\n const { contactDetails } = formData;\r\n return { fieldName: contactDetails.fieldKey, contactDetails };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.VerificationCode) {\r\n return {\r\n fieldName,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue: verificationCode,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.ChampionshipSection) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel,\r\n isDisabled,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n interestsData: { choices: fieldOptions, label: fieldLabel },\r\n name: formConstants.championshipSection,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.ChannelSection) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n isDisabled,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n interestsData: { choices: fieldOptions, label: fieldLabel },\r\n name: formConstants.channelSection,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.InterestSection) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n isDisabled,\r\n fieldHeaderText,\r\n isHidden,\r\n defaultValue,\r\n interestsData: { choices: fieldOptions, label: fieldLabel },\r\n name: formConstants.interestSection,\r\n fieldChangeCallback: handleFieldChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Captcha) {\r\n return {\r\n fieldName,\r\n formReference,\r\n isHidden,\r\n fieldChangeCallback: handleCaptchaChange,\r\n fieldValidStateCallback: handleFieldValidState\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.Mastercard) {\r\n const { mastercardLogo } = formData;\r\n return {\r\n fieldName,\r\n autocompleteValue: 'mastercard',\r\n formReference,\r\n fieldLabel,\r\n fieldHeaderTitle,\r\n fieldHeaderText,\r\n isDisabled,\r\n isHidden,\r\n defaultValue,\r\n fieldChangeCallback: handleMastercardNumberChange,\r\n fieldValidStateCallback: handleFieldValidState,\r\n mastercardLogo\r\n };\r\n }\r\n\r\n if (fieldType === ssoFieldTypes.TextAndImageTile) {\r\n return {\r\n fieldName,\r\n formReference,\r\n fieldHeaderTitle,\r\n isDisabled,\r\n fieldHeaderText,\r\n imageSrc,\r\n tag\r\n };\r\n }\r\n\r\n return {};\r\n }\r\n\r\n return buildForm();\r\n};\r\n\r\nexport default FormBuilder;\r\n","export const REGISTER_USER = 'REGISTER_USER';\r\nexport const REGISTER_USER_SUCCESS = 'REGISTER_USER_SUCCESS';\r\nexport const REGISTER_USER_ERROR = 'REGISTER_USER_ERROR';\r\nexport const LOAD_REGISTER_FORM_DATA_SUCCESS = 'LOAD_REGISTER_FORM_DATA_SUCCESS';\r\nexport const LOAD_REGISTER_FORM_DATA_ERROR = 'LOAD_REGISTER_FORM_DATA_ERROR';\r\n\r\nexport const RESEND_EMAIL_VERIFICATION_SUCCESS = 'RESEND_EMAIL_VERIFICATION_SUCCESS';\r\nexport const RESEND_EMAIL_VERIFICATION_ERROR = 'RESEND_EMAIL_VERIFICATION_ERROR';\r\n\r\nexport const RESET_REGISTER_FORM_STATE = 'RESET_REGISTER_FORM_STATE';\r\n\r\nexport const SIGN_IN_USER = 'SIGN_IN_USER';\r\nexport const SIGN_IN_USER_SUCCESS = 'SIGN_IN_USER_SUCCESS';\r\nexport const SIGN_IN_USER_ERROR = 'SIGN_IN_USER_ERROR';\r\nexport const LAST_LOG_IN_UPDATE_SUCCESS = 'LAST_LOG_IN_UPDATE_SUCCESS';\r\nexport const LAST_LOG_IN_UPDATE_ERROR = 'LAST_LOG_IN_UPDATE_ERROR';\r\nexport const NEW_PASSWORD_SAVED_SUCCESS = 'NEW_PASSWORD_SAVED_SUCCESS';\r\nexport const NEW_PASSWORD_SAVED_ERROR = 'NEW_PASSWORD_SAVED_ERROR';\r\nexport const RESET_SIGN_IN_FORM_STATE = 'RESET_SIGN_IN_FORM_STATE';\r\n\r\nexport const SIGN_OUT_USER_SUCCESS = 'SIGN_OUT_USER_SUCCESS';\r\nexport const SIGN_OUT_USER_ERROR = 'SIGN_OUT_USER_ERROR';\r\nexport const LOAD_SIGN_IN_FORM_DATA_SUCCESS = 'LOAD_SIGN_IN_FORM_DATA_SUCCESS';\r\nexport const LOAD_SIGN_IN_FORM_DATA_ERROR = 'LOAD_SIGN_IN_FORM_DATA_ERROR';\r\nexport const LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_SUCCESS = 'LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_SUCCESS';\r\nexport const LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_ERROR = 'LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_ERROR';\r\nexport const LOAD_SIGN_IN_SUCCESS_FORM_DATA_SUCCESS = 'LOAD_SIGN_IN_SUCCESS_FORM_DATA_SUCCESS';\r\n\r\nexport const FORGOT_PASSWORD = 'FORGOT_PASSWORD';\r\nexport const FORGOT_PASSWORD_SUCCESS = 'FORGOT_PASSWORD_SUCCESS';\r\nexport const FORGOT_PASSWORD_ERROR = 'FORGOT_PASSWORD_ERROR';\r\nexport const RESET_FORGOT_PASSWORD_FORM_STATE = 'RESET_FORGOT_PASSWORD_FORM_STATE';\r\nexport const LOAD_FORGOT_PASSWORD_FORM_SUCCESS = 'LOAD_FORGOT_PASSWORD_FORM_SUCCESS';\r\nexport const LOAD_FORGOT_PASSWORD_FORM_ERROR = 'LOAD_FORGOT_PASSWORD_FORM_ERROR';\r\n\r\nexport const RESET_PASSWORD = 'RESET_PASSWORD';\r\nexport const RESET_PASSWORD_SUCCESS = 'RESET_PASSWORD_SUCCESS';\r\nexport const RESET_PASSWORD_ERROR = 'RESET_PASSWORD_ERROR';\r\nexport const LOAD_RESET_PASSWORD_FORM_SUCCESS = 'LOAD_RESET_PASSWORD_FORM_SUCCESS';\r\nexport const LOAD_RESET_PASSWORD_FORM_ERROR = 'LOAD_RESET_PASSWORD_FORM_ERROR';\r\nexport const RESET_RESET_PASSWORD_FORM_STATE = 'RESET_RESET_PASSWORD_FORM_STATE';\r\n\r\nexport const LOAD_HOME_PAGE_TICKETS_DATA_SUCCESS = 'LOAD_HOME_PAGE_TICKETS_DATA_SUCCESS';\r\nexport const LOAD_HOME_PAGE_TICKETS_DATA_ERROR = 'LOAD_HOME_PAGE_TICKETS_DATA_ERROR';\r\nexport const LOAD_USER_DATA_SUCCESS = 'LOAD_USER_DATA_SUCCESS';\r\nexport const LOAD_USER_DATA_ERROR = 'LOAD_USER_DATA_ERROR';\r\nexport const LOAD_ORDER_HISTORY_SUCCESS = 'LOAD_ORDER_HISTORY_SUCCESS';\r\nexport const LOAD_ORDER_HISTORY_ERROR = 'LOAD_ORDER_HISTORY_ERROR';\r\nexport const LOAD_ORDER_HISTORY_PAGES_SUCCESS = 'LOAD_ORDER_HISTORY_PAGES_SUCCESS';\r\nexport const LOAD_ORDER_HISTORY_PAGES_ERROR = 'LOAD_ORDER_HISTORY_PAGES_ERROR';\r\nexport const LOAD_ORDER_DETAILS_SUCCESS = 'LOAD_ORDER_DETAILS_SUCCESS';\r\nexport const LOAD_ORDER_DETAILS_ERROR = 'LOAD_ORDER_DETAILS_ERROR';\r\nexport const LOAD_USER_TICKETS_SUCCESS = 'LOAD_USER_TICKETS_SUCCESS';\r\nexport const LOAD_USER_TICKETS_ERROR = 'LOAD_USER_TICKETS_ERROR';\r\nexport const DOWNLOAD_PDF_FILE_SUCCESS = 'DOWNLOAD_PDF_FILE_SUCCESS';\r\nexport const DOWNLOAD_PDF_FILE_ERROR = 'DOWNLOAD_PDF_FILE_ERROR';\r\nexport const RESUME_PAYMENT_BY_FILE_NUMBER_ERROR = 'RESUME_PAYMENT_BY_FILE_NUMBER_ERROR';\r\nexport const RESUME_PAYMENT_BY_FILE_NUMBER_SUCCESS = 'RESUME_PAYMENT_BY_FILE_NUMBER_SUCCESS';\r\nexport const PRINT_ORDER_SUMMARY_SUCCESS = 'PRINT_ORDER_SUMMARY_SUCCESS';\r\nexport const PRINT_ORDER_SUMMARY_ERROR = 'PRINT_ORDER_SUMMARY_ERROR';\r\nexport const UPDATE_USER_DETAILS_SUCCESS = 'UPDATE_USER_DETAILS_SUCCESS';\r\nexport const UPDATE_USER_DETAILS_ERROR = 'UPDATE_USER_DETAILS_ERROR';\r\nexport const REMOVE_USER_ACCOUNT_SUCCESS = 'REMOVE_USER_ACCOUNT_SUCCESS';\r\nexport const REMOVE_USER_ACCOUNT_ERROR = 'REMOVE_USER_ACCOUNT_ERROR';\r\nexport const UPDATE_USER_ADDRESSES_SUCCESS = 'UPDATE_USER_ADDRESSES_SUCCESS';\r\nexport const UPDATE_USER_ADDRESSES_ERROR = 'UPDATE_USER_ADDRESSES_ERROR';\r\nexport const RESET_USER_ADDRESSES_FORM_STATE = 'RESET_USER_ADDRESSES_FORM_STATE';\r\nexport const USER_ADDRESSES_ERROR_MESSAGE = 'USER_ADDRESSES_ERROR_MESSAGE';\r\n\r\nexport const RESET_USER_DETAILS_FORM_STATE = 'RESET_USER_DETAILS_FORM_STATE';\r\n\r\nexport const CHANGE_PASSWORD_SUCCESS = 'CHANGE_PASSWORD_SUCCESS';\r\nexport const CHANGE_PASSWORD_ERROR = 'CHANGE_PASSWORD_ERROR';\r\nexport const RESET_CHANGE_PASSWORD_FORM_STATE = 'RESET_CHANGE_PASSWORD_FORM_STATE';\r\nexport const RESET_HOME_PAGE_TICKETS_DATA_FORM_STATE = 'RESET_HOME_PAGE_TICKETS_DATA_FORM_STATE';\r\n\r\nexport const UPGRADE_TO_TICKETING_ACCOUNT_SUCCESS = 'UPGRADE_TO_TICKETING_ACCOUNT_SUCCESS';\r\nexport const UPGRADE_TO_TICKETING_ACCOUNT_ERROR = 'UPGRADE_TO_TICKETING_ACCOUNT_ERROR';\r\nexport const RESET_UPGRADE_ACCOUNT_FORM = 'RESET_UPGRADE_ACCOUNT_FORM';\r\n\r\nexport const LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_SUCCESS = 'LOAD_UPGRADE_TO_ONE_CLUB_ACCOUNT_SUCCESS';\r\nexport const LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_ERROR = 'LOAD_UPGRADE_TO_ONE_CLUB_ACCOUNT_ERROR';\r\n\r\nexport const SEARCH_ADDRESS_SUCCESS = 'SEARCH_ADDRESS_SUCCESS';\r\nexport const SEARCH_ADDRESS_ERROR = 'SEARCH_ADDRESS_ERROR';\r\n\r\nexport const RETRIEVE_ADDRESS_SUCCESS = 'RETRIEVE_ADDRESS_SUCCESS';\r\nexport const RETRIEVE_ADDRESS_ERROR = 'RETRIEVE_ADDRESS_ERROR';\r\nexport const RESET_RETRIEVE_USER_ADDRESS = 'RESET_RETRIEVE_USER_ADDRESS';\r\n\r\nexport const PURCHASE_ATTEMPT_SUCCESS = 'PURCHASE_ATTEMPT_SUCCESS';\r\nexport const PURCHASE_ATTEMPT_ERROR = 'PURCHASE_ATTEMPT_ERROR';\r\n\r\nexport const BEGIN_API_CALL = 'BEGIN_API_CALL';\r\nexport const API_CALL_ERROR = 'API_CALL_ERROR';\r\nexport const API_CALL_STATE_RESET = 'API_CALL_STATE_RESET';\r\n\r\nexport const LOAD_VERIFY_EMAIL_FORM_SUCCESS = 'LOAD_VERIFY_EMAIL_FORM_SUCCESS';\r\nexport const LOAD_VERIFY_EMAIL_FORM_ERROR = 'LOAD_VERIFY_EMAIL_FORM_ERROR';\r\nexport const VERIFY_EMAIL_SUCCESS = 'VERIFY_EMAIL_SUCCESS';\r\nexport const VERIFY_EMAIL_ERROR = 'VERIFY_EMAIL_ERROR';\r\nexport const RESET_VERIFY_EMAIL_FORM_STATE = 'RESET_VERIFY_EMAIL_FORM_STATE';\r\n\r\nexport const UPDATER_USER_EMAIL_SUCCESS = 'UPDATER_USER_EMAIL_SUCCESS';\r\n\r\nexport const UPDATE_ONE_CLUB_MEMBERSHIP_ERROR = 'UPDATE_ONE_CLUB_MEMBERSHIP_ERROR';\r\nexport const UPDATE_ONE_CLUB_MEMBERSHIP_SUCCESS = 'UPDATE_ONE_CLUB_MEMBERSHIP_SUCCESS';\r\n\r\nexport const UPDATE_OPTINS_ERROR = 'UPDATE_OPTINS_ERROR';\r\nexport const UPDATE_OPTINS_SUCCESS = 'UPDATE_OPTINS_SUCCESS';\r\n\r\nexport const VERIFY_IF_USER_EMAIL_EXISTS_ERROR = 'VERIFY_IF_USER_EMAIL_EXISTS_ERROR';\r\nexport const VERIFY_IF_USER_EMAIL_EXISTS_SUCCESS = 'VERIFY_IF_USER_EMAIL_EXISTS_SUCCESS';\r\n\r\nexport const RESALE_TICKETS_REDIRECT_URL_ERROR = 'RESALE_TICKETS_REDIRECT_URL_ERROR';\r\n\r\nexport const SAVE_USER_TO_ADDRESS_BOOK_SUCCESS = 'SAVE_USER_TO_ADDRESS_BOOK_SUCCESS';\r\nexport const SAVE_USER_TO_ADDRESS_BOOK_ERROR_MESSAGE = 'SAVE_USER_TO_ADDRESS_BOOK_ERROR_MESSAGE';\r\nexport const LOAD_ITEM_LIST_FORM_DATA_SUCCESS = 'LOAD_ITEM_LIST_FORM_DATA_SUCCESS';\r\nexport const LOAD_ITEM_LIST_FORM_DATA_ERROR = 'LOAD_ITEM_LIST_FORM_DATA_ERROR';\r\n","export const SERVER_ERROR_MESSAGE = 'Something went wrong.';\r\n\r\nexport const UPDATE_USER_DETAILS_SUCCESSFULLY = 'Your details have been updated successfully.';\r\nexport const CHANGE_PASSWORD_SUCCESSFULLY = 'Your password has been updated successfully.';\r\n\r\nexport const USER_REGISTRATION_SUCCESSFULLY = 'Your registration has been complete. You can sign in after verifying your email address.';\r\n\r\nexport const RESEND_EMAIL_VERIFICATION_SUCCESSFULLY = 'The verification email has been resent to the given address.';\r\n\r\nexport const SIGN_IN_USER_SUCCESSFULLY = 'The user has been signed in successfully.';\r\nexport const SIGN_OUT_USER_SUCCESSFULLY = 'The user has been signed out successfully.';\r\n\r\nexport const RESET_PASSWORD_SUCCESSFULLY = 'The password has been reset successfully.';\r\n\r\nexport const FORGOT_PASSWORD_SUCCESSFULLY = 'An email with more information about how to.';\r\n\r\nexport const UPGRADE_TO_TICKETING_ACCOUNT_SUCCESSFULLY = 'Your account has been upgraded successfully.';\r\n\r\nexport const PASSWORD_RESET_REQUIRED = 'We have made some changes to our system to improve your experience. This requires you to create a new password, please do this by clicking on the \\'Forgotten Password\\' below.';\r\n\r\nexport const MUST_CONFIRM_EMAIL_MESSAGE = 'Your email is not confirmed, please check your email and confirm your registration.';\r\n\r\nexport const MISSING_USER = 'User does not exist. Please register above.';\r\n","import * as types from './action-types';\r\n\r\nexport function beginApiCall() {\r\n return { type: types.BEGIN_API_CALL };\r\n}\r\n\r\nexport function apiCallError(error) {\r\n return { type: types.API_CALL_ERROR, error };\r\n}\r\n\r\nexport function apiCallStateReset(error) {\r\n return { type: types.API_CALL_STATE_RESET, error };\r\n}\r\n","/* eslint-disable no-shadow */\r\nimport * as types from './action-types';\r\nimport * as registerFormApi from '../api/register-form-api';\r\nimport * as apiResponseMessages from './api-response-messages';\r\nimport * as dataFormatHelper from './helpers/data-format-helper';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\n\r\nexport function loadSSORegisterFormDataSuccess(registerFormData) {\r\n return { type: types.LOAD_REGISTER_FORM_DATA_SUCCESS, registerFormData };\r\n}\r\n\r\nexport function loadSSORegisterFormDataError() {\r\n return { type: types.LOAD_REGISTER_FORM_DATA_ERROR };\r\n}\r\n\r\nexport function registerUserSuccess(userName, userRegistrationMessages) {\r\n return { type: types.REGISTER_USER_SUCCESS, userName, userRegistrationMessages };\r\n}\r\n\r\nexport function registerUserError(userRegistrationMessages) {\r\n return { type: types.REGISTER_USER_ERROR, userRegistrationMessages };\r\n}\r\n\r\nexport function resendEmailVerificationSuccess(resendEmailVerificationMessages) {\r\n return { type: types.RESEND_EMAIL_VERIFICATION_SUCCESS, resendEmailVerificationMessages };\r\n}\r\n\r\nexport function resendEmailVerificationError(resendEmailVerificationMessages) {\r\n return { type: types.RESEND_EMAIL_VERIFICATION_ERROR, resendEmailVerificationMessages };\r\n}\r\n\r\nexport function resetRegisterFormState() {\r\n return { type: types.RESET_REGISTER_FORM_STATE };\r\n}\r\n\r\nexport function verifyIfUserEmailExistsError(verifyIfUserEmailExistsErrorMessages) {\r\n return { type: types.VERIFY_IF_USER_EMAIL_EXISTS_ERROR, verifyIfUserEmailExistsErrorMessages };\r\n}\r\n\r\nexport function verifyIfUserEmailExistsSuccess(verifyIfUserEmailExistsSuccess) {\r\n return { type: types.VERIFY_IF_USER_EMAIL_EXISTS_SUCCESS, verifyIfUserEmailExistsSuccess };\r\n}\r\n\r\nexport function loadSSODefaultRegisterFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return registerFormApi.getSSODefaultRegisterFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSORegisterFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSORegisterFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSORegisterFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function loadSSOOneClubRegisterFormData(formDataUrl) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return registerFormApi.getSSOOneClubRegisterFormData(formDataUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSORegisterFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSORegisterFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSORegisterFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function loadSSOTicketingRegisterFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return registerFormApi.getSSOTicketingRegisterFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSORegisterFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSORegisterFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSORegisterFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function loadSSORaMembersRegisterFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return registerFormApi.getSSORaMembersRegisterFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSORegisterFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSORegisterFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSORegisterFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function resendEmailVerification({\r\n emailAddress,\r\n ssoDomain,\r\n callBackUrl,\r\n actionSuccessText\r\n}) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return registerFormApi.resendEmailVerification(dataFormatHelper.getFormattedUserEmailData(emailAddress, ssoDomain), callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(resendEmailVerificationError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n dispatch(resendEmailVerificationSuccess([actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(resendEmailVerificationError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function registerNewUser(userRegistrationData, actionSuccessText, callBackUrl) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return registerFormApi.registerNewUser(dataFormatHelper.getFormattedUserRegistrationData(userRegistrationData), callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(registerUserError([response.errorMessage]));\r\n return;\r\n }\r\n\r\n const { userName } = response;\r\n dispatch(registerUserSuccess(userName, [actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(registerUserError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function verifyIfEmailAddressExists(emailAddress, callBackUrl) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return registerFormApi.verifyIfEmailAddressExists(emailAddress, callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(verifyIfUserEmailExistsError([response.errorMessage]));\r\n return;\r\n }\r\n\r\n dispatch(verifyIfUserEmailExistsSuccess(true));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(verifyIfUserEmailExistsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n","import { handleResponse, handleError } from './api-utils';\r\nimport { apiConstants } from './api-constants';\r\n\r\nexport function getSSODefaultRegisterFormData() {\r\n return fetch(apiConstants.loadDefaultRegisterFormDataUrl, {\r\n method: 'GET',\r\n headers: { 'content-type': 'application/json' }\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function getSSOOneClubRegisterFormData(formDataUrl) {\r\n return fetch(formDataUrl)\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function getSSOTicketingRegisterFormData() {\r\n return fetch(apiConstants.loadTicketingRegisterFormDataUrl, {\r\n method: 'GET',\r\n headers: { 'content-type': 'application/json' }\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function getSSORaMembersRegisterFormData() {\r\n return fetch(apiConstants.loadRaMembersRegisterFormDataUrl, {\r\n method: 'GET',\r\n headers: { 'content-type': 'application/json' }\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function registerNewUser(userRegistrationData, callbackUrl) {\r\n return fetch(callbackUrl, {\r\n method: 'POST',\r\n headers: { 'content-type': 'application/json' },\r\n body: JSON.stringify(userRegistrationData)\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function resendEmailVerification(userEmailData, callbackUrl) {\r\n return fetch(callbackUrl, {\r\n method: 'POST',\r\n headers: { 'content-type': 'application/json' },\r\n body: JSON.stringify(userEmailData)\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function verifyIfEmailAddressExists(userEmail, callbackUrl) {\r\n return fetch(callbackUrl, {\r\n method: 'POST',\r\n headers: { 'content-type': 'application/json' },\r\n body: JSON.stringify({ emailAddress: userEmail })\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n","import { formValidationConstants } from '../components/utils/constants/form-validation-constants';\r\nimport { createDate, getTodayAsDate } from '../components/utils/date-utils';\r\n\r\nexport function validateDate(dateOfBirth) { \r\n if (!dateOfBirth) {\r\n return { isValid: false, errorMessage: formValidationConstants.dateOfBirthErrorMessage };\r\n }\r\n\r\n if (Object.prototype.toString.call(dateOfBirth) === '[object Date]') {\r\n return { isValid: true };\r\n }\r\n\r\n const { day, month, year } = dateOfBirth;\r\n if ((!day && day != '') || (!month && month != '') || (!year && year!='')) {\r\n return { isValid: true };\r\n }\r\n const userSetDate = parseUserSetDate({ day, month, year });\r\n\r\n if (!userSetDate) {\r\n return { isValid: false, errorMessage: formValidationConstants.dateOfBirthErrorMessage };\r\n }\r\n\r\n if (isMonthValid(userSetDate.monthAsNumber)) {\r\n return { isValid: false, errorMessage: formValidationConstants.dateOfBirthErrorMessage };\r\n }\r\n\r\n if (isUserOfAge(userSetDate)) {\r\n return { isValid: false, errorMessage: formValidationConstants.membersMustBeOVer16 };\r\n }\r\n\r\n return {\r\n isValid: true\r\n };\r\n}\r\n\r\nfunction parseUserSetDate(userSetValues) {\r\n const dayAsNumber = userSetValues.day ? parseInt(userSetValues.day, 10) : NaN;\r\n const monthAsNumber = userSetValues.month ? parseInt(userSetValues.month, 10) : NaN;\r\n const yearAsNumber = userSetValues.year ? parseInt(userSetValues.year, 10) : NaN; \r\n\r\n const areValuesInvalid = Number.isNaN(dayAsNumber) ||\r\n Number.isNaN(monthAsNumber) ||\r\n Number.isNaN(yearAsNumber);\r\n\r\n if (areValuesInvalid) {\r\n return null;\r\n }\r\n\r\n return { dayAsNumber, monthAsNumber, yearAsNumber };\r\n}\r\n\r\nfunction isMonthValid(monthAsNumber) {\r\n return monthAsNumber < formValidationConstants.minimumValidMonth ||\r\n monthAsNumber > formValidationConstants.maximumValidMonth;\r\n}\r\n\r\nfunction isUserOfAge(userSetDate) {\r\n const userBirthDate = createDate(userSetDate.yearAsNumber, userSetDate.monthAsNumber, userSetDate.dayAsNumber);\r\n const uerAge = getAge(userBirthDate);\r\n return uerAge < formValidationConstants.minimumValidAge;\r\n}\r\n\r\nfunction getAge(birthDate) {\r\n const today = getTodayAsDate();\r\n let age = today.getFullYear() - birthDate.getFullYear();\r\n const m = today.getMonth() - birthDate.getMonth();\r\n if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {\r\n age--;\r\n }\r\n return age;\r\n}\r\n","import { formValidationConstants } from '../components/utils/constants/form-validation-constants';\r\n\r\nexport function validatePrivacyPolicy(privacyPolicy) {\r\n return validateBooleanValue(privacyPolicy, formValidationConstants.privacyPolicyErrorMessage);\r\n}\r\n\r\nexport function validateOneClubTermsAndServicesPolicy(privacyPolicy) {\r\n return validateBooleanValue(privacyPolicy, formValidationConstants.oneClubTermsAndServicesErrorMessage);\r\n}\r\n\r\nfunction validateBooleanValue(value, errorMessage) {\r\n if (!value || value === false) {\r\n return {\r\n isValid: false, errorMessage\r\n };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n","import { formConstants } from '../../utils/constants/form-constants';\r\nimport {\r\n validateEmail,\r\n validatePassword,\r\n validateTitle,\r\n validateFirstName,\r\n validateLastName,\r\n validateAddressLine1,\r\n validateAddressLine2,\r\n validateAddressLine3,\r\n validatePostcode,\r\n validateMobilePhone,\r\n validateCity,\r\n validateCountry,\r\n validateCounty,\r\n validateState,\r\n validateMainAddress,\r\n validateShippingAddress,\r\n validateBillingAddress,\r\n validateBecomeOneClubMember,\r\n validateFavoritePlayer,\r\n validateVenues,\r\n validateChampionship,\r\n validateChannels,\r\n validateInterests,\r\n validateConfirmPassword,\r\n validateVerificationCode,\r\n validateOldPassword,\r\n validateRaMemberId,\r\n validateCaptchaBox,\r\n validateMastercard\r\n} from '../../../validators/text-validators';\r\nimport { validateDate } from '../../../validators/date-validators';\r\nimport { validatePrivacyPolicy, validateOneClubTermsAndServicesPolicy } from '../../../validators/policy-validators';\r\n\r\n\r\nexport const formFieldValidators = {\r\n [formConstants.emailAddress]: validateEmail,\r\n [formConstants.oldPassword]: validateOldPassword,\r\n [formConstants.password]: validatePassword,\r\n [formConstants.confirmPassword]: validateConfirmPassword,\r\n [formConstants.title]: validateTitle,\r\n [formConstants.firstName]: validateFirstName,\r\n [formConstants.lastName]: validateLastName,\r\n [formConstants.dateOfBirth]: validateDate,\r\n [formConstants.addressLine1]: validateAddressLine1,\r\n [formConstants.addressLine2]: validateAddressLine2,\r\n [formConstants.addressLine3]: validateAddressLine3,\r\n [formConstants.postcode]: validatePostcode,\r\n [formConstants.mobilePhone]: validateMobilePhone,\r\n [formConstants.city]: validateCity,\r\n [formConstants.country]: validateCountry,\r\n [formConstants.county]: validateCounty,\r\n [formConstants.state]: validateState,\r\n [formConstants.mainAddress]: validateMainAddress,\r\n [formConstants.shippingAddress]: validateShippingAddress,\r\n [formConstants.billingAddress]: validateBillingAddress,\r\n [formConstants.becomeOneClubMember]: validateBecomeOneClubMember,\r\n [formConstants.favoritePlayer]: validateFavoritePlayer,\r\n [formConstants.venues]: validateVenues,\r\n [formConstants.privacyPolicy]: validatePrivacyPolicy,\r\n [formConstants.oneClubTermsAndServices]: validateOneClubTermsAndServicesPolicy,\r\n [formConstants.verificationCode]: validateVerificationCode,\r\n [formConstants.championshipSection]: validateChampionship,\r\n [formConstants.channelSection]: validateChannels,\r\n [formConstants.interestSection]: validateInterests,\r\n [formConstants.raMemberId]: validateRaMemberId,\r\n [formConstants.reCaptcha]: validateCaptchaBox,\r\n [formConstants.mastercard]: validateMastercard\r\n};\r\n","/* eslint-disable consistent-return */\r\nimport get from 'lodash/get';\r\nimport { formFieldValidators } from '../form-field-validators';\r\nimport {\r\n validateOldPassword,\r\n validateConfirmPassword,\r\n validateCountry,\r\n validateConfirmEmail,\r\n validateCity,\r\n validateAddressLine1,\r\n validateAddressLine2,\r\n validateAddressLine3,\r\n validatePostcode,\r\n validateMobilePhone,\r\n validateRaMemberId,\r\n validateCaptchaBox,\r\n validateMastercard\r\n} from '../../../../validators/text-validators';\r\nimport FormValidator from '../form-validator';\r\nimport { validateDate } from '../../../../validators/date-validators';\r\nimport { isFormField, isEmpty } from '../../../utils/obj-utils';\r\nimport { formMessageConstants } from '../../../utils/constants/form-message-constants';\r\nimport { formConstants } from '../../../utils/constants/form-constants';\r\nimport { createDate } from '../../../utils/date-utils';\r\nimport { hasValue } from '../../../../../../general/js/general-helpers';\r\n\r\n// eslint-disable-next-line\r\nexport const handleFieldChange = (eventTarget) => (state) => {\r\n const {\r\n checked,\r\n name,\r\n value,\r\n type\r\n } = eventTarget;\r\n const valueToUpdate = type === 'checkbox' ? checked : value;\r\n\r\n return { [name]: valueToUpdate };\r\n};\r\n\r\nexport const handleFieldChangeWithValidation = (eventTarget, fieldData) => (state) => {\r\n const {\r\n checked,\r\n name,\r\n value,\r\n type\r\n } = eventTarget;\r\n\r\n const valueToUpdate = type === 'checkbox' ? checked : value;\r\n\r\n if (!isEmpty(fieldData)) {\r\n const { isHidden, isOptional } = fieldData;\r\n if (isHidden) {\r\n return { ...state, [name]: valueToUpdate };\r\n }\r\n\r\n if (isOptional && isEmpty(valueToUpdate)) {\r\n return { ...state, [name]: valueToUpdate };\r\n }\r\n }\r\n\r\n const { errors } = state;\r\n const fieldValidator = formFieldValidators[name];\r\n\r\n return {\r\n ...state,\r\n [name]: valueToUpdate,\r\n errors: {\r\n ...errors,\r\n [name]: fieldValidator !== undefined ? fieldValidator(valueToUpdate) : { isValid: false, errorMessage: formMessageConstants.somethingWentWrong }\r\n }\r\n };\r\n};\r\n\r\nexport const handleConfirmEmailFieldChange = (eventTarget) => (state) => {\r\n const { emailAddress, errors } = state;\r\n const { name, value } = eventTarget;\r\n return {\r\n ...state,\r\n [name]: value,\r\n errors: {\r\n ...errors,\r\n confirmEmailAddress: validateConfirmEmail(emailAddress, value)\r\n }\r\n };\r\n};\r\n\r\nexport const handleOldPasswordFieldChange = (eventTarget) => (state) => {\r\n const { password, errors } = state;\r\n const { name, value } = eventTarget;\r\n return {\r\n ...state,\r\n [name]: value,\r\n errors: {\r\n ...errors,\r\n oldPassword: validateOldPassword(password, value)\r\n }\r\n };\r\n};\r\n\r\nexport const handleConfirmPasswordFieldChange = (eventTarget) => (state) => {\r\n const { password, errors } = state;\r\n const { name, value } = eventTarget;\r\n return {\r\n ...state,\r\n [name]: value,\r\n errors: {\r\n ...errors,\r\n confirmPassword: validateConfirmPassword(password, value)\r\n }\r\n };\r\n};\r\n\r\nexport const handleDateChange = (event) => (state) => {\r\n const { errors } = state;\r\n const validationResult = validateDate(event);\r\n let dateOfBirth;\r\n\r\n if (validationResult.isValid) {\r\n const { day, month, year } = event;\r\n const dayAsNumber = parseInt(day, 10);\r\n const monthAsNumber = parseInt(month, 10);\r\n const yearAsNumber = parseInt(year, 10);\r\n dateOfBirth = createDate(yearAsNumber, monthAsNumber, dayAsNumber);\r\n }\r\n\r\n return {\r\n ...state,\r\n dateOfBirth,\r\n errors: {\r\n ...errors,\r\n dateOfBirth: validationResult\r\n }\r\n };\r\n};\r\n\r\nexport const handleMobilePhoneChange = (event, isOptional) => (state) => {\r\n const { errors } = state;\r\n const validationResult = validateMobilePhone(event.phoneNumber, isOptional);\r\n\r\n return {\r\n ...state,\r\n mobilePhone: {\r\n phoneNumber: event.phoneNumber,\r\n selectedCountry: event.selectedCountry\r\n },\r\n errors: {\r\n ...errors,\r\n mobilePhone: validationResult\r\n }\r\n };\r\n};\r\n\r\nexport const handleRaMemberIdChange = (event) => (state) => {\r\n const { errors } = state;\r\n const validationResult = validateRaMemberId(event.raMemberId);\r\n\r\n return {\r\n ...state,\r\n raMemberId: event.raMemberId,\r\n errors: {\r\n ...errors,\r\n raMemberId: validationResult\r\n }\r\n };\r\n};\r\n\r\nexport const handleCaptchaChange = (token) => (state) => {\r\n const isChecked = !!token;\r\n const { errors } = state;\r\n\r\n const newState = {\r\n ...state,\r\n [formConstants.reCaptcha]: token,\r\n errors: {\r\n ...errors,\r\n [formConstants.reCaptcha]: validateCaptchaBox(isChecked)\r\n }\r\n };\r\n\r\n return newState;\r\n};\r\n\r\nexport const handleMastercardNumberChange = (event, mastercardRegex, mastercardError) => (state) => {\r\n const { errors } = state;\r\n const validationResult = validateMastercard(event.value, mastercardRegex, mastercardError);\r\n\r\n return {\r\n ...state,\r\n [formConstants.mastercard]: event.value,\r\n errors: {\r\n ...errors,\r\n [formConstants.mastercard]: validationResult\r\n }\r\n };\r\n};\r\n\r\nexport const handleCountryChange = (eventTarget, county, stateField = null) => (state) => {\r\n const { name, value } = eventTarget;\r\n const { errors } = state;\r\n\r\n const availableCounties = county.options.filter((c) => c.countryCode === value);\r\n const availableStates = hasValue(stateField) ? stateField.options.filter((s) => s.countryCode === value) : [];\r\n\r\n return {\r\n ...state,\r\n availableCounties,\r\n availableStates,\r\n county: formMessageConstants.emptyString,\r\n state: formMessageConstants.emptyString,\r\n [name]: value,\r\n [formConstants.city]: formMessageConstants.emptyString,\r\n [formConstants.addressLine1]: formMessageConstants.emptyString,\r\n [formConstants.addressLine2]: formMessageConstants.emptyString,\r\n [formConstants.addressLine3]: formMessageConstants.emptyString,\r\n [formConstants.postcode]: formMessageConstants.emptyString,\r\n errors: {\r\n ...errors,\r\n [name]: validateCountry(value)\r\n }\r\n };\r\n};\r\n\r\nexport const handleAddressDataChange = (retrievedUserAddress, countyField, stateField = null) => (state) => {\r\n const { errors, country, county } = state;\r\n const stateValue = get(state, 'state', formMessageConstants.emptyString);\r\n const retrievedCountry = retrievedUserAddress[formConstants.country] || country;\r\n const availableCounties = isEmpty(retrievedCountry) ? [] : countyField.options.filter((c) => c.countryCode === retrievedCountry);\r\n const availableStates = isEmpty(retrievedCountry) ? [] : stateField.options.filter((s) => s.countryCode === retrievedCountry);\r\n const retrievedCounty = retrievedUserAddress[formConstants.county];\r\n const retrievedState = retrievedUserAddress[formConstants.state];\r\n const availableCounty = availableCounties.find((c) => c.label.includes(retrievedCounty));\r\n const availableState = availableStates.find((s) => s.label.includes(retrievedState));\r\n const selectedCounty = isEmpty(availableCounty) ? county : availableCounty.label;\r\n const selectedState = isEmpty(availableState) ? stateValue : availableState.label;\r\n\r\n return {\r\n ...state,\r\n availableCounties,\r\n availableStates,\r\n [formConstants.country]: retrievedCountry,\r\n [formConstants.county]: selectedCounty,\r\n [formConstants.state]: selectedState,\r\n [formConstants.city]: retrievedUserAddress[formConstants.city],\r\n [formConstants.addressLine1]: retrievedUserAddress[formConstants.addressLine1],\r\n [formConstants.addressLine2]: retrievedUserAddress[formConstants.addressLine2],\r\n [formConstants.addressLine3]: retrievedUserAddress[formConstants.addressLine3],\r\n [formConstants.postcode]: retrievedUserAddress[formConstants.postcode],\r\n errors: {\r\n ...errors,\r\n country: validateCountry(retrievedCountry),\r\n city: validateCity(retrievedUserAddress[formConstants.city]),\r\n addressLine1: validateAddressLine1(retrievedUserAddress[formConstants.addressLine1]),\r\n addressLine2: validateAddressLine2(retrievedUserAddress[formConstants.addressLine2]),\r\n addressLine3: validateAddressLine3(retrievedUserAddress[formConstants.addressLine3]),\r\n postcode: validatePostcode(retrievedUserAddress[formConstants.postcode])\r\n }\r\n };\r\n};\r\n\r\nexport const handleFieldValidState = (fieldName, errors) => {\r\n if (!errors) {\r\n return { isValid: true };\r\n }\r\n\r\n return errors[fieldName] !== undefined ? errors[fieldName] : { isValid: true };\r\n};\r\n\r\nexport const handleFormValidation = (formData) => (state) => {\r\n const formDataKeys = Object.keys(formData);\r\n const formValues = {};\r\n\r\n formDataKeys.forEach((formDataKey) => {\r\n formValues[formDataKey] = state[formDataKey];\r\n });\r\n\r\n const validationResult = FormValidator(formData, formValues);\r\n\r\n return {\r\n ...state,\r\n errors: validationResult.errors,\r\n formHasErrors: validationResult.formHasErrors\r\n };\r\n};\r\n\r\nexport const updateFormFields = (formData) => (state) => {\r\n const formDataKeys = Object.keys(formData);\r\n const { county, country } = formData;\r\n const stateField = get(formData, 'state', null);\r\n const availableCounties = county.options.filter((c) => c.countryCode === country.defaultValue);\r\n const availableStates = hasValue(stateField) ? stateField.options.filter((s) => s.countryCode === country.defaultValue) : [];\r\n\r\n const updatedState = {\r\n ...state,\r\n availableCounties,\r\n availableStates,\r\n formHasErrors: false\r\n };\r\n\r\n formDataKeys.forEach((formDataKey) => {\r\n if (isFormField(formData[formDataKey])) {\r\n updatedState[formDataKey] = formData[formDataKey].defaultValue;\r\n } else {\r\n updatedState[formDataKey] = formData[formDataKey];\r\n }\r\n });\r\n\r\n if (!isEmpty(formData[formConstants.offersDetails])) {\r\n const offersDetailsDefaultValue = formData[formConstants.offersDetails].defaultValue;\r\n updatedState[formConstants.refuseOffers] = offersDetailsDefaultValue[formConstants.refuseOffers];\r\n updatedState[formConstants.acceptOffers] = offersDetailsDefaultValue[formConstants.acceptOffers];\r\n }\r\n\r\n return updatedState;\r\n};\r\n\r\nexport const updateAvailableCounties = (receivedCountry, county) => (state) => {\r\n if (hasValue(receivedCountry) && hasValue(county)) {\r\n const availableCounties = hasValue(county.options) ? county.options.filter((c) => c.countryCode === receivedCountry) : {};\r\n\r\n if (!hasValue(availableCounties)) return { ...state };\r\n\r\n return {\r\n ...state,\r\n availableCounties\r\n };\r\n }\r\n};\r\n\r\nexport const updateAvailableStates = (receivedCountry, stateField) => (state) => {\r\n if (hasValue(receivedCountry) && hasValue(stateField)) {\r\n const availableStates = hasValue(stateField.options) ? stateField.options.filter((s) => s.countryCode === receivedCountry) : {};\r\n\r\n if (!hasValue(availableStates)) return { ...state };\r\n\r\n return {\r\n ...state,\r\n availableStates\r\n };\r\n }\r\n};\r\n\r\nexport const updateUsername = (userName) => (state) => {\r\n return {\r\n ...state,\r\n userName,\r\n formHasErrors: false\r\n };\r\n};\r\n\r\nexport const updateRaMemberId = (raMemberId) => (state) => {\r\n return {\r\n ...state,\r\n raMemberId,\r\n formHasErrors: false\r\n };\r\n};\r\n\r\nexport const updateMembership = (membership) => (state) => {\r\n return {\r\n ...state,\r\n membership\r\n };\r\n};\r\n\r\nexport const updateOneClubTermsAndConditions = (becomeOneClubMember) => (state) => {\r\n const { formData } = state;\r\n\r\n formData[formConstants.oneClubTermsAndServices].defaultValue = becomeOneClubMember;\r\n\r\n return {\r\n ...state,\r\n [formConstants.oneClubTermsAndServices]: becomeOneClubMember,\r\n formData\r\n };\r\n};\r\n\r\nexport const updateActiveMemberships = (activeMemberships) => (state) => {\r\n return {\r\n ...state,\r\n activeMemberships\r\n };\r\n};\r\n\r\n\r\nexport const updateFormData = (formData) => (state) => {\r\n return {\r\n ...state,\r\n formData\r\n };\r\n};\r\n\r\nexport const updateUserAccountData = (userAccountData) => (state) => {\r\n return {\r\n ...state,\r\n userAccountData\r\n };\r\n};\r\n\r\nexport const updateSavingState = (isSaving) => (state) => {\r\n return {\r\n ...state,\r\n isSaving,\r\n formHasErrors: false\r\n };\r\n};\r\n\r\nexport const updateAddressesFormAccountData = (accountData) => (state) => {\r\n return {\r\n ...state,\r\n accountData\r\n };\r\n};\r\n\r\nexport const updateOrderHistoryData = (orderHistoryData) => (state) => {\r\n return {\r\n ...state,\r\n orderHistoryData\r\n };\r\n};\r\n\r\nexport const updateProcessingState = (isProcessing) => (state) => {\r\n return {\r\n ...state,\r\n isProcessing,\r\n formHasErrors: false\r\n };\r\n};\r\n\r\nexport const updateVerificationCode = (verificationCode) => (state) => {\r\n return {\r\n ...state,\r\n verificationCode\r\n };\r\n};\r\n\r\nexport const updateAddressesFormState = (formState, addressForUpdate) => (state) => {\r\n return {\r\n ...state,\r\n formState,\r\n addressForUpdate\r\n };\r\n};\r\n\r\nexport const updateOrderHistoryDisplayFormState = (formState, orderHistoryForDisplay) => (state) => {\r\n return {\r\n ...state,\r\n formState,\r\n orderHistoryForDisplay,\r\n fileNumberForDisplay: 0\r\n };\r\n};\r\n\r\nexport const updateFileSummaryFormState = (formState, orderHistoryForDisplay) => (state) => {\r\n return {\r\n ...state,\r\n formState,\r\n orderHistoryForDisplay\r\n };\r\n};\r\n\r\nexport const updateFileNumberForDisplay = (fileNumberForDisplay) => (state) => {\r\n return {\r\n ...state,\r\n fileNumberForDisplay\r\n };\r\n};\r\n\r\nexport const updateOrderHistoryActivePageNumber = (orderHistoryActivePageNumber) => (state) => {\r\n return {\r\n ...state,\r\n orderHistoryActivePageNumber\r\n };\r\n};\r\n\r\nexport const toggleKey = (key) => (state) => {\r\n return {\r\n ...state,\r\n [key]: !state[key]\r\n };\r\n};\r\n\r\nexport const handleSubmit = (isSubmitAction) => (state) => ({\r\n ...state,\r\n isSubmitAction\r\n});\r\n\r\nexport const loadTextAndImageFields = (fields = []) => (state) => {\r\n if (!hasValue(fields)) {\r\n return {\r\n ...state\r\n };\r\n }\r\n\r\n const keyValuedFields = getKeyValuedTextAndImageFields(fields);\r\n\r\n return {\r\n ...state,\r\n ...keyValuedFields\r\n };\r\n};\r\n\r\nconst getKeyValuedTextAndImageFields = (fields = []) => {\r\n let fieldCounter = 0;\r\n const keyValuedFields = {};\r\n\r\n if (!hasValue(fields)) {\r\n return keyValuedFields;\r\n }\r\n\r\n fields.forEach((field) => {\r\n const fieldKey = `${field.fieldKey}-${fieldCounter}`;\r\n fieldCounter++;\r\n\r\n if (hasValue(fieldKey)) {\r\n keyValuedFields[fieldKey] = field;\r\n }\r\n });\r\n\r\n return keyValuedFields;\r\n};\r\n","import get from 'lodash/get';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { formFieldValidators } from './form-field-validators';\r\nimport {\r\n validateSelectedCounty,\r\n validateSelectedState\r\n} from '../../../validators/text-validators';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nconst FormValidator = (\r\n formData,\r\n formValues\r\n) => {\r\n function validateForm() {\r\n const errors = {};\r\n const formDataKeys = Object.keys(formData);\r\n\r\n formDataKeys.forEach((formDataKey) => {\r\n if (isEmpty(formData[formDataKey])) return;\r\n if (!formData[formDataKey].isHidden && !formData[formDataKey].isOptional) {\r\n errors[formDataKey] = validateField(formDataKey);\r\n }\r\n\r\n if (formData[formDataKey].isOptional && !isEmpty(formValues[formDataKey])) {\r\n errors[formDataKey] = validateField(formDataKey);\r\n }\r\n });\r\n\r\n return { errors, formHasErrors: hasErrors(errors) };\r\n }\r\n\r\n function hasErrors(errors) {\r\n const errorKeys = Object.keys(errors);\r\n return errorKeys.some((key) => {\r\n if (errors[key] === null || errors[key] === undefined) {\r\n return false;\r\n }\r\n\r\n return !errors[key].isValid;\r\n });\r\n }\r\n\r\n function validateField(formDataKey) {\r\n const validator = formFieldValidators[formDataKey];\r\n const fieldValue = formValues[formDataKey];\r\n\r\n if (validator === undefined) {\r\n return null;\r\n }\r\n\r\n if (formDataKey === formConstants.confirmPassword) {\r\n const passwordFieldValue = formValues[formConstants.password];\r\n return validator(passwordFieldValue, fieldValue);\r\n }\r\n\r\n if (formDataKey === formConstants.oldPassword) {\r\n const passwordFieldValue = formValues[formConstants.password];\r\n return validator(passwordFieldValue, fieldValue);\r\n }\r\n\r\n if (formDataKey === formConstants.county) {\r\n const selectedCountryCode = formValues[formConstants.country];\r\n const selectedCounty = formValues[formConstants.county];\r\n const { county } = formData;\r\n return validateSelectedCounty(selectedCounty, selectedCountryCode, county);\r\n }\r\n\r\n if (formDataKey === formConstants.state) {\r\n const selectedCountryCode = formValues[formConstants.country];\r\n const selectedState = formValues[formConstants.state];\r\n const stateField = get(formData, 'state', null);\r\n return validateSelectedState(selectedState, selectedCountryCode, stateField);\r\n }\r\n\r\n if (formDataKey === formConstants.mobilePhone) {\r\n const { mobilePhone } = formData;\r\n if (fieldValue) {\r\n return validator(fieldValue.phoneNumber, mobilePhone.isOptional);\r\n }\r\n return validator(fieldValue, mobilePhone.isOptional);\r\n }\r\n\r\n if (formDataKey === formConstants.mastercard) {\r\n const mastercardFieldValue = formValues[formConstants.mastercard];\r\n return validator(mastercardFieldValue, formData.mastercardRegex, formData.mastercardValidationError);\r\n }\r\n\r\n return validator(fieldValue);\r\n }\r\n\r\n return validateForm();\r\n};\r\n\r\nexport default FormValidator;\r\n","import React from 'react';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nexport const getFormReferences = (formData) => {\r\n const formDataKeys = Object.keys(formData);\r\n\r\n return formDataKeys.reduce((acc, value) => {\r\n acc[value] = React.createRef();\r\n return acc;\r\n }, {});\r\n};\r\n\r\nexport const scrollToInvalidField = (errors, formReferences) => {\r\n if (isEmpty(errors)) {\r\n return;\r\n }\r\n\r\n const errorKeys = Object.keys(errors);\r\n const fieldName = errorKeys.find((element) => {\r\n if (errors[element] === null || errors[element] === undefined) {\r\n return false;\r\n }\r\n\r\n return !errors[element].isValid;\r\n });\r\n\r\n let scrollToReference = formReferences[fieldName];\r\n\r\n if (isEmpty(scrollToReference.current)) {\r\n scrollToReference = Object.values(formReferences).find((formReference) => formReference.current !== null);\r\n }\r\n\r\n scrollToField(scrollToReference);\r\n};\r\n\r\nexport const scrollToField = (field) => {\r\n if (field && field.current) {\r\n const destinationField = field.current.captcha ? field.current.captcha : field.current\r\n destinationField.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'start',\r\n });\r\n }\r\n};\r\n","export const handleFieldValidState = (fieldName, errors) => {\r\n if (!errors) {\r\n return { isValid: true };\r\n }\r\n\r\n return errors[fieldName] !== undefined ? errors[fieldName] : { isValid: true };\r\n};\r\n","import React from 'react';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nfunction HeaderLinkDisplay({ headerMessage, headerLink, headerLinkText }) {\r\n if (!headerLink || isEmpty(headerLinkText)) {\r\n return null;\r\n }\r\n\r\n return (\r\n

    {headerMessage} \r\n \r\n {headerLinkText}\r\n \r\n

    \r\n );\r\n}\r\n\r\nexport default HeaderLinkDisplay;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport HeaderLinkDisplay from '../../forms/helpers/header-link-display';\r\n\r\nfunction SSOFormHeader({\r\n linkCallBackUrl,\r\n secondLinkCallBackUrl,\r\n headerTitle,\r\n headerSubtitle,\r\n headerMessage,\r\n headerLinkText,\r\n headerSecondMessage,\r\n headerSecondLinkText,\r\n messageOnNewRow,\r\n displaySecondMessageAndLink\r\n}) {\r\n\r\n function getClassName() {\r\n if (!messageOnNewRow) {\r\n return 'flx flx-justify-space-between flx-items-center mb-sm';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n return (\r\n
    \r\n

    {headerTitle}

    \r\n {headerSubtitle ?

    {headerSubtitle}

    : null}\r\n
    \r\n \r\n {displaySecondMessageAndLink ?\r\n \r\n : null\r\n }\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nSSOFormHeader.propTypes = {\r\n headerTitle: PropTypes.string.isRequired,\r\n headerSubtitle: PropTypes.string,\r\n linkCallBackUrl: PropTypes.func,\r\n secondLinkCallBackUrl: PropTypes.func,\r\n headerMessage: PropTypes.string,\r\n headerLinkText: PropTypes.string,\r\n headerSecondMessage: PropTypes.string,\r\n headerSecondLinkText: PropTypes.string,\r\n messageOnNewRow: PropTypes.bool,\r\n displaySecondMessageAndLink: PropTypes.bool\r\n};\r\n\r\nexport default SSOFormHeader;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport { isNullOrUndefined } from '../../../../../general/js/general-helpers';\r\n\r\nfunction SSOFormFooter({\r\n onSubmit,\r\n isHidden,\r\n linkCallBackUrl,\r\n footerButtonText,\r\n footerLinkText,\r\n useYellowButton,\r\n isSubmit = true,\r\n}) {\r\n function getFooterLink() {\r\n if (!linkCallBackUrl ||\r\n isEmpty(footerLinkText)) {\r\n return null;\r\n }\r\n return (\r\n {footerLinkText}\r\n );\r\n }\r\n\r\n const buttonClass = isNullOrUndefined(useYellowButton) || !useYellowButton \r\n ? 'button button--primary auto-mt-md'\r\n : 'button button--primary button--primary--yellow auto-mt-md';\r\n\r\n return (\r\n
    \r\n \r\n \r\n {footerButtonText}\r\n \r\n \r\n \r\n \r\n \r\n {getFooterLink()}\r\n
    \r\n );\r\n}\r\n\r\nSSOFormFooter.propTypes = {\r\n footerButtonText: PropTypes.string.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n isHidden: PropTypes.bool,\r\n linkCallBackUrl: PropTypes.func,\r\n footerLinkText: PropTypes.string\r\n};\r\n\r\nexport default SSOFormFooter;\r\n","import GTM from 'general/js/gtm';\r\n\r\nclass GTMUserActions {\r\n trackJoinTheOneClubAction() {\r\n GTM.push('The One Club', 'Sign Up', 'Join the club');\r\n }\r\n\r\n trackTicketingAccountAction() {\r\n GTM.push('Ticketing', 'Sign Up', 'Join the club');\r\n }\r\n\r\n trackTicketingAccountActionClick() {\r\n GTM.push('Ticketing', 'Click', 'New Account');\r\n }\r\n\r\n trackVideoSignUpAction(eventLabel) {\r\n GTM.push('Video Sign Up', 'Sign Up', eventLabel);\r\n }\r\n\r\n trackVideoSignUpActionClick(eventLabel) {\r\n GTM.push('Video Sign Up', 'Click', eventLabel);\r\n }\r\n}\r\n\r\nexport default new GTMUserActions();\r\n","import { bemClasses } from \"../../../general/js/modal\";\r\n\r\nexport const modalConstants = {\r\n dataModal: 'data-modal',\r\n MODAL_BEM_CLASS_WIDE: `modal--${bemClasses.WIDE}`,\r\n MODAL_BEM_CLASS_DESKTOP_WIDE: `modal--${bemClasses.DEKSTOP_WIDE}`,\r\n MODAL_BEM_CLASS_MOBILE_FIXED: `modal--${bemClasses.MOBILE_FIXED}`,\r\n MODAL_BEM_CLASS_CLOSE_OUTSIDE: `modal--${bemClasses.CLOSE_OUTSIDE}`,\r\n MODAL_BEM_CLASS_TITLE: `modal--${bemClasses.TITLE}`,\r\n MODAL_BEM_CLASS_AUTO: `modal--${bemClasses.AUTO}`,\r\n MODAL_BEM_CLASS_SPLIT: `modal--${bemClasses.SPLIT}`\r\n}","import { hasValue, isNullOrUndefined, toggleCssClass } from \"../../../general/js/general-helpers\";\r\nimport HtmlHelper from \"../../../foundation/html-helper\";\r\nimport { modalConstants } from \"./modal-constants\";\r\n\r\nexport const getWrapperModalElement = (element = null) => {\r\n if(isNullOrUndefined(element) || !HtmlHelper.isHtmlElement(element)){\r\n return null;\r\n }\r\n\r\n return HtmlHelper.getParent(element, `[${modalConstants.dataModal}]`);\r\n}\r\n\r\nexport const toggleBemClassForWrapperModal = (element = null, bemList = [], addClass = false) => {\r\n if(!hasValue(bemList) || isNullOrUndefined(element)){\r\n return;\r\n }\r\n\r\n const wrapperModal = getWrapperModalElement(element);\r\n \r\n if(isNullOrUndefined(wrapperModal)){\r\n return;\r\n }\r\n\r\n bemList.forEach(bemClass => {\r\n toggleCssClass(wrapperModal, bemClass, addClass);\r\n });\r\n}","/* eslint-disable prefer-const */\r\nimport { getProperty, hasValue, isNullOrUndefined } from '../../../../../../general/js/general-helpers';\r\nimport { modalConstants } from '../../../../../modal/js/modal-constants';\r\nimport { toggleBemClassForWrapperModal } from '../../../../../modal/js/modal-helpers';\r\nimport { ssoFormTypes } from '../../../utils/form-types';\r\n\r\nexport const getModalContentClassListForSSOForm = (props = {}) => {\r\n const baseClassList = 'modal__content form-container form-container__full';\r\n\r\n if (!hasValue(props)) {\r\n return baseClassList;\r\n }\r\n\r\n const formData = getFormDataForSSOForm(props);\r\n\r\n if (!hasValue(formData)) {\r\n return baseClassList;\r\n }\r\n\r\n const { desktopImageSrc } = formData;\r\n\r\n return `${baseClassList} ${hasValue(desktopImageSrc) ? 'form-container__wide' : ''}`;\r\n};\r\n\r\nexport const getFormContainerWideLeftClassList = (props = {}) => {\r\n const baseClassList = 'form-container__wide--left';\r\n\r\n if (!hasValue(props)) {\r\n return baseClassList;\r\n }\r\n\r\n const formData = getFormDataForSSOForm(props);\r\n\r\n const desktopImageSrc = getProperty(formData, 'desktopImageSrc');\r\n const mobileImageSrc = getProperty(formData, 'mobileImageSrc');\r\n\r\n return `${baseClassList} ${hasValue(desktopImageSrc) ? 'form-popup__header--no-bg-image-desktop' : ''} ${hasValue(mobileImageSrc) ? 'form-popup__header--no-bg-image-mobile' : ''}`;\r\n};\r\n\r\nexport const toggleBemClassesForSSOFormModal = (formReference = null, props = {}, formType = -1) => {\r\n if (!hasValue(props) || isNullOrUndefined(formReference) || isNullOrUndefined(formReference.current)) {\r\n return false;\r\n }\r\n\r\n const { addBemList, removeBemList } = getBemClassesToToggle(props, formType);\r\n\r\n if (!hasValue(addBemList) && !hasValue(removeBemList)) {\r\n return false;\r\n }\r\n\r\n toggleBemClassForWrapperModal(formReference.current, addBemList, true);\r\n toggleBemClassForWrapperModal(formReference.current, removeBemList, false);\r\n\r\n return true;\r\n};\r\n\r\nconst getBemClassesToToggle = (props = {}, formType = -1) => {\r\n const formData = getFormDataForSSOForm(props);\r\n\r\n if (!hasValue(formData)) {\r\n return {};\r\n }\r\n\r\n const desktopImageSrc = getProperty(formData, 'desktopImageSrc');\r\n let { addBemList, removeBemList } = getInitialBemClassesToToggle(formType);\r\n\r\n if (hasValue(desktopImageSrc)) {\r\n addBemList.push(modalConstants.MODAL_BEM_CLASS_WIDE);\r\n addBemList.push(modalConstants.MODAL_BEM_CLASS_SPLIT);\r\n } else {\r\n removeBemList = mergeBemList(removeBemList, getRemoveBemClasses(formType, desktopImageSrc));\r\n }\r\n\r\n return {\r\n addBemList,\r\n removeBemList\r\n };\r\n};\r\n\r\nconst getInitialBemClassesToToggle = (formType = -1) => {\r\n switch (formType) {\r\n case ssoFormTypes.DefaultRegister:\r\n case ssoFormTypes.OneClubRegister:\r\n case ssoFormTypes.TicketingRegister:\r\n return {\r\n addBemList: [\r\n modalConstants.MODAL_BEM_CLASS_MOBILE_FIXED,\r\n modalConstants.MODAL_BEM_CLASS_AUTO\r\n ],\r\n removeBemList: []\r\n };\r\n case ssoFormTypes.UpgradeToOneClubAccountFromDefault:\r\n case ssoFormTypes.UpgradeToOneClubAccountFromTicketing:\r\n case ssoFormTypes.UpgradeToTicketingAccount:\r\n return {\r\n addBemList: [],\r\n removeBemList: [\r\n modalConstants.MODAL_BEM_CLASS_AUTO]\r\n };\r\n case ssoFormTypes.SignIn:\r\n case ssoFormTypes.BallotSignInForm:\r\n return {\r\n addBemList: [\r\n modalConstants.MODAL_BEM_CLASS_MOBILE_FIXED,\r\n modalConstants.MODAL_BEM_CLASS_AUTO\r\n ],\r\n removeBemList: [\r\n modalConstants.MODAL_BEM_CLASS_WIDE,\r\n modalConstants.MODAL_BEM_CLASS_SPLIT\r\n ]\r\n };\r\n default:\r\n return {\r\n addBemList: [],\r\n removeBemList: []\r\n };\r\n }\r\n};\r\n\r\nconst getRemoveBemClasses = (formType = -1, desktopImageSrc = '') => {\r\n switch (formType) {\r\n case ssoFormTypes.DefaultRegister:\r\n case ssoFormTypes.OneClubRegister:\r\n case ssoFormTypes.TicketingRegister:\r\n case ssoFormTypes.BallotLiteRegister:\r\n case ssoFormTypes.BallotFullRegister:\r\n if (hasValue(desktopImageSrc)) {\r\n return [\r\n modalConstants.MODAL_BEM_CLASS_MOBILE_FIXED\r\n ];\r\n }\r\n\r\n return [\r\n modalConstants.MODAL_BEM_CLASS_SPLIT\r\n ];\r\n case ssoFormTypes.UpgradeToOneClubAccountFromDefault:\r\n case ssoFormTypes.UpgradeToOneClubAccountFromTicketing:\r\n case ssoFormTypes.UpgradeToTicketingAccount:\r\n case ssoFormTypes.BallotSummaryForm:\r\n return [\r\n modalConstants.MODAL_BEM_CLASS_AUTO\r\n ];\r\n default:\r\n return [];\r\n }\r\n};\r\n\r\nconst mergeBemList = (initialBemList = [], bemListToMerge = []) => {\r\n const finalBemList = initialBemList;\r\n\r\n bemListToMerge.forEach((bemClass) => {\r\n if (!finalBemList.includes(bemClass)) {\r\n finalBemList.push(bemClass);\r\n }\r\n });\r\n\r\n return finalBemList;\r\n};\r\n\r\nconst getFormDataForSSOForm = (props = {}) => {\r\n let formData = {};\r\n\r\n if (!hasValue(props)) {\r\n return formData;\r\n }\r\n\r\n const formDataObjects = [\r\n props.registerFormData,\r\n props.formData,\r\n props.signInFormData\r\n ];\r\n\r\n formDataObjects.every((formDataObject) => {\r\n if (hasValue(formDataObject)) {\r\n formData = formDataObject;\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n return formData;\r\n};\r\n","/* eslint-disable react/no-direct-mutation-state */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport RegisterFormBanner from './RegisterFormBanner';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { isEmpty, deepCopyObject } from '../../utils/obj-utils';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as registerFormActions from '../../../store/actions/register-form-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport './one-club-register.scss';\r\nimport { getFormDataUrl } from '../../../store/api/api-utils';\r\nimport GTMUserActions from '../../common/utility/GTMUserActions';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\nimport { getFormContainerWideLeftClassList, getModalContentClassListForSSOForm, toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\n\r\nclass OneClubRegisterForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { registerFormData, ssoDomain } = this.props;\r\n this.state = {\r\n ...initialState.oneClubRegisterFormState,\r\n registerFormData,\r\n ssoDomain,\r\n isModalStylingUpdated: false\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReference = React.createRef();\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n\r\n this.displayOneClubRegisterForm = this.displayOneClubRegisterForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.loadFormData = this.loadFormData.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.submitRegisterData = this.submitRegisterData.bind(this);\r\n this.finalizeSubmitData = this.finalizeSubmitData.bind(this);\r\n this.handleUserRegisterSuccess = this.handleUserRegisterSuccess.bind(this);\r\n this.resetForm = this.resetForm.bind(this);\r\n\r\n this.loadFormData();\r\n }\r\n\r\n loadFormData() {\r\n const { registerFormData, ssoFormType, actions } = this.props;\r\n\r\n if (!isEmpty(registerFormData)) { return; }\r\n\r\n const formDataUrl = getFormDataUrl(ssoFormType);\r\n\r\n actions.loadSSORegisterFormData(formDataUrl);\r\n }\r\n\r\n componentDidMount() {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormTypes.OneClubRegister);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n registerFormData,\r\n isRegisterSuccessful,\r\n loading\r\n } = nextProps;\r\n\r\n const previousRegisterFormData = this.props.registerFormData;\r\n\r\n if (hasValue(registerFormData) && !this.state.isModalStylingUpdated) {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, nextProps, ssoFormTypes.OneClubRegister);\r\n }\r\n\r\n if (!isEmpty(registerFormData) && isEmpty(this.formReferences)) {\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n }\r\n\r\n if (!loading &&\r\n isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserRegisterSuccess);\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n\r\n if (isEmpty(previousRegisterFormData) && !isEmpty(registerFormData)) {\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n registerFormData\r\n })\r\n );\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.resetForm();\r\n }\r\n\r\n resetForm() {\r\n const { actions } = this.props;\r\n this.setState(initialState.defaultRegisterFormState);\r\n actions.resetRegisterFormState();\r\n }\r\n\r\n handleUserRegisterSuccess() {\r\n const { onUserRegisterSuccess } = this.props;\r\n const {\r\n formType,\r\n actionSuccessText,\r\n requestEmailVerificationCallbackUrl,\r\n requestEmailVerificationActionSuccessText,\r\n bannerSuccessRegistration\r\n } = this.props.registerFormData;\r\n\r\n onUserRegisterSuccess(this.state[formConstants.emailAddress],\r\n {\r\n registerFormType: formType,\r\n successText: actionSuccessText,\r\n emailVerificationCallbackUrl: requestEmailVerificationCallbackUrl,\r\n emailVerificationActionSuccessText: requestEmailVerificationActionSuccessText,\r\n bannerSuccessRegistration\r\n });\r\n }\r\n\r\n async handleSubmit(event) {\r\n event.preventDefault();\r\n const { registerFormData } = this.props;\r\n const { reCaptcha } = this.state;\r\n\r\n if (reCaptcha) {\r\n registerFormData.reCaptchaToken = reCaptcha;\r\n }\r\n\r\n this.setState(formStateHelpers.handleFormValidation(registerFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n const captchaRef = this.formReferences[formConstants.reCaptcha];\r\n\r\n if (captchaRef) {\r\n captchaRef.current.props.grecaptcha.reset();\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitRegisterData);\r\n }\r\n\r\n submitRegisterData() {\r\n const { registerFormData } = this.props;\r\n\r\n if (registerFormData.membership) {\r\n this.setState({ membership: registerFormData.membership, ssoEmailNotificationSettingsFields: registerFormData.ssoEmailNotificationSettingsFields }, () => {\r\n this.finalizeSubmitData();\r\n });\r\n return;\r\n }\r\n\r\n\r\n this.finalizeSubmitData();\r\n }\r\n\r\n finalizeSubmitData() {\r\n const { actions, registerFormData } = this.props;\r\n const { callBackUrlPost } = registerFormData;\r\n const actionSuccessText = registerFormData.actionSuccessText || formMessageConstants.registrationSuccessText;\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.title]);\r\n actions.registerNewUser(this.state, actionSuccessText, callBackUrlPost);\r\n this.setState({ reCaptcha: '' });\r\n\r\n GTMUserActions.trackJoinTheOneClubAction();\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onSignIn,\r\n onForgotPassword,\r\n isRegisterSuccessful,\r\n userRegistrationMessages,\r\n registerFormData\r\n } = this.props;\r\n\r\n const { formHeader } = registerFormData;\r\n\r\n return (\r\n \r\n
    \r\n \r\n {this.displayOneClubRegisterForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displayOneClubRegisterForm() {\r\n const { registerFormData } = this.props;\r\n const { availableCounties, availableStates } = this.state;\r\n const { county, mobilePhone, state } = registerFormData;\r\n\r\n const copyOfFormData = deepCopyObject(registerFormData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences,\r\n countyData: { availableCounties, label: county ? county.label : '' },\r\n stateData: { availableStates, label: state ? state.label : '' },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => {\r\n const eventTarget = event.target;\r\n const fieldName = eventTarget.name;\r\n const fieldData = registerFormData[fieldName];\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target, fieldData));\r\n },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event)); },\r\n handleCountryChange: (event) => { this.setState(formStateHelpers.handleCountryChange(event.target, county, state)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event, mobilePhone.isOptional)); },\r\n handleCaptchaChange: (token) => { this.setState(formStateHelpers.handleCaptchaChange(token)); },\r\n handleMastercardNumberChange: (event) => {\r\n this.setState(formStateHelpers.handleMastercardNumberChange(event.target,\r\n registerFormData.mastercardRegex, registerFormData.mastercardValidationError));\r\n },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, registerFormData } = this.props;\r\n\r\n if (isEmpty(registerFormData)) {\r\n return (\r\n
    \r\n );\r\n }\r\n\r\n const { formBanner, desktopImageSrc, mobileImageSrc } = registerFormData;\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n hasValue(mobileImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n \r\n
    \r\n {isSaving || loading ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n {\r\n hasValue(desktopImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nOneClubRegisterForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onSignIn: PropTypes.func.isRequired,\r\n onUserRegisterSuccess: PropTypes.func.isRequired,\r\n ssoDomain: PropTypes.string,\r\n registerFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n registerFormData: _.isEmpty(ownProps.registerFormData) ? state.registerForm.registerFormData : ownProps.registerFormData,\r\n isRegisterSuccessful: state.registerForm.isRegisterSuccessful,\r\n userRegistrationMessages: state.registerForm.userRegistrationMessages,\r\n userName: state.registerForm.userName,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n registerNewUser: bindActionCreators(registerFormActions.registerNewUser, dispatch),\r\n resetRegisterFormState: bindActionCreators(registerFormActions.resetRegisterFormState, dispatch),\r\n loadSSORegisterFormData: bindActionCreators(registerFormActions.loadSSOOneClubRegisterFormData, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(OneClubRegisterForm);\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport * as registerFormActions from '../../../store/actions/register-form-actions';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\n\r\nfunction UserRegisterSuccessForm({\r\n onSignIn,\r\n onBallotSignIn,\r\n actions,\r\n emailAddress,\r\n ssoDomain,\r\n isBallotRegister,\r\n loading,\r\n isResendEmailVerificationSuccessful,\r\n resendEmailVerificationMessages,\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText,\r\n displayBanner,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration\r\n}) {\r\n function onResendEmailVerification() {\r\n actions.resendEmailVerification({\r\n emailAddress,\r\n ssoDomain,\r\n callBackUrl: requestEmailVerificationCallbackUrl,\r\n actionSuccessText: requestEmailVerificationActionSuccessText\r\n });\r\n }\r\n\r\n if (_.isEmpty(bannerBackgroundImageSrc)) {\r\n displayBanner = false;\r\n }\r\n\r\n if (bannerSuccessRegistration &&\r\n bannerSuccessRegistration.bannerBackgroundImageSrc !== null &&\r\n bannerSuccessRegistration.bannerBackgroundImageSrc !== undefined &&\r\n bannerSuccessRegistration.bannerBackgroundImageSrc.length !== 0) {\r\n displayBanner = true;\r\n }\r\n\r\n let formBanner = {};\r\n if (bannerSuccessRegistration &&\r\n bannerSuccessRegistration.bannerBackgroundImageSrc !== null &&\r\n bannerSuccessRegistration.bannerBackgroundImageSrc !== undefined &&\r\n bannerSuccessRegistration.bannerBackgroundImageSrc.length !== 0) {\r\n formBanner = {\r\n bannerTitle: bannerSuccessRegistration.bannerTitle,\r\n bannerMessage: '',\r\n bannerBackgroundImageSrc: bannerSuccessRegistration.bannerBackgroundImageSrc,\r\n displayMessageUnderImage: false,\r\n displayHeadingOverImage: true,\r\n headingColor: bannerSuccessRegistration.headingColor,\r\n textColor: 'black'\r\n };\r\n } else {\r\n formBanner = {\r\n bannerTitle: '',\r\n bannerMessage: '',\r\n bannerBackgroundImageSrc,\r\n displayMessageUnderImage: false,\r\n displayHeadingOverImage: false,\r\n headingColor: 'white',\r\n textColor: 'black'\r\n };\r\n }\r\n\r\n return (\r\n
    \r\n {loading ? / : null}\r\n {displayBanner ? : null}\r\n
    \r\n \r\n
    {actionSuccessText || formMessageConstants.oneClubRegisterSuccessText}
    \r\n
    \r\n
    \r\n \r\n \r\n {formMessageConstants.signInHere}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {emailAddress ?
    \r\n \r\n {formMessageConstants.resendVerificationEmail}\r\n \r\n
    : null}\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nUserRegisterSuccessForm.propTypes = {\r\n onSignIn: PropTypes.func.isRequired,\r\n onBallotSignIn: PropTypes.func.isRequired,\r\n emailAddress: PropTypes.string.isRequired,\r\n ssoDomain: PropTypes.string.isRequired,\r\n requestEmailVerificationCallbackUrl: PropTypes.string.isRequired,\r\n actionSuccessText: PropTypes.string.isRequired,\r\n requestEmailVerificationActionSuccessText: PropTypes.string.isRequired,\r\n displayBanner: PropTypes.bool.isRequired,\r\n isBallotRegister: PropTypes.bool.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isResendEmailVerificationSuccessful: state.registerForm.isResendEmailVerificationSuccessful,\r\n resendEmailVerificationMessages: state.registerForm.resendEmailVerificationMessages,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n resendEmailVerification: bindActionCreators(registerFormActions.resendEmailVerification, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(UserRegisterSuccessForm);\r\n","/* eslint-disable react/no-direct-mutation-state */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport * as registerFormActions from '../../../store/actions/register-form-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\nimport { getFormDataUrl } from '../../../store/api/api-utils';\r\nimport { validateEmail } from '../../../validators/text-validators';\r\nimport HeaderLinkDisplay from '../helpers/header-link-display';\r\nimport GTMUserActions from '../../common/utility/GTMUserActions';\r\nimport { getFormContainerWideLeftClassList, getModalContentClassListForSSOForm, toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\n\r\nclass BallotRegisterForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { registerFormData } = this.props;\r\n const { ssoDomain } = registerFormData;\r\n\r\n this.state = {\r\n ...initialState.ballotRegisterFormState,\r\n registerFormData,\r\n ssoDomain,\r\n isModalStylingUpdated: false\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReference = React.createRef();\r\n\r\n this.displayBallotRegisterForm = this.displayBallotRegisterForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.loadFormData = this.loadFormData.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleUserRegisterSuccess = this.handleUserRegisterSuccess.bind(this);\r\n this.submitRegisterData = this.submitRegisterData.bind(this);\r\n this.handleFieldChange = this.handleFieldChange.bind(this);\r\n this.handleOnBlur = this.handleOnBlur.bind(this);\r\n this.getHeaderLink = this.getHeaderLink.bind(this);\r\n\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n\r\n this.loadFormData();\r\n }\r\n\r\n loadFormData() {\r\n const { registerFormData, ssoFormType, actions } = this.props;\r\n\r\n if (!isEmpty(registerFormData)) { return; }\r\n\r\n const formDataUrl = getFormDataUrl(ssoFormType);\r\n\r\n actions.loadSSORegisterFormData(formDataUrl);\r\n }\r\n\r\n componentDidMount() {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormTypes.BallotLiteRegister);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isRegisterSuccessful,\r\n loading,\r\n registerFormData,\r\n isUserEmailAlreadyUsed,\r\n onSignIn\r\n } = nextProps;\r\n\r\n const previousRegisterFormData = this.props.registerFormData;\r\n\r\n if (hasValue(registerFormData) && !this.state.isModalStylingUpdated) {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, nextProps, ssoFormTypes.BallotLiteRegister);\r\n }\r\n\r\n if (!loading &&\r\n isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserRegisterSuccess);\r\n return;\r\n }\r\n\r\n if (!loading && isUserEmailAlreadyUsed) {\r\n this.setState(\r\n (state) => {\r\n const updatedErrors = state.errors;\r\n\r\n const { emailValidation } = registerFormData;\r\n\r\n updatedErrors.emailAddress = { isValid: false, errorMessage: this.getHeaderLink(emailValidation.emailHeaderLink, onSignIn, emailValidation.signInMessage) };\r\n\r\n return {\r\n ...state,\r\n errors: updatedErrors\r\n };\r\n }\r\n );\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n\r\n if (isEmpty(previousRegisterFormData) && !isEmpty(registerFormData)) {\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n registerFormData\r\n })\r\n );\r\n\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.defaultRegisterFormState);\r\n actions.resetRegisterFormState();\r\n }\r\n\r\n handleUserRegisterSuccess() {\r\n const { onUserRegisterSuccess } = this.props;\r\n\r\n const {\r\n formType,\r\n actionSuccessText,\r\n requestEmailVerificationCallbackUrl,\r\n requestEmailVerificationActionSuccessText,\r\n formBanner\r\n } = this.props.registerFormData;\r\n\r\n onUserRegisterSuccess(this.state[formConstants.emailAddress],\r\n {\r\n isBallotRegister: true,\r\n registerFormType: formType,\r\n successText: actionSuccessText,\r\n emailVerificationCallbackUrl: requestEmailVerificationCallbackUrl,\r\n emailVerificationActionSuccessText: requestEmailVerificationActionSuccessText,\r\n displayBanner: true,\r\n bannerBackgroundImageSrc: formBanner.bannerBackgroundImageSrc\r\n });\r\n }\r\n\r\n async handleSubmit(event) {\r\n event.preventDefault();\r\n const { registerFormData } = this.props;\r\n const { reCaptcha } = this.state;\r\n\r\n if (reCaptcha) {\r\n registerFormData.reCaptchaToken = reCaptcha;\r\n }\r\n\r\n this.setState(formStateHelpers.handleFormValidation(registerFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n const captchaRef = this.formReferences[formConstants.reCaptcha];\r\n\r\n if (captchaRef) {\r\n captchaRef.current.props.grecaptcha.reset();\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitRegisterData);\r\n }\r\n\r\n handleFieldChange(event) {\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target));\r\n }\r\n\r\n handleOnBlur(event) {\r\n const { actions, registerFormData } = this.props;\r\n const { previousCheckedEmail } = this.state;\r\n\r\n const { emailValidation } = registerFormData;\r\n\r\n const emailValue = event.target.value;\r\n\r\n if (event.target.name === formConstants.emailAddress && !isEmpty(emailValue) && previousCheckedEmail !== emailValue) {\r\n const isEmailValid = validateEmail(emailValue);\r\n\r\n if (isEmailValid.isValid) {\r\n this.setState((state) => ({\r\n ...state,\r\n previousCheckedEmail: emailValue,\r\n emailCheckInProgress: true\r\n }));\r\n\r\n actions.verifyIfEmailAddressExists(emailValue, emailValidation.emailValidationEndpoint);\r\n }\r\n }\r\n }\r\n\r\n submitRegisterData() {\r\n const { actions, registerFormData } = this.props;\r\n const { callBackUrlPost } = registerFormData;\r\n const actionSuccessText = registerFormData.actionSuccessText || formMessageConstants.registrationSuccessText;\r\n\r\n registerFormData.zoneInfo = formConstants.isBallotRegister;\r\n\r\n actions.registerNewUser(this.state, actionSuccessText, callBackUrlPost);\r\n this.setState({ reCaptcha: '' });\r\n\r\n GTMUserActions.trackJoinTheOneClubAction();\r\n }\r\n\r\n getHeaderLink(headerMessage, headerLink, headerLinkText) {\r\n return ;\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onSignIn,\r\n isRegisterSuccessful,\r\n userRegistrationMessages,\r\n registerFormData\r\n } = this.props;\r\n\r\n const { formHeader } = registerFormData;\r\n\r\n if (isEmpty(registerFormData)) { return null; }\r\n\r\n return (\r\n \r\n
    \r\n \r\n {this.displayBallotRegisterForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displayBallotRegisterForm() {\r\n const { registerFormData } = this.props;\r\n const { mobilePhone } = registerFormData;\r\n\r\n return FormBuilder({\r\n formData: registerFormData,\r\n formReferences: this.formReferences,\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => {\r\n this.handleFieldChange(event);\r\n },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event, mobilePhone.isOptional)); },\r\n handleCaptchaChange: (token) => { this.setState(formStateHelpers.handleCaptchaChange(token)); },\r\n handleMastercardNumberChange: (event) => {\r\n this.setState(formStateHelpers.handleMastercardNumberChange(event.target,\r\n registerFormData.mastercardRegex, registerFormData.mastercardValidationError));\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n handleOnBlur: this.handleOnBlur\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, registerFormData } = this.props;\r\n const { formBanner, desktopImageSrc, mobileImageSrc } = registerFormData;\r\n\r\n const emptyForm = isEmpty(registerFormData);\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n hasValue(mobileImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n {\r\n emptyForm ? null : \r\n }\r\n
    \r\n {(isSaving || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n {\r\n hasValue(desktopImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nBallotRegisterForm.propTypes = {\r\n onSignIn: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n onUserRegisterSuccess: PropTypes.func.isRequired,\r\n registerFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isRegisterSuccessful: state.registerForm.isRegisterSuccessful,\r\n userRegistrationMessages: state.registerForm.userRegistrationMessages,\r\n isUserEmailAlreadyUsed: state.registerForm.isUserEmailAlreadyUsed,\r\n registerFormData: !hasValue(ownProps.registerFormData) ? state.registerForm.registerFormData : ownProps.registerFormData\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n registerNewUser: bindActionCreators(registerFormActions.registerNewUser, dispatch),\r\n resetRegisterFormState: bindActionCreators(registerFormActions.resetRegisterFormState, dispatch),\r\n loadSSORegisterFormData: bindActionCreators(registerFormActions.loadSSOOneClubRegisterFormData, dispatch),\r\n verifyIfEmailAddressExists: bindActionCreators(registerFormActions.verifyIfEmailAddressExists, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(BallotRegisterForm);\r\n","import _ from 'lodash';\r\nimport * as apiResponseMessages from '../api-response-messages';\r\n\r\nconst UNAUTHORIZED_STATUS_CODE = 401;\r\nconst TOO_MANY_REQUESTS_STATUS_CODE = 429;\r\nexport function getServerErrorMessages(response) {\r\n const errorMessage = response.errorMessage;\r\n if (_.isEmpty(response) || _.isEmpty(errorMessage)) {\r\n return [apiResponseMessages.SERVER_ERROR_MESSAGE];\r\n }\r\n\r\n if (errorMessage.includes('Network error')) {\r\n return [apiResponseMessages.SERVER_ERROR_MESSAGE];\r\n }\r\n\r\n if (response.statusCode === UNAUTHORIZED_STATUS_CODE ||\r\n response.statusCode === TOO_MANY_REQUESTS_STATUS_CODE) {\r\n return [errorMessage];\r\n }\r\n\r\n if (_.isArray(errorMessage)) {\r\n return errorMessage;\r\n }\r\n\r\n if (_.isString(errorMessage) && !isTextJSON(errorMessage)) {\r\n return [errorMessage];\r\n }\r\n\r\n const parsedResponse = JSON.parse(errorMessage);\r\n\r\n if (_.isEmpty(parsedResponse) || _.isEmpty(parsedResponse.errors)) {\r\n return [apiResponseMessages.SERVER_ERROR_MESSAGE];\r\n }\r\n\r\n const allErrors = Object.values(parsedResponse.errors);\r\n\r\n return _.isEmpty(allErrors) ? [apiResponseMessages.SERVER_ERROR_MESSAGE] : allErrors;\r\n}\r\n\r\nfunction isTextJSON(text) {\r\n if (!_.isString(text)) {\r\n return false;\r\n }\r\n\r\n try {\r\n JSON.parse(text);\r\n return true;\r\n } catch (error) {\r\n return false;\r\n }\r\n}\r\n","/* eslint-disable no-restricted-globals */\r\nimport * as types from './action-types';\r\nimport * as userAccountApi from '../api/user-account-api';\r\nimport * as apiResponseMessages from './api-response-messages';\r\nimport * as dataFormatHelper from './helpers/data-format-helper';\r\nimport * as messageHelper from './helpers/message-helper';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\nimport { formMessageConstants } from '../../components/utils/constants/form-message-constants';\r\nimport GTMUserActions from '../../components/common/utility/GTMUserActions';\r\n\r\nexport function loadSSOUpgradeToOneClubFormDataSuccess(ssoUpgradeToOneClubFormData) {\r\n return { type: types.LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_SUCCESS, ssoUpgradeToOneClubFormData };\r\n}\r\n\r\nexport function loadSSOUpgradeToOneClubFormDataError() {\r\n return { type: types.LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_ERROR };\r\n}\r\n\r\nexport function upgradeToTicketingAccountSuccess(accountUpgradeMessages) {\r\n return { type: types.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESS, accountUpgradeMessages };\r\n}\r\n\r\nexport function upgradeToTicketingAccountError(accountUpgradeMessages) {\r\n return { type: types.UPGRADE_TO_TICKETING_ACCOUNT_ERROR, accountUpgradeMessages };\r\n}\r\n\r\nexport function updateOneClubMembershipError(oneClubMembershipUpdateMessages) {\r\n return { type: types.UPDATE_ONE_CLUB_MEMBERSHIP_ERROR, oneClubMembershipUpdateMessages };\r\n}\r\n\r\nexport function updateOneClubMembershipSuccess(oneClubMembershipUpdateMessages) {\r\n return { type: types.UPDATE_ONE_CLUB_MEMBERSHIP_SUCCESS, oneClubMembershipUpdateMessages };\r\n}\r\n\r\nexport function updatePrivacyPolicyAndTermsAndConditionsError(privacyPolicyAndTermsUpdateMessages) {\r\n return { type: types.UPDATE_OPTINS_ERROR, privacyPolicyAndTermsUpdateMessages };\r\n}\r\n\r\nexport function updatePrivacyPolicyAndTermsAndConditionsSuccess(privacyPolicyAndTermsUpdateMessages) {\r\n return { type: types.UPDATE_OPTINS_SUCCESS, privacyPolicyAndTermsUpdateMessages };\r\n}\r\n\r\nexport function resetUpgradeAccountFormState() {\r\n return { type: types.RESET_UPGRADE_ACCOUNT_FORM };\r\n}\r\n\r\nexport function loadSSOUpgradeToOneClubFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.getSSOUpgradeToOneClubFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSOUpgradeToOneClubFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSOUpgradeToOneClubFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSOUpgradeToOneClubFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function upgradeToTicketingAccount(ssoDomain, userDetails, currentUser, callbackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateUserDetailsPost(dataFormatHelper.getFormattedUserDataForUpgradeToTicketingAccount(ssoDomain, currentUser, userDetails), callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(upgradeToTicketingAccountError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(upgradeToTicketingAccountSuccess([apiResponseMessages.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESSFULLY]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(upgradeToTicketingAccountError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function upgradeToOneClubAccount(userDetails, currentUser, callbackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateUserDetailsPost(dataFormatHelper.getFormattedUserDataForUpgradeToOneClubAccount(currentUser, userDetails), callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(upgradeToTicketingAccountError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(upgradeToTicketingAccountSuccess([apiResponseMessages.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESSFULLY]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(upgradeToTicketingAccountError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function upgradeBallotSummaryAccount(userDetails, currentUser, callbackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateUserDetailsPost(dataFormatHelper.getBallotFormattedUserDetailsData(userDetails, currentUser), callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(upgradeToTicketingAccountError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(upgradeToTicketingAccountSuccess([apiResponseMessages.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESSFULLY]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(upgradeToTicketingAccountError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\n\r\nexport function upgradeRaMembersSummaryAccount(userDetails, currentUser, callbackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateUserDetails(dataFormatHelper.getRaMembersFormattedUserDetailsData(userDetails, currentUser), callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(upgradeToTicketingAccountError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(upgradeToTicketingAccountSuccess([apiResponseMessages.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESSFULLY]));\r\n location.reload();\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(upgradeToTicketingAccountError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function joinOneClub(callbackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateOneClubMembershipStatus(callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(updateOneClubMembershipError(serverErrorMessages));\r\n return;\r\n }\r\n GTMUserActions.trackJoinTheOneClubAction();\r\n dispatch(updateOneClubMembershipSuccess([apiResponseMessages.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESSFULLY]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(updateOneClubMembershipError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function agreePrivacyPolicyAndTermsAndCoditions(callbackUrl, agreePrivaciPolicy, agreeTermsAndConditions) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.agreeToPrivacyPolicyAndTermsAndConditions(callbackUrl, agreePrivaciPolicy, agreeTermsAndConditions)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(updatePrivacyPolicyAndTermsAndConditionsError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(updatePrivacyPolicyAndTermsAndConditionsSuccess([apiResponseMessages.UPDATE_USER_DETAILS_SUCCESSFULLY]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(updatePrivacyPolicyAndTermsAndConditionsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function addMasterCardMembershipToUser(callbackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.addMasterCardMembership(callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(upgradeToTicketingAccountError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(upgradeToTicketingAccountSuccess([apiResponseMessages.UPDATE_USER_DETAILS_SUCCESSFULLY]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(upgradeToTicketingAccountError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n","import * as types from './action-types';\r\n\r\nexport function searchAddressSuccess(suggestedAddresses) {\r\n return { type: types.SEARCH_ADDRESS_SUCCESS, suggestedAddresses };\r\n}\r\n\r\nexport function searchAddressError(searchAddressMessages) {\r\n return { type: types.SEARCH_ADDRESS_ERROR, searchAddressMessages };\r\n}\r\n\r\nexport function retrieveAddressSuccess(addressData) {\r\n return { type: types.RETRIEVE_ADDRESS_SUCCESS, addressData };\r\n}\r\n\r\nexport function retrieveAddressError(retrieveAddressMessages) {\r\n return { type: types.RETRIEVE_ADDRESS_ERROR, retrieveAddressMessages };\r\n}\r\n\r\nexport function resetRetrievedUserAddress() {\r\n return { type: types.RESET_RETRIEVE_USER_ADDRESS };\r\n}\r\n\r\nexport function resetUpgradeAccountFormState() {\r\n return { type: types.RESET_UPGRADE_ACCOUNT_FORM };\r\n}\r\n\r\n","/* eslint-disable no-undef */\r\n/* eslint-disable consistent-return */\r\nimport _ from 'lodash';\r\nimport * as types from './action-types';\r\nimport * as userAccountApi from '../api/user-account-api';\r\nimport * as apiResponseMessages from './api-response-messages';\r\nimport * as messageHelper from './helpers/message-helper';\r\nimport * as dataFormatHelper from './helpers/data-format-helper';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\nimport { formMessageConstants } from '../../components/utils/constants/form-message-constants';\r\nimport { formConstants } from '../../components/utils/constants/form-constants';\r\nimport { redirect } from '../api/api-utils';\r\nimport { domainConstants } from '../../components/utils/constants/domain-constants';\r\nimport pageSpinner from '../../../../general/js/page-spinner';\r\nimport { hasValue } from '../../../../general/js/general-helpers';\r\nimport userService from '../../../../general/js/user/user-service';\r\nimport * as cookieHelper from '../../helpers/cookie-helper';\r\nimport { CookieNames } from '../../../../general/js/utils/cookies';\r\nimport { SECUTIX_CONTACT_ID, USER_ID } from '../../../../general/js/user/constants';\r\n\r\nexport const NO_CURRENT_USER_MESSAGE = 'No current user';\r\n\r\nexport function loadHomePageTicketsDataSuccess(homePageTicketsData) {\r\n return { type: types.LOAD_HOME_PAGE_TICKETS_DATA_SUCCESS, homePageTicketsData };\r\n}\r\n\r\nexport function loadHomePageTicketsDataError(loadHomePageTicketsDataErrorMessages) {\r\n return { type: types.LOAD_HOME_PAGE_TICKETS_DATA_ERROR, loadHomePageTicketsDataErrorMessages };\r\n}\r\n\r\nexport function loadUserDataSuccess(userAccountData, isAccountPageRefresh = false) {\r\n const data = { userAccountData, isAccountPageRefresh };\r\n\r\n return {\r\n type: types.LOAD_USER_DATA_SUCCESS, data\r\n };\r\n}\r\n\r\nexport function loadUserDataError(isUserNotSignedIn) {\r\n return { type: types.LOAD_USER_DATA_ERROR, isUserNotSignedIn };\r\n}\r\n\r\nexport function loadOrderHistorySuccess(orderHistoryData, displayCancelledFiles) {\r\n return { type: types.LOAD_ORDER_HISTORY_SUCCESS, orderHistoryData, displayCancelledFiles };\r\n}\r\n\r\nexport function loadOrderHistoryError(loadOrderHistoryErrorMessages) {\r\n return { type: types.LOAD_ORDER_HISTORY_ERROR, loadOrderHistoryErrorMessages };\r\n}\r\n\r\nexport function loadOrderHistoryPagesSuccess(orderHistoryPages, displayCancelledFiles) {\r\n return { type: types.LOAD_ORDER_HISTORY_PAGES_SUCCESS, orderHistoryPages, displayCancelledFiles };\r\n}\r\n\r\nexport function loadOrderHistoryPagesError(loadOrderHistoryPagesErrorMessages) {\r\n return { type: types.LOAD_ORDER_HISTORY_PAGES_ERROR, loadOrderHistoryPagesErrorMessages };\r\n}\r\n\r\nexport function loadOrderDetailsSuccess(orderDetails) {\r\n return { type: types.LOAD_ORDER_DETAILS_SUCCESS, orderDetails };\r\n}\r\n\r\nexport function loadOrderDetailsError(loadOrderDetailsErrorMessages) {\r\n return { type: types.LOAD_ORDER_DETAILS_ERROR, loadOrderDetailsErrorMessages };\r\n}\r\n\r\nexport function loadUserTicketsSuccess(userTicketsData, hideOldTickets) {\r\n return { type: types.LOAD_USER_TICKETS_SUCCESS, userTicketsData, hideOldTickets };\r\n}\r\n\r\nexport function loadUserTicketsError(loadUserTicketsErrorMessages) {\r\n return { type: types.LOAD_USER_TICKETS_ERROR, loadUserTicketsErrorMessages };\r\n}\r\n\r\nexport function downloadPdfFileSuccess() {\r\n return { type: types.DOWNLOAD_PDF_FILE_SUCCESS };\r\n}\r\n\r\nexport function downloadPdfFileError(downloadPdfFileErrorMessages) {\r\n return { type: types.DOWNLOAD_PDF_FILE_ERROR, downloadPdfFileErrorMessages };\r\n}\r\nexport function redirectResaleTicketsError(redirectResaleTicketsErrorMessage) {\r\n return { type: types.RESALE_TICKETS_REDIRECT_URL_ERROR, redirectResaleTicketsErrorMessage };\r\n}\r\nexport function updateUserDetailsSuccess(updateUserDetailsMessages) {\r\n return { type: types.UPDATE_USER_DETAILS_SUCCESS, updateUserDetailsMessages };\r\n}\r\n\r\nexport function resumePaymentByFileNumberError(errorMessages) {\r\n return { type: types.RESUME_PAYMENT_BY_FILE_NUMBER_ERROR, errorMessages };\r\n}\r\n\r\nexport function resumePaymentByFileNumberSuccess(errorMessages) {\r\n return { type: types.RESUME_PAYMENT_BY_FILE_NUMBER_SUCCESS, errorMessages };\r\n}\r\n\r\nexport function updateUserEmailSuccess(updateUserDetailsMessages) {\r\n return { type: types.UPDATER_USER_EMAIL_SUCCESS, updateUserDetailsMessages };\r\n}\r\n\r\nexport function updateUserDetailsError(updateUserDetailsMessages) {\r\n return { type: types.UPDATE_USER_DETAILS_ERROR, updateUserDetailsMessages };\r\n}\r\n\r\nexport function removeUserAccountSuccess() {\r\n return { type: types.REMOVE_USER_ACCOUNT_SUCCESS };\r\n}\r\n\r\nexport function removeUserAccountError(errorMessages) {\r\n return { type: types.REMOVE_USER_ACCOUNT_ERROR, errorMessages };\r\n}\r\n\r\nexport function updateUserAddressesSuccess(updateUserAddressesMessages) {\r\n return { type: types.UPDATE_USER_ADDRESSES_SUCCESS, updateUserAddressesMessages };\r\n}\r\n\r\nexport function updateUserAddressesError(updateUserAddressesMessages) {\r\n return { type: types.UPDATE_USER_ADDRESSES_ERROR, updateUserAddressesMessages };\r\n}\r\n\r\nexport function resetAddressesFormState() {\r\n return { type: types.RESET_USER_ADDRESSES_FORM_STATE };\r\n}\r\n\r\nexport function displayUserAddressesErrorMessage(errorMessages) {\r\n return { type: types.USER_ADDRESSES_ERROR_MESSAGE, errorMessages };\r\n}\r\n\r\nexport function resetUserDetailsFormState() {\r\n return { type: types.RESET_USER_DETAILS_FORM_STATE };\r\n}\r\n\r\nexport function changePasswordSuccess(changePasswordMessages) {\r\n return { type: types.CHANGE_PASSWORD_SUCCESS, changePasswordMessages };\r\n}\r\n\r\nexport function changePasswordError(changePasswordMessages) {\r\n return { type: types.CHANGE_PASSWORD_ERROR, changePasswordMessages };\r\n}\r\n\r\nexport function resetChangePasswordFormState() {\r\n return { type: types.RESET_CHANGE_PASSWORD_FORM_STATE };\r\n}\r\n\r\nexport function resetHomePageTicketsDataFormState() {\r\n return { type: types.RESET_HOME_PAGE_TICKETS_DATA_FORM_STATE };\r\n}\r\n\r\nexport function saveUserToAddressBookFormState() {\r\n return { type: types.SAVE_USER_TO_ADDRESS_BOOK_SUCCESS };\r\n}\r\n\r\nexport function saveUserToAddressBookErrorMessages(errorMessages) {\r\n return { type: types.SAVE_USER_TO_ADDRESS_BOOK_ERROR_MESSAGE, errorMessages };\r\n}\r\n\r\nexport function getHomePageTicketsData(callbackUrl, ssoDomain, secuTixErrorMessage) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.getHomePageTicketsData(callbackUrl, ssoDomain)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n\r\n if (ssoDomain === domainConstants.womensOpen) {\r\n dispatch(loadHomePageTicketsDataError([secuTixErrorMessage || formMessageConstants.encounteredAnIssueWO]));\r\n } else {\r\n dispatch(loadHomePageTicketsDataError([secuTixErrorMessage || formMessageConstants.encounteredAnIssueTO]));\r\n }\r\n\r\n return;\r\n }\r\n const homePageTicketsData = dataFormatHelper.getFormattedHomePageTicketsData(response.data, ssoDomain);\r\n dispatch(loadHomePageTicketsDataSuccess(homePageTicketsData));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n if (ssoDomain === domainConstants.womensOpen) {\r\n dispatch(loadHomePageTicketsDataError([secuTixErrorMessage || formMessageConstants.encounteredAnIssueWO]));\r\n } else {\r\n dispatch(loadHomePageTicketsDataError([secuTixErrorMessage || formMessageConstants.encounteredAnIssueTO]));\r\n }\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function resetHomePageTicketsData() {\r\n return function (dispatch) {\r\n dispatch(resetHomePageTicketsDataFormState());\r\n };\r\n}\r\n\r\nexport function getUserAccountData(callbackUrl, isAccountPageRefresh = false) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.getUserAccountData(callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadUserDataError([apiResponseMessages.SERVER_ERROR_MESSAGE]), false);\r\n return;\r\n }\r\n dispatch(loadUserDataSuccess(response.data, isAccountPageRefresh));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n const isUserNotSignedIn = error === NO_CURRENT_USER_MESSAGE;\r\n dispatch(loadUserDataError([apiResponseMessages.SERVER_ERROR_MESSAGE]), isUserNotSignedIn);\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function getOrderHistory(callbackUrl,\r\n { pageNumber, displayCancelledFiles, ssoDomain }) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.getUserOrderHistoryData(callbackUrl,\r\n { pageNumber, displayCancelledFiles, ssoDomain })\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadOrderHistoryError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n const orderHistoryData = dataFormatHelper.getFormattedOrders(response.data.orders);\r\n dispatch(loadOrderHistorySuccess(orderHistoryData, displayCancelledFiles));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadOrderHistoryError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function getOrderHistoryPages(callbackUrl,\r\n { displayCancelledFiles, ssoDomain }) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.getOrderHistoryPages(callbackUrl, { displayCancelledFiles, ssoDomain })\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadOrderHistoryPagesError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n dispatch(loadOrderHistoryPagesSuccess(response.data, displayCancelledFiles));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadOrderHistoryPagesError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function getOrderDetails(callbackUrl,\r\n { fileNumber, ssoDomain }) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.getOrderDetails(callbackUrl, { fileNumber, ssoDomain })\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadOrderDetailsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n const orderDetailsData = dataFormatHelper.getFormattedOrderDetails(response.data);\r\n dispatch(loadOrderDetailsSuccess(orderDetailsData));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadOrderDetailsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function getUserTickets(callbackUrl, hideOldTickets, ssoDomain) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.getUserTicketsData(callbackUrl, hideOldTickets, ssoDomain)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadUserTicketsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n dispatch(loadUserTicketsSuccess(response.data.eventTickets, hideOldTickets));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadUserTicketsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function downloadTicketPdf(callbackUrl, printOptions, ssoDomain) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.downloadPdfFile(callbackUrl, {\r\n ticketId: printOptions.ticketForPrint.ticketId,\r\n firstName: printOptions.firstNameValue,\r\n lastName: printOptions.lastNameValue,\r\n [formConstants.website]: ssoDomain\r\n }).then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(downloadPdfFileError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n dispatch(downloadPdfFileSuccess());\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(downloadPdfFileError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function downloadPdfDocumentById(callbackUrl, printOptions) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.downloadPdfFile(callbackUrl, printOptions)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(downloadPdfFileError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n dispatch(downloadPdfFileSuccess());\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(downloadPdfFileError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function updateUserAddresses(userDetails, actionSuccessText, callbackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateUserDetails(dataFormatHelper.getFormattedUserDetailsAddressesData(userDetails), callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(updateUserAddressesError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(updateUserAddressesSuccess([actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(updateUserAddressesError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function updateUserDetails({\r\n userDetails,\r\n accountData,\r\n actionSuccessText,\r\n callBackUrl,\r\n emailChangedConflictMessage\r\n}) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateUserDetails(dataFormatHelper.getFormattedUserDetailsData(userDetails, accountData), callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n const errorMessages = _.isEmpty(emailChangedConflictMessage) ?\r\n serverErrorMessages :\r\n [emailChangedConflictMessage];\r\n\r\n dispatch(apiCallError(errorMessages));\r\n dispatch(updateUserDetailsError(errorMessages));\r\n return;\r\n }\r\n\r\n if (response.data && response.data.updatedUserEmailChanged) {\r\n dispatch(updateUserEmailSuccess([actionSuccessText]));\r\n return;\r\n }\r\n\r\n dispatch(updateUserDetailsSuccess([actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(updateUserDetailsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function joinTheOneClub({\r\n userDetails,\r\n accountData,\r\n actionSuccessText,\r\n callBackUrl\r\n}) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateUserDetails(dataFormatHelper.getFormattedJoinTheOneClubData(userDetails, accountData), callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(updateUserDetailsError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(updateUserDetailsSuccess([actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(updateUserDetailsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function updateUserEmailNotificationSettings({\r\n userDetails,\r\n accountData,\r\n actionSuccessText,\r\n callBackUrl\r\n}) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.updateEmailNotificationSettings(dataFormatHelper.getFormattedNotificationSettingsData(userDetails, accountData), callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(updateUserDetailsError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(updateUserDetailsSuccess([actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(updateUserDetailsError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function removeAccount(callbackUrl) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.removeAccount(callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(removeUserAccountError([response.errorMessage]));\r\n return;\r\n }\r\n dispatch(removeUserAccountSuccess());\r\n userService.removeDataFromLocalStorage(SECUTIX_CONTACT_ID);\r\n userService.removeDataFromLocalStorage(USER_ID);\r\n cookieHelper.removeCookie(CookieNames.UserId);\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(removeUserAccountError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function changeUserPassword(passwordDetails, actionSuccessText, callbackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.changeUserPassword(passwordDetails, callbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(changePasswordError(serverErrorMessages));\r\n return;\r\n }\r\n dispatch(changePasswordSuccess([actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(changePasswordError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function displayVerifyUserEmail() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return userAccountApi.getVerifyEmailForm()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n return;\r\n }\r\n dispatch(changePasswordSuccess(['Email changed successfully!']));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\n\r\nexport function handleRedirectToResaleTickets({\r\n resaleTicketsUrl,\r\n secutixResaleUrl,\r\n secutixPointOfSaleId,\r\n secutixVirtualOperator,\r\n redirectUri\r\n}) {\r\n return function (dispatch) {\r\n pageSpinner.show();\r\n return userAccountApi.authUserInResaleSecutix({\r\n resaleTicketsUrl,\r\n requestUrl: secutixResaleUrl,\r\n secutixPointOfSaleId,\r\n secutixVirtualOperator,\r\n redirectUri\r\n })\r\n .then(() => {\r\n pageSpinner.hide();\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n pageSpinner.hide();\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function resumePaymentByFileNumber(urls, request) {\r\n const { resumePaymentCallbackUrl, secutixAuthUrl } = urls;\r\n\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n\r\n const promises = [];\r\n\r\n const resumePaymentPromise = userAccountApi.resumePaymentByFileNumber(resumePaymentCallbackUrl, request)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(resumePaymentByFileNumberError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n return response;\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(resumePaymentByFileNumberError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n\r\n promises.push(resumePaymentPromise);\r\n\r\n const authPromise = userAccountApi.authUserInSecutix(secutixAuthUrl).then((authResponse) => {\r\n if (authResponse.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(resumePaymentByFileNumberError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n return authResponse;\r\n }).catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(resumePaymentByFileNumberError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n\r\n promises.push(authPromise);\r\n\r\n Promise.all(promises).then((responseValues) => {\r\n let redirectUrl = responseValues[1].data.redirectUrl;\r\n\r\n redirectUrl = redirectUrl.replace('{0}', responseValues[0].data.orderId);\r\n redirectUrl = redirectUrl.replace('{1}', responseValues[0].data.orderToken);\r\n\r\n redirect(redirectUrl);\r\n dispatch(resumePaymentByFileNumberSuccess(['Reservation resumed successful!']));\r\n });\r\n };\r\n}\r\n\r\nexport function saveUserToAddressBook(formData, accountData) {\r\n return function (dispatch) {\r\n const serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n const formattedRequestModel = dataFormatHelper.getFormattedSaveUserToAddressBookRequest(formData, accountData);\r\n\r\n if (!hasValue(formattedRequestModel) || formattedRequestModel.AddressBookID === 0) {\r\n dispatch(saveUserToAddressBookErrorMessages(serverErrorMessages));\r\n return;\r\n }\r\n\r\n const { saveUserToDotDigitalCallbackUrl } = formData;\r\n\r\n if (!hasValue(saveUserToDotDigitalCallbackUrl)) {\r\n dispatch(saveUserToAddressBookErrorMessages(serverErrorMessages));\r\n return;\r\n }\r\n\r\n dispatch(beginApiCall());\r\n return userAccountApi.saveUserToAddressBook(formattedRequestModel, saveUserToDotDigitalCallbackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(saveUserToAddressBookErrorMessages([response.errorMessage]));\r\n return;\r\n }\r\n dispatch(saveUserToAddressBookFormState());\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(saveUserToAddressBookErrorMessages(error));\r\n throw error;\r\n });\r\n };\r\n}\r\n","import { \r\n hasValue \r\n} from \"../../../../../general/js/general-helpers\";\r\nimport { getMainAddress } from \"../../../components/forms/helpers/form-helpers/upgrade-form-helper\";\r\nimport { formConstants } from \"../../../components/utils/constants/form-constants\";\r\n\r\nexport function getUserDetailsForSaveToAddressBookRequest(userDetails) {\r\n if (!hasValue(userDetails)){\r\n return [];\r\n }\r\n\r\n let userAttributes = {\r\n FirstName: userDetails[formConstants.firstName],\r\n LastName: userDetails[formConstants.lastName]\r\n }\r\n \r\n const mainAddress = getMainAddress(userDetails);\r\n\r\n if (hasValue(mainAddress) && hasValue(mainAddress[formConstants.country])) {\r\n userAttributes.Country = mainAddress[formConstants.country];\r\n }\r\n\r\n return getFormattedDotdigitalUserAttributeList(userAttributes);\r\n}\r\n\r\nexport function getSaveUserToAddressBookRequestModel(userDetails = [], userEmail = '', addressBookData = {}){\r\n if(!hasValue(userDetails) || !hasValue(userEmail) || !hasValue(addressBookData) || addressBookData.addressBookID === 0){\r\n return undefined;\r\n }\r\n \r\n return {\r\n UserDetails: userDetails,\r\n Email: userEmail,\r\n AddressBookID: addressBookData.addressBookID\r\n };\r\n}\r\n\r\nfunction getFormattedDotdigitalUserAttributeList(attributes = {}) {\r\n let dotDigitalAttributes = [];\r\n \r\n if(!hasValue(attributes)){\r\n return dotDigitalAttributes;\r\n }\r\n\r\n Object.keys(attributes).forEach(key => {\r\n const attribute = getFormattedDotdigitalUserAttribute(key, attributes[key]);\r\n \r\n if (hasValue(attribute)){\r\n dotDigitalAttributes.push(attribute);\r\n }\r\n });\r\n\r\n return dotDigitalAttributes;\r\n}\r\n\r\nfunction getFormattedDotdigitalUserAttribute(key = '', value = null) {\r\n if (!hasValue(key) || !hasValue(value)){\r\n return {};\r\n }\r\n\r\n return {\r\n Key: key,\r\n Value: value\r\n }\r\n}","import _, { fromPairs } from 'lodash';\r\nimport { formConstants } from '../../../utils/constants/form-constants';\r\nimport { isEmpty } from '../../../utils/obj-utils';\r\nimport { createDateFromExisting } from '../../../utils/date-utils';\r\nimport { domainConstants } from '../../../utils/constants/domain-constants';\r\n'../../utils/constants/domain-constants';\r\n\r\nconst BallotSummaryDetailsFormData = (\r\n formData,\r\n userAccountData\r\n) => {\r\n function buildBallotSummaryDetailsFormData() {\r\n const ballotFormData = getBallotSummaryUserDetailsFields();\r\n return getBallotSummaryUserDetailsFieldsWithDefaultValues(ballotFormData);\r\n }\r\n\r\n function getBallotSummaryUserDetailsFields() {\r\n const { requestEmailVerificationActionSuccessText, callBackUrl } = formData;\r\n\r\n formData[formConstants.callBackUrl] = callBackUrl;\r\n formData[formConstants.ssoDomain] = formData[formConstants.ssoDomain];\r\n formData[formConstants.actionSuccessText] = requestEmailVerificationActionSuccessText;\r\n formData[formConstants.emailAddress] = formData[formConstants.emailAddress];\r\n formData[formConstants.confirmEmailAddress] = formData[formConstants.confirmEmailAddress];\r\n formData[formConstants.title] = formData[formConstants.title];\r\n formData[formConstants.firstName] = formData[formConstants.firstName];\r\n formData[formConstants.lastName] = formData[formConstants.lastName];\r\n formData[formConstants.dateOfBirth] = formData[formConstants.dateOfBirth];\r\n formData[formConstants.mainAddressLabel] = formData[formConstants.mainAddressLabel];\r\n formData[formConstants.country] = formData[formConstants.country];\r\n formData[formConstants.county] = formData[formConstants.county];\r\n formData[formConstants.state] = formData[formConstants.state];\r\n formData[formConstants.addressLine1] = formData[formConstants.addressLine1];\r\n formData[formConstants.addressLine2] = formData[formConstants.addressLine2];\r\n formData[formConstants.addressLine3] = formData[formConstants.addressLine3];\r\n formData[formConstants.city] = formData[formConstants.city];\r\n formData[formConstants.postcode] = formData[formConstants.postcode];\r\n formData[formConstants.mobilePhone] = formData[formConstants.mobilePhone];\r\n formData[formConstants.becomeOneClubMemberInfo] = formData[formConstants.becomeOneClubMemberInfo];\r\n formData[formConstants.offersDetails] = formData[formConstants.offersDetails];\r\n formData[formConstants.oneClubTermsAndServices] = formData[formConstants.oneClubTermsAndServices];\r\n \r\n return formData;\r\n }\r\n\r\n function getBallotSummaryUserDetailsFieldsWithDefaultValues(formData) {\r\n\r\n formData[formConstants.emailAddress].defaultValue = userAccountData[formConstants.email];\r\n formData[formConstants.title].defaultValue = userAccountData[formConstants.title];\r\n formData[formConstants.firstName].defaultValue = userAccountData[formConstants.firstName];\r\n formData[formConstants.lastName].defaultValue = userAccountData[formConstants.lastName];\r\n\r\n if (!_.isEmpty(userAccountData[formConstants.mobilePhone])) {\r\n formData[formConstants.mobilePhone].defaultValue = {};\r\n\r\n const userMobilePhone = _.cloneDeep(userAccountData[formConstants.mobilePhone]);\r\n\r\n const userCountryCodeMobilePhonePrefix = userAccountData[formConstants.countryCodeMobilePhonePrefix];\r\n\r\n const selectedCountry = getSelectedCountry(formData, userCountryCodeMobilePhonePrefix, userMobilePhone);\r\n\r\n formData[formConstants.mobilePhone].defaultValue.selectedCountry = selectedCountry;\r\n\r\n formData[formConstants.mobilePhone].defaultValue.phoneNumber = userMobilePhone.replace(selectedCountry.phonePrefix, '');\r\n }\r\n\r\n if (userAccountData.dateOfBirth !== undefined) {\r\n formData[formConstants.dateOfBirth].defaultValue = createDateFromExisting(userAccountData.dateOfBirth);\r\n }\r\n\r\n let mainAddress = {};\r\n if (!isEmpty(userAccountData.addresses)) {\r\n const foundAddress = userAccountData.addresses.find((address) => address.main);\r\n mainAddress = isEmpty(foundAddress) ? {} : foundAddress;\r\n }\r\n\r\n formData[formConstants.addressLine1].defaultValue = mainAddress.addressLine1;\r\n formData[formConstants.addressLine2].defaultValue = mainAddress.addressLine2;\r\n formData[formConstants.addressLine3].defaultValue = mainAddress.addressLine3;\r\n formData[formConstants.postcode].defaultValue = mainAddress.postcode;\r\n formData[formConstants.city].defaultValue = mainAddress.city;\r\n formData[formConstants.country].defaultValue = mainAddress.country;\r\n formData[formConstants.county].defaultValue = mainAddress.county;\r\n formData[formConstants.state].defaultValue = mainAddress.state;\r\n\r\n const optIns = userAccountData[formConstants.optIns];\r\n formData[formConstants.offersDetails].defaultValue =\r\n {\r\n [formConstants.refuseOffers]: !optIns.optedTheOpenOffersByEmail,\r\n [formConstants.acceptOffers]: optIns.optedPartnerOffersByEmail\r\n };\r\n \r\n return formData;\r\n }\r\n\r\n return buildBallotSummaryDetailsFormData();\r\n};\r\n\r\nfunction getSelectedCountry(formData, userCountryCodeMobilePhonePrefix, userMobilePhone) {\r\n\r\n let selectedCountry = formData[formConstants.country].options\r\n .find((country) => !_.isEmpty(country.phonePrefix) &&\r\n country.code === userCountryCodeMobilePhonePrefix);\r\n\r\n if (selectedCountry)\r\n return selectedCountry;\r\n\r\n selectedCountry = formData[formConstants.country].options\r\n .find((country) => !_.isEmpty(country.phonePrefix) &&\r\n userMobilePhone.includes(country.phonePrefix));\r\n\r\n return selectedCountry;\r\n}\r\n\r\nexport default BallotSummaryDetailsFormData;\r\n","/* eslint-disable react/no-direct-mutation-state */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\nimport { isEmpty, deepCopyObject } from '../../utils/obj-utils';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as upgradeAccountActions from '../../../store/actions/upgrade-account-actions';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport * as upgradeFormHelper from '../helpers/form-helpers/upgrade-form-helper';\r\nimport BallotSummaryDetailsFormData from './helpers/ballot-summary-form-data';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\nimport { getFormContainerWideLeftClassList, getModalContentClassListForSSOForm, toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\nimport { createDate } from '../../utils/date-utils';\r\nimport { MembershipTypes } from '../../../../../general/js/utils';\r\n\r\nclass BallotSummaryForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { formData, ssoDomain } = this.props;\r\n\r\n const mainAddress = upgradeFormHelper.getMainAddress(formData.currentUser);\r\n const birthDate = upgradeFormHelper.getDateOfBirth(formData.currentUser);\r\n\r\n this.state = {\r\n ...initialState.upgradeBallotFormState,\r\n [formConstants.country]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.country),\r\n [formConstants.county]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.county),\r\n [formConstants.state]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.state),\r\n [formConstants.city]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.city),\r\n [formConstants.addressLine1]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine1),\r\n [formConstants.addressLine2]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine2),\r\n [formConstants.addressLine3]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine3),\r\n [formConstants.postcode]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.postcode),\r\n [formConstants.dateOfBirth]: birthDate ? createDate(birthDate.year, birthDate.month, birthDate.day) : null,\r\n ssoDomain,\r\n userDataLoaded: false,\r\n isModalStylingUpdated: false\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReference = React.createRef();\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n\r\n this.displayBallotSummaryForm = this.displayBallotSummaryForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleUserUpdateBallotSummarySuccess = this.handleUserUpdateBallotSummarySuccess.bind(this);\r\n this.submitBallotSummaryData = this.submitBallotSummaryData.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const { onSignIn, formData, actions } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n onSignIn();\r\n }\r\n\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormTypes.BallotSummaryForm);\r\n\r\n const { userProfileCallbackUrl } = formData;\r\n actions.getUserAccountData(userProfileCallbackUrl, false);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n formData,\r\n isUpgradeSuccessful,\r\n loading,\r\n retrievedUserAddress,\r\n isUserAddressRetrieveSuccessful,\r\n isUserAccountDataLoadedSuccessful,\r\n userAccountData\r\n } = nextProps;\r\n\r\n const { userDataLoaded } = this.state;\r\n\r\n if (hasValue(formData) && !this.state.isModalStylingUpdated) {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, nextProps, ssoFormTypes.BallotSummaryForm);\r\n }\r\n\r\n if (!loading && isUserAddressRetrieveSuccessful && !isUpgradeSuccessful) {\r\n const { county, state } = formData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n isUpgradeSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserUpdateBallotSummarySuccess);\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isUpgradeSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n\r\n if (!loading && !isEmpty(userAccountData) &&\r\n isUserAccountDataLoadedSuccessful && !userDataLoaded) {\r\n this.updateUserAccountData(userAccountData);\r\n }\r\n }\r\n\r\n updateUserAccountData(nextUserAccountData) {\r\n const { formData } = this.props;\r\n\r\n const userAccountData = _.cloneDeep(nextUserAccountData);\r\n\r\n const userDetailsFormData = new BallotSummaryDetailsFormData(formData, userAccountData);\r\n\r\n if (userAccountData.membership.includes(MembershipTypes.OneClubAdvantage)) {\r\n userDetailsFormData.mastercard.isDisabled = true;\r\n userDetailsFormData.mastercard.label = formData.alreadyMastercardMemberText;\r\n }\r\n this.setState(formStateHelpers.updateFormFields(userDetailsFormData));\r\n\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n userDetailsFormData,\r\n userDataLoaded: true\r\n })\r\n );\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.upgradeAccountFormState);\r\n actions.resetUpgradeAccountFormState();\r\n }\r\n\r\n handleUserUpdateBallotSummarySuccess() {\r\n const {\r\n handleBallotSummarySuccess,\r\n formData,\r\n handleBallotPortalRedirect\r\n } = this.props;\r\n\r\n if (!hasValue(formData)) {\r\n handleBallotPortalRedirect();\r\n }\r\n\r\n handleBallotSummarySuccess();\r\n }\r\n\r\n async handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n const { reCaptcha } = this.state;\r\n\r\n if (reCaptcha) {\r\n formData.reCaptchaToken = reCaptcha;\r\n }\r\n\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitBallotSummaryData);\r\n }\r\n\r\n submitBallotSummaryData() {\r\n const { actions, formData, userAccountData } = this.props;\r\n const { callBackUrlPut } = formData;\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.title]);\r\n actions.upgradeBallotSummaryAccount(this.state, userAccountData, callBackUrlPut);\r\n }\r\n\r\n displayForm() {\r\n const {\r\n isUpgradeSuccessful,\r\n accountUpgradeMessages,\r\n purchaseAttemptMessages,\r\n formData\r\n } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n\r\n const messagesToDisplay = _.isEmpty(accountUpgradeMessages) ? purchaseAttemptMessages : accountUpgradeMessages;\r\n\r\n return (\r\n
    \r\n \r\n {this.displayBallotSummaryForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displayBallotSummaryForm() {\r\n const { formData } = this.props;\r\n const { availableCounties, country, availableStates } = this.state;\r\n const { county, mobilePhone, state } = formData;\r\n const copyOfFormData = deepCopyObject(formData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n\r\n if (this.state[formConstants.dateOfBirth] !== undefined && this.state[formConstants.dateOfBirth] instanceof Date) {\r\n copyOfFormData[formConstants.dateOfBirth].defaultValue = this.state[formConstants.dateOfBirth];\r\n }\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target), this.updateFormData); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target), this.updateFormData); },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event, mobilePhone.isOptional), this.updateFormData); },\r\n handleCaptchaChange: (token) => { this.setState(formStateHelpers.handleCaptchaChange(token)); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state));\r\n },\r\n handleMastercardNumberChange: (event) => {\r\n this.setState(formStateHelpers.handleMastercardNumberChange(event.target,\r\n formData.mastercardRegex, formData.mastercardValidationError));\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, formData } = this.props;\r\n const { formBanner, desktopImageSrc, mobileImageSrc } = formData;\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n hasValue(mobileImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n \r\n
    \r\n {(isSaving || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n {\r\n hasValue(desktopImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nBallotSummaryForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onSignIn: PropTypes.func.isRequired,\r\n ssoDomain: PropTypes.string,\r\n formData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n formData: _.isEmpty(ownProps.formData) ? state.registerForm.formData : ownProps.formData,\r\n isUpgradeSuccessful: state.upgradeAccountForm.isUpgradeSuccessful,\r\n accountUpgradeMessages: state.upgradeAccountForm.accountUpgradeMessages,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress,\r\n userAccountData: state.userAccount.userAccountData,\r\n isUserAccountDataLoadedSuccessful: state.userAccount.isUserAccountDataLoadedSuccessful,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n upgradeBallotSummaryAccount: bindActionCreators(upgradeAccountActions.upgradeBallotSummaryAccount, dispatch),\r\n resetUpgradeAccountFormState: bindActionCreators(upgradeAccountActions.resetUpgradeAccountFormState, dispatch),\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch),\r\n getUserAccountData: bindActionCreators(userAccountActions.getUserAccountData, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(BallotSummaryForm);\r\n","import * as types from './action-types';\r\nimport * as itemListFormApi from '../api/item-list-form-api';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\n\r\nexport function loadSSOItemListFormDataSuccess(itemListFormData) {\r\n return { type: types.LOAD_ITEM_LIST_FORM_DATA_SUCCESS, itemListFormData };\r\n}\r\n\r\nexport function loadSSOItemListFormDataError() {\r\n return { type: types.LOAD_ITEM_LIST_FORM_DATA_ERROR };\r\n}\r\n\r\n\r\nexport function loadSSOItemListFormData(formDataUrl = '', formId = '') {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return itemListFormApi.getSSOItemListFormData(formDataUrl, formId)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSOItemListFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSOItemListFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSOItemListFormDataError());\r\n throw error;\r\n });\r\n };\r\n}","import { handleResponse, handleError } from './api-utils';\r\nimport { apiConstants } from './api-constants';\r\nimport { hasValue } from '../../../../general/js/general-helpers';\r\n\r\nexport function getSSOItemListFormData(formDataUrl = '', formId = '') {\r\n let callBackUrl = hasValue(formDataUrl) ? formDataUrl : apiConstants.loadSSOItemListFormDataUrl;\r\n\r\n if(hasValue(formId)){\r\n callBackUrl = `${callBackUrl}?id=${formId}`;\r\n }\r\n\r\n return fetch(callBackUrl, {\r\n method: 'GET',\r\n headers: { 'content-type': 'application/json' }\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}","/* eslint-disable no-useless-return */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport { deepCopyObject } from '../../utils/obj-utils';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport {\r\n getProperty, hasValue, isNullOrUndefined, parametersDidUpdate, toggleCssClass\r\n} from '../../../../../general/js/general-helpers';\r\nimport { hasFormFields } from '../helpers/form-helpers/form-field-helpers';\r\nimport * as itemListFormActions from '../../../store/actions/item-list-form-actions';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { reloadPageWithoutQueryParams } from '../../../../../general/js/utils';\r\n\r\nclass SSOItemListForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ...initialState.ssoItemListFormState\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReferences = [];\r\n\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.buildFormRefs = this.buildFormRefs.bind(this);\r\n this.displayItemListForm = this.displayItemListForm.bind(this);\r\n this.loadSSOItemListFormData = this.loadSSOItemListFormData.bind(this);\r\n this.handleModalClose = this.handleModalClose.bind(this);\r\n\r\n this.loadSSOItemListFormData();\r\n }\r\n\r\n loadSSOItemListFormData() {\r\n const {\r\n actions,\r\n formData,\r\n isFormLoadSuccessful,\r\n itemListErrorMessages,\r\n formId\r\n } = this.props;\r\n\r\n if (!hasValue(formData) && hasValue(actions) && (!isFormLoadSuccessful && !hasValue(itemListErrorMessages))) {\r\n actions.loadSSOItemListFormData(formMessageConstants.emptyString, formId);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.loadFields();\r\n this.hideModalCloseButton();\r\n this.addListeners();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.removeListeners();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isFormLoadSuccessful,\r\n itemListErrorMessages,\r\n loading\r\n } = nextProps;\r\n\r\n const oldItemList = getProperty(this.props.formData, formFieldConstants.itemList);\r\n const newItemList = getProperty(nextProps.formData, formFieldConstants.itemList);\r\n\r\n if (!parametersDidUpdate(oldItemList, newItemList)) {\r\n return;\r\n }\r\n\r\n this.hideModalCloseButton(nextProps);\r\n\r\n if (!loading && isFormLoadSuccessful && !hasValue(itemListErrorMessages)) {\r\n this.loadFields(nextProps);\r\n return;\r\n }\r\n }\r\n\r\n loadFields(nextProps = {}) {\r\n const { formData } = hasValue(nextProps) ? nextProps : this.props;\r\n\r\n if (!hasValue(formData)) {\r\n return;\r\n }\r\n\r\n const { itemList } = formData;\r\n\r\n if (!hasValue(itemList)) {\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.loadTextAndImageFields(itemList));\r\n }\r\n\r\n hideModalCloseButton(nextProps = {}) {\r\n const { formData } = hasValue(nextProps) ? nextProps : this.props;\r\n const { hideCloseButton } = hasValue(formData) ? formData : { hideCloseButton: false };\r\n\r\n if (hideCloseButton) {\r\n const closeButton = document.querySelector('.modal__close');\r\n\r\n if (!isNullOrUndefined(closeButton)) {\r\n toggleCssClass(closeButton, 'is-hidden', hideCloseButton);\r\n }\r\n }\r\n }\r\n\r\n buildFormRefs() {\r\n if (!hasValue(this.formReferences) && hasFormFields(this.state)) {\r\n this.formReferences = formScrollHelpers.getFormReferences(this.state);\r\n }\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { handleBallotPortalRedirect, isFromBallot } = this.props;\r\n\r\n if (!hasValue(handleBallotPortalRedirect) || !isFromBallot) {\r\n reloadPageWithoutQueryParams();\r\n return;\r\n }\r\n\r\n this.removeListeners();\r\n handleBallotPortalRedirect();\r\n }\r\n\r\n addListeners() {\r\n document.addEventListener('keydown', this.handleModalClose);\r\n }\r\n\r\n removeListeners() {\r\n document.removeEventListener('keydown', this.handleModalClose);\r\n }\r\n\r\n handleModalClose(event) {\r\n if (event.keyCode === 27) {\r\n event.preventDefault();\r\n reloadPageWithoutQueryParams();\r\n }\r\n }\r\n\r\n displayForm() {\r\n const {\r\n formData\r\n } = this.props;\r\n\r\n if (!hasValue(formData)) {\r\n return null;\r\n }\r\n\r\n const { submitButtonText, useYellowButton } = formData;\r\n const footerButtonText = hasValue(submitButtonText) ? submitButtonText : formMessageConstants.upgradeAccountResale;\r\n\r\n return (\r\n
    \r\n \r\n {this.displayItemListForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displayItemListForm() {\r\n const copyOfFormData = deepCopyObject(this.state);\r\n\r\n this.buildFormRefs();\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences\r\n });\r\n }\r\n\r\n render() {\r\n const { formData, loading } = this.props;\r\n\r\n const formBanner = getProperty(formData, 'formBanner');\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n hasValue(formBanner) &&\r\n \r\n }\r\n
    \r\n {(loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSSOItemListForm.propTypes = {\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n formData: !hasValue(ownProps.formData) ? state.itemListForm.itemListFormData : ownProps.formData,\r\n itemListErrorMessages: state.itemListForm.itemListErrorMessages,\r\n isFormLoadSuccessful: state.itemListForm.isFormLoadSuccessful\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadSSOItemListFormData: bindActionCreators(itemListFormActions.loadSSOItemListFormData, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(SSOItemListForm);\r\n","/* eslint-disable react/no-direct-mutation-state */\r\nimport React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport './ballot-sign-in-form.scss';\r\nimport { apiConstants } from '../../../store/api/api-constants';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { getModalContentClassListForSSOForm, toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\nimport { getPageUrlWithoutQueryParams } from '../../../../../general/js/utils';\r\nimport Oauth from '../../oauth';\r\n\r\nclass BallotSignInForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n const formData = this.loadFormData();\r\n\r\n this.state = {\r\n ...initialState.signInFormState,\r\n formData,\r\n isModalStylingUpdated: false\r\n };\r\n\r\n this.formReference = React.createRef();\r\n\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleOauthSignUp = this.handleOauthSignUp.bind(this);\r\n this.preventFormSubmit = this.preventFormSubmit.bind(this);\r\n this.handleOauthSignIn = this.handleOauthSignIn.bind(this);\r\n }\r\n\r\n loadFormData() {\r\n const { formData } = this.props;\r\n\r\n if (!isEmpty(formData)) {\r\n sessionStorage.setItem(formConstants.ballotSignInStorageItem, JSON.stringify(formData));\r\n return formData;\r\n }\r\n\r\n return JSON.parse(sessionStorage.getItem(formConstants.ballotSignInStorageItem)) || null;\r\n }\r\n\r\n componentDidMount() {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormTypes.BallotSignInForm);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { formData } = nextProps;\r\n\r\n if (hasValue(formData) && !this.state.isModalStylingUpdated) {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, nextProps, ssoFormTypes.BallotSignInForm);\r\n }\r\n }\r\n\r\n getFooterLink(linkCallBackUrl, footerLinkText) {\r\n if (!linkCallBackUrl ||\r\n isEmpty(footerLinkText)) {\r\n return null;\r\n }\r\n\r\n const { isBallotFlow } = this.props;\r\n const hrefAttribute = isBallotFlow ? { href: '#' } : null;\r\n\r\n return (\r\n {footerLinkText}\r\n );\r\n }\r\n\r\n getHeaderLink(linkCallBackUrl, headerLinkText) {\r\n if (!linkCallBackUrl || isEmpty(headerLinkText)) {\r\n return null;\r\n }\r\n\r\n return (\r\n {headerLinkText}\r\n \r\n );\r\n }\r\n\r\n handleSubmit() {\r\n const { formData, onSignIn } = this.props;\r\n\r\n const componentToRenderUrl = this.getComponentToRenderAfterSignIn(formData.nextFormTypeAfterSignIn);\r\n\r\n const url = getPageUrlWithoutQueryParams();\r\n\r\n const returnUrl = `${url}${componentToRenderUrl}`;\r\n\r\n onSignIn(returnUrl);\r\n }\r\n\r\n handleOauthSignUp() {\r\n const { formData: { oAuthRegisterRoute } } = this.props;\r\n\r\n Oauth.signUp(oAuthRegisterRoute);\r\n }\r\n\r\n handleOauthSignIn() {\r\n Oauth.federatedSignIn();\r\n }\r\n\r\n getComponentToRenderAfterSignIn(nextFormTypeToDisplay) {\r\n if (nextFormTypeToDisplay === ssoFormTypes.BallotSignInSuccessForm) {\r\n return apiConstants.ballotSignInSuccessFormDataUrl;\r\n }\r\n\r\n //Full register flow\r\n return apiConstants.ballotSummaryFormDataUrl;\r\n }\r\n\r\n preventFormSubmit(event) {\r\n event.preventDefault();\r\n }\r\n\r\n getHeadingText(headingText) {\r\n if (isEmpty(headingText)) { return null; }\r\n return

    {headingText}

    ;\r\n }\r\n\r\n displayForm() {\r\n const { formData } = this.state;\r\n\r\n return (\r\n
    \r\n {this.getHeadingText(formData.headingText)}\r\n
    \r\n
    \r\n
    \r\n  \r\n
    \r\n
    \r\n {this.getButton(this.handleOauthSignIn, formData.signInButtonText)}\r\n
    \r\n
    \r\n {this.getFooterLink(Oauth.forgotPassword, formData.forgottenPasswordLinkText)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {formData.registerHeadingText}\r\n
    \r\n
    \r\n {this.getButton(this.handleOauthSignUp, formData.registerButtonText)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    );\r\n }\r\n\r\n getButton(submitAction, buttonText) {\r\n return \r\n {this.getButtonContent(buttonText)}\r\n ;\r\n }\r\n\r\n getButtonContent(buttonText) {\r\n return \r\n {buttonText}\r\n \r\n \r\n \r\n ;\r\n }\r\n\r\n render() {\r\n const { formData } = this.state;\r\n const { formBanner } = formData;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n {this.displayForm()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nBallotSignInForm.propTypes = {\r\n onSignIn: PropTypes.func.isRequired,\r\n onRegister: PropTypes.func.isRequired,\r\n onForgotPassword: PropTypes.func.isRequired\r\n};\r\n\r\nexport default BallotSignInForm;\r\n","import React, { useState, useEffect, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport _ from 'lodash';\r\nimport { Auth } from 'aws-amplify';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport * as upgradeAccountActions from '../../../store/actions/upgrade-account-actions';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\nimport GTMUserActions from '../../common/utility/GTMUserActions';\r\nimport {\r\n MembershipTypes,\r\n getDestructuredTextWithMultipleLinks,\r\n getMultilineText\r\n} from '../../../../../general/js/utils';\r\n\r\nfunction BallotSignInSuccessForm({\r\n actions,\r\n formData,\r\n loading,\r\n}) {\r\n const [isOneClubMember, setIsOneClubMember] = useState(false);\r\n const [displayForm, setDisplayForm] = useState(false);\r\n\r\n const { formBanner } = formData;\r\n\r\n useEffect(() => {\r\n Auth.currentAuthenticatedUser().then((user) => {\r\n setIsOneClubMember(user.attributes['custom:Membership'].includes(MembershipTypes.OneClub));\r\n setDisplayForm(true);\r\n }).catch((err) => { console.log(err); });\r\n });\r\n\r\n return (\r\n
    \r\n {loading || !displayForm ? / : null}\r\n \r\n
    \r\n {displayForm ? \r\n {isOneClubMember ? :\r\n }\r\n : null}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nfunction OneClubMemberMessage(props) {\r\n const { formData } = props;\r\n\r\n if (isEmpty(formData)) { return null; }\r\n\r\n const messageParagraphs = getMultilineText(formData.oneClubMessage);\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction MultiLineMessage({ messageParagraphs, show }) {\r\n return (
    \r\n {\r\n messageParagraphs.map((message) => {\r\n return

    {message}


    ;\r\n })\r\n }\r\n
    );\r\n}\r\n\r\nfunction NonOneClubMemberMessage(props) {\r\n const { formData, actions } = props;\r\n\r\n const [hideSaveButton, setHideSaveButton] = useState(true);\r\n const [showSuccessMessage, setShowSuccessMessage] = useState(false);\r\n\r\n const { oneClubTermsAndServices, nonOneClubMessage, nonOneClubSuccessfulMessage } = formData;\r\n\r\n const messageParagraphs = getMultilineText(nonOneClubMessage);\r\n\r\n const successMessageParagraphs = getMultilineText(nonOneClubSuccessfulMessage);\r\n\r\n const joinOneClub = (event) => {\r\n event.preventDefault();\r\n\r\n actions.joinOneClub(formData.callbackUrl).then(() => {\r\n GTMUserActions.trackJoinTheOneClubAction();\r\n setShowSuccessMessage(true);\r\n });\r\n };\r\n\r\n const onJoinOneClubCheckboxChange = (event) => {\r\n setHideSaveButton(!event.target.checked);\r\n };\r\n\r\n return (\r\n \r\n \r\n
    \r\n {getDestructuredTextWithMultipleLinks(\r\n oneClubTermsAndServices.policy.label,\r\n oneClubTermsAndServices.policy.link.split(';')\r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n {formData.joinButtonMessage}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n joinOneClub: bindActionCreators(upgradeAccountActions.joinOneClub, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(BallotSignInSuccessForm);\r\n","import * as types from './action-types';\r\nimport * as forgotPasswordFormApi from '../api/forgot-password-form-api';\r\nimport * as apiResponseMessages from './api-response-messages';\r\nimport * as dataFormatHelper from './helpers/data-format-helper';\r\nimport * as messageHelper from './helpers/message-helper';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\nimport { formMessageConstants } from '../../components/utils/constants/form-message-constants';\r\n\r\nexport function loadSSOForgotPasswordFormDataSuccess(forgotPasswordFormData) {\r\n return { type: types.LOAD_FORGOT_PASSWORD_FORM_SUCCESS, forgotPasswordFormData };\r\n}\r\n\r\nexport function loadSSOForgotPasswordFormDataError() {\r\n return { type: types.LOAD_FORGOT_PASSWORD_FORM_ERROR };\r\n}\r\n\r\nexport function handleUserForgotPasswordSuccess(forgotPasswordMessages) {\r\n return { type: types.FORGOT_PASSWORD_SUCCESS, forgotPasswordMessages };\r\n}\r\n\r\nexport function handleUserForgotPasswordError(forgotPasswordMessages) {\r\n return { type: types.FORGOT_PASSWORD_ERROR, forgotPasswordMessages };\r\n}\r\n\r\nexport function resetForgotPasswordFormState() {\r\n return { type: types.RESET_FORGOT_PASSWORD_FORM_STATE };\r\n}\r\n\r\nexport function loadSSOForgotPasswordFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return forgotPasswordFormApi.getSSOForgotPasswordFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSOForgotPasswordFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSOForgotPasswordFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSOForgotPasswordFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function handleUserForgotPassword(userForgotPasswordData, callBackUrl) {\r\n let serverErrorMessages = [formMessageConstants.somethingWentWrong];\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return forgotPasswordFormApi\r\n .handleUserForgotPassword(dataFormatHelper.getFormattedUserForgotPasswordData(userForgotPasswordData), callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(handleUserForgotPasswordError(serverErrorMessages));\r\n return;\r\n }\r\n const { actionSuccessText } = userForgotPasswordData;\r\n dispatch(handleUserForgotPasswordSuccess([actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(handleUserForgotPasswordError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n dispatch(apiCallError([error]));\r\n throw error;\r\n });\r\n };\r\n}\r\n","import { handleResponse, handleError } from './api-utils';\r\nimport { apiConstants } from './api-constants';\r\n\r\nexport function getSSOForgotPasswordFormData() {\r\n return fetch(apiConstants.loadForgotPasswordFormDataUrl)\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\n\r\nexport function handleUserForgotPassword(userForgotPasswordData, callbackUrl) {\r\n return fetch(callbackUrl, {\r\n method: 'POST',\r\n headers: { 'content-type': 'application/json' },\r\n body: JSON.stringify(userForgotPasswordData)\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n","import React, { Component } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport * as forgotPasswordFormActions from '../../../store/actions/forgot-password-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport FormBuilder from '../helpers/form-builder';\r\n\r\nclass ForgotPasswordForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = initialState.forgotPasswordFormState;\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.displayForgotPasswordForm = this.displayForgotPasswordForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.submitForgotPasswordData = this.submitForgotPasswordData.bind(this);\r\n this.resetForm = this.resetForm.bind(this);\r\n\r\n this.loadForgotPasswordFormData();\r\n }\r\n\r\n loadForgotPasswordFormData() {\r\n const { actions, forgotPasswordFormData } = this.props;\r\n\r\n if (!isEmpty(forgotPasswordFormData)) {\r\n return;\r\n }\r\n\r\n actions.loadSSOForgotPasswordFormData();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isForgotPasswordSuccessful,\r\n loading\r\n } = nextProps;\r\n\r\n if (!loading && isForgotPasswordSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false));\r\n return;\r\n }\r\n\r\n if (!loading && !isForgotPasswordSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.resetForm();\r\n }\r\n\r\n resetForm() {\r\n const { actions } = this.props;\r\n this.setState(initialState.forgotPasswordFormState);\r\n actions.resetForgotPasswordFormState();\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { forgotPasswordFormData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(forgotPasswordFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateProcessingState(true), this.submitForgotPasswordData);\r\n }\r\n\r\n submitForgotPasswordData() {\r\n const { actions, forgotPasswordFormData } = this.props;\r\n const { emailAddress } = this.state;\r\n const { callBackUrl, ssoDomain } = forgotPasswordFormData;\r\n const actionSuccessText = forgotPasswordFormData.actionSuccessText || formMessageConstants.forgotPasswordSuccessText;\r\n\r\n actions.handleUserForgotPassword({ emailAddress, actionSuccessText, website: ssoDomain }, callBackUrl);\r\n }\r\n\r\n displayForm() {\r\n const {\r\n isForgotPasswordSuccessful,\r\n forgotPasswordMessages,\r\n onSignIn,\r\n forgotPasswordFormData\r\n } = this.props;\r\n\r\n if (isEmpty(forgotPasswordFormData)) {\r\n return null;\r\n }\r\n\r\n return (
    \r\n \r\n {this.displayForgotPasswordForm()}\r\n \r\n \r\n );\r\n }\r\n\r\n displayForgotPasswordForm() {\r\n const { forgotPasswordFormData } = this.props;\r\n\r\n return FormBuilder({\r\n formData: forgotPasswordFormData,\r\n formReferences: this.formReferences,\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n render() {\r\n const { isProcessing } = this.state;\r\n const { loading } = this.props;\r\n return (\r\n
    \r\n
    \r\n
    \r\n {(isProcessing || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nForgotPasswordForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onSignIn: PropTypes.func.isRequired,\r\n forgotPasswordFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n forgotPasswordFormData: state.forgotPasswordForm.forgotPasswordFormData,\r\n isForgotPasswordSuccessful: state.forgotPasswordForm.isForgotPasswordSuccessful,\r\n forgotPasswordMessages: state.forgotPasswordForm.forgotPasswordMessages,\r\n loading: state.apiStatus.apiCallsInProgress > 0\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadSSOForgotPasswordFormData: bindActionCreators(forgotPasswordFormActions.loadSSOForgotPasswordFormData, dispatch),\r\n handleUserForgotPassword: bindActionCreators(forgotPasswordFormActions.handleUserForgotPassword, dispatch),\r\n resetForgotPasswordFormState: bindActionCreators(forgotPasswordFormActions.resetForgotPasswordFormState, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ForgotPasswordForm);\r\n","import * as types from './action-types';\r\nimport * as resetPasswordFormApi from '../api/reset-password-form-api';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\nimport * as apiResponseMessages from './api-response-messages';\r\nimport * as dataFormatHelper from './helpers/data-format-helper';\r\n\r\nexport function loadSSOResetPasswordFormDataSuccess(resetPasswordFormData) {\r\n return { type: types.LOAD_RESET_PASSWORD_FORM_SUCCESS, resetPasswordFormData };\r\n}\r\n\r\nexport function loadSSOResetPasswordFormDataError() {\r\n return { type: types.LOAD_RESET_PASSWORD_FORM_ERROR };\r\n}\r\n\r\nexport function handleResetPasswordSuccess(resetPasswordMessages) {\r\n return { type: types.RESET_PASSWORD_SUCCESS, resetPasswordMessages };\r\n}\r\n\r\nexport function handleResetPasswordError(resetPasswordMessages) {\r\n return { type: types.RESET_PASSWORD_ERROR, resetPasswordMessages };\r\n}\r\n\r\nexport function resetResetPasswordFormState() {\r\n return { type: types.RESET_RESET_PASSWORD_FORM_STATE };\r\n}\r\n\r\nexport function loadSSOResetPasswordFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return resetPasswordFormApi.getSSOResetPasswordFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSOResetPasswordFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSOResetPasswordFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSOResetPasswordFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function handleResetPassword(userResetPasswordData, callBackUrl) {\r\n //eslint-disable-next-line no-unused-vars\r\n return function (dispatch, getState) {\r\n dispatch(beginApiCall());\r\n return resetPasswordFormApi\r\n .handleResetPassword(dataFormatHelper.getFormattedUserResetPasswordData(userResetPasswordData), callBackUrl)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(handleResetPasswordError([response.errorMessage]));\r\n return;\r\n }\r\n\r\n dispatch(handleResetPasswordSuccess([apiResponseMessages.RESET_PASSWORD_SUCCESSFULLY]));\r\n })\r\n .catch((error) => {\r\n dispatch(handleResetPasswordError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n dispatch(apiCallError([error]));\r\n throw error;\r\n });\r\n };\r\n}\r\n","import { handleResponse, handleError } from './api-utils';\r\nimport { apiConstants } from './api-constants';\r\n\r\nexport function getSSOResetPasswordFormData() {\r\n return fetch(apiConstants.loadResetPasswordFormDataUrl)\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function handleResetPassword(userResetPasswordData, callbackUrl) {\r\n return fetch(callbackUrl, {\r\n method: 'POST',\r\n headers: { 'content-type': 'application/json' },\r\n body: JSON.stringify(userResetPasswordData)\r\n })\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n","export const NEW_PASSWORD_REQUIRED = 'NEW_PASSWORD_REQUIRED';\r\n","/* eslint-disable no-useless-return */\r\nimport { Auth } from 'aws-amplify';\r\nimport * as types from './action-types';\r\nimport * as cognitoChallengeNames from './cognito-challenge-names';\r\nimport * as signInFormApi from '../api/sign-in-form-api';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\nimport { formConstants } from '../../components/utils/constants/form-constants';\r\nimport userService from '../../../../general/js/user/user-service';\r\nimport * as cookieHelper from '../../helpers/cookie-helper';\r\nimport * as apiResponseMessages from './api-response-messages';\r\nimport * as dataFormatHelper from './helpers/data-format-helper';\r\nimport { isEmpty } from '../../components/utils/obj-utils';\r\nimport { formMessageConstants } from '../../components/utils/constants/form-message-constants';\r\nimport { RA_MEMBER_UPDATED_INFO, LAST_VISIT_DATE } from '../../../../general/js/user/constants';\r\nimport * as messageHelper from './helpers/message-helper';\r\nimport { updateUserDataCookie } from '../../components/utils/user-data-cookie/user-data-cookie-helpers';\r\nimport { reloadToBasePage } from '../../../../general/js/utils';\r\n\r\nexport const PASSWORD_RESET_REQUIRED_EXCEPTION = 'PasswordResetRequiredException';\r\nconst USER_LAMBDA_VALIDATION_EXCEPTION = 'UserLambdaValidationException';\r\nconst USER_NOT_FOUND_EXCEPTION = 'UserNotFoundException';\r\n\r\nexport function loadSSOSignInFormDataSuccess(signInFormData) {\r\n return { type: types.LOAD_SIGN_IN_FORM_DATA_SUCCESS, signInFormData };\r\n}\r\n\r\nexport function loadSSOSignInFormDataError() {\r\n return { type: types.LOAD_SIGN_IN_FORM_DATA_ERROR };\r\n}\r\n\r\nexport function loadSSOSignInSuccessFormDataSuccess(signInFormDataSuccess) {\r\n return { type: types.LOAD_SIGN_IN_SUCCESS_FORM_DATA_SUCCESS, signInFormDataSuccess };\r\n}\r\n\r\nexport function loadNewPasswordRequiredFormDataSuccess(newPasswordRequiredFormData) {\r\n return { type: types.LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_SUCCESS, newPasswordRequiredFormData };\r\n}\r\n\r\nexport function loadNewPasswordRequiredFormDataError(loadPasswordRequiredFormDataMessages) {\r\n return { type: types.LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_ERROR, loadPasswordRequiredFormDataMessages };\r\n}\r\n\r\nexport function signInUserSuccess(signInProperties) {\r\n return { type: types.SIGN_IN_USER_SUCCESS, signInProperties };\r\n}\r\n\r\nexport function signInUserError(signInMessages) {\r\n return { type: types.SIGN_IN_USER_ERROR, signInMessages };\r\n}\r\n\r\nexport function lastLogInDataUpdateSuccess(lastLogInProperties) {\r\n return { type: types.LAST_LOG_IN_UPDATE_SUCCESS, lastLogInProperties };\r\n}\r\n\r\nexport function lastLogInDataUpdateError(errorMessages) {\r\n return { type: types.LAST_LOG_IN_UPDATE_ERROR, errorMessages };\r\n}\r\n\r\nexport function newPasswordSavedSuccess(newPasswordSavedMessages) {\r\n return { type: types.NEW_PASSWORD_SAVED_SUCCESS, newPasswordSavedMessages };\r\n}\r\n\r\nexport function newPasswordSavedError(newPasswordSavedMessages) {\r\n return { type: types.NEW_PASSWORD_SAVED_ERROR, newPasswordSavedMessages };\r\n}\r\n\r\nexport function signOutUserError(signOutMessages) {\r\n return { type: types.SIGN_OUT_USER_SUCCESS, signOutMessages };\r\n}\r\n\r\nexport function signOutUserSuccess(signOutMessages) {\r\n return { type: types.SIGN_OUT_USER_ERROR, signOutMessages };\r\n}\r\n\r\nexport function resetSignInFormState() {\r\n return { type: types.RESET_SIGN_IN_FORM_STATE };\r\n}\r\n\r\nexport function loadSSOSignInFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return signInFormApi.getSSOSignInFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSOSignInFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSOSignInFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSOSignInFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function loadRaMembersSignInFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return signInFormApi.getSSORaMembersSignInFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSOSignInFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSOSignInFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSOSignInFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function loadSSOSignInSuccessFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return signInFormApi.getSSOSignInSuccessFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSOSignInFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSOSignInSuccessFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSOSignInFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function loadNewPasswordRequiredFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return signInFormApi.getNewPasswordRequiredFormData()\r\n .then((response) => {\r\n if (isEmpty(response)) {\r\n dispatch(apiCallError([formMessageConstants.somethingWentWrong]));\r\n dispatch(loadNewPasswordRequiredFormDataError([formMessageConstants.somethingWentWrong]));\r\n return;\r\n }\r\n\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadNewPasswordRequiredFormDataError([response.errorMessage]));\r\n return;\r\n }\r\n\r\n dispatch(loadNewPasswordRequiredFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadNewPasswordRequiredFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function handleNewPasswordRequired({\r\n cognitoUser,\r\n password,\r\n maxIdleTimeInSeconds,\r\n actionSuccessText\r\n}) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return signInFormApi\r\n .completeNewPassword({ cognitoUser, password })\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(newPasswordSavedError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n finalizeNewPasswordChange(dispatch, { maxIdleTimeInSeconds, actionSuccessText });\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(newPasswordSavedError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nfunction finalizeNewPasswordChange(dispatch, { maxIdleTimeInSeconds, actionSuccessText }) {\r\n Auth.currentSession()\r\n .then((data) => {\r\n const { jwtToken } = data.accessToken;\r\n userService.setAccessTokenCookie(jwtToken);\r\n cookieHelper.setCookie(formConstants.maxIdleTimeInSeconds, maxIdleTimeInSeconds);\r\n dispatch(newPasswordSavedSuccess([actionSuccessText]));\r\n }).catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(newPasswordSavedError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n });\r\n}\r\n\r\nexport function updateUserSignInDetails({\r\n lastLoginDate,\r\n lastLoginDevice,\r\n lastLoginPlatform,\r\n callBackUrl\r\n}) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return signInFormApi.updateUserSignInDetails(\r\n dataFormatHelper.getFormattedUserSignInDetailsData(lastLoginDate, lastLoginDevice, lastLoginPlatform),\r\n callBackUrl\r\n )\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n const serverErrorMessages = messageHelper.getServerErrorMessages(response);\r\n dispatch(apiCallError(serverErrorMessages));\r\n dispatch(lastLogInDataUpdateError(serverErrorMessages));\r\n return;\r\n }\r\n\r\n userService.setDataInLocalStorage(LAST_VISIT_DATE, lastLoginDate);\r\n\r\n dispatch(lastLogInDataUpdateSuccess({\r\n isUserLastLogInDataUpdated: true,\r\n }));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(lastLogInDataUpdateError([error]));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function signInUser(userSignInData) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return signInFormApi\r\n .signInUser(dataFormatHelper.getFormattedUserSignInData(userSignInData))\r\n .then((response) => {\r\n const { challengeName } = response;\r\n const { actionSuccessText } = userSignInData;\r\n if (challengeName === cognitoChallengeNames.NEW_PASSWORD_REQUIRED) {\r\n dispatch(signInUserSuccess({\r\n isSignInSuccessful: true,\r\n isNewPasswordRequired: true,\r\n signInMessages: [actionSuccessText],\r\n cognitoUser: response\r\n }));\r\n return;\r\n }\r\n\r\n finalizeUserSignIn(dispatch, userSignInData, response);\r\n })\r\n .catch((error) => {\r\n let errorMessages = isEmpty(error.message) ? [apiResponseMessages.SERVER_ERROR_MESSAGE] : [error.message];\r\n if (error.code === PASSWORD_RESET_REQUIRED_EXCEPTION) {\r\n errorMessages = [apiResponseMessages.PASSWORD_RESET_REQUIRED];\r\n }\r\n\r\n if (error.code === USER_LAMBDA_VALIDATION_EXCEPTION) {\r\n errorMessages = [apiResponseMessages.MUST_CONFIRM_EMAIL_MESSAGE];\r\n }\r\n\r\n if (error.code === USER_NOT_FOUND_EXCEPTION) {\r\n errorMessages = [apiResponseMessages.MISSING_USER];\r\n }\r\n\r\n dispatch(apiCallError([error]));\r\n dispatch(signInUserError(errorMessages));\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nfunction finalizeUserSignIn(dispatch, { maxIdleTimeInSeconds, actionSuccessText }, response) {\r\n Auth.currentSession()\r\n .then((data) => {\r\n const { jwtToken } = data.accessToken;\r\n userService.setAccessTokenCookie(jwtToken);\r\n cookieHelper.setCookie(formConstants.maxIdleTimeInSeconds, maxIdleTimeInSeconds);\r\n updateUserDataCookie();\r\n dispatch(signInUserSuccess({\r\n isSignInSuccessful: true,\r\n isNewPasswordRequired: false,\r\n signInMessages: [actionSuccessText],\r\n cognitoUser: response\r\n }));\r\n }).catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(signInUserError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n });\r\n}\r\n\r\nexport function setRaMembersCookie() {\r\n Auth.currentAuthenticatedUser(true)\r\n .then(() => {\r\n if (!cookieHelper.getCookie(RA_MEMBER_UPDATED_INFO)) cookieHelper.setCookie(RA_MEMBER_UPDATED_INFO, true);\r\n });\r\n}\r\n\r\nexport function signOutUser() {\r\n //eslint-disable-next-line no-unused-vars\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return signInFormApi\r\n .signOutUser()\r\n .then(() => {\r\n dispatch(signOutUserSuccess([apiResponseMessages.SIGN_OUT_USER_SUCCESSFULLY]));\r\n userService.setAccessTokenCookie(null);\r\n userService.setUserDataCookie(null);\r\n cookieHelper.setCookie(formConstants.maxIdleTimeInSeconds, 0);\r\n reloadToBasePage();\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(signOutUserError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n","import React, { Component } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport * as resetPasswordFormActions from '../../../store/actions/reset-password-actions';\r\nimport * as signInFormActions from '../../../store/actions/sign-in-form-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport {\r\n getParameterByName,\r\n reloadToBasePage\r\n} from '../../../../../general/js/utils';\r\n\r\nclass ResetPasswordForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = initialState.resetPasswordFormState;\r\n\r\n this.displayResetPasswordForm = this.displayResetPasswordForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.loadResetPasswordForm = this.loadResetPasswordForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.signInUser = this.signInUser.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.submitResetPasswordData = this.submitResetPasswordData.bind(this);\r\n this.getFormHeaderLabel = this.getFormHeaderLabel.bind(this);\r\n this.handleSignInSuccessful = this.handleSignInSuccessful.bind(this);\r\n this.resetForm = this.resetForm.bind(this);\r\n\r\n this.loadResetPasswordForm();\r\n }\r\n\r\n loadResetPasswordForm() {\r\n const { actions, resetPasswordFormData } = this.props;\r\n\r\n if (isEmpty(resetPasswordFormData)) {\r\n actions.loadSSOResetPasswordFormData();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isResetPasswordSuccessful,\r\n isSignInSuccessful,\r\n loading\r\n } = nextProps;\r\n\r\n if (isSignInSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false), this.handleSignInSuccessful);\r\n return;\r\n }\r\n\r\n if (!loading && isResetPasswordSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false), this.signInUser);\r\n return;\r\n }\r\n\r\n if (!loading && !isResetPasswordSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.resetForm();\r\n }\r\n\r\n resetForm() {\r\n const { actions } = this.props;\r\n this.setState(initialState.resetPasswordFormState);\r\n actions.resetResetPasswordFormState();\r\n }\r\n\r\n componentDidMount() {\r\n const verificationCode = getParameterByName(formConstants.verificationCode);\r\n this.setState(formStateHelpers.updateVerificationCode(verificationCode));\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { resetPasswordFormData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(resetPasswordFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (!this.state.formHasErrors) {\r\n this.setState(formStateHelpers.updateProcessingState(true), this.submitResetPasswordData);\r\n }\r\n }\r\n\r\n submitResetPasswordData() {\r\n const { actions, resetPasswordFormData } = this.props;\r\n const { callBackUrl } = resetPasswordFormData;\r\n actions.handleResetPassword(this.state, callBackUrl);\r\n }\r\n\r\n signInUser() {\r\n const { actions } = this.props;\r\n const userSignInData = {\r\n [formConstants.emailAddress]: this.state[formConstants.emailAddress],\r\n [formConstants.password]: this.state[formConstants.password]\r\n };\r\n\r\n actions.signInUser(userSignInData);\r\n }\r\n\r\n handleSignInSuccessful() {\r\n reloadToBasePage();\r\n }\r\n\r\n getFormHeaderLabel() {\r\n const { resetPasswordFormData } = this.props;\r\n\r\n if (isEmpty(resetPasswordFormData)) {\r\n return formMessageConstants.resetPasswordFormHeaderLabel;\r\n }\r\n\r\n return resetPasswordFormData.formText;\r\n }\r\n\r\n displayForm() {\r\n const {\r\n isResetPasswordSuccessful,\r\n resetPasswordMessages,\r\n resetPasswordFormData\r\n } = this.props;\r\n\r\n if (isEmpty(resetPasswordFormData)) {\r\n return null;\r\n }\r\n\r\n return (
    \r\n \r\n {this.displayResetPasswordForm()}\r\n \r\n );\r\n }\r\n\r\n displayResetPasswordForm() {\r\n const { resetPasswordFormData } = this.props;\r\n const { verificationCode } = this.state;\r\n\r\n return FormBuilder({\r\n formData: resetPasswordFormData,\r\n verificationCode,\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n render() {\r\n const { isProcessing } = this.state;\r\n const { loading } = this.props;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {(isProcessing || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nResetPasswordForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n resetPasswordFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n resetPasswordFormData: state.resetPasswordForm.resetPasswordFormData,\r\n isResetPasswordSuccessful: state.resetPasswordForm.isResetPasswordSuccessful,\r\n resetPasswordMessages: state.resetPasswordForm.resetPasswordMessages,\r\n isSignInSuccessful: state.signInForm.isSignInSuccessful,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadSSOResetPasswordFormData: bindActionCreators(resetPasswordFormActions.loadSSOResetPasswordFormData, dispatch),\r\n handleResetPassword: bindActionCreators(resetPasswordFormActions.handleResetPassword, dispatch),\r\n resetResetPasswordFormState: bindActionCreators(resetPasswordFormActions.resetResetPasswordFormState, dispatch),\r\n signInUser: bindActionCreators(signInFormActions.signInUser, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ResetPasswordForm);\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport './change-password.scss';\r\n\r\nfunction ChangePasswordFooter({\r\n onSubmit,\r\n isSubmit = true,\r\n}) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nChangePasswordFooter.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default ChangePasswordFooter;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as signInFormActions from '../../../store/actions/sign-in-form-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport ChangePasswordFooter from './ChangePasswordFooter';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport './change-password.scss';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport Oauth from '../../oauth';\r\n\r\nclass ChangePasswordForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = initialState.userDetailsFormState;\r\n\r\n this.displayChangePasswordForm = this.displayChangePasswordForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.submitPasswordData = this.submitPasswordData.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { loading, actions, isUserPasswordChangedSuccessful } = nextProps;\r\n\r\n if (!loading && isUserPasswordChangedSuccessful) {\r\n actions.signOutUser();\r\n }\r\n }\r\n\r\n displayForm() {\r\n const { formData, isUserPasswordChangedSuccessful, changePasswordMessages } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n\r\n return (
    \r\n \r\n {/* {this.displayChangePasswordForm()} */}\r\n \r\n );\r\n }\r\n\r\n displayChangePasswordForm() {\r\n const { formData } = this.props;\r\n\r\n return FormBuilder({\r\n formData,\r\n handleFieldChange: (event) => {\r\n const { oldPassword } = this.state;\r\n const eventTarget = event.target;\r\n const fieldName = eventTarget.name;\r\n const fieldData = formData[fieldName];\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(eventTarget, fieldData));\r\n this.setState(formStateHelpers.handleOldPasswordFieldChange({ name: formConstants.oldPassword, value: oldPassword }));\r\n },\r\n handleOldPasswordChange: (event) => {\r\n this.setState(formStateHelpers.handleOldPasswordFieldChange(event.target));\r\n },\r\n handleConfirmPasswordChange: (event) => {\r\n this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target));\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitPasswordData);\r\n }\r\n\r\n submitPasswordData() {\r\n const { actions, formData } = this.props;\r\n const { actionSuccessText, callBackUrl } = formData;\r\n const { oldPassword, password } = this.state;\r\n\r\n actions.changeUserPassword({ oldPassword, newPassword: password }, actionSuccessText, callBackUrl);\r\n }\r\n\r\n render() {\r\n const { loading, formData } = this.props;\r\n const { formTitle } = formData;\r\n return (\r\n \r\n

    {formTitle}

    \r\n
    \r\n {loading ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nChangePasswordForm.propTypes = {\r\n formData: PropTypes.object.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isUserPasswordChangedSuccessful: state.userAccount.isUserPasswordChangedSuccessful,\r\n changePasswordMessages: state.userAccount.changePasswordMessages,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n changeUserPassword: bindActionCreators(userAccountActions.changeUserPassword, dispatch),\r\n signOutUser: bindActionCreators(signInFormActions.signOutUser, dispatch),\r\n }\r\n };\r\n}\r\n\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ChangePasswordForm);\r\n","import * as types from './action-types';\r\nimport * as verifyEmailFormApi from '../api/verify-email-form-api';\r\nimport * as apiResponseMessages from './api-response-messages';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\nimport * as dataFormatHelper from './helpers/data-format-helper';\r\n\r\nexport function loadSSOVerifyEmailFormDataSuccess(verifyEmailFormData) {\r\n return { type: types.LOAD_VERIFY_EMAIL_FORM_SUCCESS, verifyEmailFormData };\r\n}\r\n\r\nexport function loadSSOVerifyEmailFormDataError() {\r\n return { type: types.LOAD_VERIFY_EMAIL_FORM_ERROR };\r\n}\r\n\r\nexport function handleUserVerifyEmailSuccess(verifyEmailMessages) {\r\n return { type: types.VERIFY_EMAIL_SUCCESS, verifyEmailMessages };\r\n}\r\n\r\nexport function handleUserVerifyEmailError(verifyEmailMessages) {\r\n return { type: types.VERIFY_EMAIL_ERROR, verifyEmailMessages };\r\n}\r\n\r\nexport function resetVerifyEmailFormState() {\r\n return { type: types.RESET_VERIFY_EMAIL_FORM_STATE };\r\n}\r\n\r\nexport function loadSSOVerifyEmailFormData() {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return verifyEmailFormApi.getSSOVerifyEmailFormData()\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(loadSSOVerifyEmailFormDataError());\r\n return;\r\n }\r\n dispatch(loadSSOVerifyEmailFormDataSuccess(response.data));\r\n })\r\n .catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(loadSSOVerifyEmailFormDataError());\r\n throw error;\r\n });\r\n };\r\n}\r\n\r\nexport function handleUserVerifyEmail(verifyEmailData) {\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n return verifyEmailFormApi\r\n .verifyEmail(dataFormatHelper.getFormattedVerifyEmailData(verifyEmailData))\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(handleUserVerifyEmailError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n const { actionSuccessText } = verifyEmailData;\r\n dispatch(handleUserVerifyEmailSuccess([actionSuccessText]));\r\n })\r\n .catch((error) => {\r\n dispatch(handleUserVerifyEmailError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n dispatch(apiCallError([error]));\r\n throw error;\r\n });\r\n };\r\n}\r\n","import { Auth } from 'aws-amplify';\r\nimport { handleResponse, handleError } from './api-utils';\r\nimport { apiConstants } from './api-constants';\r\n\r\nexport function getSSOVerifyEmailFormData() {\r\n return fetch(apiConstants.loadVerifyEmailFormDataUrl)\r\n .then(handleResponse)\r\n .catch(handleError);\r\n}\r\n\r\nexport function verifyEmail(verificationCode) {\r\n return Auth.verifyCurrentUserAttributeSubmit(apiConstants.emailAttributeName, verificationCode);\r\n}\r\n","import React, { Component } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport * as verifyEmailFormActions from '../../../store/actions/verify-email-actions';\r\nimport * as signInActions from '../../../store/actions/sign-in-form-actions';\r\n\r\nclass VerifyEmailForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = initialState.verifyEmailFormState;\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.displayVerifyEmailForm = this.displayVerifyEmailForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.resetForm = this.resetForm.bind(this);\r\n\r\n this.loadVerifyEmailFormData();\r\n }\r\n\r\n loadVerifyEmailFormData() {\r\n const { actions, verifyEmailFormData } = this.props;\r\n\r\n if (!isEmpty(verifyEmailFormData)) {\r\n return;\r\n }\r\n\r\n actions.loadSSOVerifyEmailFormData();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isVerifyEmailSuccessful,\r\n loading\r\n } = nextProps;\r\n\r\n const { actions } = this.props;\r\n\r\n if (!loading && isVerifyEmailSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false));\r\n actions.signOutUser();\r\n\r\n return;\r\n }\r\n\r\n if (!loading && !isVerifyEmailSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.resetForm();\r\n }\r\n\r\n resetForm() {\r\n const { actions } = this.props;\r\n this.setState(initialState.verifyEmailFormState);\r\n actions.resetVerifyEmailFormState();\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { verifyEmailFormData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(verifyEmailFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (!this.state.formHasErrors) {\r\n this.setState(formStateHelpers.updateProcessingState(true), this.submitVerifyEmailData);\r\n }\r\n }\r\n\r\n submitVerifyEmailData() {\r\n const { actions, verifyEmailFormData } = this.props;\r\n const { verificationCode } = this.state;\r\n const actionSuccessText = verifyEmailFormData.actionSuccessText || formMessageConstants.verifyEmailSuccessText;\r\n\r\n actions.handleUserVerifyEmail({ verificationCode, actionSuccessText });\r\n }\r\n\r\n displayForm() {\r\n const {\r\n isVerifyEmailSuccessful,\r\n verifyEmailMessages,\r\n verifyEmailFormData\r\n } = this.props;\r\n\r\n if (isEmpty(verifyEmailFormData)) {\r\n return null;\r\n }\r\n\r\n const { titleText, formText, buttonText } = verifyEmailFormData;\r\n\r\n return (
    \r\n \r\n \r\n {this.displayVerifyEmailForm()}\r\n \r\n \r\n );\r\n }\r\n\r\n displayVerifyEmailForm() {\r\n const { verifyEmailFormData, isReadOnly } = this.props;\r\n\r\n return FormBuilder({\r\n isReadOnly,\r\n formData: verifyEmailFormData,\r\n formReferences: this.formReferences,\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {this.displayForm()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nVerifyEmailForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n verifyEmailFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n verifyEmailFormData: state.verifyEmailForm.verifyEmailFormData,\r\n isVerifyEmailSuccessful: state.verifyEmailForm.isVerifyEmailSuccessful,\r\n verifyEmailMessages: state.verifyEmailForm.verifyEmailMessages,\r\n loading: state.apiStatus.apiCallsInProgress > 0\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadSSOVerifyEmailFormData: bindActionCreators(verifyEmailFormActions.loadSSOVerifyEmailFormData, dispatch),\r\n handleUserVerifyEmail: bindActionCreators(verifyEmailFormActions.handleUserVerifyEmail, dispatch),\r\n resetVerifyEmailFormState: bindActionCreators(verifyEmailFormActions.resetVerifyEmailFormState, dispatch),\r\n signOutUser: bindActionCreators(signInActions.signOutUser, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(VerifyEmailForm);\r\n","/* eslint-disable no-restricted-globals */\r\nimport React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as signInActions from '../../../store/actions/sign-in-form-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport './user-details.scss';\r\nimport ConfirmationModal from '../../common/utility/ConfirmationModal';\r\nimport { deepCopyObject } from '../../utils/obj-utils';\r\nimport VerifyEmailForm from '../verify-email/VerifyEmailForm';\r\nimport ReactModal from '../../../../modal/js/react-modal';\r\nimport { domainConstants } from '../../utils/constants/domain-constants';\r\nimport {\r\n getMultilineText\r\n} from '../../../../../general/js/utils';\r\nimport Oauth from '../../oauth';\r\nimport { IdentityBrokerConfig } from '../../../../../general/js/utils/oauth/constants/identity-broker-config';\r\n\r\nclass UserDetailsForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { formData } = this.props;\r\n const copyOfFormData = deepCopyObject(formData);\r\n this.state = {\r\n ...initialState.userDetailsFormState,\r\n formData: copyOfFormData,\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.isWomensOpen = formData.ssoDomain === domainConstants.womensOpen;\r\n\r\n this.displayUserDetailsForm = this.displayUserDetailsForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleRemoveAccountClick = this.handleRemoveAccountClick.bind(this);\r\n this.toggleConfirmationModal = this.toggleConfirmationModal.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleUserDetailsUpdateSuccess = this.handleUserDetailsUpdateSuccess.bind(this);\r\n this.handleUserDetailsEmailUpdateSuccess = this.handleUserDetailsEmailUpdateSuccess.bind(this);\r\n this.submitUserDetailsData = this.submitUserDetailsData.bind(this);\r\n this.updateFormData = this.updateFormData.bind(this);\r\n this.handleSSOUpgradeToMemberPlusRedirect = this.handleSSOUpgradeToMemberPlusRedirect.bind(this);\r\n this.handleSSOUpdateTicketingAccountRedirect = this.handleSSOUpdateTicketingAccountRedirect.bind(this);\r\n this.handleSSOUpdateAccountRedirect = this.handleSSOUpdateAccountRedirect.bind(this);\r\n\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { isSaving } = this.state;\r\n const { actions } = this.props;\r\n const {\r\n loading,\r\n formData,\r\n isUserAddressRetrieveSuccessful,\r\n retrievedUserAddress,\r\n isUserDetailsUpdatedSuccessful,\r\n isUserAccountRemovedSuccessful,\r\n isUserUpdatingEmail\r\n } = nextProps;\r\n\r\n if (!loading && isUserAddressRetrieveSuccessful) {\r\n const { county, state } = formData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n }\r\n\r\n if (!loading && isUserAccountRemovedSuccessful) {\r\n actions.signOutUser();\r\n return;\r\n }\r\n\r\n if (isSaving &&\r\n !loading &&\r\n isUserDetailsUpdatedSuccessful) {\r\n if (isUserUpdatingEmail) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserDetailsEmailUpdateSuccess);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserDetailsUpdateSuccess);\r\n return;\r\n }\r\n\r\n if (isSaving &&\r\n !loading &&\r\n !isUserDetailsUpdatedSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.userDetailsFormState);\r\n actions.resetUserDetailsFormState();\r\n }\r\n\r\n componentDidMount() {\r\n const { formData } = this.state;\r\n this.setState(formStateHelpers.updateFormFields(formData));\r\n this.updateFormData();\r\n }\r\n\r\n updateFormData() {\r\n const { formData } = this.state;\r\n const copyOfFormData = deepCopyObject(formData);\r\n this.setState(formStateHelpers.updateFormData(copyOfFormData));\r\n }\r\n\r\n handleUserDetailsUpdateSuccess() {\r\n const { refreshAccountPage } = this.props;\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n refreshAccountPage(false);\r\n }\r\n\r\n handleUserDetailsEmailUpdateSuccess() {\r\n const { isUserUpdatingEmail } = this.state;\r\n this.setState(formStateHelpers.toggleKey(Object.keys({ isUserUpdatingEmail })[0]));\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.state;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleSSOUpdateTicketingAccountRedirect() {\r\n Oauth.updateAccountData(IdentityBrokerConfig.upgradeToTicketingRoute);\r\n }\r\n\r\n handleSSOUpgradeToMemberPlusRedirect() {\r\n Oauth.updateAccountData(IdentityBrokerConfig.upgradeToOneClubAdvantageRoute);\r\n }\r\n\r\n handleSSOUpdateAccountRedirect() {\r\n Oauth.updateAccountData(IdentityBrokerConfig.updateAccountRoute);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitUserDetailsData);\r\n }\r\n\r\n submitUserDetailsData() {\r\n const { actions, accountData } = this.props;\r\n const { formData } = this.state;\r\n const {\r\n callBackUrl,\r\n actionSuccessText,\r\n emailChangedConflictMessage\r\n } = formData;\r\n const formattedActionSuccessText = actionSuccessText || formMessageConstants.updateUserDetailsSuccessText;\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.title]);\r\n actions.updateUserDetails({\r\n userDetails: this.state,\r\n accountData,\r\n actionSuccessText: formattedActionSuccessText,\r\n callBackUrl,\r\n emailChangedConflictMessage\r\n });\r\n }\r\n\r\n handleRemoveAccountClick() {\r\n const { actions } = this.props;\r\n const { formData } = this.state;\r\n const { removeAccountCallbackUrl } = formData;\r\n actions.removeAccount(removeAccountCallbackUrl);\r\n }\r\n\r\n toggleConfirmationModal() {\r\n this.setState(formStateHelpers.toggleKey('isConfirmationPopUpOpen'));\r\n }\r\n\r\n displayVerifyEmailForm() {\r\n const { isUserUpdatingEmail } = this.state;\r\n\r\n return isUserUpdatingEmail ? \r\n \r\n : null;\r\n }\r\n\r\n displayUserDetailsForm() {\r\n const { actions } = this.props;\r\n const {\r\n formData, availableCounties, country, availableStates\r\n } = this.state;\r\n const { county, mobilePhone, state } = formData;\r\n\r\n const copyOfFormData = deepCopyObject(formData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n if (this.state[formConstants.dateOfBirth] !== undefined && this.state[formConstants.dateOfBirth] instanceof Date && !isNaN(this.state[formConstants.dateOfBirth])) {\r\n copyOfFormData[formConstants.dateOfBirth].defaultValue = this.state[formConstants.dateOfBirth];\r\n }\r\n\r\n if (copyOfFormData[formConstants.offersDetails]) {\r\n if (copyOfFormData[formConstants.offersDetails][formConstants.refuseOffers]) {\r\n copyOfFormData[formConstants.offersDetails][formConstants.refuseOffers].isHidden = true;\r\n }\r\n }\r\n\r\n return FormBuilder({\r\n isReadOnly: true,\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target), this.updateFormData); },\r\n handleFieldChange: (event) => {\r\n const eventTarget = event.target;\r\n const fieldName = eventTarget.name;\r\n const fieldData = formData[fieldName];\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(eventTarget, fieldData), this.updateFormData);\r\n },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleConfirmEmailChange: (event) => { this.setState(formStateHelpers.handleConfirmEmailFieldChange(event.target)); },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event, mobilePhone.isOptional)); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state),\r\n () => {\r\n actions.resetRetrievedUserAddress();\r\n });\r\n },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving, isConfirmationPopUpOpen } = this.state;\r\n const { loading, updateUserDetailsMessages, isUserDetailsUpdatedSuccessful } = this.props;\r\n const { formData } = this.state;\r\n const {\r\n formTitle,\r\n removeAccountInputText,\r\n removeAccountInputWarning,\r\n removeAccountModalWarning\r\n } = formData;\r\n const removeAccountModalWarningSplit = getMultilineText(removeAccountModalWarning);\r\n return (\r\n \r\n

    {formTitle}

    \r\n
    \r\n {isSaving || loading ? / : null}\r\n
    \r\n \r\n {this.displayUserDetailsForm()}\r\n {this.displayVerifyEmailForm()}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {removeAccountInputText}\r\n \r\n {`${removeAccountInputWarning}`}\r\n
    \r\n \r\n {removeAccountModalWarningSplit.map((text) => {\r\n return

    {text}

    ;\r\n })}\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nUserDetailsForm.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n accountData: PropTypes.object.isRequired,\r\n refreshAccountPage: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isUserDetailsUpdatedSuccessful: state.userAccount.isUserDetailsUpdatedSuccessful,\r\n isUserAccountRemovedSuccessful: state.userAccount.isUserAccountRemovedSuccessful,\r\n updateUserDetailsMessages: state.userAccount.updateUserDetailsMessages,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress,\r\n isUserUpdatingEmail: state.userAccount.isUserUpdatingEmail\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n updateUserDetails: bindActionCreators(userAccountActions.updateUserDetails, dispatch),\r\n removeAccount: bindActionCreators(userAccountActions.removeAccount, dispatch),\r\n signOutUser: bindActionCreators(signInActions.signOutUser, dispatch),\r\n resetUserDetailsFormState: bindActionCreators(userAccountActions.resetUserDetailsFormState, dispatch),\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch),\r\n displayVerifyUserEmail: bindActionCreators(userAccountActions.displayVerifyUserEmail, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(UserDetailsForm);\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nfunction LastOrder({\r\n lastOrder,\r\n noOrdersFoundText,\r\n fileStateValues,\r\n orderTypeValues,\r\n onViewLastOrderSummaryClick\r\n}) {\r\n\r\n function handleViewLastOrderSummaryClick(event) {\r\n event.preventDefault();\r\n onViewLastOrderSummaryClick(lastOrder.fileNumber);\r\n }\r\n\r\n function hasOrders(lastOrder){\r\n return isEmpty(lastOrder) || isEmpty(lastOrder.fileNumber);\r\n }\r\n \r\n return (\r\n
    \r\n

    {formMessageConstants.lastOrderText}

    \r\n {hasOrders(lastOrder) ?\r\n
    \r\n

    {noOrdersFoundText}

    \r\n
    :\r\n \r\n
    {orderTypeValues[lastOrder.orderTypeIndex]}
    \r\n

    \r\n {formMessageConstants.fileNumber}\r\n {lastOrder.fileNumber}\r\n

    \r\n

    \r\n {formMessageConstants.fileStatus}\r\n {fileStateValues[lastOrder.fileStateIndex]}\r\n

    \r\n

    \r\n {formMessageConstants.lastUpdate}\r\n {lastOrder.lastUpdateText}\r\n

    \r\n

    \r\n {formMessageConstants.fileAmount}\r\n {lastOrder.formattedFileAmount}\r\n

    \r\n
    \r\n {formMessageConstants.seeDetails}\r\n
    \r\n
    }\r\n
    \r\n );\r\n}\r\n\r\nLastOrder.propTypes = {\r\n lastOrder: PropTypes.object.isRequired,\r\n noOrdersFoundText: PropTypes.string.isRequired,\r\n fileStateValues: PropTypes.object.isRequired,\r\n orderTypeValues: PropTypes.object.isRequired,\r\n onViewLastOrderSummaryClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default LastOrder;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport { domainConstants } from '../../utils/constants/domain-constants'\r\n\r\nfunction Upcoming({ upcomingTicket, noUpcomingEventText, ssoDomain, showParkingButton,\r\n showParkingButtonText, parkingButtonUrl,onViewTicketsClick }) {\r\n function handleViewTicketsClick(event) {\r\n event.preventDefault();\r\n onViewTicketsClick(upcomingTicket);\r\n }\r\n\r\n function showParking() {\r\n return showParkingButton && (ssoDomain === domainConstants.theOpen)\r\n }\r\n return (\r\n
    \r\n

    {formMessageConstants.upcoming}

    \r\n {isEmpty(upcomingTicket) ?\r\n
    \r\n

    {noUpcomingEventText}

    \r\n
    : \r\n }\r\n
    \r\n );\r\n}\r\n\r\n\r\nUpcoming.propTypes = {\r\n upcomingTicket: PropTypes.object,\r\n noUpcomingEventText: PropTypes.string.isRequired,\r\n onViewTicketsClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default Upcoming;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nfunction FileActionsTable({\r\n files,\r\n noActionsToPerformText,\r\n orderTypeValues,\r\n onViewFileSummaryClick,\r\n showExpiryDate\r\n}) {\r\n function handleViewFileSummaryClick(event, fileNumber) {\r\n event.preventDefault();\r\n onViewFileSummaryClick(fileNumber);\r\n }\r\n function displayFiles() {\r\n return files.map((file, index) => {\r\n const isLast = index + 1 === files.length;\r\n return \r\n
    \r\n {formMessageConstants.file}\r\n {file.fileNumber}\r\n
    \r\n {\r\n showExpiryDate ?\r\n
    \r\n {formMessageConstants.expiryDate}\r\n {file.expiryDateText}\r\n
    :\r\n
    \r\n }\r\n
    \r\n {formMessageConstants.actions}\r\n { handleViewFileSummaryClick(event, file.fileNumber); }} >{orderTypeValues[file.orderTypeIndex]}\r\n \r\n
    \r\n
    ;\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n {isEmpty(files) ?\r\n
    \r\n

    {noActionsToPerformText}

    \r\n
    :\r\n \r\n
    \r\n
    {formMessageConstants.file}
    \r\n {\r\n showExpiryDate ?\r\n
    {formMessageConstants.expiryDate}
    :\r\n
    \r\n }\r\n
    {formMessageConstants.actions}
    \r\n
    \r\n {displayFiles()}\r\n
    \r\n }\r\n
    \r\n );\r\n}\r\n\r\nFileActionsTable.propTypes = {\r\n files: PropTypes.array.isRequired,\r\n noActionsToPerformText: PropTypes.string.isRequired,\r\n orderTypeValues: PropTypes.object.isRequired,\r\n onViewFileSummaryClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default FileActionsTable;\r\n","import React, { Fragment, Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport LastOrder from './LastOrder';\r\nimport Upcoming from './Upcoming';\r\nimport FileActionsTable from './FileActionsTable';\r\nimport './account-home-page.scss';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { getMultilineText } from '../../../../../general/js/utils';\r\n\r\nclass AccountHomePage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.loadHomePageTicketsData = this.loadHomePageTicketsData.bind(this);\r\n this.loadHomePageTicketsData();\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n\r\n actions.resetHomePageTicketsData();\r\n }\r\n\r\n loadHomePageTicketsData() {\r\n const { actions, formData } = this.props;\r\n\r\n actions.getHomePageTicketsData(\r\n formData.getHomePageTicketsDataCallbackUrl,\r\n formData[formConstants.ssoDomain],\r\n formData[formConstants.secuTixErrorMessage]\r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n formData,\r\n isTicketsDataLoadedSuccessful,\r\n loadHomePageTicketsDataErrorMessages,\r\n homePageTicketsData,\r\n onViewFileSummaryClick,\r\n onViewTicketsClick\r\n } = this.props;\r\n const { actionItems, upcomingTicket, lastOrder } = homePageTicketsData;\r\n const actionsToPerformValue = isEmpty(actionItems) ? formMessageConstants.emptyString : actionItems.length;\r\n const {\r\n formTitle,\r\n formSubTitle,\r\n orderType,\r\n actionOrderType,\r\n fileState,\r\n noOrdersFoundText,\r\n noActionsToPerformText,\r\n noUpcomingEventText,\r\n showExpiryDate,\r\n showParkingButton,\r\n showParkingButtonText,\r\n parkingButtonUrl,\r\n ssoDomain\r\n } = formData;\r\n const formSubtitleSplit = getMultilineText(formSubTitle);\r\n const shouldDisplayHomePageTicketsData = !loading && isTicketsDataLoadedSuccessful && !isEmpty(homePageTicketsData);\r\n\r\n return (\r\n \r\n {loading ? / : null}\r\n

    {formTitle}

    \r\n {formSubtitleSplit.map((subtitle) => {\r\n return
    {subtitle}
    ;\r\n })}\r\n
    \r\n \r\n {shouldDisplayHomePageTicketsData &&\r\n

    {formMessageConstants.actionsToPerform}\r\n {isEmpty(actionItems) || {actionsToPerformValue}}\r\n

    }\r\n {shouldDisplayHomePageTicketsData &&\r\n }\r\n {shouldDisplayHomePageTicketsData &&\r\n }\r\n
    \r\n {shouldDisplayHomePageTicketsData &&\r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nAccountHomePage.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n formData: PropTypes.object.isRequired,\r\n onViewFileSummaryClick: PropTypes.func.isRequired,\r\n onViewTicketsClick: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n homePageTicketsData: state.userAccount.homePageTicketsData,\r\n loadHomePageTicketsDataErrorMessages: state.userAccount.loadHomePageTicketsDataErrorMessages,\r\n isTicketsDataLoadedSuccessful: state.userAccount.isTicketsDataLoadedSuccessful,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n getHomePageTicketsData: bindActionCreators(userAccountActions.getHomePageTicketsData, dispatch),\r\n resetHomePageTicketsData: bindActionCreators(userAccountActions.resetHomePageTicketsData, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(AccountHomePage);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction SSOCloseButton({ onCloseButtonClick }) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nSSOCloseButton.propTypes = {\r\n onCloseButtonClick: PropTypes.func.isRequired\r\n};\r\n\r\n\r\nexport default SSOCloseButton;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport SSOCloseButton from '../../common/utility/SSOCloseButton';\r\nimport './user-addresses.scss';\r\nimport { deepCopyObject } from '../../utils/obj-utils';\r\n\r\nclass AddAddressForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = initialState.addUserAddressesFormState;\r\n\r\n this.displayAddAddressForm = this.displayAddAddressForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.submitAddressData = this.submitAddressData.bind(this);\r\n this.buildNewAddress = this.buildNewAddress.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n loading,\r\n formData,\r\n retrievedUserAddress,\r\n isUserAddressRetrieveSuccessful\r\n } = nextProps;\r\n\r\n if (!loading && isUserAddressRetrieveSuccessful) {\r\n const { county, state } = formData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n }\r\n }\r\n\r\n displayAddAddressForm() {\r\n const { actions, formData } = this.props;\r\n const { availableCounties, country, availableStates } = this.state;\r\n const { county, state } = formData;\r\n const copyOfFormData = deepCopyObject(formData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state),\r\n () => {\r\n actions.resetRetrievedUserAddress();\r\n });\r\n },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitAddressData);\r\n }\r\n\r\n submitAddressData() {\r\n const { onAddAddressClick } = this.props;\r\n onAddAddressClick(this.buildNewAddress());\r\n }\r\n\r\n buildNewAddress() {\r\n const newAddress = {};\r\n newAddress[formConstants.addressLine1] = this.state[formConstants.addressLine1];\r\n newAddress[formConstants.addressLine2] = this.state[formConstants.addressLine2];\r\n newAddress[formConstants.addressLine3] = this.state[formConstants.addressLine3];\r\n newAddress[formConstants.postcode] = this.state[formConstants.postcode];\r\n newAddress[formConstants.city] = this.state[formConstants.city];\r\n newAddress[formConstants.country] = this.state[formConstants.country];\r\n newAddress[formConstants.county] = this.state[formConstants.county];\r\n newAddress[formConstants.state] = this.state[formConstants.state];\r\n newAddress[formConstants.main] = this.state[formConstants.mainAddress];\r\n newAddress[formConstants.shippingAddress] = this.state[formConstants.shippingAddress];\r\n newAddress[formConstants.billingAddress] = this.state[formConstants.billingAddress];\r\n return newAddress;\r\n }\r\n\r\n render() {\r\n const { onCloseAddAddressFormClick } = this.props;\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {this.displayAddAddressForm()}\r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nAddAddressForm.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n onAddAddressClick: PropTypes.func.isRequired,\r\n onCloseAddAddressFormClick: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AddAddressForm);\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { deepCopyObject, isEmpty } from '../../utils/obj-utils';\r\n\r\nclass FormAddressDisplayField extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { mainValue: false, shippingAddressValue: false, billingAddressValue: false };\r\n this.handleEditAddress = this.handleEditAddress.bind(this);\r\n this.handleRemoveAddress = this.handleRemoveAddress.bind(this);\r\n this.handleUpdateAddress = this.handleUpdateAddress.bind(this);\r\n this.updateAddressValues = this.updateAddressValues.bind(this);\r\n this.displayCitySection = this.displayCitySection.bind(this);\r\n this.displayCountrySection = this.displayCountrySection.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const { address } = this.props;\r\n this.updateAddressValues(address);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { address } = nextProps;\r\n this.updateAddressValues(address);\r\n }\r\n\r\n handleEditAddress(event) {\r\n event.preventDefault();\r\n const { address, onEditAddressClick } = this.props;\r\n onEditAddressClick(address);\r\n }\r\n\r\n handleRemoveAddress(event) {\r\n event.preventDefault();\r\n const { address, onRemoveAddressClick } = this.props;\r\n onRemoveAddressClick(address);\r\n }\r\n\r\n handleUpdateAddress(event, addressType) {\r\n event.preventDefault();\r\n const { address, onUpdateAddressClick } = this.props;\r\n\r\n const updatedAddress = deepCopyObject(address);\r\n updatedAddress[addressType] = !updatedAddress[addressType];\r\n\r\n this.updateAddressValues(updatedAddress);\r\n onUpdateAddressClick({ addressFlaggedForUpdate: address, updatedAddress });\r\n }\r\n\r\n updateAddressValues(address) {\r\n const mainValue = address.main;\r\n const shippingAddressValue = address.shippingAddress;\r\n const billingAddressValue = address.billingAddress;\r\n\r\n this.setState({ mainValue, shippingAddressValue, billingAddressValue });\r\n }\r\n\r\n displayCitySection() {\r\n const { address } = this.props;\r\n\r\n if (isEmpty(address[formConstants.city])) {\r\n return `${address[formConstants.postcode]}`;\r\n }\r\n\r\n return `${address[formConstants.postcode]}, ${address[formConstants.city]}`;\r\n }\r\n\r\n displayCountrySection() {\r\n const { address } = this.props;\r\n\r\n if (isEmpty(address[formConstants.county])) {\r\n if (isEmpty(address[formConstants.stateName])) {\r\n return `${address[formConstants.countryName]}`;\r\n }\r\n\r\n return `${address[formConstants.countryName]}, ${address[formConstants.stateName]}`;\r\n }\r\n\r\n return `${address[formConstants.countryName]}, ${address[formConstants.county]}`;\r\n }\r\n\r\n render() {\r\n const {\r\n formData,\r\n address,\r\n isLast\r\n } = this.props;\r\n\r\n const { mainValue, shippingAddressValue, billingAddressValue } = this.state;\r\n const { mainAddress, shippingAddress, billingAddress } = formData;\r\n\r\n return (\r\n
    \r\n

    {mainValue ? '● Main address' : ''} {shippingAddressValue ? '● Shipping address' : ''} {billingAddressValue ? '● Billing address' : ''}

    \r\n
    \r\n
    \r\n
    {address[formConstants.addressLine1]}
    \r\n
    {address[formConstants.addressLine2]}
    \r\n
    {address[formConstants.addressLine3]}
    \r\n
    {`${this.displayCitySection()}`}
    \r\n
    {`${this.displayCountrySection()}`}
    \r\n
    \r\n
      \r\n
    • \r\n \r\n \r\n
    \r\n \r\n
  • \r\n \r\n \r\n
  • \r\n \r\n
  • \r\n \r\n \r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nFormAddressDisplayField.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n address: PropTypes.object.isRequired,\r\n onEditAddressClick: PropTypes.func.isRequired,\r\n onRemoveAddressClick: PropTypes.func.isRequired,\r\n onUpdateAddressClick: PropTypes.func.isRequired,\r\n isLast: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default FormAddressDisplayField;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport SSOCloseButton from '../../common/utility/SSOCloseButton';\r\nimport { deepCopyObject } from '../../utils/obj-utils';\r\n\r\nclass UpdateAddressForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = initialState.updateUserAddressesFormState;\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.displayUpdateAddressForm = this.displayUpdateAddressForm.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n loading,\r\n formData,\r\n retrievedUserAddress,\r\n isUserAddressRetrieveSuccessful\r\n } = nextProps;\r\n\r\n if (!loading && isUserAddressRetrieveSuccessful) {\r\n const { county, state } = formData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const { formData } = this.props;\r\n this.setState(formStateHelpers.updateFormFields(formData));\r\n }\r\n\r\n displayUpdateAddressForm() {\r\n const { actions, formData } = this.props;\r\n const { availableCounties, country, availableStates } = this.state;\r\n const { county, state } = formData;\r\n const copyOfFormData = deepCopyObject(formData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n copyOfFormData[formConstants.mainAddress].defaultValue = this.state[formConstants.mainAddress];\r\n copyOfFormData[formConstants.billingAddress].defaultValue = this.state[formConstants.billingAddress];\r\n copyOfFormData[formConstants.shippingAddress].defaultValue = this.state[formConstants.shippingAddress];\r\n\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state),\r\n () => {\r\n actions.resetRetrievedUserAddress();\r\n });\r\n },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitAddressData);\r\n }\r\n\r\n submitAddressData() {\r\n const { onUpdateAddressClick } = this.props;\r\n onUpdateAddressClick({ updatedAddress: this.getAddressForUpdate() });\r\n }\r\n\r\n getAddressForUpdate() {\r\n const addressForUpdate = {};\r\n addressForUpdate[formConstants.addressLine1] = this.state[formConstants.addressLine1];\r\n addressForUpdate[formConstants.addressLine2] = this.state[formConstants.addressLine2];\r\n addressForUpdate[formConstants.addressLine3] = this.state[formConstants.addressLine3];\r\n addressForUpdate[formConstants.postcode] = this.state[formConstants.postcode];\r\n addressForUpdate[formConstants.city] = this.state[formConstants.city];\r\n addressForUpdate[formConstants.country] = this.state[formConstants.country];\r\n addressForUpdate[formConstants.county] = this.state[formConstants.county];\r\n addressForUpdate[formConstants.state] = this.state[formConstants.state];\r\n addressForUpdate[formConstants.main] = this.state[formConstants.mainAddress];\r\n addressForUpdate[formConstants.shippingAddress] = this.state[formConstants.shippingAddress];\r\n addressForUpdate[formConstants.billingAddress] = this.state[formConstants.billingAddress];\r\n\r\n return addressForUpdate;\r\n }\r\n\r\n render() {\r\n const { onCloseUpdateAddressFormClick } = this.props;\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {this.displayUpdateAddressForm()}\r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nUpdateAddressForm.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n onUpdateAddressClick: PropTypes.func.isRequired,\r\n onCloseUpdateAddressFormClick: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(UpdateAddressForm);\r\n","import React, { Fragment } from 'react';\r\nimport SSOFormFooter from '../common/utility/SSOFormFooter';\r\nimport { formConstants } from './constants/form-constants';\r\nimport { formMessageConstants } from './constants/form-message-constants';\r\nimport { isEmpty, deepCopyObject } from './obj-utils';\r\nimport AddAddressForm from '../forms/user-addresses/AddAddressForm';\r\nimport FormAddressDisplayField from '../forms/user-addresses/FormAddressDisplayField';\r\nimport UpdateAddressForm from '../forms/user-addresses/UpdateAddressForm';\r\n\r\nexport const addressesFormConstants = {\r\n /* eslint-disable */\r\n addressDisplayForm: ({ accountFormData, accountData, callbackFunctions }) => {\r\n return displayUserAddresses(accountFormData, accountData, callbackFunctions);\r\n },\r\n addressAddForm: ({ accountFormData, callbackFunctions }) => {\r\n const { handleAddNewAddress, handleShowDisplayAddressForm } = callbackFunctions;\r\n return \r\n },\r\n addressUpdateForm: ({ accountFormData, callbackFunctions, addressForUpdate }) => {\r\n const { handleUpdateAddress, handleShowDisplayAddressForm } = callbackFunctions;\r\n const formData = getUpdateAddressFormData(accountFormData, addressForUpdate);\r\n return \r\n },\r\n /* eslint-enable */\r\n};\r\n\r\n\r\nconst displayUserAddresses = (accountFormData, accountData, callbackFunctions) => {\r\n const { addresses } = accountData;\r\n const { handleShowAddAddressForm } = callbackFunctions;\r\n\r\n if (isEmpty(addresses)) {\r\n return (\r\n
    \r\n

    {accountFormData[formConstants.noAddressFoundText] || formMessageConstants.noAddressesFound}

    \r\n
    \r\n \r\n \r\n
    );\r\n }\r\n\r\n return displayAddresses(accountFormData, accountData, callbackFunctions);\r\n};\r\n\r\nconst displayAddresses = (accountFormData, accountData, callbackFunctions) => {\r\n const { addresses } = accountData;\r\n const {\r\n handleShowAddAddressForm,\r\n handleShowUpdateAddressForm,\r\n handleUpdateAddress,\r\n handleRemoveAddress\r\n } = callbackFunctions;\r\n const { mainAddress, shippingAddress, billingAddress } = accountFormData;\r\n const formData = { mainAddress, shippingAddress, billingAddress };\r\n const addressesDisplayForm = addresses\r\n .sort((a, b) => {\r\n if (a.main === b.main) {\r\n return 0;\r\n }\r\n\r\n return a.main ? -1 : 1;\r\n })\r\n .map((address, index) => {\r\n const isLast = index === addresses.length - 1;\r\n\r\n return
    \r\n \r\n
    ;\r\n });\r\n\r\n return (\r\n {addressesDisplayForm}\r\n \r\n \r\n );\r\n};\r\n\r\nconst getUpdateAddressFormData = (accountFormData, addressForUpdate) => {\r\n const formData = deepCopyObject(accountFormData);\r\n\r\n formData[formConstants.addressLine1].defaultValue = addressForUpdate[formConstants.addressLine1] || formMessageConstants.emptyString;\r\n formData[formConstants.addressLine2].defaultValue = addressForUpdate[formConstants.addressLine2] || formMessageConstants.emptyString;\r\n formData[formConstants.addressLine3].defaultValue = addressForUpdate[formConstants.addressLine3] || formMessageConstants.emptyString;\r\n formData[formConstants.postcode].defaultValue = addressForUpdate[formConstants.postcode] || formMessageConstants.emptyString;\r\n formData[formConstants.city].defaultValue = addressForUpdate[formConstants.city] || formMessageConstants.emptyString;\r\n\r\n formData[formConstants.country].defaultValue = addressForUpdate[formConstants.country];\r\n formData[formConstants.country].countryName = addressForUpdate[formConstants.countryName] || formMessageConstants.emptyString;\r\n formData[formConstants.county].defaultValue = addressForUpdate[formConstants.county];\r\n formData[formConstants.state].defaultValue = addressForUpdate[formConstants.state];\r\n\r\n formData[formConstants.mainAddress].defaultValue = addressForUpdate[formConstants.main];\r\n formData[formConstants.shippingAddress].defaultValue = addressForUpdate[formConstants.shippingAddress];\r\n formData[formConstants.billingAddress].defaultValue = addressForUpdate[formConstants.billingAddress];\r\n\r\n return formData;\r\n};\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { addressesFormStateConstants, addressesFormCallbackFunctions } from '../helpers/form-helpers/user-account/address-form-state';\r\nimport { addressesFormConstants } from '../../utils/addresses-form-constants';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { isEmpty, deepCopyObject } from '../../utils/obj-utils';\r\nimport ConfirmationModal from '../../common/utility/ConfirmationModal';\r\nimport { MembershipTypes, getMultilineText } from '../../../../../general/js/utils';\r\nimport userService from '../../../../../general/js/user/user-service';\r\n\r\nclass UserAddressesForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = initialState.userAddressesFormState;\r\n\r\n const { accountData } = props;\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n this.state.accountData = copyOfAccountData;\r\n\r\n this.submitAddressesData = this.submitAddressesData.bind(this);\r\n this.resetForm = this.resetForm.bind(this);\r\n\r\n this.displayAddressesForm = this.displayAddressesForm.bind(this);\r\n this.handleShowDisplayAddressForm = this.handleShowDisplayAddressForm.bind(this);\r\n\r\n this.handleShowAddAddressForm = this.handleShowAddAddressForm.bind(this);\r\n this.handleAddNewAddress = this.handleAddNewAddress.bind(this);\r\n\r\n this.handleShowUpdateAddressForm = this.handleShowUpdateAddressForm.bind(this);\r\n this.handleUpdateAddress = this.handleUpdateAddress.bind(this);\r\n\r\n this.handleUpdateFinish = this.handleUpdateFinish.bind(this);\r\n\r\n this.handleRemoveAddress = this.handleRemoveAddress.bind(this);\r\n this.toggleConfirmationModal = this.toggleConfirmationModal.bind(this);\r\n this.removeAddressConfirmation = this.removeAddressConfirmation.bind(this);\r\n\r\n this.callbackFunctions = {};\r\n\r\n this.callbackFunctions[addressesFormCallbackFunctions.HandleShowDisplayAddressForm] = this.handleShowDisplayAddressForm;\r\n\r\n this.callbackFunctions[addressesFormCallbackFunctions.HandleShowAddAddressForm] = this.handleShowAddAddressForm;\r\n this.callbackFunctions[addressesFormCallbackFunctions.HandleAddNewAddress] = this.handleAddNewAddress;\r\n\r\n this.callbackFunctions[addressesFormCallbackFunctions.HandleShowUpdateAddressForm] = this.handleShowUpdateAddressForm;\r\n this.callbackFunctions[addressesFormCallbackFunctions.HandleUpdateAddress] = this.handleUpdateAddress;\r\n\r\n this.callbackFunctions[addressesFormCallbackFunctions.HandleRemoveAddress] = this.handleRemoveAddress;\r\n\r\n this.addressToRemove = null;\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { isSaving } = this.state;\r\n const { accountData, loading, isUserAccountDataLoadedSuccessful } = nextProps;\r\n\r\n if (isSaving && !loading) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUpdateFinish);\r\n }\r\n\r\n if (!isSaving && !loading && isUserAccountDataLoadedSuccessful) {\r\n this.setState(formStateHelpers.updateAddressesFormAccountData(accountData));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.resetForm();\r\n }\r\n\r\n handleShowDisplayAddressForm() {\r\n this.resetForm();\r\n this.setState(formStateHelpers.updateAddressesFormState(addressesFormStateConstants.AddressDisplayForm));\r\n }\r\n\r\n handleShowAddAddressForm() {\r\n this.resetForm();\r\n this.setState(formStateHelpers.updateAddressesFormState(addressesFormStateConstants.AddressAddForm));\r\n }\r\n\r\n handleShowUpdateAddressForm(addressForUpdate) {\r\n this.resetForm();\r\n this.setState(formStateHelpers.updateAddressesFormState(addressesFormStateConstants.AddressUpdateForm, addressForUpdate));\r\n }\r\n\r\n displayAddressesForm() {\r\n const { accountData, addressForUpdate } = this.state;\r\n const { formData } = this.props;\r\n const { formState } = this.state;\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n\r\n return addressesFormConstants[formState]({\r\n accountFormData: formData,\r\n accountData: copyOfAccountData,\r\n callbackFunctions: this.callbackFunctions,\r\n addressForUpdate\r\n });\r\n }\r\n\r\n handleAddNewAddress(newAddress) {\r\n const { accountData } = this.state;\r\n const { formData } = this.props;\r\n const { addAddress } = formData;\r\n const { actionSuccessText, callBackUrl } = addAddress;\r\n\r\n let copyOfAccountData = deepCopyObject(accountData);\r\n\r\n if (isEmpty(copyOfAccountData.addresses)) {\r\n newAddress.main = true;\r\n newAddress.shippingAddress = true;\r\n newAddress.billingAddress = true;\r\n copyOfAccountData.addresses = [];\r\n copyOfAccountData.addresses.push(newAddress);\r\n this.setState(formStateHelpers.updateSavingState(true),\r\n () => { this.submitAddressesData(copyOfAccountData, actionSuccessText, callBackUrl); });\r\n return;\r\n }\r\n\r\n copyOfAccountData = this.getUpdatedAddresses(newAddress, newAddress);\r\n copyOfAccountData.addresses.push(newAddress);\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), () => {\r\n this.submitAddressesData(copyOfAccountData, actionSuccessText, callBackUrl);\r\n });\r\n }\r\n\r\n handleUpdateAddress({ addressFlaggedForUpdate, updatedAddress }) {\r\n const { addressForUpdate } = this.state;\r\n const { formData } = this.props;\r\n const { updateAddress } = formData;\r\n const { actionSuccessText, callBackUrl } = updateAddress;\r\n\r\n const flaggedForUpdate = isEmpty(addressFlaggedForUpdate) ? addressForUpdate : addressFlaggedForUpdate;\r\n if (!this.canUpdatedAddresses(flaggedForUpdate, updatedAddress)) {\r\n return;\r\n }\r\n\r\n const copyOfAccountData = this.getUpdatedAddresses(flaggedForUpdate, updatedAddress);\r\n\r\n this.setState(formStateHelpers.updateSavingState(true),\r\n () => { this.submitAddressesData(copyOfAccountData, actionSuccessText, callBackUrl); });\r\n }\r\n\r\n handleRemoveAddress(address) {\r\n const canRemoveAddress = this.canRemoveAddress(address);\r\n if (canRemoveAddress) {\r\n this.addressToRemove = address;\r\n this.setState(formStateHelpers.toggleKey('isConfirmationPopUpOpen'));\r\n }\r\n }\r\n\r\n removeAddressConfirmation() {\r\n const { formData } = this.props;\r\n const { updateAddress } = formData;\r\n const { accountData } = this.state;\r\n const { membership } = accountData;\r\n const { actionSuccessText, callBackUrl } = updateAddress;\r\n\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n const addressToRemoveIndex = this.getAddressIndex(this.addressToRemove);\r\n\r\n if (accountData.addresses.length === 1 &&\r\n !membership.includes(MembershipTypes.OneClub) &&\r\n !userService.hasTicketingAccount(accountData)) {\r\n copyOfAccountData.addresses = [];\r\n this.setState(formStateHelpers.updateSavingState(true), () => { this.submitAddressesData(copyOfAccountData, actionSuccessText, callBackUrl); });\r\n }\r\n\r\n if (accountData.addresses.length > 1 &&\r\n !this.addressToRemove.main &&\r\n !this.addressToRemove.shippingAddress &&\r\n !this.addressToRemove.billingAddress) {\r\n copyOfAccountData.addresses.splice(addressToRemoveIndex, 1);\r\n this.setState(formStateHelpers.updateSavingState(true), () => { this.submitAddressesData(copyOfAccountData, actionSuccessText, callBackUrl); });\r\n }\r\n this.toggleConfirmationModal();\r\n }\r\n\r\n canRemoveAddress(address) {\r\n const { actions, formData } = this.props;\r\n const {\r\n cannotRemoveLastAddressMessage,\r\n cannotRemoveMainAddressMessage,\r\n cannotRemoveShippingAddressMessage,\r\n cannotRemoveBillingAddressMessage\r\n } = formData;\r\n const { accountData } = this.state;\r\n const { membership } = accountData;\r\n\r\n if (accountData.addresses.length === 1 &&\r\n (membership.includes(MembershipTypes.OneClub) ||\r\n userService.hasTicketingAccount(accountData))) {\r\n actions.displayUserAddressesErrorMessage([cannotRemoveLastAddressMessage || formMessageConstants.cannotRemoveLastAddress]);\r\n return false;\r\n }\r\n\r\n if (address.main) {\r\n actions.displayUserAddressesErrorMessage([cannotRemoveMainAddressMessage || formMessageConstants.cannotRemoveMainAddress]);\r\n return false;\r\n }\r\n\r\n if (address.shippingAddress) {\r\n actions.displayUserAddressesErrorMessage([cannotRemoveShippingAddressMessage || formMessageConstants.cannotRemoveShippingAddress]);\r\n return false;\r\n }\r\n\r\n if (address.billingAddress) {\r\n actions.displayUserAddressesErrorMessage([cannotRemoveBillingAddressMessage || formMessageConstants.cannotRemoveBillingAddress]);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n getUpdatedAddresses(addressFlaggedForUpdate, updatedAddress) {\r\n const { accountData } = this.state;\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n let addressFlaggedForUpdateIndex = this.getAddressIndex(addressFlaggedForUpdate);\r\n\r\n if (isEmpty(copyOfAccountData.addresses)) {\r\n copyOfAccountData.addresses = [];\r\n addressFlaggedForUpdateIndex = 0;\r\n }\r\n\r\n copyOfAccountData.addresses.forEach((address, index) => {\r\n if (addressFlaggedForUpdateIndex !== index) {\r\n if (updatedAddress.main) {\r\n address.main = false;\r\n }\r\n\r\n if (updatedAddress.shippingAddress) {\r\n address.shippingAddress = false;\r\n }\r\n\r\n if (updatedAddress.billingAddress) {\r\n address.billingAddress = false;\r\n }\r\n }\r\n });\r\n\r\n if (addressFlaggedForUpdateIndex !== -1) {\r\n copyOfAccountData.addresses[addressFlaggedForUpdateIndex] = updatedAddress;\r\n }\r\n\r\n return copyOfAccountData;\r\n }\r\n\r\n canUpdatedAddresses(addressFlaggedForUpdate, updatedAddress) {\r\n const { actions, formData } = this.props;\r\n const {\r\n cannotRemoveMainAddressMessage,\r\n cannotRemoveShippingAddressMessage,\r\n cannotRemoveBillingAddressMessage\r\n } = formData;\r\n\r\n if (!updatedAddress.main && addressFlaggedForUpdate.main) {\r\n actions.displayUserAddressesErrorMessage([cannotRemoveMainAddressMessage || formMessageConstants.cannotRemoveMainAddress]);\r\n return false;\r\n }\r\n\r\n if (!updatedAddress.shippingAddress && addressFlaggedForUpdate.shippingAddress) {\r\n actions.displayUserAddressesErrorMessage([cannotRemoveShippingAddressMessage || formMessageConstants.cannotRemoveShippingAddress]);\r\n return false;\r\n }\r\n\r\n if (!updatedAddress.billingAddress && addressFlaggedForUpdate.billingAddress) {\r\n actions.displayUserAddressesErrorMessage([cannotRemoveBillingAddressMessage || formMessageConstants.cannotRemoveBillingAddress]);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n getAddressIndex(addressForFind) {\r\n const { accountData } = this.state;\r\n const addressForFindJSON = JSON.stringify(addressForFind);\r\n let addressIndex = -1;\r\n\r\n if (isEmpty(accountData.addresses)) {\r\n return -1;\r\n }\r\n\r\n accountData.addresses.forEach((address, index) => {\r\n if (addressForFindJSON === JSON.stringify(address)) {\r\n addressIndex = index;\r\n }\r\n });\r\n\r\n return addressIndex;\r\n }\r\n\r\n submitAddressesData(accountData, actionSuccessText, callBackUrl) {\r\n const { actions } = this.props;\r\n const formattedActionSuccessText = actionSuccessText || formMessageConstants.updateUserAddressesSuccessText;\r\n actions.updateUserAddresses(accountData, formattedActionSuccessText, callBackUrl);\r\n }\r\n\r\n handleUpdateFinish() {\r\n const { refreshAccountPage } = this.props;\r\n refreshAccountPage(false);\r\n this.handleShowDisplayAddressForm(false);\r\n }\r\n\r\n resetForm() {\r\n const { actions } = this.props;\r\n this.setState(initialState.userAddressesFormStateConstants);\r\n actions.resetAddressesFormStateConstants();\r\n }\r\n\r\n toggleConfirmationModal() {\r\n this.setState(formStateHelpers.toggleKey('isConfirmationPopUpOpen'));\r\n }\r\n\r\n render() {\r\n const { isSaving, isConfirmationPopUpOpen } = this.state;\r\n const {\r\n loading,\r\n formData,\r\n updateUserAddressesMessages,\r\n areUserAddressesUpdatedSuccessful\r\n } = this.props;\r\n const {\r\n formTitle,\r\n removeAddressInputText,\r\n removeAddressModalWarning\r\n } = formData;\r\n const removeAddressModalWarningSplit = getMultilineText(removeAddressModalWarning);\r\n return (\r\n \r\n

    {formTitle}

    \r\n
    \r\n {isSaving || loading ? / : null}\r\n \r\n {this.displayAddressesForm()}\r\n
    \r\n \r\n {removeAddressModalWarningSplit.map((text) => {\r\n return

    {text}

    ;\r\n })}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nUserAddressesForm.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n accountData: PropTypes.object.isRequired,\r\n refreshAccountPage: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n areUserAddressesUpdatedSuccessful: state.userAccount.areUserAddressesUpdatedSuccessful,\r\n isUserAccountDataLoadedSuccessful: state.userAccount.isUserAccountDataLoadedSuccessful,\r\n updateUserAddressesMessages: state.userAccount.updateUserAddressesMessages,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n updateUserAddresses: bindActionCreators(userAccountActions.updateUserAddresses, dispatch),\r\n resetAddressesFormStateConstants: bindActionCreators(userAccountActions.resetAddressesFormState, dispatch),\r\n displayUserAddressesErrorMessage: bindActionCreators(userAccountActions.displayUserAddressesErrorMessage, dispatch),\r\n resetUserDetailsFormState: bindActionCreators(userAccountActions.resetUserDetailsFormState, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(UserAddressesForm);\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport { deepCopyObject } from '../../utils/obj-utils';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport './email-notification-settings.scss';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport { getMultilineText } from '../../../../../general/js/utils';\r\n\r\nclass EmailNotificationSettingsForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { formData } = props;\r\n\r\n const copyOfFormData = this.getSelectedFormData(props);\r\n\r\n this.state = {\r\n ...initialState.emailNotificationSettingsFormState,\r\n formData: copyOfFormData\r\n };\r\n\r\n this.displayEmailNotificationSettingsFrom = this.displayEmailNotificationSettingsFrom.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.submitUserData = this.submitUserData.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n\r\n this.handleUserDetailsUpdateSuccess = this.handleUserDetailsUpdateSuccess.bind(this);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { isSaving } = this.state;\r\n const {\r\n loading,\r\n isUserDetailsUpdatedSuccessful,\r\n } = nextProps;\r\n\r\n if (isSaving &&\r\n !loading &&\r\n isUserDetailsUpdatedSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserDetailsUpdateSuccess);\r\n }\r\n\r\n if (isSaving &&\r\n !loading &&\r\n !isUserDetailsUpdatedSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false));\r\n }\r\n }\r\n\r\n getSelectedFormData(props) {\r\n const { formData, accountData } = props;\r\n const { championships, channels, interests } = accountData.preferences;\r\n\r\n const copyOfFormData = deepCopyObject(formData);\r\n\r\n\r\n copyOfFormData.championshipSection.defaultValue = this.getSelectedValues(championships, copyOfFormData.championshipSection.choices);\r\n copyOfFormData.channelSection.defaultValue = this.getSelectedValuesFromProperty(channels, copyOfFormData.channelSection.choices);\r\n copyOfFormData.interestSection.defaultValue = this.getSelectedValuesFromProperty(interests, copyOfFormData.interestSection.choices);\r\n\r\n return copyOfFormData;\r\n }\r\n\r\n getSelectedValuesFromProperty(obj, choices) {\r\n if (obj == null) return null;\r\n\r\n const defaultChoices = [];\r\n\r\n Object.keys(obj).forEach((key) => {\r\n console.log(key, obj[key]);\r\n if (obj[key] === true) {\r\n const choiceItem = choices.find((o) => o.id.toUpperCase() === key.toUpperCase());\r\n if (choiceItem != null) defaultChoices.push(key);\r\n }\r\n });\r\n\r\n return defaultChoices;\r\n }\r\n\r\n getSelectedValues(selectedValues, choices) {\r\n if (selectedValues == null) return null;\r\n\r\n const defaultChoices = [];\r\n\r\n selectedValues.forEach((item) => {\r\n if (item.value) {\r\n const choiceItem = choices.find((o) => o.id.toUpperCase() === item.id.toUpperCase());\r\n if (choiceItem != null) defaultChoices.push(item.id);\r\n }\r\n });\r\n\r\n return defaultChoices;\r\n }\r\n\r\n handleUserDetailsUpdateSuccess() {\r\n const { refreshAccountPage } = this.props;\r\n refreshAccountPage(false);\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.theOneClubFormState);\r\n actions.resetUserDetailsFormState();\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.state;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitUserData);\r\n }\r\n\r\n submitUserData() {\r\n const { actions, accountData } = this.props;\r\n const { formData } = this.state;\r\n const {\r\n callBackUrl,\r\n updatedNotificationSuccessMessage,\r\n } = formData;\r\n\r\n actions.updateUserEmailNotificationSettings({\r\n userDetails: this.state,\r\n accountData,\r\n actionSuccessText: updatedNotificationSuccessMessage,\r\n callBackUrl\r\n });\r\n }\r\n\r\n displayEmailNotificationSettingsFrom() {\r\n const { formData } = this.state;\r\n\r\n return FormBuilder({\r\n formData,\r\n formReferences: this.formReferences,\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => {\r\n const eventTarge = event.target;\r\n const fieldName = eventTarge.name;\r\n const fieldData = formData[fieldName];\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(eventTarge, fieldData));\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n isUserDetailsUpdatedSuccessful,\r\n updateUserDetailsMessages,\r\n } = this.props;\r\n const { formData } = this.state;\r\n const {\r\n formTitle,\r\n formSubTitle\r\n } = formData;\r\n const formSubtitleSplit = getMultilineText(formSubTitle);\r\n\r\n return (\r\n \r\n

    {formTitle}

    \r\n {formSubtitleSplit.map((subtitle) => {\r\n return
    ;\r\n })}\r\n
    \r\n {loading ? / : null}\r\n
    \r\n
    \r\n \r\n \r\n {this.displayEmailNotificationSettingsFrom()}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nEmailNotificationSettingsForm.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n accountData: PropTypes.object.isRequired,\r\n refreshAccountPage: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isUserDetailsUpdatedSuccessful: state.userAccount.isUserDetailsUpdatedSuccessful,\r\n updateUserDetailsMessages: state.userAccount.updateUserDetailsMessages,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n updateUserEmailNotificationSettings: bindActionCreators(userAccountActions.updateUserEmailNotificationSettings, dispatch),\r\n resetUserDetailsFormState: bindActionCreators(userAccountActions.resetUserDetailsFormState, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(EmailNotificationSettingsForm);\r\n","import React from 'react';\r\n\r\nexport default function PushNotificationsForm() {\r\n return (\r\n
    \r\n {'Push Notification Form'}\r\n
    \r\n );\r\n}\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction ResaleTicketsButton({\r\n onResaleClick,\r\n buttonText,\r\n buttonColor\r\n}) {\r\n return (\r\n \r\n {buttonText}\r\n \r\n \r\n );\r\n}\r\n\r\nResaleTicketsButton.propTypes = {\r\n onResaleClick: PropTypes.func.isRequired,\r\n buttonText: PropTypes.string.isRequired,\r\n buttonColor: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default ResaleTicketsButton;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nfunction ResaleTicketsFAQ({ title, questions }) {\r\n function displayQuestions() {\r\n if (isEmpty(questions)) {\r\n return null;\r\n }\r\n\r\n return questions.map((question, index) => {\r\n const checkId = `chk${index}`;\r\n return \r\n \r\n \r\n
    \r\n ;\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n

    {title}

    \r\n
    \r\n {displayQuestions()}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nResaleTicketsFAQ.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n questions: PropTypes.array.isRequired\r\n};\r\n\r\nexport default ResaleTicketsFAQ;\r\n","import { isNullOrUndefined, hasValue } from \"../../../../../general/js/general-helpers\";\r\n\r\nexport const shouldDisplayResaleButton = (buttonCriteria = null, ballotCriteria = null, membership = null) => {\r\n var showResaleButton = false;\r\n\r\n if( isNullOrUndefined(membership) || !hasValue(buttonCriteria)) return showResaleButton;\r\n\r\n const userMemberships = membership.toLowerCase().split(';').filter(m => m);;\r\n const criteriaList = buttonCriteria.toLowerCase().split(';').filter(criterion => criterion);\r\n\r\n if ( hasValue(ballotCriteria) ) {\r\n if (criteriaList.includes(ballotCriteria.toLowerCase())) {\r\n showResaleButton = true;\r\n }\r\n }\r\n\r\n criteriaList.every(criterion => {\r\n if(userMemberships.includes(criterion.toLowerCase())){\r\n showResaleButton = true;\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n return showResaleButton;\r\n};\r\n\r\nexport const shouldDisplayResaleSection = (buyButtonCriteria = null, sellButtonCriteria = null, ballotCriteria = null, membership = null) => {\r\n const showBuyLink = shouldDisplayResaleButton(buyButtonCriteria, ballotCriteria, membership);\r\n const showSellLink = shouldDisplayResaleButton(sellButtonCriteria, ballotCriteria, membership);\r\n\r\n return showBuyLink || showSellLink;\r\n};","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport ResaleTicketsButton from './ResaleTicketsButton';\r\nimport ResaleTicketsFAQ from './ResaleTicketsFAQ';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport './resale-tickets.scss';\r\nimport {\r\n shouldDisplayResaleButton,\r\n} from './resale-tickets-helpers';\r\nimport { addQueryParam, getMultilineText, getOauthReturnUrl } from '../../../../../general/js/utils';\r\n\r\nclass ResaleTickets extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.handleTicketsResaleBuy = this.handleTicketsResaleBuy.bind(this);\r\n this.handleTicketsResaleSell = this.handleTicketsResaleSell.bind(this);\r\n this.getOauthResaleRedirectUri = this.getOauthResaleRedirectUri.bind(this);\r\n }\r\n\r\n handleTicketsResaleBuy(event) {\r\n event.preventDefault();\r\n const { actions, formData } = this.props;\r\n\r\n actions.handleRedirectToResaleTickets({\r\n resaleTicketsUrl: formData.buyLink,\r\n secutixResaleUrl: formData.secutixResaleUrl,\r\n secutixPointOfSaleId: formData.secutixPointOfSaleId,\r\n secutixVirtualOperator: formData.secutixVirtualOperator,\r\n redirectUri: this.getOauthResaleRedirectUri()\r\n });\r\n }\r\n\r\n getOauthResaleRedirectUri() {\r\n const { renderedComponent } = this.props;\r\n\r\n const returnUri = getOauthReturnUrl({\r\n useEncode: false\r\n });\r\n\r\n if (returnUri.includes('account/profile')) {\r\n return encodeURIComponent(addQueryParam(returnUri, 'componentToRender', renderedComponent));\r\n }\r\n\r\n return encodeURIComponent(returnUri);\r\n }\r\n\r\n handleTicketsResaleSell(event) {\r\n event.preventDefault();\r\n const { actions, formData } = this.props;\r\n actions.handleRedirectToResaleTickets({\r\n resaleTicketsUrl: formData.sellLink,\r\n secutixResaleUrl: formData.secutixResaleUrl,\r\n secutixPointOfSaleId: formData.secutixPointOfSaleId,\r\n secutixVirtualOperator: formData.secutixVirtualOperator,\r\n redirectUri: this.getOauthResaleRedirectUri()\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n formData,\r\n accountData,\r\n } = this.props;\r\n const {\r\n resaleTicketsTitle,\r\n resaleTicketsInformationOpen,\r\n sellButtonCriteria,\r\n buyButtonCriteria,\r\n resaleTicketsImageSource,\r\n resaleTicketsImageText,\r\n resaleTicketsFAQTitle,\r\n resaleTicketsFAQs,\r\n resaleTicketsIntro\r\n } = formData;\r\n\r\n const { ballotCriteria } = accountData;\r\n const { membership } = accountData;\r\n\r\n const showBuyLink = shouldDisplayResaleButton(buyButtonCriteria, ballotCriteria, membership);\r\n const showSellLink = shouldDisplayResaleButton(sellButtonCriteria, ballotCriteria, membership);\r\n\r\n const texts = getMultilineText(resaleTicketsInformationOpen);\r\n\r\n return (\r\n \r\n

    {resaleTicketsTitle}

    \r\n
    \r\n

    {resaleTicketsIntro}

    \r\n
    \r\n
    \r\n
    \r\n {texts.map((introText) => {\r\n return

    {introText}

    ;\r\n })}\r\n
    \r\n
    \r\n {showBuyLink &&\r\n }\r\n {showSellLink &&\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {texts.map((introText) => {\r\n return

    {introText}

    ;\r\n })}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {!_.isEmpty(resaleTicketsImageText) &&\r\n

    {resaleTicketsImageText}

    }\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nResaleTickets.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n homePageTicketsData: state.userAccount.homePageTicketsData,\r\n loadHomePageTicketsDataErrorMessages: state.userAccount.loadHomePageTicketsDataErrorMessages,\r\n isTicketsDataLoadedSuccessful: state.userAccount.isTicketsDataLoadedSuccessful,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n handleRedirectToResaleTickets: bindActionCreators(userAccountActions.handleRedirectToResaleTickets, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ResaleTickets);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../../utils/constants/form-message-constants';\r\n\r\nfunction Order({\r\n orderItem,\r\n orderTypeValues,\r\n fileStateValues,\r\n onViewFileDetailsClick\r\n}) {\r\n function handleViewFileDetailsClick(event, fileNumber) {\r\n event.preventDefault();\r\n onViewFileDetailsClick(fileNumber);\r\n }\r\n\r\n function displayOrderItem() {\r\n return (\r\n
  • \r\n
    \r\n
    {orderTypeValues[orderItem.orderTypeIndex]}
    \r\n

    \r\n {formMessageConstants.fileNumber}\r\n {orderItem.fileNumber}\r\n

    \r\n

    \r\n {formMessageConstants.fileStatus}\r\n {fileStateValues[orderItem.fileStateIndex]}\r\n

    \r\n

    \r\n {formMessageConstants.lastUpdate}\r\n {orderItem.formattedLastUpdate}\r\n

    \r\n

    \r\n {formMessageConstants.fileAmount}\r\n {orderItem.formattedFileAmount}\r\n

    \r\n
    \r\n \r\n
  • \r\n );\r\n }\r\n\r\n return displayOrderItem();\r\n}\r\n\r\nOrder.propTypes = {\r\n orderItem: PropTypes.object.isRequired,\r\n orderTypeValues: PropTypes.object.isRequired,\r\n fileStateValues: PropTypes.object.isRequired,\r\n onViewFileDetailsClick: PropTypes.func.isRequired\r\n};\r\n\r\nexport default Order;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction OrdersPagination({ numberOfPages, activePageNumber, onPageNumberChange }) {\r\n function displayPagination() {\r\n const pagination = [];\r\n\r\n if (!shouldDisplayPaginator()) {\r\n return pagination;\r\n }\r\n\r\n if (activePageNumber >= 3) {\r\n pagination.push(getFirstPageNumber());\r\n }\r\n\r\n if (activePageNumber > 3) {\r\n pagination.push(getSpreadButton());\r\n }\r\n\r\n const pageNumberButtons = getPageNumberButtons();\r\n const updatedPagination = pagination.concat(pageNumberButtons);\r\n\r\n if (activePageNumber < numberOfPages - 2) {\r\n updatedPagination.push(...);\r\n }\r\n\r\n updatedPagination.push(getLastPageNumber());\r\n return updatedPagination;\r\n }\r\n\r\n function shouldDisplayPaginator() {\r\n return activePageNumber > 0 && numberOfPages >= activePageNumber;\r\n }\r\n\r\n function getFirstPageNumber() {\r\n return { goToPage(e, 1); }}\r\n className={`page ${activePageNumber === 1 ? 'active' : ''}`}>{'1'};\r\n }\r\n\r\n function getSpreadButton() {\r\n return ...;\r\n }\r\n\r\n function getPageNumberButtons() {\r\n const pageNumberButtons = [];\r\n for (let i = activePageNumber - 1; i < activePageNumber + 2; i++) {\r\n if (i > 0 && i < numberOfPages) {\r\n pageNumberButtons.push( { goToPage(e, i); }}\r\n className={`page ${i === activePageNumber ? 'active' : ''}`}>\r\n {`${i}`}\r\n );\r\n }\r\n }\r\n\r\n return pageNumberButtons;\r\n }\r\n\r\n function getLastPageNumber() {\r\n return { goToPage(e, numberOfPages); }}\r\n className={`page ${activePageNumber === numberOfPages ? 'active' : ''}`}>\r\n {`${numberOfPages}`}\r\n ;\r\n }\r\n\r\n function goToPage(event, pageNumber) {\r\n event.preventDefault();\r\n\r\n onPageNumberChange(pageNumber);\r\n }\r\n\r\n function nextPage() {\r\n onPageNumberChange(activePageNumber + 1 > numberOfPages ? numberOfPages : activePageNumber + 1);\r\n }\r\n\r\n function prevPage() {\r\n onPageNumberChange(activePageNumber - 1 < 1 ? 1 : activePageNumber - 1);\r\n }\r\n\r\n return (\r\n
    \r\n {shouldDisplayPaginator() ? \r\n \r\n : null}\r\n {displayPagination()}\r\n {shouldDisplayPaginator() ? \r\n \r\n : null}\r\n
    \r\n );\r\n}\r\n\r\nOrdersPagination.propTypes = {\r\n numberOfPages: PropTypes.number.isRequired,\r\n activePageNumber: PropTypes.number.isRequired,\r\n onPageNumberChange: PropTypes.func.isRequired\r\n};\r\n\r\n\r\nexport default OrdersPagination;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport Order from './Order';\r\nimport { isEmpty } from '../../../utils/obj-utils';\r\nimport OrdersPagination from './OrdersPagination';\r\nimport { formMessageConstants } from '../../../utils/constants/form-message-constants';\r\n\r\nfunction OrdersList({\r\n formData,\r\n displayCancelledFiles,\r\n orders,\r\n orderTypeValues,\r\n numberOfPages,\r\n orderHistoryActivePageNumber,\r\n onViewFileDetailsClick,\r\n handleDisplayCancelledFilesChange,\r\n handlePageNumberChange,\r\n loading\r\n}) {\r\n function displayNoOrderAvailableText() {\r\n const { noOrdersFoundText } = formData;\r\n if (loading || !isEmpty(orders)) {\r\n return null;\r\n }\r\n\r\n return (
    \r\n

    {formMessageConstants.information}

    \r\n

    {noOrdersFoundText}

    \r\n
    );\r\n }\r\n\r\n function displayOrderList() {\r\n if (loading || isEmpty(orders)) {\r\n return null;\r\n }\r\n\r\n const { fileState } = formData;\r\n return orders.map((orderHistoryItem, index) => {\r\n return ();\r\n });\r\n }\r\n\r\n function displayPagination() {\r\n if (loading || isEmpty(orders)) {\r\n return null;\r\n }\r\n\r\n if (numberOfPages <= 1) {\r\n return null;\r\n }\r\n\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n {!isEmpty(orders) &&\r\n
    \r\n

    {formMessageConstants.display}:

    \r\n \r\n
    }\r\n
    \r\n {displayNoOrderAvailableText()}\r\n
    \r\n
      \r\n {displayOrderList()}\r\n
    \r\n
    \r\n {displayPagination()}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nOrdersList.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n displayCancelledFiles: PropTypes.bool.isRequired,\r\n orders: PropTypes.array.isRequired,\r\n orderTypeValues: PropTypes.object.isRequired,\r\n numberOfPages: PropTypes.number.isRequired,\r\n orderHistoryActivePageNumber: PropTypes.number.isRequired,\r\n onViewFileDetailsClick: PropTypes.func.isRequired,\r\n handleDisplayCancelledFilesChange: PropTypes.func.isRequired,\r\n handlePageNumberChange: PropTypes.func.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(OrdersList);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { fileState } from '../../../utils/file-state';\r\nimport { formMessageConstants } from '../../../utils/constants/form-message-constants';\r\nimport { formConstants } from '../../../utils/constants/form-constants';\r\nimport SSOCloseButton from '../../../common/utility/SSOCloseButton';\r\n\r\nfunction FileSummary({\r\n orderItem,\r\n orderTypeValues,\r\n fileStateValues,\r\n onPrintSummaryButtonClick,\r\n onCancelButtonClick,\r\n onCloseButtonClick,\r\n onPayReservationClick,\r\n showCancelButton\r\n}) {\r\n const {\r\n fileNumber,\r\n channel,\r\n status,\r\n created,\r\n formattedFileAmount,\r\n fileContact,\r\n orderType\r\n } = orderItem;\r\n\r\n function handleOnCancelClick(event) {\r\n event.preventDefault();\r\n onCancelButtonClick();\r\n }\r\n\r\n function handleOnPrintSummaryButtonClick(event) {\r\n event.preventDefault();\r\n onPrintSummaryButtonClick(fileNumber);\r\n }\r\n\r\n function handleOnPayReservationClick(event) {\r\n event.preventDefault();\r\n onPayReservationClick(fileNumber);\r\n }\r\n\r\n function isInReservation() {\r\n return status === formConstants.SecutixReservationStatus \r\n || (orderType === formConstants.SecutixReservationOrderType\r\n && status === formConstants.SecutixReservationRunningStatus);\r\n }\r\n\r\n return (\r\n
    \r\n\r\n \r\n

    {formMessageConstants.fileSummary}

    \r\n
    {orderTypeValues[orderItem.orderTypeIndex]}
    \r\n

    \r\n {formMessageConstants.fileNumber}\r\n {fileNumber}\r\n

    \r\n

    \r\n {formMessageConstants.fileStatus}\r\n {fileStateValues[fileState[status]]}\r\n

    \r\n

    \r\n {formMessageConstants.fileContact}\r\n {fileContact}\r\n

    \r\n

    \r\n {formMessageConstants.fileAmount}\r\n {formattedFileAmount}\r\n

    \r\n \r\n
    \r\n );\r\n}\r\n\r\nFileSummary.propTypes = {\r\n orderItem: PropTypes.object.isRequired,\r\n orderTypeValues: PropTypes.object.isRequired,\r\n fileStateValues: PropTypes.object.isRequired,\r\n onPrintSummaryButtonClick: PropTypes.func.isRequired,\r\n onPayReservationClick: PropTypes.func.isRequired,\r\n onCancelButtonClick: PropTypes.func.isRequired,\r\n onCloseButtonClick: PropTypes.func.isRequired,\r\n showCancelButton: PropTypes.bool.isRequired\r\n};\r\n\r\n\r\nexport default FileSummary;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../../utils/constants/form-message-constants';\r\nimport { isEmpty } from '../../../utils/obj-utils';\r\n\r\nfunction FileContentSummary({ fileContents, noProductsFoundText }) {\r\n function displayProducts() {\r\n if (isEmpty(fileContents)) {\r\n return (
    \r\n

    {noProductsFoundText}

    \r\n
    );\r\n }\r\n\r\n return fileContents.map((fileContent, index) => {\r\n const isLast = index + 1 === fileContents.length;\r\n return (\r\n
    \r\n
    \r\n \r\n {displayInfoText(fileContent)}\r\n
    \r\n {displayFunctionContentTable(fileContent)}\r\n
    );\r\n });\r\n }\r\n\r\n function displayInfoText({ name, details }) {\r\n return (
    \r\n

    {`${name || formMessageConstants.emptyString}`}

    \r\n

    {`${details || formMessageConstants.emptyString}`}

    \r\n
    );\r\n }\r\n\r\n function displayFunctionContentTable({ fileContentItems, formattedTotalAmount }) {\r\n return fileContentItems.map((fileContentItem, index) => {\r\n const isLast = index + 1 === fileContentItems.length;\r\n return (\r\n
    \r\n
    \r\n
    {formMessageConstants.Type}
    \r\n
    {formMessageConstants.qty}
    \r\n
    {formMessageConstants.unitPrice}
    \r\n
    {formMessageConstants.subTotal}
    \r\n
    \r\n\r\n
    \r\n
    {`${fileContentItem.type}`}
    \r\n
    {`${fileContentItem.quantity}`}
    \r\n
    {`${fileContentItem.formattedUnitPrice}`}
    \r\n
    {`${fileContentItem.formattedSubTotal}`}
    \r\n
    \r\n\r\n {isLast && (
    \r\n
    {`Sub-total = ${formattedTotalAmount}`}
    \r\n
    )}\r\n
    );\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n

    {formMessageConstants.fileContent}

    \r\n {displayProducts()}\r\n
    \r\n );\r\n}\r\n\r\nFileContentSummary.propTypes = {\r\n fileContents: PropTypes.array.isRequired,\r\n noProductsFoundText: PropTypes.string\r\n};\r\n\r\nexport default FileContentSummary;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { isEmpty } from '../../../utils/obj-utils';\r\nimport { formMessageConstants } from '../../../utils/constants/form-message-constants';\r\n\r\nfunction InstallmentTable({ installments }) {\r\n function displayInstallmentsTable() {\r\n if (isEmpty(installments)) {\r\n return null;\r\n }\r\n\r\n return (
    \r\n

    {formMessageConstants.installments}

    \r\n
    \r\n
    \r\n
    {formMessageConstants.dueDate}
    \r\n
    {formMessageConstants.amountDue}
    \r\n
    {formMessageConstants.amountPaid}
    \r\n
    {formMessageConstants.paymentDate}
    \r\n
    \r\n {displayInstallmentRows(installments)}\r\n
    \r\n
    );\r\n }\r\n\r\n function displayInstallmentRows() {\r\n return installments.map((installment, index) => {\r\n return displayInstallmentRow(installment, index);\r\n });\r\n }\r\n function displayInstallmentRow(installment, index) {\r\n return (
    \r\n
    {formMessageConstants.dueDate}{installment.formattedDueDate}
    \r\n
    {formMessageConstants.amountDue}{installment.formattedAmountDue}
    \r\n
    {formMessageConstants.amountPaid}{installment.formattedAmountPaid}
    \r\n
    {formMessageConstants.paymentDate}\r\n \r\n {isEmpty(installment.paymentDate) ?\r\n \r\n \r\n \r\n \r\n {formMessageConstants.payByCreditCard}\r\n : installment.paymentDate}\r\n \r\n
    \r\n
    );\r\n }\r\n\r\n return displayInstallmentsTable();\r\n}\r\n\r\nInstallmentTable.propTypes = {\r\n installments: PropTypes.array.isRequired\r\n};\r\n\r\nexport default InstallmentTable;\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport InstallmentTable from './InstallmentTable';\r\nimport { formMessageConstants } from '../../../utils/constants/form-message-constants';\r\nimport { isEmpty } from '../../../utils/obj-utils';\r\n\r\nfunction PaymentSummary({ paymentSummary, noPaymentSummaryFoundText, country }) {\r\n function displayPaymentSummary() {\r\n const isPaymentSummaryEmpty = isEmpty(paymentSummary);\r\n const foundCountry = getCountry();\r\n return (\r\n
    \r\n

    {formMessageConstants.paymentSummary}

    \r\n
    \r\n {isPaymentSummaryEmpty ?\r\n
    \r\n

    {noPaymentSummaryFoundText}

    \r\n
    :\r\n \r\n

    \r\n {formMessageConstants.amountInvoiced}\r\n {paymentSummary.formattedAmountInvoiced}\r\n

    \r\n \r\n
    \r\n

    \r\n {formMessageConstants.totalAmountPaid}\r\n {paymentSummary.formattedTotalAmountPaid}\r\n

    \r\n

    \r\n {formMessageConstants.paymentMethod}\r\n {paymentSummary.paymentMethod}\r\n

    \r\n

    \r\n {formMessageConstants.lastStatus}\r\n {paymentSummary.lastStatus}\r\n

    \r\n

    \r\n {formMessageConstants.lastPayment}\r\n {paymentSummary.formattedLastPaymentDate}\r\n

    \r\n

    \r\n {formMessageConstants.billingContactName}\r\n {paymentSummary.billingContactName}\r\n

    \r\n

    \r\n {formMessageConstants.billingContactDetails}\r\n {paymentSummary.billingContactDetails}\r\n

    \r\n
    \r\n

    \r\n {formMessageConstants.billingAddress}\r\n {isEmpty(paymentSummary.billingAddress) ?\r\n null :\r\n < span className='right'>\r\n {displayAddressLine1()}\r\n {displayAddressLine2()}\r\n {displayAddressLine3()}\r\n {displayCity()}\r\n {displayPostcode()}\r\n {!isEmpty(foundCountry) ? foundCountry.label : paymentSummary.billingAddress.country}\r\n }\r\n

    \r\n
    }\r\n
    \r\n
    );\r\n }\r\n\r\n function getCountry() {\r\n if (isEmpty(paymentSummary)) {\r\n return formMessageConstants.emptyString;\r\n }\r\n\r\n return isEmpty(paymentSummary.billingAddress) ?\r\n formMessageConstants.emptyString :\r\n country.options.find((option) => option.code === paymentSummary.billingAddress.country);\r\n }\r\n\r\n\r\n function displayAddressLine1() {\r\n if (isEmpty(paymentSummary.billingAddress.addressLine1)) {\r\n return null;\r\n }\r\n return {paymentSummary.billingAddress.addressLine1} < br >
    ;\r\n }\r\n\r\n function displayAddressLine2() {\r\n if (isEmpty(paymentSummary.billingAddress.addressLine2)) {\r\n return null;\r\n }\r\n return {paymentSummary.billingAddress.addressLine2} < br >
    ;\r\n }\r\n\r\n function displayAddressLine3() {\r\n if (isEmpty(paymentSummary.billingAddress.addressLine3)) {\r\n return null;\r\n }\r\n return {paymentSummary.billingAddress.addressLine3} < br >
    ;\r\n }\r\n\r\n function displayCity() {\r\n if (isEmpty(paymentSummary.billingAddress.city)) {\r\n return null;\r\n }\r\n return {paymentSummary.billingAddress.city} < br >
    ;\r\n }\r\n\r\n function displayPostcode() {\r\n if (isEmpty(paymentSummary.billingAddress.postcode)) {\r\n return null;\r\n }\r\n return {paymentSummary.billingAddress.postcode} < br >
    ;\r\n }\r\n\r\n return displayPaymentSummary();\r\n}\r\n\r\nPaymentSummary.propTypes = {\r\n paymentSummary: PropTypes.object.isRequired,\r\n country: PropTypes.object.isRequired,\r\n noPaymentSummaryFoundText: PropTypes.string\r\n};\r\n\r\nexport default PaymentSummary;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../../utils/constants/form-message-constants';\r\nimport { isEmpty } from '../../../utils/obj-utils';\r\n\r\nfunction ChangeHistorySection({\r\n historyContents,\r\n onPrintDocumentInvoiceButtonClick,\r\n orderTypeValues,\r\n noHistoryDataFoundText,\r\n}) {\r\n function handleOnPrintDocumentInvoiceButtonClick(event, orderId) {\r\n event.preventDefault();\r\n onPrintDocumentInvoiceButtonClick(orderId);\r\n }\r\n\r\n function displayHistorySection() {\r\n const isHistoryContentsEmpty = isEmpty(historyContents);\r\n\r\n return (
    \r\n

    {formMessageConstants.changeHistory}

    \r\n\r\n {isHistoryContentsEmpty ?\r\n
    \r\n

    {noHistoryDataFoundText}

    \r\n
    :\r\n
    \r\n
    \r\n
    {formMessageConstants.order}
    \r\n
    {formMessageConstants.type}
    \r\n
    {formMessageConstants.open}
    \r\n
    {formMessageConstants.confirmed}
    \r\n
    \r\n {displayHistorySummary()}\r\n
    }\r\n
    );\r\n }\r\n\r\n function displayHistorySummary() {\r\n const historyContentsLength = historyContents.length;\r\n return historyContents.map((historyContent, index) => {\r\n const isLast = historyContentsLength === index + 1;\r\n return (
    \r\n
    {formMessageConstants.order}{historyContent.orderId}
    \r\n
    {formMessageConstants.type}{orderTypeValues[historyContent.orderTypeIndex]}
    \r\n
    {formMessageConstants.open}{historyContent.formattedOpen}
    \r\n
    {formMessageConstants.confirmed}{historyContent.formattedConfirmed}
    \r\n
    );\r\n });\r\n }\r\n return displayHistorySection();\r\n}\r\n\r\nChangeHistorySection.propTypes = {\r\n historyContents: PropTypes.array.isRequired,\r\n orderTypeValues: PropTypes.object.isRequired,\r\n onPrintDocumentInvoiceButtonClick: PropTypes.func.isRequired,\r\n noHistoryDataFoundText: PropTypes.string\r\n};\r\n\r\nexport default ChangeHistorySection;\r\n","import React, { Fragment } from 'react';\r\nimport OrdersList from '../forms/user-order-history/order-history-display/OrdersList';\r\nimport FileSummary from '../forms/user-order-history/file-summary-display/FileSummary';\r\nimport FileContentSummary from '../forms/user-order-history/file-summary-display/FileContentSummary';\r\nimport PaymentSummary from '../forms/user-order-history/file-summary-display/PaymentSummary';\r\nimport ChangeHistorySection from '../forms/user-order-history/file-summary-display/ChangeHistorySection';\r\n\r\nexport const orderHistoryFormConstants = {\r\n /* eslint-disable */\r\n orderHistoryDisplayForm: ({\r\n formData,\r\n displayCancelledFiles,\r\n orderHistoryData,\r\n orderHistoryPages,\r\n orderHistoryActivePageNumber,\r\n handleViewFileDetailsClick,\r\n handleDisplayCancelledFilesChange,\r\n handlePageNumberChange }) => {\r\n const { orderType } = formData;\r\n return \r\n },\r\n fileDetailsDisplayForm: ({\r\n formData,\r\n orderHistoryForDisplay,\r\n handlePrintSummaryButton,\r\n handlePrintDocumentInvoiceButtonClick,\r\n handleCloseFormButton,\r\n handlePayReservationClick\r\n }) => {\r\n const {\r\n noProductsFoundText,\r\n noPaymentSummaryFoundText,\r\n noHistoryDataFoundText,\r\n country,\r\n fileState,\r\n orderType,\r\n showCancelButton } = formData;\r\n const { files, paymentSummary, history } = orderHistoryForDisplay;\r\n return \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n },\r\n /* eslint-enable */\r\n};\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport BasketDialogBoxContentBody from 'general/js/basket/basket-dialog-box-content-body';\r\nimport ConfirmationModal from '../../common/utility/ConfirmationModal';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport { orderHistoryFormConstants } from '../../utils/order-history-form-constants';\r\nimport { orderHistoryFormStateConstants } from '../helpers/form-helpers/user-account/order-history-form-state';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { isNullOrUndefined } from '../../../../../general/js/general-helpers';\r\n\r\nclass UserOrderHistory extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { fileNumberForDisplay } = props;\r\n this.state = initialState.orderHistoryFormState;\r\n this.state.fileNumberForDisplay = fileNumberForDisplay;\r\n this.state.showPopup = false;\r\n this.state.fileNumber = null;\r\n\r\n this.loadOrderHistoryData = this.loadOrderHistoryData.bind(this);\r\n this.reloadOrderHistoryData = this.reloadOrderHistoryData.bind(this);\r\n this.displayOrderHistoryForm = this.displayOrderHistoryForm.bind(this);\r\n this.handleViewFileDetailsClick = this.handleViewFileDetailsClick.bind(this);\r\n this.loadFileDetails = this.loadFileDetails.bind(this);\r\n this.handlePageNumberChange = this.handlePageNumberChange.bind(this);\r\n this.handleDisplayCancelledFilesChange = this.handleDisplayCancelledFilesChange.bind(this);\r\n this.handlePrintSummaryButton = this.handlePrintSummaryButton.bind(this);\r\n this.handlePayReservationClick = this.handlePayReservationClick.bind(this);\r\n this.handlePrintDocumentInvoiceButtonClick = this.handlePrintDocumentInvoiceButtonClick.bind(this);\r\n this.handleCloseFileDetailsDisplayForm = this.handleCloseFileDetailsDisplayForm.bind(this);\r\n this.toggleModalClose = this.toggleModalClose.bind(this);\r\n this.handlePayReservation = this.handlePayReservation.bind(this);\r\n\r\n this.loadOrderHistoryData();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n loading,\r\n areOrderDetailsLoadedSuccessful,\r\n orderDetails\r\n } = nextProps;\r\n const { fileNumberForDisplay } = this.state;\r\n if (!loading &&\r\n fileNumberForDisplay !== 0 &&\r\n areOrderDetailsLoadedSuccessful) {\r\n this.setState(formStateHelpers.updateFileSummaryFormState(orderHistoryFormStateConstants.FileDetailsDisplayForm, orderDetails));\r\n }\r\n }\r\n\r\n loadOrderHistoryData() {\r\n const {\r\n actions, formData, orderHistoryData, displayCancelledFiles\r\n } = this.props;\r\n const { fileNumberForDisplay } = this.state;\r\n\r\n if (fileNumberForDisplay !== 0) {\r\n this.loadFileDetails();\r\n return;\r\n }\r\n\r\n if (!isEmpty(orderHistoryData)) {\r\n return;\r\n }\r\n\r\n this.loadOrders(actions, formData, displayCancelledFiles);\r\n }\r\n\r\n loadOrders(actions, formData, displayCancelledFiles) {\r\n const { orderHistoryActivePageNumber } = this.state;\r\n\r\n actions.getOrderHistoryPages(formData.getOrderHistoryPagesCallbackUrl,\r\n { displayCancelledFiles, [formConstants.ssoDomain]: formData[formConstants.ssoDomain] });\r\n\r\n actions.getOrderHistory(formData.getOrderHistoryCallbackUrl,\r\n {\r\n pageNumber: orderHistoryActivePageNumber,\r\n displayCancelledFiles,\r\n [formConstants.ssoDomain]: formData[formConstants.ssoDomain]\r\n });\r\n }\r\n\r\n reloadOrderHistoryData() {\r\n const { actions, formData } = this.props;\r\n const { displayCancelledFiles } = this.state;\r\n this.loadOrders(actions, formData, displayCancelledFiles);\r\n }\r\n\r\n handleViewFileDetailsClick(fileNumber) {\r\n this.setState(formStateHelpers.updateFileNumberForDisplay(fileNumber), this.loadFileDetails);\r\n }\r\n\r\n loadFileDetails() {\r\n const { actions, formData } = this.props;\r\n const { getOrderDetailsCallbackUrl } = formData;\r\n const { fileNumberForDisplay } = this.state;\r\n actions.getOrderDetails(getOrderDetailsCallbackUrl,\r\n { fileNumber: fileNumberForDisplay, [formConstants.ssoDomain]: formData[formConstants.ssoDomain] });\r\n }\r\n\r\n handlePageNumberChange(pageNumber) {\r\n this.setState(formStateHelpers.updateOrderHistoryActivePageNumber(pageNumber), this.reloadOrderHistoryData);\r\n }\r\n\r\n handleDisplayCancelledFilesChange() {\r\n this.setState(formStateHelpers.toggleKey('displayCancelledFiles'), this.reloadOrderHistoryData);\r\n }\r\n\r\n handlePrintSummaryButton(fileNumber) {\r\n const { actions, formData } = this.props;\r\n const { downloadFileSummaryPdfCallbackUrl } = formData;\r\n actions.downloadPdfDocumentById(downloadFileSummaryPdfCallbackUrl,\r\n { id: fileNumber, [formConstants.ssoDomain]: formData[formConstants.ssoDomain] });\r\n }\r\n\r\n handlePayReservationClick(fileNumber) {\r\n const { actions, formData } = this.props;\r\n const { resumePaymentCallbackUrl, secutixAuthUrl } = formData;\r\n\r\n if (formData.showDialogBox) { this.setState({ showPopup: !this.state.showPopup, fileNumber }); } else {\r\n actions.resumePaymentByFileNumber({ resumePaymentCallbackUrl, secutixAuthUrl },\r\n { fileNumber, [formConstants.ssoDomain]: formData[formConstants.ssoDomain] });\r\n }\r\n }\r\n\r\n handlePayReservation() {\r\n const { actions, formData } = this.props;\r\n const { resumePaymentCallbackUrl, secutixAuthUrl } = formData;\r\n const { fileNumber } = this.state;\r\n\r\n actions.resumePaymentByFileNumber({ resumePaymentCallbackUrl, secutixAuthUrl },\r\n { fileNumber, [formConstants.ssoDomain]: formData[formConstants.ssoDomain] });\r\n }\r\n\r\n toggleModalClose() {\r\n this.setState({ showPopup: false });\r\n }\r\n\r\n handlePrintDocumentInvoiceButtonClick(documentId) {\r\n const { actions, formData } = this.props;\r\n const { downloadDocumentPdfCallbackUrl } = formData;\r\n actions.downloadPdfDocumentById(downloadDocumentPdfCallbackUrl,\r\n { id: documentId, [formConstants.ssoDomain]: formData[formConstants.ssoDomain] });\r\n }\r\n\r\n handleCloseFileDetailsDisplayForm() {\r\n this.setState(formStateHelpers.updateOrderHistoryDisplayFormState(orderHistoryFormStateConstants.OrderHistoryDisplayForm), this.loadOrderHistoryData);\r\n }\r\n\r\n displayOrderHistoryForm() {\r\n const { formState, orderHistoryForDisplay, orderHistoryActivePageNumber } = this.state;\r\n const { displayCancelledFiles } = this.props;\r\n const { formData, orderHistoryData, orderHistoryPages } = this.props;\r\n const orderHistoryDisplayData = {\r\n formData,\r\n displayCancelledFiles,\r\n orderHistoryData,\r\n orderHistoryPages,\r\n orderHistoryActivePageNumber,\r\n orderHistoryForDisplay,\r\n handleViewFileDetailsClick: this.handleViewFileDetailsClick,\r\n handleDisplayCancelledFilesChange: this.handleDisplayCancelledFilesChange,\r\n handlePageNumberChange: this.handlePageNumberChange,\r\n handlePrintSummaryButton: this.handlePrintSummaryButton,\r\n handlePayReservationClick: this.handlePayReservationClick,\r\n handlePrintDocumentInvoiceButtonClick: this.handlePrintDocumentInvoiceButtonClick,\r\n handleCloseFormButton: this.handleCloseFileDetailsDisplayForm\r\n };\r\n\r\n return orderHistoryFormConstants[formState](orderHistoryDisplayData);\r\n }\r\n\r\n render() {\r\n const { loading, formData } = this.props;\r\n const { formTitle } = formData;\r\n const logoSrc = formData.masterCardDialogBox.logo ? formData.masterCardDialogBox.logo.src : null;\r\n return (\r\n \r\n {loading ? / : null}\r\n

    {formTitle}

    \r\n {this.displayOrderHistoryForm()}\r\n\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nUserOrderHistory.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n formData: PropTypes.object.isRequired,\r\n fileNumberForDisplay: PropTypes.number.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n orderHistoryData: state.userAccount.orderHistoryData,\r\n orderHistoryPages: state.userAccount.orderHistoryPages,\r\n areOrderHistoryPagesLoadedSuccessful: state.userAccount.areOrderHistoryPagesLoadedSuccessful,\r\n isOrderHistoryLoadedSuccessful: state.userAccount.isOrderHistoryLoadedSuccessful,\r\n areOrderDetailsLoadedSuccessful: state.userAccount.areOrderDetailsLoadedSuccessful,\r\n orderDetails: state.userAccount.orderDetails,\r\n displayCancelledFiles: isNullOrUndefined(state.userAccount.displayCancelledFiles) ? initialState.orderHistoryFormState.displayCancelledFiles : state.userAccount.displayCancelledFiles\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n getOrderHistory: bindActionCreators(userAccountActions.getOrderHistory, dispatch),\r\n getOrderHistoryPages: bindActionCreators(userAccountActions.getOrderHistoryPages, dispatch),\r\n getOrderDetails: bindActionCreators(userAccountActions.getOrderDetails, dispatch),\r\n downloadPdfDocumentById: bindActionCreators(userAccountActions.downloadPdfDocumentById, dispatch),\r\n resumePaymentByFileNumber: bindActionCreators(userAccountActions.resumePaymentByFileNumber, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(UserOrderHistory);\r\n","import _ from 'lodash';\r\nimport { formConstants } from '../../../../utils/constants/form-constants';\r\nimport { isEmpty } from '../../../../utils/obj-utils';\r\nimport { createDateFromExisting } from '../../../../utils/date-utils';\r\nimport { domainConstants } from '../../../../utils/constants/domain-constants';\r\nimport { hasValue } from '../../../../../../../general/js/general-helpers';\r\n\r\nconst UserDetailsFormData = (\r\n {\r\n ssoDomain,\r\n ssoUserDetailsFields,\r\n updateUserDetailsCallbackUrl,\r\n removeAccountCallbackUrl\r\n },\r\n userAccountData\r\n) => {\r\n function buildUserDetailsFormData() {\r\n const formData = getUserDetailsFields();\r\n return getUserDetailsFieldsWithDefaultValues(formData);\r\n }\r\n\r\n function getUserDetailsFields() {\r\n const formData = {};\r\n const { formTitle, actionSuccessText, emailChangedConflictMessage } = ssoUserDetailsFields;\r\n formData[formConstants.formTitle] = formTitle;\r\n formData[formConstants.callBackUrl] = updateUserDetailsCallbackUrl;\r\n formData[formConstants.ssoDomain] = ssoDomain;\r\n formData[formConstants.removeAccountCallbackUrl] = removeAccountCallbackUrl;\r\n formData[formConstants.actionSuccessText] = actionSuccessText;\r\n formData[formConstants.emailChangedConflictMessage] = emailChangedConflictMessage;\r\n formData[formConstants.emailAddress] = ssoUserDetailsFields[formConstants.emailAddress];\r\n formData[formConstants.confirmEmailAddress] = ssoUserDetailsFields[formConstants.confirmEmailAddress];\r\n formData[formConstants.title] = ssoUserDetailsFields[formConstants.title];\r\n formData[formConstants.firstName] = ssoUserDetailsFields[formConstants.firstName];\r\n formData[formConstants.lastName] = ssoUserDetailsFields[formConstants.lastName];\r\n formData[formConstants.dateOfBirth] = ssoUserDetailsFields[formConstants.dateOfBirth];\r\n formData[formConstants.mainAddressLabel] = ssoUserDetailsFields[formConstants.mainAddressLabel];\r\n formData[formConstants.country] = ssoUserDetailsFields[formConstants.country];\r\n formData[formConstants.county] = ssoUserDetailsFields[formConstants.county];\r\n formData[formConstants.state] = ssoUserDetailsFields[formConstants.state];\r\n formData[formConstants.addressLine1] = ssoUserDetailsFields[formConstants.addressLine1];\r\n formData[formConstants.addressLine2] = ssoUserDetailsFields[formConstants.addressLine2];\r\n formData[formConstants.addressLine3] = ssoUserDetailsFields[formConstants.addressLine3];\r\n formData[formConstants.city] = ssoUserDetailsFields[formConstants.city];\r\n formData[formConstants.postcode] = ssoUserDetailsFields[formConstants.postcode];\r\n formData[formConstants.mobilePhone] = ssoUserDetailsFields[formConstants.mobilePhone];\r\n formData[formConstants.becomeOneClubMemberInfo] = ssoUserDetailsFields[formConstants.becomeOneClubMemberInfo];\r\n formData[formConstants.offersDetails] = ssoUserDetailsFields[formConstants.offersDetails];\r\n formData[formConstants.privacyPolicy] = ssoUserDetailsFields[formConstants.privacyPolicy];\r\n formData[formConstants.removeAccountInputText] = ssoUserDetailsFields[formConstants.removeAccountInputText];\r\n formData[formConstants.removeAccountInputWarning] = ssoUserDetailsFields[formConstants.removeAccountInputWarning];\r\n formData[formConstants.removeAccountModalWarning] = ssoUserDetailsFields[formConstants.removeAccountModalWarning];\r\n return formData;\r\n }\r\n\r\n function getUserDetailsFieldsWithDefaultValues(formData) {\r\n const { isOneClubMember } = userAccountData;\r\n const isWomensOpen = ssoDomain === domainConstants.womensOpen;\r\n\r\n formData[formConstants.emailAddress].defaultValue = userAccountData[formConstants.email];\r\n formData[formConstants.confirmEmailAddress].defaultValue = userAccountData[formConstants.email];\r\n formData[formConstants.title].defaultValue = userAccountData[formConstants.title];\r\n formData[formConstants.firstName].defaultValue = userAccountData[formConstants.firstName];\r\n formData[formConstants.lastName].defaultValue = userAccountData[formConstants.lastName];\r\n\r\n if (!_.isEmpty(userAccountData[formConstants.mobilePhone])) {\r\n formData[formConstants.mobilePhone].defaultValue = {};\r\n\r\n const userMobilePhone = _.cloneDeep(userAccountData[formConstants.mobilePhone]);\r\n\r\n const userCountryCodeMobilePhonePrefix = userAccountData[formConstants.countryCodeMobilePhonePrefix];\r\n\r\n const selectedCountry = getSelectedCountry(formData, userCountryCodeMobilePhonePrefix, userMobilePhone);\r\n\r\n formData[formConstants.mobilePhone].defaultValue.selectedCountry = selectedCountry;\r\n\r\n formData[formConstants.mobilePhone].defaultValue.phoneNumber = hasValue(selectedCountry) ?\r\n userMobilePhone.replace(selectedCountry.phonePrefix, '') :\r\n userMobilePhone;\r\n }\r\n\r\n if (userAccountData.dateOfBirth !== undefined) {\r\n formData[formConstants.dateOfBirth].defaultValue = createDateFromExisting(userAccountData.dateOfBirth);\r\n }\r\n\r\n let mainAddress = {};\r\n if (!isEmpty(userAccountData.addresses)) {\r\n const foundAddress = userAccountData.addresses.find((address) => address.main);\r\n mainAddress = isEmpty(foundAddress) ? {} : foundAddress;\r\n }\r\n\r\n formData[formConstants.addressLine1].defaultValue = mainAddress.addressLine1;\r\n formData[formConstants.addressLine2].defaultValue = mainAddress.addressLine2;\r\n formData[formConstants.addressLine3].defaultValue = mainAddress.addressLine3;\r\n formData[formConstants.postcode].defaultValue = mainAddress.postcode;\r\n formData[formConstants.city].defaultValue = mainAddress.city;\r\n formData[formConstants.country].defaultValue = mainAddress.country;\r\n formData[formConstants.county].defaultValue = mainAddress.county;\r\n formData[formConstants.state].defaultValue = mainAddress.state;\r\n\r\n const optIns = userAccountData[formConstants.optIns];\r\n formData[formConstants.offersDetails].defaultValue =\r\n {\r\n [formConstants.refuseOffers]: !optIns.optedTheOpenOffersByEmail,\r\n [formConstants.acceptOffers]: optIns.optedPartnerOffersByEmail\r\n };\r\n\r\n formData[formConstants.becomeOneClubMemberInfo].isHidden = isWomensOpen || isOneClubMember;\r\n\r\n formData[formConstants.privacyPolicy].defaultValue = optIns.agreedToPrivacyPolicy;\r\n\r\n return formData;\r\n }\r\n\r\n return buildUserDetailsFormData();\r\n};\r\n\r\nfunction getSelectedCountry(formData, userCountryCodeMobilePhonePrefix, userMobilePhone) {\r\n let selectedCountry = formData[formConstants.country].options\r\n .find((country) => !_.isEmpty(country.phonePrefix) &&\r\n country.code === userCountryCodeMobilePhonePrefix);\r\n\r\n if (selectedCountry) return selectedCountry;\r\n\r\n selectedCountry = formData[formConstants.country].options\r\n .find((country) => !_.isEmpty(country.phonePrefix) &&\r\n userMobilePhone.includes(country.phonePrefix));\r\n\r\n return selectedCountry;\r\n}\r\n\r\nexport default UserDetailsFormData;\r\n","export const paymentStatus = {\r\n WAITING: 0,\r\n IN_PROGRESS: 1,\r\n AUTHORIZED: 2,\r\n PAID: 3,\r\n CANCELLED_BY_USER: 4,\r\n FAILED: 5,\r\n ABANDONED: 6,\r\n WAITING_MANUAL_VALIDATION: 7,\r\n FAILED_REJECTED: 8,\r\n};\r\n","import { paymentStatus } from '../../../../utils/payment-status';\r\nimport { orderType } from '../../../../utils/order-type';\r\nimport { fileState } from '../../../../utils/file-state';\r\n\r\nexport function getFileStates({\r\n runningFileStateText,\r\n suspendedFileStateText,\r\n inOptionFileStateText,\r\n inReservationFileStateText,\r\n optionReservFileStateText,\r\n confirmedFileStateText,\r\n soldFileStateText,\r\n notSoldFileStateText,\r\n partSoldFileStateText,\r\n canceledFileStateText,\r\n abandonedFileStateText,\r\n techErrorFileStateText,\r\n}) {\r\n const fileStates = {};\r\n\r\n fileStates[fileState.RUNNING] = runningFileStateText;\r\n fileStates[fileState.SUSPENDED] = suspendedFileStateText;\r\n fileStates[fileState.IN_OPTION] = inOptionFileStateText;\r\n fileStates[fileState.IN_RESERVATION] = inReservationFileStateText;\r\n fileStates[fileState.OPTION_RESERV] = optionReservFileStateText;\r\n fileStates[fileState.CONFIRMED] = confirmedFileStateText;\r\n fileStates[fileState.SOLD] = soldFileStateText;\r\n fileStates[fileState.NOT_SOLD] = notSoldFileStateText;\r\n fileStates[fileState.PART_SOLD] = partSoldFileStateText;\r\n fileStates[fileState.CANCELED] = canceledFileStateText;\r\n fileStates[fileState.ABANDONED] = abandonedFileStateText;\r\n fileStates[fileState.TECH_ERROR] = techErrorFileStateText;\r\n\r\n return fileStates;\r\n}\r\n\r\nexport function getPaymentStatuses({\r\n waitingPaymentStatusText,\r\n inProgressPaymentStatusText,\r\n authorizedPaymentStatusText,\r\n paidPaymentStatusText,\r\n cancelledByUserPaymentStatusText,\r\n failedPaymentStatusText,\r\n abandonedPaymentStatusText,\r\n waitingManualValidationPaymentStatusText,\r\n failedRejectedPaymentStatusText\r\n}) {\r\n const paymentStatuses = {};\r\n paymentStatuses[paymentStatus.WAITING] = waitingPaymentStatusText;\r\n paymentStatuses[paymentStatus.IN_PROGRESS] = inProgressPaymentStatusText;\r\n paymentStatuses[paymentStatus.AUTHORIZED] = authorizedPaymentStatusText;\r\n paymentStatuses[paymentStatus.PAID] = paidPaymentStatusText;\r\n paymentStatuses[paymentStatus.CANCELLED_BY_USER] = cancelledByUserPaymentStatusText;\r\n paymentStatuses[paymentStatus.FAILED] = failedPaymentStatusText;\r\n paymentStatuses[paymentStatus.ABANDONED] = abandonedPaymentStatusText;\r\n paymentStatuses[paymentStatus.WAITING_MANUAL_VALIDATION] = waitingManualValidationPaymentStatusText;\r\n paymentStatuses[paymentStatus.FAILED_REJECTED] = failedRejectedPaymentStatusText;\r\n\r\n return paymentStatuses;\r\n}\r\n\r\nexport function getOrderTypes({\r\n saleOrderTypeText,\r\n refundClientOrderTypeText,\r\n refundOrganizationOrderTypeText,\r\n exchangeOrganizationOrderTypeText,\r\n exchangeClientOrderTypeText,\r\n reservationOrderTypeText,\r\n renewalOrderTypeText,\r\n optionOrderTypeText,\r\n reservationFreeingOrderTypeText,\r\n optionFreeingOrderTypeText,\r\n stTransferOrderTypeText\r\n}) {\r\n const orderTypes = {};\r\n orderTypes[orderType.SALE] = saleOrderTypeText;\r\n orderTypes[orderType.REFUND_CLIENT] = refundClientOrderTypeText;\r\n orderTypes[orderType.REFUND_ORGANIZATION] = refundOrganizationOrderTypeText;\r\n orderTypes[orderType.EXCHANGE_ORGANIZATION] = exchangeOrganizationOrderTypeText;\r\n orderTypes[orderType.EXCHANGE_CLIENT] = exchangeClientOrderTypeText;\r\n orderTypes[orderType.RESERVATION] = reservationOrderTypeText;\r\n orderTypes[orderType.RENEWAL] = renewalOrderTypeText;\r\n orderTypes[orderType.OPTION] = optionOrderTypeText;\r\n orderTypes[orderType.RESERVATION_FREEING] = reservationFreeingOrderTypeText;\r\n orderTypes[orderType.OPTION_FREEING] = optionFreeingOrderTypeText;\r\n orderTypes[orderType.ST_TRANSFER] = stTransferOrderTypeText;\r\n\r\n return orderTypes;\r\n}\r\n\r\nexport function getActionOrderTypes({\r\n saleActionOrderTypeText,\r\n refundClientActionOrderTypeText,\r\n refundOrganizationActionOrderTypeText,\r\n exchangeOrganizationActionOrderTypeText,\r\n exchangeClientActionOrderTypeText,\r\n reservationActionOrderTypeText,\r\n renewalActionOrderTypeText,\r\n optionActionOrderTypeText,\r\n reservationFreeingActionOrderTypeText,\r\n optionFreeingActionOrderTypeText,\r\n stTransferActionOrderTypeText\r\n}) {\r\n const actionOrderTypes = {};\r\n actionOrderTypes[orderType.SALE] = saleActionOrderTypeText;\r\n actionOrderTypes[orderType.REFUND_CLIENT] = refundClientActionOrderTypeText;\r\n actionOrderTypes[orderType.REFUND_ORGANIZATION] = refundOrganizationActionOrderTypeText;\r\n actionOrderTypes[orderType.EXCHANGE_ORGANIZATION] = exchangeOrganizationActionOrderTypeText;\r\n actionOrderTypes[orderType.EXCHANGE_CLIENT] = exchangeClientActionOrderTypeText;\r\n actionOrderTypes[orderType.RESERVATION] = reservationActionOrderTypeText;\r\n actionOrderTypes[orderType.RENEWAL] = renewalActionOrderTypeText;\r\n actionOrderTypes[orderType.OPTION] = optionActionOrderTypeText;\r\n actionOrderTypes[orderType.RESERVATION_FREEING] = reservationFreeingActionOrderTypeText;\r\n actionOrderTypes[orderType.OPTION_FREEING] = optionFreeingActionOrderTypeText;\r\n actionOrderTypes[orderType.ST_TRANSFER] = stTransferActionOrderTypeText;\r\n\r\n return actionOrderTypes;\r\n}\r\n","import { formConstants } from '../../../../utils/constants/form-constants';\r\nimport {\r\n getFileStates,\r\n getPaymentStatuses,\r\n getOrderTypes,\r\n getActionOrderTypes\r\n} from './account-form-data-utils';\r\nimport { formMessageConstants } from '../../../../utils/constants/form-message-constants';\r\n\r\nconst AccountHomePageFormData = (\r\n {\r\n ssoAccountHomePageFields,\r\n ssoOrderHistoryFields,\r\n getHomePageTicketsDataCallbackUrl,\r\n ssoDomain\r\n }\r\n) => {\r\n function buildAccountHomePageFormData() {\r\n const formData = {};\r\n const {\r\n formTitle,\r\n formSubTitle,\r\n showParkingButton,\r\n showParkingButtonText,\r\n showExpiryDate,\r\n secuTixErrorMessage,\r\n parkingButtonUrl\r\n } = ssoAccountHomePageFields;\r\n\r\n formData[formConstants.formTitle] = formTitle;\r\n formData[formConstants.formSubTitle] = formSubTitle;\r\n formData[formConstants.getHomePageTicketsDataCallbackUrl] = getHomePageTicketsDataCallbackUrl;\r\n formData[formConstants.secuTixErrorMessage] = secuTixErrorMessage;\r\n formData[formConstants.fileState] = getFileStates(ssoOrderHistoryFields);\r\n formData[formConstants.paymentStatus] = getPaymentStatuses(ssoOrderHistoryFields);\r\n formData[formConstants.orderType] = getOrderTypes(ssoOrderHistoryFields);\r\n formData[formConstants.actionOrderType] = getActionOrderTypes(ssoAccountHomePageFields);\r\n formData[formConstants.noOrdersFoundText] = ssoOrderHistoryFields.noOrdersFoundText || formMessageConstants.noOrdersFoundText;\r\n formData[formConstants.noActionsToPerformText] = ssoOrderHistoryFields.noActionsToPerformText || formMessageConstants.noActionsToPerformText;\r\n formData[formConstants.noUpcomingEventText] = ssoOrderHistoryFields.noUpcomingEventText || formMessageConstants.noUpcomingEventText;\r\n formData[formConstants.ssoDomain] = ssoDomain;\r\n formData[formConstants.showExpiryDate] = showExpiryDate;\r\n formData[formConstants.showParkingButton] = showParkingButton;\r\n formData[formConstants.showParkingButtonText] = showParkingButtonText;\r\n formData[formConstants.parkingButtonUrl] = parkingButtonUrl;\r\n return formData;\r\n }\r\n\r\n return buildAccountHomePageFormData();\r\n};\r\n\r\nexport default AccountHomePageFormData;\r\n","import { formConstants } from '../../../../utils/constants/form-constants';\r\n\r\nconst UserAddressesDisplayFormData = (accountFormData) => {\r\n function buildUserAddressesDisplayFormData() {\r\n const { ssoUserAddressesFields, ssoUserDetailsFields } = accountFormData;\r\n const formData = {};\r\n const {\r\n formTitle,\r\n noAddressFoundText,\r\n addAddressCallBackUrl,\r\n addAddressActionSuccessText,\r\n updateAddressCallBackUrl,\r\n updateAddressActionSuccessText,\r\n cannotRemoveLastAddressMessage,\r\n cannotRemoveMainAddressMessage,\r\n cannotRemoveShippingAddressMessage,\r\n cannotRemoveBillingAddressMessage\r\n } = ssoUserAddressesFields;\r\n\r\n formData[formConstants.formTitle] = formTitle;\r\n formData[formConstants.noAddressFoundText] = noAddressFoundText;\r\n formData[formConstants.addAddress] = {};\r\n formData[formConstants.addAddress][formConstants.callBackUrl] = addAddressCallBackUrl;\r\n formData[formConstants.addAddress][formConstants.actionSuccessText] = addAddressActionSuccessText;\r\n\r\n formData[formConstants.updateAddress] = {};\r\n formData[formConstants.updateAddress][formConstants.callBackUrl] = updateAddressCallBackUrl;\r\n formData[formConstants.updateAddress][formConstants.actionSuccessText] = updateAddressActionSuccessText;\r\n\r\n formData[formConstants.cannotRemoveLastAddressMessage] = cannotRemoveLastAddressMessage;\r\n formData[formConstants.cannotRemoveMainAddressMessage] = cannotRemoveMainAddressMessage;\r\n formData[formConstants.cannotRemoveShippingAddressMessage] = cannotRemoveShippingAddressMessage;\r\n formData[formConstants.cannotRemoveBillingAddressMessage] = cannotRemoveBillingAddressMessage;\r\n\r\n formData[formConstants.country] = ssoUserAddressesFields[formConstants.country];\r\n formData[formConstants.country].options = ssoUserDetailsFields[formConstants.country].options;\r\n\r\n formData[formConstants.county] = ssoUserAddressesFields[formConstants.county];\r\n formData[formConstants.county].options = ssoUserDetailsFields[formConstants.county].options;\r\n\r\n formData[formConstants.state] = ssoUserAddressesFields[formConstants.state];\r\n formData[formConstants.state].options = ssoUserDetailsFields[formConstants.state].options;\r\n\r\n formData[formConstants.city] = ssoUserAddressesFields[formConstants.city];\r\n formData[formConstants.addressLine1] = ssoUserAddressesFields[formConstants.addressLine1];\r\n formData[formConstants.addressLine2] = ssoUserAddressesFields[formConstants.addressLine2];\r\n formData[formConstants.addressLine3] = ssoUserDetailsFields[formConstants.addressLine3];\r\n formData[formConstants.postcode] = ssoUserAddressesFields[formConstants.postcode];\r\n\r\n formData[formConstants.mainAddress] = ssoUserAddressesFields[formConstants.mainAddress];\r\n formData[formConstants.shippingAddress] = ssoUserAddressesFields[formConstants.shippingAddress];\r\n formData[formConstants.billingAddress] = ssoUserAddressesFields[formConstants.billingAddress];\r\n\r\n formData[formConstants.removeAddressInputText] = ssoUserAddressesFields[formConstants.removeAddressInputText];\r\n formData[formConstants.removeAddressModalWarning] = ssoUserAddressesFields[formConstants.removeAddressModalWarning];\r\n\r\n return formData;\r\n }\r\n\r\n\r\n return buildUserAddressesDisplayFormData();\r\n};\r\n\r\nexport default UserAddressesDisplayFormData;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\n\r\nclass TicketOwnerDialog extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.displayTicketsDialogForm = this.displayTicketsDialogForm.bind(this);\r\n this.handleSaveAndContinue = this.handleSaveAndContinue.bind(this);\r\n\r\n this.state = { modalFormData: {} };\r\n }\r\n\r\n displayTicketsDialogForm() {\r\n const { formData } = this.props;\r\n const { firstName, lastName } = formData;\r\n const modalFormData = { firstName, lastName };\r\n\r\n return FormBuilder({\r\n formData: modalFormData,\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => {\r\n const eventTarget = event.target;\r\n const fieldName = eventTarget.name;\r\n const fieldData = modalFormData[fieldName];\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(eventTarget, fieldData));\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n handleSaveAndContinue(event) {\r\n event.preventDefault();\r\n const { onSaveAndContinueClick } = this.props;\r\n const { firstName, lastName } = this.state;\r\n onSaveAndContinueClick(firstName, lastName);\r\n }\r\n\r\n render() {\r\n const { formData, handleCloseTicketDialog } = this.props;\r\n const { printTicketDialogText } = formData;\r\n return (\r\n
    \r\n
    \r\n {printTicketDialogText}\r\n
    \r\n {this.displayTicketsDialogForm()}\r\n
    \r\n \r\n \r\n \r\n {formMessageConstants.close}\r\n \r\n {formMessageConstants.saveAndContinue}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nTicketOwnerDialog.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n onSaveAndContinueClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default TicketOwnerDialog;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport TicketOwnerDialog from './TicketOwnerDialog';\r\n\r\nclass TicketsDisplay extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n ticketForPrint: {}\r\n };\r\n\r\n this.getTicketStatusTexts = this.getTicketStatusTexts.bind(this);\r\n this.handlePrintTicket = this.handlePrintTicket.bind(this);\r\n this.handleCloseTicketDialog = this.handleCloseTicketDialog.bind(this);\r\n this.handleSaveAndContinue = this.handleSaveAndContinue.bind(this);\r\n }\r\n\r\n getTicketStatusTexts(ticket) {\r\n const { formData } = this.props;\r\n const {\r\n ticketIsPrintableText,\r\n ticketIsNotPrintableText,\r\n ticketIsAlreadyPrintedText\r\n } = formData;\r\n\r\n if (ticket.isPrintable && ticket.isAlreadyPrinted) {\r\n return ticketIsAlreadyPrintedText;\r\n }\r\n\r\n if (ticket.isPrintable && !ticket.isAlreadyPrinted) {\r\n return ticketIsPrintableText;\r\n }\r\n\r\n return ticketIsNotPrintableText;\r\n }\r\n\r\n handlePrintTicket(event, ticket) {\r\n event.preventDefault();\r\n if (!ticket.isPrintable) {\r\n return;\r\n }\r\n\r\n this.setState((prevState) => {\r\n return {\r\n ...prevState,\r\n ticketForPrint: ticket\r\n };\r\n });\r\n }\r\n\r\n handleCloseTicketDialog(event) {\r\n event.preventDefault();\r\n this.setState((prevState) => {\r\n return {\r\n ...prevState,\r\n ticketForPrint: {}\r\n };\r\n });\r\n }\r\n\r\n handleSaveAndContinue(firstNameValue, lastNameValue) {\r\n const { onSaveAndContinueClick } = this.props;\r\n const { ticketForPrint } = this.state;\r\n onSaveAndContinueClick({ firstNameValue, lastNameValue, ticketForPrint });\r\n }\r\n\r\n render() {\r\n const { tickets, formData } = this.props;\r\n const { ticketForPrint } = this.state;\r\n return tickets.map((ticket, index) => {\r\n const isLast = index === tickets.length - 1;\r\n return \r\n
    \r\n
    \r\n
    Type {ticket.ticketType}
    \r\n
    Ticket number {ticket.ticketId}
    \r\n
    File number {ticket.fileId}
    \r\n {this.getTicketStatusTexts(ticket)}\r\n
    \r\n
    \r\n { this.handlePrintTicket(event, ticket); }}>\r\n
    \r\n
    \r\n {ticketForPrint.ticketId === ticket.ticketId ?\r\n : null}\r\n
    ;\r\n });\r\n }\r\n}\r\n\r\nTicketsDisplay.propTypes = {\r\n tickets: PropTypes.array.isRequired,\r\n onSaveAndContinueClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default TicketsDisplay;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport TicketsDisplay from './TicketsDisplay';\r\nimport { scrollToField } from '../helpers/form-scroll-helper';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nclass TicketGroups extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.formReferences = {};\r\n const { ticketGroups } = props;\r\n\r\n this.formReferences = ticketGroups.reduce((acc, ticketGroup) => {\r\n acc[ticketGroup.productName] = React.createRef();\r\n return acc;\r\n }, {});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { scrollTo } = nextProps;\r\n if (!isEmpty(scrollTo)) {\r\n scrollToField(scrollTo.productName);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const { scrollTo } = this.props;\r\n if (!isEmpty(scrollTo)) {\r\n const scrollToRef = this.formReferences[scrollTo.productName];\r\n scrollToField(scrollToRef);\r\n }\r\n }\r\n\r\n render() {\r\n const { ticketGroups, formData, onSaveAndContinueClick } = this.props;\r\n return ticketGroups.map((ticketGroup, index) => {\r\n const {\r\n ticketEvent,\r\n productName,\r\n quantity,\r\n tickets\r\n } = ticketGroup;\r\n const isLast = index === ticketGroups.length - 1;\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    {`${quantity} ticket(s) available`}
    \r\n \r\n );\r\n });\r\n }\r\n}\r\n\r\n\r\nTicketGroups.propTypes = {\r\n ticketGroups: PropTypes.array.isRequired,\r\n formData: PropTypes.object.isRequired,\r\n scrollTo: PropTypes.object.isRequired,\r\n onSaveAndContinueClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default TicketGroups;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\n\r\nfunction TicketModalBody({\r\n printTicketModalText,\r\n ticketForPrint,\r\n ticketType,\r\n ticketId,\r\n firstName,\r\n firstNameValue,\r\n lastName,\r\n lastNameValue\r\n}) {\r\n return (\r\n
    \r\n

    {printTicketModalText}

    \r\n
    \r\n

    \r\n {formMessageConstants.type}\r\n {ticketForPrint &&\r\n ticketType}\r\n

    \r\n

    \r\n {formMessageConstants.ticketNumber}\r\n {ticketForPrint &&\r\n ticketId}\r\n

    \r\n

    \r\n {firstName}\r\n {firstNameValue}\r\n

    \r\n

    \r\n {lastName}\r\n {lastNameValue}\r\n

    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nTicketModalBody.propTypes = {\r\n printTicketModalText: PropTypes.string,\r\n ticketForPrint: PropTypes.object,\r\n ticketType: PropTypes.string,\r\n ticketId: PropTypes.number,\r\n firstName: PropTypes.string,\r\n firstNameValue: PropTypes.string,\r\n lastName: PropTypes.string,\r\n lastNameValue: PropTypes.string\r\n};\r\n\r\nexport default TicketModalBody;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport './user-tickets.scss';\r\nimport TicketGroups from './TicketGroups';\r\nimport ConfirmationModal from '../../common/utility/ConfirmationModal';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport TicketModalBody from './TicketModalBody';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { isNullOrUndefined } from '../../../../../general/js/general-helpers';\r\n\r\n\r\nclass UserTickets extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = initialState.userTicketsFormState;\r\n\r\n this.loadUserTicketsData = this.loadUserTicketsData.bind(this);\r\n this.reloadUserTicketsData = this.reloadUserTicketsData.bind(this);\r\n this.displayUserTicketsForm = this.displayUserTicketsForm.bind(this);\r\n this.displayAvailableTicketsData = this.displayAvailableTicketsData.bind(this);\r\n this.displayConfirmationModal = this.displayConfirmationModal.bind(this);\r\n this.handleHideOldTicketsChange = this.handleHideOldTicketsChange.bind(this);\r\n this.handleSaveAndContinue = this.handleSaveAndContinue.bind(this);\r\n this.handlePrintTicketClick = this.handlePrintTicketClick.bind(this);\r\n this.toggleConfirmationModal = this.toggleConfirmationModal.bind(this);\r\n this.loadUserTicketsData();\r\n }\r\n\r\n displayUserTicketsForm() {\r\n const {\r\n isPdfFileDownloadedSuccessful,\r\n downloadPdfFileErrorMessages,\r\n hideOldTickets\r\n } = this.props;\r\n return \r\n
    \r\n \r\n

    {formMessageConstants.display}:

    \r\n \r\n
    \r\n {this.displayAvailableTicketsData()}\r\n {this.displayConfirmationModal()}\r\n
    ;\r\n }\r\n\r\n displayAvailableTicketsData() {\r\n const {\r\n formData,\r\n loading,\r\n isUserTicketsDataLoadedSuccessful,\r\n userTicketsData,\r\n upcomingTicket\r\n } = this.props;\r\n const { noTicketsFoundText } = formData;\r\n const shouldDisplayAvailableTickets = isUserTicketsDataLoadedSuccessful && !isEmpty(userTicketsData);\r\n const shouldDisplayNoTicketsFound = !loading &&\r\n !isUserTicketsDataLoadedSuccessful &&\r\n isEmpty(userTicketsData);\r\n\r\n return
    \r\n {shouldDisplayAvailableTickets &&\r\n userTicketsData.map((userTicket, index) => {\r\n const { ticketGroups } = userTicket;\r\n return ;\r\n })}\r\n {shouldDisplayNoTicketsFound &&
    \r\n

    {noTicketsFoundText}

    \r\n
    }\r\n
    ;\r\n }\r\n\r\n displayConfirmationModal() {\r\n const { formData } = this.props;\r\n const { printTicketModalText, printTicketInputText } = formData;\r\n const { isTicketPrintModalOpen, printOptions } = this.state;\r\n return \r\n {!_.isEmpty(printOptions) && \r\n }\r\n ;\r\n }\r\n\r\n handleSaveAndContinue(printOptions) {\r\n const { firstNameValue, lastNameValue } = this.props.formData;\r\n this.setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isTicketPrintModalOpen: true,\r\n printOptions: {\r\n ticketForPrint: printOptions.ticketForPrint,\r\n firstNameValue: printOptions.firstNameValue || firstNameValue,\r\n lastNameValue: printOptions.lastNameValue || lastNameValue\r\n }\r\n };\r\n });\r\n }\r\n\r\n handlePrintTicketClick(event) {\r\n event.preventDefault();\r\n const { actions, formData } = this.props;\r\n const { printOptions } = this.state;\r\n this.setState(formStateHelpers.toggleKey('isTicketPrintModalOpen'),\r\n () => {\r\n actions.downloadTicketPdf(formData.downloadTicketPdfCallbackUrl, printOptions, formData[formConstants.ssoDomain]);\r\n });\r\n }\r\n\r\n toggleConfirmationModal() {\r\n this.setState(formStateHelpers.toggleKey('isTicketPrintModalOpen'));\r\n }\r\n\r\n handleHideOldTicketsChange(event) {\r\n event.preventDefault();\r\n this.setState(formStateHelpers.toggleKey('hideOldTickets'), this.reloadUserTicketsData);\r\n }\r\n\r\n reloadUserTicketsData() {\r\n const { actions, formData } = this.props;\r\n const { hideOldTickets } = this.state;\r\n actions.getUserTickets(formData.getTicketsCallbackUrl, hideOldTickets,\r\n formData[formConstants.ssoDomain]);\r\n }\r\n\r\n loadUserTicketsData() {\r\n const { actions, formData, userTicketsData, hideOldTickets } = this.props;\r\n\r\n if (!isEmpty(userTicketsData)) {\r\n return;\r\n }\r\n\r\n actions.getUserTickets(formData.getTicketsCallbackUrl, hideOldTickets, \r\n formData[formConstants.ssoDomain]);\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n formData\r\n } = this.props;\r\n const { formTitle } = formData;\r\n\r\n return \r\n {loading ? / : null}\r\n

    {formTitle}

    \r\n {this.displayUserTicketsForm()}\r\n
    ;\r\n }\r\n}\r\n\r\nUserTickets.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n formData: PropTypes.object.isRequired,\r\n upcomingTicket: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n hideOldTickets: isNullOrUndefined(state.userAccount.hideOldTickets) ? initialState.userTicketsFormState.hideOldTickets : state.userAccount.hideOldTickets,\r\n userTicketsData: state.userAccount.userTicketsData,\r\n isUserTicketsDataLoadedSuccessful: state.userAccount.isUserTicketsDataLoadedSuccessful,\r\n isPdfFileDownloadedSuccessful: state.userAccount.isPdfFileDownloadedSuccessful,\r\n downloadPdfFileErrorMessages: state.userAccount.downloadPdfFileErrorMessages\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n getUserTickets: bindActionCreators(userAccountActions.getUserTickets, dispatch),\r\n downloadTicketPdf: bindActionCreators(userAccountActions.downloadTicketPdf, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(UserTickets);\r\n","import { formConstants } from '../../../../utils/constants/form-constants';\r\n\r\nconst ChangePasswordFormData = (accountFormData, userAccountData) => {\r\n function buildChangePasswordFormData() {\r\n const { ssoChangePasswordFields } = accountFormData;\r\n const formData = {};\r\n const { formTitle, callBackUrl, actionSuccessText } = ssoChangePasswordFields;\r\n formData[formConstants.formTitle] = formTitle;\r\n formData[formConstants.callBackUrl] = callBackUrl;\r\n formData[formConstants.actionSuccessText] = actionSuccessText;\r\n\r\n formData[formConstants.username] = ssoChangePasswordFields[formConstants.username];\r\n formData[formConstants.username].defaultValue = userAccountData[formConstants.email];\r\n formData[formConstants.oldPassword] = ssoChangePasswordFields[formConstants.oldPassword];\r\n formData[formConstants.password] = ssoChangePasswordFields[formConstants.password];\r\n formData[formConstants.confirmPassword] = ssoChangePasswordFields[formConstants.confirmPassword];\r\n\r\n return formData;\r\n }\r\n\r\n\r\n return buildChangePasswordFormData();\r\n};\r\n\r\nexport default ChangePasswordFormData;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { getMultilineText } from '../../../../../general/js/utils';\r\n\r\nfunction TheOneClubIntro({ text, imageSource, imageText }) {\r\n const texts = getMultilineText(text);\r\n return (\r\n
    \r\n
    \r\n {texts.map((introText) => {\r\n return

    {introText}

    ;\r\n })}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n

    {imageText}

    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nTheOneClubIntro.propTypes = {\r\n text: PropTypes.string.isRequired,\r\n imageSource: PropTypes.string.isRequired,\r\n imageText: PropTypes.string.isRequired\r\n};\r\n\r\nexport default TheOneClubIntro;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\n\r\nfunction TheOneClubMotivation({ title, imageSource, reasons }) {\r\n function displayTheOneClubReasons() {\r\n if (!_.isEmpty(imageSource)) {\r\n return
    \r\n \r\n \r\n
    ;\r\n }\r\n\r\n if (_.isEmpty(reasons)) {\r\n return null;\r\n }\r\n\r\n return reasons.map((reason) => {\r\n return
      \r\n

      {reason.label}

      \r\n
      \r\n
    ;\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n

    {title}

    \r\n {displayTheOneClubReasons()}\r\n
    \r\n );\r\n}\r\n\r\nTheOneClubMotivation.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n imageSource: PropTypes.string.isRequired,\r\n reasons: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default TheOneClubMotivation;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\n\r\nfunction TheOneClubFAQ({ title, questions }) {\r\n function displayQuestions() {\r\n if (isEmpty(questions)) {\r\n return null;\r\n }\r\n\r\n return questions.map((question, index) => {\r\n const checkId = `chk${index}`;\r\n return \r\n \r\n \r\n
    \r\n ;\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n

    {title}

    \r\n
    \r\n {displayQuestions()}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nTheOneClubFAQ.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n questions: PropTypes.array.isRequired\r\n};\r\n\r\nexport default TheOneClubFAQ;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport BulletPointList from '../../common/utility/BulletPointList';\r\nimport { getMultilineText } from '../../../../../general/js/utils';\r\n\r\nfunction LeaveOneClubModalBody({\r\n leaveTheOneClubDialogBoxTitle,\r\n leaveTheOneClubDialogBoxMessage,\r\n leaveOneClubDialogBoxCheckText,\r\n leaveOneClubCheck,\r\n onLeaveOneClubClick\r\n}) {\r\n const leaveTheOneClubDialogBoxMessageSplit = getMultilineText(leaveTheOneClubDialogBoxMessage);\r\n return (\r\n
    \r\n

    {leaveTheOneClubDialogBoxTitle}

    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nLeaveOneClubModalBody.propTypes = {\r\n leaveTheOneClubDialogBoxTitle: PropTypes.string.isRequired,\r\n leaveTheOneClubDialogBoxMessage: PropTypes.string.isRequired,\r\n leaveOneClubDialogBoxCheckText: PropTypes.string.isRequired,\r\n leaveOneClubCheck: PropTypes.bool.isRequired,\r\n onLeaveOneClubClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default LeaveOneClubModalBody;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport TheOneClubIntro from './TheOneClubIntro';\r\nimport TheOneClubMotivation from './TheOneClubMotivation';\r\nimport TheOneClubFAQ from './TheOneClubFAQ';\r\nimport { deepCopyObject } from '../../utils/obj-utils';\r\nimport ConfirmationModal from '../../common/utility/ConfirmationModal';\r\nimport './the-one-club.scss';\r\nimport LeaveOneClubModalBody from './LeaveOneClubModalBody';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\nimport { updateUserDataCookie } from '../../utils/user-data-cookie/user-data-cookie-helpers';\r\n\r\nclass TheOneClub extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { formData, accountData } = props;\r\n const copyOfAccountData = deepCopyObject(accountData);\r\n const copyOfFormData = deepCopyObject(formData);\r\n this.state = {\r\n ...initialState.theOneClubFormState,\r\n formData: copyOfFormData,\r\n becomeOneClubMember: copyOfFormData.becomeOneClubMember.defaultValue,\r\n accountData: copyOfAccountData,\r\n shouldLeaveOneClub: false\r\n };\r\n\r\n this.displayTheOneClubForm = this.displayTheOneClubForm.bind(this);\r\n this.displayConfirmationModal = this.displayConfirmationModal.bind(this);\r\n this.handleUserDetailsUpdateSuccess = this.handleUserDetailsUpdateSuccess.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleJoinNowClick = this.handleJoinNowClick.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.scrollToForm = this.scrollToForm.bind(this);\r\n this.submitUserDetailsData = this.submitUserDetailsData.bind(this);\r\n this.updateFormData = this.updateFormData.bind(this);\r\n this.toggleConfirmationModal = this.toggleConfirmationModal.bind(this);\r\n this.handleApproveLeaveOneClub = this.handleApproveLeaveOneClub.bind(this);\r\n this.handleLeaveOneClubCheck = this.handleLeaveOneClubCheck.bind(this);\r\n\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const { isSaving } = this.state;\r\n const {\r\n loading,\r\n isUserDetailsUpdatedSuccessful,\r\n formData\r\n } = nextProps;\r\n const { hasOneClubAccount } = formData;\r\n\r\n if (isSaving &&\r\n !loading &&\r\n isUserDetailsUpdatedSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserDetailsUpdateSuccess);\r\n }\r\n\r\n if (isSaving &&\r\n !loading &&\r\n !isUserDetailsUpdatedSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false));\r\n }\r\n\r\n if (this.state.formData.hasOneClubAccount !== hasOneClubAccount) {\r\n this.setState((prevState) => ({\r\n formData: {\r\n ...prevState.formData,\r\n hasOneClubAccount\r\n }\r\n }));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.theOneClubFormState);\r\n actions.resetUserDetailsFormState();\r\n }\r\n\r\n componentDidMount() {\r\n const { formData } = this.state;\r\n this.setState(formStateHelpers.updateFormFields(formData));\r\n this.updateFormData();\r\n }\r\n\r\n updateFormData() {\r\n const { accountData } = this.props;\r\n const { becomeOneClubMember, shouldLeaveOneClub } = this.state;\r\n const copyOfFormData = deepCopyObject(this.state.formData);\r\n const { hasTicketingAccount } = copyOfFormData;\r\n const { isOneClubMember } = accountData;\r\n\r\n if (isOneClubMember &&\r\n copyOfFormData[formConstants.becomeOneClubMember].defaultValue === true &&\r\n becomeOneClubMember === false) {\r\n this.setState(formStateHelpers.toggleKey('shouldLeaveOneClub'));\r\n }\r\n\r\n copyOfFormData[formConstants.becomeOneClubMember].defaultValue = becomeOneClubMember;\r\n\r\n if (!hasTicketingAccount) {\r\n copyOfFormData[formConstants.title].isHidden = !becomeOneClubMember;\r\n copyOfFormData[formConstants.dateOfBirth].isHidden = !becomeOneClubMember;\r\n copyOfFormData[formConstants.country].isHidden = !becomeOneClubMember;\r\n copyOfFormData[formConstants.county].isHidden = !becomeOneClubMember;\r\n copyOfFormData[formConstants.state].isHidden = !becomeOneClubMember;\r\n copyOfFormData[formConstants.postcode].isHidden = !becomeOneClubMember;\r\n }\r\n\r\n copyOfFormData[formConstants.venues].isHidden = !becomeOneClubMember;\r\n copyOfFormData[formConstants.oneClubTermsAndServices].isHidden = !becomeOneClubMember;\r\n\r\n this.setState(formStateHelpers.updateFormData(copyOfFormData), () => {\r\n if (shouldLeaveOneClub) {\r\n this.setState(formStateHelpers.toggleKey('shouldLeaveOneClub'));\r\n }\r\n });\r\n }\r\n\r\n handleUserDetailsUpdateSuccess() {\r\n const {\r\n refreshAccountPage,\r\n actions,\r\n formData,\r\n accountData,\r\n userAddedToAddressBookSuccessful,\r\n saveUserToAddressBookErrorMessages\r\n } = this.props;\r\n const { becomeOneClubMember } = this.state;\r\n const { isOneClubMember } = hasValue(accountData) ? accountData : { isOneClubMember: false };\r\n\r\n if (!userAddedToAddressBookSuccessful && !hasValue(saveUserToAddressBookErrorMessages) && !isOneClubMember && becomeOneClubMember) {\r\n actions.saveUserToAddressBook(formData, accountData);\r\n }\r\n\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n\r\n updateUserDataCookie(true, true);\r\n this.updateFormData();\r\n refreshAccountPage(false);\r\n }\r\n\r\n handleJoinNowClick(event) {\r\n event.preventDefault();\r\n this.scrollToForm();\r\n\r\n const { becomeOneClubMember } = this.state;\r\n if (becomeOneClubMember) {\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.toggleKey(formConstants.becomeOneClubMember), this.updateFormData);\r\n }\r\n\r\n scrollToForm() {\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.becomeOneClubMember]);\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.state;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitUserDetailsData);\r\n }\r\n\r\n submitUserDetailsData() {\r\n const { actions, accountData } = this.props;\r\n const { isOneClubMember } = accountData;\r\n const { formData, becomeOneClubMember } = this.state;\r\n const {\r\n callBackUrl,\r\n joinTheOneClubActionSuccessText,\r\n leaveTheOneClubActionSuccessText,\r\n updateDetailsActionSuccessText\r\n } = formData;\r\n\r\n let formattedActionSuccessText = isOneClubMember ?\r\n updateDetailsActionSuccessText :\r\n joinTheOneClubActionSuccessText || formMessageConstants.updateUserDetailsSuccessText;\r\n\r\n if (!becomeOneClubMember) {\r\n formattedActionSuccessText = leaveTheOneClubActionSuccessText || formMessageConstants.updateUserDetailsSuccessText;\r\n }\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.title]);\r\n\r\n this.setState(formStateHelpers.updateOneClubTermsAndConditions(becomeOneClubMember),\r\n () => {\r\n actions.joinTheOneClub({\r\n userDetails: this.state,\r\n accountData,\r\n actionSuccessText: formattedActionSuccessText,\r\n callBackUrl\r\n });\r\n this.updateFormData();\r\n });\r\n }\r\n\r\n displayConfirmationModal() {\r\n const {\r\n shouldLeaveOneClub,\r\n formData,\r\n leaveOneClubCheck\r\n } = this.state;\r\n const {\r\n leaveTheOneClubDialogBoxTitle,\r\n leaveTheOneClubDialogBoxMessage,\r\n leaveTheOneClubDialogBoxAgreeButton,\r\n leaveOneClubDialogBoxCheckText\r\n } = formData;\r\n\r\n return \r\n \r\n \r\n ;\r\n }\r\n\r\n toggleConfirmationModal() {\r\n const { leaveOneClubCheck } = this.state;\r\n if (leaveOneClubCheck) {\r\n this.setState(formStateHelpers.toggleKey('leaveOneClubCheck'));\r\n }\r\n\r\n this.setState(formStateHelpers.toggleKey('shouldLeaveOneClub'));\r\n this.setState(formStateHelpers.toggleKey('becomeOneClubMember'), this.updateFormData);\r\n }\r\n\r\n handleApproveLeaveOneClub(event) {\r\n event.preventDefault();\r\n const { leaveOneClubCheck } = this.state;\r\n if (!leaveOneClubCheck) {\r\n return;\r\n }\r\n this.setState(formStateHelpers.toggleKey('leaveOneClubCheck'));\r\n this.setState(formStateHelpers.toggleKey('shouldLeaveOneClub'), this.handleValidationResult);\r\n document.getElementById('overlay').classList.remove('is-visible');\r\n document.documentElement.classList.remove('is-blocked');\r\n }\r\n\r\n handleLeaveOneClubCheck() {\r\n this.setState(formStateHelpers.toggleKey('leaveOneClubCheck'));\r\n }\r\n\r\n displayTheOneClubForm() {\r\n const { formData, availableCounties, availableStates } = this.state;\r\n const { county, state } = formData;\r\n const { hasOneClubAccount, joinTheOneClubInputLabelText } = formData;\r\n const copyOfFormData = deepCopyObject(formData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n\r\n copyOfFormData[formConstants.becomeOneClubMember].label = hasOneClubAccount ?\r\n joinTheOneClubInputLabelText :\r\n this.state.formData[formConstants.becomeOneClubMember].label;\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences,\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => {\r\n const eventTarget = event.target;\r\n const fieldName = eventTarget.name;\r\n const fieldData = formData[fieldName];\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(eventTarget, fieldData), this.updateFormData);\r\n },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event)); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state));\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n loading,\r\n updateUserDetailsMessages,\r\n isUserDetailsUpdatedSuccessful,\r\n accountData\r\n } = this.props;\r\n const { isOneClubMember } = accountData;\r\n const { formData } = this.state;\r\n const {\r\n formTitle,\r\n introText,\r\n theOneClubImageSource,\r\n theOneClubImageText,\r\n theOneClubMotivationTitle,\r\n theOneClubMotivationImageSource,\r\n theOneClubReasons,\r\n theOneClubFAQTitle,\r\n theOneClubFAQs\r\n } = formData;\r\n const { isSaving, becomeOneClubMember } = this.state;\r\n\r\n return (\r\n \r\n

    {formTitle}

    \r\n
    \r\n {isSaving || loading ? / : null}\r\n \r\n
    \r\n
    \r\n \r\n {this.displayTheOneClubForm()}\r\n {this.displayConfirmationModal()}\r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nTheOneClub.propTypes = {\r\n formData: PropTypes.object.isRequired,\r\n accountData: PropTypes.object.isRequired,\r\n refreshAccountPage: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isUserDetailsUpdatedSuccessful: state.userAccount.isUserDetailsUpdatedSuccessful,\r\n updateUserDetailsMessages: state.userAccount.updateUserDetailsMessages,\r\n userAddedToAddressBookSuccessful: state.userAccount.userAddedToAddressBookSuccessful,\r\n saveUserToAddressBookErrorMessages: state.userAccount.saveUserToAddressBookErrorMessages\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n joinTheOneClub: bindActionCreators(userAccountActions.joinTheOneClub, dispatch),\r\n resetUserDetailsFormState: bindActionCreators(userAccountActions.resetUserDetailsFormState, dispatch),\r\n saveUserToAddressBook: bindActionCreators(userAccountActions.saveUserToAddressBook, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(TheOneClub);\r\n","import { formConstants } from '../../../../utils/constants/form-constants';\r\nimport { getFileStates, getPaymentStatuses, getOrderTypes } from './account-form-data-utils';\r\nimport { formMessageConstants } from '../../../../utils/constants/form-message-constants';\r\n\r\n\r\nconst OrderHistoryDisplayFormData = (accountFormData) => {\r\n function buildOrderHistoryFormData() {\r\n const {\r\n getOrderHistoryCallbackUrl,\r\n getOrderHistoryPagesCallbackUrl,\r\n getOrderDetailsCallbackUrl,\r\n downloadDocumentPdfCallbackUrl,\r\n downloadFileSummaryPdfCallbackUrl,\r\n ssoOrderHistoryFields,\r\n ssoUserDetailsFields,\r\n ssoDomain,\r\n resumePaymentCallbackUrl,\r\n secutixAuthUrl,\r\n } = accountFormData;\r\n const formData = {};\r\n const {\r\n formTitle,\r\n noOrdersFoundText,\r\n noProductsFoundText,\r\n noPaymentSummaryFoundText,\r\n noDeliveryDataFoundText,\r\n noHistoryDataFoundText,\r\n mastercardDialogBox,\r\n mastercardDialogBoxBanner,\r\n showDialogBox,\r\n showCancelButton\r\n } = ssoOrderHistoryFields;\r\n\r\n const { country } = ssoUserDetailsFields;\r\n\r\n formData[formConstants.getOrderHistoryCallbackUrl] = getOrderHistoryCallbackUrl;\r\n formData[formConstants.getOrderHistoryPagesCallbackUrl] = getOrderHistoryPagesCallbackUrl;\r\n formData[formConstants.getOrderDetailsCallbackUrl] = getOrderDetailsCallbackUrl;\r\n formData[formConstants.downloadDocumentPdfCallbackUrl] = downloadDocumentPdfCallbackUrl;\r\n formData[formConstants.downloadFileSummaryPdfCallbackUrl] = downloadFileSummaryPdfCallbackUrl;\r\n formData[formConstants.resumePaymentCallbackUrl] = resumePaymentCallbackUrl;\r\n formData[formConstants.secutixAuthUrl] = secutixAuthUrl;\r\n formData[formConstants.formTitle] = formTitle;\r\n formData[formConstants.noOrdersFoundText] = noOrdersFoundText || formMessageConstants.noOrdersFoundText;\r\n formData[formConstants.noProductsFoundText] = noProductsFoundText || formMessageConstants.noProductsFoundText;\r\n formData[formConstants.noPaymentSummaryFoundText] = noPaymentSummaryFoundText || formMessageConstants.noPaymentSummaryFoundText;\r\n formData[formConstants.noDeliveryDataFoundText] = noDeliveryDataFoundText || formMessageConstants.noDeliveryDataFoundText;\r\n formData[formConstants.noHistoryDataFoundText] = noHistoryDataFoundText || formMessageConstants.noHistoryDataFoundText;\r\n formData[formConstants.masterCardDialogBox] = mastercardDialogBox;\r\n formData[formConstants.masterCardDialogBoxBanner] = mastercardDialogBoxBanner;\r\n formData[formConstants.showDialogBox] = showDialogBox;\r\n formData[formConstants.showCancelButton] = showCancelButton;\r\n\r\n formData[formConstants.fileState] = getFileStates(ssoOrderHistoryFields);\r\n formData[formConstants.paymentStatus] = getPaymentStatuses(ssoOrderHistoryFields);\r\n formData[formConstants.orderType] = getOrderTypes(ssoOrderHistoryFields);\r\n\r\n formData[formConstants.country] = country;\r\n formData[formConstants.ssoDomain] = ssoDomain;\r\n\r\n return formData;\r\n }\r\n\r\n return buildOrderHistoryFormData();\r\n};\r\n\r\nexport default OrderHistoryDisplayFormData;\r\n","import { formConstants } from '../../../../utils/constants/form-constants';\r\n\r\nconst UserTicketsDisplayFormData = (accountFormData, userAccountData) => {\r\n function buildUserTicketsFormData() {\r\n const {\r\n getTicketsCallbackUrl,\r\n downloadTicketPdfCallbackUrl,\r\n ssoUserTicketsFields,\r\n ssoDomain\r\n } = accountFormData;\r\n\r\n const {\r\n formTitle,\r\n noTicketsFoundText,\r\n printTicketModalText,\r\n printTicketDialogText,\r\n printTicketInputText,\r\n ticketIsPrintableText,\r\n ticketIsNotPrintableText,\r\n ticketIsAlreadyPrintedText,\r\n firstName,\r\n lastName,\r\n } = ssoUserTicketsFields;\r\n\r\n const formData = {};\r\n\r\n formData[formConstants.getTicketsCallbackUrl] = getTicketsCallbackUrl;\r\n formData[formConstants.downloadTicketPdfCallbackUrl] = downloadTicketPdfCallbackUrl;\r\n formData[formConstants.formTitle] = formTitle;\r\n formData.firstNameValue = userAccountData.firstName;\r\n formData.lastNameValue = userAccountData.lastName;\r\n formData[formConstants.noTicketsFoundText] = noTicketsFoundText;\r\n formData[formConstants.printTicketModalText] = printTicketModalText;\r\n formData[formConstants.printTicketDialogText] = printTicketDialogText;\r\n formData[formConstants.printTicketInputText] = printTicketInputText;\r\n formData[formConstants.ticketIsPrintableText] = ticketIsPrintableText;\r\n formData[formConstants.ticketIsNotPrintableText] = ticketIsNotPrintableText;\r\n formData[formConstants.ticketIsAlreadyPrintedText] = ticketIsAlreadyPrintedText;\r\n formData[formConstants.firstName] = firstName;\r\n formData[formConstants.lastName] = lastName;\r\n formData[formConstants.ssoDomain] = ssoDomain;\r\n\r\n return formData;\r\n }\r\n\r\n return buildUserTicketsFormData();\r\n};\r\n\r\nexport default UserTicketsDisplayFormData;\r\n","import { formConstants } from '../../../../utils/constants/form-constants';\r\nimport { isEmpty } from '../../../../utils/obj-utils';\r\nimport { formMessageConstants } from '../../../../utils/constants/form-message-constants';\r\nimport { createDateFromExisting } from '../../../../utils/date-utils';\r\nimport { MembershipTypes } from '../../../../../../../general/js/utils';\r\nimport userService from '../../../../../../../general/js/user/user-service';\r\n\r\nconst TheOneClubFormData = (accountFormData, userAccountData) => {\r\n function buildTheOneClubFormData() {\r\n const {\r\n ssoUserDetailsFields,\r\n ssoTheOneClubFields,\r\n updateUserDetailsCallbackUrl,\r\n } = accountFormData;\r\n\r\n const {\r\n formTitle,\r\n introText,\r\n joinTheOneClubActionSuccessText,\r\n leaveTheOneClubActionSuccessText,\r\n updateDetailsActionSuccessText,\r\n theOneClubImageSource,\r\n theOneClubImageText,\r\n theOneClubVideoText,\r\n theOneClubVideoWebmSource,\r\n theOneClubThumbnailSource,\r\n theOneClubVideoSource,\r\n theOneClubMotivationTitle,\r\n theOneClubMotivationImageSource,\r\n theOneClubReasons,\r\n theOneClubFAQTitle,\r\n theOneClubFAQs,\r\n oneClubTermsAndServices,\r\n leaveTheOneClubDialogBoxTitle,\r\n leaveTheOneClubDialogBoxMessage,\r\n leaveTheOneClubDialogBoxAgreeButton,\r\n leaveOneClubDialogBoxCheckText,\r\n dotDigitalAddressBookData,\r\n saveUserToDotDigitalCallbackUrl\r\n } = ssoTheOneClubFields;\r\n\r\n const formData = {};\r\n\r\n formData[formConstants.formTitle] = formTitle;\r\n formData[formConstants.introText] = introText;\r\n formData[formConstants.callBackUrl] = updateUserDetailsCallbackUrl;\r\n formData[formConstants.joinTheOneClubActionSuccessText] = joinTheOneClubActionSuccessText;\r\n formData[formConstants.leaveTheOneClubActionSuccessText] = leaveTheOneClubActionSuccessText;\r\n formData[formConstants.updateDetailsActionSuccessText] = updateDetailsActionSuccessText;\r\n formData[formConstants.theOneClubImageSource] = theOneClubImageSource;\r\n formData[formConstants.theOneClubImageText] = theOneClubImageText;\r\n formData[formConstants.theOneClubVideoText] = theOneClubVideoText;\r\n formData[formConstants.theOneClubThumbnailSource] = theOneClubThumbnailSource;\r\n formData[formConstants.theOneClubVideoWebmSource] = theOneClubVideoWebmSource;\r\n formData[formConstants.theOneClubVideoSource] = theOneClubVideoSource;\r\n formData[formConstants.theOneClubMotivationTitle] = theOneClubMotivationTitle;\r\n formData[formConstants.theOneClubMotivationImageSource] = theOneClubMotivationImageSource;\r\n formData[formConstants.theOneClubReasons] = theOneClubReasons;\r\n formData[formConstants.theOneClubFAQTitle] = theOneClubFAQTitle;\r\n formData[formConstants.theOneClubFAQs] = theOneClubFAQs;\r\n formData[formConstants.leaveTheOneClubDialogBoxAgreeButton] = leaveTheOneClubDialogBoxAgreeButton;\r\n formData[formConstants.leaveOneClubDialogBoxCheckText] = leaveOneClubDialogBoxCheckText;\r\n formData[formConstants.leaveTheOneClubDialogBoxMessage] = leaveTheOneClubDialogBoxMessage;\r\n formData[formConstants.leaveTheOneClubDialogBoxTitle] = leaveTheOneClubDialogBoxTitle;\r\n formData[formConstants.dotDigitalAddressBookData] = dotDigitalAddressBookData;\r\n formData[formConstants.saveUserToDotDigitalCallbackUrl] = saveUserToDotDigitalCallbackUrl;\r\n\r\n formData[formConstants.becomeOneClubMember] = ssoUserDetailsFields[formConstants.becomeOneClubMember];\r\n formData[formConstants.joinTheOneClubInputLabelText] = ssoUserDetailsFields[formConstants.joinTheOneClubInputLabelText];\r\n formData[formConstants.title] = ssoUserDetailsFields[formConstants.title];\r\n formData[formConstants.dateOfBirth] = ssoUserDetailsFields[formConstants.dateOfBirth];\r\n formData[formConstants.country] = ssoUserDetailsFields[formConstants.country];\r\n formData[formConstants.county] = ssoUserDetailsFields[formConstants.county];\r\n formData[formConstants.state] = ssoUserDetailsFields[formConstants.state];\r\n formData[formConstants.postcode] = ssoUserDetailsFields[formConstants.postcode];\r\n formData[formConstants.favoritePlayer] = ssoUserDetailsFields[formConstants.favoritePlayer];\r\n formData[formConstants.venues] = ssoUserDetailsFields[formConstants.venues];\r\n formData[formConstants.oneClubTermsAndServices] = oneClubTermsAndServices;\r\n\r\n return getFieldsWithDefaultValues(formData);\r\n }\r\n\r\n function getFieldsWithDefaultValues(formData) {\r\n const { membership } = userAccountData;\r\n const hasTicketingAccount = userService.hasTicketingAccount(userAccountData);\r\n const hasOneClubAccount = membership.includes(MembershipTypes.OneClub);\r\n formData[formConstants.becomeOneClubMember].defaultValue = hasOneClubAccount;\r\n formData[formConstants.becomeOneClubMember].fieldHeaderTitle = formMessageConstants.emptyString;\r\n formData[formConstants.becomeOneClubMember].fieldHeaderText = formMessageConstants.emptyString;\r\n formData[formConstants.hasTicketingAccount] = hasTicketingAccount;\r\n formData[formConstants.hasOneClubAccount] = hasOneClubAccount;\r\n formData[formConstants.membership] = membership;\r\n formData[formConstants.activeMemberships] = membership.split(';');\r\n\r\n formData[formConstants.title].defaultValue = userAccountData[formConstants.title];\r\n formData[formConstants.title].fieldHeaderTitle = formMessageConstants.emptyString;\r\n formData[formConstants.title].isHidden = hasTicketingAccount;\r\n if (userAccountData.dateOfBirth !== undefined) {\r\n formData[formConstants.dateOfBirth].defaultValue = createDateFromExisting(userAccountData.dateOfBirth);\r\n formData[formConstants.dateOfBirth].isHidden = hasTicketingAccount;\r\n }\r\n\r\n let mainAddress = {};\r\n if (!isEmpty(userAccountData.addresses)) {\r\n const foundAddress = userAccountData.addresses.find((address) => address.main);\r\n mainAddress = isEmpty(foundAddress) ? {} : foundAddress;\r\n }\r\n\r\n formData[formConstants.country].defaultValue = mainAddress.country;\r\n formData[formConstants.country].isHidden = hasTicketingAccount;\r\n\r\n formData[formConstants.county].defaultValue = mainAddress.county;\r\n formData[formConstants.county].isHidden = hasTicketingAccount;\r\n\r\n formData[formConstants.state].defaultValue = mainAddress.state;\r\n formData[formConstants.state].isHidden = hasTicketingAccount;\r\n\r\n formData[formConstants.postcode].defaultValue = mainAddress.postcode;\r\n formData[formConstants.postcode].isHidden = hasTicketingAccount;\r\n\r\n const interests = userAccountData[formConstants.interests];\r\n formData[formConstants.favoritePlayer].defaultValue = interests.favoritePlayer;\r\n formData[formConstants.venues].defaultValue = interests.venues;\r\n\r\n const optIns = userAccountData[formConstants.optIns];\r\n\r\n formData[formConstants.privacyPolicy] = optIns.agreedToPrivacyPolicy;\r\n formData[formConstants.oneClubTermsAndServices].defaultValue = optIns.agreedToTermsAndConditions;\r\n\r\n return formData;\r\n }\r\n\r\n return buildTheOneClubFormData();\r\n};\r\n\r\nexport default TheOneClubFormData;\r\n","import { formConstants } from '../../../../utils/constants/form-constants';\r\n\r\nconst TicketsResaleFormData = ({\r\n ssoAccountResaleTicketsFields\r\n}) => {\r\n function buildTicketsResaleFormData() {\r\n const formData = {};\r\n const {\r\n resaleTicketsTitle, displayResaleCriteria, resaleTicketsInformationOpen, buyLink, sellLink,\r\n sellButtonCriteria, buyButtonCriteria, secutixResaleUrl, secutixPointOfSaleId, secutixVirtualOperator,\r\n resaleTicketsImageSource, resaleTicketsImageText, resaleTicketsFAQTitle, resaleTicketsFAQs, resaleTicketsIntro\r\n } = ssoAccountResaleTicketsFields;\r\n formData[formConstants.resaleTicketsTitle] = resaleTicketsTitle;\r\n formData[formConstants.displayResaleCriteria] = displayResaleCriteria;\r\n formData[formConstants.resaleTicketsInformationOpen] = resaleTicketsInformationOpen;\r\n formData[formConstants.buyLink] = buyLink;\r\n formData[formConstants.sellLink] = sellLink;\r\n formData[formConstants.sellButtonCriteria] = sellButtonCriteria;\r\n formData[formConstants.buyButtonCriteria] = buyButtonCriteria;\r\n formData[formConstants.secutixResaleUrl] = secutixResaleUrl;\r\n formData[formConstants.secutixPointOfSaleId] = secutixPointOfSaleId;\r\n formData[formConstants.secutixVirtualOperator] = secutixVirtualOperator;\r\n formData[formConstants.resaleTicketsImageSource] = resaleTicketsImageSource;\r\n formData[formConstants.resaleTicketsImageText] = resaleTicketsImageText;\r\n formData[formConstants.resaleTicketsFAQTitle] = resaleTicketsFAQTitle;\r\n formData[formConstants.resaleTicketsFAQs] = resaleTicketsFAQs;\r\n formData[formConstants.resaleTicketsIntro] = resaleTicketsIntro;\r\n\r\n return formData;\r\n }\r\n\r\n\r\n return buildTicketsResaleFormData();\r\n};\r\n\r\nexport default TicketsResaleFormData;\r\n","import { formConstants } from '../../../../utils/constants/form-constants';\r\n\r\nconst EmailNotificationSettingsFormData = (accountFormData, userAccountData) => {\r\n function buildEmailNotificationSettingsFormData() {\r\n const {\r\n ssoEmailNotificationSettingsFields,\r\n updateNotificationSettingsDataCallbackUrl\r\n } = accountFormData;\r\n\r\n const {\r\n formTitle,\r\n description,\r\n updatedNotificationSuccessMessage,\r\n championshipSection,\r\n channelsSection,\r\n interestsSection\r\n } = ssoEmailNotificationSettingsFields;\r\n\r\n const formData = {};\r\n\r\n formData[formConstants.formTitle] = formTitle;\r\n formData[formConstants.formSubTitle] = description;\r\n formData[formConstants.updatedNotificationSuccessMessage] = updatedNotificationSuccessMessage;\r\n formData[formConstants.callBackUrl] = updateNotificationSettingsDataCallbackUrl;\r\n formData[formConstants.championshipSection] = championshipSection;\r\n formData[formConstants.channelSection] = channelsSection;\r\n formData[formConstants.interestSection] = interestsSection;\r\n\r\n return formData;\r\n }\r\n\r\n return buildEmailNotificationSettingsFormData();\r\n};\r\n\r\nexport default EmailNotificationSettingsFormData;\r\n","import React from 'react';\r\nimport ChangePasswordForm from '../forms/change-password/ChangePasswordForm';\r\nimport UserDetailsForm from '../forms/user-details/UserDetailsForm';\r\nimport AccountHomePage from '../forms/account-home-page/AccountHomePage';\r\nimport UserAddressesForm from '../forms/user-addresses/UserAddressesForm';\r\nimport EmailNotificationSettingsForm from '../forms/email-notification-settings/EmailNotificationSettingsForm';\r\nimport PushNotificationsForm from '../forms/push-notifications/PushNotificationsForm';\r\nimport ResaleTickets from '../forms/resale-tickets/ResaleTickets';\r\nimport UserOrderHistory from '../forms/user-order-history/UserOrderHistory';\r\nimport UserDetailsFormData from '../forms/helpers/form-helpers/user-account/user-details-form-data';\r\nimport AccountHomePageFormData from '../forms/helpers/form-helpers/user-account/account-home-page-form-data';\r\nimport { findOptionInSelectField } from '../forms/helpers/form-helpers/form-field-helpers';\r\nimport UserAddressesDisplayFormData from '../forms/helpers/form-helpers/user-account/user-addresses-display-form-data';\r\nimport UserTickets from '../forms/user-tickets/UserTickets';\r\nimport ChangePasswordFormData from '../forms/helpers/form-helpers/user-account/change-password-form-data';\r\nimport { formConstants } from './constants/form-constants';\r\nimport { formMessageConstants } from './constants/form-message-constants';\r\nimport { isEmpty } from './obj-utils';\r\nimport TheOneClub from '../forms/the-one-club/TheOneClub';\r\nimport OrderHistoryDisplayFormData from '../forms/helpers/form-helpers/user-account/order-history-display-form-data';\r\nimport UserTicketsDisplayFormData from '../forms/helpers/form-helpers/user-account/user-tickets-display-form-data';\r\nimport TheOneClubFormData from '../forms/helpers/form-helpers/user-account/the-one-club-form-data';\r\nimport TicketsResaleFormData from '../forms/helpers/form-helpers/user-account/tickets-resale-form-data';\r\nimport EmailNotificationSettingsFormData from '../forms/helpers/form-helpers/user-account/email-notification-settings-form-data';\r\nimport { createDateFromExisting } from './date-utils';\r\nimport { formFieldConstants } from './constants/form-field-constants';\r\n\r\nexport const userAccountConstants = {\r\n oneClub: 'OneClub',\r\n\r\n address: 'address',\r\n birthdate: 'birthdate',\r\n\r\n customInterests: 'custom:Interests',\r\n customMembership: 'custom:Membership',\r\n membership: 'membership',\r\n\r\n isOneClubMember: 'isOneClubMember',\r\n customOptIns: 'custom: OptIns',\r\n customTitle: 'custom: Title',\r\n\r\n email: 'email',\r\n emailVerified: 'email_verified',\r\n familyName: 'family_name',\r\n givenName: 'given_name',\r\n initials: 'initials',\r\n\r\n name: 'name',\r\n sub: 'sub',\r\n\r\n somethingWentWrong: 'Something went wrong.'\r\n};\r\n\r\nexport const userAccountContentConstants = {\r\n accountHomePage: 'accountHomePage',\r\n userDetailsForm: 'userDetailsForm',\r\n changePasswordForm: 'changePasswordForm',\r\n userAddressesForm: 'userAddressesForm',\r\n emailNotificationSettings: 'emailNotificationSettings',\r\n pushNotifications: 'pushNotifications',\r\n userOrderHistory: 'userOrderHistory',\r\n userTickets: 'userTickets',\r\n theOneClub: 'theOneClub',\r\n resaleTickets: 'resaleTickets'\r\n};\r\n\r\nexport const userAccountMenuConstants =\r\n [{\r\n id: 'abad0895',\r\n title: 'Account settings',\r\n children: [\r\n { id: 'j785', title: 'Home', form: userAccountContentConstants.accountHomePage },\r\n { id: 'c156', title: 'My details', form: userAccountContentConstants.userDetailsForm },\r\n { id: '4088', title: 'Change password', form: userAccountContentConstants.changePasswordForm },\r\n { id: '9b16', title: 'My addresses', form: userAccountContentConstants.userAddressesForm },\r\n ]\r\n },\r\n // {\r\n // id: 'dd8940a9',\r\n // title: 'Preference centre',\r\n // children: [\r\n // { id: 'bbc7', title: 'Preference Centre', form: userAccountContentConstants.emailNotificationSettings },\r\n // ]\r\n // },\r\n // {\r\n // id: '690e99e0',\r\n // title: '',\r\n // children: [\r\n // {\r\n // id: 'a377',\r\n // title: 'The One Club',\r\n // form: userAccountContentConstants.theOneClub,\r\n // tag: Member\r\n // },\r\n // ]\r\n // },\r\n {\r\n id: '783d88f1',\r\n title: '',\r\n children: [\r\n {\r\n id: 'bf3d',\r\n title: 'Ticket Resale Platform',\r\n form: userAccountContentConstants.resaleTickets,\r\n },\r\n ]\r\n },\r\n {\r\n id: '7820a8a5',\r\n title: 'My purchases',\r\n children: [\r\n { id: 'c550', title: 'Tickets', form: userAccountContentConstants.userTickets },\r\n { id: '413b', title: 'View order history', form: userAccountContentConstants.userOrderHistory },\r\n ]\r\n }];\r\n\r\nexport const userAccountFormConstants = {\r\n\r\n /* eslint-disable */\r\n accountHomePage: ({\r\n accountFormData,\r\n userAccountData,\r\n refreshAccountPage,\r\n handleViewFileSummaryClick,\r\n handleViewTicketsClick\r\n }) => {\r\n let formData = new AccountHomePageFormData(accountFormData, userAccountData);\r\n return \r\n },\r\n userDetailsForm: ({ accountFormData, userAccountData, refreshAccountPage }) => {\r\n let formData = new UserDetailsFormData(accountFormData, userAccountData);\r\n return \r\n },\r\n changePasswordForm: ({ accountFormData, userAccountData }) => {\r\n let formData = new ChangePasswordFormData(accountFormData, userAccountData)\r\n return \r\n },\r\n userAddressesForm: ({ accountFormData, userAccountData, refreshAccountPage }) => {\r\n let formData = new UserAddressesDisplayFormData(accountFormData, userAccountData);\r\n const { country, state } = accountFormData.ssoUserDetailsFields;\r\n\r\n userAccountData[formConstants.emailAddress] = userAccountData[formConstants.email];\r\n\r\n if (userAccountData[formConstants.dateOfBirth] !== undefined) {\r\n userAccountData[formConstants.dateOfBirth] = createDateFromExisting(userAccountData.dateOfBirth);\r\n }\r\n\r\n if (!isEmpty(userAccountData[formConstants.addresses])) {\r\n userAccountData[formConstants.addresses] = userAccountData[formConstants.addresses].map((address) => {\r\n\r\n address[formConstants.addressLine1] = address[formConstants.addressLine1] || formMessageConstants.emptyString;\r\n address[formConstants.addressLine2] = address[formConstants.addressLine2] || formMessageConstants.emptyString;\r\n address[formConstants.addressLine3] = address[formConstants.addressLine3] || formMessageConstants.emptyString;\r\n address[formConstants.postcode] = address[formConstants.postcode] || formMessageConstants.emptyString;\r\n address[formConstants.city] = address[formConstants.city] || formMessageConstants.emptyString;\r\n\r\n const selectedCountry = getCountry(address.country, country.options);\r\n address[formConstants.countryName] = selectedCountry.label;\r\n\r\n address[formConstants.county] = address[formConstants.county] || formMessageConstants.emptyString;\r\n address[formConstants.state] = address[formConstants.state] || formMessageConstants.emptyString;\r\n\r\n const selectedStateName = findOptionInSelectField(state, address[formConstants.state], formFieldConstants.selectFieldOptionsLabel);\r\n address[formConstants.stateName] = selectedStateName;\r\n\r\n return address;\r\n });\r\n }\r\n\r\n return \r\n },\r\n theOneClub: ({ accountFormData, userAccountData, refreshAccountPage }) => {\r\n let formData = new TheOneClubFormData(accountFormData, userAccountData);\r\n return \r\n },\r\n resaleTickets: ({ accountFormData, userAccountData }) => {\r\n let formData = new TicketsResaleFormData(accountFormData);\r\n return \r\n },\r\n emailNotificationSettings: ({ accountFormData, userAccountData, refreshAccountPage }) => {\r\n let formData = new EmailNotificationSettingsFormData(accountFormData, userAccountData);\r\n return \r\n },\r\n pushNotifications: ({ accountFormData, userAccountData }) => {\r\n return \r\n },\r\n userOrderHistory: ({ accountFormData, userAccountData, fileNumberForDisplay }) => {\r\n let formData = new OrderHistoryDisplayFormData(accountFormData);\r\n return \r\n },\r\n userTickets: ({ accountFormData, userAccountData, upcomingTicket }) => {\r\n let formData = new UserTicketsDisplayFormData(accountFormData, userAccountData);\r\n return \r\n }\r\n /* eslint-enable */\r\n};\r\n\r\nfunction getCountry(country, options) {\r\n const value = options.find((x) => x.code === country);\r\n\r\n if (value == null) { return options[0]; }\r\n\r\n return value;\r\n}\r\n","/* eslint-disable react/jsx-no-target-blank */\r\nimport React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { userAccountMenuConstants, userAccountContentConstants } from '../utils/user-account-constants';\r\nimport { isEmpty } from '../utils/obj-utils';\r\nimport { domainConstants } from '../utils/constants/domain-constants';\r\nimport { shouldDisplayResaleButton } from '../forms/resale-tickets/resale-tickets-helpers';\r\n\r\nfunction AccountMenuLinks({\r\n userAccountData,\r\n accountFormData,\r\n ssoDomain,\r\n displayResaleTicketsMenuItem,\r\n componentToRender,\r\n handleChangeAccountDetailsContent\r\n}) {\r\n const isWomensOpen = ssoDomain === domainConstants.womensOpen; \r\n\r\n function displayAccountMenu() {\r\n const accountMenu = userAccountMenuConstants.map((menuItem) => {\r\n const theOneClubChildItem = menuItem.children.find((x) => x.form.includes(userAccountContentConstants.theOneClub));\r\n const resaleTicketsChildItem = menuItem.children.find((x) => x.form.includes(userAccountContentConstants.resaleTickets));\r\n if (!_.isEmpty(theOneClubChildItem) && isWomensOpen) {\r\n return null;\r\n }\r\n\r\n if (!_.isEmpty(resaleTicketsChildItem) && !displayResaleTicketsMenuItem) {\r\n return null;\r\n }\r\n if (!_.isEmpty(resaleTicketsChildItem)) {\r\n const isUserMatchCriteria = doesUserMatchCriteria();\r\n if (!isUserMatchCriteria) {\r\n return null;\r\n }\r\n }\r\n\r\n\r\n return (
      \r\n
    • {menuItem.title}
    • \r\n {displayMenuChildren(menuItem)}\r\n
    );\r\n });\r\n\r\n return
    {accountMenu}
    ;\r\n }\r\n\r\n function doesUserMatchCriteria() {\r\n const { ballotCriteria } = userAccountData;\r\n const { membership } = userAccountData;\r\n\r\n const { displayResaleCriteria } = accountFormData.ssoAccountResaleTicketsFields;\r\n\r\n return shouldDisplayResaleButton(displayResaleCriteria, ballotCriteria, membership);\r\n }\r\n const displayMenuChildren = (menuItem) => {\r\n return menuItem.children.map((childItem) => {\r\n const shouldDisplayTag = !isEmpty(childItem.tag) && isOneClubMember;\r\n const newUrl = `${window.location.pathname}#${childItem.form}`;\r\n return (\r\n
  • \r\n {\r\n if (!e.ctrlKey && !e.metaKey && e.button === 0) {\r\n e.preventDefault();\r\n window.history.pushState(null, '', newUrl);\r\n handleChangeAccountDetailsContent(e, childItem.form);\r\n } else {\r\n window.open(`?componentToRender=${childItem.form}`, '_blank', 'noopener,noreferrer');\r\n }\r\n }}\r\n className={getActiveClassName(childItem.form)}>\r\n {childItem.title} {shouldDisplayTag ? childItem.tag : null}\r\n \r\n
  • );\r\n });\r\n }\r\n\r\n function getActiveClassName(accountDetailsLink) {\r\n if (accountDetailsLink === componentToRender) {\r\n return 'active';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n return ( \r\n {displayAccountMenu()}\r\n
    \r\n {isWomensOpen ?\r\n AIG Womens Open :\r\n The Open}\r\n Randa\r\n OneClub\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nAccountMenuLinks.propTypes = {\r\n userAccountData: PropTypes.object.isRequired,\r\n ssoDomain: PropTypes.string.isRequired,\r\n displayResaleTicketsMenuItem: PropTypes.bool.isRequired,\r\n shouldDisplayMenu: PropTypes.bool.isRequired,\r\n componentToRender: PropTypes.string.isRequired,\r\n handleChangeAccountDetailsContent: PropTypes.func.isRequired\r\n};\r\n\r\nexport default AccountMenuLinks;\r\n","import React, { Fragment, useEffect} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport AccountMenuLinks from './AccountMenuLinks';\r\n\r\nfunction AccountMenu({\r\n userAccountData,\r\n accountFormData,\r\n ssoDomain,\r\n displayResaleTicketsMenuItem,\r\n shouldDisplayMenu,\r\n componentToRender,\r\n handleChangeAccountDetailsContent,\r\n toggleDisplayMenu\r\n}) {\r\n const { initials, fullName } = userAccountData;\r\n const handleHashChange = () => {\r\n const hash = window.location.hash.substring(1); // Remove the leading '#'\r\n if (hash) { \r\n handleChangeAccountDetailsContent(null, hash);\r\n }\r\n };\r\n useEffect(() => {\r\n handleHashChange(); // Handle the initial hash\r\n window.addEventListener('hashchange', handleHashChange);\r\n \r\n return () => {\r\n window.removeEventListener('hashchange', handleHashChange);\r\n };\r\n }, []);\r\n return (\r\n \r\n
    \r\n \r\n My account\r\n
    \r\n
    \r\n
    \r\n
    \r\n {initials}\r\n
    \r\n
    \r\n {'Hi,'}\r\n {fullName}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nAccountMenu.propTypes = {\r\n userAccountData: PropTypes.object.isRequired,\r\n accountFormData: PropTypes.object.isRequired,\r\n ssoDomain: PropTypes.string.isRequired,\r\n shouldDisplayMenu: PropTypes.bool.isRequired,\r\n componentToRender: PropTypes.string.isRequired,\r\n handleChangeAccountDetailsContent: PropTypes.func.isRequired,\r\n toggleDisplayMenu: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default AccountMenu;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport FormSpinner from '../common/utility/FormSpinner';\r\nimport { userAccountConstants, userAccountContentConstants, userAccountFormConstants } from '../utils/user-account-constants';\r\nimport * as formStateHelpers from '../forms/helpers/form-helpers/form-state-helper';\r\nimport * as userAccountActions from '../../store/actions/user-account-actions';\r\nimport * as signInFormActions from '../../store/actions/sign-in-form-actions';\r\nimport { isEmpty } from '../utils/obj-utils';\r\nimport AccountMenu from './AccountMenu';\r\nimport { formMessageConstants } from '../utils/constants/form-message-constants';\r\nimport { domainConstants } from '../utils/constants/domain-constants';\r\nimport userService from '../../../../general/js/user/user-service';\r\nimport { hasValue, isRefMounted } from '../../../../general/js/general-helpers';\r\nimport ModalTriggerPromoPanelComponent from '../../../modal-trigger-promo-panel/js/modal-trigger-promo-panel.component';\r\nimport {\r\n getInitials,\r\n getParameterByName,\r\n getTitleLabel,\r\n removeParameterByName\r\n} from '../../../../general/js/utils';\r\n\r\nclass UserAccountPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n userAccountData: {},\r\n shouldDisplayMenu: false,\r\n componentToRender: userAccountContentConstants.accountHomePage,\r\n fileNumberForDisplay: 0,\r\n upcomingTicket: {}\r\n };\r\n\r\n this.modalTriggerPromoPanelRef = React.createRef();\r\n this.modalTrigger = null;\r\n this.updateUserAccountData = this.updateUserAccountData.bind(this);\r\n this.updateComponentToRenderDisplay = this.updateComponentToRenderDisplay.bind(this);\r\n this.updateComponentToRender = this.updateComponentToRender.bind(this);\r\n this.displayMyAccountPage = this.displayMyAccountPage.bind(this);\r\n this.handleChangeAccountDetailsContent = this.handleChangeAccountDetailsContent.bind(this);\r\n this.handleViewFileSummaryClick = this.handleViewFileSummaryClick.bind(this);\r\n this.handleViewTicketsClick = this.handleViewTicketsClick.bind(this);\r\n this.displayAccountDetailsContent = this.displayAccountDetailsContent.bind(this);\r\n this.refreshAccountPage = this.refreshAccountPage.bind(this);\r\n this.toggleDisplayMenu = this.toggleDisplayMenu.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.refreshAccountPage(true);\r\n }\r\n\r\n componentDidUpdate() {\r\n if (!hasValue(this.modalTrigger)) {\r\n this.modalTrigger = isRefMounted(this.modalTriggerPromoPanelRef) ?\r\n new ModalTriggerPromoPanelComponent(this.modalTriggerPromoPanelRef.current, 'modal-trigger-promo-panel') :\r\n null;\r\n } else if (!isRefMounted(this.modalTriggerPromoPanelRef)) {\r\n this.modalTrigger.destroy();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (hasValue(this.modalTrigger)) {\r\n this.modalTrigger.destroy();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isUserAccountDataLoadedSuccessful,\r\n isAccountPageRefresh,\r\n userAccountData\r\n } = nextProps;\r\n\r\n if (isUserAccountDataLoadedSuccessful &&\r\n !isEmpty(userAccountData)) {\r\n this.updateUserAccountData(userAccountData);\r\n\r\n if (isAccountPageRefresh) {\r\n this.updateComponentToRenderDisplay();\r\n }\r\n }\r\n }\r\n\r\n updateComponentToRenderDisplay() {\r\n let componentToRender = getParameterByName('componentToRender');\r\n const { ssoDomain } = this.props.accountFormData;\r\n\r\n if (isEmpty(componentToRender)) {\r\n return;\r\n }\r\n\r\n if (componentToRender === userAccountContentConstants.theOneClub &&\r\n ssoDomain === domainConstants.womensOpen) {\r\n componentToRender = userAccountContentConstants.accountHomePage;\r\n }\r\n\r\n this.toggleDisplayMenu();\r\n this.updateComponentToRender(componentToRender);\r\n\r\n removeParameterByName('componentToRender');\r\n }\r\n\r\n updateUserAccountData(nextUserAccountData) {\r\n const { accountFormData, actions } = this.props;\r\n\r\n if (isEmpty(accountFormData) || isEmpty(nextUserAccountData)) {\r\n actions.signOutUser();\r\n return;\r\n }\r\n\r\n const userAccountData = _.cloneDeep(nextUserAccountData);\r\n userAccountData.titleLabel = getTitleLabel(userAccountData.title, accountFormData.ssoUserDetailsFields.title.options);\r\n userAccountData.initials = getInitials(userAccountData.firstName, userAccountData.lastName);\r\n\r\n const isOneClubMember = userAccountData.membership.includes(userAccountConstants.oneClub);\r\n userAccountData.isOneClubMember = isOneClubMember;\r\n\r\n userService.setTOCHUserMembershipsInLocalStorage(JSON.stringify(userAccountData.membership));\r\n const customEvent = new CustomEvent('tochDataChanged', { detail: { showOneClubHubLink: isOneClubMember, membership: userAccountData.membership } });\r\n document.dispatchEvent(customEvent);\r\n\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n userAccountData\r\n })\r\n );\r\n }\r\n\r\n handleChangeAccountDetailsContent(event, nexComponentToRender) {\r\n if (event !== null) {\r\n event.preventDefault();\r\n }\r\n \r\n this.toggleDisplayMenu();\r\n this.updateComponentToRender(nexComponentToRender);\r\n }\r\n\r\n updateComponentToRender(componentToRender, callbackFunction) {\r\n this.setState(\r\n (state) => ({\r\n ...state,\r\n componentToRender,\r\n fileNumberForDisplay: 0,\r\n upcomingTicket: {}\r\n }), callbackFunction\r\n );\r\n }\r\n\r\n refreshAccountPage(shouldRefreshComponent) {\r\n const { actions, accountFormData } = this.props;\r\n if (isEmpty(accountFormData)) {\r\n actions.signOutUser();\r\n return;\r\n }\r\n\r\n const { getUserDataCallbackUrl } = accountFormData;\r\n actions.getUserAccountData(getUserDataCallbackUrl, shouldRefreshComponent);\r\n }\r\n\r\n handleViewFileSummaryClick(fileNumber) {\r\n this.setState(\r\n (state) => ({\r\n ...state,\r\n componentToRender: userAccountContentConstants.userOrderHistory,\r\n fileNumberForDisplay: fileNumber\r\n })\r\n );\r\n }\r\n\r\n handleViewTicketsClick(upcomingTicket) {\r\n this.setState(\r\n (state) => ({\r\n ...state,\r\n componentToRender: userAccountContentConstants.userTickets,\r\n upcomingTicket\r\n })\r\n );\r\n }\r\n\r\n toggleDisplayMenu() {\r\n this.setState(formStateHelpers.toggleKey('shouldDisplayMenu'));\r\n }\r\n\r\n displayMyAccountPage() {\r\n const {\r\n componentToRender, userAccountData, shouldDisplayMenu\r\n } = this.state;\r\n const { accountFormData, isUserAccountDataLoadedSuccessful, isUserNotSignedIn } = this.props;\r\n const { ssoDomain } = accountFormData;\r\n const { ssoAccountHomePageFields } = accountFormData;\r\n const { modalTriggerPromoPanel } = ssoAccountHomePageFields;\r\n const { displayResaleTicketsMenuItem } = accountFormData;\r\n const dataLoadedSuccessful = !isUserNotSignedIn && isUserAccountDataLoadedSuccessful && !isEmpty(userAccountData);\r\n\r\n if (isUserNotSignedIn) {\r\n return (\r\n \r\n \r\n );\r\n }\r\n\r\n if (isEmpty(userAccountData)) {\r\n return ;\r\n }\r\n\r\n return (
    \r\n {dataLoadedSuccessful && }\r\n
    \r\n {dataLoadedSuccessful && this.displayAccountDetailsContent()}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n displayAccountDetailsContent() {\r\n const {\r\n componentToRender,\r\n userAccountData,\r\n fileNumberForDisplay,\r\n upcomingTicket\r\n } = this.state;\r\n const { accountFormData } = this.props;\r\n\r\n if (isEmpty(userAccountFormConstants[componentToRender])) {\r\n return

    {formMessageConstants.somethingWentWrong}

    ;\r\n }\r\n\r\n const copyOfAccountFormData = _.cloneDeep(accountFormData);\r\n const copyOfUserAccountData = _.cloneDeep(userAccountData);\r\n\r\n return userAccountFormConstants[componentToRender]({\r\n accountFormData: copyOfAccountFormData,\r\n userAccountData: copyOfUserAccountData,\r\n fileNumberForDisplay,\r\n upcomingTicket,\r\n refreshAccountPage: this.refreshAccountPage,\r\n handleViewFileSummaryClick: this.handleViewFileSummaryClick,\r\n handleViewTicketsClick: this.handleViewTicketsClick\r\n });\r\n }\r\n\r\n render() {\r\n return this.displayMyAccountPage();\r\n }\r\n}\r\n\r\nUserAccountPage.propTypes = {\r\n accountFormData: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n isUserNotSignedIn: state.userAccount.isUserNotSignedIn,\r\n isUserAccountDataLoadedSuccessful: state.userAccount.isUserAccountDataLoadedSuccessful,\r\n isAccountPageRefresh: state.userAccount.isAccountPageRefresh,\r\n userAccountData: state.userAccount.userAccountData\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n getUserAccountData: bindActionCreators(userAccountActions.getUserAccountData, dispatch),\r\n signOutUser: bindActionCreators(signInFormActions.signOutUser, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(UserAccountPage);\r\n","/* eslint-disable react/no-direct-mutation-state */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport * as registerFormActions from '../../../store/actions/register-form-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport { deepCopyObject, isEmpty } from '../../utils/obj-utils';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\nimport { getFormContainerWideLeftClassList, getModalContentClassListForSSOForm, toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\n\r\nclass DefaultRegisterForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { formData, formData: ssoDomain } = this.props;\r\n\r\n this.state = {\r\n ...initialState.defaultRegisterFormState,\r\n ssoDomain,\r\n isModalStylingUpdated: false\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReference = React.createRef();\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n\r\n this.loadRegisterFormData = this.loadRegisterFormData.bind(this);\r\n this.displayDefaultRegisterForm = this.displayDefaultRegisterForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleUserRegisterSuccess = this.handleUserRegisterSuccess.bind(this);\r\n this.submitRegisterData = this.submitRegisterData.bind(this);\r\n\r\n this.loadRegisterFormData();\r\n }\r\n\r\n loadRegisterFormData() {\r\n const { actions, formData } = this.props;\r\n\r\n if (!hasValue(formData)) {\r\n actions.loadSSODefaultRegisterFormData();\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormTypes.DefaultRegister);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isRegisterSuccessful,\r\n loading,\r\n formData\r\n } = nextProps;\r\n\r\n if (hasValue(formData) && !hasValue(this.state.ssoDomain)) {\r\n this.state.ssoDomain = formData.ssoDomain;\r\n }\r\n\r\n if (hasValue(formData) && !hasValue(this.formReferences)) {\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n }\r\n\r\n if (hasValue(formData) && !this.state.isModalStylingUpdated) {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, nextProps, ssoFormTypes.DefaultRegister);\r\n }\r\n\r\n if (!loading &&\r\n isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserRegisterSuccess);\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.defaultRegisterFormState);\r\n actions.resetRegisterFormState();\r\n }\r\n\r\n handleUserRegisterSuccess() {\r\n const { onUserRegisterSuccess } = this.props;\r\n const {\r\n formType,\r\n actionSuccessText,\r\n requestEmailVerificationCallbackUrl,\r\n requestEmailVerificationActionSuccessText\r\n } = this.props.formData;\r\n\r\n onUserRegisterSuccess(this.state[formConstants.emailAddress],\r\n {\r\n registerFormType: formType,\r\n successText: actionSuccessText,\r\n emailVerificationCallbackUrl: requestEmailVerificationCallbackUrl,\r\n emailVerificationActionSuccessText: requestEmailVerificationActionSuccessText\r\n });\r\n }\r\n\r\n async handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n const { reCaptcha } = this.state;\r\n\r\n if (reCaptcha) {\r\n formData.reCaptchaToken = reCaptcha;\r\n }\r\n\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n const captchaRef = this.formReferences[formConstants.reCaptcha];\r\n\r\n if (captchaRef) {\r\n captchaRef.current.props.grecaptcha.reset();\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.updateState);\r\n }\r\n\r\n updateState() {\r\n const { formData } = this.props;\r\n\r\n this.setState({ ssoEmailNotificationSettingsFields: formData.ssoEmailNotificationSettingsFields }, () => {\r\n this.submitRegisterData();\r\n });\r\n }\r\n\r\n submitRegisterData() {\r\n const { actions, formData } = this.props;\r\n const { callBackUrlPost } = formData;\r\n const actionSuccessText = formData.actionSuccessText || formMessageConstants.registrationSuccessText;\r\n\r\n actions.registerNewUser(this.state, actionSuccessText, callBackUrlPost);\r\n this.setState({ reCaptcha: '' });\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onSignIn,\r\n onForgotPassword,\r\n isRegisterSuccessful,\r\n userRegistrationMessages,\r\n formData\r\n } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n\r\n const { formHeader } = formData;\r\n\r\n return (\r\n \r\n
    \r\n \r\n {this.displayDefaultRegisterForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displayDefaultRegisterForm() {\r\n const { formData } = this.props;\r\n const { mobilePhone } = formData;\r\n const copyOfFormData = deepCopyObject(formData);\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences,\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event, mobilePhone.isOptional)); },\r\n handleCaptchaChange: (token) => { this.setState(formStateHelpers.handleCaptchaChange(token)); },\r\n handleMastercardNumberChange: (event) => {\r\n this.setState(formStateHelpers.handleMastercardNumberChange(event.target,\r\n formData.mastercardRegex, formData.mastercardValidationError));\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, formData } = this.props;\r\n\r\n const { formBanner, desktopImageSrc, mobileImageSrc } = formData;\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n hasValue(mobileImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n \r\n
    \r\n {(isSaving || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n {\r\n hasValue(desktopImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nDefaultRegisterForm.propTypes = {\r\n onSignIn: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n onUserRegisterSuccess: PropTypes.func.isRequired,\r\n formData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n formData: !hasValue(ownProps.registerFormData) ? state.registerForm.registerFormData : ownProps.formData,\r\n isRegisterSuccessful: state.registerForm.isRegisterSuccessful,\r\n userRegistrationMessages: state.registerForm.userRegistrationMessages,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadSSODefaultRegisterFormData: bindActionCreators(registerFormActions.loadSSODefaultRegisterFormData, dispatch),\r\n registerNewUser: bindActionCreators(registerFormActions.registerNewUser, dispatch),\r\n resetRegisterFormState: bindActionCreators(registerFormActions.resetRegisterFormState, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(DefaultRegisterForm);\r\n","/* eslint-disable react/no-direct-mutation-state */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { isEmpty, deepCopyObject } from '../../utils/obj-utils';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as registerFormActions from '../../../store/actions/register-form-actions';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\nimport GTMUserActions from '../../common/utility/GTMUserActions';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\nimport { getFormContainerWideLeftClassList, getModalContentClassListForSSOForm, toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\n\r\nclass TicketingRegisterForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { registerFormData, ssoDomain } = this.props;\r\n\r\n this.state = {\r\n ...initialState.ticketingRegisterFormState,\r\n ssoDomain,\r\n isModalStylingUpdated: false\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReference = React.createRef();\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n\r\n this.loadRegisterFormData = this.loadRegisterFormData.bind(this);\r\n this.displayTicketingRegisterForm = this.displayTicketingRegisterForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleUserRegisterSuccess = this.handleUserRegisterSuccess.bind(this);\r\n this.submitRegisterData = this.submitRegisterData.bind(this);\r\n this.finishFormSubmit = this.finishFormSubmit.bind(this);\r\n\r\n this.loadRegisterFormData();\r\n }\r\n\r\n loadRegisterFormData() {\r\n const { actions, registerFormData } = this.props;\r\n\r\n if (isEmpty(registerFormData)) {\r\n actions.loadSSORegisterFormData();\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormTypes.TicketingRegister);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isRegisterSuccessful,\r\n registerFormData,\r\n loading,\r\n isUserAddressRetrieveSuccessful,\r\n retrievedUserAddress\r\n } = nextProps;\r\n\r\n if (hasValue(registerFormData) && !this.state.isModalStylingUpdated) {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, nextProps, ssoFormTypes.TicketingRegister);\r\n }\r\n\r\n if (!loading && isUserAddressRetrieveSuccessful) {\r\n const { county, state } = registerFormData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n }\r\n\r\n if (!isEmpty(registerFormData) && isEmpty(this.formReferences)) {\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n }\r\n\r\n if (!loading &&\r\n isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserRegisterSuccess);\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.ticketingRegisterFormState);\r\n actions.resetRegisterFormState();\r\n }\r\n\r\n handleUserRegisterSuccess() {\r\n const { onUserRegisterSuccess } = this.props;\r\n const {\r\n formType,\r\n actionSuccessText,\r\n requestEmailVerificationCallbackUrl,\r\n requestEmailVerificationActionSuccessText\r\n } = this.props.registerFormData;\r\n\r\n GTMUserActions.trackTicketingAccountAction();\r\n\r\n onUserRegisterSuccess(this.state[formConstants.emailAddress],\r\n {\r\n registerFormType: formType,\r\n successText: actionSuccessText,\r\n emailVerificationCallbackUrl: requestEmailVerificationCallbackUrl,\r\n emailVerificationActionSuccessText: requestEmailVerificationActionSuccessText\r\n });\r\n }\r\n\r\n async handleSubmit(event) {\r\n event.preventDefault();\r\n const { registerFormData } = this.props;\r\n const { reCaptcha } = this.state;\r\n\r\n if (reCaptcha) {\r\n registerFormData.reCaptchaToken = reCaptcha;\r\n }\r\n\r\n this.setState(formStateHelpers.handleFormValidation(registerFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n const captchaRef = this.formReferences[formConstants.reCaptcha];\r\n\r\n if (captchaRef) {\r\n captchaRef.current.props.grecaptcha.reset();\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitRegisterData);\r\n }\r\n\r\n submitRegisterData() {\r\n const { registerFormData } = this.props;\r\n\r\n GTMUserActions.trackTicketingAccountActionClick();\r\n\r\n if (registerFormData.membership) {\r\n this.setState({ membership: registerFormData.membership, ssoEmailNotificationSettingsFields: registerFormData.ssoEmailNotificationSettingsFields }, () => {\r\n this.finishFormSubmit();\r\n });\r\n return;\r\n }\r\n\r\n this.finishFormSubmit();\r\n }\r\n\r\n finishFormSubmit() {\r\n const { actions, registerFormData } = this.props;\r\n const { callBackUrlPost } = registerFormData;\r\n const actionSuccessText = registerFormData.actionSuccessText || formMessageConstants.registrationSuccessText;\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.dateOfBirth]);\r\n actions.registerNewUser(this.state, actionSuccessText, callBackUrlPost);\r\n this.setState({ reCaptcha: '' });\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onSignIn,\r\n onForgotPassword,\r\n isRegisterSuccessful,\r\n userRegistrationMessages,\r\n registerFormData\r\n } = this.props;\r\n\r\n if (isEmpty(registerFormData)) {\r\n return null;\r\n }\r\n\r\n const { formHeader } = registerFormData;\r\n\r\n return (\r\n \r\n
    \r\n \r\n {this.displayTicketingRegisterForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displayTicketingRegisterForm() {\r\n const { actions, registerFormData } = this.props;\r\n const { availableCounties, country, availableStates } = this.state;\r\n const { county, mobilePhone, state } = registerFormData;\r\n const copyOfRegisterFormData = deepCopyObject(registerFormData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfRegisterFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfRegisterFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfRegisterFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfRegisterFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfRegisterFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfRegisterFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfRegisterFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfRegisterFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfRegisterFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n\r\n return FormBuilder({\r\n formData: copyOfRegisterFormData,\r\n formReferences: this.formReferences,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event, mobilePhone.isOptional)); },\r\n handleCaptchaChange: (token) => { this.setState(formStateHelpers.handleCaptchaChange(token)); },\r\n handleMastercardNumberChange: (event) => {\r\n this.setState(formStateHelpers.handleMastercardNumberChange(event.target,\r\n registerFormData.mastercardRegex, registerFormData.mastercardValidationError));\r\n },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state),\r\n () => {\r\n actions.resetRetrievedUserAddress();\r\n });\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, registerFormData } = this.props;\r\n const { formBanner, desktopImageSrc, mobileImageSrc } = registerFormData;\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n hasValue(mobileImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n \r\n
    \r\n {(isSaving || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n {\r\n hasValue(desktopImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nTicketingRegisterForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onSignIn: PropTypes.func.isRequired,\r\n onUserRegisterSuccess: PropTypes.func.isRequired,\r\n ssoDomain: PropTypes.string,\r\n registerFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n registerFormData: _.isEmpty(ownProps.registerFormData) ? state.registerForm.registerFormData : ownProps.registerFormData,\r\n isRegisterSuccessful: state.registerForm.isRegisterSuccessful,\r\n userRegistrationMessages: state.registerForm.userRegistrationMessages,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadSSORegisterFormData: bindActionCreators(registerFormActions.loadSSOTicketingRegisterFormData, dispatch),\r\n registerNewUser: bindActionCreators(registerFormActions.registerNewUser, dispatch),\r\n resetRegisterFormState: bindActionCreators(registerFormActions.resetRegisterFormState, dispatch),\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(TicketingRegisterForm);\r\n","/* eslint-disable react/no-direct-mutation-state */\r\nimport React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport gtm from 'general/js/gtm';\r\nimport * as signInFormActions from '../../../store/actions/sign-in-form-actions';\r\nimport * as signInFormHelpers from '../helpers/form-helpers/sign-in-form-helpers';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport * as upgradeAccountFormActions from '../../../store/actions/upgrade-account-actions';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport userService from '../../../../../general/js/user/user-service';\r\nimport { SECUTIX_CONTACT_ID, USER_ID } from '../../../../../general/js/user/constants';\r\nimport { hasValue, isNullOrUndefined } from '../../../../../general/js/general-helpers';\r\nimport { toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport * as upgradeFormHelper from '../helpers/form-helpers/upgrade-form-helper';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\nimport { getWebsiteDomain } from '../../../../../general/js/helpers';\r\nimport { domainConstants } from '../../utils/constants/domain-constants';\r\nimport {\r\n MembershipTypes,\r\n getParameterByName,\r\n redirectTo,\r\n reloadPage,\r\n reloadToBasePage\r\n} from '../../../../../general/js/utils';\r\nimport { QueryConstants } from '../../../../../general/js/utils/query-constants';\r\nimport { CookieNames } from '../../../../../general/js/utils/cookies';\r\n\r\nclass SignInForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n ...initialState.signInFormState,\r\n isModalStylingUpdated: false,\r\n gtmTrigger: false\r\n };\r\n\r\n this.formReference = React.createRef();\r\n this.displaySignInForm = this.displaySignInForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.submitSignInData = this.submitSignInData.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleSignInSuccess = this.handleSignInSuccess.bind(this);\r\n this.updateLastLogInUserDetails = this.updateLastLogInUserDetails.bind(this);\r\n this.loadSignInFormData = this.loadSignInFormData.bind(this);\r\n this.getNextComponentToRender = this.getNextComponentToRender.bind(this);\r\n this.loadSSOSignInSuccessFormData = this.loadSSOSignInSuccessFormData.bind(this);\r\n this.loadSSOUpgradeToOneClubFormData = this.loadSSOUpgradeToOneClubFormData.bind(this);\r\n\r\n this.loadSignInFormData();\r\n this.loadSSOSignInSuccessFormData();\r\n }\r\n\r\n loadSignInFormData() {\r\n const { actions, signInFormData } = this.props;\r\n\r\n if (isEmpty(signInFormData)) {\r\n actions.loadSSOSignInFormData();\r\n }\r\n }\r\n\r\n loadSSOSignInSuccessFormData() {\r\n const { actions } = this.props;\r\n\r\n actions.loadSSOSignInSuccessFormData();\r\n }\r\n\r\n componentDidMount() {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormTypes.SignIn);\r\n }\r\n\r\n loadSSOUpgradeToOneClubFormData() {\r\n const { actions } = this.props;\r\n\r\n actions.loadSSOUpgradeToOneClubFormData();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isSignInSuccessful,\r\n isNewPasswordRequired,\r\n cognitoUser,\r\n onNewPasswordRequired,\r\n loading,\r\n isUserLastLogInDataUpdated,\r\n userLastLogInDataErrorMessages,\r\n signInFormData\r\n } = nextProps;\r\n\r\n if (hasValue(signInFormData) && !this.state.isModalStylingUpdated) {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, nextProps, ssoFormTypes.SignIn);\r\n }\r\n\r\n if (signInFormHelpers.isSignInSuccess(nextProps) && !(isUserLastLogInDataUpdated || hasValue(userLastLogInDataErrorMessages))) {\r\n this.updateLastLogInUserDetails(nextProps);\r\n }\r\n\r\n if (signInFormHelpers.isSignInSuccess(nextProps) && (isUserLastLogInDataUpdated || hasValue(userLastLogInDataErrorMessages))) {\r\n this.handleSignInSuccess(cognitoUser, nextProps);\r\n }\r\n\r\n if (!loading && isNewPasswordRequired && isSignInSuccessful) {\r\n onNewPasswordRequired(cognitoUser);\r\n }\r\n\r\n if (!loading && !isSignInSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.signInFormState);\r\n actions.resetSignInFormState();\r\n }\r\n\r\n updateLastLogInUserDetails(nextProps) {\r\n if (isNullOrUndefined(nextProps)) return;\r\n\r\n const { actions, signInFormData } = nextProps;\r\n\r\n if (isNullOrUndefined(actions) || isNullOrUndefined(signInFormData)) return;\r\n\r\n const { lastLoggedInDataCallBackUrl } = signInFormData;\r\n\r\n const { lastLoginDate, lastLoginPlatform, lastLoginDevice } = signInFormHelpers.getLastLogInData();\r\n\r\n actions.updateUserSignInDetails({\r\n lastLoginDate,\r\n lastLoginPlatform,\r\n lastLoginDevice,\r\n callBackUrl: lastLoggedInDataCallBackUrl\r\n });\r\n }\r\n\r\n handleSignInSuccess(cognitUser, nextProps) {\r\n const { onSignInSuccess, signInSuccessFormData, upgradeToOneClubFormData } = nextProps;\r\n const website = getWebsiteDomain();\r\n\r\n if (!hasValue(upgradeToOneClubFormData) && website === domainConstants.theOpen) {\r\n this.loadSSOUpgradeToOneClubFormData();\r\n }\r\n\r\n this.setState(formStateHelpers.updateProcessingState(false), () => {\r\n const redirectToAddress = getParameterByName(QueryConstants.REDIRECT_TO);\r\n const showPopup = getParameterByName(QueryConstants.SHOW_POPUP);\r\n\r\n const isOneClub = cognitUser.attributes['custom:Membership'].includes(MembershipTypes.OneClub);\r\n const optIns = JSON.parse(cognitUser.attributes['custom:OptIns']);\r\n userService.setTOCHUserMembershipsInLocalStorage(JSON.stringify(cognitUser.attributes['custom:Membership']));\r\n userService.setDataInLocalStorage(CookieNames.TOCH_USER_EMAIL, cognitUser.attributes.email);\r\n userService.setDataInLocalStorage(USER_ID, cognitUser.attributes.sub);\r\n\r\n const ticketingAccountId = cognitUser.attributes['custom:TicketingAccountId'];\r\n\r\n if (ticketingAccountId) {\r\n userService.setDataInLocalStorage(SECUTIX_CONTACT_ID, ticketingAccountId);\r\n }\r\n\r\n if (this.state.gtmTrigger === false) {\r\n this.state.gtmTrigger = true;\r\n gtm.push('Sign In', 'Sign in Success', window.location.href);\r\n }\r\n\r\n if (!isEmpty(redirectToAddress)) {\r\n redirectTo(redirectToAddress);\r\n return;\r\n }\r\n\r\n if (isOneClub && website === domainConstants.theOpen) {\r\n //check if should render upgrade to One Club account\r\n if (hasValue(upgradeToOneClubFormData)) {\r\n const currentUser = upgradeToOneClubFormData.currentUser;\r\n const hasOneClubRequiredFields = upgradeFormHelper.hasOneClubRequiredFields(currentUser, optIns);\r\n if (!hasOneClubRequiredFields) {\r\n onSignInSuccess(upgradeToOneClubFormData, ssoFormTypes.UpgradeToOneClubAccountFromDefault);\r\n } else {\r\n reloadPage();\r\n }\r\n }\r\n } else {\r\n const hasAgreeToPrivacyPolicyChecked = signInFormHelpers.hasAgreeToPrivacyPolicyChecked(optIns);\r\n\r\n if (!hasAgreeToPrivacyPolicyChecked) {\r\n onSignInSuccess(signInSuccessFormData, ssoFormTypes.SignInSuccess);\r\n return;\r\n }\r\n\r\n if (isEmpty(showPopup)) {\r\n reloadPage();\r\n return;\r\n }\r\n\r\n reloadToBasePage();\r\n }\r\n });\r\n }\r\n\r\n getNextComponentToRender(optIns) {\r\n if (optIns.agreedToPrivacyPolicy === undefined || optIns.agreedToPrivacyPolicy === false) return true;\r\n\r\n return false;\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { signInFormData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(signInFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (!this.state.formHasErrors) {\r\n this.setState(formStateHelpers.updateProcessingState(true), this.submitSignInData);\r\n }\r\n }\r\n\r\n submitSignInData() {\r\n const { actions, signInFormData } = this.props;\r\n const { actionSuccessText } = signInFormData;\r\n const {\r\n userName,\r\n emailAddress,\r\n password\r\n } = this.state;\r\n const { maxIdleTimeInSeconds } = signInFormData;\r\n\r\n actions.signInUser({\r\n userName,\r\n emailAddress,\r\n password,\r\n actionSuccessText,\r\n maxIdleTimeInSeconds\r\n });\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onForgotPassword,\r\n onRegister,\r\n signInFormData,\r\n isSignInSuccessful,\r\n signInMessages\r\n } = this.props;\r\n\r\n if (isEmpty(signInFormData)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n \r\n {this.displaySignInForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displaySignInForm() {\r\n const { signInFormData } = this.props;\r\n return FormBuilder({\r\n formData: signInFormData,\r\n formReferences: this.formReferences,\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n render() {\r\n const { loading } = this.props;\r\n const { isProcessing } = this.state;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {isProcessing || loading ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSignInForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onForgotPassword: PropTypes.func.isRequired,\r\n onRegister: PropTypes.func.isRequired,\r\n onNewPasswordRequired: PropTypes.func.isRequired,\r\n onSignInSuccess: PropTypes.func.isRequired,\r\n signInFormData: PropTypes.object,\r\n signInSuccessFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n signInFormData: state.signInForm.signInFormData,\r\n isSignInSuccessful: state.signInForm.isSignInSuccessful,\r\n isUserLastLogInDataUpdated: state.signInForm.isUserLastLogInDataUpdated,\r\n userLastLogInDataErrorMessages: state.signInForm.userLastLogInDataErrorMessages,\r\n isNewPasswordRequired: state.signInForm.isNewPasswordRequired,\r\n cognitoUser: state.signInForm.cognitoUser,\r\n signInMessages: state.signInForm.signInMessages,\r\n signInSuccessFormData: state.signInForm.signInSuccessFormData,\r\n upgradeToOneClubFormData: state.upgradeAccountForm.upgradeToOneClubFormData\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n updateUserSignInDetails: bindActionCreators(signInFormActions.updateUserSignInDetails, dispatch),\r\n loadSSOSignInFormData: bindActionCreators(signInFormActions.loadSSOSignInFormData, dispatch),\r\n signInUser: bindActionCreators(signInFormActions.signInUser, dispatch),\r\n resetSignInFormState: bindActionCreators(signInFormActions.resetSignInFormState, dispatch),\r\n loadSSOSignInSuccessFormData: bindActionCreators(signInFormActions.loadSSOSignInSuccessFormData, dispatch),\r\n loadSSOUpgradeToOneClubFormData: bindActionCreators(upgradeAccountFormActions.loadSSOUpgradeToOneClubFormData, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(SignInForm);\r\n","import basketService from '../../../../general/js/basket/basket-service';\r\nimport * as types from './action-types';\r\nimport * as apiResponseMessages from './api-response-messages';\r\nimport { beginApiCall, apiCallError } from './api-status-actions';\r\n\r\nexport function purchaseAttemptSuccess(purchaseAttemptMessages) {\r\n return { type: types.PURCHASE_ATTEMPT_SUCCESS, purchaseAttemptMessages };\r\n}\r\n\r\nexport function purchaseAttemptError(purchaseAttemptMessages) {\r\n return { type: types.PURCHASE_ATTEMPT_ERROR, purchaseAttemptMessages };\r\n}\r\n\r\nexport function resetUpgradeAccountFormState() {\r\n return { type: types.RESET_UPGRADE_ACCOUNT_FORM };\r\n}\r\n\r\nexport function retryPurchase() {\r\n const products = localStorage.getItem('ticketBasket2019');\r\n return function (dispatch) {\r\n dispatch(beginApiCall());\r\n basketService.checkout(products, false)\r\n .then((response) => {\r\n if (response.hasErrors) {\r\n dispatch(apiCallError([response.errorMessage]));\r\n dispatch(purchaseAttemptError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n return;\r\n }\r\n\r\n dispatch(purchaseAttemptSuccess([apiResponseMessages.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESSFULLY]));\r\n }).catch((error) => {\r\n dispatch(apiCallError([error]));\r\n dispatch(purchaseAttemptError([apiResponseMessages.SERVER_ERROR_MESSAGE]));\r\n throw error;\r\n });\r\n };\r\n}\r\n","/* eslint-disable no-restricted-globals */\r\n/* eslint-disable no-nested-ternary */\r\n/* eslint-disable react/no-direct-mutation-state */\r\nimport React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport get from 'lodash/get';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport * as upgradeAccountActions from '../../../store/actions/upgrade-account-actions';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as basketActions from '../../../store/actions/basket-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport * as upgradeFormHelper from '../helpers/form-helpers/upgrade-form-helper';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport { isEmpty, deepCopyObject } from '../../utils/obj-utils';\r\nimport { createDate } from '../../utils/date-utils';\r\nimport { domainConstants } from '../../utils/constants/domain-constants';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\nimport { getFormContainerWideLeftClassList, getModalContentClassListForSSOForm, toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\n\r\nclass UpgradeToTicketingAccountForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { formData } = this.props;\r\n const { ssoDomain } = formData;\r\n\r\n const mainAddress = upgradeFormHelper.getMainAddress(formData.currentUser);\r\n const birthDate = upgradeFormHelper.getDateOfBirth(formData.currentUser);\r\n\r\n this.state = {\r\n ...initialState.upgradeAccountFormState,\r\n ssoDomain,\r\n [formConstants.title]: upgradeFormHelper.getTitle(formData.currentUser),\r\n [formConstants.dateOfBirth]: birthDate ? createDate(birthDate.year, birthDate.month, birthDate.day) : null,\r\n [formConstants.country]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.country),\r\n [formConstants.county]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.county),\r\n [formConstants.state]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.state),\r\n [formConstants.city]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.city),\r\n [formConstants.addressLine1]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine1),\r\n [formConstants.addressLine2]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine2),\r\n [formConstants.addressLine3]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine3),\r\n [formConstants.postcode]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.postcode),\r\n [formConstants.mobilePhone]: upgradeFormHelper.getMobilePhone(formData, formConstants),\r\n isModalStylingUpdated: false\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReference = React.createRef();\r\n\r\n this.displayUpgradeToTicketingAccountForm = this.displayUpgradeToTicketingAccountForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleAccountUpgradeSuccess = this.handleAccountUpgradeSuccess.bind(this);\r\n this.submitUserDetailsData = this.submitUserDetailsData.bind(this);\r\n\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n }\r\n\r\n componentDidMount() {\r\n const { onSignIn, formData } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n onSignIn();\r\n }\r\n\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormTypes.UpgradeToTicketingAccount);\r\n\r\n this.updateActiveMemberships();\r\n\r\n this.updateAvailableCounties();\r\n\r\n this.updateAvailableStates();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n formData,\r\n isUpgradeSuccessful,\r\n loading,\r\n retrievedUserAddress,\r\n isUserAddressRetrieveSuccessful\r\n } = nextProps;\r\n\r\n if (hasValue(formData) && !this.state.isModalStylingUpdated) {\r\n this.state.isModalStylingUpdated = toggleBemClassesForSSOFormModal(this.formReference, nextProps, ssoFormTypes.UpgradeToTicketingAccount);\r\n }\r\n\r\n if (!loading && isUserAddressRetrieveSuccessful) {\r\n const { county, state } = formData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n }\r\n\r\n if (!loading &&\r\n isUpgradeSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleAccountUpgradeSuccess);\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isUpgradeSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.upgradeAccountFormState);\r\n actions.resetUpgradeAccountFormState();\r\n }\r\n\r\n updateActiveMemberships() {\r\n const { onSignIn, formData: { activeMemberships } } = this.props;\r\n\r\n if (isEmpty(activeMemberships)) {\r\n onSignIn();\r\n }\r\n\r\n this.setState(formStateHelpers.updateActiveMemberships(activeMemberships));\r\n }\r\n\r\n updateAvailableCounties() {\r\n const { formData: { county } } = this.props;\r\n const receivedCountry = get(this.state, formConstants.country, null);\r\n\r\n this.setState(formStateHelpers.updateAvailableCounties(receivedCountry, county));\r\n }\r\n\r\n updateAvailableStates() {\r\n const { formData: { state } } = this.props;\r\n const receivedCountry = get(this.state, formConstants.country, null);\r\n\r\n this.setState(formStateHelpers.updateAvailableStates(receivedCountry, state));\r\n }\r\n\r\n handleAccountUpgradeSuccess() {\r\n const { actions, formData } = this.props;\r\n const { isFromResale, resaleTickets } = formData;\r\n if (isFromResale) {\r\n actions.handleRedirectToResaleTickets(resaleTickets.buyLink, resaleTickets.secutixResaleUrl, resaleTickets.secutixPointOfSaleId, resaleTickets.secutixVirtualOperator);\r\n } else {\r\n actions.retryPurchase();\r\n }\r\n }\r\n\r\n async handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n const { reCaptcha } = this.state;\r\n\r\n if (reCaptcha) {\r\n formData.reCaptchaToken = reCaptcha;\r\n }\r\n\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitUserDetailsData);\r\n }\r\n\r\n submitUserDetailsData() {\r\n const { actions, formData } = this.props;\r\n const { callBackUrlPut, currentUser, ssoDomain } = formData;\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.title]);\r\n actions.upgradeToTicketingAccount(ssoDomain, this.state, currentUser, callBackUrlPut);\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onSignIn,\r\n isUpgradeSuccessful,\r\n accountUpgradeMessages,\r\n isPaymentAttemptSuccessful,\r\n purchaseAttemptMessages,\r\n formData\r\n } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n\r\n const messagesToDisplay = _.isEmpty(accountUpgradeMessages) ? purchaseAttemptMessages : accountUpgradeMessages;\r\n const isWomensOpen = window.location.hostname.toLowerCase().includes(domainConstants.womensOpen.toLowerCase());\r\n\r\n const isFromResale = formData.isFromResale;\r\n const footerLinkText = !isFromResale ? `${formMessageConstants.alreadyHaveATicketingAccount} ${formMessageConstants.signInHere}` : '';\r\n const footerButtonText = !isFromResale ? (isWomensOpen ? formMessageConstants.updateAccount : formMessageConstants.upgradeAccount) : formMessageConstants.upgradeAccountResale;\r\n\r\n return (\r\n
    \r\n \r\n {this.displayUpgradeToTicketingAccountForm()}\r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n displayUpgradeToTicketingAccountForm() {\r\n const { actions, formData } = this.props;\r\n const { availableCounties, country, availableStates } = this.state;\r\n const { county, mobilePhone, state } = formData;\r\n const copyOfFormData = deepCopyObject(formData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfFormData[formConstants.title].defaultValue = this.state[formConstants.title];\r\n\r\n if (this.state[formConstants.dateOfBirth] !== undefined && this.state[formConstants.dateOfBirth] instanceof Date && !isNaN(this.state[formConstants.dateOfBirth])) {\r\n if (!copyOfFormData[formConstants.dateOfBirth].defaultValue) {\r\n copyOfFormData[formConstants.dateOfBirth].defaultValue = this.state[formConstants.dateOfBirth];\r\n }\r\n }\r\n\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n\r\n if (this.state[formConstants.mobilePhone]) {\r\n if (!copyOfFormData[formConstants.mobilePhone].defaultValue) {\r\n copyOfFormData[formConstants.mobilePhone].defaultValue = {};\r\n copyOfFormData[formConstants.mobilePhone].defaultValue.selectedCountry = this.state[formConstants.mobilePhone].selectedCountry;\r\n copyOfFormData[formConstants.mobilePhone].defaultValue.phoneNumber = this.state[formConstants.mobilePhone].phoneNumber;\r\n }\r\n }\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event, mobilePhone.isOptional)); },\r\n handleCaptchaChange: (token) => { this.setState(formStateHelpers.handleCaptchaChange(token)); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state),\r\n () => {\r\n actions.resetRetrievedUserAddress();\r\n });\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, formData } = this.props;\r\n const { formBanner, desktopImageSrc, mobileImageSrc } = formData;\r\n\r\n const isFromResale = formData.isFromResale;\r\n const headerTitle = !isFromResale ? formMessageConstants.upgradeToTicketingAccount : formMessageConstants.upgradeToTicketingAccountFromResale;\r\n\r\n formBanner.bannerTitle = headerTitle;\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n hasValue(mobileImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n \r\n
    \r\n {(isSaving || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n {\r\n hasValue(desktopImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nUpgradeToTicketingAccountForm.propTypes = {\r\n onSignIn: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n formData: PropTypes.object,\r\n ssoDomain: PropTypes.string\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isUpgradeSuccessful: state.upgradeAccountForm.isUpgradeSuccessful,\r\n accountUpgradeMessages: state.upgradeAccountForm.accountUpgradeMessages,\r\n isPaymentAttemptSuccessful: state.basket.isPaymentAttemptSuccessful,\r\n purchaseAttemptMessages: state.basket.purchaseAttemptMessages,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n upgradeToTicketingAccount: bindActionCreators(upgradeAccountActions.upgradeToTicketingAccount, dispatch),\r\n resetUpgradeAccountFormState: bindActionCreators(upgradeAccountActions.resetUpgradeAccountFormState, dispatch),\r\n retryPurchase: bindActionCreators(basketActions.retryPurchase, dispatch),\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch),\r\n handleRedirectToResaleTickets: bindActionCreators(userAccountActions.handleRedirectToResaleTickets, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(UpgradeToTicketingAccountForm);\r\n","/* eslint-disable no-nested-ternary */\r\n/* eslint-disable no-restricted-globals */\r\nimport React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport get from 'lodash/get';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport * as upgradeAccountActions from '../../../store/actions/upgrade-account-actions';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as basketActions from '../../../store/actions/basket-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport * as upgradeFormHelper from '../helpers/form-helpers/upgrade-form-helper';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport { isEmpty, deepCopyObject } from '../../utils/obj-utils';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\nimport GTMUserActions from '../../common/utility/GTMUserActions';\r\nimport { updateTOCHUserMemberships } from '../../../../../general/js/helpers';\r\nimport { updateUserDataCookie } from '../../utils/user-data-cookie/user-data-cookie-helpers';\r\nimport { getFormContainerWideLeftClassList, toggleBemClassesForSSOFormModal } from '../helpers/form-helpers/form-modal-helpers';\r\nimport { hasValue, isNullOrUndefined, toggleCssClass } from '../../../../../general/js/general-helpers';\r\nimport { createDate } from '../../utils/date-utils';\r\nimport { MembershipTypes, redirectTo, reloadPage } from '../../../../../general/js/utils';\r\n\r\nclass UpgradeToOneClubAccountForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { formData } = this.props;\r\n\r\n const mainAddress = upgradeFormHelper.getMainAddress(formData.currentUser);\r\n const formType = get(formData, formConstants.formType, null);\r\n const birthDate = upgradeFormHelper.getDateOfBirth(formData.currentUser);\r\n\r\n this.state = {\r\n ...initialState.upgradeAccountFormState,\r\n [formConstants.title]: upgradeFormHelper.getTitle(formData.currentUser),\r\n [formConstants.dateOfBirth]: birthDate ? createDate(birthDate.year, birthDate.month, birthDate.day) : null,\r\n [formConstants.country]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.country),\r\n [formConstants.county]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.county),\r\n [formConstants.state]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.state),\r\n [formConstants.city]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.city),\r\n [formConstants.addressLine1]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine1),\r\n [formConstants.addressLine2]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine2),\r\n [formConstants.addressLine3]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine3),\r\n [formConstants.postcode]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.postcode),\r\n [formConstants.mobilePhone]: upgradeFormHelper.getMobilePhone(formData, formConstants),\r\n [formConstants.formType]: formType\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReference = React.createRef();\r\n\r\n this.displayUpgradeToOneClubAccountForm = this.displayUpgradeToOneClubAccountForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleAccountUpgradeSuccess = this.handleAccountUpgradeSuccess.bind(this);\r\n this.submitUserDetailsData = this.submitUserDetailsData.bind(this);\r\n\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n }\r\n\r\n componentDidMount() {\r\n const { onSignIn, formData, ssoFormType } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n onSignIn();\r\n }\r\n\r\n this.hideModalCloseButton();\r\n\r\n if (ssoFormType === ssoFormTypes.UpgradeToOneClubAccountFromDefault) {\r\n toggleBemClassesForSSOFormModal(this.formReference, this.props, ssoFormType);\r\n }\r\n\r\n this.updateActiveMemberships();\r\n\r\n this.updateAvailableCounties();\r\n\r\n this.updateAvailableStates();\r\n }\r\n\r\n async componentWillReceiveProps(nextProps) {\r\n const {\r\n formData,\r\n isUpgradeSuccessful,\r\n loading,\r\n retrievedUserAddress,\r\n isUserAddressRetrieveSuccessful\r\n } = nextProps;\r\n\r\n const { isSubmitAction } = this.state;\r\n\r\n this.hideModalCloseButton(nextProps);\r\n\r\n if (!loading && (!isSubmitAction && isUserAddressRetrieveSuccessful)) {\r\n const { county, state } = formData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n }\r\n\r\n if (!loading &&\r\n isUpgradeSuccessful) {\r\n updateTOCHUserMemberships('OneClub');\r\n await updateUserDataCookie(true, true);\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleAccountUpgradeSuccess);\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isUpgradeSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n this.setState(formStateHelpers.handleSubmit(false));\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.upgradeAccountFormState);\r\n actions.resetUpgradeAccountFormState();\r\n }\r\n\r\n\r\n hideModalCloseButton(nextProps = {}) {\r\n const { formData } = hasValue(nextProps) ? nextProps : this.props;\r\n const { hideCloseButton } = hasValue(formData) ? formData : { hideCloseButton: false };\r\n\r\n if (hideCloseButton) {\r\n const closeButton = document.querySelector('.modal__close');\r\n\r\n if (!isNullOrUndefined(closeButton)) {\r\n toggleCssClass(closeButton, 'is-hidden', hideCloseButton);\r\n }\r\n }\r\n }\r\n\r\n updateActiveMemberships() {\r\n const { onSignIn, formData: { activeMemberships } } = this.props;\r\n\r\n if (isEmpty(activeMemberships)) {\r\n onSignIn();\r\n }\r\n\r\n this.setState(formStateHelpers.updateActiveMemberships(activeMemberships));\r\n }\r\n\r\n updateAvailableCounties() {\r\n const { formData: { county } } = this.props;\r\n const receivedCountry = get(this.state, formConstants.country, null);\r\n\r\n this.setState(formStateHelpers.updateAvailableCounties(receivedCountry, county));\r\n }\r\n\r\n updateAvailableStates() {\r\n const { formData: { state } } = this.props;\r\n const receivedCountry = get(this.state, formConstants.country, null);\r\n\r\n this.setState(formStateHelpers.updateAvailableStates(receivedCountry, state));\r\n }\r\n\r\n handleAccountUpgradeSuccess() {\r\n const {\r\n actions,\r\n formData,\r\n userAddedToAddressBookSuccessful,\r\n saveUserToAddressBookErrorMessages\r\n } = this.props;\r\n\r\n this.setState(formStateHelpers.handleSubmit(false));\r\n\r\n const { currentUser } = hasValue(formData) ? formData : { currentUser: {} };\r\n\r\n if (!userAddedToAddressBookSuccessful && !hasValue(saveUserToAddressBookErrorMessages)) {\r\n actions.saveUserToAddressBook(formData, currentUser);\r\n return;\r\n }\r\n\r\n if (formData.reloadPage) {\r\n reloadPage();\r\n return;\r\n }\r\n\r\n if (formData.oneClubHubData === null || formData.oneClubHubData === undefined || formData.oneClubHubData.IsOneClubHubUpgrade === false) {\r\n actions.retryPurchase();\r\n } else {\r\n redirectTo(formData.oneClubHubData.ReturnUrl);\r\n }\r\n }\r\n\r\n async handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n const { reCaptcha } = this.state;\r\n\r\n if (reCaptcha) {\r\n formData.reCaptchaToken = reCaptcha;\r\n }\r\n\r\n this.setState(formStateHelpers.handleSubmit(true));\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitUserDetailsData);\r\n }\r\n\r\n submitUserDetailsData() {\r\n const { actions, formData } = this.props;\r\n const { callBackUrlPut, currentUser } = formData;\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.title]);\r\n actions.upgradeToOneClubAccount(this.state, currentUser, callBackUrlPut);\r\n\r\n GTMUserActions.trackJoinTheOneClubAction();\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onSignIn,\r\n isUpgradeSuccessful,\r\n accountUpgradeMessages,\r\n isPaymentAttemptSuccessful,\r\n purchaseAttemptMessages,\r\n formData\r\n } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n const messagesToDisplay = _.isEmpty(accountUpgradeMessages) ? purchaseAttemptMessages : accountUpgradeMessages;\r\n const isOneClub = formData.activeMemberships.includes(MembershipTypes.OneClub);\r\n const headerTitle = isOneClub ? formMessageConstants.completeToOneClubAccount : formMessageConstants.upgradeToOneClubAccount;\r\n\r\n return (\r\n \r\n
    \r\n \r\n {this.displayUpgradeToOneClubAccountForm()}\r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n displayUpgradeToOneClubAccountForm() {\r\n const { actions, formData } = this.props;\r\n const { availableCounties, country, availableStates } = this.state;\r\n const { county, mobilePhone, state } = formData;\r\n const copyOfFormData = deepCopyObject(formData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n if (formData.formType === ssoFormTypes.UpgradeToOneClubAccountFromDefault) {\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n copyOfFormData[formConstants.title].defaultValue = this.state[formConstants.title];\r\n\r\n if (this.state[formConstants.mobilePhone]) {\r\n if (!copyOfFormData[formConstants.mobilePhone].defaultValue) {\r\n copyOfFormData[formConstants.mobilePhone].defaultValue = {};\r\n copyOfFormData[formConstants.mobilePhone].defaultValue.selectedCountry = this.state[formConstants.mobilePhone].selectedCountry;\r\n copyOfFormData[formConstants.mobilePhone].defaultValue.phoneNumber = this.state[formConstants.mobilePhone].phoneNumber;\r\n }\r\n }\r\n\r\n if (this.state[formConstants.dateOfBirth] !== undefined && this.state[formConstants.dateOfBirth] instanceof Date && !isNaN(this.state[formConstants.dateOfBirth])) {\r\n if (!copyOfFormData[formConstants.dateOfBirth].defaultValue) {\r\n copyOfFormData[formConstants.dateOfBirth].defaultValue = this.state[formConstants.dateOfBirth];\r\n }\r\n }\r\n }\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event, mobilePhone.isOptional)); },\r\n handleCaptchaChange: (token) => { this.setState(formStateHelpers.handleCaptchaChange(token)); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state),\r\n () => {\r\n actions.resetRetrievedUserAddress();\r\n });\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, formData, ssoFormType } = this.props;\r\n\r\n const { desktopImageSrc, mobileImageSrc } = formData;\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n hasValue(mobileImageSrc) &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n {(isSaving || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n {\r\n hasValue(desktopImageSrc) && ssoFormType === ssoFormTypes.UpgradeToOneClubAccountFromDefault &&\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n\r\nUpgradeToOneClubAccountForm.propTypes = {\r\n onSignIn: PropTypes.func.isRequired,\r\n loading: PropTypes.bool.isRequired,\r\n formData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isUpgradeSuccessful: state.upgradeAccountForm.isUpgradeSuccessful,\r\n accountUpgradeMessages: state.upgradeAccountForm.accountUpgradeMessages,\r\n isPaymentAttemptSuccessful: state.basket.isPaymentAttemptSuccessful,\r\n purchaseAttemptMessages: state.basket.purchaseAttemptMessages,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress,\r\n userAddedToAddressBookSuccessful: state.userAccount.userAddedToAddressBookSuccessful,\r\n saveUserToAddressBookErrorMessages: state.userAccount.saveUserToAddressBookErrorMessages\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n upgradeToOneClubAccount: bindActionCreators(upgradeAccountActions.upgradeToOneClubAccount, dispatch),\r\n resetUpgradeAccountFormState: bindActionCreators(upgradeAccountActions.resetUpgradeAccountFormState, dispatch),\r\n retryPurchase: bindActionCreators(basketActions.retryPurchase, dispatch),\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch),\r\n saveUserToAddressBook: bindActionCreators(userAccountActions.saveUserToAddressBook, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(UpgradeToOneClubAccountForm);\r\n","/* eslint-disable no-useless-return */\r\nimport React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as signInFormActions from '../../../store/actions/sign-in-form-actions';\r\nimport * as upgradeAccountFormActions from '../../../store/actions/upgrade-account-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport { ssoFormTypes } from '../../utils/form-types';\r\nimport { hasValue } from '../../../../../general/js/general-helpers';\r\nimport * as upgradeFormHelper from '../helpers/form-helpers/upgrade-form-helper';\r\nimport * as signInFormHelpers from '../helpers/form-helpers/sign-in-form-helpers';\r\nimport { domainConstants } from '../../utils/constants/domain-constants';\r\nimport { getWebsiteDomain } from '../../../../../general/js/helpers';\r\nimport {\r\n MembershipTypes,\r\n getParameterByName,\r\n reloadPage,\r\n reloadToBasePage\r\n} from '../../../../../general/js/utils';\r\nimport { QueryConstants } from '../../../../../general/js/utils/query-constants';\r\n\r\nclass NewPasswordRequiredForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = initialState.newPasswordRequiredFormState;\r\n this.displayForm = this.displayForm.bind(this);\r\n this.displayNewPasswordRequiredForm = this.displayNewPasswordRequiredForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.submitNewPasswordData = this.submitNewPasswordData.bind(this);\r\n this.handleSignInSuccess = this.handleSignInSuccess.bind(this);\r\n this.loadNewPasswordRequiredForm = this.loadNewPasswordRequiredForm.bind(this);\r\n this.loadSSOSignInSuccessFormData = this.loadSSOSignInSuccessFormData.bind(this);\r\n this.loadSSOUpgradeToOneClubFormData = this.loadSSOUpgradeToOneClubFormData.bind(this);\r\n this.getNextComponentToRender = this.getNextComponentToRender.bind(this);\r\n\r\n this.loadNewPasswordRequiredForm();\r\n this.loadSSOSignInSuccessFormData();\r\n }\r\n\r\n loadNewPasswordRequiredForm() {\r\n const {\r\n actions,\r\n cognitoUser,\r\n onSignIn,\r\n formData\r\n } = this.props;\r\n\r\n if (isEmpty(cognitoUser)) {\r\n onSignIn();\r\n return;\r\n }\r\n\r\n if (isEmpty(formData)) {\r\n actions.loadNewPasswordRequiredFormData();\r\n }\r\n }\r\n\r\n loadSSOSignInSuccessFormData() {\r\n const { actions } = this.props;\r\n\r\n actions.loadSSOSignInSuccessFormData();\r\n }\r\n\r\n loadSSOUpgradeToOneClubFormData() {\r\n const { actions } = this.props;\r\n\r\n actions.loadSSOUpgradeToOneClubFormData();\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isNewPasswordSavedSuccessful,\r\n loading,\r\n cognitoUser\r\n } = nextProps;\r\n\r\n if (!loading && isNewPasswordSavedSuccessful) {\r\n this.handleSignInSuccess(cognitoUser, nextProps);\r\n return;\r\n }\r\n\r\n if (!loading && !isNewPasswordSavedSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.signInFormState);\r\n actions.resetSignInFormState();\r\n }\r\n\r\n handleSignInSuccess(cognitoUser, nextProps) {\r\n const { onResetSuccess, signInSuccessFormData, upgradeToOneClubFormData } = nextProps;\r\n\r\n const website = getWebsiteDomain();\r\n if (!hasValue(upgradeToOneClubFormData) && website === domainConstants.theOpen) {\r\n this.loadSSOUpgradeToOneClubFormData();\r\n }\r\n\r\n this.setState(formStateHelpers.updateProcessingState(false), () => {\r\n const isOneClub = cognitoUser.challengeParam.userAttributes['custom:Membership'].includes(MembershipTypes.OneClub);\r\n const optIns = JSON.parse(cognitoUser.challengeParam.userAttributes['custom:OptIns']);\r\n\r\n\r\n if (isOneClub && website === domainConstants.theOpen) {\r\n //check if should render upgrade to One Club account\r\n if (hasValue(upgradeToOneClubFormData)) {\r\n const currentUser = upgradeToOneClubFormData.currentUser;\r\n const hasOneClubRequiredFields = upgradeFormHelper.hasOneClubRequiredFields(currentUser, optIns);\r\n if (!hasOneClubRequiredFields) {\r\n onResetSuccess(upgradeToOneClubFormData, ssoFormTypes.UpgradeToOneClubAccountFromDefault);\r\n return;\r\n }\r\n }\r\n } else {\r\n const hasAgreeToPrivacyPolicyChecked = signInFormHelpers.hasAgreeToPrivacyPolicyChecked(optIns);\r\n\r\n if (!hasAgreeToPrivacyPolicyChecked) {\r\n onResetSuccess(signInSuccessFormData, ssoFormTypes.SignInSuccess);\r\n return;\r\n }\r\n\r\n if (isEmpty(getParameterByName(QueryConstants.SHOW_POPUP))) {\r\n reloadPage();\r\n return;\r\n }\r\n\r\n reloadToBasePage();\r\n }\r\n });\r\n }\r\n\r\n getNextComponentToRender(optIns) {\r\n if (optIns.agreedToPrivacyPolicy === undefined || optIns.agreedToPrivacyPolicy === false) return true;\r\n\r\n return false;\r\n }\r\n\r\n displayForm() {\r\n const {\r\n loading,\r\n onSignIn,\r\n isNewPasswordSavedSuccessful,\r\n newPasswordSavedMessages,\r\n isNewPasswordRequiredFormDataLoadedSuccessful,\r\n loadPasswordRequiredFormDataMessages,\r\n formData\r\n } = this.props;\r\n const { formTitle } = formData;\r\n\r\n if (!loading &&\r\n !isNewPasswordRequiredFormDataLoadedSuccessful &&\r\n isEmpty(formData)) {\r\n return \r\n \r\n \r\n ;\r\n }\r\n\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n {this.displayNewPasswordRequiredForm()}\r\n \r\n \r\n \r\n
    );\r\n }\r\n\r\n displayNewPasswordRequiredForm() {\r\n const { formData } = this.props;\r\n\r\n return FormBuilder({\r\n formData,\r\n formReferences: this.formReferences,\r\n handleFieldChange: (event) => {\r\n this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target));\r\n },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n }\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateProcessingState(true), this.submitNewPasswordData);\r\n }\r\n\r\n submitNewPasswordData() {\r\n const { actions, cognitoUser, formData } = this.props;\r\n const { password } = this.state;\r\n const { maxIdleTimeInSeconds } = formData;\r\n const actionSuccessText = formData.actionSuccessText || formMessageConstants.newPasswordRequiredSuccessText;\r\n\r\n actions.handleNewPasswordRequired({\r\n password,\r\n cognitoUser,\r\n maxIdleTimeInSeconds,\r\n actionSuccessText\r\n });\r\n }\r\n\r\n render() {\r\n const { isProcessing } = this.state;\r\n const { loading } = this.props;\r\n return (\r\n
    \r\n
    \r\n
    \r\n {(isProcessing || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nNewPasswordRequiredForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onSignIn: PropTypes.func.isRequired,\r\n cognitoUser: PropTypes.object.isRequired,\r\n onResetSuccess: PropTypes.func.isRequired,\r\n signInSuccessFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n isNewPasswordRequiredFormDataLoadedSuccessful: state.signInForm.isNewPasswordRequiredFormDataLoadedSuccessful,\r\n loadPasswordRequiredFormDataMessages: state.signInForm.loadPasswordRequiredFormDataMessages,\r\n formData: state.signInForm.newPasswordRequiredFormData,\r\n isNewPasswordSavedSuccessful: state.signInForm.isNewPasswordSavedSuccessful,\r\n newPasswordSavedMessages: state.signInForm.newPasswordSavedMessages,\r\n signInSuccessFormData: state.signInForm.signInSuccessFormData,\r\n upgradeToOneClubFormData: state.upgradeAccountForm.upgradeToOneClubFormData\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadNewPasswordRequiredFormData: bindActionCreators(signInFormActions.loadNewPasswordRequiredFormData, dispatch),\r\n handleNewPasswordRequired: bindActionCreators(signInFormActions.handleNewPasswordRequired, dispatch),\r\n resetSignInFormState: bindActionCreators(signInFormActions.resetSignInFormState, dispatch),\r\n loadSSOSignInSuccessFormData: bindActionCreators(signInFormActions.loadSSOSignInSuccessFormData, dispatch),\r\n loadSSOUpgradeToOneClubFormData: bindActionCreators(upgradeAccountFormActions.loadSSOUpgradeToOneClubFormData, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(NewPasswordRequiredForm);\r\n","import React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { isEmpty, deepCopyObject } from '../../utils/obj-utils';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as registerFormActions from '../../../store/actions/register-form-actions';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\n\r\nclass RaMembersRegisterForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { registerFormData, ssoDomain } = this.props;\r\n\r\n this.state = {\r\n ...initialState.raMembersRegisterFormState,\r\n registerFormData,\r\n ssoDomain\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n\r\n this.loadRegisterFormData = this.loadRegisterFormData.bind(this);\r\n this.displayRaMembersRegisterForm = this.displayRaMembersRegisterForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleUserRegisterSuccess = this.handleUserRegisterSuccess.bind(this);\r\n this.submitRegisterData = this.submitRegisterData.bind(this);\r\n this.finishFormSubmit = this.finishFormSubmit.bind(this);\r\n\r\n this.loadRegisterFormData();\r\n }\r\n\r\n loadRegisterFormData() {\r\n const { actions, registerFormData } = this.props;\r\n\r\n if (isEmpty(registerFormData)) {\r\n actions.loadSSORegisterFormData();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isRegisterSuccessful,\r\n registerFormData,\r\n loading,\r\n isUserAddressRetrieveSuccessful,\r\n retrievedUserAddress\r\n } = nextProps;\r\n\r\n if (!loading && isUserAddressRetrieveSuccessful) {\r\n const { county, state } = registerFormData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n }\r\n\r\n if (!isEmpty(registerFormData) && isEmpty(this.formReferences)) {\r\n this.formReferences = formScrollHelpers.getFormReferences(registerFormData);\r\n }\r\n\r\n if (!loading &&\r\n isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserRegisterSuccess);\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isRegisterSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.ticketingRegisterFormState);\r\n actions.resetRegisterFormState();\r\n }\r\n\r\n handleUserRegisterSuccess() {\r\n const { onUserRegisterSuccess } = this.props;\r\n const {\r\n formType,\r\n actionSuccessText,\r\n requestEmailVerificationCallbackUrl,\r\n requestEmailVerificationActionSuccessText\r\n } = this.props.registerFormData;\r\n onUserRegisterSuccess(this.state[formConstants.emailAddress],\r\n {\r\n registerFormType: formType,\r\n successText: actionSuccessText,\r\n emailVerificationCallbackUrl: requestEmailVerificationCallbackUrl,\r\n emailVerificationActionSuccessText: requestEmailVerificationActionSuccessText\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { registerFormData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(registerFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitRegisterData);\r\n }\r\n\r\n submitRegisterData() {\r\n const { registerFormData } = this.props;\r\n\r\n if (registerFormData.membership) {\r\n this.setState({ membership: registerFormData.membership, ssoEmailNotificationSettingsFields: registerFormData.ssoEmailNotificationSettingsFields }, () => {\r\n this.finishFormSubmit();\r\n });\r\n return;\r\n }\r\n\r\n this.finishFormSubmit();\r\n }\r\n\r\n finishFormSubmit() {\r\n const { actions, registerFormData } = this.props;\r\n const { callBackUrl } = registerFormData;\r\n const actionSuccessText = registerFormData.actionSuccessText || formMessageConstants.registrationSuccessText;\r\n\r\n registerFormData.zoneInfo = formConstants.isRAMembersRegister;\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.dateOfBirth]);\r\n actions.registerNewUser(this.state, actionSuccessText, callBackUrl);\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onSignIn,\r\n onForgotPassword,\r\n isRegisterSuccessful,\r\n userRegistrationMessages,\r\n registerFormData\r\n } = this.props;\r\n\r\n if (isEmpty(registerFormData)) {\r\n return null;\r\n }\r\n\r\n const { formHeader } = registerFormData;\r\n\r\n return (\r\n \r\n
    \r\n \r\n {this.displayRaMembersRegisterForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displayRaMembersRegisterForm() {\r\n const { actions, registerFormData } = this.props;\r\n const { availableCounties, country, availableStates } = this.state;\r\n const { county, state } = registerFormData;\r\n const copyOfRegisterFormData = deepCopyObject(registerFormData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfRegisterFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfRegisterFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfRegisterFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfRegisterFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfRegisterFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfRegisterFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfRegisterFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfRegisterFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfRegisterFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n\r\n return FormBuilder({\r\n formData: copyOfRegisterFormData,\r\n formReferences: this.formReferences,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target)); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleConfirmPasswordChange: (event) => { this.setState(formStateHelpers.handleConfirmPasswordFieldChange(event.target)); },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event)); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event)); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state),\r\n () => {\r\n actions.resetRetrievedUserAddress();\r\n });\r\n },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, registerFormData } = this.props;\r\n\r\n if (isEmpty(registerFormData)) return null;\r\n\r\n const { formBanner } = registerFormData;\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {(isSaving || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nRaMembersRegisterForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onSignIn: PropTypes.func.isRequired,\r\n onUserRegisterSuccess: PropTypes.func.isRequired,\r\n ssoDomain: PropTypes.string,\r\n registerFormData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n registerFormData: _.isEmpty(ownProps.registerFormData) ? state.registerForm.registerFormData : ownProps.registerFormData,\r\n isRegisterSuccessful: state.registerForm.isRegisterSuccessful,\r\n userRegistrationMessages: state.registerForm.userRegistrationMessages,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadSSORegisterFormData: bindActionCreators(registerFormActions.loadSSORaMembersRegisterFormData, dispatch),\r\n registerNewUser: bindActionCreators(registerFormActions.registerNewUser, dispatch),\r\n resetRegisterFormState: bindActionCreators(registerFormActions.resetRegisterFormState, dispatch),\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(RaMembersRegisterForm);\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { bindActionCreators } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport * as signInFormActions from '../../../store/actions/sign-in-form-actions';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport { isEmpty } from '../../utils/obj-utils';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport SSOFormHeader from '../../common/utility/SSOFormHeader';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport {\r\n getParameterByName,\r\n redirectTo,\r\n reloadPage,\r\n reloadToBasePage\r\n} from '../../../../../general/js/utils';\r\nimport { QueryConstants } from '../../../../../general/js/utils/query-constants';\r\n\r\nclass RaMembersSignInForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = initialState.signInFormState;\r\n\r\n this.displaySignInForm = this.displaySignInForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.submitSignInData = this.submitSignInData.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleSignInSuccess = this.handleSignInSuccess.bind(this);\r\n this.loadSignInFormData = this.loadSignInFormData.bind(this);\r\n\r\n\r\n this.loadSignInFormData();\r\n }\r\n\r\n loadSignInFormData() {\r\n const { actions, signInFormData } = this.props;\r\n\r\n if (isEmpty(signInFormData)) {\r\n actions.loadRaMembersSignInFormData();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n isSignInSuccessful,\r\n isNewPasswordRequired,\r\n cognitoUser,\r\n onNewPasswordRequired,\r\n loading\r\n } = nextProps;\r\n\r\n if (!loading && !isNewPasswordRequired && isSignInSuccessful) {\r\n this.handleSignInSuccess();\r\n }\r\n\r\n if (!loading && isNewPasswordRequired && isSignInSuccessful) {\r\n onNewPasswordRequired(cognitoUser);\r\n }\r\n\r\n if (!loading && !isSignInSuccessful) {\r\n this.setState(formStateHelpers.updateProcessingState(false));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.signInFormState);\r\n actions.resetSignInFormState();\r\n }\r\n\r\n handleSignInSuccess() {\r\n this.setState(formStateHelpers.updateProcessingState(false), () => {\r\n const redirectToAddress = getParameterByName(QueryConstants.REDIRECT_TO);\r\n const showPopup = getParameterByName(QueryConstants.SHOW_POPUP);\r\n\r\n if (!isEmpty(redirectToAddress)) {\r\n redirectTo(redirectToAddress);\r\n return;\r\n }\r\n\r\n if (isEmpty(showPopup)) {\r\n reloadPage();\r\n return;\r\n }\r\n\r\n reloadToBasePage();\r\n });\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { signInFormData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(signInFormData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (!this.state.formHasErrors) {\r\n this.setState(formStateHelpers.updateProcessingState(true), this.submitSignInData);\r\n }\r\n }\r\n\r\n submitSignInData() {\r\n const { actions, signInFormData } = this.props;\r\n const { actionSuccessText } = signInFormData;\r\n const {\r\n userName,\r\n emailAddress,\r\n password\r\n } = this.state;\r\n const { maxIdleTimeInSeconds } = signInFormData;\r\n\r\n actions.signInUser({\r\n userName,\r\n emailAddress,\r\n password,\r\n actionSuccessText,\r\n maxIdleTimeInSeconds\r\n });\r\n }\r\n\r\n displayForm() {\r\n const {\r\n onForgotPassword,\r\n onRegister,\r\n signInFormData,\r\n isSignInSuccessful,\r\n signInMessages\r\n } = this.props;\r\n\r\n if (isEmpty(signInFormData)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n \r\n {this.displaySignInForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displaySignInForm() {\r\n const { signInFormData } = this.props;\r\n return FormBuilder({\r\n formData: signInFormData,\r\n formReferences: this.formReferences,\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target)); },\r\n handleFieldValidState: (fieldName) => { const { errors } = this.state; return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors); },\r\n });\r\n }\r\n\r\n render() {\r\n const { loading } = this.props;\r\n const { isProcessing } = this.state;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {isProcessing || loading ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nRaMembersSignInForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onForgotPassword: PropTypes.func.isRequired,\r\n onRegister: PropTypes.func.isRequired,\r\n onNewPasswordRequired: PropTypes.func.isRequired,\r\n signInFormData: PropTypes.object,\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n signInFormData: state.signInForm.signInFormData,\r\n isSignInSuccessful: state.signInForm.isSignInSuccessful,\r\n isNewPasswordRequired: state.signInForm.isNewPasswordRequired,\r\n cognitoUser: state.signInForm.cognitoUser,\r\n signInMessages: state.signInForm.signInMessages\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n loadRaMembersSignInFormData: bindActionCreators(signInFormActions.loadRaMembersSignInFormData, dispatch),\r\n signInUser: bindActionCreators(signInFormActions.signInUser, dispatch),\r\n resetSignInFormState: bindActionCreators(signInFormActions.resetSignInFormState, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(RaMembersSignInForm);\r\n","import _, { fromPairs } from 'lodash';\r\nimport { formConstants } from '../../../utils/constants/form-constants';\r\nimport { isEmpty } from '../../../utils/obj-utils';\r\nimport { createDateFromExisting } from '../../../utils/date-utils';\r\nimport { domainConstants } from '../../../utils/constants/domain-constants';\r\n'../../utils/constants/domain-constants';\r\n\r\nconst RaMembersSummaryDetailsFormData = (\r\n formData,\r\n userAccountData\r\n) => {\r\n function buildRaMembersSummaryDetailsFormData() {\r\n const raMembersFormData = getRaMembersSummaryUserDetailsFields();\r\n return getRaMembersSummaryUserDetailsFieldsWithDefaultValues(raMembersFormData);\r\n }\r\n\r\n function getRaMembersSummaryUserDetailsFields() {\r\n const { requestEmailVerificationActionSuccessText, callBackUrl } = formData;\r\n\r\n formData[formConstants.callBackUrl] = callBackUrl;\r\n formData[formConstants.ssoDomain] = formData[formConstants.ssoDomain];\r\n formData[formConstants.actionSuccessText] = requestEmailVerificationActionSuccessText;\r\n formData[formConstants.emailAddress] = formData[formConstants.emailAddress];\r\n formData[formConstants.confirmEmailAddress] = formData[formConstants.confirmEmailAddress];\r\n formData[formConstants.title] = formData[formConstants.title];\r\n formData[formConstants.firstName] = formData[formConstants.firstName];\r\n formData[formConstants.lastName] = formData[formConstants.lastName];\r\n formData[formConstants.dateOfBirth] = formData[formConstants.dateOfBirth];\r\n formData[formConstants.mainAddressLabel] = formData[formConstants.mainAddressLabel];\r\n formData[formConstants.country] = formData[formConstants.country];\r\n formData[formConstants.county] = formData[formConstants.county];\r\n formData[formConstants.state] = formData[formConstants.state];\r\n formData[formConstants.addressLine1] = formData[formConstants.addressLine1];\r\n formData[formConstants.addressLine2] = formData[formConstants.addressLine2];\r\n formData[formConstants.addressLine3] = formData[formConstants.addressLine3];\r\n formData[formConstants.city] = formData[formConstants.city];\r\n formData[formConstants.postcode] = formData[formConstants.postcode];\r\n formData[formConstants.mobilePhone] = formData[formConstants.mobilePhone];\r\n formData[formConstants.becomeOneClubMemberInfo] = formData[formConstants.becomeOneClubMemberInfo];\r\n formData[formConstants.offersDetails] = formData[formConstants.offersDetails];\r\n formData[formConstants.privacyPolicy] = formData[formConstants.privacyPolicy];\r\n formData[formConstants.raMemberId] = formData[formConstants.raMemberId];\r\n \r\n return formData;\r\n }\r\n\r\n function getRaMembersSummaryUserDetailsFieldsWithDefaultValues(formData) {\r\n\r\n formData[formConstants.emailAddress].defaultValue = userAccountData[formConstants.email];\r\n formData[formConstants.title].defaultValue = userAccountData[formConstants.title];\r\n formData[formConstants.firstName].defaultValue = userAccountData[formConstants.firstName];\r\n formData[formConstants.lastName].defaultValue = userAccountData[formConstants.lastName];\r\n formData[formConstants.raMemberId].defaultValue = userAccountData[formConstants.raMemberId];\r\n\r\n if (!_.isEmpty(userAccountData[formConstants.mobilePhone])) {\r\n formData[formConstants.mobilePhone].defaultValue = {};\r\n\r\n const userMobilePhone = _.cloneDeep(userAccountData[formConstants.mobilePhone]);\r\n\r\n const userCountryCodeMobilePhonePrefix = userAccountData[formConstants.countryCodeMobilePhonePrefix];\r\n\r\n const selectedCountry = getSelectedCountry(formData, userCountryCodeMobilePhonePrefix, userMobilePhone);\r\n\r\n formData[formConstants.mobilePhone].defaultValue.selectedCountry = selectedCountry;\r\n\r\n formData[formConstants.mobilePhone].defaultValue.phoneNumber = userMobilePhone.replace(selectedCountry.phonePrefix, '');\r\n }\r\n\r\n if (userAccountData.dateOfBirth !== undefined) {\r\n formData[formConstants.dateOfBirth].defaultValue = createDateFromExisting(userAccountData.dateOfBirth);\r\n }\r\n\r\n let mainAddress = {};\r\n if (!isEmpty(userAccountData.addresses)) {\r\n const foundAddress = userAccountData.addresses.find((address) => address.main);\r\n mainAddress = isEmpty(foundAddress) ? {} : foundAddress;\r\n }\r\n\r\n formData[formConstants.addressLine1].defaultValue = mainAddress.addressLine1;\r\n formData[formConstants.addressLine2].defaultValue = mainAddress.addressLine2;\r\n formData[formConstants.addressLine3].defaultValue = mainAddress.addressLine3;\r\n formData[formConstants.postcode].defaultValue = mainAddress.postcode;\r\n formData[formConstants.city].defaultValue = mainAddress.city;\r\n formData[formConstants.country].defaultValue = mainAddress.country;\r\n formData[formConstants.county].defaultValue = mainAddress.county;\r\n formData[formConstants.state].defaultValue = mainAddress.state;\r\n\r\n const optIns = userAccountData[formConstants.optIns];\r\n formData[formConstants.offersDetails].defaultValue =\r\n {\r\n [formConstants.refuseOffers]: !optIns.optedTheOpenOffersByEmail,\r\n [formConstants.acceptOffers]: optIns.optedPartnerOffersByEmail\r\n };\r\n\r\n formData[formConstants.privacyPolicy].defaultValue = optIns.agreedToPrivacyPolicy;\r\n\r\n return formData;\r\n }\r\n\r\n return buildRaMembersSummaryDetailsFormData();\r\n};\r\n\r\nfunction getSelectedCountry(formData, userCountryCodeMobilePhonePrefix, userMobilePhone) {\r\n\r\n let selectedCountry = formData[formConstants.country].options\r\n .find((country) => !_.isEmpty(country.phonePrefix) &&\r\n country.code === userCountryCodeMobilePhonePrefix);\r\n\r\n if (selectedCountry)\r\n return selectedCountry;\r\n\r\n selectedCountry = formData[formConstants.country].options\r\n .find((country) => !_.isEmpty(country.phonePrefix) &&\r\n userMobilePhone.includes(country.phonePrefix));\r\n\r\n return selectedCountry;\r\n}\r\n\r\nexport default RaMembersSummaryDetailsFormData;\r\n","import React, { Component, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { formMessageConstants } from '../../utils/constants/form-message-constants';\r\nimport { formFieldConstants } from '../../utils/constants/form-field-constants';\r\nimport { formConstants } from '../../utils/constants/form-constants';\r\nimport initialState from '../helpers/form-helpers/initial-state';\r\nimport { isEmpty, deepCopyObject } from '../../utils/obj-utils';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport FormMessage from '../../common/utility/FormMessage';\r\nimport FormBuilder from '../helpers/form-builder';\r\nimport * as upgradeAccountActions from '../../../store/actions/upgrade-account-actions';\r\nimport * as userAddressActions from '../../../store/actions/user-address-actions';\r\nimport * as userAccountActions from '../../../store/actions/user-account-actions';\r\nimport * as formScrollHelpers from '../helpers/form-scroll-helper';\r\nimport * as formStateHelpers from '../helpers/form-helpers/form-state-helper';\r\nimport * as formFieldDisplayHelpers from '../helpers/form-helpers/form-field-display-helpers';\r\nimport { findOptionInSelectField } from '../helpers/form-helpers/form-field-helpers';\r\nimport SSOFormFooter from '../../common/utility/SSOFormFooter';\r\nimport * as upgradeFormHelper from '../helpers/form-helpers/upgrade-form-helper';\r\nimport RaMembersSummaryDetailsFormData from '../ra-members/helpers/ra-members-summary-form-data';\r\nimport * as signInFormActions from '../../../store/actions/sign-in-form-actions';\r\nimport RegisterFormBanner from '../one-club-register/RegisterFormBanner';\r\n\r\nclass RaMembersSummaryForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n const { formData, ssoDomain } = this.props;\r\n\r\n const mainAddress = upgradeFormHelper.getMainAddress(formData.currentUser);\r\n\r\n this.state = {\r\n ...initialState.upgradeRaMembersFormState,\r\n [formConstants.country]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.country),\r\n [formConstants.county]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.county),\r\n [formConstants.state]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.state),\r\n [formConstants.city]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.city),\r\n [formConstants.addressLine1]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine1),\r\n [formConstants.addressLine2]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine2),\r\n [formConstants.addressLine3]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.addressLine3),\r\n [formConstants.postcode]: upgradeFormHelper.getPropertyFromMainAddress(mainAddress, formConstants.postcode),\r\n ssoDomain,\r\n userDataLoaded:false\r\n };\r\n\r\n this.formMessageRef = React.createRef();\r\n this.formReferences = formScrollHelpers.getFormReferences(formData);\r\n\r\n this.displayRaMembersSummaryForm = this.displayRaMembersSummaryForm.bind(this);\r\n this.displayForm = this.displayForm.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleValidationResult = this.handleValidationResult.bind(this);\r\n this.handleUserUpdateRaMembersSummarySuccess = this.handleUserUpdateRaMembersSummarySuccess.bind(this);\r\n this.submitRaMembersSummaryData = this.submitRaMembersSummaryData.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const { onSignIn, formData, actions } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n onSignIn();\r\n }\r\n\r\n const { callBackUrl } = formData;\r\n actions.getUserAccountData(callBackUrl, false);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n const {\r\n formData,\r\n isUpgradeSuccessful,\r\n loading,\r\n retrievedUserAddress,\r\n isUserAddressRetrieveSuccessful,\r\n isUserAccountDataLoadedSuccessful,\r\n userAccountData\r\n } = nextProps;\r\n\r\n const {userDataLoaded} = this.state;\r\n\r\n if (!loading && isUserAddressRetrieveSuccessful && !isUpgradeSuccessful) {\r\n const { county, state } = formData;\r\n this.setState(formStateHelpers.handleAddressDataChange(retrievedUserAddress, county, state));\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n isUpgradeSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false), this.handleUserUpdateBallotSummarySuccess);\r\n return;\r\n }\r\n\r\n if (!loading &&\r\n !isUpgradeSuccessful) {\r\n this.setState(formStateHelpers.updateSavingState(false),\r\n () => {\r\n formScrollHelpers.scrollToField(this.formMessageRef);\r\n });\r\n }\r\n\r\n if (!loading && !isEmpty(userAccountData) &&\r\n isUserAccountDataLoadedSuccessful && !userDataLoaded) {\r\n this.updateUserAccountData(userAccountData);\r\n }\r\n }\r\n\r\n updateUserAccountData(nextUserAccountData) {\r\n const { formData } = this.props;\r\n\r\n const userAccountData = _.cloneDeep(nextUserAccountData);\r\n\r\n const userDetailsFormData = new RaMembersSummaryDetailsFormData(formData, userAccountData);\r\n\r\n this.setState(formStateHelpers.updateFormFields(userDetailsFormData));\r\n\r\n this.setState(\r\n (prevState) => ({\r\n ...prevState,\r\n userDetailsFormData,\r\n userDataLoaded:true\r\n })\r\n );\r\n }\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n this.setState(initialState.upgradeAccountFormState);\r\n actions.resetUpgradeAccountFormState();\r\n }\r\n\r\n handleUserUpdateRaMembersSummarySuccess() {\r\n const { actions } = this.props;\r\n actions.retryPurchase();\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n const { formData } = this.props;\r\n this.setState(formStateHelpers.handleFormValidation(formData), this.handleValidationResult);\r\n }\r\n\r\n handleValidationResult() {\r\n if (this.state.formHasErrors) {\r\n const { errors } = this.state;\r\n formScrollHelpers.scrollToInvalidField(errors, this.formReferences);\r\n return;\r\n }\r\n\r\n this.setState(formStateHelpers.updateSavingState(true), this.submitRaMembersSummaryData);\r\n }\r\n\r\n submitRaMembersSummaryData() {\r\n const { actions, formData, userAccountData } = this.props;\r\n const { callBackUrl } = formData;\r\n\r\n formScrollHelpers.scrollToField(this.formReferences[formConstants.title]);\r\n actions.upgradeRaMembersSummaryAccount(this.state, userAccountData, callBackUrl);\r\n signInFormActions.setRaMembersCookie();\r\n }\r\n\r\n displayForm() {\r\n const {\r\n isUpgradeSuccessful,\r\n accountUpgradeMessages,\r\n purchaseAttemptMessages,\r\n formData\r\n } = this.props;\r\n\r\n if (isEmpty(formData)) {\r\n return null;\r\n }\r\n\r\n const messagesToDisplay = _.isEmpty(accountUpgradeMessages) ? purchaseAttemptMessages : accountUpgradeMessages;\r\n\r\n return (\r\n
    \r\n \r\n {this.displayRaMembersSummaryForm()}\r\n \r\n \r\n
    );\r\n }\r\n\r\n displayRaMembersSummaryForm() {\r\n const { actions, formData } = this.props;\r\n const { availableCounties, country, availableStates } = this.state;\r\n const { county, state } = formData;\r\n const copyOfFormData = deepCopyObject(formData);\r\n const stateFieldDefaultValue = findOptionInSelectField(copyOfFormData[formConstants.state], this.state[formConstants.state], formFieldConstants.selectFieldOptionsCode);\r\n\r\n copyOfFormData[formConstants.country].defaultValue = this.state[formConstants.country];\r\n copyOfFormData[formConstants.county].defaultValue = this.state[formConstants.county];\r\n copyOfFormData[formConstants.state].defaultValue = stateFieldDefaultValue;\r\n copyOfFormData[formConstants.city].defaultValue = this.state[formConstants.city];\r\n copyOfFormData[formConstants.addressLine1].defaultValue = this.state[formConstants.addressLine1];\r\n copyOfFormData[formConstants.addressLine2].defaultValue = this.state[formConstants.addressLine2];\r\n copyOfFormData[formConstants.addressLine3].defaultValue = this.state[formConstants.addressLine3];\r\n copyOfFormData[formConstants.postcode].defaultValue = this.state[formConstants.postcode];\r\n\r\n return FormBuilder({\r\n formData: copyOfFormData,\r\n formReferences: this.formReferences,\r\n countryData: { selectedCountry: country },\r\n countyData: { availableCounties, label: county ? county.label : formMessageConstants.emptyString },\r\n stateData: { availableStates, label: state ? state.label : formMessageConstants.emptyString },\r\n handleChange: (event) => { this.setState(formStateHelpers.handleFieldChange(event.target), this.updateFormData); },\r\n handleFieldChange: (event) => { this.setState(formStateHelpers.handleFieldChangeWithValidation(event.target), this.updateFormData); },\r\n handleDateChange: (event) => { this.setState(formStateHelpers.handleDateChange(event), this.updateFormData); },\r\n handleMobilePhoneChange: (event) => { this.setState(formStateHelpers.handleMobilePhoneChange(event), this.updateFormData); },\r\n handleRaMemberIdChange: (event) => { this.setState(formStateHelpers.handleRaMemberIdChange(event), this.updateFormData); },\r\n handleCountryChange: (event) => {\r\n this.setState(formStateHelpers.handleCountryChange(event.target, county, state),);\r\n },\r\n handleFieldValidState: (fieldName) => {\r\n const { errors } = this.state;\r\n return formFieldDisplayHelpers.handleFieldValidState(fieldName, errors);\r\n },\r\n });\r\n }\r\n\r\n render() {\r\n const { isSaving } = this.state;\r\n const { loading, formData } = this.props;\r\n const { formBanner } = formData;\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {(isSaving || loading) ? / : null}\r\n {this.displayForm()}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nRaMembersSummaryForm.propTypes = {\r\n loading: PropTypes.bool.isRequired,\r\n onSignIn: PropTypes.func.isRequired,\r\n ssoDomain: PropTypes.string,\r\n formData: PropTypes.object\r\n};\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n formData: _.isEmpty(ownProps.formData) ? state.registerForm.formData : ownProps.formData,\r\n isUpgradeSuccessful: state.upgradeAccountForm.isUpgradeSuccessful,\r\n accountUpgradeMessages: state.upgradeAccountForm.accountUpgradeMessages,\r\n isUserAddressRetrieveSuccessful: state.userAddressSearchData.isUserAddressRetrieveSuccessful,\r\n retrieveAddressMessages: state.userAddressSearchData.retrieveAddressMessages,\r\n retrievedUserAddress: state.userAddressSearchData.retrievedUserAddress,\r\n userAccountData: state.userAccount.userAccountData,\r\n isUserAccountDataLoadedSuccessful: state.userAccount.isUserAccountDataLoadedSuccessful,\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n upgradeRaMembersSummaryAccount: bindActionCreators(upgradeAccountActions.upgradeRaMembersSummaryAccount, dispatch),\r\n resetUpgradeAccountFormState: bindActionCreators(upgradeAccountActions.resetUpgradeAccountFormState, dispatch),\r\n resetRetrievedUserAddress: bindActionCreators(userAddressActions.resetRetrievedUserAddress, dispatch),\r\n getUserAccountData: bindActionCreators(userAccountActions.getUserAccountData, dispatch),\r\n }\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(RaMembersSummaryForm);\r\n","/* eslint-disable no-nested-ternary */\r\nimport React, { useState, useEffect, Fragment } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport _ from 'lodash';\r\nimport { Auth } from 'aws-amplify';\r\nimport FormSpinner from '../../common/utility/FormSpinner';\r\nimport * as upgradeAccountActions from '../../../store/actions/upgrade-account-actions';\r\nimport { hasValue, isNullOrUndefined, toggleCssClass } from '../../../../../general/js/general-helpers';\r\nimport { MembershipTypes, getDestructuredTextWithMultipleLinks, getMultilineText } from '../../../../../general/js/utils';\r\n\r\nfunction SignInSuccessForm({\r\n actions,\r\n formData,\r\n loading,\r\n}) {\r\n const [agreedPrivacyPolicy, setAgreePrivacyPolicy] = useState(false);\r\n const [displayForm, setDisplayForm] = useState(false);\r\n const [agreedTermsAndConditions, setAgreeTermsAndConditions] = useState(false);\r\n const [isOneClubMember, setIsOneClubMember] = useState(false);\r\n\r\n toggleModalCloseButton(formData);\r\n\r\n useEffect(() => {\r\n Auth.currentAuthenticatedUser().then((user) => {\r\n setIsOneClubMember(user.attributes['custom:Membership'].includes(MembershipTypes.OneClub));\r\n setAgreePrivacyPolicy(JSON.parse(user.attributes['custom:OptIns']).agreedToPrivacyPolicy);\r\n setAgreeTermsAndConditions(JSON.parse(user.attributes['custom:OptIns']).agreedToTermsAndConditions);\r\n setDisplayForm(true);\r\n }).catch((err) => { console.log(err); });\r\n });\r\n\r\n return (\r\n
    \r\n {loading || !displayForm ? / : null}\r\n
    \r\n {displayForm ? \r\n {\r\n isOneClubMember && !agreedTermsAndConditions ?\r\n :\r\n !agreedPrivacyPolicy &&\r\n \r\n }\r\n : null}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nfunction toggleModalCloseButton(formData = {}, displayButton = false) {\r\n const { hideCloseButton } = hasValue(formData) ? (displayButton === true ? { hideCloseButton: false } : formData) : { hideCloseButton: false };\r\n\r\n const closeButton = document.querySelector('.modal__close');\r\n\r\n if (!isNullOrUndefined(closeButton)) {\r\n toggleCssClass(closeButton, 'is-hidden', hideCloseButton);\r\n }\r\n}\r\n\r\nfunction MultiLineMessage({ messageParagraphs, show }) {\r\n return (
    \r\n {\r\n messageParagraphs.map((message) => {\r\n return

    {message}


    ;\r\n })\r\n }\r\n
    );\r\n}\r\n\r\nfunction PrivacyPolicyMessage(props) {\r\n const { formData, actions } = props;\r\n\r\n const [hideSaveButton, setHideSaveButton] = useState(true);\r\n const [showSuccessMessage, setShowSuccessMessage] = useState(false);\r\n\r\n const { privacyAndPolicy, successMessage, privacyPolicyMessage } = formData;\r\n\r\n const messageParagraphs = getMultilineText(privacyPolicyMessage);\r\n const successMessageParagraphs = getMultilineText(successMessage);\r\n\r\n const updatePrivacyPolicy = (event) => {\r\n event.preventDefault();\r\n\r\n actions.agreeToPrivacyPolicyAndTermsAndConditions(formData.callbackUrl, true, null).then(() => {\r\n toggleModalCloseButton(formData, true);\r\n setShowSuccessMessage(true);\r\n });\r\n };\r\n\r\n const onAgreePrivacyPolicy = (event) => {\r\n setHideSaveButton(!event.target.checked);\r\n };\r\n\r\n return (\r\n {\r\n messageParagraphs.length > 0 ?\r\n :\r\n null\r\n }\r\n \r\n
    \r\n {getDestructuredTextWithMultipleLinks(\r\n privacyAndPolicy.policy.label,\r\n privacyAndPolicy.policy.link.split(';')\r\n )}\r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n {formData.updateButtonText}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    );\r\n}\r\n\r\nfunction PrivacyPolicyAndTermsAndConditionsMessage(props) {\r\n const { formData, actions } = props;\r\n\r\n const [hideSaveButton, setHideSaveButton] = useState(true);\r\n const [showSuccessMessage, setShowSuccessMessage] = useState(false);\r\n\r\n const { privacyPolicyAndTermsAndConditions, privacyAndTermsMessage, successMessage } = formData;\r\n\r\n const messageParagraphs = getMultilineText(privacyAndTermsMessage);\r\n const successMessageParagraphs = getMultilineText(successMessage);\r\n\r\n const agreeTermsAndPrivacy = (event) => {\r\n event.preventDefault();\r\n\r\n actions.agreeToPrivacyPolicyAndTermsAndConditions(formData.callbackUrl, true, true).then(() => {\r\n toggleModalCloseButton(formData, true);\r\n setShowSuccessMessage(true);\r\n });\r\n };\r\n\r\n const onAgreeTermsAndPrivacy = (event) => {\r\n setHideSaveButton(!event.target.checked);\r\n };\r\n\r\n return (\r\n {\r\n messageParagraphs.length > 0 ?\r\n :\r\n null\r\n }\r\n \r\n
    \r\n {getDestructuredTextWithMultipleLinks(\r\n privacyPolicyAndTermsAndConditions.policy.label,\r\n privacyPolicyAndTermsAndConditions.policy.link.split(';')\r\n )}\r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n {formData.updateButtonText}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    );\r\n}\r\n\r\nfunction mapStateToProps(state, ownProps) {\r\n return {\r\n loading: state.apiStatus.apiCallsInProgress > 0,\r\n formData: hasValue(ownProps.formData) ? ownProps.formData : state.signInForm.signInSuccessFormData\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n actions: {\r\n agreeToPrivacyPolicyAndTermsAndConditions: bindActionCreators(upgradeAccountActions.agreePrivacyPolicyAndTermsAndCoditions, dispatch)\r\n }\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SignInSuccessForm);\r\n","import React from 'react';\r\nimport OneClubRegisterForm from './forms/one-club-register/OneClubRegisterForm';\r\nimport UserRegisterSuccessForm from './forms/user-register-success-form/UserRegisterSuccessForm';\r\nimport BallotRegisterForm from './forms/ballot/BallotRegisterForm';\r\nimport BallotSummaryForm from './forms/ballot/BallotSummaryForm';\r\nimport SSOItemListForm from './forms/item-list/SSOItemListForm';\r\nimport BallotSignInForm from './forms/ballot/BallotSignInForm';\r\nimport BallotSignInSuccessForm from './forms/ballot/BallotSignInSuccessForm';\r\nimport ForgotPasswordForm from './forms/forgot-password/ForgotPasswordForm';\r\nimport ResetPasswordForm from './forms/reset-password/ResetPasswordForm';\r\nimport UserAccountPage from './user-account/UserAccountPage';\r\nimport DefaultRegisterForm from './forms/default-register/DefaultRegisterForm';\r\nimport TicketingRegisterForm from './forms/ticketing-register/TicketingRegisterForm';\r\nimport SignInForm from './forms/sign-in/SignInForm';\r\nimport UpgradeToTicketingAccountForm from './forms/upgrade-to-ticketing/UpgradeToTicketingAccountForm';\r\nimport UpgradeToOneClubAccountForm from './forms/upgrade-to-one-club/UpgradeToOneClubAccountForm';\r\nimport VerifyEmailForm from './forms/verify-email/VerifyEmailForm';\r\nimport NewPasswordRequiredForm from './forms/new-password-required/NewPasswordRequiredForm';\r\nimport RaMembersRegisterForm from './forms/ra-members/RaMembersRegisterForm';\r\nimport RaMembersSignInForm from './forms/ra-members/RaMembersSignInForm';\r\nimport RaMembersSummaryForm from './forms/ra-members/RaMembersSummaryForm';\r\nimport { ssoFormTypes } from './utils/form-types';\r\nimport SignInSuccessForm from './forms/sign-in/SignInSuccessForm';\r\n\r\n/* eslint-disable */\r\nexport const ssoFormConstants = {\r\n [ssoFormTypes.OneClubRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleUserRegisterSuccess,\r\n handleSignIn,\r\n handleForgotPassword,\r\n loadSSORegisterFormData,\r\n ssoFormType }) => {\r\n return \r\n },\r\n [ssoFormTypes.DefaultRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleUserRegisterSuccess,\r\n handleSignIn,\r\n handleForgotPassword }) => {\r\n return \r\n },\r\n [ssoFormTypes.TicketingRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleUserRegisterSuccess,\r\n handleSignIn,\r\n handleForgotPassword }) => {\r\n return \r\n },\r\n [ssoFormTypes.RaMembersRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleRaMembersRegisterSuccess,\r\n handleRaMembersSignIn,\r\n handleForgotPassword }) => {\r\n return \r\n },\r\n [ssoFormTypes.UpgradeToTicketingAccount]: ({ formData, ssoDomain, handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.UpgradeToOneClubAccountFromDefault]: ({ formData, handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.UpgradeToOneClubAccountFromTicketing]: ({ formData, handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.SignIn]: ({\r\n formData,\r\n handleForgotPassword,\r\n handleRegister,\r\n handleNewPasswordRequired,\r\n handleSignInSucces\r\n }) => {\r\n return \r\n },\r\n [ssoFormTypes.RaMembersSignInForm]: ({\r\n formData,\r\n handleForgotPassword,\r\n handleRegister,\r\n handleNewPasswordRequired\r\n }) => {\r\n return \r\n },\r\n [ssoFormTypes.SignInSuccess]: ({\r\n formData,\r\n ssoDomain,\r\n }) => {\r\n return \r\n \r\n },\r\n [ssoFormTypes.NewPasswordRequired]: ({ cognitoUser, handleSignIn, handleSignInSucces }) => {\r\n return \r\n },\r\n [ssoFormTypes.ForgotPassword]: ({ formData, handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotForgotPassword]: ({ formData, handleBallotSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.ResetPassword]: ({ formData }) => {\r\n return \r\n },\r\n [ssoFormTypes.VerifyEmail]: ({ formData }) => {\r\n return \r\n },\r\n [ssoFormTypes.OneClubRegisterSuccess]: ({\r\n emailAddress,\r\n ssoDomain,\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText,\r\n displayBanner,\r\n isBallotRegister,\r\n handleSignIn,\r\n handleBallotSignIn,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration}) => {\r\n return \r\n },\r\n [ssoFormTypes.RaMembersRegisterSuccess]: ({\r\n emailAddress,\r\n ssoDomain,\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText,\r\n displayBanner,\r\n handleRaMembersSignIn,\r\n bannerBackgroundImageSrc }) => {\r\n return \r\n },\r\n [ssoFormTypes.UserAccount]: ({ formData }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotLiteRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleUserRegisterSuccess,\r\n handleBallotSignIn,\r\n ssoFormType }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotFullRegister]: ({\r\n formData,\r\n ssoDomain,\r\n handleUserRegisterSuccess,\r\n handleBallotSignIn,\r\n loadSSORegisterFormData,\r\n ssoFormType }) => {\r\n return \r\n },\r\n [ssoFormTypes.UpgradeToTicketingAccount]: ({ formData, handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotSummaryForm]: ({\r\n formData,\r\n ssoDomain,\r\n handleSignIn,\r\n handleBallotSummarySuccess,\r\n handleBallotPortalRedirect }) => {\r\n return \r\n },\r\n [ssoFormTypes.SSOItemListForm]: ({\r\n formData,\r\n ssoDomain,\r\n handleBallotPortalRedirect,\r\n formId,\r\n isFromBallot }) => {\r\n return \r\n },\r\n [ssoFormTypes.RaMembersSummaryForm]: ({\r\n formData,\r\n ssoDomain,\r\n handleSignIn }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotSignInForm]: ({\r\n formData,\r\n ssoDomain,\r\n handleCognitoHostedUISignIn,\r\n handleBallotForgotPassword,\r\n handleBallotRegister }) => {\r\n return \r\n },\r\n [ssoFormTypes.BallotSignInSuccessForm]: ({\r\n formData,\r\n ssoDomain }) => {\r\n return \r\n },\r\n [ssoFormTypes.PreRegisterForm]: ({\r\n formData,\r\n ssoDomain,\r\n handleSignIn,\r\n handleForgotPassword,\r\n handleBallotRegister }) => {\r\n return \r\n },\r\n};\r\n","/* eslint-disable no-nested-ternary */\r\n/* eslint-disable no-prototype-builtins */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport app from 'general/js/app';\r\nimport { SSOFormContext } from './sso-form-context';\r\nimport { ssoFormTypes } from './utils/form-types';\r\nimport eventBus from '../../../general/js/event-bus';\r\nimport { ssoFormConstants } from './sso-form-constants';\r\nimport { domainConstants } from './utils/constants/domain-constants';\r\nimport userService from '../../../general/js/user/user-service';\r\nimport { formConstants } from './utils/constants/form-constants';\r\nimport { getProperty, hasValue } from '../../../general/js/general-helpers';\r\nimport { sitecoreFieldConstants } from '../../sitecore-fields/js/sitecore-field-constants';\r\nimport { isBallotForm } from './forms/helpers/form-helpers/form-field-helpers';\r\nimport { redirectTo, reloadPageWithoutQueryParams } from '../../../general/js/utils';\r\n\r\n\r\nclass SSOForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.ssoContext = {\r\n currentScenarioTitle: 'SSO Forms',\r\n cognitoUser: {}\r\n };\r\n const { IsPopup, formType, registerFormType } = this.props.formData;\r\n\r\n this.state = {\r\n ssoFormType: formType,\r\n initialFormType: formType,\r\n isFormDataDirty: false,\r\n registerFormType,\r\n IsPopup,\r\n modalOpen: true\r\n };\r\n\r\n this.displaySSOForm = this.displaySSOForm.bind(this);\r\n this.handleSignIn = this.handleSignIn.bind(this);\r\n this.handleRaMembersSignIn = this.handleRaMembersSignIn.bind(this);\r\n this.handleRegister = this.handleRegister.bind(this);\r\n this.handleNewPasswordRequired = this.handleNewPasswordRequired.bind(this);\r\n this.handleUserRegisterSuccess = this.handleUserRegisterSuccess.bind(this);\r\n this.handleRaMembersRegisterSuccess = this.handleRaMembersRegisterSuccess.bind(this);\r\n this.handleForgotPassword = this.handleForgotPassword.bind(this);\r\n this.handleBallotForgotPassword = this.handleBallotForgotPassword.bind(this);\r\n this.onModalClose = this.onModalClose.bind(this);\r\n this.onModalOpen = this.onModalOpen.bind(this);\r\n this.getTransitionToForm = this.getTransitionToForm.bind(this);\r\n this.handleBallotSignIn = this.handleBallotSignIn.bind(this);\r\n this.handleBallotRegister = this.handleBallotRegister.bind(this);\r\n this.handleCognitoHostedUISignIn = this.handleCognitoHostedUISignIn.bind(this);\r\n this.handleSignInSucces = this.handleSignInSucces.bind(this);\r\n this.handleBallotSummarySuccess = this.handleBallotSummarySuccess.bind(this);\r\n this.handleBallotPortalRedirect = this.handleBallotPortalRedirect.bind(this);\r\n\r\n eventBus.addListener('modal:closed', this.onModalClose);\r\n eventBus.addListener('modal:open', this.onModalOpen);\r\n }\r\n\r\n onModalClose() {\r\n const { IsPopup } = this.props;\r\n\r\n sessionStorage.removeItem(formConstants.ballotSignInStorageItem);\r\n\r\n if (!IsPopup) {\r\n return;\r\n }\r\n this.setState((state) => ({\r\n ...state,\r\n modalOpen: false,\r\n ssoFormType: state.initialFormType\r\n }));\r\n }\r\n\r\n onModalOpen() {\r\n const { IsPopup } = this.props;\r\n if (!IsPopup) {\r\n return;\r\n }\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n modalOpen: true\r\n }));\r\n }\r\n\r\n handleRegister() {\r\n const { initialFormType } = this.state;\r\n const transitionToForm = this.getTransitionToForm();\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: transitionToForm,\r\n isFormDataDirty: initialFormType !== transitionToForm\r\n }));\r\n }\r\n\r\n handleBallotRegister() {\r\n const { initialFormType } = this.state;\r\n const { formData } = this.props;\r\n const { nextFormTypeAfterRegister } = formData;\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: nextFormTypeAfterRegister,\r\n isFormDataDirty: initialFormType !== nextFormTypeAfterRegister\r\n }));\r\n }\r\n\r\n handleBallotSummarySuccess() {\r\n const { initialFormType } = this.state;\r\n const { formData: { nextFormTypeAfterSubmit, nextFormAfterSubmit } } = this.props;\r\n\r\n if (nextFormAfterSubmit === sitecoreFieldConstants.emptyGUID || !hasValue(nextFormAfterSubmit) || !hasValue(nextFormTypeAfterSubmit)) {\r\n this.handleBallotPortalRedirect();\r\n return;\r\n }\r\n\r\n const nextFormType = getProperty(ssoFormTypes, nextFormTypeAfterSubmit);\r\n\r\n if (!hasValue(nextFormType)) {\r\n this.handleBallotPortalRedirect();\r\n return;\r\n }\r\n\r\n const isFromBallot = isBallotForm(initialFormType);\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: nextFormType,\r\n isFormDataDirty: initialFormType !== nextFormType,\r\n isFromBallot\r\n }));\r\n }\r\n\r\n handleBallotPortalRedirect() {\r\n const { state: { ssoConfig: { ballotRedirectUrl } } } = app;\r\n\r\n if (!hasValue(ballotRedirectUrl)) {\r\n reloadPageWithoutQueryParams();\r\n }\r\n\r\n redirectTo(ballotRedirectUrl);\r\n }\r\n\r\n handleBallotSignIn() {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.BallotSignInForm,\r\n isFormDataDirty: false\r\n }));\r\n }\r\n\r\n handleRaMembersSignIn() {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.RaMembersSignInForm\r\n }));\r\n }\r\n\r\n handleNewPasswordRequired(cognitoUser) {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.NewPasswordRequired,\r\n cognitoUser\r\n }));\r\n }\r\n\r\n handleSignInSucces(formData, formType = ssoFormTypes.SignInSuccess) {\r\n formData = hasValue(formData) ? { ...formData, hideCloseButton: true, reloadPage: true } : formData;\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: formType,\r\n formData\r\n }));\r\n }\r\n\r\n getTransitionToForm() {\r\n const { registerFormType, initialFormType } = this.state;\r\n\r\n if (registerFormType >= 0) {\r\n return registerFormType;\r\n }\r\n\r\n const { ssoDomain, nextFormTypeAfterRegister } = this.props.formData;\r\n const formForTransitionTo = ssoDomain === domainConstants.womensOpen ?\r\n ssoFormTypes.TicketingRegister :\r\n ssoFormTypes.OneClubRegister;\r\n\r\n return initialFormType === ssoFormTypes.SignIn || initialFormType === ssoFormTypes.PreRegisterForm ?\r\n (hasValue(nextFormTypeAfterRegister) ? nextFormTypeAfterRegister : formForTransitionTo) :\r\n initialFormType;\r\n }\r\n\r\n handleUserRegisterSuccess(emailAddress, {\r\n isBallotRegister,\r\n successText,\r\n emailVerificationCallbackUrl,\r\n emailVerificationActionSuccessText,\r\n displayBanner,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration\r\n }) {\r\n const {\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText\r\n } = this.props.formData;\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.OneClubRegisterSuccess,\r\n emailAddress,\r\n requestEmailVerificationCallbackUrl: requestEmailVerificationCallbackUrl || emailVerificationCallbackUrl,\r\n actionSuccessText: successText || actionSuccessText,\r\n requestEmailVerificationActionSuccessText: requestEmailVerificationActionSuccessText || emailVerificationActionSuccessText,\r\n displayBanner,\r\n isBallotRegister,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration\r\n }));\r\n }\r\n\r\n handleRaMembersRegisterSuccess(emailAddress, {\r\n successText,\r\n emailVerificationCallbackUrl,\r\n emailVerificationActionSuccessText,\r\n displayBanner,\r\n bannerBackgroundImageSrc\r\n }) {\r\n const {\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText\r\n } = this.props.formData;\r\n\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.RaMembersRegisterSuccess,\r\n emailAddress,\r\n requestEmailVerificationCallbackUrl: requestEmailVerificationCallbackUrl || emailVerificationCallbackUrl,\r\n actionSuccessText: successText || actionSuccessText,\r\n requestEmailVerificationActionSuccessText: requestEmailVerificationActionSuccessText || emailVerificationActionSuccessText,\r\n displayBanner,\r\n bannerBackgroundImageSrc\r\n }));\r\n }\r\n\r\n handleForgotPassword() {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.ForgotPassword\r\n }));\r\n }\r\n\r\n handleBallotForgotPassword() {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.BallotForgotPassword\r\n }));\r\n }\r\n\r\n handleSignIn() {\r\n this.setState((state) => ({\r\n ...state,\r\n ssoFormType: ssoFormTypes.SignIn\r\n }));\r\n }\r\n\r\n handleCognitoHostedUISignIn(returnUrl = '') {\r\n if (!hasValue(returnUrl) || this.isFromButtonEvent(returnUrl)) {\r\n returnUrl = window.location.href;\r\n }\r\n\r\n userService.onSignInLinkClickAction(returnUrl, true);\r\n }\r\n\r\n isFromButtonEvent(returnUrl) {\r\n return returnUrl.hasOwnProperty('type');\r\n }\r\n\r\n displaySSOForm() {\r\n const {\r\n ssoFormType,\r\n isFromBallot,\r\n emailAddress,\r\n isFormDataDirty,\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText,\r\n displayBanner,\r\n isBallotRegister,\r\n cognitoUser,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration\r\n } = this.state;\r\n\r\n const { formData } = hasValue(this.state.formData) ? this.state : this.props;\r\n const { ssoDomain } = formData;\r\n\r\n const copyOfFormData = _.cloneDeep(formData);\r\n const { nextFormAfterSubmit } = copyOfFormData;\r\n\r\n return ssoFormConstants[ssoFormType]({\r\n formData: isFormDataDirty ? {} : copyOfFormData,\r\n emailAddress,\r\n ssoDomain,\r\n requestEmailVerificationCallbackUrl,\r\n actionSuccessText,\r\n requestEmailVerificationActionSuccessText,\r\n displayBanner,\r\n isBallotRegister,\r\n cognitoUser,\r\n ssoFormType,\r\n bannerBackgroundImageSrc,\r\n bannerSuccessRegistration,\r\n isFromBallot: isFromBallot || copyOfFormData.isFromBallot,\r\n formId: nextFormAfterSubmit,\r\n handleRegister: this.handleRegister,\r\n handleUserRegisterSuccess: this.handleUserRegisterSuccess,\r\n handleRaMembersRegisterSuccess: this.handleRaMembersRegisterSuccess,\r\n handleSignIn: this.handleSignIn,\r\n handleCognitoHostedUISignIn: this.handleCognitoHostedUISignIn,\r\n handleForgotPassword: this.handleForgotPassword,\r\n handleSignInSucces: this.handleSignInSucces,\r\n handleNewPasswordRequired: this.handleNewPasswordRequired,\r\n handleBallotSignIn: this.handleBallotSignIn,\r\n handleBallotRegister: this.handleBallotRegister,\r\n handleBallotForgotPassword: this.handleBallotForgotPassword,\r\n handleBallotSummarySuccess: this.handleBallotSummarySuccess,\r\n handleBallotPortalRedirect: this.handleBallotPortalRedirect,\r\n handleRaMembersSignIn: this.handleRaMembersSignIn\r\n });\r\n }\r\n\r\n render() {\r\n const { modalOpen } = this.state;\r\n const { IsPopup } = this.props;\r\n const shouldDisplayForm = IsPopup ? modalOpen : true;\r\n return (\r\n \r\n {shouldDisplayForm ? this.displaySSOForm() : null}\r\n \r\n );\r\n }\r\n}\r\n\r\nSSOForm.propTypes = {\r\n formData: PropTypes.object.isRequired\r\n};\r\n\r\nexport default SSOForm;\r\n","export const sitecoreFieldConstants = {\r\n emptyGUID: \"00000000-0000-0000-0000-000000000000\"\r\n};","\r\nexport default {\r\n registerForm: {\r\n registerFormData: {},\r\n isFormLoadSuccessful: false,\r\n isRegisterSuccessful: false,\r\n userRegistrationMessages: [],\r\n isResendEmailVerificationSuccessful: false,\r\n resendEmailVerificationMessages: [],\r\n userName: ''\r\n },\r\n itemListForm: {\r\n isFormLoadSuccessful: false,\r\n itemListFormData: {},\r\n itemListErrorMessages: []\r\n },\r\n upgradeAccountForm: {\r\n isUpgradeSuccessful: false,\r\n accountUpgradeMessages: [],\r\n upgradeToOneClubFormData: {}\r\n },\r\n userAddress: {\r\n isUserAddressSearchSuccessful: false,\r\n suggestedAddresses: [],\r\n searchAddressMessages: '',\r\n isUserAddressRetrieveSuccessful: false,\r\n retrieveAddressMessages: '',\r\n retrievedUserAddress: {}\r\n },\r\n basket: {\r\n isPaymentAttemptSuccessful: true,\r\n purchaseAttemptMessages: []\r\n },\r\n signInForm: {\r\n signInFormData: {},\r\n isFormLoadSuccessful: false,\r\n isSignInSuccessful: false,\r\n isUserLastLogInDataUpdated: false,\r\n userLastLogInDataErrorMessages: [],\r\n signInMessages: [],\r\n isSignOutSuccessful: false,\r\n signOutMessages: [],\r\n isNewPasswordRequired: false,\r\n cognitoUser: {},\r\n isNewPasswordRequiredFormDataLoadedSuccessful: false,\r\n loadPasswordRequiredFormDataMessages: [],\r\n newPasswordRequiredFormData: {},\r\n isNewPasswordSavedSuccessful: false,\r\n newPasswordSavedMessages: [],\r\n signInSuccessFormData: {}\r\n },\r\n forgotPasswordForm: {\r\n forgotPasswordFormData: {},\r\n isFormLoadSuccessful: false,\r\n forgotPasswordMessages: [],\r\n isForgotPasswordSuccessful: false\r\n },\r\n resetPasswordForm: {\r\n resetPasswordFormData: {},\r\n isFormLoadSuccessful: false,\r\n resetPasswordMessages: [],\r\n isResetPasswordSuccessful: false\r\n },\r\n verifyEmailForm: {\r\n verifyEmailFormData: {},\r\n isFormLoadSuccessful: false,\r\n verifyEmailMessages: [],\r\n isVerifyEmailSuccessful: false\r\n },\r\n userAccount: {\r\n isTicketsDataLoadedSuccessful: false,\r\n isUserAccountDataLoadedSuccessful: false,\r\n isAccountPageRefresh: false,\r\n isUserNotSignedIn: false,\r\n isOrderHistoryLoadedSuccessful: false,\r\n areOrderDetailsLoadedSuccessful: false,\r\n areOrderHistoryPagesLoadedSuccessful: false,\r\n isUserDetailsUpdatedSuccessful: false,\r\n isUserTicketsDataLoadedSuccessful: false,\r\n isPdfFileDownloadedSuccessful: false,\r\n isUserAccountRemovedSuccessful: false,\r\n areUserAddressesUpdatedSuccessful: false,\r\n isUserPasswordChangedSuccessful: false,\r\n isUserUpdatingEmail: false,\r\n homePageTicketsData: {},\r\n userAccountData: {},\r\n orderHistoryData: [],\r\n orderDetails: {},\r\n userTicketsData: [],\r\n orderHistoryPages: 0,\r\n loadHomePageTicketsDataErrorMessages: [],\r\n downloadPdfFileErrorMessages: [],\r\n updateUserDetailsMessages: [],\r\n updateUserAddressesMessages: [],\r\n changePasswordMessages: [],\r\n userAddedToAddressBookSuccessful: false,\r\n saveUserToAddressBookErrorMessages: []\r\n },\r\n apiStatus: {\r\n apiCallsInProgress: 0,\r\n apiErrorMessages: []\r\n }\r\n};\r\n","import { combineReducers } from 'redux';\r\nimport apiStatus from './api-status-reducer';\r\nimport registerForm from './register-form-reducer';\r\nimport userAddressReducer from './user-address-reducer';\r\nimport upgradeAccountForm from './upgrade-account-reducer';\r\nimport basket from './basket-reducer';\r\nimport signInForm from './sign-in-form-reducer';\r\nimport forgotPasswordForm from './forgot-password-form-reducer';\r\nimport resetPasswordForm from './reset-password-form-reducer';\r\nimport userAccount from './user-account-reducer';\r\nimport itemListForm from './item-list-form-reducer';\r\nimport verifyEmailForm from './verify-email-form-reducer';\r\n\r\nconst rootReducer = combineReducers({\r\n registerForm,\r\n itemListForm,\r\n upgradeAccountForm,\r\n basket,\r\n userAddressSearchData: userAddressReducer,\r\n signInForm,\r\n forgotPasswordForm,\r\n resetPasswordForm,\r\n verifyEmailForm,\r\n userAccount,\r\n apiStatus,\r\n});\r\n\r\nexport default rootReducer;\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function registerFormReducer(state = initialState.registerForm, action) {\r\n switch (action.type) {\r\n case types.REGISTER_USER_SUCCESS:\r\n return {\r\n ...state,\r\n isRegisterSuccessful: true,\r\n userName: action.userName,\r\n userRegistrationMessages: action.userRegistrationMessages\r\n };\r\n case types.REGISTER_USER_ERROR:\r\n return {\r\n ...state,\r\n isRegisterSuccessful: false,\r\n userName: '',\r\n userRegistrationMessages: action.userRegistrationMessages\r\n };\r\n case types.LOAD_REGISTER_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n registerFormData: action.registerFormData,\r\n userRegistrationMessages: []\r\n };\r\n case types.LOAD_REGISTER_FORM_DATA_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n registerFormData: {},\r\n userRegistrationMessages: []\r\n };\r\n case types.RESEND_EMAIL_VERIFICATION_SUCCESS:\r\n return {\r\n ...state,\r\n isResendEmailVerificationSuccessful: true,\r\n resendEmailVerificationMessages: action.resendEmailVerificationMessages,\r\n };\r\n case types.RESEND_EMAIL_VERIFICATION_ERROR:\r\n return {\r\n ...state,\r\n isResendEmailVerificationSuccessful: false,\r\n resendEmailVerificationMessages: action.resendEmailVerificationMessages,\r\n };\r\n case types.RESET_REGISTER_FORM_STATE:\r\n return initialState.registerForm;\r\n case types.VERIFY_IF_USER_EMAIL_EXISTS_SUCCESS:\r\n return {\r\n ...state,\r\n isUserEmailAlreadyUsed: false\r\n };\r\n case types.VERIFY_IF_USER_EMAIL_EXISTS_ERROR:\r\n return {\r\n ...state,\r\n isUserEmailAlreadyUsed: true\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { hasValue } from '../../../../general/js/general-helpers';\r\nimport * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function itemListFormReducer(state = initialState.itemListForm, action) {\r\n switch (action.type) {\r\n case types.LOAD_ITEM_LIST_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n itemListFormData: hasValue(action.itemListFormData) ? action.itemListFormData : {},\r\n itemListErrorMessages: []\r\n };\r\n case types.LOAD_ITEM_LIST_FORM_DATA_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n itemListFormData: {},\r\n itemListErrorMessages: action.errorMessage\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function upgradeAccountReducer(state = initialState.upgradeAccountForm, action) {\r\n switch (action.type) {\r\n case types.UPGRADE_TO_TICKETING_ACCOUNT_SUCCESS:\r\n return {\r\n ...state,\r\n isUpgradeSuccessful: true,\r\n accountUpgradeMessages: action.accountUpgradeMessages,\r\n };\r\n case types.UPGRADE_TO_TICKETING_ACCOUNT_ERROR:\r\n return {\r\n ...state,\r\n isUpgradeSuccessful: false,\r\n accountUpgradeMessages: action.accountUpgradeMessages\r\n };\r\n case types.LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n isUpgradeToOneClubFormDataLoadedSuccessful: true,\r\n upgradeToOneClubFormData: action.ssoUpgradeToOneClubFormData\r\n };\r\n case types.LOAD_UPGRADE_TO_ONE_CLUB_FORM_DATA_ERROR:\r\n return {\r\n ...state,\r\n isUpgradeToOneClubFormDataLoadedSuccessful: false,\r\n upgradeToOneClubFormData: {}\r\n };\r\n case types.RESET_UPGRADE_ACCOUNT_FORM:\r\n return initialState.upgradeAccountForm;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function basketReducer(state = initialState.basket, action) {\r\n switch (action.type) {\r\n case types.PURCHASE_ATTEMPT_SUCCESS:\r\n return {\r\n ...state,\r\n isPaymentAttemptSuccessful: true,\r\n purchaseAttemptMessages: action.purchaseAttemptMessages\r\n };\r\n case types.PURCHASE_ATTEMPT_ERROR:\r\n return {\r\n ...state,\r\n isPaymentAttemptSuccessful: false,\r\n userRegistrationMessages: action.purchaseAttemptMessages\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function userAddressReducer(state = initialState.userAddress, action) {\r\n switch (action.type) {\r\n case types.SEARCH_ADDRESS_SUCCESS:\r\n return {\r\n ...state,\r\n isUserAddressSearchSuccessful: true,\r\n suggestedAddresses: action.suggestedAddresses,\r\n searchAddressMessages: ''\r\n };\r\n case types.SEARCH_ADDRESS_ERROR:\r\n return {\r\n ...state,\r\n isUserAddressSearchSuccessful: false,\r\n suggestedAddresses: [],\r\n searchAddressMessage: action.searchAddressMessage\r\n };\r\n case types.RETRIEVE_ADDRESS_SUCCESS:\r\n return {\r\n ...state,\r\n isUserAddressRetrieveSuccessful: true,\r\n retrievedUserAddress: action.addressData,\r\n retrieveAddressMessages: ''\r\n };\r\n case types.RETRIEVE_ADDRESS_ERROR:\r\n return {\r\n ...state,\r\n isUserAddressRetrieveSuccessful: false,\r\n retrievedUserAddress: {},\r\n retrieveAddressMessages: action.retrieveAddressMessages\r\n };\r\n case types.RESET_RETRIEVE_USER_ADDRESS: return {\r\n ...state,\r\n isUserAddressRetrieveSuccessful: false,\r\n retrievedUserAddress: {}\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function registerFormReducer(state = initialState.signInForm, action) {\r\n switch (action.type) {\r\n case types.SIGN_IN_USER_SUCCESS:\r\n return {\r\n ...state,\r\n isSignInSuccessful: action.signInProperties.isSignInSuccessful,\r\n signInMessages: action.signInProperties.signInMessages,\r\n isNewPasswordRequired: action.signInProperties.isNewPasswordRequired,\r\n cognitoUser: action.signInProperties.cognitoUser\r\n };\r\n case types.SIGN_IN_USER_ERROR:\r\n return {\r\n ...state,\r\n isSignInSuccessful: false,\r\n isNewPasswordRequired: false,\r\n signInMessages: action.signInMessages,\r\n cognitoUser: {}\r\n };\r\n case types.LAST_LOG_IN_UPDATE_SUCCESS:\r\n return {\r\n ...state,\r\n isUserLastLogInDataUpdated: action.lastLogInProperties.isUserLastLogInDataUpdated,\r\n userLastLogInDataErrorMessages: []\r\n };\r\n case types.LAST_LOG_IN_UPDATE_ERROR:\r\n return {\r\n ...state,\r\n isUserLastLogInDataUpdated: false,\r\n userLastLogInDataErrorMessages: action.errorMessages\r\n };\r\n case types.NEW_PASSWORD_SAVED_SUCCESS:\r\n return {\r\n ...state,\r\n isNewPasswordSavedSuccessful: true,\r\n newPasswordSavedMessages: action.newPasswordSavedMessages,\r\n };\r\n case types.NEW_PASSWORD_SAVED_ERROR:\r\n return {\r\n ...state,\r\n isNewPasswordSavedSuccessful: false,\r\n newPasswordSavedMessages: action.newPasswordSavedMessages,\r\n };\r\n case types.LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n isNewPasswordRequiredFormDataLoadedSuccessful: true,\r\n newPasswordRequiredFormData: action.newPasswordRequiredFormData,\r\n loadPasswordRequiredFormDataMessages: []\r\n };\r\n case types.LOAD_NEW_PASSWORD_REQUIRED_FORM_DATA_ERROR:\r\n return {\r\n ...state,\r\n isNewPasswordRequiredFormDataLoadedSuccessful: false,\r\n loadPasswordRequiredFormDataMessages: action.loadPasswordRequiredFormDataMessages,\r\n newPasswordRequiredFormData: {}\r\n };\r\n case types.SIGN_OUT_USER_SUCCESS:\r\n return {\r\n ...state,\r\n isSignOutSuccessful: true,\r\n signOutMessages: action.signOutMessages\r\n };\r\n case types.SIGN_OUT_USER_ERROR:\r\n return {\r\n ...state,\r\n isSignOutSuccessful: false,\r\n signOutMessages: action.signOutMessages\r\n };\r\n case types.LOAD_SIGN_IN_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n signInFormData: action.signInFormData\r\n };\r\n case types.LOAD_SIGN_IN_FORM_DATA_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n signInFormData: {}\r\n };\r\n case types.LOAD_SIGN_IN_SUCCESS_FORM_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n signInSuccessFormData: action.signInFormDataSuccess\r\n };\r\n case types.RESET_SIGN_IN_FORM_STATE:\r\n return {\r\n ...state,\r\n signInFormData: {},\r\n isFormLoadSuccessful: false,\r\n isSignInSuccessful: false,\r\n signInMessages: [],\r\n isSignOutSuccessful: false,\r\n signOutMessages: [],\r\n isNewPasswordRequired: false,\r\n cognitoUser: {},\r\n isNewPasswordRequiredFormDataLoadedSuccessful: false,\r\n loadPasswordRequiredFormDataMessages: [],\r\n newPasswordRequiredFormData: {},\r\n isNewPasswordSavedSuccessful: false,\r\n newPasswordSavedMessages: []\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function forgotPasswordFormReducer(state = initialState.forgotPasswordForm, action) {\r\n switch (action.type) {\r\n case types.FORGOT_PASSWORD_SUCCESS:\r\n return {\r\n ...state,\r\n isForgotPasswordSuccessful: true,\r\n forgotPasswordMessages: action.forgotPasswordMessages\r\n };\r\n case types.FORGOT_PASSWORD_ERROR:\r\n return {\r\n ...state,\r\n isForgotPasswordSuccessful: false,\r\n forgotPasswordMessages: action.forgotPasswordMessages\r\n };\r\n case types.LOAD_FORGOT_PASSWORD_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n forgotPasswordFormData: action.forgotPasswordFormData,\r\n forgotPasswordMessages: []\r\n };\r\n case types.LOAD_FORGOT_PASSWORD_FORM_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n forgotPasswordFormData: {},\r\n forgotPasswordMessages: []\r\n };\r\n case types.RESET_FORGOT_PASSWORD_FORM_STATE:\r\n return initialState.forgotPasswordForm;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function resetPasswordFormReducer(state = initialState.resetPasswordForm, action) {\r\n switch (action.type) {\r\n case types.RESET_PASSWORD_SUCCESS:\r\n return {\r\n ...state,\r\n isResetPasswordSuccessful: true,\r\n resetPasswordMessages: action.resetPasswordMessages\r\n };\r\n case types.RESET_PASSWORD_ERROR:\r\n return {\r\n ...state,\r\n isResetPasswordSuccessful: false,\r\n resetPasswordMessages: action.resetPasswordMessages\r\n };\r\n case types.LOAD_RESET_PASSWORD_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n resetPasswordFormData: action.resetPasswordFormData,\r\n resetPasswordMessages: []\r\n };\r\n case types.LOAD_RESET_PASSWORD_FORM_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n resetPasswordFormData: {},\r\n resetPasswordMessages: []\r\n };\r\n case types.RESET_RESET_PASSWORD_FORM_STATE:\r\n return initialState.resetPasswordForm;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function verifyEmailFormReducer(state = initialState.verifyEmailForm, action) {\r\n switch (action.type) {\r\n case types.VERIFY_EMAIL_SUCCESS:\r\n return {\r\n ...state,\r\n isVerifyEmailSuccessful: true,\r\n verifyEmailMessages: action.verifyEmailMessages\r\n };\r\n case types.VERIFY_EMAIL_ERROR:\r\n return {\r\n ...state,\r\n isVerifyEmailSuccessful: false,\r\n verifyEmailMessages: action.verifyEmailMessages\r\n };\r\n case types.LOAD_VERIFY_EMAIL_FORM_SUCCESS:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: true,\r\n verifyEmailFormData: action.verifyEmailFormData,\r\n verifyEmailMessages: []\r\n };\r\n case types.LOAD_VERIFY_EMAIL_FORM_ERROR:\r\n return {\r\n ...state,\r\n isFormLoadSuccessful: false,\r\n verifyEmailFormData: {},\r\n verifyEmailMessages: []\r\n };\r\n case types.RESET_VERIFY_EMAIL_FORM_STATE:\r\n return initialState.verifyEmailForm;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\n\r\nexport default function userAccountReducer(state = initialState.userAccount, action) {\r\n switch (action.type) {\r\n case types.LOAD_HOME_PAGE_TICKETS_DATA_SUCCESS: return {\r\n ...state,\r\n isTicketsDataLoadedSuccessful: true,\r\n loadHomePageTicketsDataErrorMessages: [],\r\n homePageTicketsData: action.homePageTicketsData\r\n\r\n };\r\n case types.LOAD_HOME_PAGE_TICKETS_DATA_ERROR: return {\r\n ...state,\r\n isTicketsDataLoadedSuccessful: false,\r\n loadHomePageTicketsDataErrorMessages: action.loadHomePageTicketsDataErrorMessages,\r\n homePageTicketsData: {}\r\n\r\n };\r\n case types.RESET_HOME_PAGE_TICKETS_DATA_FORM_STATE: return {\r\n ...state,\r\n isTicketsDataLoadedSuccessful: false,\r\n loadHomePageTicketsDataErrorMessages: [],\r\n homePageTicketsData: {}\r\n };\r\n case types.LOAD_USER_DATA_SUCCESS:\r\n return {\r\n ...state,\r\n userAccountData: action.data.userAccountData,\r\n isAccountPageRefresh: action.data.isAccountPageRefresh,\r\n isUserAccountDataLoadedSuccessful: true,\r\n isUserNotSignedIn: false,\r\n userAddedToAddressBookSuccessful: false,\r\n saveUserToAddressBookErrorMessages: []\r\n };\r\n case types.LOAD_USER_DATA_ERROR:\r\n return {\r\n ...state,\r\n userAccountData: {},\r\n isAccountPageRefresh: false,\r\n isUserNotSignedIn: action.isUserNotSignedIn,\r\n isUserAccountDataLoadedSuccessful: false\r\n };\r\n case types.LOAD_ORDER_HISTORY_SUCCESS:\r\n return {\r\n ...state,\r\n orderHistoryData: action.orderHistoryData,\r\n isOrderHistoryLoadedSuccessful: true,\r\n displayCancelledFiles: action.displayCancelledFiles\r\n };\r\n case types.LOAD_ORDER_HISTORY_ERROR:\r\n return {\r\n ...state,\r\n orderHistoryData: [],\r\n isOrderHistoryLoadedSuccessful: false\r\n };\r\n case types.LOAD_ORDER_HISTORY_PAGES_SUCCESS: return {\r\n ...state,\r\n areOrderHistoryPagesLoadedSuccessful: true,\r\n orderHistoryPages: action.orderHistoryPages,\r\n displayCancelledFiles: action.displayCancelledFiles\r\n };\r\n case types.LOAD_ORDER_HISTORY_PAGES_ERROR: return {\r\n ...state,\r\n areOrderHistoryPagesLoadedSuccessful: false,\r\n orderHistoryPages: 0\r\n };\r\n case types.LOAD_ORDER_DETAILS_SUCCESS: return {\r\n ...state,\r\n orderDetails: action.orderDetails,\r\n areOrderDetailsLoadedSuccessful: true\r\n };\r\n case types.LOAD_ORDER_DETAILS_ERROR: return {\r\n ...state,\r\n orderDetails: {},\r\n areOrderDetailsLoadedSuccessful: false\r\n };\r\n case types.LOAD_USER_TICKETS_SUCCESS: return {\r\n ...state,\r\n userTicketsData: action.userTicketsData,\r\n hideOldTickets: action.hideOldTickets,\r\n isUserTicketsDataLoadedSuccessful: true,\r\n };\r\n case types.LOAD_USER_TICKETS_ERROR: return {\r\n ...state,\r\n userTicketsData: {},\r\n isUserTicketsDataLoadedSuccessful: false,\r\n };\r\n case types.DOWNLOAD_PDF_FILE_SUCCESS: return {\r\n ...state,\r\n downloadPdfFileErrorMessages: [],\r\n isPdfFileDownloadedSuccessful: true\r\n };\r\n case types.DOWNLOAD_PDF_FILE_ERROR: return {\r\n ...state,\r\n isPdfFileDownloadedSuccessful: false,\r\n downloadPdfFileErrorMessages: action.downloadPdfFileErrorMessages\r\n };\r\n case types.UPDATE_USER_DETAILS_SUCCESS:\r\n return {\r\n ...state,\r\n isUserDetailsUpdatedSuccessful: true,\r\n updateUserDetailsMessages: action.updateUserDetailsMessages\r\n };\r\n case types.UPDATER_USER_EMAIL_SUCCESS:\r\n return {\r\n ...state,\r\n isUserDetailsUpdatedSuccessful: true,\r\n isUserUpdatingEmail: true,\r\n updateUserDetailsMessages: action.updateUserDetailsMessages\r\n };\r\n case types.UPDATE_USER_DETAILS_ERROR:\r\n return {\r\n ...state,\r\n isUserDetailsUpdatedSuccessful: false,\r\n updateUserDetailsMessages: action.updateUserDetailsMessages\r\n };\r\n case types.REMOVE_USER_ACCOUNT_SUCCESS:\r\n return {\r\n ...state,\r\n isUserAccountRemovedSuccessful: true\r\n };\r\n case types.REMOVE_USER_ACCOUNT_ERROR:\r\n return {\r\n ...state,\r\n isUserAccountRemovedSuccessful: false\r\n };\r\n case types.UPDATE_USER_ADDRESSES_SUCCESS:\r\n return {\r\n ...state,\r\n areUserAddressesUpdatedSuccessful: true,\r\n updateUserAddressesMessages: action.updateUserAddressesMessages\r\n };\r\n case types.UPDATE_USER_ADDRESSES_ERROR:\r\n return {\r\n ...state,\r\n areUserAddressesUpdatedSuccessful: false,\r\n updateUserAddressesMessages: action.updateUserAddressesMessages\r\n };\r\n case types.RESET_USER_ADDRESSES_FORM_STATE:\r\n return {\r\n ...state,\r\n areUserAddressesUpdatedSuccessful: false,\r\n updateUserAddressesMessages: []\r\n };\r\n case types.USER_ADDRESSES_ERROR_MESSAGE: return {\r\n ...state,\r\n areUserAddressesUpdatedSuccessful: false,\r\n updateUserAddressesMessages: action.errorMessages\r\n };\r\n case types.CHANGE_PASSWORD_SUCCESS:\r\n return {\r\n ...state,\r\n isUserPasswordChangedSuccessful: true,\r\n changePasswordMessages: action.changePasswordMessages\r\n };\r\n case types.CHANGE_PASSWORD_ERROR:\r\n return {\r\n ...state,\r\n isUserPasswordChangedSuccessful: false,\r\n changePasswordMessages: action.changePasswordMessages\r\n };\r\n case types.RESET_USER_DETAILS_FORM_STATE:\r\n return {\r\n ...state,\r\n isUserDetailsUpdatedSuccessful: false,\r\n updateUserDetailsMessages: []\r\n };\r\n case types.RESET_CHANGE_PASSWORD_FORM_STATE:\r\n return {\r\n ...state,\r\n isUserPasswordChangedSuccessful: false,\r\n changePasswordMessages: [],\r\n };\r\n case types.SAVE_USER_TO_ADDRESS_BOOK_SUCCESS:\r\n return {\r\n ...state,\r\n userAddedToAddressBookSuccessful: true,\r\n saveUserToAddressBookErrorMessages: []\r\n }\r\n case types.SAVE_USER_TO_ADDRESS_BOOK_ERROR_MESSAGE:\r\n return {\r\n ...state,\r\n userAddedToAddressBookSuccessful: false,\r\n saveUserToAddressBookErrorMessages: action.errorMessages\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as types from '../actions/action-types';\r\nimport initialState from './initial-state';\r\nimport { formMessageConstants } from '../../components/utils/constants/form-message-constants';\r\n\r\nfunction actionTypeEndsInSuccess(type) {\r\n return type.substring(type.length - 8) === '_SUCCESS';\r\n}\r\n\r\nexport default function apiStatusReducer(\r\n state = {\r\n apiCallsInProgress: initialState.apiStatus.apiCallsInProgress,\r\n apiErrorMessages: initialState.apiStatus.apiErrorMessages\r\n },\r\n action\r\n) {\r\n if (action.type === types.BEGIN_API_CALL) {\r\n return {\r\n ...state,\r\n apiCallsInProgress: state.apiCallsInProgress + 1,\r\n apiErrorMessages: []\r\n };\r\n }\r\n\r\n if (action.type === types.API_CALL_ERROR) {\r\n return {\r\n ...state,\r\n apiCallsInProgress: state.apiCallsInProgress - 1,\r\n apiErrorMessages: [formMessageConstants.somethingWentWrong]\r\n };\r\n }\r\n\r\n if (actionTypeEndsInSuccess(action.type)) {\r\n return {\r\n ...state,\r\n apiCallsInProgress: state.apiCallsInProgress - 1,\r\n apiErrorMessage: []\r\n };\r\n }\r\n\r\n if (action.type === types.API_CALL_STATE_RESET) {\r\n return state;\r\n }\r\n\r\n return state;\r\n}\r\n","import BaseComponent from 'foundation/base-component';\r\nimport React from 'react';\r\nimport { render } from 'react-dom';\r\nimport { Provider as ReduxProvider } from 'react-redux';\r\nimport SSOForm from './components/SSOForm';\r\nimport configureStore from './store/configure-store';\r\nimport { AmplifyClient } from '../../project/amplify-client';\r\n\r\nexport default class SSOFormComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.data = {};\r\n\r\n try {\r\n AmplifyClient.init();\r\n this.data = JSON.parse(this.getAttribute(this.refs.data, 'options'));\r\n } catch (error) {\r\n console.log(error.message);\r\n }\r\n\r\n if (!this.data) {\r\n console.log('No data found');\r\n return;\r\n }\r\n\r\n const store = configureStore();\r\n\r\n render(\r\n \r\n \r\n ,\r\n this.refs.section\r\n );\r\n }\r\n}\r\n","import { createStore, applyMiddleware } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport rootReducer from './reducers';\r\n\r\nexport default function configureStore(initialState) {\r\n return createStore(rootReducer, initialState, applyMiddleware(thunk));\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport SSOFormComponent from './sso-form.component';\r\n\r\nComponentsFactory.getInstance().define('sso-form', SSOFormComponent);\r\n","import get from \"lodash/get\";\r\nimport BaseComponent from \"foundation/base-component\";\r\nimport ScoringLoader, {\r\n endpointNames,\r\n} from \"general/js/loaders/scoring-loader\";\r\nimport store from \"general/js/store\";\r\n\r\nclass StickyButtonTriggerComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.windowObjectReference = null;\r\n this.unsubscribe = null;\r\n this.state = {\r\n title: this.options.title,\r\n isActive: this.options.isActive || false,\r\n openInPopup: this.options.openInPopup || false,\r\n };\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (this.state.openInPopup) {\r\n this.addListener(this.element, \"click\", this.onClickRoot);\r\n }\r\n ScoringLoader.subscribe(endpointNames.LIVE_SCANNER);\r\n this.unsubscribe = store.subscribe(this.onStoreUpdate);\r\n }\r\n\r\n onDestroy() {\r\n ScoringLoader.unsubscribe(endpointNames.LIVE_SCANNER);\r\n this.unsubscribe();\r\n }\r\n\r\n onStoreUpdate = () => {\r\n const state = store.getState();\r\n const config = get(state, \"scoring.liveScanner.streamsConfig\");\r\n\r\n if (!config || !config.radio) return;\r\n\r\n if (this.state.isActive !== config.radio.show) {\r\n this.state.isActive = config.radio.show;\r\n this.update();\r\n }\r\n };\r\n\r\n onClickRoot = (event) => {\r\n if (this.state.isActive) {\r\n // we should switch to sync logic there because of the way we handle showWindow\r\n // basically the theory behind is that the browser will treat window.open as a spam\r\n // and block it in case of any delay between the user action (trusted event) and actual window.open\r\n // we can't show window after passed challenge because it takes a lot of time and window will be blocked\r\n // and we have to do nothing first time and only on second click show window synchronously\r\n // we do so by passing second parameter equals true\r\n //emailCapturingService.challenge(() => {\r\n this.showWindow(this.element.href);\r\n //}, true);\r\n }\r\n\r\n event.preventDefault();\r\n };\r\n\r\n showWindow(url) {\r\n if (!url) return;\r\n\r\n if (this.windowObjectReference && !this.windowObjectReference.closed) {\r\n this.windowObjectReference.focus();\r\n return;\r\n }\r\n\r\n this.windowObjectReference = window.open(\r\n url,\r\n this.options.title,\r\n \"left=150,top=150,width=780,height=780,resizable,scrollbars=0,status=1\"\r\n );\r\n\r\n // make window be square in all browsers\r\n setTimeout(() => {\r\n this.windowObjectReference.document.documentElement.style.overflow =\r\n \"hidden\";\r\n this.windowObjectReference.innerWidth = 400;\r\n this.windowObjectReference.innerHeight = 400;\r\n }, 300);\r\n }\r\n\r\n update = () => {\r\n if (this.state.isActive) {\r\n this.element.classList.add(\"is-active\");\r\n this.element.classList.remove(\"inactive\");\r\n } else {\r\n this.element.classList.remove(\"is-active\");\r\n this.element.classList.add(\"inactive\");\r\n }\r\n };\r\n}\r\n\r\nexport default StickyButtonTriggerComponent;\r\n","//import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport StickyButtonTriggerComponent from './js/sticky-button-trigger.component';\r\n\r\nComponentsFactory.getInstance().define('sticky-button', StickyButtonTriggerComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Scroller from '../../../general/js/scroller';\r\n\r\nexport default class SubNav extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.links = this.refs.links;\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n if (this.element.classList.contains('sub-nav-light')) {\r\n this.links.forEach((link) => {\r\n this.addListener(link, 'click', this.onClick.bind(this));\r\n });\r\n }\r\n }\r\n\r\n onClick(event) {\r\n event.preventDefault();\r\n\r\n const elementId = event.target.getAttribute('href');\r\n const blockToShow = document.querySelector(elementId);\r\n\r\n if (blockToShow) {\r\n this.scroller = new Scroller(blockToShow, { scrollOffset: 100 });\r\n this.scroller.scrollToTop();\r\n }\r\n }\r\n\r\n onDestroy() {\r\n this.scroller = null;\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport SubNavComponent from './js/sub-nav.component';\r\n\r\nComponentsFactory.getInstance().define('sub-nav', SubNavComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport anime from 'animejs';\r\nimport Stickyfill from 'stickyfilljs';\r\nimport { createBrowserHistory } from 'history';\r\nimport eventBus from '../../../general/js/event-bus';\r\n\r\nexport default class SubPageNav extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.activeNavLinkNode = null;\r\n this.currentContentNode = null;\r\n this.elementCoordinateTop = 0;\r\n\r\n this.links = this.refs.links;\r\n this.content = this.refs.content;\r\n\r\n this.history = createBrowserHistory();\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.stickyfill();\r\n\r\n eventBus.addListener('venue-hero-init', this.venueHeroInit);\r\n eventBus.addListener('large-hero-init', this.largeHeroInit);\r\n\r\n this.onPopstate();\r\n this.tabsInit();\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener('venue-hero-init', this.venueHeroInit);\r\n eventBus.removeListener('large-hero-init', this.largeHeroInit);\r\n\r\n Stickyfill.remove(this.refs.nav);\r\n }\r\n\r\n setStyles(node) {\r\n const indent = node.offsetHeight;\r\n let className = '';\r\n\r\n switch (node) {\r\n case this.venueHeroSticky:\r\n className = 'is-venue-hero-sticky';\r\n break;\r\n case this.heroSticky:\r\n className = 'is-hero-sticky';\r\n break;\r\n default:\r\n className = '';\r\n }\r\n\r\n if (node) {\r\n this.refs.nav.classList.add(className);\r\n this.elementCoordinateTop = this.element.offsetTop - indent;\r\n }\r\n }\r\n\r\n venueHeroInit = (props) => {\r\n this.venueHeroSticky = props.venueHeroStickyRef;\r\n\r\n this.setStyles(this.venueHeroSticky);\r\n }\r\n\r\n largeHeroInit = (props) => {\r\n this.heroSticky = props.largeHeroStickyRef;\r\n\r\n this.setStyles(this.heroSticky);\r\n }\r\n\r\n onPopstate = () => {\r\n this.history.listen(() => {\r\n const hash = window.location.hash;\r\n\r\n if (!this.element && hash) return false;\r\n\r\n this.currentId = hash;\r\n\r\n if (!this.currentId) return false;\r\n\r\n if (this.activeNavLinkNode) {\r\n this.activeNavLinkNode.classList.remove('is-active');\r\n }\r\n\r\n if (!this.links) return false;\r\n\r\n const activeNavLinkNode = this.links.filter((item) => item.getAttribute('href') === hash);\r\n\r\n this.activeNavLinkNode = activeNavLinkNode[0];\r\n const key = this.links.indexOf(this.activeNavLinkNode);\r\n this.activeNavLinkNode.classList.add('is-active');\r\n this.showContent(this.content[key]);\r\n\r\n return true;\r\n });\r\n };\r\n\r\n stickyfill() {\r\n Stickyfill.add(this.refs.nav);\r\n }\r\n\r\n tabsInit() {\r\n if (!this.links) {\r\n return;\r\n }\r\n const activeNavLink = this.links.filter((item) => item.getAttribute('href') === window.location.hash);\r\n\r\n if (activeNavLink.length === 0) {\r\n this.links[0].classList.add('is-active');\r\n } else {\r\n this.links.forEach((link) => {\r\n link.classList.remove('is-active');\r\n });\r\n activeNavLink[0].classList.add('is-active');\r\n }\r\n\r\n Object.keys(this.links).forEach((key) => {\r\n const link = this.links[key];\r\n\r\n this.addListener(link, 'click', this.onLinkClick.bind(this, key));\r\n\r\n if (link.classList.contains('is-active')) {\r\n if (!this.activeNavLinkNode) {\r\n this.activeNavLinkNode = link;\r\n\r\n if (this.content[key]) {\r\n this.content[key].classList.add('is-active');\r\n this.currentContentNode = this.content[key];\r\n }\r\n } else {\r\n // remove dublicate state if found\r\n link.classList.remove('is-active');\r\n }\r\n }\r\n });\r\n }\r\n\r\n onLinkClick(key, e) {\r\n e.preventDefault();\r\n\r\n this.elementCoordinateTop = this.element.offsetTop;\r\n\r\n // without animation\r\n // document.documentElement.scrollTop = this.elementCoordinateTop;\r\n\r\n anime({\r\n targets: document.documentElement,\r\n scrollTop: this.elementCoordinateTop,\r\n duration: 400,\r\n easing: 'easeOutQuad'\r\n });\r\n\r\n this.currentId = e.target.getAttribute('href');\r\n\r\n if (!document.getElementsByClassName('modal__container')[0]) {\r\n window.location.hash = this.currentId;\r\n }\r\n\r\n if (this.activeNavLinkNode) {\r\n this.activeNavLinkNode.classList.remove('is-active');\r\n }\r\n\r\n this.activeNavLinkNode = e.target;\r\n this.activeNavLinkNode.classList.add('is-active');\r\n this.showContent(this.content[key]);\r\n }\r\n\r\n showContent(contentNode) {\r\n if (this.currentContentNode) {\r\n if (this.currentContentNode === contentNode) {\r\n return;\r\n }\r\n\r\n this.currentContentNode.classList.remove('is-active');\r\n }\r\n\r\n contentNode.classList.add('is-active');\r\n this.currentContentNode = contentNode;\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport SubPageNav from './js/sub-page-nav.component';\r\n\r\nComponentsFactory.getInstance().define('sub-page-nav', SubPageNav);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport eventBus from 'general/js/event-bus';\r\n\r\nconst SUBLAYOUT_FULLWIDTH_ENABLE = 'SUBLAYOUT_FULLWIDTH_ENABLE';\r\nconst SUBLAYOUT_FULLWIDTH_DISABLE = 'SUBLAYOUT_FULLWIDTH_DISABLE';\r\n\r\nclass SublayoutComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n eventBus.addListener(SUBLAYOUT_FULLWIDTH_ENABLE, this.enableFullwidth);\r\n eventBus.addListener(SUBLAYOUT_FULLWIDTH_DISABLE, this.disableFullwidth);\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener(SUBLAYOUT_FULLWIDTH_ENABLE, this.enableFullwidth);\r\n eventBus.removeListener(SUBLAYOUT_FULLWIDTH_DISABLE, this.disableFullwidth);\r\n }\r\n\r\n enableFullwidth = () => {\r\n this.element.classList.add('is-fullwidth');\r\n }\r\n\r\n disableFullwidth = () => {\r\n this.element.classList.remove('is-fullwidth');\r\n }\r\n}\r\n\r\nexport default SublayoutComponent;\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport SublayoutComponent from './js/sublayout.component';\r\n\r\nComponentsFactory.getInstance().define('sublayout', SublayoutComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport {\r\n hasValue,\r\n isNullOrUndefined,\r\n} from '../../../general/js/general-helpers';\r\nimport { initialiseEventCentreInstance } from '../../imga-iframe/js/imga-iframe-helpers';\r\n\r\nexport default class TabsComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.activeNavLinkNode = null;\r\n this.currentContentNode = null;\r\n\r\n this.links = this.refs.links;\r\n this.content = this.refs.content;\r\n this.state = {\r\n shotViewElement: null,\r\n };\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n Object.keys(this.links).forEach((key) => {\r\n const link = this.links[key];\r\n this.addListener(link, 'click', this.onLinkClick.bind(this, link));\r\n\r\n if (link.classList.contains('is-active')) {\r\n if (!this.activeNavLinkNode) {\r\n this.activeNavLinkNode = link;\r\n\r\n const contentNode = this.content.find((tab) =>\r\n link.hash.includes(tab.id));\r\n if (contentNode) {\r\n contentNode.classList.add('is-active');\r\n this.currentContentNode = contentNode;\r\n }\r\n } else {\r\n // remove dublicate state if found\r\n link.classList.remove('is-active');\r\n }\r\n }\r\n });\r\n }\r\n\r\n onLinkClick(link, e) {\r\n e.preventDefault();\r\n\r\n if (this.activeNavLinkNode) {\r\n this.activeNavLinkNode.classList.remove('is-active');\r\n }\r\n\r\n this.activeNavLinkNode = e.target;\r\n this.activeNavLinkNode.classList.add('is-active');\r\n const contentNode = this.content.find((tab) =>\r\n link.hash.includes(tab.id));\r\n this.showContent(contentNode);\r\n\r\n if (contentNode.id === 'widget-course-map') {\r\n this.loadShotView();\r\n }\r\n }\r\n\r\n loadShotView() {\r\n const shotViewCreator = window.frontRowSeat;\r\n const { eventCentreParameters } = this.options;\r\n\r\n const shotViewHolder = hasValue(eventCentreParameters.targetElement) ?\r\n document.getElementById(eventCentreParameters.targetElement) :\r\n null;\r\n\r\n if (\r\n !isNullOrUndefined(shotViewHolder) &&\r\n !isNullOrUndefined(shotViewCreator)\r\n ) {\r\n this.state.shotViewElement = initialiseEventCentreInstance(\r\n shotViewCreator,\r\n shotViewHolder\r\n );\r\n }\r\n }\r\n\r\n showContent(contentNode) {\r\n if (this.currentContentNode) {\r\n if (this.currentContentNode === contentNode) {\r\n return;\r\n }\r\n\r\n this.currentContentNode.classList.remove('is-active');\r\n }\r\n\r\n contentNode.classList.add('is-active');\r\n this.currentContentNode = contentNode;\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport TabsComponent from './js/tabs.component';\r\n\r\nComponentsFactory.getInstance().define('tabs', TabsComponent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ModalTriggerComponent from '../../modal/js/modal-trigger.component';\r\n\r\nexport default class PopupLink extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.linkRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.modalTrigger = new ModalTriggerComponent(this.linkRef.current, 'modal-trigger');\r\n }\r\n\r\n componentWillUnmount() {\r\n this.modalTrigger.destroy();\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nPopupLink.propTypes = {\r\n className: PropTypes.string,\r\n href: PropTypes.string,\r\n ariaLabel: PropTypes.string,\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ])\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PopupLink from './popup-link';\r\n\r\nexport default function PopupLinkInfo(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nPopupLinkInfo.propTypes = {\r\n href: PropTypes.string.isRequired,\r\n children: PropTypes.string\r\n};\r\n","export const SCENARIO_STANDARD = 'standard';\r\nexport const SCENARIO_HOSPITALITY = 'hospitality';\r\nexport const SCENARIO_HOSPITALITY_WITH_EXTRAS = 'hospitality_with_extras';\r\nexport const SCENARIO_PARKING = 'parking';\r\nexport const SCENARIO_PARKING_STANDALONE = 'parking_standalone';\r\nexport const SCENARIO_STANDARD_WITH_EXTRAS = 'standard_with_extras';\r\n\r\nexport const ROUTE_DAYS = '/select-days';\r\nexport const ROUTE_TICKETS = '/select-tickets';\r\nexport const ROUTE_EXTRAS = '/select-extras';\r\nexport const ROUTE_PARKING = '/select-parking';\r\nexport const ROUTE_PARKING_STANDALONE = '/select-parking-standalone';\r\n\r\nexport const DEFAULT_SOLD_OUT_LABEL = \"Sold Out\";\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\nimport { DEFAULT_SOLD_OUT_LABEL } from './constants';\r\n\r\nexport default class CheckboxPanel extends React.Component {\r\n renderAdditional() {\r\n return this.props.additional ? this.props.additional : null;\r\n }\r\n\r\n renderButton() {\r\n if (this.props.isDisabled) {\r\n return null;\r\n }\r\n\r\n if (this.props.button) {\r\n return this.props.button;\r\n }\r\n\r\n const selectBtnText = this.props.isSelected ? 'Remove' : 'Add';\r\n let selectBtnLabel = '';\r\n\r\n if (this.props.isSelected) {\r\n selectBtnLabel = 'Remove from basket';\r\n } else {\r\n selectBtnLabel = 'Add to basket';\r\n }\r\n\r\n const noSpacesTitle = this.props.title.replaceAll(' ', '-');\r\n\r\n return (\r\n \r\n \r\n {selectBtnText}\r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n const soldOutLabel = hasValue(this.props.soldOutLabel) ? this.props.soldOutLabel : DEFAULT_SOLD_OUT_LABEL;\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n

    \r\n {this.props.title}\r\n {\r\n this.props.bracketsText ?\r\n {this.props.bracketsText} : ''\r\n }\r\n

    \r\n
    {this.props.text}
    \r\n
    \r\n {this.renderAdditional()}\r\n {this.renderButton()}\r\n
    \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nCheckboxPanel.defaultProps = {\r\n cssClasses: '',\r\n};\r\n\r\nCheckboxPanel.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n isSelected: PropTypes.bool.isRequired,\r\n isDisabled: PropTypes.bool,\r\n text: PropTypes.string,\r\n bracketsText: PropTypes.string,\r\n additional: PropTypes.element,\r\n button: PropTypes.element,\r\n cssClasses: PropTypes.string,\r\n onClick: PropTypes.func,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CheckboxPanel from './checkbox-panel';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\nimport gtm, { ecommerceEventTypes } from '../../../general/js/gtm';\r\nimport { CURRENCY_RATIO, currencyIsoCodes } from '../../../general/js/basket/currency-helper';\r\n\r\nexport default class ProductGroupPanel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onClick = this.onClick.bind(this);\r\n }\r\n\r\n onClick() {\r\n this.props.onSelect(this.props.productGroup.id);\r\n\r\n if (!this.props.productGroup.isSelected) {\r\n const productGroup = this.props.productGroup;\r\n const product = productGroup.products[0];\r\n const productPrice = product.price / CURRENCY_RATIO;\r\n\r\n gtm.pushEcommerceEvent(ecommerceEventTypes.SELECT_ITEM, {\r\n currency: currencyIsoCodes.GBP,\r\n value: productPrice,\r\n items: [\r\n {\r\n item_id: product.productId,\r\n item_name: `${product.tag} - ${productGroup.title}`,\r\n price: productPrice,\r\n quantity: 1,\r\n }\r\n ]\r\n });\r\n }\r\n }\r\n\r\n getProductGroupTag() {\r\n if (!hasValue(this.props) && !hasValue(this.props.productGroup)) return null;\r\n\r\n const { productGroup: { productTag }, productGroup: { isSoldOut } } = this.props;\r\n\r\n if (!hasValue(productTag) || isSoldOut) return null;\r\n\r\n const { title, backgroundColor, textColor } = productTag;\r\n\r\n if (!hasValue(title)) return null;\r\n\r\n return {\r\n title: title,\r\n backgroundColor: backgroundColor,\r\n textColor: textColor\r\n };\r\n }\r\n\r\n renderProductGroupTag() {\r\n const productTag = this.getProductGroupTag();\r\n\r\n if (!hasValue(productTag)) return null;\r\n\r\n const { title, backgroundColor, textColor } = productTag;\r\n\r\n const inlineTagStyle = hasValue(backgroundColor) || hasValue(textColor)\r\n ? { backgroundColor: backgroundColor, color: textColor }\r\n : {};\r\n\r\n return (\r\n
    \r\n {title}\r\n
    \r\n );\r\n }\r\n\r\n renderButton() {\r\n if (this.props.productGroup.isComplete) {\r\n return (\r\n
    These tickets already added to basket
    \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n render() {\r\n const productGroup = this.props.productGroup;\r\n\r\n const stateCssClass = [];\r\n const rootCssModificator = [];\r\n const productGroupTag = this.getProductGroupTag();\r\n\r\n if (productGroup.useBlueHighlight) {\r\n rootCssModificator.push('product-panel--bundle');\r\n }\r\n\r\n if (!productGroup.isComlete && !productGroup.isSoldOut && hasValue(productGroupTag)) {\r\n rootCssModificator.push('product-panel--product-group-tag');\r\n }\r\n\r\n if (productGroup.isSoldOut) {\r\n stateCssClass.push('is-sold-out');\r\n }\r\n\r\n if (productGroup.isComlete) {\r\n stateCssClass.push('is-complete');\r\n }\r\n const isDisabled = productGroup.isComlete || productGroup.isSoldOut;\r\n\r\n const classes = `${rootCssModificator.join(' ')} ${stateCssClass.join(' ')}`;\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nProductGroupPanel.propTypes = {\r\n productGroup: PropTypes.object,\r\n onSelect: PropTypes.func,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PopupLinkInfo from './popup-link-info';\r\nimport ProductGroupPanel from './product-group-panel';\r\nimport CurrencyHelper from '../../../general/js/basket/currency-helper';\r\nimport {\r\n PRODUCT_TYPE_TICKET,\r\n PRODUCT_TYPE_HOSPITALITY,\r\n PRODUCT_TAG_ADULT,\r\n PRODUCT_TAG_YOUTH,\r\n PRODUCT_TAG_CAR,\r\n PRODUCT_TAG_JUNIOR\r\n} from '../../../general/js/basket/constants';\r\nimport {\r\n SCENARIO_STANDARD,\r\n SCENARIO_HOSPITALITY,\r\n SCENARIO_HOSPITALITY_WITH_EXTRAS,\r\n SCENARIO_PARKING,\r\n SCENARIO_PARKING_STANDALONE,\r\n SCENARIO_STANDARD_WITH_EXTRAS\r\n} from './constants';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\n\r\nexport default class SelectDaysForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.formHeading = React.createRef();\r\n this.onSelectDay = this.onSelectDay.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.formHeading.current.focus();\r\n }\r\n\r\n onSelectDay(productGroupId) {\r\n let foundProductGroup = null;\r\n\r\n this.props.categoriesList.forEach((categorie) =>\r\n categorie.productGroups.forEach((productGroup) => {\r\n if (!foundProductGroup &&\r\n productGroup.id === productGroupId\r\n ) {\r\n foundProductGroup = productGroup;\r\n }\r\n }));\r\n\r\n this.props.onSelectProductGroup(foundProductGroup);\r\n }\r\n\r\n generateSummaryText(productGroup) {\r\n let summaryText;\r\n\r\n switch (this.props.currentScenario) {\r\n case SCENARIO_STANDARD:\r\n summaryText = this.generateStandardSummary(productGroup);\r\n break;\r\n case SCENARIO_HOSPITALITY:\r\n case SCENARIO_HOSPITALITY_WITH_EXTRAS:\r\n summaryText = this.generateHospitalitySummary(productGroup);\r\n break;\r\n case SCENARIO_PARKING:\r\n case SCENARIO_PARKING_STANDALONE:\r\n summaryText = this.generateParkingSummary(productGroup);\r\n break;\r\n default:\r\n summaryText = '';\r\n }\r\n\r\n return summaryText;\r\n }\r\n\r\n generateStandardSummary(productGroup) {\r\n const adultTariff = productGroup.products.find((product) =>\r\n product.type === PRODUCT_TYPE_TICKET && product.tag === PRODUCT_TAG_ADULT);\r\n const youthTariff = productGroup.products.find((product) =>\r\n product.type === PRODUCT_TYPE_TICKET && product.tag === PRODUCT_TAG_YOUTH);\r\n const juniorTariff = productGroup.products.find((product) =>\r\n product.type === PRODUCT_TYPE_TICKET && product.tag === PRODUCT_TAG_JUNIOR);\r\n\r\n const tarrifs = [];\r\n if (adultTariff) {\r\n tarrifs.push(`${CurrencyHelper.convertToPounds(adultTariff.price)} per Adult`);\r\n }\r\n if (youthTariff) {\r\n tarrifs.push(`${CurrencyHelper.convertToPounds(youthTariff.price)} per Youth`);\r\n }\r\n if (juniorTariff) {\r\n let text = 'Junior FREE';\r\n\r\n if (juniorTariff.price !== 0) {\r\n text = `${CurrencyHelper.convertToPounds(juniorTariff.price)} per Junior`;\r\n }\r\n\r\n tarrifs.push(text);\r\n }\r\n\r\n return tarrifs.join(' / ');\r\n }\r\n\r\n generateHospitalitySummary(productGroup) {\r\n const hospitalityTariff = productGroup.products.find((product) =>\r\n product.type === PRODUCT_TYPE_HOSPITALITY);\r\n let text = '';\r\n\r\n if (hospitalityTariff) {\r\n text += `${CurrencyHelper.convertToPounds(hospitalityTariff.price)} per person (inc VAT)`;\r\n }\r\n\r\n return text;\r\n }\r\n\r\n generateParkingSummary(productGroup) {\r\n const parkingTariff = productGroup.products.find((parking) =>\r\n parking.tag === PRODUCT_TAG_CAR);\r\n\r\n let text = '';\r\n\r\n if (parkingTariff) {\r\n text += `${CurrencyHelper.convertToPounds(parkingTariff.price)} ${parkingTariff.priceLabel}`;\r\n }\r\n\r\n return text;\r\n }\r\n\r\n renderCategories() {\r\n const categoriesList = this.props.categoriesList;\r\n\r\n if (!categoriesList) return null;\r\n\r\n return categoriesList.map((category) =>\r\n
    \r\n

    {category.title}

    \r\n {this.renderProductGroups(category.productGroups)}\r\n
    );\r\n }\r\n\r\n renderProductGroups(productGroupsList) {\r\n return productGroupsList.map((productGroup) => {\r\n const newProductGroup = Object.assign({}, productGroup);\r\n\r\n newProductGroup.summaryText = this.generateSummaryText(productGroup);\r\n newProductGroup.isSelected = this.props.productGroupsList.some((cProductGroup) =>\r\n cProductGroup.id === newProductGroup.id);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n {this.props.formTitle}

    \r\n
    \r\n

    {this.props.dictionary.selectDaysSubtitle}

    \r\n {\r\n this.props.currentScenario !== SCENARIO_STANDARD_WITH_EXTRAS &&\r\n hasValue(this.props.dictionary.helpMeChooseLinkUrl) &&\r\n hasValue(this.props.dictionary.helpMeChooseLinkText) &&\r\n \r\n {this.props.dictionary.helpMeChooseLinkText}\r\n \r\n }\r\n
    \r\n {this.renderCategories()}\r\n \r\n );\r\n }\r\n}\r\n\r\nSelectDaysForm.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n product: PropTypes.object,\r\n productGroupsList: PropTypes.array,\r\n categoriesList: PropTypes.array,\r\n currentScenario: PropTypes.string.isRequired,\r\n formTitle: PropTypes.string,\r\n onSelectProductGroup: PropTypes.func\r\n};\r\n","import React from 'react';\r\n\r\nexport const TicketBuilderContext = React.createContext();\r\n\r\nexport function withTicketBuilderContext(Component) {\r\n return (props) => (\r\n \r\n {(context) => }\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport CurrencyHelper, { currencyIsoCodes } from '../../../general/js/basket/currency-helper';\r\nimport gtm, { ecommerceEventTypes } from '../../../general/js/gtm';\r\nimport TrackingHelper from '../../../general/js/basket/tracking-helper';\r\nimport { withTicketBuilderContext } from './ticket-builder-context';\r\n\r\nclass TicketBuilderAside extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onContinue = this.onContinue.bind(this);\r\n }\r\n\r\n renderProduct(basketProduct) {\r\n if (!basketProduct || !basketProduct.quantity) return null;\r\n\r\n return (\r\n
    \r\n
    {basketProduct.title}
    \r\n
    x{basketProduct.quantity}
    \r\n
    \r\n {\r\n basketProduct.price > 0 ?\r\n CurrencyHelper.convertToPounds(basketProduct.sum) :\r\n 'Free'\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n renderProductGroups() {\r\n const preparedProductGroups = this.getPreparedProductGroups();\r\n\r\n if (preparedProductGroups.length === 0) {\r\n return this.renderEmpty();\r\n }\r\n\r\n return preparedProductGroups.map((basketProductGroup) => (\r\n
    \r\n

    {basketProductGroup.title}

    \r\n {\r\n basketProductGroup.products.sort((a, b) => a.sortOrder - b.sortOrder)\r\n .map((basketProduct) => this.renderProduct(basketProduct))\r\n }\r\n
    ));\r\n }\r\n\r\n renderEmpty() {\r\n return (\r\n
    \r\n
    Your basket is empty
    \r\n
    \r\n );\r\n }\r\n\r\n getPreparedProductGroups() {\r\n const mergedWithTempGroups = { ...this.props.basket.productGroups };\r\n this.props.productGroupsList.forEach((productGroup) => {\r\n if (!(productGroup.id in mergedWithTempGroups)) {\r\n mergedWithTempGroups[productGroup.id] = productGroup;\r\n }\r\n });\r\n\r\n return Object.values(mergedWithTempGroups);\r\n }\r\n\r\n onContinue(actionCaption, fromRoute) {\r\n if (actionCaption === 'Pay') {\r\n const preparedProductGroups = this.getPreparedProductGroups();\r\n\r\n const basketValue = TrackingHelper.getBasketTotalValue(preparedProductGroups);\r\n const basketItems = TrackingHelper.getBasketProducts(preparedProductGroups);\r\n\r\n gtm.pushEcommerceEvent(ecommerceEventTypes.BEGIN_CHECKOUT, {\r\n currency: currencyIsoCodes.GBP,\r\n value: basketValue,\r\n items: basketItems\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n this.props.onToggleBasketMobile()}\r\n >\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n

    Your Basket

    \r\n Edit\r\n
    \r\n
    \r\n {this.renderProductGroups()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n Total\r\n {CurrencyHelper.convertToPounds(this.props.basket.total)}\r\n
    \r\n {'totalMc' in this.props.basket ?\r\n
    \r\n Total with\r\n \r\n {CurrencyHelper.convertToPounds(this.props.basket.totalMc)}\r\n
    :\r\n null}\r\n
    \r\n {this.props.renderControls(this.onContinue)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nTicketBuilderAside.propTypes = {\r\n productGroupsList: PropTypes.array,\r\n basket: PropTypes.object,\r\n onToggleBasketMobile: PropTypes.func,\r\n renderControls: PropTypes.func,\r\n tb: PropTypes.object.isRequired,\r\n basketUrl: PropTypes.string\r\n};\r\n\r\nexport default withTicketBuilderContext(TicketBuilderAside);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport SelectDaysForm from './select-days-form';\r\nimport TicketBuilderAside from './ticket-builder-aside';\r\nimport {\r\n ROUTE_DAYS,\r\n ROUTE_TICKETS,\r\n ROUTE_PARKING,\r\n ROUTE_PARKING_STANDALONE,\r\n SCENARIO_HOSPITALITY,\r\n SCENARIO_PARKING,\r\n SCENARIO_PARKING_STANDALONE,\r\n SCENARIO_HOSPITALITY_WITH_EXTRAS\r\n} from './constants';\r\n\r\nexport default class SelectDaysPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onClickContinue = this.onClickContinue.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.hasPreselectedProductGroup && this.isNextStepAvailable()) {\r\n this.props.history.push(this.getNextRoute());\r\n }\r\n }\r\n\r\n onClickContinue(event, onContinue) {\r\n if (!this.isNextStepAvailable()) {\r\n event.preventDefault();\r\n }\r\n\r\n onContinue('Continue', ROUTE_DAYS);\r\n }\r\n\r\n getNextRoute() {\r\n let nextRoute = ROUTE_TICKETS;\r\n\r\n if (this.props.currentScenario === SCENARIO_PARKING) {\r\n nextRoute = ROUTE_PARKING;\r\n }\r\n if (this.props.currentScenario === SCENARIO_PARKING_STANDALONE) {\r\n nextRoute = ROUTE_PARKING_STANDALONE;\r\n }\r\n \r\n return nextRoute;\r\n }\r\n\r\n generateFormTitle() {\r\n if (this.props.currentScenario === SCENARIO_HOSPITALITY ||\r\n this.props.currentScenario === SCENARIO_HOSPITALITY_WITH_EXTRAS\r\n ) {\r\n return this.props.categoriesList[0].title;\r\n }\r\n\r\n return this.props.dictionary.standardTicketsTitle;\r\n }\r\n\r\n isNextStepAvailable() {\r\n return this.props.productGroupsList.length > 0;\r\n }\r\n\r\n render() {\r\n const isNextStepAvailable = this.isNextStepAvailable();\r\n const continueBtnDisabledCC = isNextStepAvailable ? '' : 'is-disabled';\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n (\r\n
    \r\n this.onClickContinue(e, onContinue)}>\r\n Continue\r\n \r\n \r\n \r\n \r\n
    \r\n )}/>\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectDaysPage.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n basket: PropTypes.object,\r\n productGroupsList: PropTypes.array,\r\n categoriesList: PropTypes.array,\r\n currentScenario: PropTypes.string.isRequired,\r\n onSelectProductGroup: PropTypes.func,\r\n onToggleBasketMobile: PropTypes.func,\r\n history: PropTypes.object.isRequired,\r\n hasPreselectedProductGroup: PropTypes.bool.isRequired,\r\n isParkingStandaloneConfiguration: PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport { ROUTE_DAYS } from './constants';\r\n\r\nconst DaysLinks = (props) => (\r\n
    \r\n \r\n Select days\r\n \r\n \r\n \r\n \r\n
    \r\n {props.productGroupsList.map((productGroup) => (\r\n {productGroup.title}\r\n ))}\r\n
    \r\n
    \r\n);\r\n\r\nDaysLinks.propTypes = {\r\n productGroupsList: PropTypes.array\r\n};\r\n\r\nexport default DaysLinks;\r\n","import { Link } from 'react-router-dom';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default function BackLink(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\nBackLink.propTypes = {\r\n children: PropTypes.string,\r\n route: PropTypes.string.isRequired\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default function ButtonClear(props) {\r\n return (\r\n \r\n \r\n {props.children}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nButtonClear.propTypes = {\r\n children: PropTypes.string,\r\n onClick: PropTypes.func.isRequired\r\n};\r\n","/* eslint-disable no-nested-ternary */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { get } from 'lodash';\r\nimport CurrencyHelper, { CURRENCY_RATIO, currencyIsoCodes } from '../../../general/js/basket/currency-helper';\r\nimport gtm, { ecommerceEventTypes } from '../../../general/js/gtm';\r\nimport {\r\n PRODUCT_TAG_JUNIOR,\r\n PRODUCT_TAG_YOUTH,\r\n PRODUCT_TAG_SCORERS_PREMIUM,\r\n PRODUCT_TAG_ENGRAVERS,\r\n PRODUCT_TYPE_HOSPITALITY,\r\n MAX_SCORERS_PREMIUM_TICKETS_AVAILABLE,\r\n PRODUCT_TAG_SWING_BADGE_GUEST,\r\n PRODUCT_TAG_SWING_BADGE_ADDITIONAL_GUEST,\r\n PRODUCT_TAG_SWING_BADGE\r\n} from '../../../general/js/basket/constants';\r\nimport PopupLink from './popup-link';\r\n\r\nimport {\r\n ROUTE_PARKING_STANDALONE\r\n} from './constants';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\n\r\nexport default class SelectPanel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.isDecreaseButtonDisabled = true;\r\n this.isIncreaseButtonDisabled = false;\r\n this.quantityDelta = 1;\r\n }\r\n\r\n onSelectBtnClick(quantity, currentQuantity, maxQuantity, startQuantity) {\r\n let newQuantity = 0;\r\n const quantityModifierProp = get(this.props, 'quantityModifier', undefined);\r\n\r\n if (quantity === '') { quantity = 0; }\r\n\r\n if (this.props.product.type === PRODUCT_TYPE_HOSPITALITY) {\r\n const quantityModifier = hasValue(quantityModifierProp) && quantityModifierProp !== 0 ? quantityModifierProp : this.quantityDelta;\r\n const maxQuantityOnHospitality = Math.floor(maxQuantity / quantityModifier) * quantityModifier;\r\n\r\n if (quantity % quantityModifier > 0) {\r\n const roundedQuantity = Math.round(quantity / quantityModifier) * quantityModifier;\r\n newQuantity = roundedQuantity > maxQuantityOnHospitality ? maxQuantityOnHospitality : roundedQuantity;\r\n } else {\r\n newQuantity = quantity === currentQuantity ? 0 : (quantity < maxQuantity ? (quantity < startQuantity ? (quantity < currentQuantity ? 0 : startQuantity) : quantity) : maxQuantityOnHospitality);\r\n }\r\n } else {\r\n newQuantity = quantity === currentQuantity ? 0 : (quantity <= maxQuantity ? (quantity < startQuantity ? (quantity < currentQuantity ? 0 : startQuantity) : quantity) : maxQuantity);\r\n }\r\n\r\n const ecommerceEventState = {\r\n eventType: '',\r\n quantityDelta: 0,\r\n isValid: false,\r\n newQuantity,\r\n currentQuantity\r\n };\r\n\r\n this.handleEcommerceEvent(ecommerceEventState);\r\n\r\n if (window.location.href.includes(ROUTE_PARKING_STANDALONE)) {\r\n this.props.onApplyProductsQuantity(\r\n {\r\n id: this.props.product.id,\r\n type: this.props.product.type,\r\n tag: this.props.product.tag\r\n },\r\n newQuantity\r\n );\r\n } else {\r\n this.props.onApplyProductsQuantity(\r\n {\r\n type: this.props.product.type,\r\n tag: this.props.product.tag\r\n },\r\n newQuantity\r\n );\r\n }\r\n }\r\n\r\n handleEcommerceEvent(eventState) {\r\n if (!this.isIncreaseButtonDisabled && eventState.newQuantity > eventState.currentQuantity) {\r\n eventState.eventType = ecommerceEventTypes.ADD_TO_CART;\r\n eventState.quantityDelta = eventState.newQuantity - eventState.currentQuantity;\r\n eventState.isValid = true;\r\n } else if (!this.isDecreaseButtonDisabled && eventState.newQuantity < eventState.currentQuantity) {\r\n eventState.eventType = ecommerceEventTypes.REMOVE_FROM_CART;\r\n eventState.quantityDelta = eventState.currentQuantity - eventState.newQuantity;\r\n eventState.isValid = true;\r\n }\r\n\r\n if (eventState.isValid) {\r\n const productGroups = this.props.productGroupsList;\r\n\r\n if (productGroups.length && productGroups[0].products.length) {\r\n const productGroup = productGroups[0];\r\n const product = productGroup.products[0];\r\n const productPrice = product.price / CURRENCY_RATIO;\r\n\r\n gtm.pushEcommerceEvent(eventState.eventType, {\r\n currency: currencyIsoCodes.GBP,\r\n value: productPrice * eventState.quantityDelta,\r\n items: [\r\n {\r\n item_id: product.productId,\r\n item_name: `${product.tag} - ${productGroup.title}`,\r\n price: productPrice,\r\n quantity: eventState.quantityDelta,\r\n }\r\n ]\r\n });\r\n }\r\n }\r\n }\r\n\r\n handleChange = (e, startQuantity) => {\r\n this.onSelectBtnClick(+e.target.value, this.props.product.quantity, this.props.product.maxQuantity, startQuantity);\r\n }\r\n\r\n generateSummaryText() {\r\n const product = this.props.product;\r\n return `${CurrencyHelper.convertToPounds(product.price)}${product.priceLabel ? ` ${product.priceLabel}` : ''}`;\r\n }\r\n\r\n renderSummary() {\r\n if (this.props.product.price > 0) {\r\n return (\r\n
    {this.generateSummaryText()}
    );\r\n }\r\n\r\n return (
    FREE
    );\r\n }\r\n\r\n renderCopy() {\r\n if (this.props.product.tag === PRODUCT_TAG_JUNIOR) {\r\n return (\r\n
    \r\n {this.props.dictionary.juniorTicketsText} {this.props.dictionary.juniorTicketsLinkText}\r\n
    );\r\n }\r\n if (this.props.product.tag === PRODUCT_TAG_SWING_BADGE) {\r\n return (\r\n
    \r\n {this.props.dictionary.swingBadgeTicketsText} \r\n
    );\r\n }\r\n if (this.props.product.tag === PRODUCT_TAG_SWING_BADGE_GUEST) {\r\n return (\r\n
    \r\n {this.props.dictionary.swingBadgeGuestTicketsText} \r\n
    );\r\n }\r\n if (this.props.product.tag === PRODUCT_TAG_SWING_BADGE_ADDITIONAL_GUEST) {\r\n return (\r\n
    \r\n {this.props.dictionary.swingBadgeAdditionalGuestTicketsText} \r\n
    );\r\n }\r\n return null;\r\n }\r\n\r\n renderSelectButton(startQuantity) {\r\n let stateCCDecrease = '';\r\n let stateCC = '';\r\n const { quantityModifier } = this.props;\r\n\r\n if (this.props.product.type === PRODUCT_TYPE_HOSPITALITY) {\r\n this.quantityDelta = hasValue(quantityModifier) && quantityModifier !== 0 ? quantityModifier : this.quantityDelta;\r\n }\r\n\r\n if (this.props.product.quantity === 0) {\r\n stateCCDecrease += ' is-disabled';\r\n this.isDecreaseButtonDisabled = true;\r\n } else {\r\n this.isDecreaseButtonDisabled = false;\r\n }\r\n\r\n if (this.props.product.quantity >= this.props.product.maxQuantity || (this.props.product.quantity + this.quantityDelta) > this.props.product.maxQuantity) {\r\n stateCC += ' is-disabled';\r\n this.isIncreaseButtonDisabled = true;\r\n } else {\r\n this.isIncreaseButtonDisabled = false;\r\n }\r\n\r\n return (\r\n \r\n this.onSelectBtnClick(this.props.product.quantity - this.quantityDelta, this.props.product.quantity, this.props.product.maxQuantity, startQuantity)}\r\n disabled={this.props.product.isDisabled}\r\n aria-label={`${this.props.product.title} ticket, decrease quantity`}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.handleChange(e, startQuantity)}>\r\n \r\n this.onSelectBtnClick(this.props.product.quantity + this.quantityDelta, this.props.product.quantity, this.props.product.maxQuantity, startQuantity)}\r\n disabled={this.props.product.isDisabled}\r\n aria-label={`${this.props.product.title} ticket, increase quantity`}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n renderSelectButtons() {\r\n const buttonsNodes = [];\r\n let startQuantity = 1;\r\n //if there are less available tickets than the maximum tickets allow to buy once\r\n if (this.props.product.maxQuantity > this.props.product.maxAvailable) {\r\n this.props.product.maxQuantity = this.props.product.maxAvailable;\r\n }\r\n\r\n if (this.props.product.tag === PRODUCT_TAG_SWING_BADGE || this.props.product.tag === PRODUCT_TAG_SWING_BADGE_GUEST || this.props.product.tag === PRODUCT_TAG_SWING_BADGE_ADDITIONAL_GUEST) {\r\n buttonsNodes.push(this.renderSelectButton(startQuantity));\r\n return buttonsNodes;\r\n }\r\n\r\n if (this.props.product.tag === PRODUCT_TAG_SCORERS_PREMIUM) {\r\n startQuantity = MAX_SCORERS_PREMIUM_TICKETS_AVAILABLE;\r\n buttonsNodes.push(this.renderSelectButton(startQuantity));\r\n } else if (this.props.product.tag === PRODUCT_TAG_ENGRAVERS) {\r\n startQuantity = 2;\r\n\r\n buttonsNodes.push(this.renderSelectButton(startQuantity));\r\n } else {\r\n buttonsNodes.push(this.renderSelectButton(startQuantity));\r\n }\r\n\r\n return buttonsNodes;\r\n }\r\n\r\n render() {\r\n const product = this.props.product;\r\n const rootCssClass = this.props.rootCssClass || '';\r\n const rootCssModificator = this.props.product.tag === PRODUCT_TAG_YOUTH || this.props.product.tag === PRODUCT_TAG_SWING_BADGE_GUEST || this.props.product.tag === PRODUCT_TAG_SWING_BADGE_ADDITIONAL_GUEST ?\r\n 'select-panel--grey' : '';\r\n\r\n const isSelected = product.quantity && product.quantity > 0;\r\n const isSoldOut = !isSelected && product.isSoldOut;\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n

    \r\n {product.title}\r\n {\r\n product.bracketsText ?\r\n {product.bracketsText} : ''\r\n }\r\n

    \r\n {this.renderSummary()}\r\n
    \r\n {\r\n !isSoldOut ? \r\n {this.renderSelectButtons()}\r\n
    : null\r\n }\r\n \r\n {this.renderCopy()}\r\n \r\n );\r\n }\r\n}\r\n\r\nSelectPanel.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n product: PropTypes.object,\r\n productGroupsList: PropTypes.array,\r\n onApplyProductsQuantity: PropTypes.func,\r\n rootCssClass: PropTypes.string,\r\n currentScenario: PropTypes.string\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SelectPanel from '../select-panel';\r\n\r\nexport default function TicketsPanels(props) {\r\n return (\r\n
    \r\n {props.ticketsList.map((ticket) => (\r\n \r\n ))}\r\n
    \r\n );\r\n}\r\n\r\nTicketsPanels.defaultProps = {\r\n ticketsList: [],\r\n productGroupsList: []\r\n};\r\n\r\nTicketsPanels.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n ticketsList: PropTypes.array,\r\n productGroupsList: PropTypes.array,\r\n onApplyProductsQuantity: PropTypes.func.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport DaysLinks from '../days-links';\r\nimport BackLink from '../back-link';\r\nimport ButtonClear from '../button-clear';\r\nimport TicketsPanels from './tickets-panels';\r\nimport PopupLink from '../popup-link';\r\nimport { ROUTE_DAYS } from '../constants';\r\nimport PopupLinkInfo from '../popup-link-info';\r\nimport { domainConstants } from '../../../sso/components/utils/constants/domain-constants';\r\nimport { hasValue } from '../../../../general/js/general-helpers';\r\n\r\nexport default class SelectTicketsFormStandard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.formHeading = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.formHeading.current.focus();\r\n }\r\n\r\n render() {\r\n const isWomensOpen = (window.location.hostname).toLowerCase();\r\n return (\r\n
    \r\n

    {this.props.dictionary.standardTicketsTitle}

    \r\n \r\n
    \r\n

    {this.props.dictionary.selectTicketsSubtitle}

    \r\n {\r\n hasValue(this.props.dictionary.ticketsInformationLinkUrl) &&\r\n hasValue(this.props.dictionary.ticketsInformationLinkText) &&\r\n {this.props.dictionary.ticketsInformationLinkText}\r\n }\r\n
    \r\n {isWomensOpen.includes((domainConstants.womensOpen).toLocaleLowerCase()) &&\r\n
    {this.props.dictionary.ticketExtraInformation}
    }\r\n \r\n
    \r\n Clear Selection\r\n
    \r\n {this.props.dictionary.selectStandardTicketsText} \r\n {\r\n hasValue(this.props.dictionary.selectStandardTicketsLinkUrl) &&\r\n hasValue(this.props.dictionary.selectStandardTicketsLinkText) &&\r\n {this.props.dictionary.selectStandardTicketsLinkText}\r\n }\r\n
    \r\n
    \r\n {this.props.dictionary.editDaysTitle}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectTicketsFormStandard.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n productGroupsList: PropTypes.array,\r\n ticketsList: PropTypes.array,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onClearSelection: PropTypes.func,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport DaysLinks from '../days-links';\r\nimport BackLink from '../back-link';\r\nimport TicketsPanels from './tickets-panels';\r\nimport PopupLink from '../popup-link';\r\nimport { ROUTE_DAYS } from '../constants';\r\nimport PopupLinkInfo from '../popup-link-info';\r\nimport { hasValue } from '../../../../general/js/general-helpers';\r\n\r\nexport default class SelectTicketsFormHospitality extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.formHeading = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.formHeading.current.focus();\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n

    {this.props.categoriesList[0].title}

    \r\n \r\n
    \r\n

    {this.props.dictionary.selectTicketsSubtitle}

    \r\n {\r\n hasValue(this.props.dictionary.ticketsInformationLinkUrl) &&\r\n hasValue(this.props.dictionary.ticketsInformationLinkText) &&\r\n {this.props.dictionary.ticketsInformationLinkText}\r\n }\r\n
    \r\n \r\n
    \r\n
    \r\n {this.props.dictionary.selectHospitalityTicketsText} \r\n {\r\n hasValue(this.props.dictionary.selectHospitalityTicketsLinkUrl) &&\r\n hasValue(this.props.dictionary.selectHospitalityTicketsLinkText) &&\r\n {this.props.dictionary.selectHospitalityTicketsLinkText}\r\n }\r\n
    \r\n
    \r\n Back\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectTicketsFormHospitality.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n categoriesList: PropTypes.array,\r\n productGroupsList: PropTypes.array,\r\n ticketsList: PropTypes.array,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onClearSelection: PropTypes.func,\r\n};\r\n","import ObjectHelper from 'foundation/object-helper';\r\nimport ValidationHelper from '../../../general/js/basket/validation-helper';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\n\r\nfunction getLatestAddedTickets(basketGroups, selectedGroups) {\r\n const latestAddedTickets = [];\r\n selectedGroups.forEach((element) => {\r\n const item = element;\r\n const itemId = item.id;\r\n const basketElement = basketGroups[itemId];\r\n\r\n if (basketElement === undefined) {\r\n latestAddedTickets.push(element);\r\n }\r\n });\r\n\r\n return latestAddedTickets;\r\n}\r\n\r\nfunction getTicketItemBasedOnQueryParam(selectedGroups) {\r\n const search = window.location.search;\r\n const params = new URLSearchParams(search);\r\n const ticketId = params.get('g');\r\n\r\n if (ticketId !== null) {\r\n const foundTicket = selectedGroups.find(({ id }) => id.toLowerCase() === ticketId.toLowerCase());\r\n if (hasValue(foundTicket))\r\n {\r\n return foundTicket;\r\n }\r\n }\r\n\r\n return selectedGroups[0];\r\n}\r\n\r\nexport default class ProductsHelper {\r\n static getProductsList(selectedGroups, basketGroups, filterFunction) {\r\n if (selectedGroups.length === 0) {\r\n return [];\r\n }\r\n const latestAddedTickets = getLatestAddedTickets(basketGroups, selectedGroups);\r\n\r\n const firstSelectedProductGroup = latestAddedTickets[0] !== undefined ?\r\n latestAddedTickets[0] :\r\n getTicketItemBasedOnQueryParam(selectedGroups);\r\n\r\n if (!firstSelectedProductGroup.products) return [];\r\n\r\n const productList = ObjectHelper.clone(firstSelectedProductGroup.products.filter((product) =>\r\n filterFunction(product)));\r\n\r\n productList.forEach((product) => {\r\n // set quantity from basket product group\r\n product.quantity = 0;\r\n\r\n if (firstSelectedProductGroup.id in basketGroups) {\r\n const basketProductGroup = basketGroups[firstSelectedProductGroup.id];\r\n basketProductGroup.products.forEach((basketProduct) => {\r\n if (basketProduct.type === product.type &&\r\n basketProduct.tag === product.tag\r\n ) {\r\n product.quantity = basketProduct.quantity;\r\n }\r\n });\r\n }\r\n });\r\n\r\n return ValidationHelper.getPreparedProductsList(productList);\r\n }\r\n\r\n static getStandaloneProductsList(selectedGroups, basketGroups, filterFunction) {\r\n if (selectedGroups.length === 0) {\r\n return [];\r\n }\r\n\r\n var productList = [];\r\n var i = 0;\r\n\r\n selectedGroups.forEach((selectedGroup) => {\r\n const productListSelectedGroup = ObjectHelper.clone(selectedGroup.products.filter((product) =>\r\n filterFunction(product)));\r\n\r\n productListSelectedGroup.forEach((product) => {\r\n // set quantity from basket product group\r\n product.quantity = 0;\r\n if (selectedGroup.id in basketGroups) {\r\n const basketProductGroup = basketGroups[selectedGroup.id];\r\n basketProductGroup.products.forEach((basketProduct) => {\r\n \r\n \r\n if (basketProduct.type === product.type &&\r\n basketProduct.tag === product.tag\r\n ) {\r\n \r\n product.quantity = basketProduct.quantity;\r\n }\r\n });\r\n }\r\n \r\n productList[i] = product;\r\n i++;\r\n });\r\n });\r\n\r\n return ValidationHelper.getPreparedProductsList(productList);\r\n }\r\n\r\n // eslint-disable-next-line consistent-return\r\n\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default function CheckoutButton(props) {\r\n const stateCss = props.isDisabled ? 'is-disabled' : '';\r\n\r\n return (\r\n props.onStartCheckout(props.mc)}\r\n ref={props.checkoutBtnRef}\r\n disabled={props.isDisabled}\r\n id=\"basketPay\"\r\n >\r\n \r\n Pay{props.mc ? ' with Mastercard' : ''}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nCheckoutButton.defaultProps = {\r\n mc: false,\r\n};\r\n\r\nCheckoutButton.propTypes = {\r\n mc: PropTypes.bool,\r\n checkoutBtnRef: PropTypes.func,\r\n isDisabled: PropTypes.bool,\r\n onStartCheckout: PropTypes.func.isRequired\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport { ROUTE_TICKETS } from '../constants';\r\nimport TicketBuilderAside from '../ticket-builder-aside';\r\nimport CheckoutButton from '../checkout-button';\r\nimport { hasValue } from '../../../../general/js/general-helpers';\r\n\r\nexport default class SelectTicketsAside extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onClickContinue = this.onClickContinue.bind(this);\r\n }\r\n\r\n onClickContinue(e, onContinue) {\r\n if (!this.props.isNextStepAvailable) {\r\n e.preventDefault();\r\n }\r\n\r\n onContinue('Continue', ROUTE_TICKETS);\r\n }\r\n\r\n onCheckout(mc, onContinue) {\r\n this.props.onStartCheckout(mc);\r\n this.triggerContinue(onContinue, mc ? 'Pay with Mastercard' : 'Pay');\r\n }\r\n\r\n triggerContinue(onContinue, actionCaption) {\r\n onContinue(actionCaption, ROUTE_TICKETS);\r\n }\r\n\r\n renderNextStepPanel(onContinue) {\r\n const stateCss = this.props.isNextStepAvailable && this.props.isReadyToPay ? '' : 'is-disabled';\r\n const inlineStyle = hasValue(stateCss) ? { pointerEvents: \"none\" } : {};\r\n\r\n return (\r\n
    \r\n this.onClickContinue(e, onContinue)}\r\n style={inlineStyle}\r\n >\r\n Continue\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n renderCheckoutPanel(onContinue) {\r\n return (\r\n
    \r\n this.onCheckout(mc, onContinue)}\r\n isDisabled={!this.props.isReadyToPay}\r\n />\r\n
    \r\n We are experiencing high volumes of traffic at the minute. Please try again.\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n renderPanel(onContinue) {\r\n if (this.props.isNextStepAvailable) {\r\n return this.renderNextStepPanel(onContinue);\r\n }\r\n\r\n return this.renderCheckoutPanel(onContinue);\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n this.renderPanel(onContinue)}\r\n basketUrl={this.props.basketUrl} />\r\n );\r\n }\r\n}\r\n\r\nSelectTicketsAside.propTypes = {\r\n productGroupsList: PropTypes.array,\r\n basket: PropTypes.object,\r\n onToggleBasketMobile: PropTypes.func,\r\n onStartCheckout: PropTypes.func.isRequired,\r\n nextRoute: PropTypes.string.isRequired,\r\n currentScenario: PropTypes.string.isRequired,\r\n isNextStepAvailable: PropTypes.bool.isRequired,\r\n isReadyToPay: PropTypes.bool.isRequired\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SelectTicketsFormStandard from './select-tickets/select-tickets-standard';\r\nimport SelectTicketsFormHospitality from './select-tickets/select-tickets-hospitality';\r\nimport {\r\n PRODUCT_TYPE_HOSPITALITY,\r\n PRODUCT_TYPE_TICKET,\r\n PRODUCT_TYPE_PARKING\r\n} from '../../../general/js/basket/constants';\r\nimport ProductsHelper from './products-helper';\r\nimport SelectTicketsAside from './select-tickets/select-tickets-aside';\r\nimport {\r\n ROUTE_EXTRAS,\r\n ROUTE_PARKING,\r\n ROUTE_PARKING_STANDALONE,\r\n SCENARIO_HOSPITALITY,\r\n SCENARIO_HOSPITALITY_WITH_EXTRAS,\r\n SCENARIO_STANDARD_WITH_EXTRAS,\r\n SCENARIO_STANDARD\r\n} from './constants';\r\n\r\nclass SelectTicketsPage extends React.Component {\r\n getNextRoute() {\r\n let nextRoute = ROUTE_PARKING;\r\n\r\n if (this.props.isParkingStandaloneConfiguration){\r\n nextRoute = ROUTE_PARKING_STANDALONE;\r\n }\r\n\r\n if (this.isHospitality() || this.isStandardWithExtras()) {\r\n nextRoute = ROUTE_EXTRAS;\r\n }\r\n\r\n return nextRoute;\r\n }\r\n\r\n isHospitality() {\r\n return this.props.currentScenario === SCENARIO_HOSPITALITY ||\r\n this.props.currentScenario === SCENARIO_HOSPITALITY_WITH_EXTRAS;\r\n }\r\n\r\n isStandardWithExtras() {\r\n return this.props.currentScenario === SCENARIO_STANDARD_WITH_EXTRAS;\r\n }\r\n\r\n onClearTicketsSelection() {\r\n const paramsList = this.props.ticketsList.map((ticket) =>\r\n Object.assign({}, {\r\n type: ticket.type,\r\n tag: ticket.tag\r\n }));\r\n\r\n this.props.onClearSelection(paramsList);\r\n }\r\n\r\n isNextStepAvailable() {\r\n if (this.props.currentScenario == SCENARIO_STANDARD_WITH_EXTRAS)\r\n {\r\n if (this.hasSelectedTickets())\r\n return true;\r\n return false;\r\n }\r\n\r\n if(this.props.currentScenario == SCENARIO_STANDARD)\r\n {\r\n return this.hasParkingTickets();\r\n } \r\n\r\n return this.props.currentScenario !== SCENARIO_HOSPITALITY;\r\n }\r\n\r\n hasSelectedTickets() {\r\n return this.props.ticketsList.some((ticket) => ticket.quantity > 0);\r\n }\r\n\r\n hasParkingTickets(){\r\n return ProductsHelper.getProductsList(\r\n this.props.productGroupsList,\r\n this.props.basket.productGroups,\r\n (product) => product.type === PRODUCT_TYPE_PARKING\r\n ).length > 0;\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
    \r\n {\r\n this.isHospitality() ?\r\n\r\n this.onClearTicketsSelection()}\r\n quantityModifier={this.props.quantityModifier}/> :\r\n\r\n this.onClearTicketsSelection()}/>\r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectTicketsPage.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n basket: PropTypes.object,\r\n productGroupsList: PropTypes.array,\r\n categoriesList: PropTypes.array,\r\n ticketsList: PropTypes.array,\r\n currentScenario: PropTypes.string.isRequired,\r\n onStartCheckout: PropTypes.func.isRequired,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onClearSelection: PropTypes.func,\r\n onToggleBasketMobile: PropTypes.func,\r\n isParkingStandaloneConfiguration: PropTypes.bool\r\n};\r\n\r\nexport default function TicketListProvider(props) {\r\n const ticketsList = ProductsHelper.getProductsList(\r\n props.productGroupsList,\r\n props.basket.productGroups,\r\n (product) => product.type === PRODUCT_TYPE_TICKET || product.type === PRODUCT_TYPE_HOSPITALITY\r\n );\r\n\r\n return (\r\n \r\n );\r\n}","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport CurrencyHelper, { currencyIsoCodes } from '../../../general/js/basket/currency-helper';\r\nimport CheckboxPanel from './checkbox-panel';\r\nimport { PRODUCT_TAG_EXTRAS } from '../../../general/js/basket/constants';\r\nimport { PRODUCT_TAG_TICKET_PLUS_EXTRA } from '../../../general/js/basket/constants';\r\nimport gtm, { ecommerceEventTypes } from '../../../general/js/gtm';\r\n\r\n\r\nexport default class ExtraPanel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.rootRef = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n ComponentsFactory.getInstance().init(this.rootRef.current);\r\n }\r\n\r\n componentWillUnmount() {\r\n ComponentsFactory.getInstance().destroy(this.rootRef.current);\r\n }\r\n\r\n onProductGroupClick({ product, productGroup }, wasSelected) {\r\n this.props.onSelectExtraProduct(product, productGroup, !wasSelected);\r\n\r\n const eventType = !wasSelected ? ecommerceEventTypes.ADD_TO_CART : ecommerceEventTypes.REMOVE_FROM_CART;\r\n\r\n gtm.pushEcommerceEvent(eventType, {\r\n currency: currencyIsoCodes.GBP,\r\n value: product.price,\r\n items: [\r\n {\r\n item_id: product.productId,\r\n item_name: `${product.tag} - ${productGroup.title}`,\r\n price: product.price,\r\n quantity: 1\r\n }\r\n ]\r\n });\r\n }\r\n\r\n renderProductGroups() {\r\n return this.props.extraGroup.items.map((extraItem) => {\r\n const { product, productGroup } = extraItem;\r\n const basketProductGroups = this.props.basket.productGroups;\r\n let isSelected = false;\r\n if (productGroup.id in basketProductGroups) {\r\n const basketProduct = basketProductGroups[productGroup.id].products.find((basketProduct) =>\r\n basketProduct.id === product.id);\r\n if (basketProduct) {\r\n isSelected = true;\r\n }\r\n }\r\n\r\n return
    \r\n this.onProductGroupClick(extraItem, isSelected)}/>\r\n
    ;\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n

    {this.props.extraGroup.title}

    \r\n
    \r\n  \r\n {this.props.extraGroup.linkText ? {this.props.extraGroup.linkText} : ''}\r\n
    \r\n
    \r\n {this.renderProductGroups()}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n getProductSummaryText(product) {\r\n let unitText;\r\n\r\n switch (product.tag) {\r\n case PRODUCT_TAG_EXTRAS:\r\n unitText = 'seat';\r\n break;\r\n case PRODUCT_TAG_TICKET_PLUS_EXTRA:\r\n unitText = product.priceLabel;\r\n break;\r\n default:\r\n unitText = null;\r\n }\r\n\r\n if (unitText) {\r\n return `${CurrencyHelper.convertToPounds(product.price)} per ${unitText}`;\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\nExtraPanel.propTypes = {\r\n basket: PropTypes.object,\r\n extraGroup: PropTypes.object,\r\n rootCssClass: PropTypes.string,\r\n onSelectExtraProduct: PropTypes.func,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ObjectHelper from 'foundation/object-helper';\r\nimport BackLink from './back-link';\r\nimport ExtraPanel from './extra-panel';\r\nimport SelectPanel from './select-panel';\r\nimport {\r\n PRODUCT_TYPE_PARKING,\r\n PRODUCT_TYPE_EXTRAS,\r\n PRODUCT_TAG_TICKET_PLUS_EXTRA,\r\n MAX_HOSPITALITY_TICKET_PLUS_EXTRA\r\n} from '../../../general/js/basket/constants';\r\nimport {\r\n hasValue\r\n} from '../../../general/js/general-helpers';\r\nimport ValidationHelper from '../../../general/js/basket/validation-helper';\r\nimport { ROUTE_TICKETS, SCENARIO_STANDARD_WITH_EXTRAS } from './constants';\r\n\r\nexport default class SelectExtrasForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.onSelectExtraProduct = this.onSelectExtraProduct.bind(this);\r\n }\r\n\r\n onSelectExtraProduct(product, productGroup, isChecked) {\r\n if (!isChecked) {\r\n // remove from basket\r\n this.props.onUpdateProductQuantity(product, productGroup, 0);\r\n } else {\r\n let quantity = 1;\r\n\r\n // finding main product of selected product group\r\n const mainProduct = productGroup.products.find((p) => p.type === this.props.currentProductType);\r\n\r\n // trying to find it in basket\r\n if (productGroup.id in this.props.basket.productGroups) {\r\n const mainProductInBasket = this.props.basket.productGroups[productGroup.id].products.find((basketProduct) => basketProduct.id === mainProduct.id);\r\n if (mainProductInBasket) {\r\n quantity = this.setExtraProductQuantity(product, mainProductInBasket, quantity);\r\n }\r\n }\r\n\r\n this.props.onUpdateProductQuantity(product, productGroup, quantity);\r\n }\r\n }\r\n\r\n setExtraProductQuantity = (product = null, mainProductInBasket = null, quantity = 0) => {\r\n if (!hasValue(product) || !hasValue(mainProductInBasket)) {\r\n return 0;\r\n }\r\n\r\n switch (product.tag) {\r\n case PRODUCT_TAG_TICKET_PLUS_EXTRA:\r\n quantity = mainProductInBasket.quantity > MAX_HOSPITALITY_TICKET_PLUS_EXTRA ? MAX_HOSPITALITY_TICKET_PLUS_EXTRA : mainProductInBasket.quantity;\r\n break;\r\n default:\r\n quantity = mainProductInBasket.quantity;\r\n }\r\n\r\n return quantity;\r\n }\r\n\r\n getGroupedExtrasList() {\r\n const extrasById = this.props.productGroupsList.reduce((result, productGroup) => {\r\n const extras = productGroup.products.filter((product) => product.type === PRODUCT_TYPE_EXTRAS);\r\n extras.forEach((extrasProduct) => {\r\n if (!(extrasProduct.tag in result)) {\r\n result[extrasProduct.tag] = {};\r\n }\r\n\r\n if (!(extrasProduct.id in result[extrasProduct.tag])) {\r\n result[extrasProduct.tag][extrasProduct.id] = {\r\n product: { ...extrasProduct },\r\n productGroup\r\n };\r\n }\r\n });\r\n\r\n return result;\r\n }, {});\r\n\r\n const extrasList = Object.keys(extrasById).map((key) => {\r\n const extraGroup = extrasById[key];\r\n const items = Object.keys(extraGroup).map((productKey) => extraGroup[productKey]);\r\n const title = items[0].product.tag === PRODUCT_TAG_TICKET_PLUS_EXTRA ? '' : items[0].product.title;\r\n\r\n return {\r\n id: key,\r\n title: title,\r\n items\r\n };\r\n });\r\n\r\n const { grandstandText } = this.getDictionaryFromProps();\r\n\r\n if (extrasList.length > 0) {\r\n extrasList[0].description = this.parseDictionaryItem(grandstandText);\r\n }\r\n\r\n return extrasList;\r\n }\r\n\r\n getParkingList() {\r\n const productGroupsList = this.props.productGroupsList;\r\n\r\n if (!productGroupsList.length || !productGroupsList[0].products) return [];\r\n\r\n const parkingProductsList = ObjectHelper.clone(productGroupsList[0].products.filter((product) =>\r\n product.type === PRODUCT_TYPE_PARKING));\r\n\r\n // HAS BEEN CHANGED\r\n // find product groups that are selected for current way\r\n const currentProductGroupsIds = productGroupsList.map((productGroup) => productGroup.id);\r\n const currentBasketProductGroups = Object.values(this.props.basket.productGroups).filter((basketProductGroup) => currentProductGroupsIds.indexOf(basketProductGroup.id) !== -1);\r\n\r\n parkingProductsList.forEach((parking) => {\r\n // fill the information about quantity based on currentBasketProductGroups\r\n currentBasketProductGroups.forEach((basketProductGroup) => {\r\n basketProductGroup.products.forEach((basketProduct) => {\r\n if (basketProduct.type === parking.type &&\r\n basketProduct.tag === parking.tag\r\n ) {\r\n parking.quantity = basketProduct.quantity;\r\n }\r\n });\r\n });\r\n });\r\n\r\n return ValidationHelper.getPreparedProductsList(parkingProductsList);\r\n }\r\n\r\n getTicketsList() {\r\n const productGroupsList = this.props.productGroupsList;\r\n\r\n if (!productGroupsList.length || !productGroupsList[0].products) return [];\r\n\r\n const ticketProductsList = ObjectHelper.clone(productGroupsList[0].products.filter((product) =>\r\n product.type === PRODUCT_TYPE_EXTRAS));\r\n\r\n // HAS BEEN CHANGED\r\n // find product groups that are selected for current way\r\n const currentProductGroupsIds = productGroupsList.map((productGroup) => productGroup.id);\r\n const currentBasketProductGroups = Object.values(this.props.basket.productGroups).filter((basketProductGroup) => currentProductGroupsIds.indexOf(basketProductGroup.id) !== -1);\r\n\r\n ticketProductsList.forEach((ticket) => {\r\n // fill the information about quantity based on currentBasketProductGroups\r\n currentBasketProductGroups.forEach((basketProductGroup) => {\r\n basketProductGroup.products.forEach((basketProduct) => {\r\n if (basketProduct.type === ticket.type &&\r\n basketProduct.tag === ticket.tag\r\n ) {\r\n ticket.quantity = basketProduct.quantity;\r\n }\r\n });\r\n });\r\n });\r\n\r\n return ValidationHelper.getPreparedProductsList(ticketProductsList);\r\n }\r\n\r\n renderExtrasPanels() {\r\n const extraGroupsList = this.getGroupedExtrasList();\r\n\r\n return extraGroupsList.map((extraGroup) => (\r\n \r\n ));\r\n }\r\n\r\n renderCarsPanels() {\r\n const parkingList = this.getParkingList();\r\n\r\n return parkingList.map((parking) => (\r\n \r\n ));\r\n }\r\n\r\n renderTicketsPanel() {\r\n const ticketsList = this.getTicketsList();\r\n\r\n return ticketsList.map((ticket) => (\r\n \r\n ));\r\n }\r\n\r\n parseDictionaryItem(item = '') {\r\n if (!hasValue(item)) {\r\n return item;\r\n }\r\n\r\n if (item.includes('TicketBuilder_')) {\r\n return '';\r\n }\r\n\r\n return item;\r\n }\r\n\r\n getDictionaryFromProps() {\r\n const { dictionary } = this.props;\r\n\r\n if (!hasValue(dictionary)) {\r\n return {\r\n addExtrasSubtitle: '',\r\n addExtrasTitle: '',\r\n extrasParkingText: '',\r\n grandstandText: '',\r\n privateTableTitle: '',\r\n privateTableText: '',\r\n privateTableLinkText: '',\r\n privateTableLinkUrl: '',\r\n };\r\n }\r\n\r\n return dictionary;\r\n }\r\n\r\n render() {\r\n const { addExtrasSubtitle, addExtrasTitle } = this.getDictionaryFromProps();\r\n\r\n return (\r\n
    \r\n
    \r\n

    {this.parseDictionaryItem(addExtrasSubtitle)}

    \r\n
    \r\n {this.parseDictionaryItem(addExtrasTitle)}\r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n this.props.currentScenario === SCENARIO_STANDARD_WITH_EXTRAS ?\r\n this.renderTicketsPanel() :\r\n this.renderExtrasPanels()\r\n }\r\n
    \r\n
    \r\n
    \r\n Back\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectExtrasForm.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n basket: PropTypes.object,\r\n productGroupsList: PropTypes.array,\r\n productsList: PropTypes.array,\r\n currentProductType: PropTypes.string.isRequired,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onUpdateProductQuantity: PropTypes.func,\r\n currentScenario: PropTypes.string.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport { ROUTE_TICKETS } from './constants';\r\nimport TicketBuilderAside from './ticket-builder-aside';\r\nimport CheckoutButton from './checkout-button';\r\n\r\nexport default class SelectExtrasAside extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onClickContinue = this.onClickContinue.bind(this);\r\n }\r\n\r\n onClickContinue(e, onContinue) {\r\n if (!this.props.isNextStepAvailable) {\r\n e.preventDefault();\r\n }\r\n\r\n onContinue('Continue', ROUTE_TICKETS);\r\n }\r\n\r\n onCheckout(mc, onContinue) {\r\n this.props.onStartCheckout(mc);\r\n this.triggerContinue(onContinue, mc ? 'Pay with Mastercard' : 'Pay');\r\n }\r\n\r\n triggerContinue(onContinue, actionCaption) {\r\n onContinue(actionCaption, ROUTE_TICKETS);\r\n }\r\n\r\n renderNextStepPanel(onContinue) {\r\n const stateCss = this.props.isNextStepAvailable ? '' : 'is-disabled';\r\n return (\r\n
    \r\n this.onClickContinue(e, onContinue)}\r\n >\r\n Continue\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n renderCheckoutPanel(onContinue) {\r\n return (\r\n
    \r\n this.onCheckout(mc, onContinue)}\r\n isDisabled={!this.props.isReadyToPay}\r\n />\r\n
    \r\n We are experiencing high volumes of traffic at the minute. Please try again.\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n renderPanel(onContinue) {\r\n if (this.props.isNextStepAvailable) {\r\n return this.renderNextStepPanel(onContinue);\r\n }\r\n\r\n return this.renderCheckoutPanel(onContinue);\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n this.renderPanel(onContinue)}\r\n basketUrl={this.props.basketUrl} />\r\n );\r\n }\r\n}\r\n\r\nSelectExtrasAside.propTypes = {\r\n productGroupsList: PropTypes.array,\r\n basket: PropTypes.object,\r\n onToggleBasketMobile: PropTypes.func,\r\n onStartCheckout: PropTypes.func.isRequired,\r\n nextRoute: PropTypes.string.isRequired,\r\n currentScenario: PropTypes.string.isRequired,\r\n isNextStepAvailable: PropTypes.bool.isRequired,\r\n isReadyToPay: PropTypes.bool.isRequired\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SelectExtrasForm from './select-extras-form';\r\nimport { SCENARIO_STANDARD_WITH_EXTRAS, ROUTE_TICKETS, ROUTE_PARKING, ROUTE_PARKING_STANDALONE } from './constants';\r\nimport SelectExtrasAside from './select-extras-aside';\r\n\r\nexport default class SelectExtrasPage extends React.Component {\r\n\r\n getNextRoute() {\r\n let nextRoute = ROUTE_TICKETS;\r\n\r\n if(this.props.isParkingStandaloneConfiguration){\r\n nextRoute = ROUTE_PARKING_STANDALONE;\r\n }\r\n\r\n if (this.props.currentScenario === SCENARIO_STANDARD_WITH_EXTRAS) {\r\n nextRoute = ROUTE_PARKING;\r\n }\r\n return nextRoute;\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectExtrasPage.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n basket: PropTypes.object,\r\n productGroupsList: PropTypes.array,\r\n categoriesList: PropTypes.array,\r\n currentProductType: PropTypes.string.isRequired,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onUpdateProductQuantity: PropTypes.func,\r\n onClearSelection: PropTypes.func,\r\n onToggleBasketMobile: PropTypes.func,\r\n onStartCheckout: PropTypes.func,\r\n currentScenario: PropTypes.string.isRequired,\r\n isParkingStandaloneConfiguration: PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport AccordionComponent from 'Feature/ContentComponents/code/assets/componets/accordion';\r\n\r\nexport default class Accordion extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.accordion = null;\r\n this.accordionRef = React.createRef();\r\n this.state = {\r\n isOpened: false\r\n };\r\n\r\n this.onAccordionStateChange = this.onAccordionStateChange.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (this.accordionRef.current) {\r\n this.accordion = new AccordionComponent(this.accordionRef.current, 'accordion');\r\n this.accordion.onChange(this.onAccordionStateChange);\r\n }\r\n }\r\n\r\n onAccordionStateChange(isOpened) {\r\n this.setState({ isOpened });\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.accordion) {\r\n this.accordion.destroy();\r\n this.accordion = null;\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n {(this.state.isOpened && this.props.triggerOpenedText) ?\r\n this.props.triggerOpenedText :\r\n this.props.triggerText}\r\n \r\n {this.state.isOpened ?\r\n :\r\n \r\n }\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {this.props.children}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nAccordion.propTypes = {\r\n triggerText: PropTypes.string.isRequired,\r\n triggerOpenedText: PropTypes.string,\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ])\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Accordion from './accordion';\r\nimport DaysLinks from './days-links';\r\nimport SelectPanel from './select-panel';\r\nimport { PRODUCT_TAG_CAR } from '../../../general/js/basket/constants';\r\nimport BackLink from './back-link';\r\nimport PopupLinkInfo from './popup-link-info';\r\nimport ButtonClear from './button-clear';\r\nimport {\r\n ROUTE_DAYS, ROUTE_TICKETS, SCENARIO_PARKING,\r\n ROUTE_EXTRAS, SCENARIO_STANDARD_WITH_EXTRAS\r\n} from './constants';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\n\r\nexport default class SelectParkingForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.formHeading = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.formHeading.current.focus();\r\n }\r\n\r\n getPrevRoute() {\r\n let prevRoute = ROUTE_TICKETS;\r\n\r\n if (this.props.currentScenario === SCENARIO_PARKING) {\r\n prevRoute = ROUTE_DAYS;\r\n }\r\n\r\n if (this.props.currentScenario === SCENARIO_STANDARD_WITH_EXTRAS) {\r\n prevRoute = ROUTE_EXTRAS;\r\n }\r\n\r\n return prevRoute;\r\n }\r\n\r\n renderCarPanel() {\r\n const parkingList = this.props.parkingList;\r\n\r\n if (!parkingList || !parkingList.length) return null;\r\n\r\n const carParking = parkingList.filter((parkingProduct) =>\r\n parkingProduct.tag === PRODUCT_TAG_CAR)[0];\r\n\r\n if (!carParking) return null;\r\n\r\n return ;\r\n }\r\n\r\n renderCarPanels(parkingList) {\r\n if (!Array.isArray(parkingList) || !parkingList.length) return null;\r\n\r\n return parkingList.map((parking) => (\r\n \r\n ));\r\n }\r\n\r\n renderAccordion() {\r\n const parkingList = this.props.parkingList;\r\n\r\n const filteredParkingList = parkingList.filter((parkingProduct) =>\r\n parkingProduct.tag !== PRODUCT_TAG_CAR);\r\n\r\n if (!filteredParkingList.length) return null;\r\n\r\n return (\r\n \r\n {this.renderCarPanels(filteredParkingList)}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n

    {this.props.dictionary.parkingStepTitle}

    \r\n \r\n
    \r\n

    Number of vehicles

    \r\n {\r\n hasValue(this.props.dictionary.parkingInformationLinkUrl) &&\r\n hasValue(this.props.dictionary.parkingInformationLinkText) &&\r\n {this.props.dictionary.parkingInformationLinkText}\r\n }\r\n
    \r\n
    \r\n {this.renderCarPanel()}\r\n
    \r\n
    \r\n Clear Selection\r\n
    \r\n {this.props.dictionary.ParkingText}\r\n
    \r\n {this.renderAccordion()}\r\n
    \r\n Back\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectParkingForm.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n parkingList: PropTypes.array,\r\n productGroupsList: PropTypes.array,\r\n currentScenario: PropTypes.string.isRequired,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onClearSelection: PropTypes.func\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SelectParkingForm from './select-parking-form';\r\nimport { PRODUCT_TYPE_PARKING } from '../../../general/js/basket/constants';\r\nimport ProductsHelper from './products-helper';\r\nimport TicketBuilderAside from './ticket-builder-aside';\r\nimport CheckoutButton from './checkout-button';\r\nimport { ROUTE_PARKING } from './constants';\r\nimport BasketDialogBoxContentBody from '../../../general/js/basket/basket-dialog-box-content-body';\r\nimport ConfirmationModal from '../../sso/components/common/utility/ConfirmationModal';\r\n\r\nexport default class SelectParkingPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isReadyToPay: this.getParkingList().some((parking) => parking.quantity > 0),\r\n focusCheckout: false,\r\n showModal: false\r\n };\r\n\r\n this.onSelectParkingQuantity = this.onSelectParkingQuantity.bind(this);\r\n this.toggleConfirmationModal = this.toggleConfirmationModal.bind(this);\r\n this.toggleCloseModal = this.toggleCloseModal.bind(this);\r\n }\r\n\r\n toggleConfirmationModal() {\r\n this.props.showDialogBox ? this.setState({ showModal: true }) : this.setState({ showModal: false });\r\n }\r\n\r\n onConfirmationModal(mc, onContinue) {\r\n this.toggleConfirmationModal();\r\n\r\n if (!this.props.showDialogBox)\r\n this.onCheckout(mc, onContinue)\r\n }\r\n\r\n toggleCloseModal() {\r\n this.setState({ showModal: false });\r\n }\r\n\r\n onCheckout(mc, onContinue) {\r\n this.props.onStartCheckout(mc);\r\n this.triggerContinue(onContinue, mc ? 'Pay with Mastercard' : 'Pay');\r\n }\r\n\r\n onClearParkingSelection() {\r\n const parkingList = this.getParkingList();\r\n const paramsList = parkingList.map((parking) =>\r\n Object.assign({}, {\r\n type: parking.type,\r\n tag: parking.tag\r\n }));\r\n\r\n this.props.onClearSelection(paramsList);\r\n }\r\n\r\n triggerContinue(onContinue, actionCaption) {\r\n onContinue(actionCaption, ROUTE_PARKING);\r\n }\r\n\r\n onRejectParkingClick(onContinue) {\r\n this.triggerContinue(onContinue, 'I don\\'t need parking');\r\n this.onClearParkingSelection();\r\n this.setState({ isReadyToPay: true, focusCheckout: true });\r\n }\r\n\r\n onSelectParkingQuantity(...args) {\r\n this.props.onApplyProductsQuantity(...args);\r\n this.setState({ isReadyToPay: true, focusCheckout: false });\r\n }\r\n\r\n getParkingList() {\r\n return ProductsHelper.getProductsList(\r\n this.props.productGroupsList,\r\n this.props.basket.productGroups,\r\n (product) => product.type === PRODUCT_TYPE_PARKING\r\n );\r\n }\r\n\r\n // set focus for a11y reason\r\n checkoutRef(checkoutBtn) {\r\n if (checkoutBtn && this.state.focusCheckout) {\r\n setTimeout(() => {\r\n checkoutBtn.focus();\r\n }, 0);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
    \r\n this.onClearParkingSelection()}\r\n />\r\n
    \r\n
    \r\n\r\n (\r\n this.state.isReadyToPay ?\r\n
    \r\n this.onConfirmationModal(mc, onContinue)}\r\n checkoutBtnRef={this.checkoutRef.bind(this)}\r\n />\r\n
    \r\n We are experiencing high volumes of traffic at the minute. Please try again.\r\n
    \r\n this.onCheckout(mc, onContinue)}\r\n isApproveDanger={false}\r\n isApproveButtonDisabled={false}\r\n onCancelClick={this.toggleCloseModal}\r\n isCancelButtonDisabled={true}\r\n masterCardDialogBoxBanner={this.props.dialogBoxBanner}\r\n >\r\n \r\n \r\n \r\n
    :\r\n
    \r\n this.onRejectParkingClick(onContinue)}>\r\n \r\n I don’t need parking\r\n \r\n \r\n
    \r\n )}\r\n />\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectParkingPage.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n basket: PropTypes.object,\r\n productGroupsList: PropTypes.array,\r\n categoriesList: PropTypes.array,\r\n currentScenario: PropTypes.string.isRequired,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onClearSelection: PropTypes.func,\r\n onToggleBasketMobile: PropTypes.func,\r\n onStartCheckout: PropTypes.func,\r\n dialogBoxTitle: PropTypes.string,\r\n dialogBoxMessage: PropTypes.string,\r\n dialogBoxLogo: PropTypes.string,\r\n showDialogBox: PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport DaysLinks from './days-links';\r\nimport SelectPanel from './select-panel';\r\nimport Accordion from './accordion';\r\nimport { PRODUCT_TAG_CAR } from '../../../general/js/basket/constants';\r\nimport BackLink from './back-link';\r\nimport PopupLinkInfo from './popup-link-info';\r\nimport ButtonClear from './button-clear';\r\nimport { ROUTE_DAYS, SCENARIO_PARKING_STANDALONE } from './constants';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\nimport CurrencyHelper from '../../../general/js/basket/currency-helper';\r\n\r\nexport default class SelectParkingStandaloneForm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.formHeading = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.formHeading.current.focus();\r\n }\r\n\r\n getPrevRoute() {\r\n let prevRoute = ROUTE_DAYS;\r\n\r\n if (this.props.currentScenario === SCENARIO_PARKING_STANDALONE) {\r\n prevRoute = ROUTE_DAYS;\r\n }\r\n\r\n return prevRoute;\r\n }\r\n\r\n generateParkingSummary() {\r\n const parkingTariff = this.props.productGroupsList.products.find((parking) =>\r\n parking.tag === PRODUCT_TAG_CAR);\r\n\r\n let text = '';\r\n\r\n if (parkingTariff) {\r\n text += `${CurrencyHelper.convertToPounds(parkingTariff.price)} ${parkingTariff.priceLabel}`;\r\n }\r\n\r\n return text;\r\n }\r\n\r\n getGroupParkingProducts(parkingProductsGroup) {\r\n const parkingList = this.props.parkingList;\r\n if (!parkingProductsGroup || !parkingProductsGroup.length || !parkingList || !parkingList.length) return null;\r\n\r\n var parkingListGroupProducts = new Array();\r\n parkingList.forEach((parkingProduct) => {\r\n if (parkingProductsGroup.some((product) => product.id === parkingProduct.id)) {\r\n parkingListGroupProducts.push(parkingProduct);\r\n }\r\n });\r\n\r\n return parkingListGroupProducts;\r\n }\r\n\r\n getFirstParkingProduct(parkingListGroupProducts) {\r\n if (!parkingListGroupProducts || !parkingListGroupProducts.length) return null;\r\n\r\n const parkingProduct = parkingListGroupProducts.filter((parkingProduct) =>\r\n parkingProduct.tag === PRODUCT_TAG_CAR)[0];\r\n\r\n if (parkingProduct) {\r\n return parkingProduct;\r\n }\r\n\r\n return parkingListGroupProducts[0];\r\n }\r\n\r\n renderParkingProductPanel(groupParkingProducts) {\r\n if (!groupParkingProducts || !groupParkingProducts.length) return null;\r\n\r\n const parkingListGroupProducts = this.getGroupParkingProducts(groupParkingProducts);\r\n const firstParkingProduct = this.getFirstParkingProduct(parkingListGroupProducts);\r\n\r\n return ;\r\n }\r\n\r\n renderParkingProductsPanels(parkingProductsList) {\r\n if (!parkingProductsList || !parkingProductsList.length) return null;\r\n\r\n return parkingProductsList.map((parkingProduct) => (\r\n \r\n ));\r\n }\r\n\r\n renderAccordion(groupParkingProducts) {\r\n if (!groupParkingProducts || !groupParkingProducts.length || groupParkingProducts.length < 2) return null;\r\n\r\n const parkingListGroupProducts = this.getGroupParkingProducts(groupParkingProducts);\r\n if (!parkingListGroupProducts || !parkingListGroupProducts.length) return null;\r\n\r\n const firstParkingProduct = this.getFirstParkingProduct(parkingListGroupProducts);\r\n const accordeonParkingProducts = parkingListGroupProducts.filter((parkingProduct) =>\r\n parkingProduct !== firstParkingProduct);\r\n\r\n return (\r\n \r\n {this.renderParkingProductsPanels(accordeonParkingProducts)}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n

    {this.props.dictionary.standaloneParkingStepTitle}

    \r\n \r\n
    \r\n

    {this.props.dictionary.standaloneParkingSubtitle}

    \r\n {\r\n hasValue(this.props.dictionary.standaloneParkingInformationLinkUrl) &&\r\n hasValue(this.props.dictionary.standaloneParkingInformationLinkText) &&\r\n {this.props.dictionary.standaloneParkingInformationLinkText}\r\n }\r\n
    \r\n
    \r\n {this.props.productGroupsList.map((productGroup) => (\r\n \r\n

    {productGroup.title}

    \r\n {this.renderParkingProductPanel(productGroup.products)}\r\n {this.renderAccordion(productGroup.products)}\r\n
    \r\n ))}\r\n
    \r\n
    \r\n {this.props.dictionary.standaloneParkingClearSelectionText}\r\n
    \r\n {this.props.dictionary.StandaloneParkingText}\r\n
    \r\n
    \r\n Back\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectParkingStandaloneForm.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n parkingList: PropTypes.array,\r\n productGroupsList: PropTypes.array,\r\n currentScenario: PropTypes.string.isRequired,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onClearSelection: PropTypes.func\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport SelectParkingStandaloneForm from './select-parking-standalone-form';\r\nimport { PRODUCT_TYPE_PARKING } from '../../../general/js/basket/constants';\r\nimport ProductsHelper from './products-helper';\r\nimport TicketBuilderAside from './ticket-builder-aside';\r\nimport CheckoutButton from './checkout-button';\r\nimport { ROUTE_PARKING_STANDALONE } from './constants';\r\nimport BasketDialogBoxContentBody from '../../../general/js/basket/basket-dialog-box-content-body';\r\nimport ConfirmationModal from '../../sso/components/common/utility/ConfirmationModal';\r\n\r\nexport default class SelectParkingStandalonePage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showModal: false\r\n };\r\n this.toggleConfirmationModal = this.toggleConfirmationModal.bind(this);\r\n this.toggleCloseModal = this.toggleCloseModal.bind(this);\r\n }\r\n\r\n toggleConfirmationModal() {\r\n this.props.showDialogBox ? this.setState({ showModal: true }) : this.setState({ showModal: false });\r\n }\r\n\r\n onConfirmationModal(mc, onContinue) {\r\n this.toggleConfirmationModal();\r\n\r\n if (!this.props.showDialogBox)\r\n this.onCheckout(mc, onContinue)\r\n }\r\n\r\n toggleCloseModal() {\r\n this.setState({ showModal: false });\r\n }\r\n\r\n onCheckout(mc, onContinue) {\r\n this.props.onStartCheckout(mc);\r\n this.triggerContinue(onContinue, mc ? 'Pay with Mastercard' : 'Pay');\r\n }\r\n\r\n onClearParkingSelection() {\r\n const parkingList = this.getParkingList();\r\n const paramsList = parkingList.map((parking) =>\r\n Object.assign({}, {\r\n type: parking.type,\r\n tag: parking.tag\r\n }));\r\n\r\n this.props.onClearSelection(paramsList);\r\n }\r\n\r\n triggerContinue(onContinue, actionCaption) {\r\n onContinue(actionCaption, ROUTE_PARKING_STANDALONE);\r\n }\r\n\r\n getParkingList() {\r\n return ProductsHelper.getStandaloneProductsList(\r\n this.props.productGroupsList,\r\n this.props.basket.productGroups,\r\n (product) => product.type === PRODUCT_TYPE_PARKING\r\n );\r\n }\r\n\r\n onSelectParkingQuantity(...args) {\r\n this.props.onApplyProductsQuantity(...args);\r\n this.setState({ isReadyToPay: true, focusCheckout: false });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
    \r\n this.onClearParkingSelection()}\r\n />\r\n
    \r\n
    \r\n (\r\n \r\n
    \r\n this.onConfirmationModal(mc, onContinue)}\r\n isDisabled={!this.getParkingList().some((parking) => parking.quantity > 0)}\r\n />\r\n
    \r\n We are experiencing high volumes of traffic at the minute. Please try again.\r\n
    \r\n
    \r\n this.onCheckout(mc, onContinue)}\r\n isApproveDanger={false}\r\n isApproveButtonDisabled={false}\r\n onCancelClick={this.toggleCloseModal}\r\n isCancelButtonDisabled={true}\r\n masterCardDialogBoxBanner={this.props.dialogBoxBanner}\r\n >\r\n \r\n \r\n \r\n
    \r\n )}\r\n />\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nSelectParkingStandalonePage.propTypes = {\r\n dictionary: PropTypes.object.isRequired,\r\n basket: PropTypes.object,\r\n productGroupsList: PropTypes.array,\r\n categoriesList: PropTypes.array,\r\n currentScenario: PropTypes.string.isRequired,\r\n onApplyProductsQuantity: PropTypes.func,\r\n onClearSelection: PropTypes.func,\r\n onToggleBasketMobile: PropTypes.func,\r\n onStartCheckout: PropTypes.func,\r\n dialogBoxTitle: PropTypes.string,\r\n dialogBoxMessage: PropTypes.string,\r\n dialogBoxLogo: PropTypes.string,\r\n showDialogBox: PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n HashRouter, Route, Switch, Redirect, withRouter\r\n} from 'react-router-dom';\r\nimport ObjectHelper from 'foundation/object-helper';\r\nimport ArrayHelper from 'foundation/array-helper';\r\nimport UrlHelper from 'foundation/url-helper';\r\nimport contentBlocker from '../../../general/js/content-blocker';\r\nimport overlay from '../../../general/js/overlay';\r\nimport eventBus from '../../../general/js/event-bus';\r\nimport SelectDaysPage from './select-days-page';\r\nimport SelectTicketsPage from './select-tickets-page';\r\nimport SelectExtrasPage from './select-extras-page';\r\nimport SelectParkingPage from './select-parking-page';\r\nimport SelectParkingStandalonePage from './select-parking-standalone-page';\r\nimport ValidationHelper from '../../../general/js/basket/validation-helper';\r\nimport { TicketBuilderContext } from './ticket-builder-context';\r\n\r\nimport { EVENT_DEVICE_TYPE_CHANGED } from '../../../general/js/app';\r\nimport {\r\n PRODUCT_TYPE_TICKET,\r\n PRODUCT_TYPE_HOSPITALITY,\r\n PRODUCT_TYPE_PARKING, \r\n PRODUCT_TYPE_EXTRAS,\r\n PRODUCT_TAG_TICKET_PLUS,\r\n PRODUCT_TAG_TICKET_PLUS_EXTRA\r\n} from '../../../general/js/basket/constants';\r\nimport {\r\n ROUTE_DAYS,\r\n ROUTE_EXTRAS,\r\n ROUTE_PARKING,\r\n ROUTE_TICKETS,\r\n ROUTE_PARKING_STANDALONE,\r\n SCENARIO_HOSPITALITY,\r\n SCENARIO_STANDARD,\r\n SCENARIO_PARKING,\r\n SCENARIO_HOSPITALITY_WITH_EXTRAS,\r\n SCENARIO_STANDARD_WITH_EXTRAS,\r\n SCENARIO_PARKING_STANDALONE\r\n} from './constants';\r\n\r\nimport { \r\n isNullOrUndefined \r\n} from '../../../general/js/general-helpers';\r\n\r\nconst PRODUCT_GROUP_ID_URL_PARAM_NAME = 'g';\r\n\r\nclass TicketBuilder extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.hasPreselectedProductGroup = false;\r\n this.currentProductType = this.getCurrentProductType();\r\n\r\n this.state = {\r\n productGroupsList: this.getSelectedProductGroups(),\r\n isBasketExpanded: false,\r\n isBasketToggling: false,\r\n };\r\n\r\n this.setHasPreselectedProductGroup();\r\n\r\n if (!Object.keys(this.state.productGroupsList).length) {\r\n window.location.hash = '';\r\n }\r\n\r\n this.onSelectProductGroup = this.onSelectProductGroup.bind(this);\r\n this.onApplyProductsQuantity = this.onApplyProductsQuantity.bind(this);\r\n this.onClearSelection = this.onClearSelection.bind(this);\r\n this.onToggleBasketMobile = this.onToggleBasketMobile.bind(this);\r\n\r\n eventBus.addListener(EVENT_DEVICE_TYPE_CHANGED, this.updateBasketDesign);\r\n\r\n this.tbContext = {\r\n currentScenarioTitle: this.getCurrentScenarioTitle()\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n // scroll to top on every new page\r\n if (this.props.location !== prevProps.location) {\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n // we have to reset this flag to prevent another page redirect\r\n this.hasPreselectedProductGroup = false;\r\n }\r\n\r\n componentWillUnmount() {\r\n eventBus.removeListener(EVENT_DEVICE_TYPE_CHANGED, this.updateBasketDesign);\r\n }\r\n\r\n updateBasketDesign = () => {\r\n if (this.state.isBasketExpanded) {\r\n this.onToggleBasketMobile();\r\n }\r\n }\r\n\r\n getCurrentScenarioTitle() {\r\n switch (this.props.currentScenario) {\r\n case SCENARIO_STANDARD:\r\n return 'Buy Tickets';\r\n case SCENARIO_HOSPITALITY:\r\n case SCENARIO_HOSPITALITY_WITH_EXTRAS:\r\n return this.props.categoriesList[0].title;\r\n case SCENARIO_STANDARD_WITH_EXTRAS:\r\n return 'Buy Tickets';\r\n case SCENARIO_PARKING:\r\n return 'Buy Parking';\r\n case SCENARIO_PARKING_STANDALONE:\r\n return 'Buy Parking Standalone'; \r\n default:\r\n return 'Buy Products';\r\n }\r\n }\r\n\r\n getCurrentProductType() {\r\n let productType = '';\r\n\r\n switch (this.props.currentScenario) {\r\n case SCENARIO_STANDARD:\r\n productType = PRODUCT_TYPE_TICKET;\r\n break;\r\n case SCENARIO_HOSPITALITY:\r\n case SCENARIO_HOSPITALITY_WITH_EXTRAS:\r\n productType = PRODUCT_TYPE_HOSPITALITY;\r\n break;\r\n case SCENARIO_PARKING:\r\n productType = PRODUCT_TYPE_PARKING;\r\n break;\r\n case SCENARIO_PARKING_STANDALONE:\r\n productType = PRODUCT_TYPE_PARKING;\r\n break; \r\n case SCENARIO_STANDARD_WITH_EXTRAS:\r\n productType = PRODUCT_TYPE_TICKET;\r\n break;\r\n default:\r\n productType = PRODUCT_TYPE_TICKET;\r\n }\r\n\r\n return productType;\r\n }\r\n\r\n getSelectedProductGroups() {\r\n const productGroupsList = [];\r\n\r\n this.props.categoriesList.forEach((category) =>\r\n category.productGroups.forEach((productGroup) => {\r\n if (this.isProductGroupHasProductsInBasket(productGroup) || this.isProductGroupPreselected(productGroup)) {\r\n productGroupsList.push(ObjectHelper.clone(productGroup));\r\n }\r\n }));\r\n\r\n return productGroupsList;\r\n }\r\n\r\n isProductGroupHasProductsInBasket(productGroup) {\r\n const currentScenarioProducts = productGroup.products.filter((product) =>\r\n product.type === this.currentProductType);\r\n\r\n // check if this product group have products of current scenario\r\n if (currentScenarioProducts.length > 0) {\r\n const basketProductGroups = this.props.basket.productGroups;\r\n if (basketProductGroups[productGroup.id]) {\r\n return currentScenarioProducts.some((product) =>\r\n basketProductGroups[productGroup.id].products.some((basketProduct) =>\r\n basketProduct.type === product.type &&\r\n basketProduct.tag === product.tag));\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n getPreselectedProductGroupId() {\r\n return UrlHelper.getParamFromLocation(PRODUCT_GROUP_ID_URL_PARAM_NAME, window.location);\r\n }\r\n\r\n clearPreselectedProductGroupId() {\r\n // todo should we remove it from query string?\r\n /*\r\n // we have to use global api to remove query parameter silently\r\n let url = UrlHelper.getFullUrlWithAppliedParams(window.location, { [PRODUCT_GROUP_ID_URL_PARAM_NAME]: null });\r\n window.history.replaceState({}, '', url);\r\n */\r\n }\r\n\r\n setHasPreselectedProductGroup() {\r\n const preselectedGroupId = this.getPreselectedProductGroupId();\r\n if (preselectedGroupId) {\r\n this.clearPreselectedProductGroupId();\r\n this.hasPreselectedProductGroup = this.props.categoriesList\r\n .some((category) =>\r\n category.productGroups.some((productGroup) => productGroup.id.toLowerCase() === preselectedGroupId.toLowerCase()));\r\n } else {\r\n this.hasPreselectedProductGroup = false;\r\n }\r\n }\r\n\r\n isProductGroupPreselected(productGroup) {\r\n if (!productGroup.isSoldOut) {\r\n const hasCurrentScenarioProducts = productGroup.products.some((product) => product.type === this.currentProductType);\r\n const preselectedGroupId = this.getPreselectedProductGroupId();\r\n if (hasCurrentScenarioProducts && !isNullOrUndefined(preselectedGroupId)) {\r\n return preselectedGroupId.toLowerCase() === productGroup.id.toLowerCase();\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n onSelectProductGroup(selProductGroup) {\r\n const basketProductGroups = ObjectHelper.clone(this.props.basket.productGroups);\r\n const productGroupsList = ObjectHelper.clone(this.state.productGroupsList);\r\n const productGroupIndex = ArrayHelper.findIndexByProp(\r\n productGroupsList,\r\n 'id',\r\n selProductGroup.id\r\n );\r\n\r\n if (productGroupIndex === -1) {\r\n // if selProductGroup isn't in productGroupsList yet so we clicked to add it\r\n // in this case we want to reset all products of the products types that are active for current scenario\r\n // from all product groups in basket\r\n productGroupsList.forEach((productGroup) => {\r\n if (productGroup.id in basketProductGroups) {\r\n this.resetProducts(basketProductGroups[productGroup.id], selProductGroup.products);\r\n }\r\n });\r\n productGroupsList.push(selProductGroup);\r\n } else {\r\n // otherwise we want to unselect some product group and remove it from basket\r\n // remove it from selected\r\n productGroupsList.splice(productGroupIndex, 1);\r\n // remove it from basket\r\n if (selProductGroup.id in basketProductGroups) {\r\n // remove all the current products from selected group in basket\r\n this.resetProducts(basketProductGroups[selProductGroup.id], selProductGroup.products);\r\n }\r\n }\r\n\r\n this.props.onProductGroupsUpdate(basketProductGroups);\r\n this.setState({ productGroupsList });\r\n }\r\n\r\n /**\r\n * Apply passed quantity to all appropriate products in selected days of the current scenario\r\n * So if you call it for example with {type: tickets, tag: adults} it will find particular products\r\n * by the passed params in all SELECTED groups and insert/update these groups and products in the basket\r\n *\r\n * @param productsParams\r\n * @param quantity\r\n */\r\n onApplyProductsQuantity(productsParams, quantity) {\r\n const basketProductGroups = ObjectHelper.clone(this.props.basket.productGroups);\r\n\r\n this.state.productGroupsList.forEach((productGroup) => {\r\n // filter products in selected product groups by passed set of keys/values\r\n const filteredProductsList = productGroup.products.filter((product) => Object.keys(productsParams).every((property) => {\r\n const value = productsParams[property];\r\n return product[property] === value;\r\n }));\r\n\r\n filteredProductsList.forEach((filteredProduct) => {\r\n // add product group to basket if it isn't there yet\r\n if (!basketProductGroups[productGroup.id]) {\r\n basketProductGroups[productGroup.id] = ObjectHelper.clone(productGroup);\r\n basketProductGroups[productGroup.id].products = [];\r\n }\r\n\r\n const basketProduct = basketProductGroups[productGroup.id].products.find((curBasketProduct) =>\r\n curBasketProduct.type === filteredProduct.type &&\r\n curBasketProduct.tag === filteredProduct.tag);\r\n\r\n if (basketProduct) {\r\n if (basketProduct.tag === PRODUCT_TAG_TICKET_PLUS && quantity === 0) {\r\n const basketProductExtra = basketProductGroups[productGroup.id].products.find((basketProduct) => basketProduct.tag === PRODUCT_TAG_TICKET_PLUS_EXTRA);\r\n \r\n if (basketProductExtra) {\r\n basketProductExtra.quantity = quantity;\r\n }\r\n }\r\n\r\n basketProduct.quantity = quantity;\r\n } else {\r\n const newProduct = ObjectHelper.clone(filteredProduct);\r\n newProduct.quantity = quantity;\r\n basketProductGroups[productGroup.id].products.push(newProduct);\r\n }\r\n });\r\n });\r\n\r\n this.props.onProductGroupsUpdate(basketProductGroups, ValidationHelper.isNeedResetJunior(productsParams.type, productsParams.tag));\r\n }\r\n\r\n onClearSelection(paramsList) {\r\n const basketProductGroups = ObjectHelper.clone(this.props.basket.productGroups);\r\n\r\n this.state.productGroupsList.forEach((productGroup) => {\r\n if (productGroup.id in basketProductGroups) {\r\n const basketProductGroup = basketProductGroups[productGroup.id];\r\n\r\n paramsList.forEach((param) => {\r\n const basketProductIndex = basketProductGroup.products.findIndex((basketProduct) =>\r\n basketProduct.type === param.type &&\r\n basketProduct.tag === param.tag);\r\n\r\n if (basketProductIndex !== -1) {\r\n basketProductGroup.products.splice(basketProductIndex, 1);\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.props.onProductGroupsUpdate(basketProductGroups);\r\n }\r\n\r\n onToggleBasketMobile() {\r\n const isBasketExpanded = this.state.isBasketExpanded;\r\n\r\n if (isBasketExpanded) {\r\n contentBlocker.unblock('ticket-builder-basket');\r\n overlay.hide('ticket-builder-basket');\r\n } else {\r\n contentBlocker.block('ticket-builder-basket');\r\n overlay.show('ticket-builder-basket');\r\n }\r\n\r\n this.setState({ isBasketExpanded: !isBasketExpanded, isBasketToggling: true }, () => {\r\n setTimeout(() => {\r\n this.setState({ isBasketToggling: false });\r\n }, 300);\r\n });\r\n }\r\n\r\n resetProducts(basketProductGroup, products) {\r\n const removeTypesList = this.getRemoveTypesList();\r\n\r\n products.forEach((product) => {\r\n const shouldRemoveProduct = removeTypesList.some((type) => type === product.type);\r\n\r\n if (shouldRemoveProduct) {\r\n const basketProductIndex = basketProductGroup.products.findIndex((basketProduct) =>\r\n basketProduct.type === product.type &&\r\n basketProduct.tag === product.tag);\r\n\r\n if (basketProductIndex !== -1) {\r\n basketProductGroup.products.splice(basketProductIndex, 1);\r\n }\r\n }\r\n });\r\n }\r\n\r\n getRemoveTypesList() {\r\n const removeTypesList = [];\r\n\r\n switch (this.props.currentScenario) {\r\n case SCENARIO_STANDARD:\r\n removeTypesList.push(PRODUCT_TYPE_TICKET, PRODUCT_TYPE_PARKING);\r\n break;\r\n case SCENARIO_HOSPITALITY:\r\n case SCENARIO_HOSPITALITY_WITH_EXTRAS:\r\n removeTypesList.push(PRODUCT_TYPE_HOSPITALITY, PRODUCT_TYPE_PARKING, PRODUCT_TYPE_EXTRAS);\r\n break;\r\n case SCENARIO_PARKING:\r\n case SCENARIO_PARKING_STANDALONE:\r\n removeTypesList.push(PRODUCT_TYPE_PARKING);\r\n break;\r\n case SCENARIO_STANDARD_WITH_EXTRAS:\r\n removeTypesList.push(PRODUCT_TYPE_TICKET, PRODUCT_TYPE_PARKING, PRODUCT_TYPE_EXTRAS);\r\n break;\r\n }\r\n\r\n return removeTypesList;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n />\r\n (\r\n \r\n )} />\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nTicketBuilder.propTypes = {\r\n categoriesList: PropTypes.array,\r\n currentScenario: PropTypes.string.isRequired,\r\n location: PropTypes.object.isRequired,\r\n history: PropTypes.object.isRequired,\r\n dictionary: PropTypes.object,\r\n basket: PropTypes.object,\r\n onProductGroupsUpdate: PropTypes.func,\r\n onUpdateProductQuantity: PropTypes.func,\r\n onCheckout: PropTypes.func,\r\n isParkingStandaloneConfiguration: PropTypes.bool,\r\n isConfiguredForBallot: PropTypes.bool,\r\n dialogBoxTitle: PropTypes.string,\r\n dialogBoxMessage: PropTypes.string,\r\n dialogBoxLogo: PropTypes.string,\r\n showDialogBox: PropTypes.bool\r\n};\r\n\r\n\r\nconst TicketBuilderWithRouter = withRouter(TicketBuilder);\r\nconst TicketBuilderWithHashRouter = (props) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default TicketBuilderWithHashRouter;\r\n","import BaseComponent from 'foundation/base-component';\r\nimport React from 'react';\r\nimport { render } from 'react-dom';\r\nimport ObjectHelper from 'foundation/object-helper';\r\nimport BasketController from '../../../general/js/basket/basket-controller';\r\nimport TicketBuilder from './ticket-builder';\r\nimport basketProductsHelper from '../../../general/js/basket/basket-products-helper';\r\nimport {\r\n SCENARIO_HOSPITALITY,\r\n SCENARIO_HOSPITALITY_WITH_EXTRAS,\r\n SCENARIO_PARKING,\r\n SCENARIO_PARKING_STANDALONE,\r\n SCENARIO_STANDARD,\r\n SCENARIO_STANDARD_WITH_EXTRAS\r\n} from './constants';\r\nimport gtm, { ecommerceEventTypes } from '../../../general/js/gtm';\r\nimport { CURRENCY_RATIO } from '../../../general/js/basket/currency-helper';\r\n\r\nexport default class TicketBuilderComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.data = {};\r\n\r\n try {\r\n this.data = JSON.parse(this.getAttribute(this.refs.data, 'options'));\r\n } catch (error) {\r\n console.log(error.message);\r\n }\r\n\r\n if (!this.data) {\r\n console.log('No data found');\r\n return;\r\n }\r\n\r\n const category = this.data.categories[0];\r\n\r\n gtm.pushEcommerceEvent(ecommerceEventTypes.VIEW_ITEM_LIST, {\r\n item_list_id: category.id,\r\n item_list_name: category.title,\r\n items: category.productGroups.map((productGroup) => ({\r\n item_id: productGroup.products[0].productId,\r\n item_name: `${productGroup.tag} - ${productGroup.title}`,\r\n price: productGroup.products[0].price / CURRENCY_RATIO,\r\n quantity: 1\r\n }))\r\n });\r\n\r\n const secutixProductsList = this.getBallotProductsList(this.data.secutixProductsGroups);\r\n const dialogBoxMessage = this.data.dialogBoxMessage.split('newline').join('\\n');\r\n basketProductsHelper.setSecutixReservedProducts(secutixProductsList);\r\n render(\r\n (\r\n \r\n \r\n }>\r\n \r\n ),\r\n this.refs.section\r\n );\r\n }\r\n\r\n getCategoriesList(categoriesList) {\r\n if (!categoriesList || !categoriesList.length) return [];\r\n\r\n const newCategoriesList = ObjectHelper.clone(categoriesList);\r\n\r\n newCategoriesList.forEach((categorie) => {\r\n categorie.productGroups = categorie.productGroups.sort((a, b) =>\r\n a.sortOrder - b.sortOrder);\r\n });\r\n\r\n return newCategoriesList;\r\n }\r\n\r\n getBallotProductsList(ballotProductsList) {\r\n if (!ballotProductsList || !ballotProductsList.length) return [];\r\n\r\n const newCategoriesList = ObjectHelper.clone(ballotProductsList);\r\n\r\n newCategoriesList.forEach((categorie) => {\r\n categorie.products = categorie.products.sort((a, b) =>\r\n a.sortOrder - b.sortOrder);\r\n });\r\n\r\n return newCategoriesList;\r\n }\r\n\r\n getCurrentScenario() {\r\n const stepsData = this.getStepsData();\r\n let scenario = SCENARIO_STANDARD;\r\n\r\n if (stepsData.hasTickets) {\r\n scenario = SCENARIO_STANDARD;\r\n }\r\n\r\n if (stepsData.hasHospitality) {\r\n scenario = SCENARIO_HOSPITALITY;\r\n }\r\n\r\n if (stepsData.hasHospitality && (\r\n stepsData.hasExtras ||\r\n stepsData.hasParking\r\n )) {\r\n scenario = SCENARIO_HOSPITALITY_WITH_EXTRAS;\r\n }\r\n\r\n if (stepsData.hasTickets && !stepsData.hasHospitality && stepsData.hasExtras) {\r\n scenario = SCENARIO_STANDARD_WITH_EXTRAS;\r\n }\r\n\r\n if (!stepsData.hasTickets &&\r\n !stepsData.hasHospitality &&\r\n stepsData.hasParking &&\r\n !stepsData.isParkingStandaloneConfiguration\r\n ) {\r\n scenario = SCENARIO_PARKING;\r\n }\r\n\r\n if (!stepsData.hasTickets &&\r\n !stepsData.hasHospitality &&\r\n stepsData.hasParking &&\r\n stepsData.isParkingStandaloneConfiguration\r\n ) {\r\n scenario = SCENARIO_PARKING_STANDALONE;\r\n }\r\n\r\n return scenario;\r\n }\r\n\r\n getStepsData() {\r\n return {\r\n hasTickets: this.data.hasTickets || false,\r\n hasHospitality: this.data.hasHospitality || false,\r\n hasExtras: this.data.hasExtras || false,\r\n hasParking: this.data.hasParking || false,\r\n isParkingStandaloneConfiguration: this.data.isParkingStandaloneConfiguration || false,\r\n isConfiguredForBallot: this.data.isConfiguredForBallot || false\r\n };\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport TicketBuilderComponent from './js/ticket-builder.component';\r\n\r\nComponentsFactory.getInstance().define('ticket-builder', TicketBuilderComponent);\r\n","export default class Deferred {\r\n constructor() {\r\n this.resolve = null;\r\n this.reject = null;\r\n\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve;\r\n this.reject = reject;\r\n });\r\n }\r\n}\r\n","import Modal from './modal';\r\nimport Deferred from './deferred';\r\n\r\nexport default class ModalWithResult extends Modal {\r\n constructor(...args) {\r\n super(...args);\r\n this.deferred = null;\r\n }\r\n\r\n open() {\r\n super.open();\r\n this.deferred = new Deferred();\r\n return this.deferred.promise.then((result) => {\r\n this.cleanupPromise();\r\n return result;\r\n }, (error) => {\r\n this.cleanupPromise();\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n cleanupPromise() {\r\n this.deferred = null;\r\n }\r\n\r\n close() {\r\n super.close();\r\n if (this.deferred) {\r\n this.deferred.reject();\r\n }\r\n }\r\n\r\n resolve(result, close = true) {\r\n if (this.deferred) {\r\n this.deferred.resolve(result);\r\n }\r\n if (close) {\r\n this.close();\r\n }\r\n }\r\n\r\n reject(reason, close = true) {\r\n if (this.deferred) {\r\n this.deferred.reject(reason);\r\n }\r\n if (close) {\r\n this.close();\r\n }\r\n }\r\n}\r\n","import BaseComponent from 'foundation/base-component';\r\nimport eventBus from 'general/js/event-bus';\r\nimport ModalWithResult from 'general/js/modal-with-result';\r\nimport { EVENT_MODAL_CLOSE, bemClasses } from 'general/js/modal';\r\n\r\nconst CONTROL_BUTTON_HTML_PLAY = '';\r\nconst CONTROL_BUTTON_HTML_PAUSE = '';\r\n\r\nconst CONTROL_BUTTON_HTML_MUTE = '';\r\nconst CONTROL_BUTTON_HTML_UNMUTE = '';\r\n\r\nexport default class VideoComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.placeholder = this.refs.placeholder;\r\n this.playBtn = this.refs.playBtn;\r\n this.modalContent = this.refs.modalContent;\r\n this.control = this.refs.control;\r\n this.playControl = this.refs.playControl;\r\n this.muteControl = this.refs.muteControl;\r\n\r\n this.modal = null;\r\n this.onPlayClick = this.onPlayClick.bind(this);\r\n this.onClickPlayControl = this.onClickPlayControl.bind(this);\r\n this.onClickMuteControl = this.onClickMuteControl.bind(this);\r\n this.onModalClose = this.onModalClose.bind(this);\r\n\r\n this.init();\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['playBtn', 'modalContent', 'control', 'playControl', 'muteControl'];\r\n }\r\n\r\n init() {\r\n if (this.control.canPlayType) {\r\n this.playBtn.addEventListener('click', this.onPlayClick);\r\n\r\n if (this.placeholder) {\r\n this.placeholder.addEventListener('click', this.onPlayClick);\r\n }\r\n }\r\n\r\n eventBus.addListener(EVENT_MODAL_CLOSE, this.onModalClose);\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener(EVENT_MODAL_CLOSE, this.onModalClose);\r\n }\r\n\r\n onPlayClick() {\r\n this.getModal().open().catch(() => {\r\n // we assume the only case of modal rejection is when it closes\r\n this._pause();\r\n });\r\n this._play();\r\n }\r\n\r\n getModal() {\r\n if (this.modal === null) {\r\n this.modal = new ModalWithResult(this.modalContent, {\r\n bemList: [bemClasses.WIDE],\r\n });\r\n this.renderControls();\r\n this.playControl.addEventListener('click', this.onClickPlayControl);\r\n this.muteControl.addEventListener('click', this.onClickMuteControl);\r\n }\r\n\r\n return this.modal;\r\n }\r\n\r\n onClickPlayControl() {\r\n if (this.control.paused || this.control.ended) {\r\n this._play();\r\n } else {\r\n this._pause();\r\n }\r\n }\r\n\r\n onClickMuteControl() {\r\n if (this.control.muted === true) {\r\n this._unmute();\r\n } else {\r\n this._mute();\r\n }\r\n }\r\n\r\n _play() {\r\n this.control.play();\r\n this.playControl.innerHTML = CONTROL_BUTTON_HTML_PAUSE;\r\n this.playControl.setAttribute('aria-label', 'pause');\r\n }\r\n\r\n _pause() {\r\n this.control.pause();\r\n this.playControl.innerHTML = CONTROL_BUTTON_HTML_PLAY;\r\n this.playControl.setAttribute('aria-label', 'play');\r\n }\r\n\r\n _mute() {\r\n this.control.muted = true;\r\n this.muteControl.innerHTML = CONTROL_BUTTON_HTML_UNMUTE;\r\n this.muteControl.setAttribute('aria-label', 'unmute');\r\n }\r\n\r\n _unmute() {\r\n this.control.muted = false;\r\n this.muteControl.innerHTML = CONTROL_BUTTON_HTML_MUTE;\r\n this.muteControl.setAttribute('aria-label', 'mute');\r\n }\r\n\r\n renderControls() {\r\n this.playControl.innerHTML = CONTROL_BUTTON_HTML_PLAY;\r\n this.playControl.setAttribute('aria-label', 'play');\r\n this.muteControl.innerHTML = CONTROL_BUTTON_HTML_MUTE;\r\n this.muteControl.setAttribute('aria-label', 'mute');\r\n }\r\n\r\n onModalClose(modalContainer) {\r\n if (modalContainer && modalContainer.contains(this.element)) {\r\n this._pause();\r\n }\r\n }\r\n}\r\n","import './scss/index.scss';\r\n\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport VideoComponent from './js/video.component';\r\n\r\nComponentsFactory.getInstance().define('video', VideoComponent);\r\n","import BaseComponent from 'foundation/base-component';\r\nimport Cookies from 'js-cookie';\r\n\r\nexport default class ViewOrderUrlComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n const secutixCookie = Cookies.get('secutixConfig');\r\n if (secutixCookie !== undefined) {\r\n const secutixConfiguration = JSON.parse(secutixCookie);\r\n const params = new URLSearchParams(window.location.search);\r\n const fileName = params.get('FileNumber');\r\n\t\t\tthis.element.setAttribute('href', secutixConfiguration.viewOrderUrl.replace('{0}', fileName));\r\n }\r\n }\r\n}\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport ViewOrderUrlComponent from './js/view-order-url.component';\r\n\r\nComponentsFactory.getInstance().define('view-order-url', ViewOrderUrlComponent);\r\n","export const vodeNavEvents = Object.freeze({\r\n TOGGLE_TO_SEE_ALL: 'toggle-to-see-all'\r\n});\r\n\r\nexport const vodNavModeTypes = Object.freeze({\r\n VOD: 'vod'\r\n});\r\n","import BaseComponent from 'foundation/base-component';\r\nimport { vodeNavEvents, vodNavModeTypes } from './enums';\r\nimport eventBus from 'general/js/event-bus';\r\nimport anime from 'animejs';\r\n\r\nexport default class VodNav extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.activeNavLinkNode = null;\r\n this.currentContentNode = null;\r\n\r\n this.links = this.refs.links;\r\n this.content = this.refs.content;\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n eventBus.addListener(vodeNavEvents.TOGGLE_TO_SEE_ALL, this.toggleView);\r\n this.tabsInit();\r\n }\r\n\r\n onDestroy() {\r\n eventBus.removeListener(vodeNavEvents.TOGGLE_TO_SEE_ALL, this.toggleView);\r\n }\r\n\r\n tabsInit() {\r\n Object.keys(this.links).forEach((key) => {\r\n const link = this.links[key];\r\n this.addListener(link, 'click', this.onLinkClick.bind(this, key));\r\n\r\n if (link.classList.contains('is-active')) {\r\n if (!this.activeNavLinkNode) {\r\n this.activeNavLinkNode = link;\r\n\r\n if (this.content[key]) {\r\n this.content[key].classList.add('is-active');\r\n this.currentContentNode = this.content[key];\r\n }\r\n } else {\r\n // remove dublicate state if found\r\n link.classList.remove('is-active');\r\n }\r\n }\r\n });\r\n }\r\n\r\n toggleView = (props) => {\r\n if (props.mode === vodNavModeTypes.VOD) {\r\n anime({\r\n targets: document.documentElement,\r\n scrollTop: 0,\r\n duration: 400,\r\n easing: 'easeOutQuad'\r\n });\r\n\r\n this.showContent(this.content[props.key]);\r\n }\r\n }\r\n\r\n onLinkClick(key, e) {\r\n e.preventDefault();\r\n\r\n if (this.activeNavLinkNode) {\r\n this.activeNavLinkNode.classList.remove('is-active');\r\n }\r\n\r\n this.activeNavLinkNode = e.target;\r\n this.activeNavLinkNode.classList.add('is-active');\r\n this.showContent(this.content[key]);\r\n }\r\n\r\n showContent(contentNode) {\r\n if (this.currentContentNode) {\r\n if (this.currentContentNode === contentNode) {\r\n return;\r\n }\r\n\r\n this.currentContentNode.classList.remove('is-active');\r\n }\r\n\r\n contentNode.classList.add('is-active');\r\n this.currentContentNode = contentNode;\r\n }\r\n}\r\n","import './scss/index.scss';\r\nimport ComponentsFactory from 'foundation/components-factory';\r\nimport VodNav from './js/vod-nav.component';\r\nimport { vodeNavEvents, vodNavModeTypes } from './js/enums';\r\n\r\nComponentsFactory.getInstance().define('vod-nav', VodNav);\r\n\r\nexport { vodeNavEvents, vodNavModeTypes };\r\n","import React, { Fragment, useEffect } from 'react';\r\nimport { isScriptEmbedded } from '../../../general/js/general-helpers';\r\n\r\nconst WeglotScript = ({\r\n options\r\n}) => {\r\n useEffect(() => {\r\n const weglotCdn = 'https://cdn.weglot.com/weglot.min.js';\r\n\r\n if (!isScriptEmbedded(weglotCdn)) {\r\n const weglotSrcScript = document.createElement('script');\r\n weglotSrcScript.type = 'text/javascript';\r\n weglotSrcScript.src = weglotCdn;\r\n\r\n weglotSrcScript.onload = () => {\r\n const weglotInitScript = document.createElement('script');\r\n weglotInitScript.type = 'text/javascript';\r\n weglotInitScript.innerHTML = `Weglot.initialize({ api_key: \"${options.apiKey}\" });`;\r\n\r\n document.body.appendChild(weglotInitScript);\r\n };\r\n\r\n document.body.appendChild(weglotSrcScript);\r\n }\r\n });\r\n\r\n return ;\r\n};\r\n\r\nexport default WeglotScript;\r\n","import BaseComponent from 'foundation/base-component';\r\nimport React, { Fragment } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport WeglotScript from './weglot-script';\r\n\r\nclass WeglotComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n this.element\r\n );\r\n }\r\n}\r\n\r\nexport default WeglotComponent;\r\n","import ComponentsFactory from 'foundation/components-factory';\r\nimport WeglotComponent from './js/weglot.component';\r\n\r\nComponentsFactory.getInstance().define('weglot', WeglotComponent);\r\n","/* styles */\r\nimport './general/scss/index.scss';\r\n\r\nimport 'foundation/global-error-handler';\r\nimport 'general/js/loaders/scoring-loader';\r\n//import 'general/js/loaders/sw-loader';\r\n\r\n/* polyfills */\r\nimport 'general/js/polyfills';\r\nimport 'general/js/lazysizes';\r\nimport 'intersection-observer';\r\nimport 'formdata-polyfill';\r\nimport 'whatwg-fetch';\r\n\r\n/* plugins */\r\nimport 'what-input';\r\nimport './components/form-custom-select/js/choices.js/public/assets/scripts/choices';\r\n\r\n/* shared components */\r\nimport 'project/live-helpers';\r\nimport 'project/country-flag';\r\n\r\n/* components */\r\nimport './components/accordion';\r\nimport './components/accordion-flexible';\r\nimport './components/account';\r\nimport './components/account-page';\r\nimport './components/account-profile';\r\nimport './components/alert-bars';\r\nimport './components/anti-forgery-token';\r\nimport './components/article-hero';\r\nimport './components/article-page';\r\nimport './components/article-player-title';\r\nimport './components/article-tags';\r\nimport './components/banner';\r\nimport './components/basket';\r\nimport './components/basket-buy-links';\r\nimport './components/basket-cleaner';\r\nimport './components/basket-icon';\r\nimport './components/call-out-panel';\r\nimport './components/cards';\r\nimport './components/carousel-controls';\r\nimport './components/checkout-page';\r\nimport './components/content-type';\r\nimport './components/contextual-info-panel';\r\nimport './components/contextual-latest-news';\r\nimport './components/contextual-link-panel';\r\nimport './components/contextual-manager';\r\nimport './components/contextual-rolex';\r\nimport './components/contextual-stats';\r\nimport './components/cookie-warning';\r\nimport './components/countdown-alertbar';\r\nimport './components/countries';\r\nimport './components/course';\r\nimport './components/data-capture';\r\nimport './components/days-promo';\r\nimport './components/dfp-banner';\r\nimport './components/email-capture';\r\nimport './components/endeavor-player';\r\nimport './components/endeavor-player-modal';\r\nimport './components/error-hero';\r\nimport './components/feature-content';\r\nimport './components/featured-list';\r\nimport './components/footer';\r\nimport './components/force-sign-in';\r\nimport './components/form';\r\nimport './components/form-buttons-radio';\r\nimport './components/form-checkbox';\r\nimport './components/form-checkbox-panel';\r\nimport './components/form-custom-select';\r\nimport './components/form-date';\r\nimport './components/form-field';\r\nimport './components/form-file';\r\nimport './components/form-page';\r\nimport './components/form-phone-input';\r\nimport './components/form-popup';\r\nimport './components/form-progress';\r\nimport './components/form-radio';\r\nimport './components/form-round-select';\r\nimport './components/form-select';\r\nimport './components/general-page-hero';\r\nimport './components/gtm-trigger';\r\nimport './components/header';\r\nimport './components/hero';\r\nimport './components/hero-banner-homepage';\r\nimport './components/highlights-panel';\r\nimport './components/hole-flag';\r\nimport './components/image';\r\nimport './components/image-gallery';\r\nimport './components/imga-iframe';\r\nimport './components/imga-matchups-game';\r\nimport './components/info-panel';\r\nimport './components/large-hero';\r\nimport './components/leaderboard';\r\nimport './components/leaderboard-scoring';\r\nimport './components/leaderboard-widget';\r\nimport './components/listing';\r\nimport './components/live-event-select';\r\nimport './components/live-header';\r\nimport './components/live-hero';\r\nimport './components/live-navigation';\r\nimport './components/live-stats';\r\nimport './components/live-submenu';\r\nimport './components/live-tabs';\r\nimport './components/live-text';\r\nimport './components/live-title';\r\nimport './components/live-video-widget';\r\nimport './components/live-widget';\r\nimport './components/live-widgets';\r\nimport './components/main-nav';\r\nimport './components/make-stories';\r\nimport './components/modal';\r\nimport './components/modal-spa-trigger';\r\nimport './components/modal-trigger-promo-panel';\r\nimport './components/multimedia-carousel';\r\nimport './components/my-account-url';\r\nimport './components/news-feed';\r\nimport './components/news-feed-live';\r\nimport './components/news-feed-live-selector';\r\nimport './components/news-feed-preview';\r\nimport './components/notifications';\r\nimport './components/overlay';\r\nimport './components/page-spinner';\r\nimport './components/pagination';\r\nimport './components/player-bio';\r\nimport './components/player-carousel';\r\nimport './components/player-feature';\r\nimport './components/player-hero';\r\nimport './components/posts';\r\nimport './components/previous-opens-card';\r\nimport './components/promo-panel';\r\nimport './components/qual-draw';\r\nimport './components/qual-events';\r\nimport './components/qual-events-hero';\r\nimport './components/qual-leaderboard';\r\nimport './components/qualification-notification';\r\nimport './components/qualified-golfers';\r\nimport './components/qualified-player-card';\r\nimport './components/qualified-players-listing';\r\nimport './components/quote';\r\nimport './components/quote-image';\r\nimport './components/quote-two-images';\r\nimport './components/recaptcha';\r\nimport './components/related-news';\r\nimport './components/related-page';\r\nimport './components/reset-password-url';\r\nimport './components/richtext-editor';\r\nimport './components/right-header-link-item';\r\nimport './components/right-header-links';\r\nimport './components/rolex-watch';\r\nimport './components/row';\r\nimport './components/scores';\r\nimport './components/section';\r\nimport './components/sign-posting';\r\nimport './components/social-provider';\r\nimport './components/social-sharing';\r\nimport './components/spa-load';\r\nimport './components/spinner';\r\nimport './components/sso';\r\nimport './components/sticky-button-trigger';\r\nimport './components/sub-nav';\r\nimport './components/sub-page-nav';\r\nimport './components/sublayout';\r\nimport './components/tabs';\r\nimport './components/tee-times';\r\nimport './components/thank-you';\r\nimport './components/ticket-builder';\r\nimport './components/ticket-option';\r\nimport './components/tickets-hospitality-splitter';\r\nimport './components/tickets-listing';\r\nimport './components/upsell';\r\nimport './components/video';\r\nimport './components/video-header';\r\nimport './components/view-order-url';\r\nimport './components/vod-nav';\r\nimport './components/weglot';\r\nimport './components/comparison-tool';\r\n\r\n/* init app */\r\nimport app from './general/js/app';\r\n\r\napp.init();\r\n\r\n/* build svg sprite */\r\nconst files = require.context('./general/svg', true, /^\\.\\/.*\\.svg/);\r\nfiles.keys().forEach(files);\r\n\r\n// do not focus sprite in IE\r\nconst spriteNode = document.getElementById('__SVG_SPRITE_NODE__');\r\n\r\nif (spriteNode) {\r\n spriteNode.setAttribute('focusable', 'false');\r\n spriteNode.setAttribute('aria-hidden', 'true');\r\n}\r\n","var Handlebars = require(\"D:\\\\a\\\\1\\\\s\\\\src\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.classNames : depth0)) != null ? stack1.highlightedState : stack1), depth0));\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.classNames : depth0)) != null ? stack1.itemSelectable : stack1), depth0));\n},\"5\":function(container,depth0,helpers,partials,data) {\n return \"aria-selected=\\\"true\\\"\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n return \"aria-disabled=\\\"true\\\"\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression;\n\n return \" \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=container.lambda, alias2=container.escapeExpression, alias3=depth0 != null ? depth0 : (container.nullContext || {}), alias4=helpers.blockHelperMissing;\n\n return \"\\r\\n \"\n + ((stack1 = ((helper = (helper = helpers.content || (depth0 != null ? depth0.content : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(alias3,{\"name\":\"content\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias3,(depth0 != null ? depth0.removeItemButton : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\";\n},\"useData\":true});","var Handlebars = require(\"D:\\\\a\\\\1\\\\s\\\\src\\\\node_modules\\\\handlebars\\\\runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.classNames : depth0)) != null ? stack1.itemDisabled : stack1), depth0));\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.classNames : depth0)) != null ? stack1.itemSelectable : stack1), depth0));\n},\"5\":function(container,depth0,helpers,partials,data) {\n return \"data-choice-disabled aria-disabled=\\\"true\\\"\\r\\n \";\n},\"7\":function(container,depth0,helpers,partials,data) {\n return \"data-choice-selectable\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=container.lambda, alias2=container.escapeExpression, alias3=depth0 != null ? depth0 : (container.nullContext || {}), alias4=helpers.helperMissing, alias5=\"function\";\n\n return \"\\r\\n \"\n + ((stack1 = ((helper = (helper = helpers.content || (depth0 != null ? depth0.content : depth0)) != null ? helper : alias4),(typeof helper === alias5 ? helper.call(alias3,{\"name\":\"content\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"\\r\\n\\r\\n\";\n},\"useData\":true});","/* eslint-disable no-console */\r\nimport { Auth } from 'aws-amplify';\r\nimport BaseComponent from 'foundation/base-component';\r\nimport Oauth from '../../sso/components/oauth';\r\n\r\nimport {\r\n OauthQueryConstants,\r\n removeParameterByName,\r\n getParameterByName,\r\n setOauthSignOutReturnUrl,\r\n} from '../../../general/js/utils';\r\nimport { hasValue } from '../../../general/js/general-helpers';\r\n\r\nexport default class SSOSignInComponent extends BaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n\r\n this.init();\r\n }\r\n\r\n init = () => {\r\n this.addListener(this.refs.ssoSignIn, 'click', this.handleOnSignInClick);\r\n this.addListener(this.refs.ssoRegister, 'click', this.handleOnRegisterClick);\r\n this.handleForceSignIn();\r\n this.handleForceSignUp();\r\n }\r\n\r\n onDestroy() {\r\n this.refs.ssoSignIn.removeEventListener('click', this.handleOnSignInClick);\r\n this.refs.ssoRegister.removeEventListener('click', this.handleOnRegisterClick);\r\n }\r\n\r\n handleOnSignInClick = () => {\r\n try {\r\n Oauth.federatedSignIn();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n handleOnRegisterClick = () => {\r\n try {\r\n Oauth.signUp();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n handleForceSignIn = () => {\r\n const forceSignInQueryParams = getParameterByName(OauthQueryConstants.FORCE_SIGN_IN);\r\n if (!hasValue(forceSignInQueryParams)) {\r\n return;\r\n }\r\n\r\n removeParameterByName(OauthQueryConstants.FORCE_SIGN_IN);\r\n\r\n Oauth.getCurrentAuthenticatedUser()\r\n .then((user) => {\r\n if (!hasValue(user)) {\r\n try {\r\n Oauth.federatedSignIn();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n })\r\n .catch(() => {\r\n try {\r\n Oauth.federatedSignIn();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n }\r\n\r\n handleForceSignUp = () => {\r\n const forceSignUpQueryParams = getParameterByName(OauthQueryConstants.FORCE_SIGN_UP);\r\n if (!hasValue(forceSignUpQueryParams)) {\r\n return;\r\n }\r\n\r\n Oauth.getCurrentAuthenticatedUser()\r\n .then((user) => {\r\n if (hasValue(user)) {\r\n try {\r\n setOauthSignOutReturnUrl();\r\n Auth.signOut({ global });\r\n } catch (error) {\r\n console.error('Error signing out:', error);\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n })\r\n .finally(() => {\r\n removeParameterByName(OauthQueryConstants.FORCE_SIGN_UP);\r\n try {\r\n Oauth.signUp();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n }\r\n}\r\n"],"sourceRoot":""}