{"version":3,"sources":["webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./app/javascript/utils/ordinal.js","webpack:///./app/javascript/packs/localisation.ts","webpack:///./app/javascript/constants/SupportColours.js","webpack:///./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack:///./node_modules/date-fns/esm/format/index.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./app/javascript/components/templates/Base.module.sass","webpack:///./node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack:///./node_modules/downshift/node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/downshift/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/downshift/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-loading-skeleton/dist/index.mjs","webpack:///./node_modules/@apollo/client/react/hooks/useMutation.js","webpack:///./node_modules/date-fns/esm/locale/en-GB/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/en-GB/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/@apollo/client/react/context/ApolloProvider.js","webpack:///./app/javascript/components/apollo/withApollo.tsx","webpack:///./app/javascript/components/shared/elements/Text/Text.module.sass","webpack:///./app/javascript/components/shared/elements/RoughCostCalculator/FullSectionRoughCostCalculator.tsx","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/@material-ui/styles/esm/useTheme/useTheme.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./app/javascript/utils/googleClickIdentifierSession.ts","webpack:///./app/javascript/utils/playVideosOnScroll.ts","webpack:///./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack:///./app/javascript/services/segment.ts","webpack:///./app/javascript/components/templates/Base.tsx","webpack:///./app/javascript/components/shared/elements/BreedSelector/BreedSelector.tsx","webpack:///./node_modules/@apollo/client/react/parser/index.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack:///./app/javascript/components/shared/elements/BreedSelector/index.ts","webpack:///./app/javascript/components/shared/elements/RafCampaignModal/index.ts","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/typeof.js","webpack:///./app/javascript/components/shared/elements/RafModal/index.ts","webpack:///./app/javascript/utils/sentry.ts","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./app/javascript/components/shared/elements/Image/Image.tsx","webpack:///./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/i18next/dist/esm/i18next.js","webpack:///./node_modules/graphql/jsutils/inspect.mjs","webpack:///./node_modules/@apollo/client/utilities/globals/global.js","webpack:///./node_modules/date-fns/esm/addMilliseconds/index.js","webpack:///./node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","webpack:///./node_modules/@apollo/client/utilities/common/canUse.js","webpack:///./app/javascript/components/shared/VideoElement.js","webpack:///./app/javascript/components/shared/elements/InjectedMarkupText/InjectedMarkupText.tsx","webpack:///./app/javascript/components/shared/elements/RafCampaignModal/RafCampaignModal.tsx","webpack:///./app/javascript/components/shared/elements/RafModal/RafModal.tsx","webpack:///./app/javascript/components/shared/elements/RafModal/components/AmbassadorReferralLinkContent.tsx","webpack:///./app/javascript/components/shared/elements/RafModal/components/ClientReferralLinkContent.tsx","webpack:///./node_modules/date-fns/esm/isDate/index.js","webpack:///./node_modules/date-fns/esm/isValid/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack:///./node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///./node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./node_modules/@apollo/client/node_modules/zen-observable-ts/module.js","webpack:///./node_modules/@apollo/client/utilities/graphql/fragments.js","webpack:///./node_modules/@apollo/client/utilities/graphql/storeUtils.js","webpack:///./node_modules/@apollo/client/utilities/graphql/getFromAST.js","webpack:///./node_modules/@apollo/client/link/core/ApolloLink.js","webpack:///./node_modules/@apollo/client/link/utils/createOperation.js","webpack:///./node_modules/@apollo/client/link/utils/transformOperation.js","webpack:///./node_modules/@apollo/client/link/utils/validateOperation.js","webpack:///./node_modules/@apollo/client/link/core/execute.js","webpack:///./node_modules/graphql/language/visitor.mjs","webpack:///./node_modules/@apollo/client/utilities/graphql/directives.js","webpack:///./node_modules/@apollo/client/link/http/serializeFetchParameter.js","webpack:///./node_modules/@apollo/client/link/http/selectURI.js","webpack:///./node_modules/@apollo/client/link/http/iterators/nodeStream.js","webpack:///./node_modules/@apollo/client/link/http/iterators/reader.js","webpack:///./node_modules/@apollo/client/link/http/responseIterator.js","webpack:///./node_modules/@apollo/client/link/http/iterators/async.js","webpack:///./node_modules/@apollo/client/utilities/common/responseIterator.js","webpack:///./node_modules/@apollo/client/link/http/iterators/promise.js","webpack:///./node_modules/@apollo/client/link/utils/throwServerError.js","webpack:///./node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js","webpack:///./node_modules/@apollo/client/link/http/checkFetcher.js","webpack:///./node_modules/graphql/language/printer.mjs","webpack:///./node_modules/@apollo/client/link/http/selectHttpOptionsAndBody.js","webpack:///./node_modules/@apollo/client/link/http/createSignalIfSupported.js","webpack:///./node_modules/@apollo/client/link/utils/fromError.js","webpack:///./node_modules/@apollo/client/link/http/createHttpLink.js","webpack:///./node_modules/@apollo/client/link/http/rewriteURIForGET.js","webpack:///./node_modules/@apollo/client/link/http/HttpLink.js","webpack:///./node_modules/@apollo/client/utilities/common/mergeDeep.js","webpack:///./node_modules/@apollo/client/cache/inmemory/helpers.js","webpack:///./node_modules/@apollo/client/cache/inmemory/object-canon.js","webpack:///./node_modules/@apollo/client/utilities/observables/asyncMap.js","webpack:///./node_modules/@apollo/client/utilities/common/errorHandling.js","webpack:///./node_modules/@apollo/client/utilities/common/filterInPlace.js","webpack:///./node_modules/@apollo/client/utilities/graphql/transform.js","webpack:///./node_modules/@apollo/client/utilities/common/makeUniqueId.js","webpack:///./node_modules/@apollo/client/utilities/observables/iteration.js","webpack:///./node_modules/@apollo/client/utilities/observables/subclassing.js","webpack:///./node_modules/@apollo/client/utilities/observables/Concast.js","webpack:///./node_modules/@apollo/client/utilities/common/cloneDeep.js","webpack:///./node_modules/@apollo/client/core/ObservableQuery.js","webpack:///./node_modules/@apollo/client/core/LocalState.js","webpack:///./node_modules/@apollo/client/core/QueryInfo.js","webpack:///./node_modules/@apollo/client/core/QueryManager.js","webpack:///./node_modules/@apollo/client/cache/inmemory/entityStore.js","webpack:///./node_modules/@apollo/client/utilities/common/incrementalResult.js","webpack:///./node_modules/@apollo/client/core/ApolloClient.js","webpack:///./node_modules/@apollo/client/version.js","webpack:///./node_modules/@apollo/client/cache/core/cache.js","webpack:///./node_modules/@apollo/client/cache/core/types/common.js","webpack:///./node_modules/@apollo/client/cache/inmemory/readFromStore.js","webpack:///./node_modules/@apollo/client/cache/inmemory/key-extractor.js","webpack:///./node_modules/@apollo/client/cache/inmemory/policies.js","webpack:///./node_modules/@apollo/client/utilities/common/stringifyForDisplay.js","webpack:///./node_modules/@apollo/client/cache/inmemory/writeToStore.js","webpack:///./node_modules/@apollo/client/cache/inmemory/inMemoryCache.js","webpack:///./node_modules/@apollo/client/link/batch/batching.js","webpack:///./node_modules/@apollo/client/link/batch/batchLink.js","webpack:///./node_modules/@apollo/client/link/batch-http/batchHttpLink.js","webpack:///./node_modules/@apollo/client/link/error/index.js","webpack:///./node_modules/@apollo/client/link/retry/retryLink.js","webpack:///./node_modules/@apollo/client/link/retry/delayFunction.js","webpack:///./node_modules/@apollo/client/link/retry/retryFunction.js","webpack:///./node_modules/@apollo/client/utilities/policies/pagination.js","webpack:///./app/javascript/components/apollo/client.ts","webpack:///./node_modules/date-fns/esm/subMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack:///./app/javascript/components/shared/elements/Button/Button.module.sass","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/i18next-pseudo/es/utils.js","webpack:///./node_modules/i18next-pseudo/es/index.js","webpack:///./node_modules/@material-ui/styles/node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/@apollo/client/react/hooks/useApolloClient.js","webpack:///./node_modules/date-fns/esm/toDate/index.js","webpack:///./app/javascript/types/index.ts","webpack:///./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js","webpack:///./node_modules/graphql/language/blockString.mjs","webpack:///./node_modules/graphql/polyfills/symbols.mjs","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/@apollo/client/node_modules/ts-invariant/lib/invariant.js","webpack:///./node_modules/@apollo/client/utilities/globals/DEV.js","webpack:///./node_modules/@apollo/client/utilities/globals/fix-graphql.js","webpack:///./node_modules/@apollo/client/utilities/globals/index.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars.js","webpack:///./app/assets/images/icons/arrows/arrow-blue.svg","webpack:///./node_modules/@material-ui/utils/node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/@material-ui/utils/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@material-ui/utils/esm/deepmerge.js","webpack:///./app/javascript/hooks/useBoolean/useBoolean.ts","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/toPrimitive.js","webpack:///./node_modules/graphql/language/kinds.mjs","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/react-motion/lib/stripStyle.js","webpack:///./app/javascript/components/shared/elements/WonkyTitleText/WonkyTitleText.tsx","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/@apollo/client/node_modules/@wry/context/lib/context.esm.js","webpack:///./node_modules/dom-parse/lib/browser.esm.js","webpack:///./node_modules/css-to-style/lib/index.esm.js","webpack:///./node_modules/react-render-markup/lib/index.esm.js","webpack:///./app/javascript/components/shared/TransitionalModal.js","webpack:///./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack:///./node_modules/@apollo/client/node_modules/ts-invariant/process/index.js","webpack:///./node_modules/@apollo/client/react/context/ApolloContext.js","webpack:///./node_modules/@material-ui/styles/esm/ThemeProvider/ThemeProvider.js","webpack:///./node_modules/graphql/jsutils/devAssert.mjs","webpack:///./node_modules/graphql/jsutils/instanceOf.mjs","webpack:///./node_modules/graphql/language/source.mjs","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./app/javascript/components/shared/elements/Text/Text.tsx","webpack:///./node_modules/lodash/isUndefined.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///./node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./app/javascript/components/shared/elements/RoughCostCalculator/components/DogDetailsForm.tsx","webpack:///./node_modules/handlebars/dist/cjs/handlebars/base.js","webpack:///./app/javascript/components/cookie_consent/index.tsx","webpack:///./app/javascript/utils/isEqual.ts","webpack:///./node_modules/date-fns/esm/differenceInMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/roundingMethods/index.js","webpack:///./node_modules/date-fns/esm/locale/pl/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/pl/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/pl/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/_lib/isSameUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/locale/pl/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/pl/index.js","webpack:///./node_modules/date-fns/esm/locale/pl/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/locale/nl/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/nl/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/nl/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/nl/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/nl/index.js","webpack:///./node_modules/date-fns/esm/locale/nl/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/locale/nl-BE/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/nl-BE/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/nl-BE/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/nl-BE/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/nl-BE/index.js","webpack:///./node_modules/date-fns/esm/locale/nl-BE/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/locale/de/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/de/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/de/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/de/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/de/index.js","webpack:///./node_modules/date-fns/esm/locale/de/_lib/match/index.js","webpack:///./node_modules/react-i18next/dist/es/utils.js","webpack:///./node_modules/react-i18next/dist/es/useTranslation.js","webpack:///./node_modules/react-motion/lib/mapToZero.js","webpack:///./node_modules/react-motion/lib/stepper.js","webpack:///./node_modules/react-motion/node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/raf/index.js","webpack:///./node_modules/react-motion/lib/shouldStopAnimation.js","webpack:///./app/javascript/components/theme/breakpoints.sass","webpack:///./app/javascript/components/shared/CookieConsent/CookieConsentBanner.tsx","webpack:///./app/javascript/components/shared/CookieConsent/Modals/ManageModal.tsx","webpack:///./app/javascript/components/shared/CookieConsent/helpers.ts","webpack:///./app/javascript/components/shared/CookieConsent/Modals/StrictModal.tsx","webpack:///./app/javascript/components/cookie_consent/scroll.ts","webpack:///./node_modules/react-motion/lib/react-motion.js","webpack:///./node_modules/downshift/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/downshift/node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/compute-scroll-into-view/dist/index.js","webpack:///./node_modules/downshift/node_modules/tslib/tslib.es6.js","webpack:///./node_modules/downshift/dist/downshift.esm.js","webpack:///./node_modules/lodash/keysIn.js","webpack:///./node_modules/lodash/isString.js","webpack:///./app/assets/images/icons/crosses/close-icon--white.svg","webpack:///./node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/fr/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/fr/index.js","webpack:///./node_modules/date-fns/esm/locale/fr/_lib/match/index.js","webpack:///./app/javascript/components/shared/elements/Button/Button.tsx","webpack:///./node_modules/@apollo/client/core/networkStatus.js","webpack:///./app/javascript/utils/debounce.ts","webpack:///./app/javascript/components/shared/elements/BreedSelector/components/BreedAutocomplete/BreedAutocomplete.tsx","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./app/assets/images/icons/flags/gb-flag.svg","webpack:///./node_modules/@wry/equality/lib/equality.esm.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/@apollo/client/utilities/common/compact.js","webpack:///./node_modules/@apollo/client/utilities/common/arrays.js","webpack:///./app/javascript/components/shared/geo_ip_widget/localisationDisplay.tsx","webpack:///./node_modules/lodash/_arrayMap.js","webpack:///(webpack)/buildin/module.js","webpack:///./app/javascript/utils/isDevelopment.ts","webpack:///./app/javascript/utils/percentage.js","webpack:///./app/javascript/components/analytics/Analytics.js","webpack:///./node_modules/date-fns/esm/locale/cs/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/cs/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/cs/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/cs/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/cs/index.js","webpack:///./node_modules/date-fns/esm/locale/cs/_lib/match/index.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/logger.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/ast.js","webpack:///./app/javascript/constants/Breakpoints.ts","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/visitor.js","webpack:///./node_modules/intersection-observer/intersection-observer.js","webpack:///./node_modules/react-display-name/lib/getDisplayName.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/lodash/_baseIndexOf.js","webpack:///./app/javascript/components/shared/elements/BreedSelector/components/BreedCard/BreedCard.tsx","webpack:///./app/javascript/utils/StringHelper.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/react-motion/lib/presets.js","webpack:///./node_modules/graphql/jsutils/defineInspect.mjs","webpack:///./node_modules/graphql/jsutils/invariant.mjs","webpack:///./node_modules/graphql/language/ast.mjs","webpack:///./app/assets/images/icons/crosses/close.svg","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack:///./app/javascript/utils/countryCodeHelper.ts","webpack:///./node_modules/@apollo/client/react/hooks/useReactiveVar.js","webpack:///./app/javascript/utils/currency.js","webpack:///./app/javascript/packs/static/index.tsx","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./app/javascript/hooks/useWindowSize.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./app/assets/images/icons/flags/be-flag.svg","webpack:///./app/assets/images/icons/flags/cz-flag.svg","webpack:///./app/assets/images/icons/flags/de-flag.svg","webpack:///./app/assets/images/icons/flags/ie-flag.svg","webpack:///./app/assets/images/icons/flags/nl-flag.svg","webpack:///./app/assets/images/icons/flags/pl-flag.svg","webpack:///./node_modules/@apollo/client/utilities/common/mergeOptions.js","webpack:///./node_modules/lodash/_baseToString.js","webpack:///./node_modules/lodash/_hasUnicode.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./app/javascript/components/shared/geo_ip_widget/LocalisationModal/localisationModal.tsx","webpack:///./node_modules/graphql/jsutils/isObjectLike.mjs","webpack:///./node_modules/graphql/language/location.mjs","webpack:///./node_modules/graphql/language/printLocation.mjs","webpack:///./node_modules/graphql/error/GraphQLError.mjs","webpack:///./node_modules/graphql/error/syntaxError.mjs","webpack:///./node_modules/graphql/language/tokenKind.mjs","webpack:///./node_modules/graphql/language/directiveLocation.mjs","webpack:///./node_modules/graphql/language/lexer.mjs","webpack:///./node_modules/graphql/language/parser.mjs","webpack:///./node_modules/graphql-tag/lib/index.js","webpack:///./app/javascript/components/shared/geo_ip_widget/LanguageWidget.tsx","webpack:///./app/javascript/components/shared/geo_ip_widget/RegionWidget.tsx","webpack:///./app/javascript/components/shared/geo_ip_widget/LocalisationModal/queries/saveLanguage.ts","webpack:///./app/javascript/components/shared/geo_ip_widget/LocalisationModal/queries/userQuery.ts","webpack:///./app/javascript/helpers/fetchActiveShippingCountries.ts","webpack:///./app/javascript/components/shared/geo_ip_widget/initGeoIpWidget.tsx","webpack:///./node_modules/cloudinary-react/dist/cloudinary-react.esm.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/lodash/_getPrototype.js","webpack:///./node_modules/lodash/_cloneArrayBuffer.js","webpack:///./node_modules/lodash/isPlainObject.js","webpack:///./app/javascript/components/apollo/types-with-ids.ts","webpack:///./node_modules/@apollo/client/cache/inmemory/reactiveVars.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/lodash/_castSlice.js","webpack:///./node_modules/lodash/_stringToArray.js","webpack:///./node_modules/lodash/_baseTrim.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars.runtime.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/if.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/decorators.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/internal/create-new-lookup-object.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/safe-string.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/runtime.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js","webpack:///./node_modules/downshift/node_modules/prop-types/index.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/base.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/parser.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/whitespace-control.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/helpers.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/compiler/code-gen.js","webpack:///./node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js","webpack:///./app/javascript/typescript/utils.ts","webpack:///./node_modules/lodash/_baseSlice.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./app/javascript/constants/PopularBreeds.ts","webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/lodash/_asciiToArray.js","webpack:///./node_modules/lodash/_unicodeToArray.js","webpack:///./node_modules/react-motion/lib/Motion.js","webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/react-motion/lib/StaggeredMotion.js","webpack:///./node_modules/react-motion/lib/TransitionMotion.js","webpack:///./node_modules/react-motion/lib/mergeDiff.js","webpack:///./node_modules/react-motion/lib/spring.js","webpack:///./node_modules/react-motion/lib/reorderKeys.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./app/javascript/components/shared/elements/Select/Select.tsx","webpack:///./app/javascript/components/shared/CookieConsent/types.ts","webpack:///./app/javascript/components/shared/CookieConsent/CookieConsent.tsx","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_cloneBuffer.js","webpack:///./app/javascript/components/shared/geo_ip_widget/localisationHelpers.ts","webpack:///./node_modules/lodash/_copyArray.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/lodash/_getSymbolsIn.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/lodash/_cloneTypedArray.js","webpack:///./node_modules/lodash/_initCloneObject.js","webpack:///./node_modules/lodash/isArrayLikeObject.js","webpack:///./node_modules/lodash/_assignMergeValue.js","webpack:///./node_modules/lodash/_safeGet.js","webpack:///./node_modules/cloudinary-core/cloudinary-core.js","webpack:///./app/javascript/components/shared/elements/Button/ButtonSkeleton.tsx","webpack:///./node_modules/@material-ui/styles/esm/ThemeProvider/nested.js","webpack:///./app/javascript/static_content/EstimatedDailyPlanPrices.ts","webpack:///./app/javascript/components/shared/elements/RoughCostCalculator/components/Plan.tsx","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack:///./node_modules/downshift/node_modules/react-is/index.js","webpack:///./node_modules/lodash/toFinite.js","webpack:///./app/javascript/constants/BrandColours.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./app/javascript/components/shared/elements/BreedSelector/components/BreedQuestionaire/index.tsx","webpack:///./node_modules/@wry/trie/lib/trie.esm.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/toInteger.js","webpack:///./node_modules/lodash/_trimmedEndIndex.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/date-fns/esm/differenceInSeconds/index.js","webpack:///./app/javascript/utils/times.ts","webpack:///./node_modules/handlebars/dist/cjs/handlebars/utils.js","webpack:///./app/javascript/static_content/dropdownOptions.ts","webpack:///./app/javascript/components/shared/elements/RoughCostCalculator/components/AgeSelect.tsx","webpack:///./app/javascript/utils/uniqBy.ts","webpack:///./app/javascript/components/shared/elements/RoughCostCalculator/components/WeightSelect.tsx","webpack:///./node_modules/@wry/context/lib/context.esm.js","webpack:///./node_modules/optimism/lib/bundle.esm.js","webpack:///./node_modules/lodash/_baseFlatten.js","webpack:///./app/javascript/components/shared/elements/BreedSelector/queries/homeBreedSelectorQuery.ts","webpack:///./app/javascript/components/shared/elements/BreedSelector/components/BreedQuestionaire/BreedQuestionnaire.tsx","webpack:///./app/javascript/components/shared/elements/BreedSelector/components/ExpandableIconButton/ExpandableIconButton.tsx","webpack:///./app/javascript/utils/wizardCtaLink.ts","webpack:///./app/javascript/components/shared/elements/RoughCostCalculator/components/CTA.tsx","webpack:///./node_modules/@apollo/client/errors/index.js","webpack:///./node_modules/@material-ui/core/esm/styles/createBreakpoints.js","webpack:///./node_modules/@material-ui/core/esm/styles/createMixins.js","webpack:///./node_modules/@material-ui/core/esm/colors/common.js","webpack:///./node_modules/@material-ui/core/esm/colors/grey.js","webpack:///./node_modules/@material-ui/core/esm/colors/indigo.js","webpack:///./node_modules/@material-ui/core/esm/colors/pink.js","webpack:///./node_modules/@material-ui/core/esm/colors/red.js","webpack:///./node_modules/@material-ui/core/esm/colors/orange.js","webpack:///./node_modules/@material-ui/core/esm/colors/blue.js","webpack:///./node_modules/@material-ui/core/esm/colors/green.js","webpack:///./node_modules/@material-ui/core/esm/styles/colorManipulator.js","webpack:///./node_modules/@material-ui/core/esm/styles/createPalette.js","webpack:///./node_modules/@material-ui/core/esm/styles/createTypography.js","webpack:///./node_modules/@material-ui/core/esm/styles/shadows.js","webpack:///./node_modules/@material-ui/core/esm/styles/shape.js","webpack:///./node_modules/@material-ui/system/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@material-ui/system/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@material-ui/system/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@material-ui/system/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@material-ui/system/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@material-ui/system/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@material-ui/system/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@material-ui/system/esm/merge.js","webpack:///./node_modules/@material-ui/system/esm/breakpoints.js","webpack:///./node_modules/@material-ui/system/esm/spacing.js","webpack:///./node_modules/@material-ui/system/esm/memoize.js","webpack:///./node_modules/@material-ui/core/esm/styles/createSpacing.js","webpack:///./node_modules/@material-ui/core/esm/styles/transitions.js","webpack:///./node_modules/@material-ui/core/esm/styles/zIndex.js","webpack:///./node_modules/@material-ui/core/esm/styles/createTheme.js","webpack:///./node_modules/lodash/_baseClone.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/@apollo/client/react/hooks/useSyncExternalStore.js","webpack:///./node_modules/@apollo/client/react/hooks/useQuery.js","webpack:///./node_modules/lodash/compact.js","webpack:///./node_modules/@apollo/client/utilities/globals/maybe.js","webpack:///./app/javascript/components/shared/elements/InjectedMarkupText/index.ts","webpack:///./node_modules/@apollo/client/utilities/common/objects.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/react-i18next/dist/es/unescape.js","webpack:///./node_modules/react-i18next/dist/es/context.js","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/lodash/_arrayIncludes.js","webpack:///./node_modules/lodash/_arrayIncludesWith.js","webpack:///./node_modules/lodash/_baseFor.js","webpack:///./app/javascript/components/shared/elements/Image/index.ts","webpack:///./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack:///./app/assets/images/icons/paws/paw-yellow-alt.svg","webpack:///./app/assets/images/icons/arrows/arrow--white.svg","webpack:///./node_modules/handlebars/dist/cjs/handlebars/exception.js","webpack:///./node_modules/@apollo/client/react/hooks/useLazyQuery.js","webpack:///./app/javascript/components/shared/CookieConsent/Modals/CookieConsentModal.tsx","webpack:///./node_modules/node-libs-browser/node_modules/buffer/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/lodash/assign.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/cloneDeep.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/lodash/_arrayEach.js","webpack:///./node_modules/lodash/_baseAssign.js","webpack:///./node_modules/lodash/_baseAssignIn.js","webpack:///./node_modules/lodash/_baseKeysIn.js","webpack:///./node_modules/lodash/_nativeKeysIn.js","webpack:///./node_modules/lodash/_copySymbols.js","webpack:///./node_modules/lodash/_copySymbolsIn.js","webpack:///./node_modules/lodash/_getAllKeysIn.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./node_modules/lodash/_initCloneArray.js","webpack:///./node_modules/lodash/_initCloneByTag.js","webpack:///./app/javascript/services/apollo.ts","webpack:///./node_modules/lodash/_cloneDataView.js","webpack:///./node_modules/lodash/_cloneRegExp.js","webpack:///./node_modules/lodash/_cloneSymbol.js","webpack:///./node_modules/lodash/_baseCreate.js","webpack:///./node_modules/lodash/isMap.js","webpack:///./node_modules/lodash/_baseIsMap.js","webpack:///./node_modules/lodash/isSet.js","webpack:///./node_modules/lodash/_baseIsSet.js","webpack:///./node_modules/lodash/difference.js","webpack:///./node_modules/lodash/_baseDifference.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/lodash/_baseFindIndex.js","webpack:///./node_modules/lodash/_baseIsNaN.js","webpack:///./node_modules/lodash/_strictIndexOf.js","webpack:///./node_modules/lodash/_isFlattenable.js","webpack:///./node_modules/lodash/functions.js","webpack:///./node_modules/lodash/_baseFunctions.js","webpack:///./node_modules/lodash/includes.js","webpack:///./node_modules/lodash/values.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack:///./node_modules/lodash/_baseValues.js","webpack:///./node_modules/lodash/isElement.js","webpack:///./node_modules/lodash/merge.js","webpack:///./node_modules/lodash/_baseMerge.js","webpack:///./node_modules/lodash/_createBaseFor.js","webpack:///./node_modules/lodash/_baseMergeDeep.js","webpack:///./node_modules/lodash/toPlainObject.js","webpack:///./node_modules/lodash/trim.js","webpack:///./node_modules/lodash/_charsEndIndex.js","webpack:///./node_modules/lodash/_charsStartIndex.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack:///./app/javascript/components/shared/elements/RoughCostCalculator/components/BreedSelect.tsx","webpack:///./app/javascript/components/shared/elements/RoughCostCalculator/helpers/roughCostCalculatorHelpers.ts","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack:///./node_modules/@apollo/client/utilities/common/maybeDeepFreeze.js"],"names":["_extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","_assign","assign","t","s","i","n","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","pop","push","__spreadArray","to","from","pack","ar","l","slice","concat","ordinality","lng","Error","supportedLanguages","resources","en","app","ENData","dynamic","surveys","learn_more_about_butternut","shared","frequently_asked_questions","reviews","account","homepage","home_page","contacts","our_products","our_story","making_our_meals","wizard_flow","self_resolution_flow","customer_issue_management_flow","plans_flow","simplified_plans_flow","ds_app_pay_on_signup_flow","checkout","thank_you","models","product_categories","post_signup_wizard","dashboard","shipping_countries","calories_covered","text_field","footer","navigation","unavailable_dates_card","expert","paid_traffic_breeds","paid_traffic","breed_autocomplete","one_time_purchase_footer","order_summary","languages","localisation_modal","plan_management","onboarding_quiz","product_modal","gql_errors","archive_reasons","care","orders","order","butternut_app","atoms","molecules","organisms","one_off_box_page","swap_and_save","limited_offer_paused_page","treatments_paused_page","ribbon","blog","ambassadors","modals","nl","NLData","NLBeData","nl_BE","pl","PLData","invoices","PLPLData","pl_PL","fr","FRData","CSCZData","cs_CZ","DEDEData","de_DE","namespaceToPath","ns","dateLocale","locale","enGB","nlBE","de","ensureNever","development","process","phraseBackendEnabled","Cookies","get","remove","pseudolocaliseCookie","convertLanguageToKebabCase","fallbackLanguage","initI18n","pseudolocalise","phraseEnabled","i18n","isInitialized","on","document","dispatchEvent","CustomEvent","detail","use","Pseudo","enabled","languageToPseudo","letterMultiplier","initReactI18next","init","defaultNS","react","hashTransKey","fallbackLng","debug","saveMissing","supportedLngs","missingKeyHandler","lngs","key","Sentry","map","join","interpolation","format","toUpperCase","StringHelper","formatDate","escapeValue","postProcess","load","global","namespace","includes","fullKey","split","context","SUPPORT_COLOURS","supportBlue100","supportBlue200","supportBlue300","supportBlue400","supportBlue500","successGreen100","successGreen200","successGreen300","successGreen400","successGreen500","dangerRed100","dangerRed200","dangerRed300","dangerRed400","dangerRed500","warningOrange100","warningOrange200","warningOrange300","warningOrange400","warningOrange500","grey100","grey200","grey300","grey400","grey500","grey600","shadowYellow","date","token","signedYear","getUTCFullYear","year","addLeadingZeros","M","month","getUTCMonth","getUTCDate","a","dayPeriodEnumValue","getUTCHours","h","H","m","getUTCMinutes","getUTCSeconds","S","numberOfDigits","milliseconds","getUTCMilliseconds","fractionalSeconds","Math","floor","pow","MILLISECONDS_IN_DAY","dayPeriodEnum","G","localize","era","width","ordinalNumber","unit","lightFormatters","Y","options","signedWeekYear","getUTCWeekYear","weekYear","twoDigitYear","R","isoWeekYear","getUTCISOWeekYear","u","Q","quarter","ceil","q","L","w","week","getUTCWeek","I","isoWeek","getUTCISOWeek","D","dayOfYear","dirtyDate","requiredArgs","toDate","timestamp","getTime","setUTCMonth","setUTCHours","startOfYearTimestamp","difference","getUTCDayOfYear","E","dayOfWeek","getUTCDay","day","localDayOfWeek","weekStartsOn","c","isoDayOfWeek","dayPeriod","toLowerCase","hours","B","K","k","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","z","originalDate","T","offset","dirtyDelimiter","sign","absOffset","abs","minutes","delimiter","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","dirtyOptions","formatStr","localeFirstWeekContainsDate","firstWeekContainsDate","defaultFirstWeekContainsDate","toInteger","RangeError","localeWeekStartsOn","defaultWeekStartsOn","formatLong","isValid","getTimezoneOffsetInMilliseconds","utcDate","subMilliseconds","formatterOptions","match","substring","firstCharacter","longFormatter","longFormatters","cleanEscapedString","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","input","replace","isArray","module","exports","_extends","bind","target","source","buildLocalizeFn","args","dirtyIndex","valuesArray","formattingValues","defaultWidth","defaultFormattingWidth","_defaultWidth","_width","values","argumentCallback","for","r","$$typeof","type","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","SuspenseList","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isSuspenseList","isValidElementType","getModuleId","typeOf","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","err","name","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","_excluded","_excluded2","ownKeys","enumerableOnly","keys","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","SkeletonThemeContext","createContext","SkeletonTheme","_ref","children","styleOptions","createElement","Provider","defaultEnableAnimation","Skeleton","_ref3","_a","_b","count","wrapper","Wrapper","className","customClassName","containerClassName","containerTestId","circle","style","styleProp","propsStyleOptions","useContext","_ref2","baseColor","highlightColor","height","borderRadius","direction","duration","enableAnimation","styleOptionsToCssProperties","inline","elements","skeletonSpan","el","useMutation","mutation","client","Mutation","called","loading","setResult","ref","mutationId","isMounted","current","execute","executeOptions","baseOptions","ignoreResults","error","data","clientOptions","mutate","response","_c","errors","graphQLErrors","result_1","onCompleted","catch","_d","result_2","onError","reset","buildFormatLongFn","formats","full","long","medium","short","time","dateTime","code","formatDistance","formatRelative","buildMatchFn","undefined","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findIndex","pattern","test","findKey","valueCallback","rest","predicate","ApolloContext","Consumer","__DEV__","withApollo","WrappedComponent","copyContext","baseClass","preferredLanguage","currentUserType","screenIdentifier","discountValue","discountBasis","shippingCountryCode","showImage","windowWidth","useWindowSize","useTranslation","isDesktop","BREAKPOINTS","lg","description","planType","text","alt","slug","image","resizeMode","freeGlobal","freeSelf","self","root","Function","useTheme","_setPrototypeOf","o","initGoogleClickIdentifierSession","gclid","URLSearchParams","window","search","sessionStorage","setItem","playVideosOnScroll","querySelectorAll","video","muted","playPromise","play","IntersectionObserver","entries","entry","isIntersecting","pause","observe","required","trackEvent","eventName","properties","defaultProperties","screen_identifier","pathname","dynamicDefaultTrackEventPropertiesVar","analytics","track","theme","createTheme","breakpoints","Base","background","isUndefined","STYLES","BreedSelectorVariant","BreedSelector","scrollToOnFocus","isPreWizardGuest","ctaDestination","variant","Generic","selectedBreed","setSelectedBreed","useState","breedSelectorRef","useRef","onOpenCallback","useCallback","linkCTADestination","component_identifier","breed","segmentTrack","href","onFocusCallback","topOffset","getBoundingClientRect","top","pageYOffset","setTimeout","scrollTo","behavior","onBreedSelection","matchingPopularBreed","popularBreeds","set","JSON","stringify","id","parseInt","isPopular","Homepage","onClickCTA","events","onListOpen","onFocus","onInputEmpty","loadingPlaceholder","placeholder","embeddedCTA","DocumentType","cache","Map","operationName","Query","Subscription","verifyDocumentType","operation","variables","cached","kind","fragments","queries","mutations","subscriptions","_i","definitions","definition","variableDefinitions","payload","parser","requiredOperationName","usedOperationName","_typeof","toPrimitive","arg","__esModule","RafCampaignModal","RafModal","Product","Team","captureException","message","extra","logLevel","tags","scope","setExtras","level","setLevel","setTags","captureMessage","instance","Constructor","toPropertyKey","_defineProperties","descriptor","protoProps","staticProps","Image","lazyLoad","src","imageParams","retina","urlBuilder","Date","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","_classCallCheck","_possibleConstructorReturn","assertThisInitialized","_getPrototypeOf","getPrototypeOf","_inherits","subClass","superClass","consoleLogger","log","output","warn","console","Logger","concreteLogger","prefix","logger","_len","_key","forward","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","moduleName","baseLogger","EventEmitter","observers","listener","_this","event","cloned","observer","_cloned","defer","res","rej","promise","makeString","getLastOfPath","path","Empty","cleanKey","canNotTraverseDeeper","stack","shift","setPath","newValue","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","prop","regexEscape","str","_entityMap","isIE10","navigator","userAgent","deepFind","keySeparator","paths","j","mix","joinedPath","_EventEmitter","ResourceStore","ignoreJSONStructure","index","splice","silent","addNamespaces","emit","toString","addResource","deep","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","postProcessor","processors","addPostProcessor","handle","translator","processor","checkedLoadedFor","Translator","services","language","resolved","nsSeparator","namespaces","interpolator","nestingRegexp","parts","lastKey","_this2","overloadTranslationOptionHandler","_this$extractFromKey","extractFromKey","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","copy","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValue","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","fk","fallbackLngs","languageUtils","getFallbackCodes","saveMissingTo","toResolveHierarchy","send","fallbackValue","backendConnector","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","parse","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","nb","defaultVariables","interpolate","na","nest","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","_this4","extracted","fallbackNS","needsContextHandling","codes","utils","hasLoadedNamespace","pluralSuffix","possibleKey","finalKey","finalKeys","addLookupKeys","contextSeparator","returnNull","returnEmptyString","resourceStore","option","capitalize","charAt","LanguageUtil","whitelist","formatLanguageCode","specialCases","lowerCaseLng","part","cleanCode","deprecate","isSupportedCode","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","lngOnly","find","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","Number","createRules","rules","numbers","plurals","PluralResolver","rule","getRule","idx","noAbs","simplifyPluralSuffix","returnSuffix","prepend","compatibilityJSON","Interpolator","iOpts","escape","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","RegExp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","val","handleFormat","interpolationkey","trim","missingInterpolationHandler","regex","safeValue","todo","exec","temp","lastIndex","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","formatters","doReduce","elem","reduce","Connector","backend","store","state","queue","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","loaded","addResourceBundle","_getLastOfPath2","arr","what","fcName","tried","wait","read","queueLoad","loadOne","prepareLoading","_this5","isUpdate","initImmediate","nonExplicitWhitelist","preload","pluralSeparator","partialBundledLanguages","ret","tDescription","_format","transformOptions","noop","I18n","modules","external","isClone","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","finish","initializedStoreOnce","changeLanguage","usedCallback","append","isLanguageChangingTo","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","async","detect","keyPrefix","fixedT","opts","resultKey","_this$translator","_this$translator2","exists","_this6","lastLng","loadNotPending","loadState","precheck","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","clone","membersToCopy","i18next","inspect","formatValue","seenValues","previouslySeenValues","customInspectFn","getCustomFn","customValue","len","min","remaining","items","formatArray","tag","getObjectTag","formatObject","formatObjectValue","globalThis","addMilliseconds","dirtyAmount","amount","nodejsCustomInspectSymbol","canUseWeakMap","WeakMap","product","canUseWeakSet","WeakSet","canUseSymbol","canUseAsyncIteratorSymbol","asyncIterator","canUseDOM","usingJSDOM","canUseLayoutEffect","CloudPath","VideoElement","React","onPlay","autoPlay","loop","playsInline","controls","poster","cloudName","publicId","mode","quality","crop","gravity","controlsList","disablepictureinpicture","innerRef","fetchFormat","dpr","aspectRatio","allowedHtmlElement","accent","InjectedMarkupText","allowedElements","markup","isMobile","md","rafCampaignModalIsMounted","setRafCampaignModalIsMounted","rafCampaignModalIsOpen","setRafCampaignModalIsOpen","closeRafCampaignModal","classList","rafCampaignModalData","referrerName","referrerDogNames","referrerDogNumber","nextBoxDiscountValue","useMemo","refereeNextBoxDiscountBasis","refereeNextBoxDiscountValue","currency","countryCodeToLocaleCurrency","percentageValue","formatCurrencyWithoutDecimal","headingCopy","useEffect","add","closeModal","extraClasses","modalIsOpen","modalSize","showCloseButton","transitionTypes","desktop","mobile","onClick","rafModalIsMounted","setRafModalIsMounted","rafModalIsOpen","setRafModalIsOpen","copy_context","closeRafModal","rafModalData","RafModalContent","referralLinkType","rafMessage","profession","companyName","refereeDiscountMessage","devicePixelRatio","AmbassadorReferralLinkContent","capitalise","chars","word","referrerNameProfession","companyNameProfession","some","ClientReferralLinkContent","referrerNames","isDate","isNaN","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_createForOfIteratorHelperLoose","allowArrayLike","it","minLen","_arrayLikeToArray","_unsupportedIterableToArray","arr2","_createClass","hasSymbols","hasSymbol","Boolean","getSymbol","observable","SymbolIterator","SymbolObservable","SymbolSpecies","getMethod","getSpecies","ctor","Observable","isObservable","hostReportError","enqueue","fn","cleanupSubscription","subscription","cleanup","_cleanup","unsubscribe","closeSubscription","_observer","_queue","_state","notifySubscription","onNotify","flushSubscription","subscriber","subscriptionObserver","SubscriptionObserver","_subscription","_proto2","complete","_subscriber","_proto3","subscribe","C","hasSeed","hasValue","seed","acc","first","sources","startNext","flatMap","outer","inner","completeIfDone","closed","method","_step","_iterator","item","of","getFragmentQueryDocument","fragmentName","actualFragmentName","selectionSet","selections","createFragmentMap","symTable","fragment","getFragmentFromSelection","selection","fragmentMap","makeReference","__ref","valueToObjectRepresentation","argObj","isIntValue","isFloatValue","isBooleanValue","isStringValue","isObjectValue","nestedArgObj_1","fields","isVariable","variableValue","isListValue","listValue","nestedArgArrayObj","isEnumValue","isNullValue","KNOWN_DIRECTIVES","getStoreKeyName","fieldName","directives","filterKeys","sort","filteredArgs_1","completeFieldName","stringifiedArgs","setStringify","previous","stringifyReplacer","argumentsObjectFromField","field","argObj_1","resultKeyNameFromField","alias","getTypenameFromResult","__typename","isField","typename","isInlineFragment","checkDocument","doc","operations","getOperationDefinition","getOperationName","getFragmentDefinitions","getQueryDefinition","queryDef","getMainDefinition","queryDoc","fragmentDefinition","getDefaultValues","defaultValues","defs","def","variable","passthrough","toLink","handler","isTerminating","link","request","_super","LinkError","ApolloLink","empty","links","left","right","leftLink","rightLink","starting","createOperation","transformedOperation","extensions","query","transformOperation","OPERATION_FIELDS","validateOperation","second","firstLink","nextLink","setOnError","QueryDocumentKeys","Name","Document","OperationDefinition","VariableDefinition","Variable","SelectionSet","Field","Argument","FragmentSpread","InlineFragment","FragmentDefinition","IntValue","FloatValue","StringValue","BooleanValue","NullValue","EnumValue","ListValue","ObjectValue","ObjectField","Directive","NamedType","ListType","NonNullType","SchemaDefinition","OperationTypeDefinition","ScalarTypeDefinition","ObjectTypeDefinition","FieldDefinition","InputValueDefinition","InterfaceTypeDefinition","UnionTypeDefinition","EnumTypeDefinition","EnumValueDefinition","InputObjectTypeDefinition","DirectiveDefinition","SchemaExtension","ScalarTypeExtension","ObjectTypeExtension","InterfaceTypeExtension","UnionTypeExtension","EnumTypeExtension","InputObjectTypeExtension","BREAK","freeze","visit","visitor","visitorKeys","inArray","edits","parent","ancestors","newRoot","isLeaving","isEdited","_i2","_Object$keys2","editOffset","ii","editKey","editValue","prev","_visitorKeys$node$kin","visitFn","getVisitFn","kindVisitor","kindSpecificVisitor","leave","enter","specificVisitor","specificKindVisitor","shouldInclude","directive","isInclusionDirective","directiveArguments","directiveName","ifArgument","ifValue","getInclusionDirectives","every","evaledValue","hasDirectives","names","all","nameSet","Set","uniqueCount","size","delete","serialized","parseError","selectURI","fallbackURI","contextURI","getContext","uri","nodeStreamIterator","stream","waiting","onData","chunk","shiftedArr","pair","onEnd","removeListener","canUse","readerIterator","reader","responseIterator","isAsyncIterableIterator","getReader","isReadableStream","isStreamableBlob","arrayBuffer","isBlob","promiseIterator","pipe","isNodeReadableStream","throwServerError","statusCode","status","parseHeaders","headerText","headersInit","line","name_1","parseJsonBody","bodyText","getResult","handleError","parseAndCheckHttpResponse","fetcher","fetch","ast","printDocASTReducer","varDefs","wrap","block","argsLine","indent","_ref4","_ref5","_ref6","typeCondition","_ref7","_ref8","_ref9","_ref10","_ref11","_ref12","_ref13","_ref14","_ref15","_ref16","_ref17","_ref18","_ref19","addDescription","_ref20","operationTypes","_ref21","_ref22","_ref23","interfaces","_ref24","hasMultilineItems","_ref25","_ref26","_ref27","types","_ref28","_ref29","_ref30","_ref31","repeatable","locations","_ref32","_ref33","_ref34","_ref35","_ref36","_ref37","_ref38","cb","maybeArray","_maybeArray$filter$jo","separator","start","maybeString","end","isMultiline","fallbackHttpConfig","http","includeQuery","includeExtensions","preserveHeaderCase","headers","accept","defaultPrinter","printer","selectHttpOptionsAndBodyInternal","configs","config","credentials","removeDuplicateHeaders","normalizedHeaders_1","headerData","originalName","normalizedHeaders","createSignalIfSupported","AbortController","controller","signal","fromError","errorValue","backupFetch","linkOptions","preferredFetch","print","useGETForQueries","includeUnusedVariables","requestOptions","linkConfig","fetchOptions","chosenURI","clientAwarenessHeaders","clientAwareness","version","contextHeaders","contextConfig","unusedNames_1","_controller","queryParams","addQueryParam","encodeURIComponent","serializedVariables","serializedExtensions","preFragment","fragmentStart","substr","queryParamsPrefix","newURI","rewriteURIForGET","setContext","ctype","decoder","contentType","boundaryVal","boundary","buffer","running","bi","contentType_1","_e","_f","TextDecoder","decode","readMultipartBody","readJsonBody","abort","HttpLink","mergeDeep","mergeDeepArray","merger","merge","defaultReconciler","property","DeepMerger","reconciler","isObject","pastCopies","sourceKey","targetValue","shallowCopyForMerge","has","hasOwn","isNullish","defaultDataIdFromObject","_id","keyObject","defaultConfig","dataIdFromObject","addTypename","resultCaching","canonizeResults","shouldCanonizeResults","TypeOrFieldNameRegExp","fieldNameFromStoreName","storeFieldName","selectionSetMatchesResult","storeValueIsStoreObject","extractFragmentContext","lookupFragment","lookup","stringifyCanon","stringifyCache","ObjectCanon","known","pool","passes","keysByJSON","admit","isKnown","pass","shallowCopy","original","lookupArray","proto_1","array_1","sortedKeys","json","firstValueIndex_1","sorted","obj_1","canonicalStringify","resetCanonicalStringify","canonical","asyncMap","mapFn","catchFn","_complete","activeCallbackCount","completed","promiseQueue","makeCallback","examiner","delegate","both","caught","sub","graphQLResultHasError","filterInPlace","TYPENAME_FIELD","isEmpty","nullIfDocIsEmpty","fragmentDef","getFragmentDefinition","getDirectiveMatcher","dir","removeDirectivesFromDocument","variablesInUse","variablesToRemove","fragmentSpreadsInUse","fragmentSpreadsToRemove","modifiedDoc","getAllFragmentSpreadsFromSelectionSet","frag","argMatcher","argument","aConfig","getArgumentMatcher","varDef","argConfig","argMatchCount_1","removeArgumentsFromDocument","fs","removeFragmentSpreadFromDocument","addTypenameToDocument","lastIndexOf","added","connectionRemoveConfig","willRemove","allFragments","buildQueryFromSelectionSet","prefixCounts","makeUniqueId","random","iterateObserversSafely","observersWithMethod","obs","fixObservableSubclass","subclass","species","isPromiseLike","Concast","addObserver","removeObserver","handlers","latest","notify","_error","nextResultListeners","cancel","reason","iterable","deliverLastMessage","nextOrError","beforeNext","cloneDeep","cloneDeepHelper","seen","copy_1","child","copy_2","ObservableQuery","queryManager","queryInfo","subObserver","defaultSubscriptionObserverErrorCallback","last","reobserve","tearDownQuery","isTornDown","defaultOptions","watchQuery","fetchPolicy","defaultFetchPolicy","initialFetchPolicy","queryId","generateQueryId","opDef","queryName","transform","removeQuery","getCurrentResult","saveAsLastResult","lastResult","getLastResult","networkStatus","ready","hasForcedResolvers","diff","getDiff","returnPartialData","partial","partialRefetch","logMissingFieldErrors","missing","updateLastResult","isDifferentFromLastResult","newResult","getLast","variablesMustMatch","getLastError","resetLastResults","resetQueryStoreErrors","resetErrors","refetch","reobserveOptions","pollInterval","vars","resetLastWrite","fetchMore","fetchMoreOptions","combinedOptions","qid","originalNetworkStatus","notifyOnNetworkStatusChange","updatedQuerySet","fetchQuery","fetchMoreResult","batch","update","updateQuery","optimistic","writeQuery","onWatchUpdated","watch","finally","reobserveCacheFirst","subscribeToMore","startGraphQLSubscription","subscriptionData","setOptions","newOptions","setVariables","broadcastQueries","startPolling","updatePolling","stopPolling","applyNextFetchPolicy","nextFetchPolicy","newNetworkStatus","setObservableQuery","fetchQueryObservable","ssrMode","pollingInfo","interval","maybeFetch","poll","info","clearTimeout","timeout","assumeImmutableResults","useDisposableConcast","oldVariables","oldFetchPolicy","compact","concast","reportResult","reportError","lastError","errorResult","hasObservers","clear","stopQuery","obsQuery","_nextFetchPolicy","LocalState","resolvers","fragmentMatcher","addResolvers","setFragmentMatcher","resolverGroup","setResolvers","getResolvers","runResolvers","remoteResult","onlyRunForcedResolvers","resolveDocument","localResult","getFragmentMatcher","clientQuery","serverQuery","removeClientSetsFromDocument","prepareContext","getCacheKey","identify","addExportedVariables","buildRootValueFromCache","exportedVariables","shouldForceResolvers","forceResolvers","rootValue","mainDefinition","definitionOperation","defaultOperationType","execContext","resolveSelectionSet","resultsToMerge","resolveField","fieldResult","fragmentResult","aliasedFieldName","aliasUsed","defaultResult","resultPromise","resolverType","resolverMap","withValue","resolveSubSelectedArray","destructiveMethodCounts","wrapDestructiveCacheMethod","methodName","cancelNotifyTimeout","QueryInfo","listeners","lastRequestId","stopped","dirty","observableQuery","lastDiff","networkError","getDiffOptions","updateWatch","oq","updateLastDiff","setDiff","oldDiff","notifyTimeout","oqListener","fromOptimisticTransaction","shouldNotify","stop","watchOptions","watcher","lastWatch","lastWrite","shouldWrite","dmCount","markResult","cacheWriteBehavior","incremental","mergedData_1","merger_1","parent_1","shouldWriteResult","errorPolicy","performTransaction","diffOptions","markReady","markError","ignoreErrors","writeWithErrors","EntityStore","Root","QueryManager","queryDeduplication","onBroadcast","localState","fetchCancelFns","transformCache","queryIdCounter","requestIdCounter","mutationIdCounter","inFlightLinkObservables","mutationStore","_info","stopQueryNoBroadcast","cancelPendingFetches","optimisticResponse","updateQueries","refetchQueries","awaitRefetchQueries","updateWithProxyFn","onQueryUpdated","_g","keepRootFields","_h","hasClientExports","mutationStoreValue","_j","generateMutationId","transformForLink","getVariables","markMutationOptimistic","getObservableFromLink","storeResult","markMutationResult","removeOptimistic","cacheWrites","skipCache","dataId","updateQueries_1","updater","currentQueryResult","nextQueryResult","mutationResult","queryVariables","results_1","updateCache","write","asQuery","modify","DELETE","include","recordOptimisticTransaction","getQueryStore","transformed","transformDocument","noConnection","cacheEntry_1","defaultVars","generateRequestId","stopQueryInStore","stopQueryInStoreNoBroadcast","clearStore","discardWatches","getObservableQueries","queryNamesAndDocs","legacyQueryOptions","desc","getQuery","included","nameOrDoc","reFetchObservableQueries","includeStandby","observableQueryPromises","makeObservable","observablePromise_1","getLocalState","deduplication","inFlightLinkObservables_1","forceFetch","byVariables_1","varJson_1","getResultsFromLink","requestId","linkDocument","incrementalResult","hasErrors","aqr","defaults","normalized","fromVariables","concastSources","fetchQueryByPolicy","cleanupCancelFn","includedQueriesById","results","refetchWritePolicy","oldNetworkStatus","readCache","resultsFromCache","fromData","resultsFromLink","newContext","hasSuggestedDevtools","ApolloClient","resetStoreCallbacks","clearStoreCallbacks","ssrForceFetchDelay","connectToDevTools","__APOLLO_CLIENT__","typeDefs","clientAwarenessName","clientAwarenessVersion","disableNetworkFetches","resetStore","__APOLLO_DEVTOOLS_GLOBAL_HOOK__","nav","ua","url","devToolsHookCb","action","dataWithOptimisticResults","extract","mergeOptions","readQuery","readFragment","writeFragment","__actionHookForDevTools","__requestRaw","onResetStore","onClearStore","restore","serializedState","setLocalStateFragmentMatcher","setLink","newLink","ApolloCache","getFragmentDoc","updateResult","optimisticId","transaction","gc","rootId","_update","updateFragment","_update2","MissingFieldError","delModifier","INVALIDATE","policies","group","rootIds","refs","getFieldValue","objectOrReference","maybeDeepFreeze","canRead","objOrRef","toReference","objOrIdOrRef","mergeIntoStore","toObject","depend","storeObject","rootTypenamesById","dependOnExistence","older","newer","existing","incoming","merged","storeObjectReconciler","caching","fieldsToDirty_1","__exists","hasKeyArgs","changedFields_1","needToMerge_1","allDeleted_1","sharedDetails_1","isReference","readField","fieldNameOrOptions","fieldValue","storage","getStorage","getStoreFieldName","evict","limit","evicted","extraRootIds","getRootIdSet","__META","newData","rest_1","retain","release","ids","snapshot","findChildRefIds","idsToRemove","root_1","found_1","workSet_1","makeCacheKey","keyMaker","CacheGroup","resetCaching","makeDepKey","maybeDependOnExistenceOfEntity","entityId","supportsResultCaching","stump","storageTrie","addLayer","layerId","replay","removeLayer","Layer","ownStoreObject","parentStoreObject","fromParent","Stump","existingObject","incomingObject","existingValue","incomingValue","execSelectionSetKeyArgs","StoreReader","knownResults","canon","executeSelectionSet","peekArgs","other","peek","enclosingRef","execSelectionSetImpl","max","resultCacheMaxSize","keyArgs","varString","executeSubSelectedArray","execSubSelectedArrayImpl","resetCanon","diffQueryAgainstStore","rootRef","execResult","firstMissing","isFresh","objectsToMerge","missingMerger","handleMissing","resultName","rootIdsByTypename","workSet","FRAGMENT_SPREAD","fragmentMatches","finalResult","frozen","childResult","getTypenameFromStoreObject","assertSelectionSetForIdValue","tree","specifierInfoCache","lookupSpecifierInfo","spec","cacheKey","keyFieldsFnFromSpecifier","specifier","keyFieldsFn","collectSpecifierPaths","schemaKeyPath","extractKeyPath","extractKey","keyArgsFnFromSpecifier","keyArgsFn","collected","keyPath","firstKey","firstChar","variableName","varKeyPath","directiveName_1","directiveArgs","extractor","getSpecifierPaths","toMerge","paths_1","currentPath_1","normalize","reducer","argsFromFieldSpecifier","nullKeyFieldsFn","simpleKeyArgsFn","_args","mergeTrueFn","mergeObjects","mergeFalseFn","Policies","typePolicies","toBeAdded","supertypeMap","fuzzySubtypes","usingPossibleTypes","setRootTypename","possibleTypes","addPossibleTypes","addTypePolicies","partialContext","ROOT_QUERY","normalizeReadFieldOptions","policy","getTypePolicy","keyFn","specifierOrId","queryType","mutationType","subscriptionType","updateTypePolicy","keyFields","setMerge","getFieldPolicy","which","old","supertype","getSupertypeSet","subtype","policy_1","supertypes","inbox","createIfMissing","fieldPolicies","supertypeSet","typenameSupertypeSet","workQueue_1","maybeEnqueue_1","needToCheckFuzzySubtypes","checkingFuzzySubtypes","regExp","fuzzyString","fieldSpec","specifierOrString","directivesObj","storeKeyNameFromField","readOptions","makeFieldFunctionOptions","getReadFunction","getMergeFunction","parentTypename","childTypename","runMergeFunction","makeMergeObjectsFunction","readFieldArgs","undefId","argc","eType","iType","getContextFlavor","clientOnly","flavored","flavors","StoreWriter","writeToStore","operationDefinition","written","incomingById","processSelectionSet","mergeTree","fieldNodeSet","entityRef","applied","applyMerges","fieldsWithSelectionSets_1","hasSelectionSet_1","childTree","hasMergeFunction_1","existingRef","incomingObj","getChild","parentType","typeDotName","warnings","childTypenames","warnAboutDataLoss","flattenFields","resultFieldKey","getChildMergeTree","processFieldValue","maybeRecycleChildMergeTree","dataRef","previous_1","mergeMergeTrees","mergeTreeIsEmpty","fieldMap","limitingTrie","flatten","inheritedContext","visitedNode","visited","if","getStorageArgs","e_1","i_1","getValue_1","eVal","iVal","aVal","emptyMergeTreePool","needToMergeMaps","remainingRightKeys_1","leftTree","InMemoryCache","watches","typenameDocumentCache","makeVar","txCount","normalizeConfig","rootStore","optimisticData","resetResultCache","resetResultIdentities","previousReader","storeReader","storeWriter","maybeBroadcastWatch","broadcastWatch","broadcast","broadcastWatches","immediate","forget","idToRemove","newOptimisticData","_onWatchUpdated","perform","layer","alreadyDirty","OperationBatcher","batchDebounce","batchInterval","batchMax","batchHandler","batchKey","batchesByKey","enqueueRequest","requestCopy","subscribers","isFirstEnqueuedRequest","isFirstSubscriber","scheduleQueueConsumption","consumeQueue","forwards","observables","nexts","completes","batchedObservable","rejecters","scheduledBatchTimer","BatchLink","fetchParams","batcher","BatchHttpLink","optsAndBody","loadedBody","errorHandler","retriedSub","retriedResult","ErrorLink","RetryableOperation","delayFor","retryIf","retryCount","canceled","currentSubscription","onNext","onComplete","scheduleRetry","try","timerId","delay","RetryLink","attempts","delayOptions","initial","jitter","Infinity","baseDelay","buildDelayFunction","retryOptions","buildRetryFunction","retryable","offsetLimitPagination","csrfMeta","querySelector","batchLink","getAttribute","retryLink","apolloLinks","User","ordersByDate","Meal","dateLongFormatter","timeLongFormatter","dateTimeFormat","datePattern","timePattern","startOfUTCWeekYear","firstWeek","startOfUTCWeek","MILLISECONDS_IN_WEEK","round","startOfUTCISOWeekYear","fourthOfJanuary","startOfUTCISOWeek","getRawTag","objectToString","symToStringTag","toStringTag","targetLength","uglifiedAlphabet","A","F","J","N","U","V","W","Z","vowels","_ref$languageToPseudo","_ref$letterMultiplier","_ref$repeatedLetters","repeatedLetters","_ref$uglifedLetterObj","uglifedLetterObject","_ref$wrapped","wrapped","_ref$enabled","letters","configurePseudo","shouldWrap","bracketCount","processedValue","letter","repeat","useApolloClient","override","argStr","NaN","Account","Activity","Affiliate","AgeClassificationByUserWhenCreated","ApplicableDiscountPartDiscount","ApplicableDiscountPartDiscountBasis","ArchivedType","AuthenticationStrategy","AvailablePlansScopeType","BodyShape","BoxKind","Code","Currency","CurrentFood","CustomerIssueEntryFieldData","CustomerIssueEntryFieldSelectionFormat","CustomerIssueEntryFieldTypesAssociationAssociationType","CustomerIssueEntryFieldTypesAssociationDisplayType","CustomerIssueEntryFieldTypesBooleanDisplayType","CustomerIssueEntryFieldTypesIntegerDisplayType","CustomerIssueEntryFieldTypesMultifieldDisplayType","CustomerIssueEntryFieldTypesStringDisplayType","CustomerIssueManagementInputFieldAssociationAssociationType","CustomerIssueManagementInputFieldAssociationDisplayType","CustomerIssueManagementInputFieldBooleanDisplayType","CustomerIssueManagementInputFieldDataType","CustomerIssueManagementInputFieldIntegerDisplayType","CustomerIssueManagementInputFieldMultifieldDisplayType","CustomerIssueManagementInputFieldSelectionFormat","CustomerIssueManagementInputFieldStringDisplayType","CustomerIssueManagementReportable","CustomerIssueManagementReporterable","CustomerIssueManagementResolutionResolutionType","CustomerIssueResolutionDetailsTypeField","CustomerIssueResolutionKey","CustomerIssueResolutionResolution","Descriptor","DiscountCodePartDiscount","DiscountCodePartDiscountBasis","Eater","Exercise","FavouriteGame","FeedingGuidelinesUsed","Food","FooterColumn","Frequency","Gender","Group","InputPaymentMethod","IntentType","InvoiceStatus","Key","Language","MarketingPreferences","MutationMessage","NonCoreInvoiceStatus","NonPaymentReason","Payment","PaymentMethodType","PaymentMethodable","PaymentResourceType","RecipeSurchargeCalculation","Serving","SnackingHabit","Status","SubscriptionStatus","Trait","TypeOfPlan","UnavailableObjectReason","VariantDelivery","formatMuiErrorMessage","dedentBlockStringValue","rawString","lines","commonIndent","_commonIndent","isFirstLine","isEmptyLine","charCodeAt","getBlockStringIndentation","startLine","isBlank","endLine","printBlockString","indentation","preferMultipleLines","isSingleLine","hasLeadingSpace","hasTrailingQuote","hasTrailingSlash","printAsMultipleLines","SYMBOL_TO_STRING_TAG","genericMessage","proto","InvariantError","framesToPop","invariant","condition","verbosityLevels","verbosityLevel","wrapConsoleMethod","GLOBAL_KEY","maybe","DEV","_interopRequireDefault","_handlebarsRuntime2","_handlebarsCompilerAst2","_handlebarsCompilerBase","_handlebarsCompilerCompiler","_handlebarsCompilerJavascriptCompiler2","_handlebarsCompilerVisitor2","_handlebarsNoConflict2","_create","hb","compile","precompile","AST","Compiler","JavaScriptCompiler","Parser","parseWithoutProcessing","inst","Visitor","isPlainObject","deepmerge","useBoolean","setValue","toggle","setTrue","setFalse","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","title","browser","env","argv","versions","addListener","once","off","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","hint","prim","Kind","NAME","DOCUMENT","OPERATION_DEFINITION","VARIABLE_DEFINITION","SELECTION_SET","FIELD","ARGUMENT","INLINE_FRAGMENT","FRAGMENT_DEFINITION","VARIABLE","INT","FLOAT","STRING","BOOLEAN","NULL","ENUM","LIST","OBJECT","OBJECT_FIELD","DIRECTIVE","NAMED_TYPE","LIST_TYPE","NON_NULL_TYPE","SCHEMA_DEFINITION","OPERATION_TYPE_DEFINITION","SCALAR_TYPE_DEFINITION","OBJECT_TYPE_DEFINITION","FIELD_DEFINITION","INPUT_VALUE_DEFINITION","INTERFACE_TYPE_DEFINITION","UNION_TYPE_DEFINITION","ENUM_TYPE_DEFINITION","ENUM_VALUE_DEFINITION","INPUT_OBJECT_TYPE_DEFINITION","DIRECTIVE_DEFINITION","SCHEMA_EXTENSION","SCALAR_TYPE_EXTENSION","OBJECT_TYPE_EXTENSION","INTERFACE_TYPE_EXTENSION","UNION_TYPE_EXTENSION","ENUM_TYPE_EXTENSION","INPUT_OBJECT_TYPE_EXTENSION","baseIsNative","getValue","WonkyText","allowed","rotatedWord","char","minWidth","applyRotation","isFunction","isLength","currentContext","MISSING_VALUE","idCounter","ignored","globalKey","globalHost","Slot","now","context_1","slots","saved","noContext","DOMParser","parseFromString","wrapMarkup","childNodes","splitDeclaration","declaration","cssText","capturing","declarations","unshift","splitDeclarations","styles","startsWith","p1","standardProps","reactProps","attrs","_standardProps$get","_attrs$i","isHTMLTagName","nodesToElements","nodeList","nodeName","nodeType","replacement","attributes","textContent","_ref$allowed","_ref$markup","_ref$replace","_ref$trim","propTypes","TransitionalModal","super","withBackdrop","addEventListener","closeModalListener","onResizeModals","onresize","setState","renderClassNames","onClose","removeEventListener","documentElement","clientWidth","sm","HTMLElement","contains","useCustomCloseButton","customCloseButtonContent","modalClose","CloseButton","checkTransitionType","scale","opacity","backdropOpacity","modalState","transition","getTransitionType","stiffness","damping","defaultStyle","interpolated","formatted","spring","modalClasses","checkWindowResize","render","interpolateStyles","renderCloseButton","dirtyNumber","thunk","safeGlobal","needToRemove","NODE_ENV","contextKey","getApolloContext","displayName","localTheme","outerTheme","mergeOuterLocalTheme","devAssert","Source","locationOffset","column","isSource","arrayLikeKeys","baseKeys","isArrayLike","baseGetTag","Text","margin","bold","colour","align","shouldScale","wonky","underline","hideOverflow","uppercase","strikeThrough","tight","dataTestId","translatedText","Handlebars","textToDisplay","classnames","nomargin","_s","_x","_r","_arr","_n","arrayLikeToArray","factory","OldCookies","api","noConflict","extend","decodeURIComponent","converter","expires","toUTCString","stringifiedAttributes","attributeName","cookie","jar","cookies","getJSON","withConverter","assignValue","baseAssignValue","customizer","isNew","roughCostCalculatorLocalStorage","localStorage","getItem","parsedState","age","weight","interactedWithAge","dogDetailsState","DogDetailsForm","breedSelectRef","onBreedFocusCallback","fullWidth","dogDetails","useReactiveVar","HandlebarsEnvironment","_utils","_exception2","_helpers","_decorators","_logger2","_internalProtoAccess","VERSION","COMPILER_REVISION","LAST_COMPATIBLE_COMPILER_REVISION","REVISION_CHANGES","objectType","helpers","partials","decorators","registerDefaultHelpers","registerDefaultDecorators","registerHelper","unregisterHelper","registerPartial","unregisterPartial","registerDecorator","unregisterDecorator","resetLoggedPropertyAccesses","resetLoggedProperties","createFrame","ConsentModeValue","isEqual","keysA","keysB","thirdPartyCookies","analyticsOnly","marketingOnly","thirdPartyLocalStorageItems","deleteCookies","domain","host","deleteLocalStorageItems","removeItem","initMarketingCookies","initFBPixel","initAnalyticsCookies","marketing","initSentry","initSegment","updateConsentMode","consentMode","functionality_storage","granted","denied","security_storage","ad_storage","analytics_storage","personalization_storage","ad_user_data","ad_personalization","gtag","dataLayer","cookieConsentBannerElement","getElementById","cookieConsentLocalStorageItem","initCookieConsent","CountryCode","DE","Variant","Strict","Default","cookieConsentLocalStorateItem","consent","consentAccepted","applyPreferences","preferences","previousConsentLocalStorageItem","previousConsent","page","startTime","scroll","endTime","differenceInSeconds","trackCookiePreferences","component","Component","Null","Context","Scrolled","ReactDOM","CookieConsent","cookieConsentModalState","visible","cookieConsentBannerState","triggerCookieConsentModal","differenceInMilliseconds","dateLeft","dateRight","roundingMap","trunc","getRoundingMethod","declension","scheme","one","rem100","rem10","twoFour","declensionGroup","formatDistanceLocale","lessThanXSeconds","regular","past","future","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","adjectivesLastWeek","masculine","feminine","adjectivesThisWeek","adjectivesNextWeek","dayGrammaticalGender","getAdjectives","baseDate","dirtyDateLeft","dirtyDateRight","dateLeftStartOfWeek","dateRightStartOfWeek","isSameUTCWeek","dayAndTimeWithAdjective","adjective","getAdjective","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","addSuffix","comparison","buildMatchPatternFn","parsePattern","_date","_baseDate","_options","standalone","withPreposition","tokenValue","monthValues","formattingMonthValues","_console","alreadyWarned","warnOnce","loadNamespaces","initialized","oldI18nextHasLoadedNamespace","bindI18n","isNewerI18next","i18nInstance","ignore","i18nFromProps","i18nFromContext","defaultNSFromContext","reportNamespaces","notReadyT","retNotReady","i18nOptions","useSuspense","addUsedNamespaces","getT","getFixedT","nsMode","_useState","_useState2","setT","joinedNS","previousJoinedNS","bindI18nStore","boundReset","isInitial","secondPerFrame","destX","precision","newV","newX","reusedTuple","getNanoSeconds","hrtime","loadTime","performance","hr","vendors","raf","caf","_now","cp","cancelled","polyfill","requestAnimationFrame","cancelAnimationFrame","currentStyle","currentVelocity","styleValue","CookieConsentBanner","cookieConsentBanner","isBannerVisible","setIsBannerVisible","closeBanner","handleOnClose","actionToCookieConsent","Action","Accepted","Banner","Close","handleOnManageClick","None","manageCookiesClicked","handleOnAcceptClick","GotIt","CloseIcon","ManageModal","setShowStrictModal","handleModalClose","functionalCookies","setFunctionalCookies","marketingCookies","setMarketingCookies","cookieType","handleOnAcceptAll","Modal","AcceptAll","updateLocalStateFromLocalStorage","cookieConsent","cookieConsentJson","handleOnChange","handleOnCancel","handleOnSave","Saved","SaveChanges","dangerouslySetInnerHTML","__html","privacyUrl","countryCodeToPrivacyUrl","onChange","checked","allowedFunctionality","cookieConsentLocalStorageKey","Cancelled","Deny","StrictModal","handleOnDeny","handleOnManage","checkPixelIntersection","pixel","setAttribute","position","marginTop","appendChild","dropIntersectionPixel","disconnect","_interopRequire","_Motion","Motion","_StaggeredMotion","StaggeredMotion","_TransitionMotion","TransitionMotion","_spring","_presets","presets","_stripStyle","stripStyle","_reorderKeys","reorderKeys","clientHeight","scrollHeight","scrollWidth","_o","getComputedStyle","overflowY","overflowX","ownerDocument","defaultView","frameElement","parentElement","getRootNode","SuppressedError","menuNode","actions","scrollMode","skipOverflowHiddenElements","scrollingElement","visualViewport","innerWidth","innerHeight","scrollX","scrollY","bottom","parseFloat","scrollMarginTop","scrollMarginRight","scrollMarginBottom","scrollMarginLeft","_t","_l","borderLeftWidth","borderTopWidth","_p","borderRightWidth","_W","borderBottomWidth","_T","_B","_F","offsetWidth","_V","offsetHeight","scrollLeft","_t2","scrollTop","_h2","isOrContainsNode","environment","Node","debounce","timeoutId","callAllEventHandlers","fns","preventDownshiftDefault","nativeEvent","handleRefs","generateId","getState","prevState","isControlledProp","normalizeArrowKey","keyCode","getHighlightedIndex","isItemDisabled","circular","itemsLastIndex","highlightedIndex","getNonDisabledIndex","backwards","_index","targetWithinDownshift","downshiftElements","checkActiveElement","contextNode","activeElement","cleanupStatus","documentProp","getStatusDiv","statusDiv","border","clip","overflow","padding","setStatus","dropdownDefaultStateValues","isOpen","selectedItem","inputValue","callOnChangeProps","newState","changes","capitalizeString","invokeOnChangeHandler","onStateChange","updateA11yStatus","useIsomorphicLayoutEffect","labelId","menuId","getItemId","toggleButtonId","inputId","reactId","useId","_ref2$id","getItemAndIndex","itemProp","indexProp","errorMessage","useLatestRef","useEnhancedReducer","createInitialState","isStateEqual","prevStateRef","actionRef","enhancedReducer","stateReducer","_useReducer","dispatch","propsRef","dispatchWithProps","useControlledReducer$1","_useEnhancedReducer","defaultProps$3","itemToString","itemToKey","scrollIntoView","getDefaultValue$1","propKey","defaultStateValues","getInitialValue$1","initialValue","getInitialState$2","getInitialHighlightedIndex","getHighlightedIndexOnOpen","initialHighlightedIndex","defaultHighlightedIndex","useMouseAndTouchTracker","handleBlur","downshiftElementsRefs","mouseAndTouchTrackersRef","isMouseDown","isTouchMove","isTouchEnd","onMouseDown","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","useGetterPropsCalledChecker","useA11yMessageStatus","getA11yStatusMessage","dependencyArray","isInitialMount","useIsInitialMount","useScrollIntoView","itemRefs","getItemNodeFromIndex","menuElement","scrollIntoViewProp","shouldScrollRef","useControlPropsValidator","getChangesOnSelection","_props$items","isDropdownsStateEqual","isInitialMountRef","getDefaultHighlightedIndex","commonPropTypes","commonDropdownPropTypes","defaultIsOpen","initialIsOpen","initialSelectedItem","defaultSelectedItem","onSelectedItemChange","onHighlightedIndexChange","onIsOpenChange","downshiftCommonReducer","stateChangeTypes","ItemMouseMove","disabled","MenuMouseLeave","ToggleButtonClick","FunctionToggleMenu","FunctionOpenMenu","FunctionCloseMenu","FunctionSetHighlightedIndex","FunctionSetInputValue","FunctionReset","defaultProps$2","validatePropTypes$2","stateChangeTypes$2","FunctionSelectItem","ItemClick","ToggleButtonBlur","ToggleButtonKeyDownArrowDown","ToggleButtonKeyDownArrowUp","ToggleButtonKeyDownCharacter","ToggleButtonKeyDownEnd","ToggleButtonKeyDownEnter","ToggleButtonKeyDownEscape","ToggleButtonKeyDownHome","ToggleButtonKeyDownPageDown","ToggleButtonKeyDownPageUp","ToggleButtonKeyDownSpaceButton","downshiftSelectReducer","altKey","lowercasedKey","keysSoFar","lowerCasedKeysSoFar","offsetIndex","getItemIndexByCharacterKey","_excluded$2","_excluded2$2","_excluded3$1","_excluded4$1","useSelect","userProps","_useControlledReducer","toggleButtonRef","menuRef","clearTimeoutRef","elementIds","outerDispatch","focus","mouseAndTouchTrackers","setGetterPropCallInfo","toggleButtonKeyDownHandlers","ArrowDown","preventDefault","ArrowUp","Home","End","Escape","Enter","PageUp","PageDown","currentState","toggleMenu","closeMenu","openMenu","setHighlightedIndex","newHighlightedIndex","selectItem","newSelectedItem","setInputValue","newInputValue","getLabelProps","_temp","labelProps","htmlFor","_toggleButtonRef$curr","getMenuProps","_temp2","_temp3","_extends2","onMouseLeave","_ref2$refKey","refKey","_ref3$suppressRefErro","suppressRefError","role","getToggleButtonProps","_temp4","_temp5","_extends3","onBlur","onPress","onKeyDown","_ref4$refKey","_ref5$suppressRefErro","latestState","toggleProps","toggleButtonNode","tabIndex","isAcceptedCharacterKey","getItemProps","_temp6","_extends4","onMouseMove","_ref6$refKey","disabledProp","_latest$current","latestProps","_getItemAndIndex","itemProps","itemNode","stateChangeTypes$1","ControlledPropUpdatedSelectedItem","InputBlur","InputChange","InputClick","InputKeyDownArrowDown","InputKeyDownArrowUp","InputKeyDownEnd","InputKeyDownEnter","InputKeyDownEscape","InputKeyDownHome","InputKeyDownPageDown","InputKeyDownPageUp","getInitialState$1","initialState","defaultInputValue","initialInputValue","onInputValueChange","validatePropTypes$1","defaultProps$1","downshiftUseComboboxReducer","_excluded$1","_excluded2$1","_excluded3","_excluded4","useCombobox","previousSelectedItemRef","useControlledReducer","inputRef","previousResultCountRef","_inputRef$current","inputKeyDownHandlers","_ref$refKey","_ref2$suppressRefErro","_ref3$refKey","customClickHandler","_ref5$refKey","getInputProps","_extends5","onInput","onChangeText","_ref7$suppressRefErro","_eventHandlers","eventHandlers","isBlurByTabChange","relatedTarget","inputNode","autoComplete","activeIndex","selectedItems","getInitialValue","getDefaultValue","getInitialState","isKeyDownOperationPermitted","shiftKey","metaKey","ctrlKey","HTMLInputElement","selectionStart","selectionEnd","defaultProps","keyNavigationNext","keyNavigationPrevious","validatePropTypes","DropdownClick","DropdownKeyDownBackspace","DropdownKeyDownNavigationPrevious","FunctionAddSelectedItem","FunctionRemoveSelectedItem","FunctionSetActiveIndex","FunctionSetSelectedItems","SelectedItemClick","SelectedItemKeyDownBackspace","SelectedItemKeyDownDelete","SelectedItemKeyDownNavigationNext","SelectedItemKeyDownNavigationPrevious","downshiftMultipleSelectionReducer","newActiveIndex","_newActiveIndex","selectedItemIndex","useMultipleSelection","dropdownRef","selectedItemRefs","selectedItemKeyDownHandlers","Delete","Backspace","dropdownKeyDownHandlers","getSelectedItemProps","selectedItemProp","isFocusable","selectedItemNode","getDropdownProps","_ref4$preventKeyActio","preventKeyAction","dropdownNode","addSelectedItem","removeSelectedItem","setSelectedItems","newSelectedItems","setActiveIndex","baseKeysIn","isObjectLike","Button","typography","typographyProps","displayText","icon","skeleton","disabledOnClick","disableAnalytics","identifier","trackDisabledPresses","smallPadding","pressed","setPressed","setUnpressed","variantToTextColor","sizeToButtonHeight","iconPositionToClass","formattedPosition","handleTrackEvent","componentIdentifier","handleOnClick","handleOnPressed","handleOnUnpressed","handleKeyDown","handleKeyUp","isLoading","button","onKeyUp","iconOnly","buttonText","NetworkStatus","isNetworkRequestInFlight","later","customRef","breeds","setBreeds","toggleIconButton","setToggleIconButton","findBreeds","useLazyQuery","HOME_BREED_SELECTOR_QUERY","debouncedFindBreeds","mixedBreed","popular","otherBreed","actionAndChanges","actionAndChangesType","onInputFocus","showResults","ExpandableIconButton","fnToStr","previousComparisons","equal","check","fromIndex","aTag","previouslyCompared","aKeys","definedKeys","bKeys","keyCount","aIterator","isMap","aKey","aValue","Uint8Array","byteLength","aCode","nativeCodeSuffix","isDefinedKey","bSet","objects","isNonEmptyArray","LocalisationDisplay","activeShippingCountries","widgetLocation","setModalIsOpen","modalIsMounted","setModalIsMounted","toggleModal","widget_location","triggerLocalisationAnalytics","currentCountryCode","getCountryCode","currentLanguage","getLanguage","getCountryFlag","getCountryName","countryCode","getLanguageShortName","countryCodeToDefaultCurrencySymbol","iteratee","webpackPolyfill","isDevelopment","hostname","Analytics","analyticsBackend","interactionEventProperties","extraProperties","few","many","accusativeWeekdays","pluralToken","timeToken","suffixExist","objectProto","Ctor","_helpersBlockHelperMissing2","_helpersEach2","_helpersHelperMissing2","_helpersIf2","_helpersLog2","_helpersLookup2","_helpersWith2","moveHelperToHooks","helperName","keepHelper","hooks","methodMap","lookupLevel","levelMap","createProtoAccessControl","runtimeOptions","defaultMethodWhiteList","defaultPropertyWhiteList","_createNewLookupObject","createNewLookupObject","allowedProtoProperties","allowProtoPropertiesByDefault","methods","allowedProtoMethods","allowProtoMethodsByDefault","resultIsAllowed","protoAccessControl","propertyName","checkWhiteList","loggedProperties","newObj","_interopRequireWildcard","protoAccessControlForType","logUnexpecedPropertyAccessOnce","$Handlebars","helperExpression","params","hash","scopedId","simpleId","depth","fromEntries","_exception","parents","visitSubExpression","mustache","acceptRequired","acceptArray","acceptKey","visitBlock","visitPartial","mutating","Program","program","MustacheStatement","Decorator","BlockStatement","DecoratorBlock","PartialStatement","PartialBlockStatement","ContentStatement","CommentStatement","SubExpression","PathExpression","StringLiteral","NumberLiteral","BooleanLiteral","UndefinedLiteral","NullLiteral","Hash","pairs","HashPair","IntersectionObserverEntry","intersectionRatio","startDoc","frame","getFrameElement","registry","crossOriginUpdater","crossOriginRect","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","_setupCrossOriginUpdater","boundingClientRect","intersectionRect","convertFromParentRect","_checkForIntersections","_resetCrossOriginUpdater","_observationTargets","_registerInstance","_monitorIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","_unmonitorAllIntersections","takeRecords","records","_queuedEntries","_initThresholds","opt_threshold","threshold","_parseRootMargin","opt_rootMargin","margins","win","_monitoringDocuments","monitoringInterval","domObserver","setInterval","addEvent","MutationObserver","childList","characterData","subtree","_monitoringUnsubscribes","clearInterval","removeEvent","rootDoc","hasDependentTargets","itemDoc","unsubscribes","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","targetRect","rootContainsTarget","_rootContainsTarget","oldEntry","_computeTargetAndRootIntersection","rootBounds","newEntry","_hasCrossedThreshold","_callback","display","rect1","rect2","getParentNode","atRoot","parentRect","parentComputedStyle","frameRect","frameIntersect","isDoc","html","_expandRectByRootMargin","rect","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","ensureDOMRect","targetArea","intersectionArea","toFixed","opt_options","timer","rootMargin","opt_useCapture","attachEvent","detatchEvent","parentBoundingRect","parentIntersectionRect","parentNode","assignedSlot","default","baseToString","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","eq","nativeCreate","getNative","isKeyable","__data__","baseFindIndex","baseIsNaN","strictIndexOf","BreedCard","sanitisedNamePlural","lngStringToLngType","pronounContext","genders","toLocalisedSentence","oxfordComma","lastName","allButLastName","possessive","endsWith","possessivePronoun","capitaliseFirstLetter","noWobble","gentle","wobbly","stiff","defineInspect","classObject","toJSON","Location","startToken","endToken","Token","isNode","maybeNode","parseResult","countryCodeToDefaultCurrency","countryCodeToLocale","defaultCurrency","defaultCurrencySymbol","currencySymbol","localeToDateLocale","languageToSanitisedLocale","cs","countrySpecificInstagramLink","countrySpecificFacebookLink","countrySpecificTikTokLink","rv","probablySameValue","onNextChange","DEFAULT_OPTIONS","formatCurrencyWithDecimal","toLocaleString","maximumFractionDigits","minimumFractionDigits","dataContainer","HomePage","dataset","isPrewizardGuest","discountFirstPartValue","shouldSeeNewHeroImage","shouldSeeStickyCta","initWonkyTitleText","elementClassName","titleText","wonkyTextElements","getElementsByClassName","wonkyTextElementArray","trackSectionViewed","elementId","hasTracked","roughCostCalculatorElement","initRoughCostCalculator","initGeoIpWidget","desktopNav","mobileSidebar","contentTagElementId","breedSelectorElement","BreedSelectorComponent","initBreedSelector","rafModalElement","referrerRafCampaignName","RafCampaignModalComponent","RafModalComponent","initRafModal","pos","mouseMoveHandler","clientX","mouseUpHandler","cursor","removeProperty","userSelect","clientY","draggableCarousel","stickyCTA","freshFoodSection","initStickyCTA","isClient","getSize","windowHeight","windowSize","setWindowSize","handleResize","baseIsArguments","isArguments","stubFalse","freeExports","freeModule","Buffer","isBuffer","DataView","toSource","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ArrayBuffer","ctorString","arrayMap","isSymbol","symbolProto","symbolToString","reHasUnicode","objValue","languageCookiesKey","triggerLocalisationWidgetAnalytics","newLanguage","newCountryCode","temporaryLanguage","setTemporaryLanguage","temporaryShippingCountry","setTemporaryShippingCountry","countryOptionsAreVisible","setCountryOptionsAreVisible","languageOptionsAreVisible","setLanguageOptionsAreVisible","useQuery","USER_TYPE_QUERY","saveLanguage","SAVE_LANGUAGE_MUTATION","saveLanguagePostWizard","cookieOptions","closeDropdowns","sanitisePolishLanguage","handleSavePreWizard","languageUpdated","countryUpdated","saveLanguageAndCountry","handleSavePostWizard","currentUser","country","availableLanguages","defaultLanguage","shouldShowLanguageDropdown","getLanguageName","getLocation","lineRegexp","printLocation","printSourceLocation","sourceLocation","firstLineColumnOffset","whitespace","lineIndex","lineOffset","lineNum","columnOffset","columnNum","locationStr","locationLine","subLineIndex","subLineColumnNum","subLines","printPrefixedLines","subLine","existingLines","padLen","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","_construct","Parent","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","_Error","GraphQLError","Derived","hasNativeReflectConstruct","Super","NewTarget","nodes","positions","originalError","_nodeLocations","_nodeLocations2","_nodeLocations3","undefinedIfEmpty","nodeLocations","_this$nodes","loc","originalExtensions","captureStackTrace","_i4","_error$nodes2","_i6","_error$locations2","printError","syntaxError","TokenKind","SOF","EOF","BANG","DOLLAR","AMP","PAREN_L","PAREN_R","SPREAD","COLON","EQUALS","AT","BRACKET_L","BRACKET_R","BRACE_L","PIPE","BRACE_R","BLOCK_STRING","COMMENT","DirectiveLocation","QUERY","MUTATION","SUBSCRIPTION","SCHEMA","SCALAR","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","Lexer","startOfFileToken","lastToken","lineStart","_proto","advance","lookahead","_token$next","readToken","printCharCode","fromCharCode","lexer","bodyLength","_line","_col","readComment","readBlockString","readString","readNumber","readName","unexpectedCharacterMessage","col","firstCode","isFloat","readDigits","isNameStart","chunkStart","charCode","char2hex","invalidSequence","rawValue","sourceObj","_lexer","parseName","expectToken","parseDocument","parseDefinition","parseOperationDefinition","parseFragmentDefinition","parseTypeSystemDefinition","parseTypeSystemExtension","peekDescription","unexpected","parseSelectionSet","parseOperationType","parseVariableDefinitions","parseDirectives","operationToken","optionalMany","parseVariableDefinition","parseVariable","parseTypeReference","expectOptionalToken","parseValueLiteral","parseSelection","parseFragment","parseField","nameOrAlias","parseArguments","isConst","parseConstArgument","parseArgument","hasTypeCondition","expectOptionalKeyword","parseFragmentName","parseNamedType","_this$_options","expectKeyword","experimentalFragmentVariables","parseList","parseObject","parseStringLiteral","parseObjectField","parseDirective","keywordToken","parseSchemaDefinition","parseScalarTypeDefinition","parseObjectTypeDefinition","parseInterfaceTypeDefinition","parseUnionTypeDefinition","parseEnumTypeDefinition","parseInputObjectTypeDefinition","parseDirectiveDefinition","parseDescription","parseOperationTypeDefinition","parseImplementsInterfaces","parseFieldsDefinition","_this$_options2","allowLegacySDLImplementsInterfaces","delimitedMany","_this$_options3","allowLegacySDLEmptyFields","parseFieldDefinition","parseArgumentDefs","parseInputValueDef","parseUnionMemberTypes","parseEnumValuesDefinition","parseEnumValueDefinition","parseInputFieldsDefinition","parseSchemaExtension","parseScalarTypeExtension","parseObjectTypeExtension","parseInterfaceTypeExtension","parseUnionTypeExtension","parseEnumTypeExtension","parseInputObjectTypeExtension","parseDirectiveLocations","parseDirectiveLocation","_this$_options4","noLocation","getTokenKindDesc","getTokenDesc","atToken","openKind","parseFn","closeKind","delimiterKind","isPunctuatorTokenKind","docCache","fragmentSourceMap","printFragmentWarnings","processFragments","seenKeys","sourceKeySet","parsed","allowLegacyFragmentVariables","stripLoc","gql","literals","gql_1","extras","resetCaches","disableFragmentWarnings","enableExperimentalFragmentVariables","disableExperimentalFragmentVariables","LanguageOption","setNewLanguage","LanguageWidget","languageOptions","handleClick","BlueArrow","languageA","languageB","languageAName","languageBName","localeCompare","CountryOption","setCountryLocation","currentDomain","RegionWidget","countryOptions","fetchSupportedShippingCountriesRequest","csrfToken","Accept","ok","shippingCountries","active","fetchActiveShippingCountries","requestResult","contentTagElement","geoIpWidgetElement","initGeoIpWidgetDesktopNav","initGeoIpWidgetMobileSidebar","_inheritsLoose","camelCase$1","camelCase","withCamelCaseKeys","CLOUDINARY_REACT_PROPS","VIDEO_MIME_TYPES","flv","mov","mpg","avi","wmv","ogv","AUDIO_MIME_TYPES","m4a","wav","m3u","mp3","aif","aifc","aiff","CLOUDINARY_PROPS","PARAM_NAMES","accumulator","cloudinaryPropName","getConfiguredCloudinary","extendedProps","withSnakeCaseKeys","getImageTag","tagType","makeElementResponsive","img","snakeCaseOptions","cld","cloudinary_update","responsive","extractCloudinaryProps","cloudinaryProps","nonCloudinaryProps","cloudinaryReactProps","camelKey","isCloudinaryComponent","isValidElement","normalizeOptions","getChildTransformations","Children","toArray","childOptions","transformation","getTransformation","accessibility","ownTransformation","tr","childrenOptions","advancedTransformations","CloudinaryContextType","CloudinaryComponent","_PureComponent","_props","_context","onIntersect","isInView","getExtendedProps","attachRef","configParams","typesFrom","contextType","CloudinaryContext","_CloudinaryComponent","_extractCloudinaryPro","includeOwnBody","RESPONSIVE_OVERRIDE_WARNING","isResponsive","_this$getExtendedProp","getOptions","shouldLazyLoad","getAttributes","additionalOptions","imageTag","dataSrc","attr","detectIntersection","getPlaceholderType","removePlaceholderListener","placeholderElement","listenerRemovers","removeImgListener","handleImageLoaded","onLoad","isLoaded","renderPlaceholder","placeholderAttributes","renderImage","getChildPlaceholder","componentDidMount","componentDidUpdate","componentWillUnmount","Transformation","exposesProps","Video","mimeType","mimeSubTypes","getMergedProps","generateVideoUrl","childTransformations","sourceTransformations","sourceType","urlOptions","resource_type","generateUsingSourceTypes","sourceTypes","toSourceTag","buildMimeType","generateUsingSources","_ref$transformations","transformations","codecs","getVideoTagProps","_this$getMergedProps","_this$getMergedProps$","sourceTransformation","tagAttributes","videoTag","sourceElements","reloadVideo","_this$props","fallback","_this$getVideoTagProp","DEFAULT_VIDEO_PARAMS","source_types","Audio","_Video","Placeholder","freeProcess","nodeUtil","require","arrayFilter","stubArray","nativeGetSymbols","getSymbols","getPrototype","overArg","funcProto","funcToString","objectCtorString","typesWithId","cacheSlot","cacheInfoMap","getCacheInfo","dep","forgetCache","recallCache","attachCache","caches","oldListeners","attach","reIsUint","baseSlice","asciiToArray","hasUnicode","unicodeToArray","trimmedEndIndex","reTrimStart","setUTCDate","nativeObjectToString","isOwn","unmasked","base","_handlebarsSafeString2","_handlebarsException2","Utils","runtime","SafeString","Exception","escapeExpression","VM","template","inverse","each","contextPath","appendContextPath","priorKey","execIteration","blockParams","conditional","includeZero","lookupProperty","_decoratorsInline2","_decoratorsInline","container","toHTML","checkRevision","compilerInfo","compilerRevision","currentRevision","_base","runtimeVersions","compilerVersions","templateSpec","main","decorator","main_d","compiler","templateWasPrecompiledWithCompilerV7","strict","depths","lambda","invokePartial","resolvePartial","extendedOptions","compilerOptions","programs","declaredBlockParams","programWrapper","wrapProgram","_parent","mergeIfNeeded","param","common","nullContext","seal","_setup","useData","initData","useBlockParams","useDepths","executeDecorators","isTop","mergedHelpers","helper","_internalWrapHelper","wrapHelper","passLookupPropertyOption","wrapHelpersToPassLookupProperty","usePartial","useDecorators","keepHelperInHelpers","allowCallsToHelperMissing","_child","currentPartialBlock","partialBlock","prog","currentDepths","transformOptionsFn","_whitespaceControl2","_parser2","Helpers","yy","locInfo","SourceLocation","srcName","handlebars","trace","symbols_","terminals_","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","prepareProgram","stripComment","strip","stripFlags","prepareRawBlock","prepareBlock","open","chained","chain","prepareMustache","preparePartialBlock","preparePath","table","defaultActions","vstack","lstack","recovering","setInput","yylloc","yyloc","ranges","preErrorSymbol","expected","yyval","lex","errStr","showPosition","first_line","last_line","first_column","last_column","range","_input","_more","_less","matched","conditionStack","ch","unput","oldLines","more","less","pastInput","upcomingInput","pre","tempMatch","_currentRules","flex","matches","begin","popState","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","_visitor","_visitor2","WhitespaceControl","isPrevWhitespace","isRoot","sibling","isNextWhitespace","omitRight","multiple","rightStripped","omitLeft","leftStripped","doStandalone","ignoreStandalone","isRootSeen","_isPrevWhitespace","_isNextWhitespace","openStandalone","closeStandalone","inlineStandalone","close","firstInverse","lastInverse","openStrip","closeStrip","inverseStrip","comment","dig","isLiteral","escapeFlag","escaped","openRawBlock","contents","validateClose","openBlock","inverseAndProgram","inverted","statements","firstLoc","lastLoc","errorNode","compat","compiled","compileInput","execOptions","setupOptions","_ast2","argEquals","transformLiteralToPath","sexpr","literal","equals","opcodes","opcode","otherOpcode","guid","sourceNode","stringParams","trackIds","knownHelpers","helperMissing","blockHelperMissing","unless","compileProgram","isSimple","classifySexpr","helperSexpr","simpleSexpr","ambiguousSexpr","setupFullMustacheParams","explicitPartialContext","partialName","isDynamic","preventIndent","noEscape","content","isBlock","knownHelpersOnly","falsy","addDepth","scoped","blockParamId","blockParamIndex","pushParam","isBlockParam","isHelper","isEligible","_name","pushParams","blockParamChild","omitEmpty","_codeGen2","Literal","nameLookup","internalNameLookup","depthedLookup","aliasable","revision","appendToBuffer","explicit","initializeBuffer","quotedString","lookupPropertyFunctionIsUsed","asObject","isChild","environments","preamble","stackSlot","stackVars","aliases","registers","list","hashes","compileStack","inlineStack","compileChildren","currentLocation","pushSource","lookupPropertyFunctionVarDeclaration","createFunctionContext","objectLiteral","toStringWithSourceMap","file","destName","lastContext","varDeclarations","locals","aliasCount","referenceCount","mergeSource","appendOnly","forceBuffer","appendFirst","sourceSeen","bufferStart","bufferEnd","blockValue","contextName","setupHelperArgs","blockName","popStack","functionCall","ambiguousBlockValue","flushInline","topStack","lastHelper","appendContent","pendingContent","pendingLocation","isInline","replaceStack","local","appendEscaped","pushContext","pushStackLiteral","lookupOnContext","resolvePath","lookupBlockParam","lookupData","assumeObjects","requireTerminal","strictLookup","resolvePossibleLambda","pushStringParam","pushString","emptyHash","pushHash","contexts","popHash","pushLiteral","pushProgram","programExpression","paramSize","foundDecorator","invokeHelper","nonHelper","setupHelper","possibleFunctionCalls","functionLookupCode","itemsSeparatedBy","callParams","invokeKnownHelper","invokeAmbiguous","helperCall","useRegister","paramsInit","setupParams","assignToHash","pushId","matchExistingProgram","programParams","expr","createdStack","usedLiteral","incrStack","topStackName","blockHelper","objectArgs","hashIds","hashTypes","hashContexts","generateArray","reservedWords","compilerWords","RESERVED_WORDS","isValidJavaScriptVariableName","SourceNode","castChunk","codeGen","CodeGen","srcFile","chunks","iter","generateList","ThemeContext","baseIsTypedArray","baseUnary","nodeIsTypedArray","isTypedArray","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","basset_hound","beagle","border_collie","boxer","bulldog","cavalier_king_charles_spaniel","cavapoo_cavalier_king_charles_spaniel_poodle_mix","chihuahua","cockapoo_cocker_spaniel_poodle_mix","cocker_spaniel","dachshund","dobermann","french_bulldog","german_shepherd","golden_retriever","goldendoodle_golden_retriever_poodle_mix","jack_russell_terrier","labradoodle_labrador_retriever_poodle_mix","labrador_retriever","maltese","maltipoo_maltese_poodle_mix","mini_american_shepherd","miniature_dachshund","pembroke_welsh_corgi","pomeranian","pug","shih_tzu","sprocker","staffordshire_bull_terrier","tibetan_terrier","vizsla","west_highland_white_terrier","whippet","classNames","classes","appendClass","parseValue","newClass","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","_mapToZero2","_stripStyle2","_stepper4","_performanceNow2","_raf2","_shouldStopAnimation2","_react2","_propTypes2","msPerFrame","_React$Component","wasAnimating","animationID","prevTime","accumulatedTime","unreadPropStyle","clearUnreadPropStyle","destStyle","lastIdealStyle","lastIdealVelocity","startAnimationIfNecessary","propsStyle","onRest","currentTime","timeDelta","currentFrameCompletion","framesToCatchUp","newLastIdealStyle","newLastIdealVelocity","newCurrentStyle","newCurrentVelocity","newLastIdealStyleValue","newLastIdealVelocityValue","_stepper","_stepper2","nextIdealX","nextIdealV","defaultState","componentWillReceiveProps","renderedChildren","only","moduleLoadTime","nodeLoadTime","upTime","uptime","unreadPropStyles","currentStyles","currentVelocities","lastIdealStyles","lastIdealVelocities","someDirty","destStyles","shouldStopAnimationAll","newLastIdealStyles","newLastIdealVelocities","newCurrentStyles","newCurrentVelocities","defaultStyles","_mergeDiff2","rehydrateStyles","mergedPropsStyles","plainStyles","cUnreadPropStyles","mergedPropsStyle","mergeAndSync","willEnter","willLeave","didLeave","oldMergedPropsStyles","oldCurrentStyles","oldCurrentVelocities","oldLastIdealStyles","oldLastIdealVelocities","newMergedPropsStyles","oldIndex","oldMergedPropsStyle","leavingStyle","newMergedPropsStyleCell","foundOldIndex","plainStyle","velocity","unmounting","_mergeAndSync","propStyles","_mergeAndSync2","newMergedPropsStyle","styleThatEntered","defaultStyleCell","_mergeAndSync3","hydratedStyles","onRemove","prevKeyIndex","nextKeyIndex","fill","nextOrderA","nextOrderB","prevOrderA","prevOrderB","pivot","_presets2","identity","overRest","setToString","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","OptionComponent","optionAccessibilityAttributes","Select","baseRest","isIterateeCall","assigner","guard","baseTimes","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","allocUnsafe","isDeep","GreatBritainFlag","IrelandFlag","NetherlandsFlag","BelgiumFlag","PolandFlag","GermanyFlag","CzechiaFlag","resIndex","arrayPush","getSymbolsIn","keysFunc","symbolsFunc","cloneArrayBuffer","typedArray","byteOffset","baseCreate","isPrototype","__WEBPACK_EXTERNAL_MODULE_lodash_assign__","__WEBPACK_EXTERNAL_MODULE_lodash_cloneDeep__","__WEBPACK_EXTERNAL_MODULE_lodash_compact__","__WEBPACK_EXTERNAL_MODULE_lodash_difference__","__WEBPACK_EXTERNAL_MODULE_lodash_functions__","__WEBPACK_EXTERNAL_MODULE_lodash_identity__","__WEBPACK_EXTERNAL_MODULE_lodash_includes__","__WEBPACK_EXTERNAL_MODULE_lodash_isArray__","__WEBPACK_EXTERNAL_MODULE_lodash_isElement__","__WEBPACK_EXTERNAL_MODULE_lodash_isFunction__","__WEBPACK_EXTERNAL_MODULE_lodash_isPlainObject__","__WEBPACK_EXTERNAL_MODULE_lodash_isString__","__WEBPACK_EXTERNAL_MODULE_lodash_merge__","__WEBPACK_EXTERNAL_MODULE_lodash_trim__","installedModules","__webpack_require__","moduleId","getter","__webpack_exports__","constants_namespaceObject","CF_SHARED_CDN","OLD_AKAMAI_SHARED_CDN","AKAMAI_SHARED_CDN","SHARED_CDN","DEFAULT_TIMEOUT_MS","DEFAULT_POSTER_OPTIONS","DEFAULT_VIDEO_SOURCE_TYPES","SEO_TYPES","DEFAULT_IMAGE_PARAMS","DEFAULT_VIDEO_SOURCES","DEFAULT_EXTERNAL_LIBRARIES","PLACEHOLDER_IMAGE_MODES","ACCESSIBILITY_MODES","URL_KEYS","lodash_namespaceObject","getSDKAnalyticsSignature","getAnalyticsOptions","assign_root_assign_default","cloneDeep_root_cloneDeep_default","compact_root_compact_default","difference_root_difference_default","functions_root_functions_default","identity_root_identity_default","includes_root_includes_default","isArray_root_isArray_default","isPlainObject_root_isPlainObject_default","isString_root_isString_default","merge_root_merge_default","isIntersectionObserverSupported","isNativeLazyLoadSupported","omit","baseutil_allStrings","without","isNumberLike","smartEscape","objToString","funcTag","reWords","snakeCase","convertKeys","base64Encode","base64EncodeURL","extractUrlParams","patchFetchFormat","optionConsume","isElement_root_isElement_default","isFunction_root_isFunction_default","trim_root_trim_default","lodash_getData","lodash_setData","lodash_getAttribute","lodash_setAttribute","lodash_removeAttribute","setAttributes","lodash_hasClass","lodash_addClass","getStyles","cssExpand","domStyle","curCSS","cssValue","augmentWidthOrHeight","getWidthOrHeight","lodash_width","src_utf8_encode","argString","c1","enc","stringl","utftext","src_crc32","crc","iTop","stringPad","padString","times","repeatedString","repeatStringNumTimes","base64Map_num","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_char","base64Map","encodeVersion","semVer","strResult","paddedStringLength","paddedReversedSemver","reverse","segment","reverseVersion","paddedBinary","bitString","analyticsOptions","twoPartVersion","removePatchFromSemver","techVersion","encodedSDKVersion","sdkSemver","encodedTechVersion","featureCode","feature","SDKCode","sdkCode","algoVersion","semVerStr","urlAnalytics","assign_root_assign_","cloneDeep_root_cloneDeep_","compact_root_compact_","difference_root_difference_","functions_root_functions_","identity_root_identity_","includes_root_includes_","isArray_root_isArray_","isPlainObject_root_isPlainObject_","isString_root_isString_","merge_root_merge_","isElement_root_isElement_","isFunction_root_isFunction_","trim_root_trim_","HTMLImageElement","fallback_content","source_transformation","video_codec","seeThru","effect","fetch_format","aspect_ratio","darkmode","brightmode","monochrome","colorblind","baseutil_typeof","srcKeys","filtered","nodeContains","unsafe","destination","dest","upper","words","toLocaleUpperCase","toLocaleLowerCase","btoa","decodeURI","encodeURI","option_name","default_value","getAttr","jQuery","setAttr","removeAttribute","opener","adown","bup","computed","maxWidth","rmargin","getPropertyValue","rnumnonpx","convert","isBorderBox","side","sides","valueIsBorderBox","Expression","expressionStr","expressions","expression","operatorsReplaceRE","OPERATORS","predefinedVarsPattern","PREDEFINED_VARS","variablesReplaceRE","serialize","operator","getParent","_value","BOUNDRY","condition_typeof","condition_defineProperties","_createSuper","valueOf","_Expression","Condition","conditionStr","condition_classCallCheck","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","configuration_arrayLikeToArray","configuration_unsupportedIterableToArray","_nonIterableRest","configuration_defineProperties","configuration_Configuration","Configuration","configuration_classCallCheck","configuration","DEFAULT_CONFIGURATION_PARAMS","fromEnvironment","fromDocument","meta_elements","cloudinary_url","CLOUDINARY_URL","_value$split2","new_config","new_value","responsive_class","responsive_use_breakpoints","round_dpr","secure","protocol","CONFIG_PARAMS","src_configuration","layer_defineProperties","layer_layer","layer_classCallCheck","resourceType","getPublicId","components","getFullPublicId","textlayer_typeof","textlayer_defineProperties","textlayer_setPrototypeOf","textlayer_createSuper","textlayer_isNativeReflectConstruct","textlayer_getPrototypeOf","textlayer_possibleConstructorReturn","textlayer_assertThisInitialized","textlayer","_Layer","textlayer_inherits","TextLayer","textlayer_classCallCheck","_resourceType","_type","_fontFamily","fontFamily","_fontSize","fontSize","_fontWeight","fontWeight","_fontStyle","fontStyle","_textDecoration","textDecoration","_textAlign","textAlign","_stroke","stroke","_letterSpacing","letterSpacing","_lineSpacing","lineSpacing","_fontHinting","fontHinting","_fontAntialiasing","fontAntialiasing","_text","_textStyle","textStyle","hasPublicId","hasStyle","re","textSource","textStyleIdentifier","subtitleslayer_typeof","subtitleslayer_setPrototypeOf","subtitleslayer_createSuper","subtitleslayer_isNativeReflectConstruct","subtitleslayer_getPrototypeOf","subtitleslayer_possibleConstructorReturn","subtitleslayer_assertThisInitialized","subtitleslayer","_TextLayer","subtitleslayer_inherits","SubtitlesLayer","subtitleslayer_classCallCheck","fetchlayer_typeof","fetchlayer_defineProperties","fetchlayer_setPrototypeOf","fetchlayer_createSuper","fetchlayer_isNativeReflectConstruct","fetchlayer_getPrototypeOf","fetchlayer_possibleConstructorReturn","fetchlayer_assertThisInitialized","fetchlayer","fetchlayer_inherits","FetchLayer","fetchlayer_classCallCheck","_url","parameters_typeof","_get","receiver","parameters_getPrototypeOf","_superPropBase","parameters_inherits","parameters_setPrototypeOf","parameters_createSuper","parameters_isNativeReflectConstruct","parameters_possibleConstructorReturn","parameters_assertThisInitialized","parameters_classCallCheck","parameters_defineProperties","parameters_createClass","parameters_Param","Param","shortName","origValue","valid","codec","profile","parameters_ArrayParam","_Param","ArrayParam","arrayValue","flat","parameters_TransformationParam","_Param2","TransformationParam","_super2","joined","src_transformation","origValue1","RangeParam","_Param3","_super3","norm_range_value","modifier","parameters_RawParam","_Param4","RawParam","_super4","parameters_LayerParam","_Param5","LayerParam","_super5","layerOptions","transformation_typeof","transformation_setPrototypeOf","transformation_createSuper","transformation_isNativeReflectConstruct","transformation_getPrototypeOf","transformation_possibleConstructorReturn","transformation_assertThisInitialized","transformation_slicedToArray","transformation_arrayWithHoles","transformation_iterableToArrayLimit","transformation_arrayLikeToArray","transformation_unsupportedIterableToArray","transformation_nonIterableRest","transformation_classCallCheck","transformation_defineProperties","transformation_createClass","assignNotNull","transformation_TransformationBase","TransformationBase","trans","toOptions","withChain","opt","otherOptions","setParent","fromOptions","abbr","rawParam","lastArgCallback","rangeParam","arrayParam","transformationParam","layerParam","VAR_NAME_RE","toPlainObject","getOwnPropertyNames","resetTransformations","fromTransformation","transformation_Transformation","ifParam","paramList","ref1","ref2","ref3","ref4","resultArray","transformationList","transformationString","varArray","_varArray$j","processVar","len1","param_separator","trans_separator","attrName","snakeCaseKey","hasLayer","toHtml","processCustomFunction","function_type","_TransformationBase","transformation_inherits","norm_color","color","fps","ifVal","trIf","trRest","end_o","start_o","startOffset","endOffset","process_video_params","htmltag_defineProperties","htmltag_toAttribute","escapeQuotes","htmltag","HtmlTag","htmltag_classCallCheck","responsiveClass","htmlAttributes","toHtmlAttributes","htmlAttrs","openTag","closeTag","isUrl","handlePrefix","cloud_name","cdnPart","subdomain","private_cdn","cdn_subdomain","cdnSubdomainNumber","secure_cdn_subdomain","secure_distribution","cname","encodePublicId","validate","url_suffix","preparePublicId","urlString","isForceVersion","force_version","isVersionExist","handleVersion","blur","handleTransformation","signature","isFormatted","handleSignature","_ref$resource_type","_ref$type","use_root_path","shorten","handleResourceType","trust_public_id","formatPublicId","prepareOptions","url_url","resultUrl","sdkAnalyticsSignature","appender","generateBreakpoints_slicedToArray","generateBreakpoints_arrayWithHoles","generateBreakpoints_iterableToArrayLimit","generateBreakpoints_arrayLikeToArray","generateBreakpoints_unsupportedIterableToArray","generateBreakpoints_nonIterableRest","generateBreakpoints","srcset","_map2","min_width","max_width","max_images","stepSize","srcsetUtils_isEmpty","scaledUrl","public_id","raw_transformation","getOrGenerateBreakpoints","generateSrcsetAttribute","generateSizesAttribute","generateImageResponsiveAttributes","srcsetData","responsiveAttributes","generateSizes","sizes","generateSrcset","srcsetAttr","sizesAttr","imagetag_typeof","imagetag_classCallCheck","imagetag_defineProperties","imagetag_get","imagetag_getPrototypeOf","imagetag_superPropBase","imagetag_setPrototypeOf","imagetag_createSuper","imagetag_isNativeReflectConstruct","imagetag_possibleConstructorReturn","imagetag_assertThisInitialized","imagetag_ImageTag","_HtmlTag","imagetag_inherits","ImageTag","srcAttribute","srcsetParam","getOption","client_hints","imagetag","sourcetag_typeof","sourcetag_classCallCheck","sourcetag_defineProperties","sourcetag_get","sourcetag_getPrototypeOf","sourcetag_superPropBase","sourcetag_setPrototypeOf","sourcetag_createSuper","sourcetag_isNativeReflectConstruct","sourcetag_possibleConstructorReturn","sourcetag_assertThisInitialized","sourcetag_SourceTag","sourcetag_inherits","SourceTag","media","mediaQuery","generateMediaAttr","sourcetag","picturetag_typeof","picturetag_classCallCheck","picturetag_defineProperties","picturetag_get","picturetag_getPrototypeOf","picturetag_superPropBase","picturetag_setPrototypeOf","picturetag_createSuper","picturetag_isNativeReflectConstruct","picturetag_possibleConstructorReturn","picturetag_assertThisInitialized","picturetag_PictureTag","picturetag_inherits","PictureTag","widthList","picturetag","videotag_typeof","videotag_classCallCheck","videotag_defineProperties","videotag_get","videotag_getPrototypeOf","videotag_superPropBase","videotag_setPrototypeOf","videotag_createSuper","videotag_isNativeReflectConstruct","videotag_possibleConstructorReturn","videotag_assertThisInitialized","VIDEO_TAG_PARAMS","videotag_DEFAULT_VIDEO_SOURCE_TYPES","videotag_DEFAULT_POSTER_OPTIONS","videotag_VideoTag","videotag_inherits","VideoTag","fallbackContent","innerTags","createSourceTag","srcType","videoType","codecsStr","videotag","clienthintsmetatag_typeof","clienthintsmetatag_defineProperties","clienthintsmetatag_setPrototypeOf","clienthintsmetatag_createSuper","clienthintsmetatag_isNativeReflectConstruct","clienthintsmetatag_getPrototypeOf","clienthintsmetatag_possibleConstructorReturn","clienthintsmetatag_assertThisInitialized","clienthintsmetatag","clienthintsmetatag_inherits","ClientHintsMetaTag","clienthintsmetatag_classCallCheck","normalizeToArray_toConsumableArray","normalizeToArray_arrayLikeToArray","normalizeToArray_arrayWithoutHoles","normalizeToArray_iterableToArray","normalizeToArray_unsupportedIterableToArray","normalizeToArray_nonIterableSpread","applyBreakpoints","closestAbove","defaultBreakpoints","cloudinary_findContainerWidth","cloudinary_maxWidth","updateDpr","transparentVideo_mountCloudinaryVideoTag","htmlElContainer","clInstance","innerHTML","addFlag","flag","flags","transparentVideo_enforceOptionsForTransparentVideo","autoplay","max_timeout_ms","externalLibraries","xhr_loadScript","scriptURL","isAlreadyLoaded","scriptTag","timerID","onerror","onload","head","xhr_getBlobFromURL","urlToLoad","xhr","XMLHttpRequest","responseType","blobURL","URL","createObjectURL","transparentVideo_createHiddenVideoTag","videoOptions","playsinline","videoURL","visibility","revokeObjectURL","transparentVideo_instantiateSeeThru","videoElement","customClass","_window","seeThruInstance","canvasElement","getCanvas","transparentVideo_mountSeeThruCanvasTag","transparentVideo_checkSupportForTransparency","canPlay","canPlayType","cloudinary_defineProperties","steps","resizing","calc_breakpoint","containerWidth","roundDpr","device_pixel_ratio","requiredWidth","imageWidth","cloudinary_Cloudinary","Cloudinary","cloudinary_classCallCheck","devicePixelRatioCache","responsiveConfig","responsiveResizeInitialized","newConfig","toDOM","bootstrap","responsive_resize","makeResponsive","waitFunc","responsive_debounce","point","dprString","images","tagName","imgOptions","normalizeToArray","setUrl","responsive_preserve_height","isLazyLoading","isLazyLoadSupported","setAttributeIfExists","toAttribute","fromAttribute","attributeValue","video_url","isNativelyTransparent","mountPromise","cloudinary","crc32","utf8_encode","Util","ButtonSkeleton","BRAND_COLOURS","brandWhite","EstimatedDailyPlanPrices","ageCategory","GB","NI","IE","NL","BE","PL","CZ","Plan","getDiscountedPrice","price","dogAgeCategory","ageToAgeCategory","dailyPlanPrices","mixedPlanDailyPrice","allPlanDailyPrice","allPlanDiscountedPrice","mixedPlanDiscountedPrice","strikethroughPrice","discountedPrice","isDiscounted","imageAlt","imageSlug","toNumber","INFINITY","brandBlue100","brandBlue200","brandBlue300","brandBlue400","brandBlue500","brandBlue600","brandBlue700","brandYellow100","brandYellow200","brandYellow300","brandYellow400","brandYellow500","brandYellow600","brandYellow700","brandPink100","brandPink200","brandPink300","brandPink400","brandPink500","brandPink600","brandPink700","brandRed100","brandRed200","brandRed300","brandRed400","brandRed500","brandRed600","brandRed700","brandBlack","cardboardBrown","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","BreedQuestionnaire","defaultMakeData","Trie","weakness","makeData","getChildTrie","isObjRef","weak","strong","toFinite","remainder","reWhitespace","roundingMethod","possible","badChars","escapeChar","chr","ageOptions","AgeSelect","formattedAgeOptions","formattedAgeOption","handleAgeChange","uniqBy","keyValue","WeightSelect","formattedWeightOptions","estimate","formattedWeightOption","handleWeightChange","defaultDispose","Cache","dispose","newest","oldest","getNode","clean","parentEntrySlot","collection","maybeUnsubscribe","entryOrDep","emptySetPool","assert","optionalMessage","valueGet","Entry","childValues","dirtyChildren","recomputing","deps","mightBeDirty","rememberParent","recompute","forgetChildren","recomputeNewValue","setDirty","maybeSubscribe","reportClean","setClean","reallyRecompute","reportDirty","eachParent","forgetChild","dependOn","forgetDeps","reportDirtyChild","reportCleanChild","parentCount","parentWasClean","childValue","removeDirtyChild","dc","EntryMethods","depsByKey","dep_1","entryMethodName","m_1","makeDefaultMakeCacheKeyFunction","keyTrie","originalFunction","dirtyKey","peekKey","forgetKey","getKey","isFlattenable","baseFlatten","isStrict","Paw","Arrow","UserType","CTA","handleCTAClick","PreWizardGuest","Guest","wizardCtaLink","isApolloError","ApolloError","clientErrors","extraInfo","createBreakpoints","_breakpoints$values","xs","xl","_breakpoints$unit","_breakpoints$step","up","between","endIndex","down","upperbound","createMixins","spacing","mixins","_toolbar","gutters","paddingLeft","paddingRight","toolbar","minHeight","black","white","A100","A200","A400","A700","clamp","decomposeColor","colors","hexToRgb","recomposeColor","getLuminance","rgb","hslToRgb","darken","coefficient","lighten","light","primary","secondary","divider","paper","hover","hoverOpacity","selected","selectedOpacity","disabledBackground","disabledOpacity","focusOpacity","activatedOpacity","dark","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","createPalette","palette","_palette$primary","_palette$secondary","_palette$error","_palette$warning","warning","_palette$info","_palette$success","success","_palette$type","_palette$contrastThre","contrastThreshold","_palette$tonalOffset","getContrastText","contrastText","foreground","lumA","lumB","getContrastRatio","augmentColor","mainShade","lightShade","darkShade","grey","roundWithDeprecationWarning","caseAllCaps","textTransform","defaultFontFamily","createTypography","_ref$fontFamily","_ref$fontSize","_ref$fontWeightLight","fontWeightLight","_ref$fontWeightRegula","fontWeightRegular","_ref$fontWeightMedium","fontWeightMedium","_ref$fontWeightBold","fontWeightBold","_ref$htmlFontSize","htmlFontSize","allVariants","pxToRem2","pxToRem","coef","buildVariant","lineHeight","casing","variants","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","overline","createShadow","directions","marginX","marginY","paddingX","paddingY","getCssProperties","_prop$split2","spacingKeys","createUnarySpacing","themeSpacing","getStyleFromPropValue","cssProperties","transformer","propValue","cssProperty","styleFromPropValue","themeBreakpoints","_themeBreakpoints","breakpoint","handleBreakpoints","filterProps","createSpacing","spacingInput","mui","easing","easeInOut","easeOut","easeIn","sharp","shortest","shorter","standard","complex","enteringScreen","leavingScreen","formatMs","_options$duration","durationOption","_options$easing","easingOption","_options$delay","animatedProp","getAutoHeightDuration","constant","mobileStepper","speedDial","appBar","drawer","modal","snackbar","tooltip","_options$breakpoints","breakpointsInput","_options$mixins","mixinsInput","_options$palette","paletteInput","_options$typography","typographyInput","muiTheme","overrides","shadows","transitions","zIndex","arrayEach","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","initCloneArray","initCloneByTag","initCloneObject","isSet","keysIn","argsTag","objectTag","cloneableTags","baseClone","bitmask","isFlat","isFull","isFunc","stacked","subValue","setCacheAdd","setCacheHas","SetCache","didWarnUncachedGetSnapshot","useSyncExternalStore","getSnapshot","getServerSnapshot","forceUpdate","checkIfSnapshotChanged","useInternalState","stateRef","setTick","tick","InternalState","asyncResolveFns","optionsToIgnoreOnce","ssrDisabledResult","skipStandbyResult","toQueryResultCache","previousResult","previousData","asyncUpdate","watchQueryOptions","renderPromises","useOptions","useObservableQuery","unsafeHandlePartialRefetch","queryResult","toQueryResult","createWatchQueryOptions","queryHookOptions","currentWatchQueryOptions","getObsQueryOptions","ssr","skip","globalDefaults","getDefaultFetchPolicy","getSSRObservable","obsQueryFields","ssrAllowed","registerSSRObservable","addObservableQueryPromise","nextResult","handleErrorOrCompleted","resultWithoutPartial","isNonNullObject","nativeKeys","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","unescape","I18nContext","getDefaults","ReportNamespaces","usedNamespaces","getI18n","setDefaults","setI18n","baseGetAllKeys","baseIndexOf","comparator","baseFor","createBaseFor","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","errorProps","endLineNumber","endColumn","tmp","lineNumber","nop","EAGER_METHODS","internalState","execOptionsRef","useQueryResult","eagerMethods","_loop_1","EAGER_METHODS_1","CookieConsentModal","cookieConsentModal","isModalOpen","setIsModalOpen","showStrictModal","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","encodingOrOffset","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","fromString","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","thisStart","thisEnd","thisCopy","targetCopy","isFinite","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","num","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","copyObject","createAssigner","isMasked","reIsHostCtor","reIsNative","uid","coreJsData","maskSrcKey","IE_PROTO","nativeMax","otherArgs","baseSetToString","shortOut","nativeNow","lastCalled","stamp","typedArrayTags","CLONE_DEEP_FLAG","assocIndexOf","LARGE_ARRAY_SIZE","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","nativeKeysIn","isProto","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","userDataVar","dogsDataVar","subscriptionDataVar","shippingCountryDataVar","featureFlagsDataVar","hasNotificationsVar","settingsVar","dataView","reFlags","symbolValueOf","objectCreate","baseIsMap","nodeIsMap","baseIsSet","nodeIsSet","baseDifference","isArrayLikeObject","arrayIncludes","arrayIncludesWith","cacheHas","isCommon","valuesLength","valuesIndex","fromRight","spreadableSymbol","isConcatSpreadable","baseFunctions","isString","baseValues","baseMerge","srcIndex","assignMergeValue","baseMergeDeep","safeGet","srcValue","mergeFunc","isTyped","castSlice","charsEndIndex","charsStartIndex","stringToArray","strSymbols","chrSymbols","BreedSelect","onBreedSelectionCallback","dogAge","firstWeekOfNextYear","startOfNextYear","firstWeekOfThisYear","startOfThisYear","fourthOfJanuaryOfNextYear","fourthOfJanuaryOfThisYear","deepFreeze","isFrozen","shallowFreeze"],"mappings":"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C,K,0BAAAA,E,kBAAAA,E,kBAAAA,E,wBAAAA,E,iBAAAA,M,cAQAC,K,oBAAAA,E,gCAAAA,E,iBAAAA,M,cAMAC,K,mBAAAA,M,cAIAC,K,oBAAAA,E,2BAAAA,M,cAKAC,K,qCAAAA,M,cAIAC,K,oBAAAA,E,kCAAAA,E,mBAAAA,M,cAMAC,K,kCAAAA,E,4BAAAA,E,0CAAAA,E,8BAAAA,E,6CAAAA,M,cAQAC,K,oBAAAA,E,oBAAAA,E,qBAAAA,M,cAMAC,K,mBAAAA,M,cAIAC,K,oBAAAA,E,2BAAAA,M,cAKAC,K,qCAAAA,M,cAIAC,K,0BAAAA,E,kBAAAA,E,kBAAAA,E,wBAAAA,E,iBAAAA,M,cAQAC,K,oBAAAA,E,kCAAAA,E,mBAAAA,M,cAMAC,K,kCAAAA,E,4BAAAA,E,0CAAAA,E,8BAAAA,E,6CAAAA,M,cAQAC,K,oBAAAA,E,gCAAAA,E,iBAAAA,M,cAMAC,K,oBAAAA,E,oBAAAA,E,qBAAAA,M,cAMAC,K,UAAAA,E,+BAAAA,M,cAKAC,K,sBAAAA,E,aAAAA,M,cAKAC,K,gCAAAA,E,0CAAAA,E,0BAAAA,E,2BAAAA,M,cAOAC,K,gCAAAA,E,8CAAAA,E,0BAAAA,E,kDAAAA,E,2BAAAA,M,cAQAC,K,gCAAAA,E,0BAAAA,E,kCAAAA,E,2BAAAA,M,cAOAC,K,wBAAAA,E,qBAAAA,M,cAKAC,K,gBAAAA,E,YAAAA,E,aAAAA,M,cAMAC,K,8BAAAA,E,kBAAAA,E,kBAAAA,E,yBAAAA,M,cAOAC,K,wBAAAA,E,eAAAA,M,cAKAC,K,8BAAAA,E,0BAAAA,E,wBAAAA,E,2BAAAA,M,cAOAC,K,cAAAA,E,UAAAA,E,iBAAAA,M,cAMAC,K,0BAAAA,E,oCAAAA,E,8BAAAA,E,4BAAAA,E,sCAAAA,E,iDAAAA,M,cASAC,K,8DAAAA,E,0DAAAA,E,sDAAAA,E,gEAAAA,E,qDAAAA,M,cAQAC,K,oBAAAA,E,sBAAAA,E,oBAAAA,E,qBAAAA,M,cAOAC,K,oBAAAA,E,oBAAAA,E,oBAAAA,E,4BAAAA,E,yBAAAA,M,cAQAC,K,kBAAAA,E,uBAAAA,M,cAKAC,K,gBAAAA,E,aAAAA,M,cAKAC,K,cAAAA,E,kBAAAA,E,wBAAAA,E,sBAAAA,E,qCAAAA,M,cAQAC,K,sCAAAA,E,0BAAAA,E,4BAAAA,E,wDAAAA,E,uCAAAA,M,cAQAC,K,gCAAAA,E,6BAAAA,M,cAKAC,K,oBAAAA,E,oBAAAA,E,YAAAA,E,YAAAA,E,wBAAAA,E,iBAAAA,M,cASAC,K,8BAAAA,E,sEAAAA,E,4BAAAA,E,YAAAA,E,oCAAAA,E,gFAAAA,E,gBAAAA,E,cAAAA,E,8BAAAA,E,wDAAAA,E,oCAAAA,E,oCAAAA,E,kEAAAA,E,wEAAAA,E,gCAAAA,E,oCAAAA,E,gCAAAA,E,kDAAAA,E,wCAAAA,E,wDAAAA,E,0CAAAA,E,sCAAAA,E,sDAAAA,E,oCAAAA,E,sDAAAA,E,sCAAAA,E,gEAAAA,E,wCAAAA,E,gDAAAA,E,kDAAAA,E,sCAAAA,E,wCAAAA,E,gDAAAA,E,wCAAAA,E,gDAAAA,E,gCAAAA,E,gCAAAA,E,sBAAAA,E,0FAAAA,E,wCAAAA,E,8CAAAA,E,sCAAAA,E,gDAAAA,E,0CAAAA,E,oDAAAA,E,sEAAAA,E,wCAAAA,E,4DAAAA,E,sCAAAA,E,kBAAAA,E,gBAAAA,E,kBAAAA,E,gBAAAA,E,kDAAAA,E,oDAAAA,E,4BAAAA,E,0EAAAA,E,kBAAAA,E,kDAAAA,E,gBAAAA,E,gCAAAA,E,oBAAAA,E,gCAAAA,E,8FAAAA,E,sBAAAA,E,wCAAAA,E,oCAAAA,E,oCAAAA,E,4CAAAA,E,wDAAAA,E,sDAAAA,E,sDAAAA,E,oCAAAA,E,wBAAAA,E,8BAAAA,E,0FAAAA,E,4CAAAA,E,4BAAAA,E,kEAAAA,E,gCAAAA,E,kDAAAA,E,oDAAAA,E,8CAAAA,E,gCAAAA,E,wBAAAA,E,sBAAAA,E,sCAAAA,E,4CAAAA,E,wCAAAA,E,oEAAAA,E,oBAAAA,E,sCAAAA,E,sBAAAA,E,kBAAAA,E,kEAAAA,E,gBAAAA,E,kBAAAA,E,8BAAAA,E,gCAAAA,E,kGAAAA,E,wEAAAA,E,gBAAAA,E,wEAAAA,E,gCAAAA,E,0CAAAA,E,4CAAAA,E,kBAAAA,E,cAAAA,E,4DAAAA,E,gCAAAA,E,kCAAAA,E,oCAAAA,E,8CAAAA,E,sCAAAA,E,gBAAAA,E,kDAAAA,E,oBAAAA,E,kFAAAA,E,oCAAAA,E,sCAAAA,E,gDAAAA,E,gCAAAA,E,4BAAAA,E,kBAAAA,E,0BAAAA,E,kBAAAA,E,4DAAAA,E,8BAAAA,E,0EAAAA,E,wBAAAA,E,0CAAAA,E,wBAAAA,E,8CAAAA,E,8BAAAA,E,4CAAAA,E,4BAAAA,E,0CAAAA,E,sCAAAA,E,8BAAAA,E,8CAAAA,E,oCAAAA,E,0CAAAA,E,oBAAAA,E,8DAAAA,E,oGAAAA,E,sHAAAA,E,wDAAAA,E,4BAAAA,E,8BAAAA,E,4BAAAA,E,kBAAAA,E,oDAAAA,E,sBAAAA,E,kCAAAA,E,4FAAAA,E,kCAAAA,E,kBAAAA,E,0DAAAA,E,gBAAAA,E,sBAAAA,E,kBAAAA,E,sBAAAA,E,gDAAAA,E,sCAAAA,E,kCAAAA,E,8BAAAA,E,oBAAAA,E,wEAAAA,E,gCAAAA,E,4EAAAA,E,4EAAAA,E,gBAAAA,E,wCAAAA,E,sDAAAA,E,kCAAAA,E,sCAAAA,E,wBAAAA,E,8CAAAA,E,oDAAAA,E,kDAAAA,E,sBAAAA,E,4EAAAA,E,oEAAAA,E,sBAAAA,E,gDAAAA,E,8CAAAA,E,sBAAAA,E,kCAAAA,E,sCAAAA,E,sBAAAA,E,sCAAAA,E,kGAAAA,E,wFAAAA,E,8DAAAA,E,0CAAAA,E,gBAAAA,E,gBAAAA,E,gCAAAA,E,kCAAAA,E,0CAAAA,E,8CAAAA,E,sFAAAA,E,8HAAAA,E,gDAAAA,E,sCAAAA,E,oCAAAA,E,kCAAAA,E,kCAAAA,E,gCAAAA,E,oCAAAA,E,oDAAAA,E,0CAAAA,E,0CAAAA,E,oDAAAA,E,gFAAAA,E,wBAAAA,E,4CAAAA,E,oBAAAA,E,8BAAAA,E,kCAAAA,E,8BAAAA,E,oCAAAA,E,8BAAAA,E,wFAAAA,E,4CAAAA,E,sEAAAA,E,kCAAAA,E,gEAAAA,E,gDAAAA,E,kCAAAA,E,gCAAAA,E,gCAAAA,E,YAAAA,E,wGAAAA,E,sDAAAA,E,kCAAAA,E,kCAAAA,E,0CAAAA,E,oCAAAA,E,0DAAAA,E,wDAAAA,E,4BAAAA,E,sDAAAA,E,kCAAAA,E,0GAAAA,E,8CAAAA,E,oBAAAA,E,oCAAAA,E,kEAAAA,E,oFAAAA,E,8BAAAA,E,4DAAAA,E,gDAAAA,E,wBAAAA,E,4EAAAA,E,gCAAAA,E,oDAAAA,E,wDAAAA,E,kCAAAA,E,8BAAAA,E,sBAAAA,E,wCAAAA,E,oDAAAA,E,wCAAAA,E,sCAAAA,E,0BAAAA,E,kCAAAA,E,kBAAAA,E,oBAAAA,E,oBAAAA,E,oBAAAA,E,oCAAAA,E,sFAAAA,E,kCAAAA,E,8CAAAA,E,4BAAAA,E,wCAAAA,E,sCAAAA,E,4EAAAA,E,wDAAAA,E,4BAAAA,E,8BAAAA,E,gFAAAA,E,0CAAAA,E,kCAAAA,E,sCAAAA,E,kCAAAA,E,8CAAAA,E,4CAAAA,E,oBAAAA,E,oFAAAA,E,sBAAAA,E,kBAAAA,E,0BAAAA,E,sDAAAA,E,gCAAAA,E,8BAAAA,E,wCAAAA,E,gCAAAA,E,oCAAAA,E,sFAAAA,E,UAAAA,E,sCAAAA,E,oBAAAA,E,wCAAAA,E,4CAAAA,E,cAAAA,E,gBAAAA,E,oBAAAA,E,8BAAAA,E,4BAAAA,E,oCAAAA,E,gCAAAA,E,gBAAAA,E,gBAAAA,E,sFAAAA,E,wCAAAA,E,gDAAAA,E,8CAAAA,E,0EAAAA,E,sCAAAA,E,oCAAAA,E,0CAAAA,E,sCAAAA,E,oBAAAA,E,oCAAAA,E,0CAAAA,E,wBAAAA,E,wBAAAA,E,8CAAAA,E,gEAAAA,E,sDAAAA,E,kBAAAA,E,kBAAAA,E,sCAAAA,E,gBAAAA,E,kBAAAA,E,sBAAAA,E,0DAAAA,E,wCAAAA,E,oCAAAA,E,oBAAAA,E,gEAAAA,E,kBAAAA,E,cAAAA,E,YAAAA,E,gDAAAA,E,sJAAAA,E,gDAAAA,E,0CAAAA,E,0IAAAA,E,8DAAAA,E,4IAAAA,E,wCAAAA,E,oCAAAA,E,0CAAAA,E,0DAAAA,E,kBAAAA,E,gBAAAA,E,YAAAA,E,wCAAAA,E,gDAAAA,E,4CAAAA,E,wDAAAA,E,4BAAAA,E,oEAAAA,E,kCAAAA,E,kCAAAA,E,gCAAAA,E,oCAAAA,E,wCAAAA,E,0CAAAA,E,kCAAAA,E,wEAAAA,E,4CAAAA,E,gDAAAA,E,sCAAAA,E,cAAAA,E,wBAAAA,E,sCAAAA,E,sEAAAA,E,sBAAAA,E,oBAAAA,E,0DAAAA,E,0DAAAA,E,gDAAAA,E,wCAAAA,E,4DAAAA,E,sBAAAA,E,4CAAAA,E,gDAAAA,E,sDAAAA,E,4CAAAA,E,4DAAAA,E,gIAAAA,E,kIAAAA,E,8BAAAA,E,kCAAAA,E,gFAAAA,E,cAAAA,E,0BAAAA,E,kCAAAA,E,kCAAAA,E,gCAAAA,E,kBAAAA,E,wCAAAA,E,kDAAAA,E,8CAAAA,E,8DAAAA,E,gBAAAA,E,wBAAAA,E,gBAAAA,E,0CAAAA,E,oEAAAA,E,gBAAAA,E,oDAAAA,E,kEAAAA,E,0DAAAA,E,kBAAAA,E,gFAAAA,E,sEAAAA,E,8DAAAA,E,gBAAAA,E,wCAAAA,E,wDAAAA,E,wCAAAA,E,4CAAAA,E,8BAAAA,E,oCAAAA,E,4BAAAA,E,UAAAA,E,oEAAAA,E,oBAAAA,E,gDAAAA,E,gBAAAA,E,8CAAAA,E,cAAAA,E,YAAAA,E,YAAAA,E,4EAAAA,E,oCAAAA,E,8CAAAA,E,sCAAAA,E,0CAAAA,E,wBAAAA,E,0BAAAA,E,wDAAAA,E,gFAAAA,E,sCAAAA,E,0CAAAA,E,gEAAAA,E,8EAAAA,E,wBAAAA,E,0DAAAA,E,4CAAAA,E,4BAAAA,E,kCAAAA,E,kCAAAA,E,0BAAAA,E,oCAAAA,E,oFAAAA,E,8BAAAA,E,gBAAAA,E,kBAAAA,E,kBAAAA,E,0BAAAA,E,0BAAAA,E,wBAAAA,E,sEAAAA,E,sBAAAA,E,sBAAAA,E,gEAAAA,E,0EAAAA,E,wCAAAA,E,oCAAAA,E,oCAAAA,E,oCAAAA,E,oDAAAA,E,0CAAAA,E,8BAAAA,E,oBAAAA,E,wDAAAA,E,8GAAAA,E,kEAAAA,E,kGAAAA,E,wFAAAA,E,sCAAAA,E,sBAAAA,E,kBAAAA,E,oBAAAA,E,4CAAAA,E,kCAAAA,E,kBAAAA,E,0DAAAA,E,oCAAAA,E,kBAAAA,E,0CAAAA,E,kBAAAA,E,gCAAAA,E,0EAAAA,E,wEAAAA,E,oCAAAA,E,8BAAAA,E,4BAAAA,E,gEAAAA,E,kBAAAA,E,gEAAAA,E,8BAAAA,E,0CAAAA,E,wCAAAA,E,kDAAAA,E,0DAAAA,E,0DAAAA,E,gDAAAA,E,8BAAAA,E,kCAAAA,E,kCAAAA,E,sCAAAA,E,oCAAAA,E,gDAAAA,E,oBAAAA,E,wBAAAA,E,wBAAAA,E,wGAAAA,E,oBAAAA,E,sFAAAA,E,sFAAAA,E,wBAAAA,E,wBAAAA,E,sBAAAA,E,wDAAAA,E,oBAAAA,E,8EAAAA,E,kCAAAA,E,wCAAAA,E,oGAAAA,E,gCAAAA,E,oCAAAA,E,kCAAAA,E,oCAAAA,E,gCAAAA,E,oBAAAA,E,gFAAAA,E,8BAAAA,E,gCAAAA,E,kCAAAA,E,kCAAAA,E,kCAAAA,E,kBAAAA,E,oBAAAA,E,kCAAAA,E,wBAAAA,E,0CAAAA,E,oDAAAA,E,wEAAAA,E,wCAAAA,E,gCAAAA,E,oBAAAA,E,gCAAAA,E,sCAAAA,E,gBAAAA,E,oCAAAA,E,oEAAAA,E,wBAAAA,E,wEAAAA,E,0BAAAA,E,gCAAAA,E,gDAAAA,E,8BAAAA,E,kDAAAA,E,0DAAAA,E,0CAAAA,E,0DAAAA,E,0DAAAA,E,wBAAAA,E,kBAAAA,E,4DAAAA,E,oCAAAA,E,oDAAAA,E,gGAAAA,E,oCAAAA,E,8CAAAA,E,0DAAAA,E,0DAAAA,E,0FAAAA,E,kEAAAA,E,gDAAAA,E,gCAAAA,E,oBAAAA,E,wDAAAA,E,sCAAAA,E,iBAAAA,Q,cAmlBAC,K,cAAAA,E,cAAAA,E,QAAAA,E,QAAAA,E,QAAAA,E,cAAAA,E,QAAAA,E,eAAAA,Q,cAWAC,K,wBAAAA,E,4BAAAA,E,yBAAAA,Q,cAMAC,K,iCAAAA,Q,cAIAC,K,gBAAAA,E,oBAAAA,E,YAAAA,E,YAAAA,E,kBAAAA,E,iBAAAA,Q,cASAC,K,wBAAAA,E,kCAAAA,E,0BAAAA,E,sCAAAA,E,oCAAAA,E,+BAAAA,Q,cASAC,K,sCAAAA,E,0BAAAA,E,4BAAAA,E,wDAAAA,E,uCAAAA,Q,cAQAC,K,sCAAAA,E,0BAAAA,E,4BAAAA,E,wDAAAA,E,uCAAAA,Q,cAQAC,K,oCAAAA,E,wBAAAA,E,0BAAAA,E,oDAAAA,E,mCAAAA,Q,cAQAC,K,gBAAAA,E,iCAAAA,Q,cAKA5iE,K,wBAAAA,E,gBAAAA,E,kBAAAA,E,iBAAAA,Q,cAOA6iE,K,sBAAAA,E,2BAAAA,Q,cAKAC,K,wBAAAA,E,4BAAAA,E,qCAAAA,Q,cAMAC,K,0CAAAA,E,gCAAAA,E,oCAAAA,E,mDAAAA,Q,cAOAC,K,sBAAAA,E,wCAAAA,E,sBAAAA,E,sBAAAA,E,sBAAAA,E,QAAAA,E,wBAAAA,E,UAAAA,E,kBAAAA,E,0BAAAA,E,mBAAAA,Q,cAcAC,K,gBAAAA,E,gBAAAA,E,uBAAAA,Q,cAMAC,K,4BAAAA,E,oBAAAA,E,UAAAA,E,eAAAA,Q,cAOAC,K,UAAAA,E,YAAAA,E,YAAAA,E,aAAAA,Q,cAOAC,K,0BAAAA,E,0CAAAA,E,yCAAAA,Q,cAMAC,K,sBAAAA,E,kBAAAA,E,uBAAAA,Q,wCCniCG,SAASC,EAAsBj/D,GAQ5C,IAFA,IAAI6/C,EAAM,0CAA4C7/C,EAE7ChiB,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,GAAK,EAGzC6hE,GAAO,WAAapd,mBAAmBvkD,UAAUF,IAGnD,MAAO,+BAAiCgiB,EAAO,WAAa6/C,EAAM,yBAnBpE,mC,iCCQO,SAASqf,EAAuBC,GAErC,IAAIC,EAAQD,EAAUn1E,MAAM,gBAExBq1E,EAuCC,SAAmClgF,GAQxC,IAPA,IAAImgF,EAEAC,GAAc,EACdC,GAAc,EACd9iC,EAAS,EACT2iC,EAAe,KAEVrhF,EAAI,EAAGA,EAAImB,EAAMhB,SAAUH,EAClC,OAAQmB,EAAMsgF,WAAWzhF,IACvB,KAAK,GAE6B,KAA5BmB,EAAMsgF,WAAWzhF,EAAI,MACrBA,EAKN,KAAK,GAEHuhF,GAAc,EACdC,GAAc,EACd9iC,EAAS,EACT,MAEF,KAAK,EAEL,KAAK,KAEDA,EACF,MAEF,QACM8iC,IAAgBD,IAAiC,OAAjBF,GAAyB3iC,EAAS2iC,KACpEA,EAAe3iC,GAGjB8iC,GAAc,EAIpB,OAA0C,QAAlCF,EAAgBD,SAA4C,IAAlBC,EAA2BA,EAAgB,EAhF1EI,CAA0BP,GAE7C,GAAqB,IAAjBE,EACF,IAAK,IAAIrhF,EAAI,EAAGA,EAAIohF,EAAMjhF,OAAQH,IAChCohF,EAAMphF,GAAKohF,EAAMphF,GAAGiD,MAAMo+E,GAO9B,IAFA,IAAIM,EAAY,EAETA,EAAYP,EAAMjhF,QAAUyhF,EAAQR,EAAMO,OAC7CA,EAKJ,IAFA,IAAIE,EAAUT,EAAMjhF,OAEb0hF,EAAUF,GAAaC,EAAQR,EAAMS,EAAU,OAClDA,EAIJ,OAAOT,EAAMn+E,MAAM0+E,EAAWE,GAAS12E,KAAK,MAG9C,SAASy2E,EAAQvvD,GACf,IAAK,IAAIryB,EAAI,EAAGA,EAAIqyB,EAAIlyB,SAAUH,EAChC,GAAe,MAAXqyB,EAAIryB,IAAyB,OAAXqyB,EAAIryB,GACxB,OAAO,EAIX,OAAO,EA0DF,SAAS8hF,EAAiB3gF,GAC/B,IAAI4gF,EAAc7hF,UAAUC,OAAS,QAAsBiiB,IAAjBliB,UAAU,GAAmBA,UAAU,GAAK,GAClF8hF,EAAsB9hF,UAAUC,OAAS,QAAsBiiB,IAAjBliB,UAAU,IAAmBA,UAAU,GACrF+hF,GAAwC,IAAzB9gF,EAAMZ,QAAQ,MAC7B2hF,EAA+B,MAAb/gF,EAAM,IAA2B,OAAbA,EAAM,GAC5CghF,EAA+C,MAA5BhhF,EAAMA,EAAMhB,OAAS,GACxCiiF,EAA+C,OAA5BjhF,EAAMA,EAAMhB,OAAS,GACxCkiF,GAAwBJ,GAAgBE,GAAoBC,GAAoBJ,EAChFzgF,EAAS,GAYb,OAVI8gF,GAA0BJ,GAAgBC,IAC5C3gF,GAAU,KAAOwgF,GAGnBxgF,GAAUwgF,EAAc5gF,EAAMgV,QAAQ,MAAO,KAAO4rE,GAAe5gF,EAE/DkhF,IACF9gF,GAAU,MAGL,MAAQA,EAAO4U,QAAQ,OAAQ,SAAW,MA1HnD,qE,iCCAA,kCAE+C,oBAAX9T,QAA4C,MAAnBA,OAAOC,UAAmBD,OAAOC,SAGzC,oBAAXD,QAAiD,MAAxBA,OAAOikC,eAAwBjkC,OAAOikC,cAHlG,IAKIg8C,EAAyC,oBAAXjgF,QAA+C,MAAtBA,OAAOs4E,YAAsBt4E,OAAOs4E,YAAc,iB,oBCPpH,IAIIt4E,EAJO,EAAQ,KAIDA,OAClBgU,EAAOC,QAAUjU,G,kJCJbkgF,EAAiB,sBACjB,EAAK1jF,OAAOC,eACZA,OAAwB,IAAP,EAAgB,SAAU8d,EAAK4lE,GAElD,OADA5lE,EAAI7d,UAAYyjF,EACT5lE,GACL,EAEA,EAEJ,SAAU63B,GAGR,SAASguC,EAAel2D,QACN,IAAZA,IACFA,EAAUg2D,GAGZ,IAAI9xD,EAAQgkB,EAAOr1C,KAAKK,KAAyB,kBAAZ8sB,EAAuBg2D,EAAiB,KAAOh2D,EAAU,6DAA+DA,IAAY9sB,KAKzK,OAHAgxB,EAAMiyD,YAAc,EACpBjyD,EAAMtW,KAAOooE,EACbzjF,EAAe2xB,EAAOgyD,EAAevjF,WAC9BuxB,EAGT,OAfA,YAAUgyD,EAAgBhuC,GAenBguC,EAhBT,CAiBEp/E,OAGK,SAASs/E,EAAUC,EAAWr2D,GACnC,IAAKq2D,EACH,MAAM,IAAI,EAAer2D,GAG7B,IAAIs2D,EAAkB,CAAC,QAAS,MAAO,OAAQ,QAAS,UACpDC,EAAiBD,EAAgBtiF,QAAQ,OAE7C,SAASwiF,EAAkB5oE,GACzB,OAAO,WACL,GAAI0oE,EAAgBtiF,QAAQ4Z,IAAS2oE,EAAgB,CAGnD,IAAInzC,EAASvgB,QAAQjV,IAASiV,QAAQH,IACtC,OAAO0gB,EAAOvvC,MAAMgvB,QAASlvB,cAKnC,SAAWyiF,GACTA,EAAUh4E,MAAQo4E,EAAkB,SACpCJ,EAAU1zD,IAAM8zD,EAAkB,OAClCJ,EAAUxzD,KAAO4zD,EAAkB,QACnCJ,EAAUliE,MAAQsiE,EAAkB,SAJtC,CAKGJ,IAAcA,EAAY,KAOd,I,iBC3DXnjF,EAAK,KACLwjF,EAAa,CAACxjF,EAAIA,GAAI2L,KAAK,OAkBhB,MAhBf,WACE,IACE,OAAOwhC,QAAQtpB,SACf,MAAOtF,GASP,OARAlf,OAAO8d,eAAe/Q,EAAA,EAAQo3E,EAAY,CACxC7hF,MAEO,eAFA,OAAA8hF,EAAA,IAAM,WACX,MAAO,gBAET5mE,YAAY,EACZQ,cAAc,EACdC,UAAU,IAELlR,EAAA,EAAOo3E,IAIH,G,gBClBC,EAAwB,cCCtC3/D,QAAUs/D,EAAU,mBAAqBO,EAAKA,GAAOP,EAAU,mBAAqBO,EAAK,K,iCCA3F,SAASC,EAAuBvmE,GAC9B,OAAOA,GAAOA,EAAIqP,WAAarP,EAAM,CACnC,QAAWA,GAJftG,EAAQ2V,YAAa,EAQrB,IAEIm3D,EAAsBD,EAFD,EAAQ,MAO7BE,EAA0BF,EAFD,EAAQ,MAIjCG,EAA0B,EAAQ,KAElCC,EAA8B,EAAQ,KAItCC,EAAyCL,EAFD,EAAQ,MAMhDM,EAA8BN,EAFD,EAAQ,MAMrCO,EAAyBP,EAFD,EAAQ,MAIhCQ,EAAUP,EAA6B,QAAEzjF,OAE7C,SAASA,IACP,IAAIikF,EAAKD,IAgBT,OAdAC,EAAGC,QAAU,SAAU3tE,EAAOhG,GAC5B,OAAOqzE,EAA4BM,QAAQ3tE,EAAOhG,EAAS0zE,IAG7DA,EAAGE,WAAa,SAAU5tE,EAAOhG,GAC/B,OAAOqzE,EAA4BO,WAAW5tE,EAAOhG,EAAS0zE,IAGhEA,EAAGG,IAAMV,EAAiC,QAC1CO,EAAGI,SAAWT,EAA4BS,SAC1CJ,EAAGK,mBAAqBT,EAAgD,QACxEI,EAAGM,OAASZ,EAAwB33D,OACpCi4D,EAAG3rD,MAAQqrD,EAAwBrrD,MACnC2rD,EAAGO,uBAAyBb,EAAwBa,uBAC7CP,EAGT,IAAIQ,EAAOzkF,IACXykF,EAAKzkF,OAASA,EAEd+jF,EAAgC,QAAEU,GAElCA,EAAKC,QAAUZ,EAAqC,QACpDW,EAAc,QAAIA,EAClB9tE,EAAiB,QAAI8tE,EACrB/tE,EAAOC,QAAUA,EAAiB,S,oBCjElCD,EAAOC,QAAU,IAA0B,wC,kCCA5B,SAASC,IActB,OAbAA,EAAW1X,OAAOgB,OAAShB,OAAOgB,OAAO2W,OAAS,SAAUC,GAC1D,IAAK,IAAIzW,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CACzC,IAAI0W,EAASxW,UAAUF,GAEvB,IAAK,IAAIgL,KAAO0L,EACV7X,OAAOK,UAAUC,eAAeC,KAAKsX,EAAQ1L,KAC/CyL,EAAOzL,GAAO0L,EAAO1L,IAK3B,OAAOyL,GAEFF,EAASnW,MAAMX,KAAMS,WCdf,SAAS4rB,EAAQlP,GAG9B,OAAOkP,EAAU,mBAAqBzpB,QAAU,iBAAmBA,OAAOC,SAAW,SAAUsa,GAC7F,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAO,mBAAqBva,QAAUua,EAAIld,cAAgB2C,QAAUua,IAAQva,OAAOnD,UAAY,gBAAkB0d,GACvHkP,EAAQlP,GCLN,SAAS0nE,EAAcx0C,GAC5B,OAAOA,GAA0B,WAAlBhkB,EAAQgkB,IAAsBA,EAAKpwC,cAAgBb,OAErD,SAAS0lF,EAAU9tE,EAAQC,GACxC,IAAIxG,EAAUhQ,UAAUC,OAAS,QAAsBiiB,IAAjBliB,UAAU,GAAmBA,UAAU,GAAK,CAChFqkC,OAAO,GAELrV,EAAShf,EAAQq0B,MAAQhuB,EAAS,GAAIE,GAAUA,EAiBpD,OAfI6tE,EAAc7tE,IAAW6tE,EAAc5tE,IACzC7X,OAAOmd,KAAKtF,GAAQ6F,SAAQ,SAAUvR,GAExB,cAARA,IAIAs5E,EAAc5tE,EAAO1L,KAASA,KAAOyL,EACvCyY,EAAOlkB,GAAOu5E,EAAU9tE,EAAOzL,GAAM0L,EAAO1L,GAAMkF,GAElDgf,EAAOlkB,GAAO0L,EAAO1L,OAKpBkkB,E,iHCWMs1D,EA1BK/L,IAClB,IAAOt3E,EAAOsjF,GAAYt8D,mBAAkBswD,GAEtCiM,EAASn8D,uBAAY,KACzBk8D,GAAUtmD,IAA2BA,MACpC,IAEGwmD,EAAUp8D,uBAAY,KAC1Bk8D,GAAS,KACR,IAEGG,EAAWr8D,uBAAY,KAC3Bk8D,GAAS,KACR,IAEH,MAAO,CACLtjF,QACAsjF,WACAC,SACAC,UACAC,c,kBC9BJ,IAKIC,EACAC,EANAh8E,EAAUuN,EAAOC,QAAU,GAQ/B,SAASyuE,IACP,MAAM,IAAI1hF,MAAM,mCAGlB,SAAS2hF,IACP,MAAM,IAAI3hF,MAAM,qCAyBlB,SAAS4hF,EAAWC,GAClB,GAAIL,IAAqB37D,WAEvB,OAAOA,WAAWg8D,EAAK,GAIzB,IAAKL,IAAqBE,IAAqBF,IAAqB37D,WAElE,OADA27D,EAAmB37D,WACZA,WAAWg8D,EAAK,GAGzB,IAEE,OAAOL,EAAiBK,EAAK,GAC7B,MAAO5kF,GACP,IAEE,OAAOukF,EAAiBzlF,KAAK,KAAM8lF,EAAK,GACxC,MAAO5kF,GAEP,OAAOukF,EAAiBzlF,KAAKK,KAAMylF,EAAK,MA3C9C,WACE,IAEIL,EADwB,oBAAf37D,WACUA,WAEA67D,EAErB,MAAOzkF,GACPukF,EAAmBE,EAGrB,IAEID,EAD0B,oBAAjB9wB,aACYA,aAEAgxB,EAEvB,MAAO1kF,GACPwkF,EAAqBE,GAlBzB,GA2EA,IAEIG,EAFAxlD,EAAQ,GACRylD,GAAW,EAEXC,GAAc,EAElB,SAASC,IACFF,GAAaD,IAIlBC,GAAW,EAEPD,EAAahlF,OACfw/B,EAAQwlD,EAAajiF,OAAOy8B,GAE5B0lD,GAAc,EAGZ1lD,EAAMx/B,QACRolF,KAIJ,SAASA,IACP,IAAIH,EAAJ,CAIA,IAAInxB,EAAUgxB,EAAWK,GACzBF,GAAW,EAGX,IAFA,IAAIngD,EAAMtF,EAAMx/B,OAET8kC,GAAK,CAIV,IAHAkgD,EAAexlD,EACfA,EAAQ,KAEC0lD,EAAapgD,GAChBkgD,GACFA,EAAaE,GAAYG,MAI7BH,GAAc,EACdpgD,EAAMtF,EAAMx/B,OAGdglF,EAAe,KACfC,GAAW,EA1Eb,SAAyBK,GACvB,GAAIX,IAAuB9wB,aAEzB,OAAOA,aAAayxB,GAItB,IAAKX,IAAuBE,IAAwBF,IAAuB9wB,aAEzE,OADA8wB,EAAqB9wB,aACdA,aAAayxB,GAGtB,IAESX,EAAmBW,GAC1B,MAAOnlF,GACP,IAEE,OAAOwkF,EAAmB1lF,KAAK,KAAMqmF,GACrC,MAAOnlF,GAGP,OAAOwkF,EAAmB1lF,KAAKK,KAAMgmF,KAqDzCC,CAAgBzxB,IAoBlB,SAAS0xB,EAAKT,EAAK3qE,GACjB9a,KAAKylF,IAAMA,EACXzlF,KAAK8a,MAAQA,EAef,SAASmnB,KAlCT54B,EAAQ88E,SAAW,SAAUV,GAC3B,IAAItuE,EAAO,IAAI5X,MAAMkB,UAAUC,OAAS,GAExC,GAAID,UAAUC,OAAS,EACrB,IAAK,IAAIH,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IACpC4W,EAAK5W,EAAI,GAAKE,UAAUF,GAI5B2/B,EAAMj9B,KAAK,IAAIijF,EAAKT,EAAKtuE,IAEJ,IAAjB+oB,EAAMx/B,QAAiBilF,GACzBH,EAAWM,IAUfI,EAAKzmF,UAAUsmF,IAAM,WACnB/lF,KAAKylF,IAAI9kF,MAAM,KAAMX,KAAK8a,QAG5BzR,EAAQ+8E,MAAQ,UAChB/8E,EAAQg9E,SAAU,EAClBh9E,EAAQi9E,IAAM,GACdj9E,EAAQk9E,KAAO,GACfl9E,EAAQo7C,QAAU,GAElBp7C,EAAQm9E,SAAW,GAInBn9E,EAAQa,GAAK+3B,EACb54B,EAAQo9E,YAAcxkD,EACtB54B,EAAQq9E,KAAOzkD,EACf54B,EAAQs9E,IAAM1kD,EACd54B,EAAQyzC,eAAiB7a,EACzB54B,EAAQu9E,mBAAqB3kD,EAC7B54B,EAAQyqB,KAAOmO,EACf54B,EAAQw9E,gBAAkB5kD,EAC1B54B,EAAQy9E,oBAAsB7kD,EAE9B54B,EAAQmvD,UAAY,SAAU99C,GAC5B,MAAO,IAGTrR,EAAQ09E,QAAU,SAAUrsE,GAC1B,MAAM,IAAI9W,MAAM,qCAGlByF,EAAQ29E,IAAM,WACZ,MAAO,KAGT39E,EAAQ49E,MAAQ,SAAUz7B,GACxB,MAAM,IAAI5nD,MAAM,mCAGlByF,EAAQ69E,MAAQ,WACd,OAAO,I,oBC9MT,IAAI76D,EAAU,EAAQ,KAAwB,QAW9CzV,EAAOC,QAVP,SAAsBJ,EAAO0wE,GAC3B,GAAuB,WAAnB96D,EAAQ5V,IAAiC,OAAVA,EAAgB,OAAOA,EAC1D,IAAI2wE,EAAO3wE,EAAM7T,OAAO0pB,aACxB,QAAa3J,IAATykE,EAAoB,CACtB,IAAI91D,EAAM81D,EAAKznF,KAAK8W,EAAO0wE,GAAQ,WACnC,GAAqB,WAAjB96D,EAAQiF,GAAmB,OAAOA,EACtC,MAAM,IAAIzxB,UAAU,gDAEtB,OAAiB,WAATsnF,EAAoBrnF,OAASq8B,QAAQ1lB,IAEhBG,EAAOC,QAAQ2V,YAAa,EAAM5V,EAAOC,QAAiB,QAAID,EAAOC,S,gCCXpG,kCAGO,IAAIwwE,EAAOjoF,OAAO85C,OAAO,CAE9BouC,KAAM,OAENC,SAAU,WACVC,qBAAsB,sBACtBC,oBAAqB,qBACrBC,cAAe,eACfC,MAAO,QACPC,SAAU,WAEV/c,gBAAiB,iBACjBgd,gBAAiB,iBACjBC,oBAAqB,qBAErBC,SAAU,WACVC,IAAK,WACLC,MAAO,aACPC,OAAQ,cACRC,QAAS,eACTC,KAAM,YACNC,KAAM,YACNC,KAAM,YACNC,OAAQ,cACRC,aAAc,cAEdC,UAAW,YAEXC,WAAY,YACZC,UAAW,WACXC,cAAe,cAEfC,kBAAmB,mBACnBC,0BAA2B,0BAE3BC,uBAAwB,uBACxBC,uBAAwB,uBACxBC,iBAAkB,kBAClBC,uBAAwB,uBACxBC,0BAA2B,0BAC3BC,sBAAuB,sBACvBC,qBAAsB,qBACtBC,sBAAuB,sBACvBC,6BAA8B,4BAE9BC,qBAAsB,sBAEtBC,iBAAkB,kBAElBC,sBAAuB,sBACvBC,sBAAuB,sBACvBC,yBAA0B,yBAC1BC,qBAAsB,qBACtBC,oBAAqB,oBACrBC,4BAA6B,8B,oBCzD/B,IAAIC,EAAe,EAAQ,KACvBC,EAAW,EAAQ,KAgBvBrzE,EAAOC,QALP,SAAmBsE,EAAQ5P,GACzB,IAAI7J,EAAQuoF,EAAS9uE,EAAQ5P,GAC7B,OAAOy+E,EAAatoF,GAASA,OAAQihB,I,iCCVvC9L,EAAQ2V,YAAa,EACrB3V,EAAiB,QAEjB,SAAoBmI,GAClB,IAAI6iB,EAAM,GAEV,IAAK,IAAIt2B,KAAOyT,EACT5f,OAAOK,UAAUC,eAAeC,KAAKqf,EAAOzT,KAIjDs2B,EAAIt2B,GAA6B,kBAAfyT,EAAMzT,GAAoByT,EAAMzT,GAAOyT,EAAMzT,GAAKmzB,KAGtE,OAAOmD,GAGTjrB,EAAOC,QAAUA,EAAiB,S,kCCrBlC,4CAkDeqzE,UAzCG,IAA8C,IAA7C,KAAEllE,EAAF,UAAQ5Y,GAAoC,GAGvD,EAAE/L,GAAMqkB,YAAetY,GAkC7B,OAAO,kBAAC,IAAD,CAAQ+9E,QApCY,CAAC,SAAU,KAAM,IAAK,IAAK,KAAM,OAAQ,UAoCxBzhD,OA5BrB1jB,IAEP3kB,EAAE2kB,GAAMzY,MAAM,KAGDd,KAAKmgC,IAC9B,IAAMw+C,EAAcx+C,EACjBr/B,MAAM,IACNd,KAAI,CAAC4+E,EAAM32D,KACV,GAAa,OAAT22D,EAAe,MAAO,SAE1B,IAIMC,EAAoB,MAATD,EAAe,kBAAoB,GAEpD,MAAM,gBAAN,OALE32D,EAAQ,IAAM,EACV,2BACA,0BAGN,mCAA6D42D,EAA7D,aAA0ED,EAA1E,cAED3+E,KAAK,IAGR,MAAM,sCAAN,OAA6C0+E,EAA7C,cAGkB1+E,KAAK,KAGyB6+E,CAAcvlE,O,oBC9CpE,IAAIwlE,EAAa,EAAQ,KACrBC,EAAW,EAAQ,KAgCvB7zE,EAAOC,QAJP,SAAqBnV,GACnB,OAAgB,MAATA,GAAiB+oF,EAAS/oF,EAAMhB,UAAY8pF,EAAW9oF,K,kCC9BhE,8CAGA,IAAIgpF,EAAiB,KAGjBC,EAAgB,GAChBC,EAAY,EAkHhB,SAASpH,EAAMz1C,GACb,IACE,OAAOA,IACP,MAAO88C,KAWX,IAAIC,EAAY,oBAgBZC,EAbJvH,GAAM,WACJ,OAAOv9C,eAITu9C,GAAM,WACJ,OAAOr3E,MAIT/M,OAAOc,OAAO,MAKV8qF,EAAOD,EAAWD,IAEtBvrF,MAAMurF,IAAc,SAAUE,GAC5B,IACE5rF,OAAO8d,eAAe6tE,EAAYD,EAAW,CAC3CppF,MAAOspF,EACPpuE,YAAY,EACZS,UAAU,EAOVD,cAAc,IAEhB,QACA,OAAO4tE,GAfS,CA7IhB,WACE,SAASA,IAIPhrF,KAAKkqB,GAAK,CAAC,OAAQ0gE,IAAav8D,KAAK48D,MAAOr7E,KAAKw9C,SAASr5B,SAAS,IAAIvwB,MAAM,IAAIkI,KAAK,KAiGxF,OA9FAs/E,EAAKvrF,UAAU8vC,SAAW,WACxB,IAAK,IAAI27C,EAAYR,EAAgBQ,EAAWA,EAAYA,EAAU1xC,OAGpE,GAAIx5C,KAAKkqB,MAAMghE,EAAUC,MAAO,CAC9B,IAAIzpF,EAAQwpF,EAAUC,MAAMnrF,KAAKkqB,IACjC,GAAIxoB,IAAUipF,EAAe,MAS7B,OAPIO,IAAcR,IAIhBA,EAAeS,MAAMnrF,KAAKkqB,IAAMxoB,IAG3B,EAWX,OAPIgpF,IAIFA,EAAeS,MAAMnrF,KAAKkqB,IAAMygE,IAG3B,GAGTK,EAAKvrF,UAAUwqF,SAAW,WACxB,GAAIjqF,KAAKuvC,WACP,OAAOm7C,EAAeS,MAAMnrF,KAAKkqB,KAIrC8gE,EAAKvrF,UAAUw4D,UAAY,SAAUv2D,EAAOy+B,EAE5ChpB,EAAMjW,GACJ,IAAIod,EAEA6sE,IAAS7sE,EAAK,CAChBhf,UAAW,OACPU,KAAKkqB,IAAMxoB,EAAO4c,GACpBk7B,EAASkxC,EACbA,EAAiB,CACflxC,OAAQA,EACR2xC,MAAOA,GAGT,IAGE,OAAOhrD,EAASx/B,MAAMO,EAASiW,GAC/B,QACAuzE,EAAiBlxC,IAMrBwxC,EAAKj0E,KAAO,SAAUopB,GACpB,IAAI3zB,EAAUk+E,EACd,OAAO,WACL,IAAIU,EAAQV,EAEZ,IAEE,OADAA,EAAiBl+E,EACV2zB,EAASx/B,MAAMX,KAAMS,WAC5B,QACAiqF,EAAiBU,KAMvBJ,EAAKK,UAAY,SAAUlrD,EAE3BhpB,EAAMjW,GACJ,IAAIwpF,EAYF,OAAOvqD,EAASx/B,MAAMO,EAASiW,GAX/B,IAAIi0E,EAAQV,EAEZ,IAIE,OAHAA,EAAiB,KAGVvqD,EAASx/B,MAAMO,EAASiW,GAC/B,QACAuzE,EAAiBU,IAOhBJ,EAxGJ,IAkKEA,EAAKj0E,KACAi0E,EAAKK,Y,orgDC/KrB,IAAIn/D,EAAS,KAkBE,EAJA,SAAkBwc,GAC/B,OAZe,OAAXxc,IACFA,EAAS,IAAIlG,OAAOslE,WAGfp/D,GAQYq/D,gBALJ,SAAoB7iD,GACnC,MAAO,gCAAgCjlC,OAAOilC,EAAQ,kBAInB8iD,CAAW9iD,GAAS,aAAagxC,cAAc,QAAQ+R,Y,iCCgDxFC,EAAmB,SAA0BC,GAC/C,IAAIprF,EAAIorF,EAAY7qF,QAAQ,KAC5B,MAAO,CAAC6qF,EAAYtmC,OAAO,EAAG9kD,GAAGs+B,OAAQ8sD,EAAYtmC,OAAO9kD,EAAI,GAAGs+B,SAgBtD,EAbE,SAAoB+sD,GACnC,OA1CsB,SAA2BA,GAMjD,IALA,IACIC,EADAC,EAAe,GAEfvrF,EAAIqrF,EAAQlrF,OACZ2uD,EAAO9uD,EAEJA,MAAO,GAEQ,MAAfqrF,EAAQrrF,IAA6B,MAAfqrF,EAAQrrF,IAAkC,OAAnBqrF,EAAQrrF,EAAI,KACvDsrF,EAEMD,EAAQrrF,KAAOsrF,IACxBA,GAAY,GAFZA,EAAYD,EAAQrrF,IAOnBsrF,GAA4B,MAAfD,EAAQrrF,KACxBsrF,EAAYD,EAAQrrF,IAIH,MAAfqrF,EAAQrrF,IAA4B,MAAdsrF,IACxBA,GAAY,IAIVtrF,EAAI,IAAMsrF,GAA4B,MAAfD,EAAQrrF,MACjCurF,EAAaC,QAAQH,EAAQpoF,MAAMjD,EAAI,EAAG8uD,IAC1CA,EAAO9uD,GAIX,OAAOurF,EASAE,CAAkBJ,GAASngF,IAAIigF,GAAkBjvE,QAAO,SAAUqB,GACvE,IAAIpD,EAAOoD,EAAK,GACZpc,EAAQoc,EAAK,GACjB,OAAOpD,GAAQhZ,KACdm+B,QAAO,SAAUosD,EAAQ7sE,GAC1B,IAnEmDsT,EAmE/ChY,EAAO0E,EAAM,GACb1d,EAAQ0d,EAAM,GAElB,OADA6sE,GArEmDv5D,EAqExBhY,EAlEhB,WAFbgY,EAAOA,EAAKxf,eAGH,WAILwf,EAAKw5D,WAAW,MACXx5D,GAILA,EAAKw5D,WAAW,UAClBx5D,EAAOA,EAAK2yB,OAAO,IAGJ3yB,EAtBHhc,QAAQ,aAAa,SAAUtH,EAAG+8E,GAC9C,OAAOA,EAAGtgF,oBAyE0BnK,EAC7BuqF,IACN,KCvEL,IAIIG,EAAgB,IAAIphE,IAAI,CAC5B,CAAC,iBAAkB,iBAAkB,CAAC,YAAa,aAAc,CAAC,kBAAmB,mBAAoB,CAAC,iBAAkB,kBAAmB,CAAC,eAAgB,gBAAiB,CAAC,cAAe,eAAgB,CAAC,YAAa,aAAc,CAAC,WAAY,YAAa,CAAC,WAAY,YAAa,CAAC,cAAe,eAAgB,CAAC,cAAe,eAAgB,CAAC,UAAW,WAAY,CAAC,QAAS,aAAc,CAAC,UAAW,WAAY,CAAC,YAAa,aAAc,CAAC,UAAW,WAAY,CAAC,kBAAmB,mBAAoB,CAAC,cAAe,eAAgB,CAAC,eAAgB,gBAAiB,CAAC,cAAe,eAAgB,CAAC,WAAY,YAAa,CAAC,0BAA2B,2BAA4B,CAAC,wBAAyB,yBAA0B,CAAC,UAAW,WAAY,CAAC,eAAgB,gBAAiB,CAAC,MAAO,WAAY,CAAC,aAAc,cAAe,CAAC,aAAc,cAAe,CAAC,cAAe,eAAgB,CAAC,iBAAkB,kBAAmB,CAAC,aAAc,cAAe,CAAC,cAAe,eAAgB,CAAC,WAAY,YAAa,CAAC,UAAW,WAAY,CAAC,aAAc,aAAc,CAAC,YAAa,aAAc,CAAC,SAAU,UAAW,CAAC,WAAY,YAAa,CAAC,UAAW,WAAY,CAAC,YAAa,aAAc,CAAC,WAAY,YAAa,CAAC,YAAa,aAAc,CAAC,UAAW,WAAY,CAAC,cAAe,eAAgB,CAAC,eAAgB,gBAAiB,CAAC,YAAa,aAAc,CAAC,aAAc,cAAe,CAAC,YAAa,aAAc,CAAC,WAAY,YAAa,CAAC,aAAc,cAAe,CAAC,cAAe,eAAgB,CAAC,aAAc,cAAe,CAAC,WAAY,YAAa,CAAC,iBAAkB,kBAAmB,CAAC,UAAW,WAAY,CAAC,aAAc,cAAe,CAAC,SAAU,UAAW,CAAC,UAAW,WAAY,CAAC,SAAU,UAAW,CAAC,WAAY,YAAa,CAAC,SAAU,UACrwD,CAAC,gBAAiB,gBAAiB,CAAC,qBAAsB,qBAAsB,CAAC,eAAgB,gBAAiB,CAAC,cAAe,cAAe,CAAC,gBAAiB,iBAAkB,CAAC,gBAAiB,iBAAkB,CAAC,cAAe,eAAgB,CAAC,gBAAiB,iBAAkB,CAAC,iBAAkB,iBAAkB,CAAC,cAAe,eAAgB,CAAC,WAAY,YAAa,CAAC,aAAc,aAAc,CAAC,YAAa,YAAa,CAAC,gBAAiB,iBAAkB,CAAC,YAAa,YAAa,CAAC,sBAAuB,sBAAuB,CAAC,8BAA+B,6BAA8B,CAAC,gBAAiB,gBAAiB,CAAC,kBAAmB,kBAAmB,CAAC,oBAAqB,qBAAsB,CAAC,mBAAoB,oBAAqB,CAAC,kBAAmB,mBAAoB,CAAC,mBAAoB,oBAAqB,CAAC,oBAAqB,oBAAqB,CAAC,WAAY,YAAa,CAAC,oBAAqB,oBAAqB,CAAC,4BAA6B,6BAA8B,CAAC,eAAgB,eAAgB,CAAC,YAAa,YAAa,CAAC,YAAa,aAAc,CAAC,cAAe,eAAgB,CAAC,gBAAiB,gBAAiB,CAAC,cAAe,cAAe,CAAC,aAAc,cAAe,CAAC,cAAe,cAAe,CAAC,YAAa,YAAa,CAAC,mBAAoB,kBAAmB,CAAC,eAAgB,eAAgB,CAAC,aAAc,aAAc,CAAC,eAAgB,eAAgB,CAAC,cAAe,cAAe,CAAC,aAAc,aAAc,CAAC,+BAAgC,8BAA+B,CAAC,6BAA8B,4BAA6B,CAAC,WAAY,YAAa,CAAC,oBAAqB,qBAAsB,CAAC,gBAAiB,iBAAkB,CAAC,cAAe,aAAc,CAAC,iBAAkB,gBAAiB,CAAC,kBAAmB,kBAAmB,CAAC,eAAgB,gBAAiB,CAAC,mBAAoB,oBAAqB,CAAC,YAAa,aAAc,CAAC,aAAc,cAAe,CAAC,WAAY,YAAa,CAAC,eAAgB,gBAAiB,CAAC,iBAAkB,iBAAkB,CAAC,iBAAkB,iBAAkB,CAAC,oBAAqB,qBAAsB,CAAC,aAAc,aAAc,CAAC,eAAgB,gBAAiB,CAAC,aAAc,aAAc,CAAC,eAAgB,eAAgB,CAAC,cAAe,eAAgB,CAAC,cAAe,eAAgB,CAAC,mBAAoB,oBAAqB,CAAC,YAAa,aAAc,CAAC,aAAc,cAAe,CAAC,oBAAqB,oBAAqB,CAAC,qBAAsB,qBAAsB,CAAC,aAAc,cAAe,CAAC,cAAe,cAAe,CAAC,WAAY,WAAY,CAAC,aAAc,cAAe,CAAC,sBAAuB,uBAAwB,CAAC,mBAAoB,oBAAqB,CAAC,eAAgB,gBAAiB,CAAC,gBAAiB,iBAAkB,CAAC,iBAAkB,iBAAkB,CAAC,YAAa,aAAc,CAAC,YAAa,aAAc,CAAC,YAAa,aAAc,CAAC,gBAAiB,iBAAkB,CAAC,sBAAuB,uBAAwB,CAAC,iBAAkB,kBAAmB,CAAC,OAAQ,QAAS,CAAC,OAAQ,QAAS,CAAC,mBAAoB,mBAAoB,CAAC,cAAe,eAAgB,CAAC,YAAa,aAAc,CAAC,qBAAsB,sBAAuB,CAAC,mBAAoB,oBAAqB,CAAC,kBAAmB,kBAAmB,CAAC,mBAAoB,oBAAqB,CAAC,mBAAoB,oBAAqB,CAAC,eAAgB,gBAAiB,CAAC,cAAe,eAAgB,CAAC,eAAgB,gBAAiB,CAAC,cAAe,eAAgB,CAAC,aAAc,aAAc,CAAC,eAAgB,eAAgB,CAAC,yBAA0B,yBAA0B,CAAC,0BAA2B,0BAA2B,CAAC,mBAAoB,mBAAoB,CAAC,oBAAqB,oBAAqB,CAAC,iBAAkB,iBAAkB,CAAC,kBAAmB,kBAAmB,CAAC,oBAAqB,oBAAqB,CAAC,eAAgB,eAAgB,CAAC,iBAAkB,iBAAkB,CAAC,eAAgB,gBAAiB,CAAC,iBAAkB,kBAAmB,CAAC,cAAe,eAAgB,CAAC,UAAW,WAAY,CAAC,UAAW,WAAY,CAAC,cAAe,cAAe,CAAC,kBAAmB,kBAAmB,CAAC,aAAc,cAAe,CAAC,iBAAkB,iBAAkB,CAAC,qBAAsB,qBAAsB,CAAC,sBAAuB,sBAAuB,CAAC,eAAgB,eAAgB,CAAC,gBAAiB,gBAAiB,CAAC,eAAgB,cAAe,CAAC,eAAgB,eAAgB,CAAC,gBAAiB,gBAAiB,CAAC,aAAc,YAAa,CAAC,gBAAiB,eAAgB,CAAC,gBAAiB,eAAgB,CAAC,YAAa,YAAa,CAAC,gBAAiB,gBAAiB,CAAC,UAAW,WAAY,CAAC,aAAc,cAAe,CAAC,iBAAkB,iBAAkB,CAAC,eAAgB,eAAgB,CAAC,eAAgB,eAAgB,CAAC,mBAAoB,oBAAqB,CAAC,WAAY,WAAY,CAAC,gBAAiB,gBAAiB,CAAC,gBAAiB,gBAAiB,CAAC,aAAc,aAAc,CAAC,aAAc,aAAc,CAAC,aAAc,aAAc,CAAC,cAAe,cAAe,CAAC,aAAc,aAAc,CAAC,WAAY,WAAY,CAAC,WAAY,WAAY,CAAC,YAAa,YAAa,CAAC,cAAe,cAAe,CAAC,mBAAoB,oBAAqB,CAAC,aAAc,gBAClpKqhE,EAAa,IAAI1wC,IAAI,CAAC,WAAY,0BAA2B,MAAO,MAAO,eAAgB,iBAAkB,YAAa,iCAAkC,2BAChK,cAEI,EAAe,SAAsB2wC,GAGvC,IAFA,IAAInyE,EAAQ,GAEH5Z,EAAI,EAAGA,EAAI+rF,EAAM5rF,OAAQH,IAAK,CACrC,IAAIgsF,EAEAC,EAAWF,EAAM/rF,GACjBma,EAAO8xE,EAAS9xE,KAChBhZ,EAAQ8qF,EAAS9qF,MAEjBgZ,EAAKwxE,WAAW,OAASG,EAAW7kC,IAAI9sC,KAKxCA,EAAKwxE,WAAW,UAAYxxE,EAAKwxE,WAAW,SAC9C/xE,EAAMO,GAAQhZ,EAKH,UAATgZ,EAKJP,EAAwD,OAAjDoyE,EAAqBH,EAAc5iF,IAAIkR,IAAiB6xE,EAAqB7xE,GAAkB,KAAVhZ,GAAsBA,EAJhHyY,EAAMO,GAAQ,EAAWhZ,IAO7B,OAAOyY,GAKLsyE,EAAgB,SAMhB,EAAkB,SAASC,EAAgBC,EAAUl8E,GAGvD,IAFA,IAL2Cm8E,EAKvCxhB,EAAO,GAEF7qE,EAAI,EAAGA,EAAIosF,EAASjsF,OAAQH,IAAK,CACxC,IAAIob,EAAOgxE,EAASpsF,GAEpB,GAxDe,IAwDXob,EAAKkxE,SAA2B,CAClC,IAAI70E,GAXmC40E,EAWbjxE,EAAKixE,SAV5BH,EAAcppE,KAAKupE,GAAYA,EAAS15E,cAAgB05E,GAY3D,GACS,WAAT50E,GACAvH,EAAQ05E,UAAuC,oBAApB15E,EAAQ05E,SAA0B15E,EAAQ05E,QAAQxuE,IAASlL,EAAQ05E,QAAQ99E,SAAS2L,IAC7G,SAIF,GAAIvH,EAAQiG,QAAS,CACnB,IAAIo2E,EAAyC,oBAApBr8E,EAAQiG,QAAyBjG,EAAQiG,QAAQiF,GAAQvc,OAAOK,UAAUC,eAAeC,KAAK8Q,EAAQiG,QAASsB,GAAQvH,EAAQiG,QAAQsB,QAAQ2K,EAExK,GAAoB,OAAhBmqE,EACF,cAIkBnqE,IAAhBmqE,IACF90E,EAAO80E,GAIX,IAAI3yE,EAAQ,EAAawB,EAAKoxE,YAC9B5yE,EAAM5O,IAAM,IAAeyM,GAAQ,IAAMzX,EACzC,IAAIwd,EAAW2uE,EAAgB/wE,EAAK8vE,WAAYh7E,GAChD26D,EAAKnoE,KAAK,iBAAqB+U,GAAQ,eAAmBA,EAAMmC,EAAO4D,GAAY,gBAAoB/F,EAAMmC,EAAO4D,SAjF1G,IAkFDpC,EAAKkxE,WAETp8E,EAAQouB,MAAoC,KAA5BljB,EAAKqxE,YAAYnuD,QACpCusC,EAAKnoE,KAAK0Y,EAAKqxE,cAKrB,OAAO5hB,EAAK1qE,OAAS,EAAI0qE,EAAO,MAG9B,EAAS,QAAW,SAAgBttD,GACtC,IAAImvE,EAAenvE,EAAKqsE,QACpBA,OAA2B,IAAjB8C,EAA0B,KAAOA,EAC3CC,EAAcpvE,EAAK4qB,OACnBA,OAAyB,IAAhBwkD,EAAyB,KAAOA,EACzCC,EAAervE,EAAKpH,QACpBA,OAA2B,IAAjBy2E,EAA0B,KAAOA,EAC3CC,EAAYtvE,EAAK+gB,KACjBA,OAAqB,IAAduuD,EAAuB,KAAOA,EACzC,OAAO1kD,EAAS,EAAgB,EAASA,GAAS,CAChDyhD,QAASA,EACTzzE,QAASA,EACTmoB,KAAMA,IACH,QAEP,EAAOwuD,UAOH,I,sPC/EW,MAAMC,UAA0BnmD,YAG7ClnC,YAAaka,GACXozE,MAAMpzE,GADyB,4BAQb,KAClB,IAAM,aAAEqzE,GAAiBxtF,KAAKma,MAC1BhQ,SAASjI,OAAyB,IAAjBsrF,GAAwBrjF,SAASjI,KAAKgnC,UAAUe,IAAI,cACrE,iBAAkBjkB,OACpB7b,SAASsjF,iBAAiB,aAAcztF,KAAK0tF,oBAAoB,GAEjEvjF,SAASsjF,iBAAiB,QAASztF,KAAK0tF,oBAAoB,MAd/B,4BAkBb,KAClB,IAAM,aAAEvjD,GAAiBnqC,KAAKma,MAC1BmzE,EAAkBK,eAAethF,SAAS89B,KAC5CnkB,OAAO4nE,SAAW,KAChB5tF,KAAK6tF,SAAS,CAAElvE,UAAW3e,KAAK8tF,0BAtBL,+BA4BV,KACrB,IAAM,QAAEC,GAAY/tF,KAAKma,MACrB4zE,GAASA,IAEb5jF,SAAS6jF,oBAAoB,QAAShuF,KAAK0tF,oBAAoB,GAC/DvjF,SAAS6jF,oBAAoB,aAAchuF,KAAK0tF,oBAAoB,GAChEvjF,SAASjI,MAAMiI,SAASjI,KAAKgnC,UAAUz/B,OAAO,cAClDuc,OAAO4nE,SAAW,UAnCa,8BAsCX,KACpB,IAAM,gBAAErjD,GAAoBvqC,KAAKma,MAGjC,OADchQ,SAAS8jF,gBAAgBC,aAAe/jF,SAASjI,KAAKgsF,aACxDtpE,IAAYupE,GAAW5jD,EAAgBC,QAC5CD,EAAgBE,UA3CQ,6BA8CX5pC,IACpB,IAAM,YAAEupC,EAAF,aAAeojD,EAAf,aAA6BrjD,EAA7B,WAA2CD,GAAelqC,KAAKma,OAC/D,OAAEnD,GAAWnW,EACbmW,aAAkBgP,OAAOooE,aAC3Bp3E,EAAOkyB,UAAUmlD,SAAS,8BAAgCjkD,IAAgC,IAAjBojD,GAC3EtjD,EAAWC,MAnDkB,qBAuDpB,KACX,IAAM,aAAEA,EAAF,WAAgBD,GAAelqC,KAAKma,MAC1C+vB,EAAWC,MAzDoB,4BA4Db,KAClB,IAAM,gBAAEG,EAAF,qBAAmBgkD,EAAnB,yBAAyCC,GAA6BvuF,KAAKma,MACjF,OAAKmwB,EAGDgkD,EAEA,0BACEt2E,KAAK,SACL2G,UAAU,oCACV+rB,QAAS1qC,KAAKwuF,YAEZD,GAKN,0BACEv2E,KAAK,SACL2G,UAAU,oCACV+rB,QAAS1qC,KAAKwuF,YAEd,uBACEvgE,IAAKwgE,IACLxpE,IAAI,uBArBD,QA/DsB,4BA0Fb,KAClB,OAAQjlB,KAAK0uF,uBACX,IAAK,OACH,MAAO,CAAE56E,EAAG,EAAE,IAAK,GAAI1R,EAAG,CAAC,EAAG,GAAIusF,MAAO,CAAC,EAAG,GAAIC,QAAS,CAAC,GAAK,GAAIC,gBAAiB,CAAC,EAAG,IAC3F,IAAK,QACH,MAAO,CAAE/6E,EAAG,CAAC,IAAK,GAAI1R,EAAG,CAAC,EAAG,GAAIusF,MAAO,CAAC,EAAG,GAAIC,QAAS,CAAC,GAAK,GAAIC,gBAAiB,CAAC,EAAG,IAO1F,QACE,MAAO,CAAE/6E,EAAG,CAAC,EAAG,GAAI1R,EAAG,CAAC,IAAK,GAAIusF,MAAO,CAAC,EAAG,GAAIC,QAAS,CAAC,GAAK,GAAIC,gBAAiB,CAAC,EAAG,IAL1F,IAAK,oBACH,MAAO,CAAE/6E,EAAG,CAAC,EAAG,GAAI1R,EAAG,CAAC,IAAK,GAAIusF,MAAO,CAAC,EAAG,GAAIC,QAAS,CAAC,GAAK,GAAIC,gBAAiB,CAAC,EAAG,IAC1F,IAAK,QACH,MAAO,CAAE/6E,EAAG,EAAE,IAAK,IAAK1R,EAAG,CAAC,GAAI,IAAKusF,MAAO,CAAC,GAAK,GAAIC,QAAS,CAAC,EAAG,GAAIC,gBAAiB,CAAC,EAAG,QArGjE,4BA2GZC,IACnB,IAAMC,EAAa/uF,KAAKgvF,oBACpBhsC,EAAS,CAAEisC,UAAW,IAAKC,QAAS,IACrB,SAAfH,GAAwC,UAAfA,IAC3B/rC,EAAS,CAAEisC,UAAW,IAAKC,QAAS,KAItC,IAAMjD,EAAS7sF,OAAOmd,KAAKwyE,GACrBI,EAAe,GACfC,EAAe,GACfC,EAAYpD,EAAOxgF,KAAI,CAAC4kC,EAAc3c,KAE1Cy7D,EAAa,GAAD,OAAI9+C,IAAU0+C,EAAW,GAAD,OAAI1+C,IAAQ,GAEhD++C,EAAa,GAAD,OAAI/+C,IAAUi/C,iBAAOR,EAAaC,EAAW,GAAD,OAAI1+C,IAAQ,GAAK0+C,EAAW,GAAD,OAAI1+C,IAAQ,GAAI2S,GAC5F,CAACmsC,EAAcC,MAExB,MAAO,CACLD,aAAcE,EAAUpD,EAAOvrF,OAAS,GAAG,GAC3Cse,MAAOqwE,EAAUpD,EAAOvrF,OAAS,GAAG,OA/HP,2BAmId,KACjB,IAAM,UAAE2pC,EAAF,aAAaF,GAAiBnqC,KAAKma,MACrCo1E,EAAe,yEAInB,OAHIllD,IAAWklD,GAAY,YAASllD,IAChCF,IAAcolD,GAAY,WAAQplD,IAClCnqC,KAAK0uF,wBAAuBa,GAAY,mCAAgCvvF,KAAK0uF,wBAC1Ea,KAvIPvvF,KAAKigC,MAAQ,CACXthB,UAAW3e,KAAK8tF,oBAElB9tF,KAAKwvF,oBAuIPC,SACE,IAAM,YAAErlD,EAAF,aAAeojD,EAAf,SAA6BzvE,GAAa/d,KAAKma,OAC/C,UAAEwE,GAAc3e,KAAKigC,MACrBkvD,EAAenvF,KAAK0vF,kBAAkBtlD,GAAa+kD,aACnDnwE,EAAQhf,KAAK0vF,kBAAkBtlD,GAAaprB,MAClD,OACE,gBAAC,SAAD,CACEmwE,aAAcA,EACdnwE,MAAOA,IAEJA,GACD,uBAAKL,UAAU,oBAEM,IAAjB6uE,GACE,uBACE7uE,UAAU,4BACVK,MAAO,CAAE4vE,QAAS5vE,EAAM6vE,mBAG9B,uBACE7vE,MAAO,CACLkxC,UAAU,eAAD,OAAiB/zB,OAAOnd,EAAMlL,GAAGigB,WAAjC,cAAiDoI,OAAOnd,EAAM5c,GAAG2xB,WAAjE,uBAA0FoI,OAAOnd,EAAM2vE,OAAO56D,WAA9G,KACT66D,QAAS5vE,EAAM4vE,SAEjBjwE,UAAWA,GAET3e,KAAK2vF,oBACL5xE,O,EA1KKuvE,E,iBAEK,CAAC,e,gCC9CZ,SAASh4E,EAAUs6E,GAChC,GAAoB,OAAhBA,IAAwC,IAAhBA,IAAwC,IAAhBA,EAClD,OAAO3S,IAGT,IAAI/hE,EAASihB,OAAOyzD,GAEpB,OAAIzjD,MAAMjxB,GACDA,EAGFA,EAAS,EAAItL,KAAKwB,KAAK8J,GAAUtL,KAAKC,MAAMqL,GAXrD,mC,kCCAA,uBAASsoE,EAAMqM,GACb,IACE,OAAOA,IACP,MAAOvtF,KAHX,kCAMA,IAAIwtF,EAAatM,GAAM,WACrB,OAAOv9C,eACHu9C,GAAM,WACV,OAAOx9D,WACHw9D,GAAM,WACV,OAAOj+D,SACHi+D,GAAM,WACV,OAAOr3E,MAOTq3E,GAAM,WACJ,OAAOA,EAAMvjF,YAAY,cAAlBujF,MAELuM,GAAe,EA2BZ,SAAStmF,IACVsmF,WACKD,EAAWzmF,QAClB0mF,GAAe,IA5BbD,GAAetM,GAAM,WACvB,MAAO,iBACFA,GAAM,WACX,OAAOn6E,OAEPjK,OAAO8d,eAAe4yE,EAAY,UAAW,CAC3CpuF,MAAO,CACL4kF,IAAK,CAIH0J,SAAU,eAKd5yE,cAAc,EACdR,YAAY,EACZS,UAAU,IAEZ0yE,GAAe,K,0DC7CnB,6CAEIE,EAFJ,OAEiB,EAAertF,OAAOiV,IAAI,sBAAwB,qBAC5D,SAASq4E,IACd,IAAI1jF,EAAU,gBAAoByjF,GAYlC,OAVKzjF,IACHpN,OAAO8d,eAAe,gBAAqB+yE,EAAY,CACrDvuF,MAAO8K,EAAU,gBAAoB,IACrCoQ,YAAY,EACZS,UAAU,EACVD,cAAc,IAEhB5Q,EAAQ2jF,YAAc,iBAGjB3jF,I,kCChBT,iEAuEe,IAzCf,SAAuB2N,GACrB,IAAI4D,EAAW5D,EAAM4D,SACjBqyE,EAAaj2E,EAAMuN,MACnB2oE,EAAa,cAQb3oE,EAAQ,IAAM8hB,SAAQ,WACxB,IAAI/Z,EAAwB,OAAf4gE,EAAsBD,EAlCvC,SAA8BC,EAAYD,GACxC,MAA0B,oBAAfA,EACSA,EAAWC,GAWxB,YAAS,GAAIA,EAAYD,GAqBkBE,CAAqBD,EAAYD,GAMjF,OAJc,MAAV3gE,IACFA,EAAO,KAAyB,OAAf4gE,GAGZ5gE,IACN,CAAC2gE,EAAYC,IAChB,OAAoB,IAAMpyE,cAAc,IAAaC,SAAU,CAC7Dxc,MAAOgmB,GACN3J,K,2HCpDU,SAASwyE,EAAUpN,EAAWr2D,GAG3C,IAFuBogB,QAAQi2C,GAG7B,MAAM,IAAIv/E,MAAMkpB,GCoBL,MAEf,SAAoBprB,EAAOzB,GACzB,OAAOyB,aAAiBzB,GC3B1B,SAAS0tB,EAAkB3W,EAAQmD,GACjC,IAAK,IAAI5Z,EAAI,EAAGA,EAAI4Z,EAAMzZ,OAAQH,IAAK,CACrC,IAAIqtB,EAAazT,EAAM5Z,GACvBqtB,EAAWhR,WAAagR,EAAWhR,aAAc,EACjDgR,EAAWxQ,cAAe,EACtB,UAAWwQ,IAAYA,EAAWvQ,UAAW,GACjDje,OAAO8d,eAAelG,EAAQ4W,EAAWriB,IAAKqiB,IAsB3C,IAAI,EAAsB,WAC/B,SAAS4iE,EAAOtuF,GACd,IAAIwY,EAAOja,UAAUC,OAAS,QAAsBiiB,IAAjBliB,UAAU,GAAmBA,UAAU,GAAK,kBAC3EgwF,EAAiBhwF,UAAUC,OAAS,QAAsBiiB,IAAjBliB,UAAU,GAAmBA,UAAU,GAAK,CACvFy9C,KAAM,EACNwyC,OAAQ,GAEM,kBAATxuF,GAAqBquF,EAAU,EAAG,oCAAoC9sF,OAAO,OAAAwhC,EAAA,GAAQ/iC,GAAO,MACnGlC,KAAKkC,KAAOA,EACZlC,KAAK0a,KAAOA,EACZ1a,KAAKywF,eAAiBA,EACtBzwF,KAAKywF,eAAevyC,KAAO,GAAKqyC,EAAU,EAAG,6DAC7CvwF,KAAKywF,eAAeC,OAAS,GAAKH,EAAU,EAAG,+DA9BnD,IAAsB9iE,EAAaI,EAAYC,EAyC7C,OAzCoBL,EAkCP+iE,GAlCoB3iE,EAkCZ,CAAC,CACpBtiB,IAAK,IACL/B,IAAK,WACH,MAAO,cApCKmkB,EAAkBF,EAAYhuB,UAAWouB,GACrDC,GAAaH,EAAkBF,EAAaK,GAuCzC0iE,EAvBwB,GAgC1B,SAASG,EAAS15E,GACvB,OAAOyE,EAAWzE,EAAQ,K,oBC7D5B,IAAI25E,EAAgB,EAAQ,KACxBC,EAAW,EAAQ,KACnBC,EAAc,EAAQ,KAmC1Bl6E,EAAOC,QAJP,SAAcsE,GACZ,OAAO21E,EAAY31E,GAAUy1E,EAAcz1E,GAAU01E,EAAS11E,K,oBClChE,IAAI41E,EAAa,EAAQ,KACrB5pC,EAAW,EAAQ,KAqCvBvwC,EAAOC,QAXP,SAAoBnV,GAClB,IAAKylD,EAASzlD,GACZ,OAAO,EAKT,IAAImkC,EAAMkrD,EAAWrvF,GACrB,MA7BY,qBA6BLmkC,GA5BI,8BA4BcA,GA9BZ,0BA8B6BA,GA3B7B,kBA2BgDA,I,iCClC/D,iGAuFMyC,EAAqB,CAAC,SAAU,KAAM,IAAK,IAAK,KAAM,OAAQ,UAU9D5xB,EAAU,CACd6xB,OALiB,IAA4C,IAA3C,SAAExqB,EAAF,KAAY/F,GAA8B,EAC5D,OAAO,0BAAM2G,UAAWqJ,IAAOhQ,IAAQ+F,EAAS,MAyEnCizE,UAlEF,IAmBc,IAnBb,QACZ1oE,EAAU,gBADE,QAEZ9M,EAAU,IAFE,UAGZpP,EAAY,GAHA,OAIZ6kF,GAAS,EAJG,KAKZjsE,EALY,UAMZ4R,GAAY,EANA,KAOZs6D,GAAO,EAPK,UAQZ5lE,EAAY,GARA,OASZ6lE,EAAS,eATG,MAUZC,EAVY,YAWZC,GAAc,EAXF,MAYZC,GAAQ,EAZI,UAaZC,GAAY,EAbA,aAcZC,GAAe,EAdH,UAeZC,GAAY,EAfA,cAgBZC,GAAgB,EAhBJ,MAiBZC,GAAQ,EAjBI,WAkBZC,GACwB,GAClB,EAAEvxF,GAAMqkB,YAAetY,GACvB+L,EAAUqD,EACVq2E,EAAiBj7D,EACnBv2B,EAAE2kB,EAAMsG,GACRwmE,IAAW1N,QAAQp/D,EAAnB8sE,CAAyBxmE,GAcvBymE,EAAgBT,EAZCtsE,IACdA,EACJzY,MAAM,IACNd,KAAI,CAAC4+E,EAAM32D,KACV,IACM42D,EAAoB,MAATD,EAAe,iBAAmB,GAEnD,MAAM,kCAAN,OAHoB32D,EAAQ,IAAM,EAAI,KAAO,IAG7C,uCAAmF42D,EAAnF,aAAgGD,EAAhG,cAED3+E,KAAK,IAGoB6+E,CAAcsH,GAAkBA,EAExDlzE,EAAYqzE,IAAWhqE,IAAOvJ,QAAS,CAC3C,CAACuJ,IAAOM,IAAWA,EACnB,CAACN,IAAOiqE,WAAYhB,EACpB,CAACjpE,IAAOkpE,MAAOA,EACf,CAAClpE,IAAOupE,WAAYA,EACpB,CAACvpE,IAAOmpE,IAAUA,EAClB,CAACnpE,IAAO,GAAD,OAAIopE,EAAJ,WAA2CA,EAClD,CAACppE,IAAO2mE,OAAQ0C,EAChB,CAACrpE,IAAOwpE,cAAeA,EACvB,CAACxpE,IAAOypE,WAAYA,EACpB,CAACzpE,IAAO0pE,eAAgBA,EACxB,CAAC1pE,IAAO2pE,OAAQA,IAGlB,OACE,kBAACx5E,EAAD,CAAS,cAAay5E,EAAYjzE,UAAWA,GAC3C,kBAAC,IAAD,CACEwrE,QAAS7hD,EACTI,OAAQqpD,EACRr7E,QAASA,O,iBC5IjBE,EAAOC,QAJP,SAAqBnV,GACnB,YAAiBihB,IAAVjhB,I,kBCfTkV,EAAOC,QAHP,SAAyBgqB,GACvB,GAAIthC,MAAMoX,QAAQkqB,GAAM,OAAOA,GAECjqB,EAAOC,QAAQ2V,YAAa,EAAM5V,EAAOC,QAAiB,QAAID,EAAOC,S,kBCwBvGD,EAAOC,QA3BP,SAA+BgqB,EAAKtgC,GAClC,IAAIsrB,EAAK,MAAQgV,EAAM,KAAO,oBAAsBj+B,QAAUi+B,EAAIj+B,OAAOC,WAAag+B,EAAI,cAC1F,GAAI,MAAQhV,EAAI,CACd,IAAIqmE,EACF/rC,EACAgsC,EACAC,EACAC,EAAO,GACPC,GAAK,EACL3wE,GAAK,EACP,IACE,GAAIwwE,GAAMtmE,EAAKA,EAAGlsB,KAAKkhC,IAAMj/B,KAAM,IAAMrB,EAAG,CAC1C,GAAInB,OAAOysB,KAAQA,EAAI,OACvBymE,GAAK,OACA,OAASA,GAAMJ,EAAKC,EAAGxyF,KAAKksB,IAAK9pB,QAAUswF,EAAKpvF,KAAKivF,EAAGxwF,OAAQ2wF,EAAK3xF,SAAWH,GAAI+xF,GAAK,IAChG,MAAO73E,GACPkH,GAAK,EAAIwkC,EAAK1rC,EACd,QACA,IACE,IAAK63E,GAAM,MAAQzmE,EAAW,SAAMumE,EAAKvmE,EAAW,SAAKzsB,OAAOgzF,KAAQA,GAAK,OAC7E,QACA,GAAIzwE,EAAI,MAAMwkC,GAGlB,OAAOksC,IAG6Bz7E,EAAOC,QAAQ2V,YAAa,EAAM5V,EAAOC,QAAiB,QAAID,EAAOC,S,oBC3B7G,IAAI07E,EAAmB,EAAQ,KAS/B37E,EAAOC,QARP,SAAqC+O,EAAG+mB,GACtC,GAAK/mB,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO2sE,EAAiB3sE,EAAG+mB,GACtD,IAAInsC,EAAIpB,OAAOK,UAAUs0B,SAASp0B,KAAKimB,GAAGpiB,MAAM,GAAI,GAEpD,MADU,WAANhD,GAAkBolB,EAAE3lB,cAAaO,EAAIolB,EAAE3lB,YAAYya,MAC7C,QAANla,GAAqB,QAANA,EAAoBjB,MAAM6D,KAAKwiB,GACxC,cAANplB,GAAqB,2CAA2C6iB,KAAK7iB,GAAW+xF,EAAiB3sE,EAAG+mB,QAAxG,IAE4C/1B,EAAOC,QAAQ2V,YAAa,EAAM5V,EAAOC,QAAiB,QAAID,EAAOC,S,kBCJnHD,EAAOC,QALP,SAA2BgqB,EAAK2E,IACnB,MAAPA,GAAeA,EAAM3E,EAAIngC,UAAQ8kC,EAAM3E,EAAIngC,QAC/C,IAAK,IAAIH,EAAI,EAAGusC,EAAO,IAAIvtC,MAAMimC,GAAMjlC,EAAIilC,EAAKjlC,IAAKusC,EAAKvsC,GAAKsgC,EAAItgC,GACnE,OAAOusC,GAE2Bl2B,EAAOC,QAAQ2V,YAAa,EAAM5V,EAAOC,QAAiB,QAAID,EAAOC,S,kBCFzGD,EAAOC,QAHP,WACE,MAAM,IAAIhX,UAAU,8IAEa+W,EAAOC,QAAQ2V,YAAa,EAAM5V,EAAOC,QAAiB,QAAID,EAAOC,S,iCCHzF,SAASkG,EAAgBI,EAAK5R,EAAK7J,GAYhD,OAXI6J,KAAO4R,EACT/d,OAAO8d,eAAeC,EAAK5R,EAAK,CAC9B7J,MAAOA,EACPkb,YAAY,EACZQ,cAAc,EACdC,UAAU,IAGZF,EAAI5R,GAAO7J,EAGNyb,EAZT,mC,mBCAA,SASA,SAAWq1E,GAaT,QATgB,2BAAd,KAAc,mCACa,EAI3B57E,EAAOC,QAAU27E,MACU,EAGE,CAC7B,IAAIC,EAAazsE,OAAOzc,QACpBmpF,EAAM1sE,OAAOzc,QAAUipF,IAE3BE,EAAIC,WAAa,WAEf,OADA3sE,OAAOzc,QAAUkpF,EACVC,IAnBb,EAsBG,WACD,SAASE,IAIP,IAHA,IAAIryF,EAAI,EACJuB,EAAS,GAENvB,EAAIE,UAAUC,OAAQH,IAAK,CAChC,IAAIwsF,EAAatsF,UAAUF,GAE3B,IAAK,IAAIgL,KAAOwhF,EACdjrF,EAAOyJ,GAAOwhF,EAAWxhF,GAI7B,OAAOzJ,EAGT,SAASwkD,EAAOhmD,GACd,OAAOA,EAAEoW,QAAQ,mBAAoBm8E,oBA2HvC,OAxHA,SAAShoF,EAAKioF,GACZ,SAASJ,KAET,SAAS3oE,EAAIxe,EAAK7J,EAAOqrF,GACvB,GAAwB,qBAAb5iF,SAAX,CAQkC,kBAJlC4iF,EAAa6F,EAAO,CAClBjhE,KAAM,KACL+gE,EAAIpyB,SAAUysB,IAEKgG,UACpBhG,EAAWgG,QAAU,IAAI1kE,KAAkB,EAAb,IAAIA,KAAkC,MAArB0+D,EAAWgG,UAI5DhG,EAAWgG,QAAUhG,EAAWgG,QAAUhG,EAAWgG,QAAQC,cAAgB,GAE7E,IACE,IAAIlxF,EAASkoB,KAAKC,UAAUvoB,GAExB,UAAU2hB,KAAKvhB,KACjBJ,EAAQI,GAEV,MAAOjB,IAETa,EAAQoxF,EAAUj1B,MAAQi1B,EAAUj1B,MAAMn8D,EAAO6J,GAAOy5C,mBAAmBllD,OAAO4B,IAAQgV,QAAQ,4DAA6Dm8E,oBAC/JtnF,EAAMy5C,mBAAmBllD,OAAOyL,IAAMmL,QAAQ,2BAA4Bm8E,oBAAoBn8E,QAAQ,UAAWymB,QACjH,IAAI81D,EAAwB,GAE5B,IAAK,IAAIC,KAAiBnG,EACnBA,EAAWmG,KAIhBD,GAAyB,KAAOC,GAEE,IAA9BnG,EAAWmG,KAWfD,GAAyB,IAAMlG,EAAWmG,GAAe3mF,MAAM,KAAK,KAGtE,OAAOpC,SAASgpF,OAAS5nF,EAAM,IAAM7J,EAAQuxF,GAG/C,SAASzpF,EAAI+B,EAAKq+C,GAChB,GAAwB,qBAAbz/C,SAAX,CAUA,IANA,IAAIipF,EAAM,GAGNC,EAAUlpF,SAASgpF,OAAShpF,SAASgpF,OAAO5mF,MAAM,MAAQ,GAC1DhM,EAAI,EAEDA,EAAI8yF,EAAQ3yF,OAAQH,IAAK,CAC9B,IAAI80B,EAAQg+D,EAAQ9yF,GAAGgM,MAAM,KACzB4mF,EAAS99D,EAAM7xB,MAAM,GAAGkI,KAAK,KAE5Bk+C,GAA6B,MAArBupC,EAAOz4D,OAAO,KACzBy4D,EAASA,EAAO3vF,MAAM,GAAI,IAG5B,IACE,IAAIkX,EAAO4rC,EAAOjxB,EAAM,IAGxB,GAFA89D,GAAUL,EAAU5xD,MAAQ4xD,GAAWK,EAAQz4E,IAAS4rC,EAAO6sC,GAE3DvpC,EACF,IACEupC,EAASnpE,KAAKwO,MAAM26D,GACpB,MAAOtyF,IAKX,GAFAuyF,EAAI14E,GAAQy4E,EAER5nF,IAAQmP,EACV,MAEF,MAAO7Z,KAGX,OAAO0K,EAAM6nF,EAAI7nF,GAAO6nF,GAyB1B,OAtBAV,EAAI3oE,IAAMA,EAEV2oE,EAAIlpF,IAAM,SAAU+B,GAClB,OAAO/B,EAAI+B,GAAK,IAKlBmnF,EAAIY,QAAU,SAAU/nF,GACtB,OAAO/B,EAAI+B,GAAK,IAKlBmnF,EAAIjpF,OAAS,SAAU8B,EAAKwhF,GAC1BhjE,EAAIxe,EAAK,GAAIqnF,EAAO7F,EAAY,CAC9BgG,SAAU,MAIdL,EAAIpyB,SAAW,GACfoyB,EAAIa,cAAgB1oF,EACb6nF,EAGF7nF,EAAK,mB,oBC3Kd,IAAI2oF,EAAc,EAAQ,KACtBC,EAAkB,EAAQ,KAqC9B78E,EAAOC,QAxBP,SAAoBI,EAAQkD,EAAOgB,EAAQu4E,GACzC,IAAIC,GAASx4E,EACbA,IAAWA,EAAS,IAIpB,IAHA,IAAIuY,GAAS,EACThzB,EAASyZ,EAAMzZ,SAEVgzB,EAAQhzB,GAAQ,CACvB,IAAI6K,EAAM4O,EAAMuZ,GACZxB,EAAWwhE,EAAaA,EAAWv4E,EAAO5P,GAAM0L,EAAO1L,GAAMA,EAAK4P,EAAQlE,QAAU0L,OAEvEA,IAAbuP,IACFA,EAAWjb,EAAO1L,IAGhBooF,EACFF,EAAgBt4E,EAAQ5P,EAAK2mB,GAE7BshE,EAAYr4E,EAAQ5P,EAAK2mB,GAI7B,OAAO/W,I,iCClCT,sHAoBMy4E,EAAkCC,aAAaC,QACnD,yBASIC,EAAcH,EAChB5pE,KAAKwO,MAAMo7D,GAPM,CACnBI,IAAK,EACLC,OAAQ,WACRC,mBAAmB,GAOfC,EAAkBvf,YAAoBmf,GAEtC/vE,EAAY,yCAqCHowE,UAnCQ,IAII,IAJH,eACtBC,EADsB,qBAEtBC,EAFsB,UAGtBC,GAAY,GACY,EAClBC,EAAaC,YAAeN,GAMlC,OAJAnqD,qBAAU,KACR6pD,aAAa1tE,QAAQ,wBAAyB6D,KAAKC,UAAUuqE,MAC5D,CAACA,IAGF,oCACE,kBAAC,UAAD,CACEH,eAAgBA,EAChBjrE,gBAAiBkrE,IAElBC,EACC,oCACE,yBAAK51E,UAAS,UAAKqF,EAAL,mBACZ,kBAAC,UAAD,OAEF,yBAAKrF,UAAS,UAAKqF,EAAL,mBACZ,kBAAC,UAAD,QAIJ,yBAAKrF,UAAS,UAAKqF,EAAL,mBACZ,kBAAC,UAAD,MACA,kBAAC,UAAD,U,iCC/DV,SAAS0/D,EAAuBvmE,GAC9B,OAAOA,GAAOA,EAAIqP,WAAarP,EAAM,CACnC,QAAWA,GALftG,EAAQ2V,YAAa,EACrB3V,EAAQ69E,sBAAwBA,EAQhC,IAAIC,EAAS,EAAQ,IAIjBC,EAAclR,EAFD,EAAQ,KAIrBmR,EAAW,EAAQ,KAEnBC,EAAc,EAAQ,KAItBC,EAAWrR,EAFD,EAAQ,MAIlBsR,EAAuB,EAAQ,KAGnCn+E,EAAQo+E,QADM,QAGdp+E,EAAQq+E,kBADgB,EAGxBr+E,EAAQs+E,kCADgC,EAaxCt+E,EAAQu+E,iBAXe,CACrB,EAAG,cAEH,EAAG,gBACH,EAAG,gBACH,EAAG,WACH,EAAG,mBACH,EAAG,kBACH,EAAG,kBACH,EAAG,YAGL,IAAIC,EAAa,kBAEjB,SAASX,EAAsBY,EAASC,EAAUC,GAChDx1F,KAAKs1F,QAAUA,GAAW,GAC1Bt1F,KAAKu1F,SAAWA,GAAY,GAC5Bv1F,KAAKw1F,WAAaA,GAAc,GAEhCX,EAASY,uBAAuBz1F,MAEhC80F,EAAYY,0BAA0B11F,MAGxC00F,EAAsBj1F,UAAY,CAChCQ,YAAay0F,EACb3kE,OAAQglE,EAAkB,QAC1BvlE,IAAKulE,EAAkB,QAAEvlE,IACzBmmE,eAAgB,SAAwBj7E,EAAMqzB,GAC5C,GAAI4mD,EAAO5gE,SAASp0B,KAAK+a,KAAU26E,EAAY,CAC7C,GAAItnD,EACF,MAAM,IAAI6mD,EAAqB,QAAE,2CAGnCD,EAAO/B,OAAO5yF,KAAKs1F,QAAS56E,QAE5B1a,KAAKs1F,QAAQ56E,GAAQqzB,GAGzB6nD,iBAAkB,SAA0Bl7E,UACnC1a,KAAKs1F,QAAQ56E,IAEtBm7E,gBAAiB,SAAyBn7E,EAAMo2C,GAC9C,GAAI6jC,EAAO5gE,SAASp0B,KAAK+a,KAAU26E,EACjCV,EAAO/B,OAAO5yF,KAAKu1F,SAAU76E,OACxB,CACL,GAAuB,qBAAZo2C,EACT,MAAM,IAAI8jC,EAAqB,QAAE,4CAA8Cl6E,EAAO,kBAGxF1a,KAAKu1F,SAAS76E,GAAQo2C,IAG1BglC,kBAAmB,SAA2Bp7E,UACrC1a,KAAKu1F,SAAS76E,IAEvBq7E,kBAAmB,SAA2Br7E,EAAMqzB,GAClD,GAAI4mD,EAAO5gE,SAASp0B,KAAK+a,KAAU26E,EAAY,CAC7C,GAAItnD,EACF,MAAM,IAAI6mD,EAAqB,QAAE,8CAGnCD,EAAO/B,OAAO5yF,KAAKw1F,WAAY96E,QAE/B1a,KAAKw1F,WAAW96E,GAAQqzB,GAG5BioD,oBAAqB,SAA6Bt7E,UACzC1a,KAAKw1F,WAAW96E,IAOzBu7E,4BAA6B,WAC3BjB,EAAqBkB,0BAGzB,IAAI1mE,EAAMulE,EAAkB,QAAEvlE,IAC9B3Y,EAAQ2Y,IAAMA,EACd3Y,EAAQs/E,YAAcxB,EAAOwB,YAC7Bt/E,EAAQkZ,OAASglE,EAAkB,S,wJC5F9BqB,E,kDCtBCC,EAAU,CAAC30F,EAAY6nE,KAC3B,GAAI7nE,IAAU6nE,EACZ,OAAO,EAGT,GACW,MAAT7nE,GACS,MAAT6nE,GACiB,kBAAV7nE,GACU,kBAAV6nE,EAEP,OAAO,EAGT,IAAM+sB,EAAQl3F,OAAOmd,KAAK7a,GACpB60F,EAAQn3F,OAAOmd,KAAKgtD,GAE1B,GAAI+sB,EAAM51F,SAAW61F,EAAM71F,OACzB,OAAO,EAGT,IAAK,IAAM6K,KAAO+qF,EAChB,IAAKC,EAAMlqF,SAASd,KAAS8qF,EAAQ30F,EAAM6J,GAAMg+D,EAAMh+D,IACrD,OAAO,EAIX,OAAO,GAGM8qF,I,mDDRVD,K,kBAAAA,E,iBAAAA,M,KA2CL,IAAMI,EAAoB,CACxBC,cAAe,CACb,MACA,OACA,QACA,sBACA,2BACA,yBACA,gBAEFC,cAAe,CACb,OACA,OACA,gBACA,UACA,KACA,OACA,QACA,sBAEF7rC,KAAM,CAAC,mBAAoB,eAAgB,gBAGvC8rC,EAA8B,CAClCF,cAAe,CACb,QACA,+BACA,4BACA,yCAEFC,cAAe,CAAC,UAAW,cAAe,0BAC1C7rC,KAAM,CACJ,mBACA,eACA,uBACA,cACA,kBACA,UAIE+rC,EAAiBxzE,IACE,kBAAZA,EACT7Z,SAAe6Z,GAEfhkB,OAAOmd,KAAKhT,SACTkT,QAAQ/B,GAA0B0I,EAAQC,KAAK3I,KAC/CoC,SAASpC,IACRnR,SAAemR,GACfnR,SAAemR,EAAM,CAAEiX,KAAM,IAAKklE,OAAQ7wE,OAAO1L,SAASw8E,OAC1DvtF,SAAemR,EAAM,CAAEiX,KAAM,IAAKklE,OAAO,IAAD,OAAM7wE,OAAO1L,SAASw8E,YAKhEC,EAA2B3zE,IACR,kBAAZA,EACT4C,OAAO6tE,aAAamD,WAAW5zE,GAE/BhkB,OAAOmd,KAAKyJ,OAAO6tE,cAChBp3E,QAAQ/B,GAA0B0I,EAAQC,KAAK3I,KAC/CoC,SAASpC,GAAuBsL,OAAO6tE,aAAamD,WAAWt8E,MAIhEu8E,EAAuB,KACvBjxE,OAAOkxE,aACTlxE,OAAOkxE,eASLC,EAAuB,IAAkD,IAAjD,UAAE3vE,EAAF,UAAa4vE,GAAmC,EACxEpxE,OAAOqxE,YACTrxE,OAAOqxE,aAGLrxE,OAAOsxE,aACTtxE,OAAOsxE,YAAY,CAAE9vE,YAAW4vE,eAc9BG,EAAoB,IAAkD,IAAjD,UAAE/vE,EAAF,UAAa4vE,GAAmC,EACnEI,EAAc,CAClBC,sBAAuBjwE,EACnB4uE,EAAiBsB,QACjBtB,EAAiBuB,OACrBC,iBAAkBpwE,EACd4uE,EAAiBsB,QACjBtB,EAAiBuB,OACrBE,WAAYT,EAAYhB,EAAiBsB,QAAUtB,EAAiBuB,OACpEG,kBAAmBtwE,EACf4uE,EAAiBsB,QACjBtB,EAAiBuB,OACrBI,wBAAyBX,EACrBhB,EAAiBsB,QACjBtB,EAAiBuB,OACrBK,aAAcZ,EACVhB,EAAiBsB,QACjBtB,EAAiBuB,OACrBM,mBAAoBb,EAChBhB,EAAiBsB,QACjBtB,EAAiBuB,QAGvB3xE,OAAOkyE,KAAK,UAAW,SAAUV,GACjC3D,aAAa1tE,QAAQ,cAAe6D,KAAKC,UAAUutE,IAGnD/tE,YAAW,KACTzD,OAAOmyE,UAAUl1F,KAAK,CAAEguB,MAAO,qBAC9B,MAGCmnE,EAA6BjuF,SAASkuF,eAAe,kBAErDC,EAAgC,IACpCtyE,OAAO6tE,aAAaC,QAAQ,iBAExByE,EAAoB,KACxB,GAAKH,EAAL,CAEA,IAEM9vE,EAFsB/e,MAAY,uBAGdivF,IAAYC,GAAKC,UAAQC,OAASD,UAAQE,QAE9DC,EAAgCP,IAChCQ,EAAgCD,EAClC7uE,KAAKwO,MAAMqgE,GACX,KAEEE,EAAqC,cAAZ,OAAPD,QAAO,IAAPA,OAAA,EAAAA,EAAS74D,OAE5B64D,GACH9yE,OAAO6tE,aAAa1tE,QAClB,gBACA6D,KAAKC,UAAU,CACbgW,MAAO,kBAKb,IAAM+4D,EAAoBC,IACxB,IAAMC,EAAkCZ,IAClCa,EACJD,EACIlvE,KAAKwO,MAAM0gE,GACX,KAkBN,GAhBKD,EAAYzxE,WAAcyxE,EAAY7B,YACzCpxE,OAAOwB,UAAY,CAEjBC,MAAO,OACPkvC,SAAU,OAGVlG,MAAO,OACP2oC,KAAM,QAhFZ5C,EAAkB3rC,KAAK/tC,QAAQ85E,GAC/BD,EAA4B9rC,KAAK/tC,QAAQi6E,KAuFlCoC,GAA6C,iBAA1BA,EAAgBl5D,MAA0B,CAIhE,GAAkD,MAA9Cja,OAAO6tE,aAAaC,QAAQ,eAAwB,OAExD,OACEqD,EAAqB8B,GACrBhC,IACAM,EAAkB0B,GAKlBE,KAEGA,EAAgBF,YAAYzxE,WAAayxE,EAAYzxE,UACxD2vE,EAAqB8B,GAGrBE,EAAgBF,YAAYzxE,YAC3ByxE,EAAYzxE,YAlHnBgvE,EAAkBC,cAAc35E,QAAQ85E,GACxCD,EAA4BF,cAAc35E,QAAQi6E,KAuHzCoC,EAAgBF,YAAY7B,WAAa6B,EAAY7B,UACxDH,IAGAkC,EAAgBF,YAAY7B,YAC3B6B,EAAY7B,YA5InBZ,EAAkBE,cAAc55E,QAAQ85E,GACxCD,EAA4BD,cAAc55E,QAAQi6E,IAiJzCV,EAAQ8C,EAAgBF,YAAaA,IACxC1B,EAAkB0B,KAKxB,GAAIP,UAAQE,UAAYE,EAAS,CAC/B,IAAMO,EAAY,IAAIhrE,KACtBirE,0BAA8B,KAC5B,IAAMC,EAAU,IAAIlrE,KAChBmrE,YAAoBD,EAASF,GAAa,GAC5CI,iCAAuB,CACrBR,YAAa,CAAE7B,WAAW,EAAM5vE,WAAW,GAC3Cc,UACAoxE,UAAWC,YAAUC,KACrBptF,QAASqtF,UAAQC,WAGrBd,EAAiB,CAAE5B,WAAW,EAAM5vE,WAAW,OAUnD,GANAuyE,IAAStK,OAEP,kBAACuK,EAAA,QAAD,CAAe1xE,QAASA,EAAS0wE,iBAAkBA,IACnDZ,IAGGW,EACH,GAAQzwE,IACDowE,UAAQC,OACXsB,kCAAwB,CAAEC,SAAS,SAGnCC,mCAAyB,CAAED,SAAS,MAKtCE,EAA4B,KAChCH,kCAAwB,CAAEC,SAAS,KAGrCl0E,OAAOuyE,kBAAoBA,EAC3BvyE,OAAOo0E,0BAA4BA,G,iCExUnC,sDA6Be,SAASC,EAAyBC,EAAUC,GAEzD,OADA,YAAa,EAAG95F,WACT,YAAO65F,GAAUnoF,UAAY,YAAOooF,GAAWpoF,Y,iCC/BxD,sCAAIqoF,EAAc,CAChBppF,KAAMxB,KAAKwB,KACXupE,MAAO/qE,KAAK+qE,MACZ9qE,MAAOD,KAAKC,MACZ4qF,MAAO,SAAe/4F,GACpB,OAAOA,EAAQ,EAAIkO,KAAKwB,KAAK1P,GAASkO,KAAKC,MAAMnO,KAK9C,SAASg5F,EAAkBxqD,GAChC,OAAOA,EAASsqD,EAAYtqD,GAAUsqD,EAAiC,Q,iCCSzE,SAASG,EAAWC,EAAQp8E,EAAO6D,GACjCA,EAAOA,GAAQ,UACf,IAAI+hD,EAtBN,SAAyBw2B,EAAQp8E,GAC/B,GAAc,IAAVA,EACF,OAAOo8E,EAAOC,IAGhB,IAAIC,EAASt8E,EAAQ,IAErB,GAAIs8E,GAAU,IAAMA,EAAS,GAC3B,OAAOF,EAAOrxB,MAGhB,IAAIwxB,EAAQD,EAAS,GAErB,OAAIC,GAAS,GAAKA,GAAS,EAClBH,EAAOI,QAGTJ,EAAOrxB,MAKF0xB,CAAgBL,EAAQp8E,GAEpC,OADgB4lD,EAAM/hD,IAAS+hD,GACd1tD,QAAQ,YAAa8H,GAGxC,IAAI08E,EAAuB,CACzBC,iBAAkB,CAChBN,IAAK,CACHO,QAAS,yBACTC,KAAM,8BACNC,OAAQ,+BAEVN,QAAS,mCACTzxB,MAAO,mCAETgyB,SAAU,CACRV,IAAK,CACHO,QAAS,UACTC,KAAM,eACNC,OAAQ,gBAEVN,QAAS,oBACTzxB,MAAO,oBAETiyB,YAAa,CACXX,IAAK,qBACLG,QAAS,qBACTzxB,MAAO,sBAETkyB,iBAAkB,CAChBZ,IAAK,CACHO,QAAS,wBACTC,KAAM,6BACNC,OAAQ,8BAEVN,QAAS,kCACTzxB,MAAO,kCAETmyB,SAAU,CACRb,IAAK,CACHO,QAAS,SACTC,KAAM,cACNC,OAAQ,eAEVN,QAAS,mBACTzxB,MAAO,mBAEToyB,YAAa,CACXd,IAAK,CACHO,QAAS,qBACTC,KAAM,qBACNC,OAAQ,2BAEVN,QAAS,+BACTzxB,MAAO,+BAETqyB,OAAQ,CACNf,IAAK,CACHO,QAAS,UACTC,KAAM,eACNC,OAAQ,gBAEVN,QAAS,oBACTzxB,MAAO,oBAETsyB,MAAO,CACLhB,IAAK,CACHO,QAAS,aACTC,KAAM,aACNC,OAAQ,gBAEVN,QAAS,gBACTzxB,MAAO,iBAETuyB,YAAa,CACXjB,IAAK,sBACLG,QAAS,+BACTzxB,MAAO,gCAETwyB,OAAQ,CACNlB,IAAK,eACLG,QAAS,qBACTzxB,MAAO,qBAETyyB,aAAc,CACZnB,IAAK,0BACLG,QAAS,qCACTzxB,MAAO,sCAET0yB,QAAS,CACPpB,IAAK,eACLG,QAAS,0BACTzxB,MAAO,2BAET2yB,YAAa,CACXrB,IAAK,iBACLG,QAAS,4BACTzxB,MAAO,4BAET4yB,OAAQ,CACNtB,IAAK,MACLG,QAAS,iBACTzxB,MAAO,iBAET6yB,WAAY,CACVvB,IAAK,YACLG,QAAS,uBACTzxB,MAAO,uBAET8yB,aAAc,CACZxB,IAAK,aACLG,QAAS,wBACTzxB,MAAO,yB,YCrGI,EAdE,CACfl7D,KAAM,OAAA0T,EAAA,GAAkB,CACtBC,QApBc,CAChBC,KAAM,kBACNC,KAAM,YACNC,OAAQ,WACRC,MAAO,WAiBL7K,aAAc,SAEhB8K,KAAM,OAAAN,EAAA,GAAkB,CACtBC,QAlBc,CAChBC,KAAM,gBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,SAeL7K,aAAc,SAEhB+K,SAAU,OAAAP,EAAA,GAAkB,CAC1BC,QAhBkB,CACpBC,KAAM,oBACNC,KAAM,oBACNC,OAAQ,qBACRC,MAAO,sBAaL7K,aAAc,U,gBC7BlB,IAAI+kF,EAAqB,CACvBC,UAAW,UACXC,SAAU,YAERC,EAAqB,CACvBF,UAAW,MACXC,SAAU,MAERE,EAAqB,CACvBH,UAAW,gBACXC,SAAU,iBAERG,EAAuB,CACzB,EAAG,WACH,EAAG,YACH,EAAG,YACH,EAAG,WACH,EAAG,YACH,EAAG,YACH,EAAG,YAGL,SAASC,EAActuF,EAAOD,EAAMwuF,EAAUpsF,GAC5C,GCpBa,SAAuBqsF,EAAeC,EAAgBtsF,GACnE,OAAAuB,EAAA,GAAa,EAAGvR,WAChB,IAAIu8F,EAAsB,OAAAviB,EAAA,GAAeqiB,EAAersF,GACpDwsF,EAAuB,OAAAxiB,EAAA,GAAesiB,EAAgBtsF,GAC1D,OAAOusF,EAAoB7qF,YAAc8qF,EAAqB9qF,UDgB1D+qF,CAAc7uF,EAAMwuF,EAAUpsF,GAChC,OAAOgsF,EACF,GAAc,aAAVnuF,EACT,OAAOguF,EACF,GAAc,aAAVhuF,EACT,OAAOouF,EAEP,MAAM,IAAI94F,MAAM,yCAAyCH,OAAO6K,IAWpE,SAAS6uF,EAAwB7uF,EAAOD,EAAMwuF,EAAUpsF,GACtD,IAAI2sF,EARN,SAAsB9uF,EAAOD,EAAMwuF,EAAUpsF,GAC3C,IAAImC,EAAMvE,EAAKsE,YAGf,OAFiBiqF,EAActuF,EAAOD,EAAMwuF,EAAUpsF,GAC9BksF,EAAqB/pF,IAK7ByqF,CAAa/uF,EAAOD,EAAMwuF,EAAUpsF,GACpD,MAAO,IAAIhN,OAAO25F,EAAW,gBAG/B,IAAIE,EAAuB,CACzBC,SAAUJ,EACVK,UAAW,gBACXC,MAAO,gBACPC,SAAU,cACVC,SAAUR,EACV5zB,MAAO,K,YE9CT,IAgIe,EAhCA,CACbl5D,cAtGF,SAAuBu/E,GACrB,IAAI10E,EAASihB,OAAOyzD,GACpB,OAAO9vF,OAAOob,IAqGd/K,IAAK,OAAA+G,EAAA,GAAgB,CACnBS,OAnGY,CACdimF,OAAQ,CAAC,SAAU,QACnBC,YAAa,CAAC,SAAU,QACxBC,KAAM,CAAC,4BAAmB,eAiGxBvmF,aAAc,SAEhBpG,QAAS,OAAA+F,EAAA,GAAgB,CACvBS,OAlGgB,CAClBimF,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,QAAS,SAAU,UAAW,UAC5CC,KAAM,CAAC,iBAAa,kBAAc,mBAAe,oBAgG/CvmF,aAAc,OACdK,iBAAkB,SAA0BzG,GAC1C,OAAOgrB,OAAOhrB,GAAW,KAG7BvC,MAAO,OAAAsI,EAAA,GAAgB,CACrBS,OApGc,CAChBimF,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,WAAO,MAAO,OAC3FC,KAAM,CAAC,eAAW,OAAQ,SAAU,gBAAY,MAAO,WAAY,SAAU,gBAAY,gBAAY,mBAAe,WAAY,kBAkG9HvmF,aAAc,OACdD,iBAjGwB,CAC1BsmF,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,WAAO,MAAO,OAC3FC,KAAM,CAAC,WAAY,SAAU,QAAS,WAAY,OAAQ,UAAW,QAAS,WAAY,gBAAY,oBAAgB,YAAa,YA+FjItmF,uBAAwB,SAE1B5E,IAAK,OAAAsE,EAAA,GAAgB,CACnBS,OAhGY,CACdimF,OAAQ,CAAC,IAAK,IAAK,IAAK,SAAK,IAAK,IAAK,KACvCx7E,MAAO,CAAC,MAAO,MAAO,MAAO,WAAO,MAAO,WAAO,OAClDy7E,YAAa,CAAC,SAAU,OAAQ,MAAO,WAAO,OAAQ,MAAO,QAC7DC,KAAM,CAAC,YAAa,oBAAgB,SAAU,aAAS,WAAY,cAAU,WA6F3EvmF,aAAc,OACdD,iBA5FsB,CACxBsmF,OAAQ,CAAC,IAAK,IAAK,IAAK,SAAK,IAAK,IAAK,KACvCx7E,MAAO,CAAC,MAAO,MAAO,MAAO,WAAO,MAAO,WAAO,OAClDy7E,YAAa,CAAC,SAAU,OAAQ,MAAO,WAAO,OAAQ,MAAO,QAC7DC,KAAM,CAAC,YAAa,oBAAgB,SAAU,aAAS,WAAY,cAAU,WAyF3EtmF,uBAAwB,SAE1BvE,UAAW,OAAAiE,EAAA,GAAgB,CACzBS,OA1FkB,CACpBimF,OAAQ,CACNG,GAAI,IACJC,GAAI,IACJC,SAAU,gBACVC,KAAM,WACNC,QAAS,OACTC,UAAW,cACXC,QAAS,SACTC,MAAO,OAETT,YAAa,CACXE,GAAI,KACJC,GAAI,KACJC,SAAU,iBACVC,KAAM,gBACNC,QAAS,OACTC,UAAW,kBACXC,QAAS,aACTC,MAAO,OAETR,KAAM,CACJC,GAAI,KACJC,GAAI,KACJC,SAAU,iBACVC,KAAM,gBACNC,QAAS,OACTC,UAAW,kBACXC,QAAS,aACTC,MAAO,QA8DP/mF,aAAc,OACdD,iBA5D4B,CAC9BsmF,OAAQ,CACNG,GAAI,IACJC,GAAI,IACJC,SAAU,kBACVC,KAAM,cACNC,QAAS,OACTC,UAAW,eACXC,QAAS,SACTC,MAAO,UAETT,YAAa,CACXE,GAAI,KACJC,GAAI,KACJC,SAAU,oBACVC,KAAM,kBACNC,QAAS,OACTC,UAAW,mBACXC,QAAS,YACTC,MAAO,UAETR,KAAM,CACJC,GAAI,KACJC,GAAI,KACJC,SAAU,oBACVC,KAAM,kBACNC,QAAS,OACTC,UAAW,mBACXC,QAAS,YACTC,MAAO,WAgCP9mF,uBAAwB,U,gBCnHxBzO,EAAS,CACXwZ,KAAM,KACNC,eLsHa,SAAwBlU,EAAOkQ,EAAO/N,GAEnD,IAAImqF,EAASM,EAAqB5sF,GAElC,OAHAmC,EAAUA,GAAW,IAGR8tF,UAIT9tF,EAAQ+tF,WAAa,EAChB,MAAQ7D,EAAWC,EAAQp8E,EAAO,UAElCm8E,EAAWC,EAAQp8E,EAAO,QAAU,QANpCm8E,EAAWC,EAAQp8E,IK1H5B9I,WAAY,EACZ+M,eHkCa,SAAwBnU,EAAOD,EAAMwuF,EAAUpsF,GAC5D,IAAI7E,EAAS0xF,EAAqBhvF,GAElC,MAAsB,oBAAX1C,EACFA,EAAO0C,EAAOD,EAAMwuF,EAAUpsF,GAGhC7E,GGxCPsE,SAAU,EACV8F,MC4CU,CACV3F,cAAe,OAAAouF,EAAA,GAAoB,CACjC77E,aAnE4B,WAoE5B87E,aAnE4B,OAoE5Bn7E,cAAe,SAAuB7hB,GACpC,OAAOyoB,SAASzoB,EAAO,OAG3ByO,IAAK,OAAAuS,EAAA,GAAa,CAChBG,cAxEmB,CACrB+6E,OAAQ,2CACRC,YAAa,2CACbC,KAAM,0DAsEJh7E,kBAAmB,OACnBG,cArEmB,CACrB3H,IAAK,CAAC,MAAO,QAqEX4H,kBAAmB,QAErB/R,QAAS,OAAAuR,EAAA,GAAa,CACpBG,cAtEuB,CACzB+6E,OAAQ,WACRC,YAAa,0BACbC,KAAM,sCAoEJh7E,kBAAmB,OACnBG,cAnEuB,CACzB26E,OAAQ,CAAC,KAAM,KAAM,KAAM,MAC3BtiF,IAAK,CAAC,SAAU,UAAW,WAAY,YAkErC4H,kBAAmB,MACnBK,cAAe,SAAuBmQ,GACpC,OAAOA,EAAQ,KAGnB9kB,MAAO,OAAA8T,EAAA,GAAa,CAClBG,cAtEqB,CACvB+6E,OAAQ,eACRC,YAAa,+DACbC,KAAM,mRAoEJh7E,kBAAmB,OACnBG,cAnEqB,CACvB26E,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtFtiF,IAAK,CAAC,OAAQ,OAAQ,QAAS,MAAO,QAAS,MAAO,QAAS,OAAQ,MAAO,MAAO,QAAS,QAkE5F4H,kBAAmB,QAErBtQ,IAAK,OAAA8P,EAAA,GAAa,CAChBG,cAnEmB,CACrB+6E,OAAQ,kBACRx7E,MAAO,oDACPy7E,YAAa,6CACbC,KAAM,6FAgEJh7E,kBAAmB,OACnBG,cA/DmB,CACrB26E,OAAQ,CAAC,MAAO,MAAO,MAAO,WAAO,MAAO,MAAO,OACnDC,YAAa,CAAC,MAAO,OAAQ,MAAO,gBAAY,MAAO,OAAQ,QAC/DviF,IAAK,CAAC,MAAO,OAAQ,MAAO,gBAAY,MAAO,OAAQ,SA6DrD4H,kBAAmB,QAErBjQ,UAAW,OAAAyP,EAAA,GAAa,CACtBG,cA9DyB,CAC3B+6E,OAAQ,8IACRtiF,IAAK,kLA6DHwH,kBAAmB,MACnBG,cA5DyB,CAC3B26E,OAAQ,CACNG,GAAI,OACJC,GAAI,OACJC,SAAU,oBACVC,KAAM,gBACNC,QAAS,QACTC,UAAW,qBACXC,QAAS,SACTC,MAAO,QAEThjF,IAAK,CACHyiF,GAAI,OACJC,GAAI,OACJC,SAAU,oBACVC,KAAM,gBACNC,QAAS,QACTC,UAAW,qBACXC,QAAS,SACTC,MAAO,SA0CPp7E,kBAAmB,SDlFrBzS,QAAS,CACPqC,aAAc,EAGdsC,sBAAuB,IAGZ,O,iCE/Bf,IAAI8lF,EAAuB,CACzBC,iBAAkB,CAChBN,IAAK,yBACLtxB,MAAO,iCAETgyB,SAAU,CACRV,IAAK,YACLtxB,MAAO,sBAETiyB,YAAa,mBACbC,iBAAkB,CAChBZ,IAAK,wBACLtxB,MAAO,gCAETmyB,SAAU,CACRb,IAAK,aACLtxB,MAAO,qBAEToyB,YAAa,CACXd,IAAK,iBACLtxB,MAAO,0BAETqyB,OAAQ,CACNf,IAAK,QACLtxB,MAAO,iBAETsyB,MAAO,CACLhB,IAAK,QACLtxB,MAAO,mBAETuyB,YAAa,CACXjB,IAAK,kBACLtxB,MAAO,4BAETwyB,OAAQ,CACNlB,IAAK,SACLtxB,MAAO,mBAETyyB,aAAc,CACZnB,IAAK,mBACLtxB,MAAO,8BAET0yB,QAAS,CACPpB,IAAK,UACLtxB,MAAO,qBAET2yB,YAAa,CACXrB,IAAK,kBACLtxB,MAAO,2BAET4yB,OAAQ,CACNtB,IAAK,SACLtxB,MAAO,kBAET6yB,WAAY,CACVvB,IAAK,kBACLtxB,MAAO,2BAET8yB,aAAc,CACZxB,IAAK,eACLtxB,MAAO,yB,YC3BI,EAdE,CACfl7D,KAAM,OAAA0T,EAAA,GAAkB,CACtBC,QApBc,CAChBC,KAAM,gBACNC,KAAM,WACNC,OAAQ,UACRC,MAAO,WAiBL7K,aAAc,SAEhB8K,KAAM,OAAAN,EAAA,GAAkB,CACtBC,QAlBc,CAChBC,KAAM,gBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,SAeL7K,aAAc,SAEhB+K,SAAU,OAAAP,EAAA,GAAkB,CAC1BC,QAhBkB,CACpBC,KAAM,yBACNC,KAAM,yBACNC,OAAQ,qBACRC,MAAO,sBAaL7K,aAAc,UC9Bd+lF,EAAuB,CACzBC,SAAU,0BACVC,UAAW,kBACXC,MAAO,iBACPC,SAAU,gBACVC,SAAU,cACVp0B,MAAO,K,YCsDT,IA0Be,EA1BA,CACbl5D,cANF,SAAuBu/E,GAErB,OADazzD,OAAOyzD,GACJ,KAKhBz/E,IAAK,OAAA+G,EAAA,GAAgB,CACnBS,OA9DY,CACdimF,OAAQ,CAAC,OAAQ,QACjBC,YAAa,CAAC,SAAU,UACxBC,KAAM,CAAC,gBAAiB,gBA4DtBvmF,aAAc,SAEhBpG,QAAS,OAAA+F,EAAA,GAAgB,CACvBS,OA7DgB,CAClBimF,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,KAAM,KAAM,KAAM,MAChCC,KAAM,CAAC,cAAe,cAAe,cAAe,gBA2DlDvmF,aAAc,OACdK,iBAAkB,SAA0BzG,GAC1C,OAAOgrB,OAAOhrB,GAAW,KAG7BvC,MAAO,OAAAsI,EAAA,GAAgB,CACrBS,OA/Dc,CAChBimF,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QACrGC,KAAM,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,WAAY,YAAa,UAAW,WAAY,aA6DrHvmF,aAAc,SAEhB3E,IAAK,OAAAsE,EAAA,GAAgB,CACnBS,OA9DY,CACdimF,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvCx7E,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5Cy7E,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACxDC,KAAM,CAAC,SAAU,UAAW,UAAW,WAAY,YAAa,UAAW,aA2DzEvmF,aAAc,SAEhBtE,UAAW,OAAAiE,EAAA,GAAgB,CACzBS,OA5DkB,CACpBimF,OAAQ,CACNG,GAAI,KACJC,GAAI,KACJC,SAAU,cACVC,KAAM,gBACNC,QAAS,cACTC,UAAW,aACXC,QAAS,YACTC,MAAO,aAETT,YAAa,CACXE,GAAI,KACJC,GAAI,KACJC,SAAU,cACVC,KAAM,gBACNC,QAAS,cACTC,UAAW,aACXC,QAAS,YACTC,MAAO,aAETR,KAAM,CACJC,GAAI,KACJC,GAAI,KACJC,SAAU,cACVC,KAAM,gBACNC,QAAS,cACTC,UAAW,aACXC,QAAS,YACTC,MAAO,cAgCP/mF,aAAc,U,gBChEdxO,EAAS,CACXwZ,KAAM,KACNC,eJ0Ca,SAAwBlU,EAAOkQ,EAAO/N,GAEnD,IAAI3O,EAUJ,OAXA2O,EAAUA,GAAW,GAInB3O,EADyC,kBAAhCo5F,EAAqB5sF,GACrB4sF,EAAqB5sF,GACX,IAAVkQ,EACA08E,EAAqB5sF,GAAOusF,IAE5BK,EAAqB5sF,GAAOi7D,MAAM7yD,QAAQ,YAAa8H,GAG9D/N,EAAQ8tF,UACN9tF,EAAQ+tF,WAAa,EAChB,QAAU18F,EAEVA,EAAS,WAIbA,GI7DP4T,WAAY,EACZ+M,eFfa,SAAwBnU,EAAOqwF,EAAOC,EAAWC,GAC9D,OAAOvB,EAAqBhvF,IEe5B4B,SAAU,EACV8F,MC6BU,CACV3F,cAAe,OAAAouF,EAAA,GAAoB,CACjC77E,aAtD4B,YAuD5B87E,aAtD4B,OAuD5Bn7E,cAAe,SAAuB7hB,GACpC,OAAOyoB,SAASzoB,EAAO,OAG3ByO,IAAK,OAAAuS,EAAA,GAAa,CAChBG,cA3DmB,CACrB+6E,OAAQ,mBACRC,YAAa,oBACbC,KAAM,yBAyDJh7E,kBAAmB,OACnBG,cAxDmB,CACrB3H,IAAK,CAAC,KAAM,OAwDV4H,kBAAmB,QAErB/R,QAAS,OAAAuR,EAAA,GAAa,CACpBG,cAzDuB,CACzB+6E,OAAQ,WACRC,YAAa,YACbC,KAAM,sBAuDJh7E,kBAAmB,OACnBG,cAtDuB,CACzB3H,IAAK,CAAC,KAAM,KAAM,KAAM,OAsDtB4H,kBAAmB,MACnBK,cAAe,SAAuBmQ,GACpC,OAAOA,EAAQ,KAGnB9kB,MAAO,OAAA8T,EAAA,GAAa,CAClBG,cA1DqB,CACvB+6E,OAAQ,eACRC,YAAa,iEACbC,KAAM,+FAwDJh7E,kBAAmB,OACnBG,cAvDqB,CACvB26E,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtFtiF,IAAK,CAAC,QAAS,QAAS,WAAY,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,UAsD1G4H,kBAAmB,QAErBtQ,IAAK,OAAA8P,EAAA,GAAa,CAChBG,cAvDmB,CACrB+6E,OAAQ,YACRx7E,MAAO,2BACPy7E,YAAa,kCACbC,KAAM,kEAoDJh7E,kBAAmB,OACnBG,cAnDmB,CACrB26E,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnDtiF,IAAK,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,SAkDpD4H,kBAAmB,QAErBjQ,UAAW,OAAAyP,EAAA,GAAa,CACtBG,cAnDyB,CAC3BvH,IAAK,2EAmDHwH,kBAAmB,MACnBG,cAlDyB,CAC3B3H,IAAK,CACHyiF,GAAI,OACJC,GAAI,OACJC,SAAU,gBACVC,KAAM,kBACNC,QAAS,WACTC,UAAW,UACXC,QAAS,SACTC,MAAO,WA0CPp7E,kBAAmB,SDnErBzS,QAAS,CACPqC,aAAc,EAGdsC,sBAAuB,IAGZ,O,iCEjCf,IAAI8lF,EAAuB,CACzBC,iBAAkB,CAChBN,IAAK,yBACLtxB,MAAO,iCAETgyB,SAAU,CACRV,IAAK,YACLtxB,MAAO,sBAETiyB,YAAa,mBACbC,iBAAkB,CAChBZ,IAAK,wBACLtxB,MAAO,gCAETmyB,SAAU,CACRb,IAAK,aACLtxB,MAAO,qBAEToyB,YAAa,CACXd,IAAK,iBACLtxB,MAAO,0BAETqyB,OAAQ,CACNf,IAAK,QACLtxB,MAAO,iBAETsyB,MAAO,CACLhB,IAAK,QACLtxB,MAAO,mBAETuyB,YAAa,CACXjB,IAAK,kBACLtxB,MAAO,4BAETwyB,OAAQ,CACNlB,IAAK,SACLtxB,MAAO,mBAETyyB,aAAc,CACZnB,IAAK,mBACLtxB,MAAO,8BAET0yB,QAAS,CACPpB,IAAK,UACLtxB,MAAO,qBAET2yB,YAAa,CACXrB,IAAK,kBACLtxB,MAAO,2BAET4yB,OAAQ,CACNtB,IAAK,SACLtxB,MAAO,kBAET6yB,WAAY,CACVvB,IAAK,kBACLtxB,MAAO,2BAET8yB,aAAc,CACZxB,IAAK,eACLtxB,MAAO,yB,YC3BI,EAdE,CACfl7D,KAAM,OAAA0T,EAAA,GAAkB,CACtBC,QApBc,CAChBC,KAAM,gBACNC,KAAM,WACNC,OAAQ,UACRC,MAAO,WAiBL7K,aAAc,SAEhB8K,KAAM,OAAAN,EAAA,GAAkB,CACtBC,QAlBc,CAChBC,KAAM,gBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,SAeL7K,aAAc,SAEhB+K,SAAU,OAAAP,EAAA,GAAkB,CAC1BC,QAhBkB,CACpBC,KAAM,yBACNC,KAAM,yBACNC,OAAQ,qBACRC,MAAO,sBAaL7K,aAAc,UC9Bd+lF,EAAuB,CACzBC,SAAU,uBACVC,UAAW,kBACXC,MAAO,iBACPC,SAAU,gBACVC,SAAU,cACVp0B,MAAO,K,YCsDT,IA0Be,EA1BA,CACbl5D,cANF,SAAuBu/E,GAErB,OADazzD,OAAOyzD,GACJ,KAKhBz/E,IAAK,OAAA+G,EAAA,GAAgB,CACnBS,OA9DY,CACdimF,OAAQ,CAAC,OAAQ,QACjBC,YAAa,CAAC,SAAU,UACxBC,KAAM,CAAC,gBAAiB,gBA4DtBvmF,aAAc,SAEhBpG,QAAS,OAAA+F,EAAA,GAAgB,CACvBS,OA7DgB,CAClBimF,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,KAAM,KAAM,KAAM,MAChCC,KAAM,CAAC,cAAe,cAAe,cAAe,gBA2DlDvmF,aAAc,OACdK,iBAAkB,SAA0BzG,GAC1C,OAAOgrB,OAAOhrB,GAAW,KAG7BvC,MAAO,OAAAsI,EAAA,GAAgB,CACrBS,OA/Dc,CAChBimF,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QACrGC,KAAM,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,WAAY,YAAa,UAAW,WAAY,aA6DrHvmF,aAAc,SAEhB3E,IAAK,OAAAsE,EAAA,GAAgB,CACnBS,OA9DY,CACdimF,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvCx7E,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5Cy7E,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACxDC,KAAM,CAAC,SAAU,UAAW,UAAW,WAAY,YAAa,UAAW,aA2DzEvmF,aAAc,SAEhBtE,UAAW,OAAAiE,EAAA,GAAgB,CACzBS,OA5DkB,CACpBimF,OAAQ,CACNG,GAAI,KACJC,GAAI,KACJC,SAAU,cACVC,KAAM,aACNC,QAAS,cACTC,UAAW,eACXC,QAAS,YACTC,MAAO,aAETT,YAAa,CACXE,GAAI,KACJC,GAAI,KACJC,SAAU,cACVC,KAAM,aACNC,QAAS,cACTC,UAAW,eACXC,QAAS,YACTC,MAAO,aAETR,KAAM,CACJC,GAAI,KACJC,GAAI,KACJC,SAAU,cACVC,KAAM,aACNC,QAAS,cACTC,UAAW,eACXC,QAAS,YACTC,MAAO,cAgCP/mF,aAAc,U,gBClEdxO,EAAS,CACXwZ,KAAM,QACNC,eJ4Ca,SAAwBlU,EAAOkQ,EAAO/N,GAEnD,IAAI3O,EAUJ,OAXA2O,EAAUA,GAAW,GAInB3O,EADyC,kBAAhCo5F,EAAqB5sF,GACrB4sF,EAAqB5sF,GACX,IAAVkQ,EACA08E,EAAqB5sF,GAAOusF,IAE5BK,EAAqB5sF,GAAOi7D,MAAM7yD,QAAQ,YAAa8H,GAG9D/N,EAAQ8tF,UACN9tF,EAAQ+tF,WAAa,EAChB,QAAU18F,EAEVA,EAAS,WAIbA,GI/DP4T,WAAY,EACZ+M,eFba,SAAwBnU,EAAOqwF,EAAOC,EAAWC,GAC9D,OAAOvB,EAAqBhvF,IEa5B4B,SAAU,EACV8F,MC+BU,CACV3F,cAAe,OAAAouF,EAAA,GAAoB,CACjC77E,aAtD4B,YAuD5B87E,aAtD4B,OAuD5Bn7E,cAAe,SAAuB7hB,GACpC,OAAOyoB,SAASzoB,EAAO,OAG3ByO,IAAK,OAAAuS,EAAA,GAAa,CAChBG,cA3DmB,CACrB+6E,OAAQ,mBACRC,YAAa,oBACbC,KAAM,yBAyDJh7E,kBAAmB,OACnBG,cAxDmB,CACrB3H,IAAK,CAAC,KAAM,OAwDV4H,kBAAmB,QAErB/R,QAAS,OAAAuR,EAAA,GAAa,CACpBG,cAzDuB,CACzB+6E,OAAQ,WACRC,YAAa,YACbC,KAAM,sBAuDJh7E,kBAAmB,OACnBG,cAtDuB,CACzB3H,IAAK,CAAC,KAAM,KAAM,KAAM,OAsDtB4H,kBAAmB,MACnBK,cAAe,SAAuBmQ,GACpC,OAAOA,EAAQ,KAGnB9kB,MAAO,OAAA8T,EAAA,GAAa,CAClBG,cA1DqB,CACvB+6E,OAAQ,eACRC,YAAa,iEACbC,KAAM,+FAwDJh7E,kBAAmB,OACnBG,cAvDqB,CACvB26E,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtFtiF,IAAK,CAAC,QAAS,QAAS,WAAY,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,UAsD1G4H,kBAAmB,QAErBtQ,IAAK,OAAA8P,EAAA,GAAa,CAChBG,cAvDmB,CACrB+6E,OAAQ,YACRx7E,MAAO,2BACPy7E,YAAa,kCACbC,KAAM,kEAoDJh7E,kBAAmB,OACnBG,cAnDmB,CACrB26E,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnDtiF,IAAK,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,SAkDpD4H,kBAAmB,QAErBjQ,UAAW,OAAAyP,EAAA,GAAa,CACtBG,cAnDyB,CAC3BvH,IAAK,2EAmDHwH,kBAAmB,MACnBG,cAlDyB,CAC3B3H,IAAK,CACHyiF,GAAI,OACJC,GAAI,OACJC,SAAU,gBACVC,KAAM,kBACNC,QAAS,WACTC,UAAW,UACXC,QAAS,SACTC,MAAO,WA0CPp7E,kBAAmB,SDrErBzS,QAAS,CACPqC,aAAc,EAGdsC,sBAAuB,IAGZ,O,iCE/Bf,IAAI8lF,EAAuB,CACzBC,iBAAkB,CAChB2D,WAAY,CACVjE,IAAK,wBACLtxB,MAAO,kCAETw1B,gBAAiB,CACflE,IAAK,wBACLtxB,MAAO,mCAGXgyB,SAAU,CACRuD,WAAY,CACVjE,IAAK,YACLtxB,MAAO,sBAETw1B,gBAAiB,CACflE,IAAK,YACLtxB,MAAO,uBAGXiyB,YAAa,CACXsD,WAAY,eACZC,gBAAiB,iBAEnBtD,iBAAkB,CAChBqD,WAAY,CACVjE,IAAK,uBACLtxB,MAAO,iCAETw1B,gBAAiB,CACflE,IAAK,uBACLtxB,MAAO,kCAGXmyB,SAAU,CACRoD,WAAY,CACVjE,IAAK,WACLtxB,MAAO,qBAETw1B,gBAAiB,CACflE,IAAK,WACLtxB,MAAO,sBAGXoyB,YAAa,CACXmD,WAAY,CACVjE,IAAK,gBACLtxB,MAAO,0BAETw1B,gBAAiB,CACflE,IAAK,gBACLtxB,MAAO,2BAGXqyB,OAAQ,CACNkD,WAAY,CACVjE,IAAK,WACLtxB,MAAO,qBAETw1B,gBAAiB,CACflE,IAAK,WACLtxB,MAAO,sBAGXsyB,MAAO,CACLiD,WAAY,CACVjE,IAAK,QACLtxB,MAAO,kBAETw1B,gBAAiB,CACflE,IAAK,QACLtxB,MAAO,oBAGXuyB,YAAa,CACXgD,WAAY,CACVjE,IAAK,eACLtxB,MAAO,yBAETw1B,gBAAiB,CACflE,IAAK,eACLtxB,MAAO,0BAGXwyB,OAAQ,CACN+C,WAAY,CACVjE,IAAK,UACLtxB,MAAO,oBAETw1B,gBAAiB,CACflE,IAAK,UACLtxB,MAAO,qBAGXyyB,aAAc,CACZ8C,WAAY,CACVjE,IAAK,eACLtxB,MAAO,yBAETw1B,gBAAiB,CACflE,IAAK,eACLtxB,MAAO,2BAGX0yB,QAAS,CACP6C,WAAY,CACVjE,IAAK,UACLtxB,MAAO,oBAETw1B,gBAAiB,CACflE,IAAK,UACLtxB,MAAO,sBAGX2yB,YAAa,CACX4C,WAAY,CACVjE,IAAK,cACLtxB,MAAO,wBAETw1B,gBAAiB,CACflE,IAAK,cACLtxB,MAAO,0BAGX4yB,OAAQ,CACN2C,WAAY,CACVjE,IAAK,SACLtxB,MAAO,mBAETw1B,gBAAiB,CACflE,IAAK,SACLtxB,MAAO,qBAGX6yB,WAAY,CACV0C,WAAY,CACVjE,IAAK,kBACLtxB,MAAO,4BAETw1B,gBAAiB,CACflE,IAAK,kBACLtxB,MAAO,8BAGX8yB,aAAc,CACZyC,WAAY,CACVjE,IAAK,cACLtxB,MAAO,wBAETw1B,gBAAiB,CACflE,IAAK,cACLtxB,MAAO,2BA4BE,EAvBM,SAAwBj7D,EAAOkQ,EAAO/N,GACzD,IAAI3O,EACAk9F,EAAyB,OAAZvuF,QAAgC,IAAZA,GAAsBA,EAAQ8tF,UAAYrD,EAAqB5sF,GAAOywF,gBAAkB7D,EAAqB5sF,GAAOwwF,WAUzJ,OAPEh9F,EADwB,kBAAfk9F,EACAA,EACU,IAAVxgF,EACAwgF,EAAWnE,IAEXmE,EAAWz1B,MAAM7yD,QAAQ,YAAa5W,OAAO0e,IAGxC,OAAZ/N,QAAgC,IAAZA,GAAsBA,EAAQ8tF,UAChD9tF,EAAQ+tF,YAAc/tF,EAAQ+tF,WAAa,EACtC,MAAQ18F,EAER,OAASA,EAIbA,G,QC3IM,EAdE,CACfuM,KAAM,OAAA0T,EAAA,GAAkB,CACtBC,QAxBc,CAChBC,KAAM,kBAENC,KAAM,YAENC,OAAQ,WAERC,MAAO,WAkBL7K,aAAc,SAEhB8K,KAAM,OAAAN,EAAA,GAAkB,CACtBC,QAlBc,CAChBC,KAAM,gBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,SAeL7K,aAAc,SAEhB+K,SAAU,OAAAP,EAAA,GAAkB,CAC1BC,QAhBkB,CACpBC,KAAM,yBACNC,KAAM,yBACNC,OAAQ,oBACRC,MAAO,qBAaL7K,aAAc,UCnCd+lF,EAAuB,CACzBC,SAAU,wBACVC,UAAW,iBACXC,MAAO,eACPC,SAAU,gBACVC,SAAU,cACVp0B,MAAO,KAOM,EAJM,SAAwBj7D,EAAOqwF,EAAOC,EAAWC,GACpE,OAAOvB,EAAqBhvF,I,QCK1B2wF,EAAc,CAChBrB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,MAAO,MAAO,SAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC3FC,KAAM,CAAC,SAAU,UAAW,UAAQ,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,aAGhHoB,EAAwB,CAC1BtB,OAAQqB,EAAYrB,OACpBC,YAAa,CAAC,OAAQ,OAAQ,UAAQ,OAAQ,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QACrGC,KAAMmB,EAAYnB,MA4GL,EA7BA,CACbztF,cANkB,SAAuBu/E,GAEzC,OADazzD,OAAOyzD,GACJ,KAKhBz/E,IAAK,OAAA+G,EAAA,GAAgB,CACnBS,OAzGY,CACdimF,OAAQ,CAAC,SAAU,UACnBC,YAAa,CAAC,SAAU,UACxBC,KAAM,CAAC,eAAgB,kBAuGrBvmF,aAAc,SAEhBpG,QAAS,OAAA+F,EAAA,GAAgB,CACvBS,OAxGgB,CAClBimF,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,KAAM,KAAM,KAAM,MAChCC,KAAM,CAAC,aAAc,aAAc,aAAc,eAsG/CvmF,aAAc,OACdK,iBAAkB,SAA0BzG,GAC1C,OAAOA,EAAU,KAGrBvC,MAAO,OAAAsI,EAAA,GAAgB,CACrBS,OAAQsnF,EACR3nF,iBAAkB4nF,EAClB3nF,aAAc,SAEhB3E,IAAK,OAAAsE,EAAA,GAAgB,CACnBS,OAhGY,CACdimF,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvCx7E,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5Cy7E,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACxDC,KAAM,CAAC,UAAW,SAAU,WAAY,WAAY,aAAc,UAAW,YA6F3EvmF,aAAc,SAEhBtE,UAAW,OAAAiE,EAAA,GAAgB,CACzBS,OA7FkB,CACpBimF,OAAQ,CACNG,GAAI,MACJC,GAAI,MACJC,SAAU,cACVC,KAAM,SACNC,QAAS,SACTC,UAAW,SACXC,QAAS,QACTC,MAAO,SAETT,YAAa,CACXE,GAAI,QACJC,GAAI,SACJC,SAAU,cACVC,KAAM,SACNC,QAAS,SACTC,UAAW,aACXC,QAAS,QACTC,MAAO,SAETR,KAAM,CACJC,GAAI,aACJC,GAAI,cACJC,SAAU,cACVC,KAAM,SACNC,QAAS,SACTC,UAAW,aACXC,QAAS,QACTC,MAAO,UAiEP/mF,aAAc,OACdD,iBA/D4B,CAC9BsmF,OAAQ,CACNG,GAAI,MACJC,GAAI,MACJC,SAAU,cACVC,KAAM,SACNC,QAAS,UACTC,UAAW,SACXC,QAAS,SACTC,MAAO,UAETT,YAAa,CACXE,GAAI,QACJC,GAAI,SACJC,SAAU,cACVC,KAAM,SACNC,QAAS,UACTC,UAAW,cACXC,QAAS,SACTC,MAAO,UAETR,KAAM,CACJC,GAAI,aACJC,GAAI,cACJC,SAAU,cACVC,KAAM,SACNC,QAAS,UACTC,UAAW,cACXC,QAAS,SACTC,MAAO,WAmCP9mF,uBAAwB,U,gBC/GxBzO,EAAS,CACXwZ,KAAM,KACNC,eAAgB,EAChB9M,WAAY,EACZ+M,eAAgB,EAChBvS,SAAU,EACV8F,MCiCU,CACV3F,cAAe,OAAAouF,EAAA,GAAoB,CACjC77E,aAzD4B,eA0D5B87E,aAzD4B,OA0D5Bn7E,cAAe,SAAuB7hB,GACpC,OAAOyoB,SAASzoB,MAGpByO,IAAK,OAAAuS,EAAA,GAAa,CAChBG,cA9DmB,CACrB+6E,OAAQ,gCACRC,YAAa,gCACbC,KAAM,gFA4DJh7E,kBAAmB,OACnBG,cA3DmB,CACrB3H,IAAK,CAAC,MAAO,QA2DX4H,kBAAmB,QAErB/R,QAAS,OAAAuR,EAAA,GAAa,CACpBG,cA5DuB,CACzB+6E,OAAQ,WACRC,YAAa,YACbC,KAAM,yBA0DJh7E,kBAAmB,OACnBG,cAzDuB,CACzB3H,IAAK,CAAC,KAAM,KAAM,KAAM,OAyDtB4H,kBAAmB,MACnBK,cAAe,SAAuBmQ,GACpC,OAAOA,EAAQ,KAGnB9kB,MAAO,OAAA8T,EAAA,GAAa,CAClBG,cA7DqB,CACvB+6E,OAAQ,eACRC,YAAa,8EACbC,KAAM,6FA2DJh7E,kBAAmB,OACnBG,cA1DqB,CACvB26E,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtFtiF,IAAK,CAAC,aAAW,MAAO,WAAS,OAAQ,QAAS,QAAS,QAAS,OAAQ,MAAO,MAAO,MAAO,QAyD/F4H,kBAAmB,QAErBtQ,IAAK,OAAA8P,EAAA,GAAa,CAChBG,cA1DmB,CACrB+6E,OAAQ,YACRx7E,MAAO,2BACPy7E,YAAa,4CACbC,KAAM,mEAuDJh7E,kBAAmB,OACnBG,cAtDmB,CACrB3H,IAAK,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,MAAO,SAsDnD4H,kBAAmB,QAErBjQ,UAAW,OAAAyP,EAAA,GAAa,CACtBG,cAvDyB,CAC3B+6E,OAAQ,oEACRC,YAAa,yEACbC,KAAM,mFAqDJh7E,kBAAmB,OACnBG,cApDyB,CAC3B3H,IAAK,CACHyiF,GAAI,MACJC,GAAI,MACJC,SAAU,UACVC,KAAM,UACNC,QAAS,WACTC,UAAW,eAEXC,QAAS,UACTC,MAAO,YA2CPp7E,kBAAmB,SDvErBzS,QAAS,CACPqC,aAAc,EAGdsC,sBAAuB,IAGZ,O,wHEhCR,SAASsa,IACd,GAAIC,SAAWA,QAAQD,KAAM,CAG3B,IAFA,IAAIyvE,EAEKnvE,EAAOvvB,UAAUC,OAAQyW,EAAO,IAAI5X,MAAMywB,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9Y,EAAK8Y,GAAQxvB,UAAUwvB,GAGF,kBAAZ9Y,EAAK,KAAiBA,EAAK,GAAK,mBAAmB1T,OAAO0T,EAAK,MAEzEgoF,EAAWxvE,SAASD,KAAK/uB,MAAMw+F,EAAUhoF,IAG9C,IAAIioF,EAAgB,GACb,SAASC,IACd,IAAK,IAAIlvE,EAAQ1vB,UAAUC,OAAQyW,EAAO,IAAI5X,MAAM4wB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFjZ,EAAKiZ,GAAS3vB,UAAU2vB,GAGH,kBAAZjZ,EAAK,IAAmBioF,EAAcjoF,EAAK,MAC/B,kBAAZA,EAAK,KAAiBioF,EAAcjoF,EAAK,IAAM,IAAIkX,MAC9DqB,EAAK/uB,WAAM,EAAQwW,IAEd,SAASmoF,EAAet1F,EAAMnB,EAAIg5C,GACvC73C,EAAKs1F,eAAez2F,GAAI,WACtB,GAAImB,EAAKC,cACP43C,QACK,CAQL73C,EAAKE,GAAG,eAPU,SAASq1F,IACzB91E,YAAW,WACTzf,EAAK28E,IAAI,cAAe4Y,KACvB,GACH19C,WAQR,SAAS29C,EAA6B32F,EAAImB,GACxC,IAAIyG,EAAUhQ,UAAUC,OAAS,QAAsBiiB,IAAjBliB,UAAU,GAAmBA,UAAU,GAAK,GAC9EkD,EAAMqG,EAAKzD,UAAU,GACrB0E,IAAcjB,EAAKyG,SAAUzG,EAAKyG,QAAQxF,YAC1Cm5B,EAAUp6B,EAAKzD,UAAUyD,EAAKzD,UAAU7F,OAAS,GACrD,GAA0B,WAAtBiD,EAAIuP,cAA4B,OAAO,EAE3C,IAAImxB,EAAiB,SAAwB9gC,EAAG/C,GAC9C,IAAI8jC,EAAYt6B,EAAK8qB,SAASmD,iBAAiBgI,MAAM,GAAGx8B,OAAOF,EAAG,KAAKE,OAAOjD,IAC9E,OAAsB,IAAf8jC,GAAkC,IAAdA,GAG7B,QAAI7zB,EAAQgvF,UAAYhvF,EAAQgvF,SAAS3+F,QAAQ,qBAAuB,GAAKkJ,EAAK8qB,SAASmD,iBAAiB8H,SAAW/1B,EAAKq5B,uBAAyBgB,EAAer6B,EAAKq5B,qBAAsBx6B,QAC3LmB,EAAKkqB,kBAAkBvwB,EAAKkF,OAC3BmB,EAAK8qB,SAASmD,iBAAiB8H,WAAW/1B,EAAKyG,QAAQ3M,WAAckG,EAAKyG,QAAQmxB,8BACnFyC,EAAe1gC,EAAKkF,IAASoC,IAAeo5B,EAAeD,EAASv7B,MAInE,SAASixB,EAAmBjxB,EAAImB,GACrC,IAAIyG,EAAUhQ,UAAUC,OAAS,QAAsBiiB,IAAjBliB,UAAU,GAAmBA,UAAU,GAAK,GAElF,IAAKuJ,EAAKzD,YAAcyD,EAAKzD,UAAU7F,OAErC,OADA2+F,EAAS,yCAA0Cr1F,EAAKzD,YACjD,EAGT,IAAIm5F,OAAsD/8E,IAArC3Y,EAAKyG,QAAQgjB,oBAElC,OAAKisE,EAIE11F,EAAK8vB,mBAAmBjxB,EAAI,CACjC07B,SAAU,SAAkBo7D,EAAct7D,GACxC,GAAI5zB,EAAQgvF,UAAYhvF,EAAQgvF,SAAS3+F,QAAQ,qBAAuB,GAAK6+F,EAAa7qE,SAASmD,iBAAiB8H,SAAW4/D,EAAat8D,uBAAyBgB,EAAes7D,EAAat8D,qBAAsBx6B,GAAK,OAAO,KAL9N22F,EAA6B32F,EAAImB,EAAMyG,GCnElD,SAAS4L,EAAQlB,EAAQmB,GACvB,IAAIC,EAAOnd,OAAOmd,KAAKpB,GAEvB,GAAI/b,OAAO2B,sBAAuB,CAChC,IAAIyb,EAAUpd,OAAO2B,sBAAsBoa,GAEvCmB,IACFE,EAAUA,EAAQC,QAAO,SAAUC,GACjC,OAAOtd,OAAOud,yBAAyBxB,EAAQuB,GAAKE,eAIxDL,EAAKtZ,KAAKtC,MAAM4b,EAAMC,GAGxB,OAAOD,EAGT,SAASM,EAAc7F,GACrB,IAAK,IAAIzW,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CACzC,IAAI0W,EAAyB,MAAhBxW,UAAUF,GAAaE,UAAUF,GAAK,GAE/CA,EAAI,EACN8b,EAAQjd,OAAO6X,IAAS,GAAM6F,SAAQ,SAAUvR,GAC9C,IAAgByL,EAAQzL,EAAK0L,EAAO1L,OAE7BnM,OAAO4d,0BAChB5d,OAAO6d,iBAAiBjG,EAAQ5X,OAAO4d,0BAA0B/F,IAEjEoF,EAAQjd,OAAO6X,IAAS6F,SAAQ,SAAUvR,GACxCnM,OAAO8d,eAAelG,EAAQzL,EAAKnM,OAAOud,yBAAyB1F,EAAQ1L,OAKjF,OAAOyL,EAOT,IAAI,EAAc,SAAqBtV,EAAOk+F,GAC5C,IAAIp/E,EAAM,mBAIV,OAHA,qBAAU,WACRA,EAAIG,QAAUi/E,EAASp/E,EAAIG,QAAUjf,IACpC,CAACA,EAAOk+F,IACJp/E,EAAIG,SAGN,SAAS+D,EAAe7b,GAC7B,IAAIsR,EAAQ1Z,UAAUC,OAAS,QAAsBiiB,IAAjBliB,UAAU,GAAmBA,UAAU,GAAK,GAC5Eo/F,EAAgB1lF,EAAMnQ,KAEtB8T,EAAO,qBAAW,MAAgB,GAClCgiF,EAAkBhiF,EAAK9T,KACvB+1F,EAAuBjiF,EAAKhT,UAE5Bd,EAAO61F,GAAiBC,GAAmB,cAG/C,GAFI91F,IAASA,EAAKg2F,mBAAkBh2F,EAAKg2F,iBAAmB,IAAI,MAE3Dh2F,EAAM,CACTq1F,EAAS,0EAET,IAAIY,EAAY,SAAmB3sF,GACjC,OAAO/T,MAAMoX,QAAQrD,GAAKA,EAAEA,EAAE5S,OAAS,GAAK4S,GAG1C4sF,EAAc,CAACD,EAAW,IAAI,GAIlC,OAHAC,EAAY7/F,EAAI4/F,EAChBC,EAAYl2F,KAAO,GACnBk2F,EAAYzvC,OAAQ,EACbyvC,EAGLl2F,EAAKyG,QAAQ1F,YAAqC4X,IAA5B3Y,EAAKyG,QAAQ1F,MAAMk2B,MAAoBo+D,EAAS,uGAE1E,IAAIc,EAActjF,EAAcA,EAAcA,EAAc,GAAI,eAAgB7S,EAAKyG,QAAQ1F,OAAQoP,GAEjGimF,EAAcD,EAAYC,YAC1Bx8D,EAAYu8D,EAAYv8D,UACxB1O,EAAarsB,GAAMk3F,GAAwB/1F,EAAKyG,SAAWzG,EAAKyG,QAAQ3F,UAC5EoqB,EAAmC,kBAAfA,EAA0B,CAACA,GAAcA,GAAc,CAAC,eACxElrB,EAAKg2F,iBAAiBK,mBAAmBr2F,EAAKg2F,iBAAiBK,kBAAkBnrE,GACrF,IAAIu7B,GAASzmD,EAAKC,eAAiBD,EAAKi5B,uBAAyB/N,EAAWmmB,OAAM,SAAU76C,GAC1F,OAAOs5B,EAAmBt5B,EAAGwJ,EAAMm2F,MAGrC,SAASG,IACP,OAAOt2F,EAAKu2F,UAAU,KAA6B,aAAvBJ,EAAYK,OAAwBtrE,EAAaA,EAAW,GAAI0O,GAG9F,IAAI68D,EAAY,mBAASH,GACrBI,EAAa,IAAeD,EAAW,GACvCpgG,EAAIqgG,EAAW,GACfC,EAAOD,EAAW,GAElBE,EAAW1rE,EAAWxpB,OACtBm1F,EAAmB,EAAYD,GAC/BlgF,EAAY,kBAAO,GACvB,qBAAU,WACR,IAAI++E,EAAWU,EAAYV,SACvBqB,EAAgBX,EAAYW,cAahC,SAASC,IACHrgF,EAAUC,SAASggF,EAAKL,GAK9B,OAlBA5/E,EAAUC,SAAU,EAEf8vC,GAAU2vC,GACbd,EAAet1F,EAAMkrB,GAAY,WAC3BxU,EAAUC,SAASggF,EAAKL,MAI5B7vC,GAASowC,GAAoBA,IAAqBD,GAAYlgF,EAAUC,SAC1EggF,EAAKL,GAOHb,GAAYz1F,GAAMA,EAAKE,GAAGu1F,EAAUsB,GACpCD,GAAiB92F,GAAMA,EAAKg2B,MAAM91B,GAAG42F,EAAeC,GACjD,WACLrgF,EAAUC,SAAU,EAChB8+E,GAAYz1F,GAAMy1F,EAASlzF,MAAM,KAAKuQ,SAAQ,SAAUjc,GAC1D,OAAOmJ,EAAK28E,IAAI9lF,EAAGkgG,MAEjBD,GAAiB92F,GAAM82F,EAAcv0F,MAAM,KAAKuQ,SAAQ,SAAUjc,GACpE,OAAOmJ,EAAKg2B,MAAM2mD,IAAI9lF,EAAGkgG,SAG5B,CAAC/2F,EAAM42F,IACV,IAAII,EAAY,kBAAO,GACvB,qBAAU,WACJtgF,EAAUC,UAAYqgF,EAAUrgF,SAClCggF,EAAKL,GAGPU,EAAUrgF,SAAU,IACnB,CAAC3W,EAAM45B,IACV,IAAI/B,EAAM,CAACxhC,EAAG2J,EAAMymD,GAIpB,GAHA5uB,EAAIxhC,EAAIA,EACRwhC,EAAI73B,KAAOA,EACX63B,EAAI4uB,MAAQA,EACRA,EAAO,OAAO5uB,EAClB,IAAK4uB,IAAU2vC,EAAa,OAAOv+D,EACnC,MAAM,IAAIvgC,SAAQ,SAAUC,GAC1B+9F,EAAet1F,EAAMkrB,GAAY,WAC/B3zB,Y,iCCnJNsV,EAAQ2V,YAAa,EACrB3V,EAAiB,QAEjB,SAAmBsG,GACjB,IAAI0kB,EAAM,GAEV,IAAK,IAAIt2B,KAAO4R,EACV/d,OAAOK,UAAUC,eAAeC,KAAKwd,EAAK5R,KAC5Cs2B,EAAIt2B,GAAO,GAIf,OAAOs2B,GAGTjrB,EAAOC,QAAUA,EAAiB,S,iCCblCA,EAAQ2V,YAAa,EACrB3V,EAAiB,QAGjB,SAAiBoqF,EAAgBntF,EAAGhR,EAAGo+F,EAAO5tF,EAAGnU,EAAGgiG,GAIlD,IAOIC,EAAOt+F,IAPIwQ,GAAKQ,EAAIotF,IAET/hG,EAAI2D,GAKAm+F,EACfI,EAAOvtF,EAAIstF,EAAOH,EAEtB,GAAIrxF,KAAK4E,IAAI4sF,GAAQD,GAAavxF,KAAK4E,IAAI6sF,EAAOH,GAASC,EAGzD,OAFAG,EAAY,GAAKJ,EACjBI,EAAY,GAAK,EACVA,EAKT,OAFAA,EAAY,GAAKD,EACjBC,EAAY,GAAKF,EACVE,GAxBT,IAAIA,EAAc,CAAC,EAAG,GA2BtB1qF,EAAOC,QAAUA,EAAiB,S,qBClClC,aACA,WACE,IAAI0qF,EAAgBC,EAAQC,EAED,qBAAhBC,aAA+C,OAAhBA,aAAwBA,YAAYzW,IAC5Er0E,EAAOC,QAAU,WACf,OAAO6qF,YAAYzW,OAEO,qBAAZ5hF,GAAuC,OAAZA,GAAoBA,EAAQm4F,QACvE5qF,EAAOC,QAAU,WACf,OAAQ0qF,IAAmBE,GAAY,KAGzCD,EAASn4F,EAAQm4F,OAQjBC,GANAF,EAAiB,WACf,IAAII,EAEJ,OAAe,KADfA,EAAKH,KACK,GAAWG,EAAG,QAIjBtzE,KAAK48D,KACdr0E,EAAOC,QAAU,WACf,OAAOwX,KAAK48D,MAAQwW,GAGtBA,EAAWpzE,KAAK48D,QAEhBr0E,EAAOC,QAAU,WACf,OAAO,IAAIwX,MAAOlc,UAAYsvF,GAGhCA,GAAW,IAAIpzE,MAAOlc,aAEvBxS,KAAKK,Q,wCCnCR,YAOA,IAPA,MAAU,EAAQ,KACdwlB,EAAyB,qBAAXQ,OAAyB7Z,EAAS6Z,OAChD47E,EAAU,CAAC,MAAO,UAClBxpE,EAAS,iBACTypE,EAAMr8E,EAAK,UAAY4S,GACvB0pE,EAAMt8E,EAAK,SAAW4S,IAAW5S,EAAK,gBAAkB4S,GAEnD73B,EAAI,GAAIshG,GAAOthG,EAAIqhG,EAAQlhG,OAAQH,IAC1CshG,EAAMr8E,EAAKo8E,EAAQrhG,GAAK,UAAY63B,GACpC0pE,EAAMt8E,EAAKo8E,EAAQrhG,GAAK,SAAW63B,IAAW5S,EAAKo8E,EAAQrhG,GAAK,gBAAkB63B,GAIpF,IAAKypE,IAAQC,EAAK,CAChB,IAAIzyC,EAAO,EACPnlC,EAAK,EACLgW,EAAQ,GAGZ2hE,EAAM,SAAa1hE,GACjB,GAAqB,IAAjBD,EAAMx/B,OAAc,CACtB,IAAIqhG,EAAO9W,IACPrpF,EAAOgO,KAAK+5D,IAAI,EALJ,oBAKwBo4B,EAAO1yC,IAE/CA,EAAOztD,EAAOmgG,EACdt4E,YAAW,WACT,IAAIu4E,EAAK9hE,EAAM18B,MAAM,GAIrB08B,EAAMx/B,OAAS,EAEf,IAAK,IAAIH,EAAI,EAAGA,EAAIyhG,EAAGthG,OAAQH,IAC7B,IAAKyhG,EAAGzhG,GAAG0hG,UACT,IACED,EAAGzhG,GAAG4/B,SAASkvB,GACf,MAAOxuD,GACP4oB,YAAW,WACT,MAAM5oB,IACL,MAIR+O,KAAK+qE,MAAM/4E,IAQhB,OALAs+B,EAAMj9B,KAAK,CACTwxB,SAAUvK,EACViW,SAAUA,EACV8hE,WAAW,IAEN/3E,GAGT43E,EAAM,SAAartE,GACjB,IAAK,IAAIl0B,EAAI,EAAGA,EAAI2/B,EAAMx/B,OAAQH,IAC5B2/B,EAAM3/B,GAAGk0B,SAAWA,IACtByL,EAAM3/B,GAAG0hG,WAAY,IAM7BrrF,EAAOC,QAAU,SAAUk3B,GAIzB,OAAO8zD,EAAIliG,KAAK6lB,EAAMuoB,IAGxBn3B,EAAOC,QAAQu3C,OAAS,WACtB0zC,EAAInhG,MAAM6kB,EAAM/kB,YAGlBmW,EAAOC,QAAQqrF,SAAW,SAAU/mF,GAC7BA,IACHA,EAASqK,GAGXrK,EAAOgnF,sBAAwBN,EAC/B1mF,EAAOinF,qBAAuBN,K,mDC5EhCjrF,EAAQ2V,YAAa,EACrB3V,EAAiB,QAEjB,SAA6BwrF,EAAcrjF,EAAOsjF,GAChD,IAAK,IAAI/2F,KAAOyT,EACd,GAAK5f,OAAOK,UAAUC,eAAeC,KAAKqf,EAAOzT,GAAjD,CAIA,GAA6B,IAAzB+2F,EAAgB/2F,GAClB,OAAO,EAGT,IAAIg3F,EAAmC,kBAAfvjF,EAAMzT,GAAoByT,EAAMzT,GAAOyT,EAAMzT,GAAKmzB,IAG1E,GAAI2jE,EAAa92F,KAASg3F,EACxB,OAAO,EAIX,OAAO,GAGT3rF,EAAOC,QAAUA,EAAiB,S,oBC3BlCD,EAAOC,QAAU,CAAC,GAAK,QAAQ,GAAK,QAAQ,GAAK,QAAQ,GAAK,SAAS,GAAK,W,iCCA5E,qFA6He2rF,UAlGa,IAGD,IAHE,QAC3Bl6E,EAD2B,iBAE3B0wE,GACwB,GAClB,EAAE34F,GAAMqkB,YAAe,UACvBX,EAAc,wBACd0+E,EAAsBhO,YAAe0F,6BAEpCuI,EAAiBC,GAAsBj6E,mBAC5C+5E,EAAoBvI,SAGhB0I,EAAc95E,uBAAY,KAC9B65E,GAAmB,GAEnBl5E,YAAW,KACT0wE,mCAAyB,CAAED,SAAS,MACnC,OACF,IAEG2I,EAAgB/5E,uBAAY,KAChCg6E,gCAAsB,CAAExgC,OAAQygC,SAAOC,SAAUhK,qBAEjDS,iCAAuB,CACrBR,YAAa,CAAE7B,WAAW,EAAM5vE,WAAW,GAC3Cc,UACAoxE,UAAWC,YAAUsJ,OACrBz2F,QAASqtF,UAAQqJ,QAGnBN,MACC,CAAC5J,EAAkB4J,EAAat6E,IAE7B66E,EAAsBr6E,uBAAY,KACtCmxE,kCAAwB,CAAEC,SAAS,IACnC4I,gCAAsB,CAAExgC,OAAQygC,SAAOK,OACvCC,mCACC,IAEGC,EAAsBx6E,uBAAY,KACtCg6E,gCAAsB,CAAExgC,OAAQygC,SAAOC,SAAUhK,qBAEjDS,iCAAuB,CACrBR,YAAa,CAAE7B,WAAW,EAAM5vE,WAAW,GAC3Cc,UACAoxE,UAAWC,YAAUsJ,OACrBz2F,QAASqtF,UAAQ0J,QAGnBX,MACC,CAAC5J,EAAkB4J,EAAat6E,IASnC,OALA0hB,qBACE,IAAM24D,EAAmBF,EAAoBvI,UAC7C,CAACuI,EAAoBvI,UAIrB,6BACE,yBACEv7E,UAAS,wBAAmB+jF,EAAkB,gBAAkB,KAEhE,4BACE/jF,UAAU,uBACV3G,KAAK,SACL0yB,QAASm4D,GAET,yBAAK50E,IAAKu1E,IAAWv+E,IAAK5kB,EAAE,GAAD,OAAI0jB,EAAJ,sBAE7B,wBAAIpF,UAAU,wBAAwBte,EAAE,GAAD,OAAI0jB,EAAJ,YACvC,yBAAKpF,UAAU,0BACb,2BAAIte,EAAE,GAAD,OAAI0jB,EAAJ,kBACL,yBAAKpF,UAAU,0BACb,4BACEA,UAAU,wCACV3G,KAAK,SACL0yB,QAASy4D,GAER9iG,EAAE,GAAD,OAAI0jB,EAAJ,iBAEJ,4BACEmG,GAAG,8BACH,cAAY,uBACZvL,UAAU,sDACV3G,KAAK,SACL0yB,QAAS44D,GAERjjG,EAAE,GAAD,OAAI0jB,EAAJ,uB,iCCpHhB,2FA2CMA,EAAc,iBAiPL0/E,UA/OK,IAMkB,IANjB,QACnBn7E,EADmB,oBAEnBhE,EAFmB,iBAGnB00E,EAHmB,mBAInB0K,EAJmB,iBAKnBC,GACmC,GAC7B,EAAEtjG,GAAMqkB,YAAe,WAEtBk/E,EAAmBC,GAAwBn7E,oBAAS,IACpDo7E,EAAkBC,GAAuBr7E,oBAAS,GAEnDs7E,EAA4D,CAGhE,CAAEz4F,IAAK,mBAAoB7J,OAAO,GAClC,CAAE6J,IAAK,qBAAsB7J,MAAOkiG,GACpC,CAAEr4F,IAAK,oBAAqB7J,MAAOoiG,IAW/BG,EAAoBn7E,uBAAY,KACpC+6E,GAAqB,GACrBE,GAAoB,GACpBjB,gCAAsB,CAAExgC,OAAQygC,SAAOC,SAAUhK,qBAEjDS,iCAAuB,CACrBR,YAAa,CAAE7B,WAAW,EAAM5vE,WAAW,GAC3Cc,UACAoxE,UAAWC,YAAUuK,MACrB13F,QAASqtF,UAAQsK,YAGnBR,IACAxJ,mCAAyB,CAAED,SAAS,MACnC,CAAClB,EAAkB2K,EAAkBr7E,IAElC87E,EAAmCt7E,uBAAY,KACnD,IAAMu7E,EAAgBxQ,aAAaC,QAAQ,iBACrCwQ,EAAmCD,EACrCr6E,KAAKwO,MAAM6rE,GACX,GAEJ,IAAKC,GAAiD,iBAA5BA,EAAkBrkE,MAI1C,OAHA4jE,GAAqB,QACrBE,GAAoB,GAKtBO,EAAkBrL,YAAYzxE,UAC1Bq8E,GAAqB,GACrBA,GAAqB,GAEzBS,EAAkBrL,YAAY7B,UAC1B2M,GAAoB,GACpBA,GAAoB,KACvB,IAEGQ,EAAiBz7E,uBACpBjoB,IACC,OAAQA,EAAEmW,OAAO0D,MACf,IAAK,qBACHmpF,GAAsBD,GACtB,MACF,IAAK,oBACHG,GAAqBD,GACrB,MACF,IAAK,mBACHt4F,IAAA,uCACA,MACF,QACErC,YAAYtI,EAAEmW,OAAO0D,SAG3B,CAACkpF,EAAmBE,IAGhBU,EAAiB17E,uBAAY,KAGjCs7E,IAEI97E,IAAYowE,UAAQC,OAEtB+K,GAAmB,GAEnBC,MAED,CACDA,EACAD,EACAU,EACA97E,IAGIm8E,EAAe37E,uBAAY,KAC/Bg6E,gCAAsB,CACpBxgC,OAAQygC,SAAO2B,MACfzL,YAAa,CACX7B,UAAW0M,EACXt8E,UAAWo8E,GAEb5K,qBAGFS,iCAAuB,CACrBR,YAAa,CACX7B,UAAW0M,EACXt8E,UAAWo8E,GAEbt7E,UACAoxE,UAAWC,YAAUuK,MACrB13F,QAASqtF,UAAQ8K,cAGnBhB,IACAxJ,mCAAyB,CAAED,SAAS,MACnC,CACD4J,EACAF,EACA5K,EACA1wE,EACAq7E,IAOF,OAJA35D,qBAAU,KACRo6D,MACC,CAACA,IAGF,oCACE,yBAAKzlF,UAAU,sBACb,4BAAKte,EAAE,GAAD,OAAI0jB,EAAJ,kBACN,uBAEE6gF,wBAAyB,CACvBC,OAAQxkG,EAAE,GAAD,OAAI0jB,EAAJ,mBAAkC,CACzC+gF,WAAYC,YAAwBzgF,SAK5C,yBAAK3F,UAAU,yBACb,yBAAKA,UAAU,kCACZqlF,EAAWv4F,KAAI,IAAqB,IAApB,IAAEF,EAAF,MAAO7J,GAAY,EAClC,OACE,2BACEid,UAAS,0DACC,qBAARpT,EAA6B,WAAa,GADnC,YAEG,qBAARA,GAA8B7J,EAAQ,SAAW,IACrD6J,IAAKA,GAEL,2BACEyM,KAAK,WACLgtF,SAAUT,EACVU,QAASvjG,EACTgZ,KAAMnP,IAER,6BACE,4BAAKlL,EAAE,GAAD,OAAI0jB,EAAJ,kBAAyBxY,EAAzB,cACN,2BAAIlL,EAAE,GAAD,OAAI0jB,EAAJ,kBAAyBxY,EAAzB,wBAMf,yBAAKoT,UAAU,wCACb,6BACE,4BAAKte,EAAE,GAAD,OAAI0jB,EAAJ,0CACN,4BA5J4B,CACpC,gBACA,eACA,eA0JyCtY,KAAKy5F,GAEhC,wBAAI35F,IAAK25F,GACN7kG,EAAE,GAAD,OACG0jB,EADH,gCACsCmhF,OAK7CtB,GACC,4BACGvjG,EAAE,GAAD,OAAI0jB,EAAJ,2CAGL+/E,GACC,4BAAKzjG,EAAE,GAAD,OAAI0jB,EAAJ,wCAIT6/E,IAAsBE,IACvB,6BACE,4BACGzjG,EAAE,GAAD,OAAI0jB,EAAJ,8CAEJ,6BACI6/E,GACA,4BACGvjG,EAAE,GAAD,OAAI0jB,EAAJ,4CAGJ+/E,GACA,4BAAKzjG,EAAE,GAAD,OAAI0jB,EAAJ,wCAOlB,yBAAKpF,UAAU,aACb,4BACEA,UAAU,gBACV3G,KAAK,SACL0yB,QAAS85D,GAERnkG,EAAE,GAAD,OAAI0jB,EAAJ,uBAEJ,4BAAQpF,UAAU,gBAAgB3G,KAAK,SAAS0yB,QAAS+5D,GACtDpkG,EAAE,GAAD,OAAI0jB,EAAJ,qBAEJ,4BACEpF,UAAU,cACV3G,KAAK,SACL0yB,QAASu5D,GAER5jG,EAAE,GAAD,OAAI0jB,EAAJ,2B,gCCrRZ,+PAQK81E,EAQAF,EAhBL,gBAMMwL,EAA+B,iB,SAEhCtL,K,cAAAA,E,eAAAA,E,uBAAAA,E,2BAAAA,E,qBAAAA,M,cAQAF,K,gBAAAA,E,cAAAA,E,aAAAA,M,KAiBL,IAAMmJ,EAAwB,IAIV,IAJW,OAC7BxgC,EAD6B,YAE7B22B,EAF6B,iBAG7BD,GACiB,EACjB,OAAQ12B,GACN,KAAKygC,SAAOC,SACNhK,GACFA,EAAiB,CAAE5B,WAAW,EAAM5vE,WAAW,IAGjDqsE,aAAa1tE,QACXg/E,EACAn7E,KAAKC,UAAU,CACbgW,MAAO,WACPg5D,YAAa,CAAE7B,WAAW,EAAM5vE,WAAW,MAI/C,MAEF,KAAKu7E,SAAOK,KACVvP,aAAa1tE,QAAQg/E,EAA8B,QACnD,MAEF,KAAKpC,SAAOqC,UACV,MAEF,KAAKrC,SAAO2B,MACN1L,GAAoBC,GACtBD,EAAiBC,GAEnBpF,aAAa1tE,QACXg/E,EACAn7E,KAAKC,UAAU,CACbgW,MAAO,WACPg5D,iBAGJ,MAEF,KAAK8J,SAAOsC,KACNrM,GACFA,EAAiB,CAAE5B,WAAW,EAAO5vE,WAAW,IAElDqsE,aAAa1tE,QACXg/E,EACAn7E,KAAKC,UAAU,CACbgW,MAAO,WACPg5D,YAAa,CAAE7B,WAAW,EAAO5vE,WAAW,QAOhDiyE,EAAyB,IAKI,IALH,YAC9BR,EAD8B,QAE9B3wE,EAF8B,UAG9BoxE,EAH8B,QAI9BltF,GACgC,EAChC0c,kBAAa,2BAA4B,CACvC+vE,cACA3wE,UACAoxE,YACAltF,aAIE62F,EAAuB,KAC3Bn6E,kBAAa,4B,iCCxGf,2DA2BMnF,EAAc,iBA4ELuhF,UA1EK,IAMkB,IANjB,QACnBh9E,EADmB,oBAEnBhE,EAFmB,iBAGnB00E,EAHmB,mBAInB0K,EAJmB,iBAKnBC,GACmC,GAC7B,EAAEtjG,GAAMqkB,YAAe,UAEvB6gF,EAAez8E,uBAAY,KAC/Bg6E,gCAAsB,CAAExgC,OAAQygC,SAAOsC,KAAMrM,qBAE7CqK,iCAEAM,MACC,CAAC3K,EAAkB2K,IAGhB6B,EAAiB18E,uBAAY,KACjC46E,GAAmB,GACnBL,mCACC,CAACK,IAEEO,EAAoBn7E,uBAAY,KACpCg6E,gCAAsB,CAAExgC,OAAQygC,SAAOC,SAAUhK,qBAEjDS,iCAAuB,CACrBR,YAAa,CAAE7B,WAAW,EAAM5vE,WAAW,GAC3Cc,UACAoxE,UAAWC,YAAUuK,MACrB13F,QAASqtF,UAAQsK,YAGnBR,MACC,CAAC3K,EAAkB2K,EAAkBr7E,IAExC,OACE,oCACE,yBAAK3J,UAAU,sBACb,4BAAKte,EAAE,GAAD,OAAI0jB,EAAJ,mBACN,uBAEE6gF,wBAAyB,CACvBC,OAAQxkG,EAAE,GAAD,OAAI0jB,EAAJ,8BAA6C,CACpD+gF,WAAYC,YAAwBzgF,SAK5C,yBAAK3F,UAAU,aACb,4BACEA,UAAU,gBACV3G,KAAK,SACL0yB,QAAS86D,GAERnlG,EAAE,GAAD,OAAI0jB,EAAJ,wBAEJ,4BAAQpF,UAAU,gBAAgB3G,KAAK,SAAS0yB,QAAS66D,GACtDllG,EAAE,GAAD,OAAI0jB,EAAJ,sBAEJ,4BACEmG,GAAG,8BACH,cAAY,8BACZvL,UAAU,cACV3G,KAAK,SACL0yB,QAASu5D,GAER5jG,EAAE,GAAD,OAAI0jB,EAAJ,2B,iCChGZ,8FAIM,qBAAE2C,GAAyBva,EAgB3Bs5F,EAA0BtlE,IAC9B,IAAMulE,EAfsB,MAC5B,IAAMA,EAAQv7F,SAAS8T,cAAc,OAKrC,GAJAynF,EAAMC,aAAa,KAAM,6BACzBD,EAAM1mF,MAAM4mF,SAAW,WACvBF,EAAM1mF,MAAM6mF,UAAY,SACxBH,EAAM1mF,MAAMuK,IAAM,IACbpf,SAASjI,KAKd,OADAiI,SAASjI,KAAK4jG,YAAYJ,GACnBA,EAJLl6F,IAAwB,sDAQZu6F,GACR50E,EAAW,IAAIzK,GACnB,CACEC,EACAwK,KAEAxK,EAAQ7J,SAAQ,SAAU8J,GACpBA,EAAMC,iBACRsZ,IACAhP,EAAS60E,oBAKbN,GACFv0E,EAASpK,QAAQ2+E,K,mDCjCrB,SAASO,EAAgB9oF,GACvB,OAAOA,GAAOA,EAAIqP,WAAarP,EAAa,QAAIA,EAHlDtG,EAAQ2V,YAAa,EAMrB,IAAI05E,EAAU,EAAQ,KAEtBrvF,EAAQsvF,OAASF,EAAgBC,GAEjC,IAAIE,EAAmB,EAAQ,KAE/BvvF,EAAQwvF,gBAAkBJ,EAAgBG,GAE1C,IAAIE,EAAoB,EAAQ,KAEhCzvF,EAAQ0vF,iBAAmBN,EAAgBK,GAE3C,IAAIE,EAAU,EAAQ,KAEtB3vF,EAAQy4E,OAAS2W,EAAgBO,GAEjC,IAAIC,EAAW,EAAQ,KAEvB5vF,EAAQ6vF,QAAUT,EAAgBQ,GAElC,IAAIE,EAAc,EAAQ,KAE1B9vF,EAAQ+vF,WAAaX,EAAgBU,GAErC,IAAIE,EAAe,EAAQ,KAE3BhwF,EAAQiwF,YAAcb,EAAgBY,I,iCClCtC,SAASppF,EAA8B3F,EAAGjX,GACxC,GAAI,MAAQiX,EAAG,MAAO,GACtB,IAAIzX,EAAI,GACR,IAAK,IAAIG,KAAKsX,EAAG,GAAI,GAAGpY,eAAeC,KAAKmY,EAAGtX,GAAI,CACjD,GAAIK,EAAEwL,SAAS7L,GAAI,SACnBH,EAAEG,GAAKsX,EAAEtX,GAEX,OAAOH,ECPT,SAASyW,IACP,OAAOA,EAAW1X,OAAOgB,OAAShB,OAAOgB,OAAO2W,OAAS,SAAUvW,GACjE,IAAK,IAAIK,EAAI,EAAGA,EAAIJ,UAAUC,OAAQG,IAAK,CACzC,IAAIR,EAAII,UAAUI,GAClB,IAAK,IAAIiX,KAAKzX,GAAG,IAAKX,eAAeC,KAAKU,EAAGyX,KAAOtX,EAAEsX,GAAKzX,EAAEyX,IAE/D,OAAOtX,GACNsW,EAASnW,MAAM,KAAMF,W,8ICPtB,G,OAAIJ,GAAK,iBAAmBA,GAAK,MAAQA,GAAK,IAAMA,EAAEwsF,UACtDhsF,EAAI,CAACR,EAAGQ,MAAQA,GAAK,WAAaR,IAAM,YAAcA,GAAK,SAAWA,EACtEG,EAAI,CAACH,EAAGG,KACV,GAAIH,EAAE0mG,aAAe1mG,EAAE2mG,cAAgB3mG,EAAE6tF,YAAc7tF,EAAE4mG,YAAa,CACpE,IAAIC,EAAKC,iBAAiB9mG,EAAG,MAE7B,OAAOQ,EAAEqmG,EAAGE,UAAW5mG,IAAMK,EAAEqmG,EAAGG,UAAW7mG,IAAM,CAACH,IAClD,IAAIQ,EAAI,CAACR,IACP,IAAKA,EAAEinG,gBAAkBjnG,EAAEinG,cAAcC,YAAa,OAAO,KAE7D,IACE,OAAOlnG,EAAEinG,cAAcC,YAAYC,aACnC,MAAOnnG,GACP,OAAO,OANH,CAQLA,GAEH,QAASQ,IAAMA,EAAEkmG,aAAe1mG,EAAE2mG,cAAgBnmG,EAAEqtF,YAAc7tF,EAAE4mG,cAXnB,CAYhD5mG,GAGL,OAAO,GAEL,EAAI,CAACA,EAAGQ,EAAGL,EAAGolB,EAAGriB,EAAGuU,EAAGvX,EAAGD,IAAMwX,EAAIzX,GAAKE,EAAIM,GAAKiX,EAAIzX,GAAKE,EAAIM,EAAI,EAAIiX,GAAKzX,GAAKC,GAAKE,GAAKD,GAAKM,GAAKP,GAAKE,EAAIsX,EAAIzX,EAAIulB,EAAIrlB,EAAIM,GAAKP,EAAIE,GAAKsX,EAAIzX,GAAKC,EAAIE,EAAID,EAAIM,EAAI0C,EAAI,EACzKA,EAAIlD,IACN,IAAIQ,EAAIR,EAAEonG,cACV,OAAO,MAAQ5mG,EAAIR,EAAEqnG,cAAc5Q,MAAQ,KAAOj2F,GCgBpD,IAAIV,EAAU,WAaZ,OAZAA,EAAUf,OAAOgB,QAAU,SAAkBC,GAC3C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAG9C,IAAK,IAAIf,KAFTc,EAAIG,UAAUF,GAGRnB,OAAOK,UAAUC,eAAeC,KAAKW,EAAGd,KAAIa,EAAEb,GAAKc,EAAEd,IAI7D,OAAOa,GAGFF,EAAQQ,MAAMX,KAAMS,YAkPArB,OAAOc,OA+MXd,OAAOc,OA8EkB,oBAApBynG,iBAAiCA,gBAqChD,ICnmBX/c,EAAY,EAchB,SAAS3oD,KAQT,SAAS,EAAetmB,EAAMisF,GAC5B,GAAKjsF,EAAL,CAIA,IAAIksF,EFPE,EAAChnG,EAAGiX,KACV,IAAIvX,EAAGD,EAAGpB,EAAGgQ,EACb,GAAI,oBAAsB/E,SAAU,MAAO,GAC3C,IACE29F,WAAY/0F,EACZgsC,MAAO58C,EACP0d,OAAQ5O,EACR60C,SAAU/2C,EACVg5F,2BAA4B1lG,GAC1ByV,EACAtY,EAAI,mBAAqBuP,EAAIA,EAAI1O,GAAKA,IAAM0O,EAChD,IAAK,EAAElO,GAAI,MAAM,IAAIhB,UAAU,kBAK/B,IAJA,IAAIuP,EAAIjF,SAAS69F,kBAAoB79F,SAAS8jF,gBAC1C18E,EAAI,GACJoqE,EAAI96E,EAED,EAAE86E,IAAMn8E,EAAEm8E,IAAK,CACpB,IAAIA,EAAIp4E,EAAEo4E,MAAUvsE,EAAG,CACrBmC,EAAEtO,KAAK04E,GACP,MAGF,MAAQA,GAAKA,IAAMxxE,SAASjI,MAAQ1B,EAAEm7E,KAAOn7E,EAAE2J,SAAS8jF,kBAAoB,MAAQtS,GAAKn7E,EAAEm7E,EAAGt5E,IAAMkP,EAAEtO,KAAK04E,GAoC7G,IAjCA,IAAIx8E,EAAI,OAASmB,EAAI,OAASC,EAAIylB,OAAOiiF,qBAAkB,EAAS1nG,EAAE6P,OAAS9P,EAAI4nG,WAC/E/4F,EAAI,OAASD,EAAI,OAAShQ,EAAI8mB,OAAOiiF,qBAAkB,EAAS/oG,EAAEqgB,QAAUrQ,EAAIi5F,aAElFC,QAAShmG,EACTimG,QAAS15F,GACPqX,QAEFzG,OAAQzc,EACRsN,MAAOqC,EACP8W,IAAKzV,EACLwhC,MAAOjG,EACPi5D,OAAQ52F,EACR2jC,KAAMvkC,GACJjQ,EAAEyoB,yBAEJC,IAAKpV,EACLmhC,MAAOliC,EACPk1F,OAAQhtB,EACRjmC,KAAMqmC,GACJ,CAACr7E,IACH,IAAIQ,EAAImlB,OAAOmhF,iBAAiB9mG,GAChC,MAAO,CACLkpB,IAAKg/E,WAAW1nG,EAAE2nG,kBAAoB,EACtClzD,MAAOizD,WAAW1nG,EAAE4nG,oBAAsB,EAC1CH,OAAQC,WAAW1nG,EAAE6nG,qBAAuB,EAC5CrzD,KAAMkzD,WAAW1nG,EAAE8nG,mBAAqB,IANxC,CAQD9nG,GAECyS,EAAI,UAAYnR,GAAK,YAAcA,EAAI2R,EAAIK,EAAI,QAAUhS,EAAIuP,EAAI4pE,EAAIxnE,EAAIhR,EAAI,EAAIqR,EAAImnE,EACrFzpE,EAAI,WAAaZ,EAAIH,EAAI2B,EAAI,EAAIipE,EAAItoE,EAAI,QAAUnC,EAAIo+B,EAAIj8B,EAAItC,EAAI4qE,EACnEpqE,EAAI,GAECs3F,EAAK,EAAGA,EAAKr3F,EAAE7Q,OAAQkoG,IAAM,CACpC,IAAIziD,EAAK50C,EAAEq3F,IAETrpF,OAAQ+yE,EACRliF,MAAOy4F,EACPt/E,IAAK6oE,EACL98C,MAAOzpB,EACPy8E,OAAQpW,EACR78C,KAAM1zB,GACJwkC,EAAG78B,wBAEP,GAAI,cAAgBvW,GAAKe,GAAK,GAAKhD,GAAK,GAAKY,GAAKvC,GAAKkgC,GAAKlwC,GAAK2U,GAAKs+E,GAAM1gF,GAAKwgF,GAAMphF,GAAK6Q,GAAM0tB,GAAKxjB,EAAI,OAAOva,EAElH,IAAIgrD,EAAK6qC,iBAAiBhhD,GACtB7nC,EAAK6L,SAASmyC,EAAGwsC,gBAAiB,IAClC1sC,EAAKjyC,SAASmyC,EAAGysC,eAAgB,IACjCC,EAAK7+E,SAASmyC,EAAG2sC,iBAAkB,IACnCC,EAAK/+E,SAASmyC,EAAG6sC,kBAAmB,IAEpCC,EAAK,EACLC,EAAK,EAELC,EAAK,gBAAiBnjD,EAAKA,EAAGojD,YAAcpjD,EAAG+nC,YAAc5vE,EAAK0qF,EAAK,EACvEQ,EAAK,iBAAkBrjD,EAAKA,EAAGsjD,aAAetjD,EAAG4gD,aAAe3qC,EAAK8sC,EAAK,EAC1E35F,EAAI,gBAAiB42C,EAAK,IAAMA,EAAGojD,YAAc,EAAIV,EAAK1iD,EAAGojD,YAAc,EAC3Eh2F,GAAI,iBAAkB4yC,EAAK,IAAMA,EAAGsjD,aAAe,EAAInX,EAAKnsC,EAAGsjD,aAAe,EAElF,GAAIr6F,IAAM+2C,EAAIijD,EAAK,UAAYjnG,EAAImR,EAAI,QAAUnR,EAAImR,EAAInE,EAAI,YAAchN,EAAI,EAAEwM,EAAGA,EAAIQ,EAAGA,EAAGitD,EAAI8sC,EAAIv6F,EAAI2E,EAAG3E,EAAI2E,EAAIxQ,EAAGA,GAAKwQ,EAAInE,EAAI,EAAGk6F,EAAK,UAAYp4F,EAAIY,EAAI,WAAaZ,EAAIY,EAAI1S,EAAI,EAAI,QAAU8R,EAAIY,EAAI1S,EAAI,EAAEiD,EAAGA,EAAIjD,EAAGA,EAAGmf,EAAI0qF,EAAI5mG,EAAIyP,EAAGzP,EAAIyP,EAAIY,EAAGA,GAAI22F,EAAKx5F,KAAK+5D,IAAI,EAAGy/B,EAAKz6F,GAAI06F,EAAKz5F,KAAK+5D,IAAI,EAAG0/B,EAAKjnG,OAAQ,CACvTgnG,EAAK,UAAYjnG,EAAImR,EAAI8+E,EAAKh2B,EAAK,QAAUj6D,EAAImR,EAAI4+E,EAAKgX,EAAKM,EAAK,YAAcrnG,EAAI,EAAEiwF,EAAIF,EAAII,EAAIl2B,EAAI8sC,EAAKM,EAAIl2F,EAAGA,EAAIxQ,EAAGA,GAAKwQ,GAAK8+E,EAAKE,EAAK,GAAKkX,EAAK,EAAGH,EAAK,UAAYp4F,EAAIY,EAAI8P,EAAKrD,EAAK,WAAarN,EAAIY,GAAK8P,EAAKknF,EAAK,GAAKS,EAAK,EAAI,QAAUr4F,EAAIY,EAAIga,EAAKm9E,EAAKM,EAAK,EAAE3nF,EAAIkK,EAAIg9E,EAAIvqF,EAAI0qF,EAAKM,EAAIz3F,EAAGA,EAAIY,EAAGA,GACnT,IACEi3F,WAAYC,GACZC,UAAWC,IACT1jD,EACyK7yC,GAAKu2F,IAAlLT,EAAK,IAAM71F,GAAI,EAAI3D,KAAK+5D,IAAI,EAAG/5D,KAAK61B,IAAIokE,GAAMT,EAAK71F,GAAG4yC,EAAG6gD,aAAe1U,EAAK/+E,GAAIi2F,KAA2G33F,GAAK83F,IAA1GN,EAAK,IAAM95F,EAAI,EAAIK,KAAK+5D,IAAI,EAAG/5D,KAAK61B,IAAIkkE,GAAMN,EAAK95F,EAAG42C,EAAG8gD,YAAc4B,EAAKt5F,EAAI+5F,KAEzKh4F,EAAErO,KAAK,CACL+c,GAAImmC,EACJ58B,IAAK6/E,EACL/zD,KAAMg0D,IAIV,OAAO/3F,GE7FO,CAAQqK,EAAM,CAC1BmqC,SAAU8hD,EACV7oD,MAAO,UACP+oD,WAAY,cAEdD,EAAQ/qF,SAAQ,SAAUgB,GACxB,IAAIkC,EAAKlC,EAAKkC,GACVuJ,EAAMzL,EAAKyL,IACX8rB,EAAOv3B,EAAKu3B,KAChBr1B,EAAG4pF,UAAYrgF,EACfvJ,EAAG0pF,WAAar0D,MAWpB,SAASy0D,EAAiBtwD,EAAQsV,EAAOi7C,GAEvC,OADavwD,IAAWsV,GAASA,aAAiBi7C,EAAYC,MAAQxwD,EAAO60C,UAAY70C,EAAO60C,SAASv/B,GAa3G,SAASm7C,EAASl8D,EAAI1rB,GACpB,IAAI6nF,EAEJ,SAAS97C,IACH87C,GACF31C,aAAa21C,GAIjB,SAASzrF,IACP,IAAK,IAAIuR,EAAOvvB,UAAUC,OAAQyW,EAAO,IAAI5X,MAAMywB,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9Y,EAAK8Y,GAAQxvB,UAAUwvB,GAGzBm+B,IACA87C,EAAYzgF,YAAW,WACrBygF,EAAY,KACZn8D,EAAGptC,WAAM,EAAQwW,KAChBkL,GAIL,OADA5D,EAAQ2vC,OAASA,EACV3vC,EAWT,SAAS0rF,IACP,IAAK,IAAIh6E,EAAQ1vB,UAAUC,OAAQ0pG,EAAM,IAAI7qG,MAAM4wB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACnFg6E,EAAIh6E,GAAS3vB,UAAU2vB,GAGzB,OAAO,SAAUa,GACf,IAAK,IAAIZ,EAAQ5vB,UAAUC,OAAQyW,EAAO,IAAI5X,MAAM8wB,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGnZ,EAAKmZ,EAAQ,GAAK7vB,UAAU6vB,GAG9B,OAAO85E,EAAIr+D,MAAK,SAAUgC,GAKxB,OAJIA,GACFA,EAAGptC,WAAM,EAAQ,CAACswB,GAAOxtB,OAAO0T,IAG3B8Z,EAAMo5E,yBAA2Bp5E,EAAMvxB,eAAe,gBAAkBuxB,EAAMq5E,YAAYD,4BAKvG,SAASE,IACP,IAAK,IAAIh6E,EAAQ9vB,UAAUC,OAAQ4jE,EAAO,IAAI/kE,MAAMgxB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF8zC,EAAK9zC,GAAS/vB,UAAU+vB,GAG1B,OAAO,SAAU7U,GACf2oD,EAAKxnD,SAAQ,SAAU0D,GACF,oBAARA,EACTA,EAAI7E,GACK6E,IACTA,EAAIG,QAAUhF,OAWtB,SAAS6uF,IACP,OAAO1qG,OAAO8qF,KAiIhB,SAAS6f,EAASxqE,EAAO9lB,GACvB,OAAK8lB,GAAU9lB,EAIR/a,OAAOmd,KAAK0jB,GAAOJ,QAAO,SAAU6qE,EAAWn/F,GAEpD,OADAm/F,EAAUn/F,GAAOo/F,EAAiBxwF,EAAO5O,GAAO4O,EAAM5O,GAAO00B,EAAM10B,GAC5Dm/F,IACN,IANMzqE,EAmBX,SAAS0qE,EAAiBxwF,EAAO5O,GAC/B,YAAsBoX,IAAfxI,EAAM5O,GASf,SAASq/F,EAAkB35E,GACzB,IAAI1lB,EAAM0lB,EAAM1lB,IACZs/F,EAAU55E,EAAM45E,QAGpB,OAAIA,GAAW,IAAMA,GAAW,IAA+B,IAAzBt/F,EAAIzK,QAAQ,SACzC,QAAUyK,EAGZA,EAwBT,SAASu/F,EAAoB7oD,EAAO7tC,EAAQuxB,EAAOolE,EAAgBC,QAChD,IAAbA,IACFA,GAAW,GAGb,IAAIxsF,EAAQmnB,EAAMjlC,OAElB,GAAc,IAAV8d,EACF,OAAQ,EAGV,IAAIysF,EAAiBzsF,EAAQ,GAER,kBAAVyjC,GAAsBA,EAAQ,GAAKA,EAAQgpD,KACpDhpD,EAAQ7tC,EAAS,GAAK,EAAI62F,EAAiB,GAG7C,IAAItqF,EAAUshC,EAAQ7tC,EAElBuM,EAAU,EACZA,EAAUqqF,EAAWC,EAAiB,EAC7BtqF,EAAUsqF,IACnBtqF,EAAUqqF,EAAW,EAAIC,GAG3B,IAAIC,EAAmBC,EAAoBxqF,EAASvM,EAAS,EAAGuxB,EAAOolE,EAAgBC,GAEvF,OAA0B,IAAtBE,EACKjpD,GAASzjC,GAAS,EAAIyjC,EAGxBipD,EAcT,SAASC,EAAoBlpD,EAAOmpD,EAAWzlE,EAAOolE,EAAgBC,QACnD,IAAbA,IACFA,GAAW,GAGb,IAAIxsF,EAAQmnB,EAAMjlC,OAElB,GAAI0qG,GACF,IAAK,IAAI13E,EAAQuuB,EAAOvuB,GAAS,EAAGA,IAClC,IAAKq3E,EAAeplE,EAAMjS,GAAQA,GAChC,OAAOA,OAIX,IAAK,IAAI23E,EAASppD,EAAOopD,EAAS7sF,EAAO6sF,IACvC,IAAKN,EAAeplE,EAAM0lE,GAASA,GACjC,OAAOA,EAKb,OAAIL,EACKG,EAAoBC,EAAY5sF,EAAQ,EAAI,EAAG4sF,EAAWzlE,EAAOolE,IAGlE,EAcV,SAASO,EAAsBt0F,EAAQu0F,EAAmBxB,EAAayB,GAKrE,YAJ2B,IAAvBA,IACFA,GAAqB,GAGhBzB,GAAewB,EAAkBx/D,MAAK,SAAU0/D,GACrD,OAAOA,IAAgB3B,EAAiB2B,EAAaz0F,EAAQ+yF,IAAgByB,GAAsB1B,EAAiB2B,EAAa1B,EAAY5/F,SAASuhG,cAAe3B,OAuBzK,IAAI4B,EAAgB1B,GAAS,SAAU2B,GACrCC,EAAaD,GAAc5e,YAAc,KACxC,KAOH,SAAS6e,EAAaD,GACpB,IAAIE,EAAYF,EAAavT,eAAe,uBAE5C,OAAIyT,KAIJA,EAAYF,EAAa3tF,cAAc,QAC7B0nF,aAAa,KAAM,uBAC7BmG,EAAUnG,aAAa,OAAQ,UAC/BmG,EAAUnG,aAAa,YAAa,UACpCmG,EAAUnG,aAAa,gBAAiB,kBACxCvmG,OAAOgB,OAAO0rG,EAAU9sF,MAAO,CAC7B+sF,OAAQ,IACRC,KAAM,gBACNzsF,OAAQ,MACR0xE,OAAQ,OACRgb,SAAU,SACVC,QAAS,IACTtG,SAAU,WACVx1F,MAAO,QAETw7F,EAAa1pG,KAAK4jG,YAAYgG,GACvBA,GAQT,SAASK,EAAUruD,EAAQ8tD,GACpB9tD,GAAW8tD,IAINC,EAAaD,GACnB5e,YAAclvC,EAClB6tD,EAAcC,IA0wChB,IAAIQ,EAA6B,CAC/BlB,kBAAmB,EACnBmB,QAAQ,EACRC,aAAc,KACdC,WAAY,IAGd,SAASC,EAAkBlqC,EAAQriC,EAAOwsE,GACxC,IAAItyF,EAAQmoD,EAAOnoD,MACfnC,EAAOsqD,EAAOtqD,KACd00F,EAAU,GACdttG,OAAOmd,KAAK0jB,GAAOnjB,SAAQ,SAAUvR,IAevC,SAA+BA,EAAK+2D,EAAQriC,EAAOwsE,GACjD,IAAItyF,EAAQmoD,EAAOnoD,MACfnC,EAAOsqD,EAAOtqD,KACd48B,EAAU,KAAO+3D,EAAiBphG,GAAO,SAEzC4O,EAAMy6B,SAA8BjyB,IAAlB8pF,EAASlhG,IAAsBkhG,EAASlhG,KAAS00B,EAAM10B,IAC3E4O,EAAMy6B,GAAS99B,EAAS,CACtBkB,KAAMA,GACLy0F,IAtBHG,CAAsBrhG,EAAK+2D,EAAQriC,EAAOwsE,GAEtCA,EAASlhG,KAAS00B,EAAM10B,KAC1BmhG,EAAQnhG,GAAOkhG,EAASlhG,OAIxB4O,EAAM0yF,eAAiBztG,OAAOmd,KAAKmwF,GAAShsG,QAC9CyZ,EAAM0yF,cAAc/1F,EAAS,CAC3BkB,KAAMA,GACL00F,IAgCP,IAAII,EAAmB7C,GAAS,SAAUnsD,EAAQ3zC,GAChDgiG,EAAUruD,EAAQ3zC,KACjB,KAEC4iG,EAA8C,qBAAX/mF,QAAqD,qBAApBA,OAAO7b,UAAqE,qBAAlC6b,OAAO7b,SAAS8T,cAAgC,kBAAkB,YAEhL,EAAgB,UAAW,IAC7B,SAAuBH,GACvB,IAAIoM,EAAKpM,EAAKoM,GACV8iF,EAAUlvF,EAAKkvF,QACfC,EAASnvF,EAAKmvF,OACdC,EAAYpvF,EAAKovF,UACjBC,EAAiBrvF,EAAKqvF,eACtBC,EAAUtvF,EAAKsvF,QAEfC,EAAU,aAAe,IAAMC,QAenC,OAbKpjF,IACHA,EAAKmjF,GAGa,iBAAO,CACzBL,QAASA,GAAW9iF,EAAK,SACzB+iF,OAAQA,GAAU/iF,EAAK,QACvBgjF,UAAWA,GAAa,SAAUx5E,GAChC,OAAOxJ,EAAK,SAAWwJ,GAEzBy5E,eAAgBA,GAAkBjjF,EAAK,iBACvCkjF,QAASA,GAAWljF,EAAK,WAENvJ,SACnB,SAAuBvB,GACzB,IAAImuF,EAAWnuF,EAAM8K,GACjBA,OAAkB,IAAbqjF,EAAsB,aAAe/C,IAAe+C,EACzDP,EAAU5tF,EAAM4tF,QAChBC,EAAS7tF,EAAM6tF,OACfC,EAAY9tF,EAAM8tF,UAClBC,EAAiB/tF,EAAM+tF,eACvBC,EAAUhuF,EAAMguF,QAUpB,OAToB,iBAAO,CACzBJ,QAASA,GAAW9iF,EAAK,SACzB+iF,OAAQA,GAAU/iF,EAAK,QACvBgjF,UAAWA,GAAa,SAAUx5E,GAChC,OAAOxJ,EAAK,SAAWwJ,GAEzBy5E,eAAgBA,GAAkBjjF,EAAK,iBACvCkjF,QAASA,GAAWljF,EAAK,WAENvJ,SAGvB,SAAS6sF,EAAgBC,EAAUC,EAAW/nE,EAAOgoE,GACnD,IAAIt9D,EAAM3c,EAEV,QAAiB/Q,IAAb8qF,EAAwB,CAC1B,QAAkB9qF,IAAd+qF,EACF,MAAM,IAAI9pG,MAAM+pG,GAGlBt9D,EAAO1K,EAAM+nE,GACbh6E,EAAQg6E,OAERh6E,OAAsB/Q,IAAd+qF,EAA0B/nE,EAAM7kC,QAAQ2sG,GAAYC,EAC5Dr9D,EAAOo9D,EAGT,MAAO,CAACp9D,EAAM3c,GAOhB,SAASi5E,EAAiBvxF,GACxB,MAAO,GAAKA,EAAO5X,MAAM,EAAG,GAAGqI,cAAgBuP,EAAO5X,MAAM,GAG9D,SAASoqG,EAAalvE,GACpB,IAAIle,EAAM,iBAAOke,GAOjB,OADAle,EAAIG,QAAU+d,EACPle,EAeT,SAASqtF,EAAmB7gC,EAAS7yD,EAAO2zF,EAAoBC,GAC9D,IAAIC,EAAe,mBACfC,EAAY,mBACZC,EAAkB,uBAAY,SAAUjuE,EAAOqiC,GACjD2rC,EAAUttF,QAAU2hD,EACpBriC,EAAQwqE,EAASxqE,EAAOqiC,EAAOnoD,OAC/B,IAAIuyF,EAAU1/B,EAAQ/sC,EAAOqiC,GAI7B,OAHeA,EAAOnoD,MAAMg0F,aAAaluE,EAAOnpB,EAAS,GAAIwrD,EAAQ,CACnEoqC,QAASA,OAGV,CAAC1/B,IAEAohC,EAAc,qBAAWF,EAAiB/zF,EAAO2zF,GACjD7tE,EAAQmuE,EAAY,GACpBC,EAAWD,EAAY,GAEvBE,EAAWV,EAAazzF,GACxBo0F,EAAoB,uBAAY,SAAUjsC,GAC5C,OAAO+rC,EAASv3F,EAAS,CACvBqD,MAAOm0F,EAAS3tF,SACf2hD,MACF,CAACgsC,IACAhsC,EAAS2rC,EAAUttF,QAWvB,OAVA,qBAAU,WACR,IAAI+pF,EAAYD,EAASuD,EAAartF,QAAmB,MAAV2hD,OAAiB,EAASA,EAAOnoD,OAClDmoD,GAAU0rC,EAAartF,UAAYotF,EAAarD,EAAWzqE,IAGvFusE,EAAkBlqC,EAAQooC,EAAWzqE,GAGvC+tE,EAAartF,QAAUsf,IACtB,CAACA,EAAOqiC,EAAQyrC,IACZ,CAAC9tE,EAAOsuE,GAcjB,SAASC,EAAuBxhC,EAAS7yD,EAAO2zF,EAAoBC,GAClE,IAAIU,EAAsBZ,EAAmB7gC,EAAS7yD,EAAO2zF,EAAoBC,GAC7E9tE,EAAQwuE,EAAoB,GAC5BJ,EAAWI,EAAoB,GAEnC,MAAO,CAAChE,EAASxqE,EAAO9lB,GAAQk0F,GAGlC,IAAIK,EAAiB,CACnBC,aAAc,SAAsBt+D,GAClC,OAAOA,EAAOvwC,OAAOuwC,GAAQ,IAE/Bu+D,UAAW,SAAmBv+D,GAC5B,OAAOA,GAET89D,aA3KF,SAAsB7tG,EAAGyO,GACvB,OAAOA,EAAE29F,SA2KTmC,eAAgB,EAChB9E,YAEkB,qBAAX/jF,YAAkCrD,EAAYqD,QAGvD,SAAS8oF,EAAkB30F,EAAO40F,EAASC,QACd,IAAvBA,IACFA,EAAqB5C,GAGvB,IAAIh1E,EAAejd,EAAM,UAAYwyF,EAAiBoC,IAEtD,YAAqBpsF,IAAjByU,EACKA,EAGF43E,EAAmBD,GAG5B,SAASE,EAAkB90F,EAAO40F,EAASC,QACd,IAAvBA,IACFA,EAAqB5C,GAGvB,IAAI1qG,EAAQyY,EAAM40F,GAElB,QAAcpsF,IAAVjhB,EACF,OAAOA,EAGT,IAAIwtG,EAAe/0F,EAAM,UAAYwyF,EAAiBoC,IAEtD,YAAqBpsF,IAAjBusF,EACKA,EAGFJ,EAAkB30F,EAAO40F,EAASC,GAG3C,SAASG,EAAkBh1F,GACzB,IAAImyF,EAAe2C,EAAkB90F,EAAO,gBACxCkyF,EAAS4C,EAAkB90F,EAAO,UAClC+wF,EAwVN,SAAoC/wF,GAClC,IAAI+wF,EAAmB+D,EAAkB90F,EAAO,oBAEhD,GAAI+wF,GAAoB,GAAK/wF,EAAM4wF,eAAe5wF,EAAMwrB,MAAMulE,GAAmBA,GAC/E,OAAQ,EAGV,OAAOA,EA/VgBkE,CAA2Bj1F,GAC9CoyF,EAAa0C,EAAkB90F,EAAO,cAC1C,MAAO,CACL+wF,iBAAkBA,EAAmB,GAAKoB,GAAgBD,EAASlyF,EAAMwrB,MAAMxiB,WAAU,SAAUktB,GACjG,OAAOl2B,EAAMy0F,UAAUv+D,KAAUl2B,EAAMy0F,UAAUtC,MAC9CpB,EACLmB,OAAQA,EACRC,aAAcA,EACdC,WAAYA,GAIhB,SAAS8C,EAA0Bl1F,EAAO8lB,EAAO7rB,GAC/C,IAAIuxB,EAAQxrB,EAAMwrB,MACd2pE,EAA0Bn1F,EAAMm1F,wBAChCC,EAA0Bp1F,EAAMo1F,wBAChCxE,EAAiB5wF,EAAM4wF,eACvB6D,EAAYz0F,EAAMy0F,UAClBtC,EAAersE,EAAMqsE,aACrBpB,EAAmBjrE,EAAMirE,iBAE7B,OAAqB,IAAjBvlE,EAAMjlC,QACA,OAIsBiiB,IAA5B2sF,GAAyCpE,IAAqBoE,GAA4BvE,EAAeplE,EAAM2pE,GAA0BA,QAI7G3sF,IAA5B4sF,GAA0CxE,EAAeplE,EAAM4pE,GAA0BA,GAIzFjD,EACK3mE,EAAMxiB,WAAU,SAAUktB,GAC/B,OAAOu+D,EAAUtC,KAAkBsC,EAAUv+D,MAI7Cj8B,EAAS,IAAM22F,EAAeplE,EAAMA,EAAMjlC,OAAS,GAAIilC,EAAMjlC,OAAS,GACjEilC,EAAMjlC,OAAS,EAGpB0T,EAAS,IAAM22F,EAAeplE,EAAM,GAAI,GACnC,GAGD,EAjBC4pE,EAJAD,EAiCX,SAASE,EAAwBzF,EAAa0F,EAAYC,GACxD,IAAIC,EAA2B,iBAAO,CACpCC,aAAa,EACbC,aAAa,EACbC,YAAY,IAuDd,OArDA,qBAAU,WACR,IAAK/F,EACH,OAAO9nE,EAGT,IAAIspE,EAAoBmE,EAAsBjkG,KAAI,SAAU+U,GAC1D,OAAOA,EAAIG,WAGb,SAASovF,IACPJ,EAAyBhvF,QAAQmvF,YAAa,EAE9CH,EAAyBhvF,QAAQivF,aAAc,EAGjD,SAASI,EAAU/+E,GACjB0+E,EAAyBhvF,QAAQivF,aAAc,EAE1CtE,EAAsBr6E,EAAMja,OAAQu0F,EAAmBxB,IAC1D0F,IAIJ,SAASQ,IACPN,EAAyBhvF,QAAQmvF,YAAa,EAC9CH,EAAyBhvF,QAAQkvF,aAAc,EAGjD,SAASK,IACPP,EAAyBhvF,QAAQkvF,aAAc,EAGjD,SAASM,EAAWl/E,GAClB0+E,EAAyBhvF,QAAQmvF,YAAa,EAEzCH,EAAyBhvF,QAAQkvF,aAAgBvE,EAAsBr6E,EAAMja,OAAQu0F,EAAmBxB,GAAa,IACxH0F,IASJ,OALA1F,EAAYtc,iBAAiB,YAAasiB,GAC1ChG,EAAYtc,iBAAiB,UAAWuiB,GACxCjG,EAAYtc,iBAAiB,aAAcwiB,GAC3ClG,EAAYtc,iBAAiB,YAAayiB,GAC1CnG,EAAYtc,iBAAiB,WAAY0iB,GAClC,WACLpG,EAAY/b,oBAAoB,YAAa+hB,GAC7ChG,EAAY/b,oBAAoB,UAAWgiB,GAC3CjG,EAAY/b,oBAAoB,aAAciiB,GAC9ClG,EAAY/b,oBAAoB,YAAakiB,GAC7CnG,EAAY/b,oBAAoB,WAAYmiB,MAE7C,CAACT,EAAuB3F,EAAa0F,IACjCE,EAAyBhvF,QAMlC,IAAIyvF,EAA8B,WAChC,OAAOnuE,GAiET,SAASouE,EAAqBC,EAAsB7/F,EAAS8/F,EAAiBxG,QACxD,IAAhBA,IACFA,EAAc,IAGhB,IAAI5/F,EAAW4/F,EAAY5/F,SACvBqmG,EAAiBC,KAErB,qBAAU,WACR,GAAKH,IAAwBE,GAA4BrmG,EAAzD,CAIA,IAAI2zC,EAASwyD,EAAqB7/F,GAClCq8F,EAAiBhvD,EAAQ3zC,MACxBomG,GAEH,qBAAU,WACR,OAAO,WAxtDX,IAA0B3E,EACpBE,EAwtDAgB,EAAiB1+C,UAxtDjB09C,EAA4B,OADRF,EA0tDHzhG,QAztDkB,EAASyhG,EAAavT,eAAe,yBAG1EyT,EAAUriG,YAwtDT,CAACU,IAGN,SAASumG,EAAkBryF,GACzB,IAAI6sF,EAAmB7sF,EAAM6sF,iBACzBmB,EAAShuF,EAAMguF,OACfsE,EAAWtyF,EAAMsyF,SACjBC,EAAuBvyF,EAAMuyF,qBAC7BC,EAAcxyF,EAAMwyF,YACpBC,EAAqBzyF,EAAMwwF,eAE3BkC,EAAkB,kBAAO,GAc7B,OAZAhE,GAA0B,WACpB7B,EAAmB,IAAMmB,IAAWjtG,OAAOmd,KAAKo0F,EAAShwF,SAASjgB,UAItC,IAA5BqwG,EAAgBpwF,QAClBowF,EAAgBpwF,SAAU,EAE1BmwF,EAAmBF,EAAqB1F,GAAmB2F,MAG5D,CAAC3F,IACG6F,EAIT,IAAIC,EAA2B/uE,EA8B/B,SAASgvE,EAAsB92F,EAAO+wF,EAAkBqB,GACtD,IAAI2E,EAOJ,YALmB,IAAf3E,IACFA,GAAa,GAIRz1F,EAAS,CACdu1F,QAAQ,EACRnB,kBAAmB,IAH+B,OAA/BgG,EAAe/2F,EAAMwrB,YAAiB,EAASurE,EAAaxwG,SAAWwqG,GAAoB,GAI7Fp0F,EAAS,CAC1Bw1F,aAAcnyF,EAAMwrB,MAAMulE,GAC1BmB,OAAQyC,EAAkB30F,EAAO,UACjC+wF,iBAAkB4D,EAAkB30F,EAAO,qBAC1CoyF,GAAc,CACfA,WAAYpyF,EAAMw0F,aAAax0F,EAAMwrB,MAAMulE,OAa/C,SAASiG,EAAsBzG,EAAW+B,GACxC,OAAO/B,EAAU2B,SAAWI,EAASJ,QAAU3B,EAAU6B,aAAeE,EAASF,YAAc7B,EAAUQ,mBAAqBuB,EAASvB,kBAAoBR,EAAU4B,eAAiBG,EAASH,aAOjM,SAASmE,KACP,IAAIW,EAAoB,IAAMxoF,QAAO,GAOrC,OANA,IAAMohB,WAAU,WAEd,OADAonE,EAAkBzwF,SAAU,EACrB,WACLywF,EAAkBzwF,SAAU,KAE7B,IACIywF,EAAkBzwF,QAU3B,SAAS0wF,GAA2Bl3F,GAClC,IAAI+wF,EAAmB4D,EAAkB30F,EAAO,oBAEhD,OAAI+wF,GAAoB,GAAK/wF,EAAM4wF,eAAe5wF,EAAMwrB,MAAMulE,GAAmBA,IACvE,EAGHA,EAqBT,IAAIoG,GAAkB,CACpBvH,YAAa,IAAUhuF,MAAM,CAC3B0xE,iBAAkB,IAAUxyE,KAAKL,WACjCozE,oBAAqB,IAAU/yE,KAAKL,WACpCzQ,SAAU,IAAU4R,MAAM,CACxBkC,cAAe,IAAUhD,KAAKL,WAC9By9E,eAAgB,IAAUp9E,KAAKL,WAC/B8wF,cAAe,IAAUpwF,IAAIV,WAC7B1Y,KAAM,IAAUoZ,IAAIV,aACnBA,WACHovF,KAAM,IAAU/uF,KAAKL,aAEvB+zF,aAAc,IAAU1zF,KACxB2zF,UAAW,IAAU3zF,KACrBkzF,aAAc,IAAUlzF,MAGtBs2F,GAA0Bz6F,EAAS,GAAIw6F,GAAiB,CAC1DhB,qBAAsB,IAAUr1F,KAChCiwF,iBAAkB,IAAUhwF,OAC5Bq0F,wBAAyB,IAAUr0F,OACnCo0F,wBAAyB,IAAUp0F,OACnCmxF,OAAQ,IAAUrxF,KAClBw2F,cAAe,IAAUx2F,KACzBy2F,cAAe,IAAUz2F,KACzBsxF,aAAc,IAAUhxF,IACxBo2F,oBAAqB,IAAUp2F,IAC/Bq2F,oBAAqB,IAAUr2F,IAC/B4O,GAAI,IAAU9O,OACd4xF,QAAS,IAAU5xF,OACnB6xF,OAAQ,IAAU7xF,OAClB8xF,UAAW,IAAUjyF,KACrBkyF,eAAgB,IAAU/xF,OAC1Bw2F,qBAAsB,IAAU32F,KAChC42F,yBAA0B,IAAU52F,KACpC4xF,cAAe,IAAU5xF,KACzB62F,eAAgB,IAAU72F,KAC1B4zF,eAAgB,IAAU5zF,OAG5B,SAAS82F,GAAuB9xE,EAAOqiC,EAAQ0vC,GAC7C,IAEItF,EAFA10F,EAAOsqD,EAAOtqD,KACdmC,EAAQmoD,EAAOnoD,MAGnB,OAAQnC,GACN,KAAKg6F,EAAiBC,cACpBvF,EAAU,CACRxB,iBAAkB5oC,EAAO4vC,UAAY,EAAI5vC,EAAO5uC,OAElD,MAEF,KAAKs+E,EAAiBG,eACpBzF,EAAU,CACRxB,kBAAmB,GAErB,MAEF,KAAK8G,EAAiBI,kBACtB,KAAKJ,EAAiBK,mBACpB3F,EAAU,CACRL,QAASpsE,EAAMosE,OACfnB,iBAAkBjrE,EAAMosE,QAAU,EAAIgD,EAA0Bl1F,EAAO8lB,EAAO,IAEhF,MAEF,KAAK+xE,EAAiBM,iBACpB5F,EAAU,CACRL,QAAQ,EACRnB,iBAAkBmE,EAA0Bl1F,EAAO8lB,EAAO,IAE5D,MAEF,KAAK+xE,EAAiBO,kBACpB7F,EAAU,CACRL,QAAQ,GAEV,MAEF,KAAK2F,EAAiBQ,4BACpB9F,EAAU,CACRxB,iBAAkB/wF,EAAM4wF,eAAe5wF,EAAMwrB,MAAM28B,EAAO4oC,kBAAmB5oC,EAAO4oC,mBAAqB,EAAI5oC,EAAO4oC,kBAEtH,MAEF,KAAK8G,EAAiBS,sBACpB/F,EAAU,CACRH,WAAYjqC,EAAOiqC,YAErB,MAEF,KAAKyF,EAAiBU,cACpBhG,EAAU,CACRxB,iBAAkBmG,GAA2Bl3F,GAC7CkyF,OAAQyC,EAAkB30F,EAAO,UACjCmyF,aAAcwC,EAAkB30F,EAAO,gBACvCoyF,WAAYuC,EAAkB30F,EAAO,eAEvC,MAEF,QACE,MAAM,IAAIvW,MAAM,8CAGpB,OAAOkT,EAAS,GAAImpB,EAAOysE,GA0BX,EAAS,EAAS,GAAI6E,IAA0B,CAChE5rE,MAAO,IAAU7qB,MAAMF,WACvBmwF,eAAgB,IAAU9vF,OAF5B,IAKI03F,GAAiB,EAAS,EAAS,GAAIjE,GAAiB,CAC1D3D,eAAgB,WACd,OAAO,KAKP6H,GAAsB3wE,EAS1B,IAsBI4wE,GAAkCzzG,OAAO85C,OAAO,CAClD55C,UAAW,KACXizG,kBAP4F,GAQ5FD,iBAT0F,GAU1FI,cALmF,GAMnFI,mBAR8F,GAS9FN,4BAViH,GAWjHC,sBATqG,GAUrGJ,mBAf8F,GAgB9FU,UAjB2E,GAkB3Ed,cAnBoF,GAoBpFE,eArBsF,GAsBtFa,iBAvBuF,GAwBvFZ,kBAnC2F,EAoC3Fa,6BAnCiH,EAoCjHC,2BAnC6G,EAoC7GC,6BAnCgH,EAoChHC,uBAjCoG,EAkCpGC,yBAjCwG,EAkCxGC,0BArC0G,EAsC1GC,wBArCsG,EAsCtGC,4BAjC+G,GAkC/GC,0BAnC2G,EAoC3GC,+BArCqH,IAyCvH,SAASC,GAAuB1zE,EAAOqiC,GACrC,IAAI4uC,EAKAxE,EAHA10F,EAAOsqD,EAAOtqD,KACdmC,EAAQmoD,EAAOnoD,MACfy5F,EAAStxC,EAAOsxC,OAGpB,OAAQ57F,GACN,KA5CyE,GA6CvE00F,EAAU,CACRL,OAAQyC,EAAkB30F,EAAO,UACjC+wF,iBAAkBmG,GAA2Bl3F,GAC7CmyF,aAAcnyF,EAAMwrB,MAAM28B,EAAO5uC,QAEnC,MAEF,KA/D8G,EAiE1G,IAAImgF,EAAgBvxC,EAAO/2D,IACvBghG,EAAa,GAAKtsE,EAAMssE,WAAasH,EAWzCnH,EAAU,CACRH,WAAYA,EACZrB,iBA5HV,SAAoC5sF,GAQlC,IAPA,IAAIw1F,EAAYx1F,EAAGw1F,UACf5I,EAAmB5sF,EAAG4sF,iBACtBvlE,EAAQrnB,EAAGqnB,MACXgpE,EAAerwF,EAAGqwF,aAClB5D,EAAiBzsF,EAAGysF,eACpBgJ,EAAsBD,EAAU5gG,cAE3BwgB,EAAQ,EAAGA,EAAQiS,EAAMjlC,OAAQgzB,IAAS,CAEjD,IAAIsgF,GAAetgF,EAAQw3E,GAAoB4I,EAAUpzG,OAAS,EAAI,EAAI,IAAMilC,EAAMjlC,OAClF2vC,EAAO1K,EAAMquE,GAEjB,QAAarxF,IAAT0tB,GAAsBs+D,EAAat+D,GAAMn9B,cAAcg5E,WAAW6nB,KAAyBhJ,EAAe16D,EAAM2jE,GAClH,OAAOA,EAIX,OAAO9I,EAiGsB+I,CAA2B,CAChDH,UAAWvH,EACXrB,kBAL0BjrE,EAAMosE,QAAUpsE,EAAMqsE,aAAenyF,EAAMwrB,MAAMxiB,WAAU,SAAUktB,GAC/F,OAAOl2B,EAAMy0F,UAAUv+D,KAAUl2B,EAAMy0F,UAAU3uE,EAAMqsE,iBACpDrsE,EAAMirE,iBAITvlE,MAAOxrB,EAAMwrB,MACbgpE,aAAcx0F,EAAMw0F,aACpB5D,eAAgB5wF,EAAM4wF,iBAKtBsB,QAAQ,GAGZ,MAEF,KAvF+G,EA2F3GK,EAAU,CACRxB,iBAHsBjrE,EAAMosE,OAASvB,EAAoB7qE,EAAMirE,iBAAkB,EAAG/wF,EAAMwrB,MAAOxrB,EAAM4wF,gBAAkB6I,GAAgC,MAAtB3zE,EAAMqsE,cAAwB,EAAI+C,EAA0Bl1F,EAAO8lB,EAAO,GAI7MosE,QAAQ,GAGZ,MAEF,KAjG2G,EAkGzG,GAAIpsE,EAAMosE,QAAUuH,EAClBlH,EAAUuE,EAAsB92F,EAAO8lB,EAAMirE,kBAAkB,QAI/DwB,EAAU,CACRxB,iBAHuBjrE,EAAMosE,OAASvB,EAAoB7qE,EAAMirE,kBAAmB,EAAG/wF,EAAMwrB,MAAOxrB,EAAM4wF,gBAAkBsE,EAA0Bl1F,EAAO8lB,GAAQ,GAIpKosE,QAAQ,GAIZ,MAGF,KA3GsG,EA4GtG,KA3GmH,EA4GjHK,EAAUuE,EAAsB92F,EAAO8lB,EAAMirE,kBAAkB,GAC/D,MAEF,KAlHoG,EAmHlGwB,EAAU,CACRxB,iBAAkBC,EAAoB,GAAG,EAAOhxF,EAAMwrB,MAAOxrB,EAAM4wF,gBACnEsB,QAAQ,GAEV,MAEF,KAxHkG,EAyHhGK,EAAU,CACRxB,iBAAkBC,EAAoBhxF,EAAMwrB,MAAMjlC,OAAS,GAAG,EAAMyZ,EAAMwrB,MAAOxrB,EAAM4wF,gBACvFsB,QAAQ,GAEV,MAEF,KA5HyG,EA6HvGK,EAAU,CACRxB,iBAAkBJ,EAAoB7qE,EAAMirE,kBAAmB,GAAI/wF,EAAMwrB,MAAOxrB,EAAM4wF,iBAExF,MAEF,KAjI6G,GAkI3G2B,EAAU,CACRxB,iBAAkBJ,EAAoB7qE,EAAMirE,iBAAkB,GAAI/wF,EAAMwrB,MAAOxrB,EAAM4wF,iBAEvF,MAEF,KA7IwG,EA8ItG2B,EAAU,CACRL,QAAQ,EACRnB,kBAAmB,GAErB,MAEF,KA7IqF,GA8InFwB,EAAU51F,EAAS,CACjBu1F,QAAQ,EACRnB,kBAAmB,GAClBjrE,EAAMirE,kBAAoB,IAAsC,OAA/BgG,EAAe/2F,EAAMwrB,YAAiB,EAASurE,EAAaxwG,SAAW,CACzG4rG,aAAcnyF,EAAMwrB,MAAM1F,EAAMirE,oBAElC,MAEF,KA9I4F,GA+I1FwB,EAAU,CACRJ,aAAchqC,EAAOgqC,cAEvB,MAEF,QACE,OAAOyF,GAAuB9xE,EAAOqiC,EAAQuwC,IAGjD,OAAO/7F,EAAS,GAAImpB,EAAOysE,GAK7B,IAAIwH,GAAc,CAAC,WACfC,GAAe,CAAC,eAAgB,SAAU,OAC1CC,GAAe,CAAC,SAAU,UAAW,UAAW,YAAa,SAAU,OACvEC,GAAe,CAAC,OAAQ,QAAS,cAAe,UAAW,cAAe,UAAW,SAAU,WAAY,OAG/G,SAASC,GAAUC,QACC,IAAdA,IACFA,EAAY,IAGd3B,GAAoB2B,EAAWD,IAE/B,IAAIn6F,EAAQrD,EAAS,GAAI67F,GAAgB4B,GAErC1F,EAAiB10F,EAAM00F,eACvB9E,EAAc5vF,EAAM4vF,YACpBuG,EAAuBn2F,EAAMm2F,qBAE7BkE,EAAwBhG,EAAuBmF,GAAwBx5F,EAAOg1F,EAAmBgC,GACjGlxE,EAAQu0E,EAAsB,GAC9BnG,EAAWmG,EAAsB,GAEjCnI,EAASpsE,EAAMosE,OACfnB,EAAmBjrE,EAAMirE,iBACzBoB,EAAersE,EAAMqsE,aACrBC,EAAatsE,EAAMssE,WAEnBkI,EAAkB,iBAAO,MACzBC,EAAU,iBAAO,MACjB/D,EAAW,iBAAO,IAElBgE,EAAkB,iBAAO,MAEzBC,EAAa,EAAcz6F,GAE3B6zC,EAAS4/C,EAAa,CACxB3tE,MAAOA,EACP9lB,MAAOA,IAGLy2F,EAAuB,uBAAY,SAAUl9E,GAC/C,OAAOi9E,EAAShwF,QAAQi0F,EAAW1H,UAAUx5E,MAC5C,CAACkhF,IAGJvE,EAAqBC,EAAsBrwE,EAAO,CAACosE,EAAQnB,EAAkBoB,EAAcC,GAAaxC,GAExG,IAAIgH,EAAkBL,EAAkB,CACtCG,YAAa6D,EAAQ/zF,QACrBuqF,iBAAkBA,EAClBmB,OAAQA,EACRsE,SAAUA,EACV9B,eAAgBA,EAChB+B,qBAAsBA,IAGxB,qBAAU,WASR,OAPA+D,EAAgBh0F,QAAUspF,GAAS,SAAU4K,GAC3CA,EAAc,CACZ78F,KAzN+F,GA0N/Fu0F,WAAY,OAEb,KAEI,WACLoI,EAAgBh0F,QAAQytC,YAEzB,IAEH,qBAAU,WACHm+C,GAILoI,EAAgBh0F,QAAQ0tF,KACvB,CAACA,EAAU9B,IACdyE,EAAyB,CACvB72F,MAAOA,EACP8lB,MAAOA,IAGT,qBAAU,WACUgvE,EAAkB90F,EAAO,WAExBs6F,EAAgB9zF,SACjC8zF,EAAgB9zF,QAAQm0F,UAGzB,IACH,IAAIC,EAAwBvF,EAAwBzF,EAAa,uBAAY,WACvE/7C,EAAOrtC,QAAQsf,MAAMosE,QACvBgC,EAAS,CACPr2F,KAnQiF,OAsQpF,CAACq2F,EAAUrgD,IAAU,mBAAQ,WAC9B,MAAO,CAAC0mD,EAASD,KAChB,CAACC,EAAQ/zF,QAAS8zF,EAAgB9zF,WACjCq0F,EAAwB5E,IAE5B,qBAAU,WACH/D,IACHsE,EAAShwF,QAAU,MAEpB,CAAC0rF,IAEJ,IAAI4I,EAA8B,mBAAQ,WACxC,MAAO,CACLC,UAAW,SAAmBjkF,GAC5BA,EAAMkkF,iBACN9G,EAAS,CACPr2F,KAhSyG,EAiSzG47F,OAAQ3iF,EAAM2iF,UAGlBwB,QAAS,SAAiBnkF,GACxBA,EAAMkkF,iBACN9G,EAAS,CACPr2F,KAtSqG,EAuSrG47F,OAAQ3iF,EAAM2iF,UAGlByB,KAAM,SAAcpkF,GAClBA,EAAMkkF,iBACN9G,EAAS,CACPr2F,KA1S8F,KA6SlGs9F,IAAK,SAAarkF,GAChBA,EAAMkkF,iBACN9G,EAAS,CACPr2F,KA/S4F,KAkThGu9F,OAAQ,WACFvnD,EAAOrtC,QAAQsf,MAAMosE,QACvBgC,EAAS,CACPr2F,KAvTgG,KA2TtGw9F,MAAO,SAAevkF,GACpBA,EAAMkkF,iBACN9G,EAAS,CACPr2F,KAAMg2C,EAAOrtC,QAAQsf,MAAMosE,OA3TqE,EAPb,KAqUvFoJ,OAAQ,SAAgBxkF,GAClB+8B,EAAOrtC,QAAQsf,MAAMosE,SACvBp7E,EAAMkkF,iBACN9G,EAAS,CACPr2F,KAhUiG,MAoUvG09F,SAAU,SAAkBzkF,GACtB+8B,EAAOrtC,QAAQsf,MAAMosE,SACvBp7E,EAAMkkF,iBACN9G,EAAS,CACPr2F,KAvUqG,OA2U3G,IAAK,SAAWiZ,GACdA,EAAMkkF,iBACN,IAAIQ,EAAe3nD,EAAOrtC,QAAQsf,MAE7B01E,EAAatJ,OAOdsJ,EAAapJ,WACf8B,EAAS,CACPr2F,KA/VsG,EAgWtGzM,IAAK,MAGP8iG,EAAS,CACPr2F,KA/V2G,IAkV7Gq2F,EAAS,CACPr2F,KA3ViF,QA4WxF,CAACq2F,EAAUrgD,IAEV4nD,EAAa,uBAAY,WAC3BvH,EAAS,CACPr2F,KAjW0F,OAmW3F,CAACq2F,IACAwH,EAAY,uBAAY,WAC1BxH,EAAS,CACPr2F,KApWwF,OAsWzF,CAACq2F,IACAyH,EAAW,uBAAY,WACzBzH,EAAS,CACPr2F,KA1WsF,OA4WvF,CAACq2F,IACA0H,EAAsB,uBAAY,SAAUC,GAC9C3H,EAAS,CACPr2F,KA7W6G,GA8W7GkzF,iBAAkB8K,MAEnB,CAAC3H,IACA4H,EAAa,uBAAY,SAAUC,GACrC7H,EAAS,CACPr2F,KAlX0F,GAmX1Fs0F,aAAc4J,MAEf,CAAC7H,IACAvsF,EAAQ,uBAAY,WACtBusF,EAAS,CACPr2F,KAtX+E,OAwXhF,CAACq2F,IACA8H,EAAgB,uBAAY,SAAUC,GACxC/H,EAAS,CACPr2F,KA5XiG,GA6XjGu0F,WAAY6J,MAEb,CAAC/H,IAEAgI,EAAgB,uBAAY,SAAUC,GACxC,IAAIx4F,OAAiB,IAAVw4F,EAAmB,GAAKA,EAC/B5rE,EAAU5sB,EAAK4sB,QACf6rE,EAAa94F,EAA8BK,EAAMo2F,IAQrD,OAAOp9F,EAAS,CACdoT,GAAI0qF,EAAW5H,QACfwJ,QAAS5B,EAAWzH,eACpBziE,QAASy/D,EAAqBz/D,GATT,WACrB,IAAI+rE,EAEiD,OAApDA,EAAwBhC,EAAgB9zF,UAAoB81F,EAAsB3B,YAOlFyB,KACF,CAAC3B,IACA8B,EAAe,uBAAY,SAAUC,EAAQC,GAC/C,IAAIC,EAEAz3F,OAAmB,IAAXu3F,EAAoB,GAAKA,EACjCG,EAAe13F,EAAM03F,aACrBC,EAAe33F,EAAM43F,OACrBA,OAA0B,IAAjBD,EAA0B,MAAQA,EAC3Cv2F,EAAMpB,EAAMoB,IACZgD,EAAO/F,EAA8B2B,EAAO+0F,IAG5C8C,QADmB,IAAXL,EAAoB,GAAKA,GACHM,iBAUlC,OADAlC,EAAsB,oBAR2B,IAA1BiC,GAA2CA,EAQVD,EAAQtC,GACzD59F,IAAU+/F,EAAY,IAAcG,GAAUzM,EAAW/pF,GAAK,SAAUonF,GAC7E8M,EAAQ/zF,QAAUinF,KAChBiP,EAAU3sF,GAAK0qF,EAAW3H,OAAQ4J,EAAUM,KAAO,UAAWN,EAAU,mBAAqBrzF,GAAQA,EAAK,mBAAgBb,EAAY,GAAKiyF,EAAW5H,QAAS6J,EAAUC,aAAe3M,EAAqB2M,GATtL,WACzBzI,EAAS,CACPr2F,KA1agF,QAibkK6+F,GAAYrzF,KACjQ,CAAC6qF,EAAU2G,EAAuBJ,IACjCwC,EAAuB,uBAAY,SAAUC,EAAQC,GACvD,IAAIC,EAEAr4D,OAAmB,IAAXm4D,EAAoB,GAAKA,EACjCG,EAASt4D,EAAMs4D,OACf9sE,EAAUwU,EAAMxU,QAEpBwU,EAAMu4D,QAEN,IAAIC,EAAYx4D,EAAMw4D,UAClBC,EAAez4D,EAAM83D,OACrBA,OAA0B,IAAjBW,EAA0B,MAAQA,EAC3Cn3F,EAAM0+B,EAAM1+B,IACZgD,EAAO/F,EAA8ByhC,EAAOk1D,IAG5CwD,QADmB,IAAXN,EAAoB,GAAKA,GACHJ,iBAC9BA,OAA6C,IAA1BU,GAA2CA,EAE9DC,EAAc7pD,EAAOrtC,QAAQsf,MA6B7B63E,EAAchhG,IAAUygG,EAAY,IAAcP,GAAUzM,EAAW/pF,GAAK,SAAUu3F,GACxFtD,EAAgB9zF,QAAUo3F,KACxBR,EAAU,yBAA2BM,EAAYxL,QAAUwL,EAAY3M,kBAAoB,EAAI0J,EAAW1H,UAAU2K,EAAY3M,kBAAoB,GAAIqM,EAAU,iBAAmB3C,EAAW3H,OAAQsK,EAAU,iBAAmBvpD,EAAOrtC,QAAQsf,MAAMosE,OAAQkL,EAAU,iBAAmB,UAAWA,EAAU,mBAAqB/zF,GAAQA,EAAK,mBAAgBb,EAAY,GAAKiyF,EAAW5H,QAASuK,EAAUrtF,GAAK0qF,EAAWzH,eAAgBoK,EAAUJ,KAAO,WAAYI,EAAUS,SAAW,EAAGT,EAAUC,OAASrN,EAAqBqN,GAvBzf,WACvBK,EAAYxL,SAAW0I,EAAsBnF,aAC/CvB,EAAS,CACPr2F,KAld+E,QAsekeu/F,GAAY/zF,GAWnkB,OATKA,EAAK0uF,WAGN4F,EAAYptE,QAAUy/D,EAAqBz/D,GAlCjB,WAC5B2jE,EAAS,CACPr2F,KAtdqF,OAufrF8/F,EAAYJ,UAAYvN,EAAqBuN,GArBjB,SAAmCzmF,GACjE,IAAI1lB,EAAMq/F,EAAkB35E,GAExB1lB,GAAO0pG,EAA4B1pG,GACrC0pG,EAA4B1pG,GAAK0lB,GA1mCzC,SAAgC1lB,GAC9B,MAAO,UAAU8X,KAAK9X,GA0mCP0sG,CAAuB1sG,IAChC8iG,EAAS,CACPr2F,KAtewG,EAuexGzM,IAAKA,QAiBXypG,EAAsB,uBAAwBkC,EAAkBF,EAAQvC,GACjEqD,IACN,CAACzJ,EAAUuG,EAAY5mD,EAAQ+mD,EAAuBC,EAAuBC,IAC5EiD,EAAe,uBAAY,SAAUC,GACvC,IAAIC,EAEAh5D,OAAmB,IAAX+4D,EAAoB,GAAKA,EACjC1K,EAAWruD,EAAM/O,KACjBq9D,EAAYtuD,EAAM1rB,MAClB2kF,EAAcj5D,EAAMi5D,YACpB3tE,EAAU0U,EAAM1U,QAChBqlE,EAAc3wD,EAAM2wD,YAExB3wD,EAAMq4D,QAEN,IAAIa,EAAel5D,EAAM43D,OACrBA,OAA0B,IAAjBsB,EAA0B,MAAQA,EAC3CC,EAAen5D,EAAM8yD,SACrB1xF,EAAM4+B,EAAM5+B,IACZgD,EAAO/F,EAA8B2hC,EAAOi1D,SAE3B1xF,IAAjB41F,GACF5oF,QAAQD,KAAK,kIAGf,IAAI8oF,EAAkBxqD,EAAOrtC,QACzBk3F,EAAcW,EAAgBv4E,MAC9Bw4E,EAAcD,EAAgBr+F,MAE9Bu+F,EAAmBlL,EAAgBC,EAAUC,EAAW+K,EAAY9yE,MAAO,8CAC3E0K,EAAOqoE,EAAiB,GACxBhlF,EAAQglF,EAAiB,GAEzBxG,EAAWuG,EAAY1N,eAAe16D,EAAM3c,GA2B5CilF,EAAY7hG,IAAUshG,EAAY,IAAcpB,GAAUzM,EAAW/pF,GAAK,SAAUo4F,GAClFA,IACFjI,EAAShwF,QAAQi0F,EAAW1H,UAAUx5E,IAAUklF,MAEhDR,EAAU,iBAAmBlG,EAAUkG,EAAU,iBAAmB/nE,IAASwnE,EAAYvL,aAAc8L,EAAUluF,GAAK0qF,EAAW1H,UAAUx5E,GAAQ0kF,EAAUjB,KAAO,SAAUiB,GAAY50F,GAW9L,OATK0uF,IAGDyG,EAAUjuE,QAAUy/D,EAAqBz/D,GArBvB,WACpB2jE,EAAS,CACPr2F,KA/hBqE,GAgiBrE0b,MAAOA,QAsBXilF,EAAUN,YAAclO,EAAqBkO,GAtCnB,WACpBtD,EAAsBjF,YAAcp8E,IAAUmkF,EAAY3M,mBAI9D6F,EAAgBpwF,SAAU,EAC1B0tF,EAAS,CACPr2F,KAxhB8E,GAyhB9E0b,MAAOA,EACPw+E,SAAUA,QA8BdyG,EAAU5I,YAAc5F,EAAqB4F,GAnBnB,SAA6BlvG,GACrD,OAAOA,EAAEs0G,oBAmBJwD,IACN,CAAC3qD,EAAQ4mD,EAAYG,EAAuBhE,EAAiB1C,IAChE,MAAO,CAEL+I,qBAAsBA,EACtBf,cAAeA,EACfK,aAAcA,EACdwB,aAAcA,EAEdtC,WAAYA,EACZE,SAAUA,EACVD,UAAWA,EACXE,oBAAqBA,EACrBE,WAAYA,EACZn0F,MAAOA,EACPq0F,cAAeA,EAEfjL,iBAAkBA,EAClBmB,OAAQA,EACRC,aAAcA,EACdC,WAAYA,GAtahB+H,GAAUtC,iBAAmBa,GA0a7B,IAuBIgG,GAAkCz5G,OAAO85C,OAAO,CAClD55C,UAAW,KACXw5G,kCAH4H,GAI5HvG,kBAT0F,GAU1FD,iBAXwF,GAYxFI,cAPmF,GAQnFI,mBAV4F,GAW5FN,4BAZ+G,GAa/GC,sBAXmG,GAYnGJ,mBAjB4F,GAkB5F0G,UAxByE,EAyBzEC,YA1B6E,EA2B7EC,WAzB2E,GA0B3EC,sBApCmG,EAqCnGC,oBApC+F,EAqC/FC,gBAlCsF,EAmCtFC,kBAhC0F,EAiC1FC,mBAtC4F,EAuC5FC,iBAtCwF,EAuCxFC,qBApCiG,EAqCjGC,mBAtC6F,EAuC7F1G,UA/ByE,GAgCzEd,cAjCkF,GAkClFE,eAnCoF,GAoCpFC,kBAjCyF,KAoC3F,SAASsH,GAAkBv/F,GACzB,IAAIw/F,EAAexK,EAAkBh1F,GACjCmyF,EAAeqN,EAAarN,aAC5BC,EAAaoN,EAAapN,WAM9B,MAJmB,KAAfA,GAAqBD,QAA4C3pF,IAA5BxI,EAAMy/F,wBAA+Dj3F,IAA5BxI,EAAM0/F,wBAAwDl3F,IAArBxI,EAAMoyF,aAC/HA,EAAapyF,EAAMw0F,aAAarC,IAG3Bx1F,EAAS,GAAI6iG,EAAc,CAChCpN,WAAYA,IAIEz1F,EAAS,GAAIy6F,GAAyB,CACtD5rE,MAAO,IAAU7qB,MAAMF,WACvBmwF,eAAgB,IAAU9vF,KAC1BsxF,WAAY,IAAUnxF,OACtBw+F,kBAAmB,IAAUx+F,OAC7By+F,kBAAmB,IAAUz+F,OAC7BgyF,QAAS,IAAUhyF,OACnB0+F,mBAAoB,IAAU7+F,OAgDhC,IAAI8+F,GAAsB93E,EAS1B,IAAI+3E,GAAiBljG,EAAS,GAAI43F,EAAgB,CAChD3D,eAAgB,WACd,OAAO,KAMX,SAASkP,GAA4Bh6E,EAAOqiC,GAC1C,IAAI4uC,EAKAxE,EAHA10F,EAAOsqD,EAAOtqD,KACdmC,EAAQmoD,EAAOnoD,MACfy5F,EAAStxC,EAAOsxC,OAGpB,OAAQ57F,GACN,KApIuE,GAqIrE00F,EAAU,CACRL,OAAQyC,EAAkB30F,EAAO,UACjC+wF,iBAAkBmG,GAA2Bl3F,GAC7CmyF,aAAcnyF,EAAMwrB,MAAM28B,EAAO5uC,OACjC64E,WAAYpyF,EAAMw0F,aAAax0F,EAAMwrB,MAAM28B,EAAO5uC,SAEpD,MAEF,KA1JiG,EA4J7Fg5E,EADEzsE,EAAMosE,OACE,CACRnB,iBAAkBJ,EAAoB7qE,EAAMirE,iBAAkB,EAAG/wF,EAAMwrB,MAAOxrB,EAAM4wF,gBAAgB,IAG5F,CACRG,iBAAkB0I,GAAgC,MAAtB3zE,EAAMqsE,cAAwB,EAAI+C,EAA0Bl1F,EAAO8lB,EAAO,GACtGosE,OAAQlyF,EAAMwrB,MAAMjlC,QAAU,GAIlC,MAEF,KAvK6F,EA0KvFgsG,EAFAzsE,EAAMosE,OACJuH,EACQ3C,EAAsB92F,EAAO8lB,EAAMirE,kBAEnC,CACRA,iBAAkBJ,EAAoB7qE,EAAMirE,kBAAmB,EAAG/wF,EAAMwrB,MAAOxrB,EAAM4wF,gBAAgB,IAI/F,CACRG,iBAAkBmE,EAA0Bl1F,EAAO8lB,GAAQ,GAC3DosE,OAAQlyF,EAAMwrB,MAAMjlC,QAAU,GAIlC,MAEF,KAnLwF,EAoLtFgsG,EAAUuE,EAAsB92F,EAAO8lB,EAAMirE,kBAC7C,MAEF,KA5L0F,EA6LxFwB,EAAU51F,EAAS,CACjBu1F,QAAQ,EACRnB,kBAAmB,IACjBjrE,EAAMosE,QAAU,CAClBC,aAAc,KACdC,WAAY,KAEd,MAEF,KAnM2F,EAoMzFG,EAAU,CACRxB,iBAAkBJ,EAAoB7qE,EAAMirE,kBAAmB,GAAI/wF,EAAMwrB,MAAOxrB,EAAM4wF,gBAAgB,IAExG,MAEF,KAxM+F,EAyM7F2B,EAAU,CACRxB,iBAAkBJ,EAAoB7qE,EAAMirE,iBAAkB,GAAI/wF,EAAMwrB,MAAOxrB,EAAM4wF,gBAAgB,IAEvG,MAEF,KAjNsF,EAkNpF2B,EAAU,CACRxB,iBAAkBC,EAAoB,GAAG,EAAOhxF,EAAMwrB,MAAOxrB,EAAM4wF,iBAErE,MAEF,KAtNoF,EAuNlF2B,EAAU,CACRxB,iBAAkBC,EAAoBhxF,EAAMwrB,MAAMjlC,OAAS,GAAG,EAAMyZ,EAAMwrB,MAAOxrB,EAAM4wF,iBAEzF,MAEF,KAvNuE,EAwNrE2B,EAAU51F,EAAS,CACjBu1F,QAAQ,EACRnB,kBAAmB,GAClBjrE,EAAMirE,kBAAoB,IAAsC,OAA/BgG,EAAe/2F,EAAMwrB,YAAiB,EAASurE,EAAaxwG,SAAW4hE,EAAO2zC,YAAc,CAC9H3J,aAAcnyF,EAAMwrB,MAAM1F,EAAMirE,kBAChCqB,WAAYpyF,EAAMw0F,aAAax0F,EAAMwrB,MAAM1F,EAAMirE,qBAEnD,MAEF,KAlO2E,EAmOzEwB,EAAU,CACRL,QAAQ,EACRnB,iBAAkBmG,GAA2Bl3F,GAC7CoyF,WAAYjqC,EAAOiqC,YAErB,MAEF,KAxOyE,GAyOvEG,EAAU,CACRL,QAASpsE,EAAMosE,OACfnB,iBAAkBjrE,EAAMosE,QAAU,EAAIgD,EAA0Bl1F,EAAO8lB,EAAO,IAEhF,MAEF,KAtO0F,GAuOxFysE,EAAU,CACRJ,aAAchqC,EAAOgqC,aACrBC,WAAYpyF,EAAMw0F,aAAarsC,EAAOgqC,eAExC,MAEF,KA1O0H,GA2OxHI,EAAU,CACRH,WAAYjqC,EAAOiqC,YAErB,MAEF,QACE,OAAOwF,GAAuB9xE,EAAOqiC,EAAQu2C,IAGjD,OAAO/hG,EAAS,GAAImpB,EAAOysE,GAK7B,IAAIwN,GAAc,CAAC,eAAgB,SAAU,OACzCC,GAAe,CAAC,OAAQ,QAAS,SAAU,MAAO,cAAe,cAAe,UAAW,UAAW,YACtGC,GAAa,CAAC,UAAW,UAAW,SAAU,OAC9CC,GAAa,CAAC,YAAa,WAAY,UAAW,SAAU,eAAgB,UAAW,SAAU,OAGrG,SAASC,GAAY/F,QACD,IAAdA,IACFA,EAAY,IAGdwF,GAAoBxF,EAAW+F,IAE/B,IAAIngG,EAAQrD,EAAS,GAAIkjG,GAAgBzF,GAErC5uE,EAAQxrB,EAAMwrB,MACdkpE,EAAiB10F,EAAM00F,eACvB9E,EAAc5vF,EAAM4vF,YACpBuG,EAAuBn2F,EAAMm2F,qBAE7BkE,EA3MN,SAA8BxnC,EAAS7yD,EAAO2zF,EAAoBC,GAChE,IAAIwM,EAA0B,mBAE1B9L,EAAsBZ,EAAmB7gC,EAAS7yD,EAAO2zF,EAAoBC,GAC7E9tE,EAAQwuE,EAAoB,GAC5BJ,EAAWI,EAAoB,GAE/B+B,EAAiBC,KAoBrB,OAnBA,qBAAU,WACH9F,EAAiBxwF,EAAO,kBAIxBq2F,GAEsBr2F,EAAMy0F,UAAUz0F,EAAMmyF,gBAAkBnyF,EAAMy0F,UAAU2L,EAAwB55F,UAGvG0tF,EAAS,CACPr2F,KArFoH,GAsFpHu0F,WAAYpyF,EAAMw0F,aAAax0F,EAAMmyF,gBAK3CiO,EAAwB55F,QAAUsf,EAAMqsE,eAAiBiO,EAAwB55F,QAAUxG,EAAMmyF,aAAersE,EAAMqsE,gBACrH,CAACrsE,EAAMqsE,aAAcnyF,EAAMmyF,eACvB,CAAC7B,EAASxqE,EAAO9lB,GAAQk0F,GAgLJmM,CAAqBP,GAA6B9/F,EAAOu/F,GAAmBvI,GACpGlxE,EAAQu0E,EAAsB,GAC9BnG,EAAWmG,EAAsB,GAEjCnI,EAASpsE,EAAMosE,OACfnB,EAAmBjrE,EAAMirE,iBACzBoB,EAAersE,EAAMqsE,aACrBC,EAAatsE,EAAMssE,WAEnBmI,EAAU,iBAAO,MACjB/D,EAAW,iBAAO,IAClB8J,EAAW,iBAAO,MAClBhG,EAAkB,iBAAO,MACzBjE,EAAiBC,KAEjBmE,EAAa,EAAcz6F,GAE3BugG,EAAyB,mBAEzB1sD,EAAS4/C,EAAa,CACxB3tE,MAAOA,EACP9lB,MAAOA,IAELy2F,EAAuB,uBAAY,SAAUl9E,GAC/C,OAAOi9E,EAAShwF,QAAQi0F,EAAW1H,UAAUx5E,MAC5C,CAACkhF,IAGJvE,EAAqBC,EAAsBrwE,EAAO,CAACosE,EAAQnB,EAAkBoB,EAAcC,GAAaxC,GAExG,IAAIgH,EAAkBL,EAAkB,CACtCG,YAAa6D,EAAQ/zF,QACrBuqF,iBAAkBA,EAClBmB,OAAQA,EACRsE,SAAUA,EACV9B,eAAgBA,EAChB+B,qBAAsBA,IAExBI,EAAyB,CACvB72F,MAAOA,EACP8lB,MAAOA,IAGT,qBAAU,WACUgvE,EAAkB90F,EAAO,WAExBsgG,EAAS95F,SAC1B85F,EAAS95F,QAAQm0F,UAGlB,IACH,qBAAU,WACHtE,IACHkK,EAAuB/5F,QAAUglB,EAAMjlC,WAG3C,IAAIq0G,EAAwBvF,EAAwBzF,EAAa,uBAAY,WACvE/7C,EAAOrtC,QAAQsf,MAAMosE,QACvBgC,EAAS,CACPr2F,KArVmE,EAsVnEi+F,YAAY,MAGf,CAAC5H,EAAUrgD,IAAU,mBAAQ,WAC9B,MAAO,CAAC0mD,EAASD,EAAiBgG,KACjC,CAAC/F,EAAQ/zF,QAAS8zF,EAAgB9zF,QAAS85F,EAAS95F,WACnDq0F,EAAwB5E,IAE5B,qBAAU,WACH/D,IACHsE,EAAShwF,QAAU,MAEpB,CAAC0rF,IAEJ,qBAAU,WACR,IAAIsO,EAECtO,GAA2B,MAAftC,GAAuBA,EAAY5/F,UAA2B,MAAZswG,GAA8D,OAAzCE,EAAoBF,EAAS95F,UAAoBg6F,EAAkB7F,OAIvJ/K,EAAY5/F,SAASuhG,gBAAkB+O,EAAS95F,SAClD85F,EAAS95F,QAAQm0F,UAElB,CAACzI,EAAQtC,IAGZ,IAAI6Q,EAAuB,mBAAQ,WACjC,MAAO,CACL1F,UAAW,SAAmBjkF,GAC5BA,EAAMkkF,iBACN9G,EAAS,CACPr2F,KA/X2F,EAgY3F47F,OAAQ3iF,EAAM2iF,UAGlBwB,QAAS,SAAiBnkF,GACxBA,EAAMkkF,iBACN9G,EAAS,CACPr2F,KArYuF,EAsYvF47F,OAAQ3iF,EAAM2iF,UAGlByB,KAAM,SAAcpkF,GACb+8B,EAAOrtC,QAAQsf,MAAMosE,SAI1Bp7E,EAAMkkF,iBACN9G,EAAS,CACPr2F,KA9YgF,MAiZpFs9F,IAAK,SAAarkF,GACX+8B,EAAOrtC,QAAQsf,MAAMosE,SAI1Bp7E,EAAMkkF,iBACN9G,EAAS,CACPr2F,KAvZ8E,MA0ZlFu9F,OAAQ,SAAgBtkF,GACtB,IAAI4mF,EAAc7pD,EAAOrtC,QAAQsf,OAE7B43E,EAAYxL,QAAUwL,EAAYtL,YAAcsL,EAAYvL,cAAgBuL,EAAY3M,kBAAoB,KAC9Gj6E,EAAMkkF,iBACN9G,EAAS,CACPr2F,KAlakF,MAsaxFw9F,MAAO,SAAevkF,GACF+8B,EAAOrtC,QAAQsf,MAEhBosE,QAA0B,MAAhBp7E,EAAM+9C,QAKjC/9C,EAAMkkF,iBACN9G,EAAS,CACPr2F,KA3akF,MA8atFy9F,OAAQ,SAAgBxkF,GAClB+8B,EAAOrtC,QAAQsf,MAAMosE,SACvBp7E,EAAMkkF,iBACN9G,EAAS,CACPr2F,KApbmF,MAwbzF09F,SAAU,SAAkBzkF,GACtB+8B,EAAOrtC,QAAQsf,MAAMosE,SACvBp7E,EAAMkkF,iBACN9G,EAAS,CACPr2F,KA3buF,SAgc9F,CAACq2F,EAAUrgD,IAEVqoD,EAAgB,uBAAY,SAAUE,GACxC,OAAOz/F,EAAS,CACdoT,GAAI0qF,EAAW5H,QACfwJ,QAAS5B,EAAWxH,SACnBmJ,KACF,CAAC3B,IACA8B,EAAe,uBAAY,SAAUJ,EAAOK,GAC9C,IAAIE,EAEA/4F,OAAiB,IAAVw4F,EAAmB,GAAKA,EAC/BQ,EAAeh5F,EAAKg5F,aACpB+D,EAAc/8F,EAAKk5F,OACnBA,OAAyB,IAAhB6D,EAAyB,MAAQA,EAC1Cr6F,EAAM1C,EAAK0C,IACXgD,EAAO/F,EAA8BK,EAAMo8F,IAG3CY,QADmB,IAAXnE,EAAoB,GAAKA,GACHO,iBAIlC,OADAlC,EAAsB,oBAF2B,IAA1B8F,GAA2CA,EAEV9D,EAAQtC,GACzD59F,IAAU+/F,EAAY,IAAcG,GAAUzM,EAAW/pF,GAAK,SAAUonF,GAC7E8M,EAAQ/zF,QAAUinF,KAChBiP,EAAU3sF,GAAK0qF,EAAW3H,OAAQ4J,EAAUM,KAAO,UAAWN,EAAU,mBAAqBrzF,GAAQA,EAAK,mBAAgBb,EAAY,GAAKiyF,EAAW5H,QAAS6J,EAAUC,aAAe3M,EAAqB2M,GAAc,WAC7NzI,EAAS,CACPr2F,KAtd8E,QAwd9E6+F,GAAYrzF,KACf,CAAC6qF,EAAU2G,EAAuBJ,IACjCsD,EAAe,uBAAY,SAAUtB,GACvC,IAAIW,EAAWr4D,EAEX7gC,OAAmB,IAAXu4F,EAAoB,GAAKA,EACjCnJ,EAAWpvF,EAAMgyB,KACjBq9D,EAAYrvF,EAAMqV,MAClBqnF,EAAe18F,EAAM24F,OACrBA,OAA0B,IAAjB+D,EAA0B,MAAQA,EAC3Cv6F,EAAMnC,EAAMmC,IACZ63F,EAAch6F,EAAMg6F,YACpBtI,EAAc1xF,EAAM0xF,YACpBrlE,EAAUrsB,EAAMqsB,QAEpBrsB,EAAMo5F,QAEN,IAAIc,EAAel6F,EAAM6zF,SACrB1uF,EAAO/F,EAA8BY,EAAO87F,SAE3Bx3F,IAAjB41F,GACF5oF,QAAQD,KAAK,oIAGf,IAAI8oF,EAAkBxqD,EAAOrtC,QACzB83F,EAAcD,EAAgBr+F,MAC9B09F,EAAcW,EAAgBv4E,MAE9By4E,EAAmBlL,EAAgBC,EAAUC,EAAW+K,EAAY9yE,MAAO,8CAC3E0K,EAAOqoE,EAAiB,GACxBhlF,EAAQglF,EAAiB,GAEzBxG,EAAWuG,EAAY1N,eAAe16D,EAAM3c,GAE5CsnF,EAAqBtwE,EA2BzB,OAAO5zB,IAAUygG,EAAY,IAAcP,GAAUzM,EAAW/pF,GAAK,SAAUo4F,GACzEA,IACFjI,EAAShwF,QAAQi0F,EAAW1H,UAAUx5E,IAAUklF,MAEhDrB,EAAU,iBAAmBrF,EAAUqF,EAAU,iBAAmB7jF,IAAUmkF,EAAY3M,iBAAkBqM,EAAUrtF,GAAK0qF,EAAW1H,UAAUx5E,GAAQ6jF,EAAUJ,KAAO,SAAUI,IAAarF,KAAahzD,EAAQ,IAAqB,QAAIirD,EAAqB6Q,GAhBjP,WACpB3M,EAAS,CACPr2F,KAzgBmE,GA0gBnE0b,MAAOA,OAakSwrB,GAAQ,CACnTm5D,YAAalO,EAAqBkO,GA9BV,WACpBtD,EAAsBjF,YAAcp8E,IAAUmkF,EAAY3M,mBAI9D6F,EAAgBpwF,SAAU,EAC1B0tF,EAAS,CACPr2F,KAlgB4E,GAmgB5E0b,MAAOA,EACPw+E,SAAUA,QAsBZnC,YAAa5F,EAAqB4F,GAXV,SAA6BlvG,GACrD,OAAOA,EAAEs0G,qBAWR3xF,KACF,CAAC6qF,EAAUuG,EAAY5mD,EAAQ+mD,EAAuBhE,IACrDqG,EAAuB,uBAAY,SAAUC,GAC/C,IAAIe,EAEAj5D,OAAmB,IAAXk4D,EAAoB,GAAKA,EACjC3sE,EAAUyU,EAAMzU,QAEpByU,EAAMs4D,QAEN,IAAIwD,EAAe97D,EAAM63D,OACrBA,OAA0B,IAAjBiE,EAA0B,MAAQA,EAC3Cz6F,EAAM2+B,EAAM3+B,IACZgD,EAAO/F,EAA8B0hC,EAAOi7D,IAE5CvC,EAAc7pD,EAAOrtC,QAAQsf,MAQjC,OAAOnpB,IAAUshG,EAAY,IAAcpB,GAAUzM,EAAW/pF,GAAK,SAAUu3F,GAC7EtD,EAAgB9zF,QAAUo3F,KACxBK,EAAU,iBAAmBxD,EAAW3H,OAAQmL,EAAU,iBAAmBP,EAAYxL,OAAQ+L,EAAUluF,GAAK0qF,EAAWzH,eAAgBiL,EAAUJ,UAAY,EAAGI,IAAa50F,EAAK0uF,UAAYp7F,EAAS,GAAI,CACjN4zB,QAASy/D,EAAqBz/D,GATF,WAC5B2jE,EAAS,CACPr2F,KA5iBmF,UAojBnFwL,KACH,CAAC6qF,EAAUrgD,EAAQ4mD,IAClBsG,EAAgB,uBAAY,SAAU5D,EAAQa,GAChD,IAAIgD,EAEA/7D,OAAmB,IAAXk4D,EAAoB,GAAKA,EACjCI,EAAYt4D,EAAMs4D,UAClB1S,EAAW5lD,EAAM4lD,SACjBoW,EAAUh8D,EAAMg8D,QAChB5D,EAASp4D,EAAMo4D,OAEnBp4D,EAAMi8D,aAEN,IAAI3wE,EAAU0U,EAAM1U,QAChB4tE,EAAel5D,EAAM43D,OACrBA,OAA0B,IAAjBsB,EAA0B,MAAQA,EAC3C93F,EAAM4+B,EAAM5+B,IACZgD,EAAO/F,EAA8B2hC,EAAOi7D,IAG5CiB,QADmB,IAAXnD,EAAoB,GAAKA,GACHjB,iBAGlClC,EAAsB,qBAF2B,IAA1BsG,GAA2CA,EAETtE,EAAQyD,GACjE,IAwCMc,EAxCF1D,EAAc7pD,EAAOrtC,QAAQsf,MAqC7Bu7E,EAAgB,GAEfh4F,EAAK0uF,YAGSqJ,EAAiB,IAA8B,SAAIpR,EAAqBnF,EAAUoW,GAhC7E,SAA2BnqF,GACjDo9E,EAAS,CACPr2F,KA9lBuE,EA+lBvEu0F,WAAYt7E,EAAMja,OAAOtV,WA6BqG65G,EAAe7D,UAAYvN,EAAqBuN,GAxCzJ,SAA4BzmF,GACnD,IAAI1lB,EAAMq/F,EAAkB35E,GAExB1lB,GAAOqvG,EAAqBrvG,IAC9BqvG,EAAqBrvG,GAAK0lB,MAoCoLsqF,EAAe/D,OAASrN,EAAqBqN,GAzBzO,SAAyBvmF,GAE7C,GAAmB,MAAf84E,GAAuBA,EAAY5/F,UAAY0tG,EAAYxL,SAAW0I,EAAsBnF,YAAa,CAC3G,IAAI6L,EAA4C,OAAxBxqF,EAAMyqF,eAA0B3R,EAAY5/F,SAASuhG,gBAAkB3B,EAAY5/F,SAASjI,KACpHmsG,EAAS,CACPr2F,KAvmBiE,EAwmBjEi+F,YAAawF,QAmBsQF,EAAe7wE,QAAUy/D,EAAqBz/D,GAdhT,WACrB2jE,EAAS,CACPr2F,KA9mBqE,QA0nBvEwjG,EAAiWD,GAGnW,OAAOzkG,IAAUqkG,EAAY,IAAcnE,GAAUzM,EAAW/pF,GAAK,SAAUm7F,GAC7ElB,EAAS95F,QAAUg7F,KACjBR,EAAU,yBAA2BtD,EAAYxL,QAAUwL,EAAY3M,kBAAoB,EAAI0J,EAAW1H,UAAU2K,EAAY3M,kBAAoB,GAAIiQ,EAAU,qBAAuB,OAAQA,EAAU,iBAAmBvG,EAAW3H,OAAQkO,EAAU,iBAAmBtD,EAAYxL,OAAQ8O,EAAU,mBAAqB33F,GAAQA,EAAK,mBAAgBb,EAAYiyF,EAAW5H,QAASmO,EAAUS,aAAe,MAAOT,EAAUjxF,GAAK0qF,EAAWxH,QAAS+N,EAAUhE,KAAO,WAAYgE,EAAUz5G,MAAQm2G,EAAYtL,WAAY4O,GAAYK,EAAeh4F,KACtiB,CAAC6qF,EAAUuG,EAAY7K,EAAa6Q,EAAsB5sD,EAAQ+mD,EAAuBC,IAExFY,EAAa,uBAAY,WAC3BvH,EAAS,CACPr2F,KA/nBwF,OAioBzF,CAACq2F,IACAwH,EAAY,uBAAY,WAC1BxH,EAAS,CACPr2F,KAloBsF,OAooBvF,CAACq2F,IACAyH,EAAW,uBAAY,WACzBzH,EAAS,CACPr2F,KAxoBoF,OA0oBrF,CAACq2F,IACA0H,EAAsB,uBAAY,SAAUC,GAC9C3H,EAAS,CACPr2F,KA3oB2G,GA4oB3GkzF,iBAAkB8K,MAEnB,CAAC3H,IACA4H,GAAa,uBAAY,SAAUC,GACrC7H,EAAS,CACPr2F,KAhpBwF,GAipBxFs0F,aAAc4J,MAEf,CAAC7H,IAYJ,MAAO,CAEL6J,aAAcA,EACd7B,cAAeA,EACfK,aAAcA,EACdwE,cAAeA,EACf9D,qBAAsBA,EAEtBxB,WAAYA,EACZE,SAAUA,EACVD,UAAWA,EACXE,oBAAqBA,EACrBI,cAvBkB,uBAAY,SAAUC,GACxC/H,EAAS,CACPr2F,KArpB+F,GAspB/Fu0F,WAAY6J,MAEb,CAAC/H,IAmBF4H,WAAYA,GACZn0F,MAnBU,uBAAY,WACtBusF,EAAS,CACPr2F,KA1pB+E,OA4pBhF,CAACq2F,IAiBFnD,iBAAkBA,EAClBmB,OAAQA,EACRC,aAAcA,EACdC,WAAYA,GAlbhB+N,GAAYtI,iBAAmB6G,GAsb/B,IAAI7J,GAAqB,CACvB6M,aAAc,EACdC,cAAe,IAYjB,SAASC,GAAgB5hG,EAAO40F,GAC9B,OAAOE,EAAkB90F,EAAO40F,EAASC,IAY3C,SAASgN,GAAgB7hG,EAAO40F,GAC9B,OAAOD,EAAkB30F,EAAO40F,EAASC,IAW3C,SAASiN,GAAgB9hG,GAGvB,MAAO,CACL0hG,YAHgBE,GAAgB5hG,EAAO,eAIvC2hG,cAHkBC,GAAgB5hG,EAAO,kBAiB7C,SAAS+hG,GAA4BjrF,GACnC,GAAIA,EAAMkrF,UAAYlrF,EAAMmrF,SAAWnrF,EAAMorF,SAAWprF,EAAM2iF,OAC5D,OAAO,EAGT,IAAIp4F,EAAUyV,EAAMja,OAEpB,QAAIwE,aAAmB8gG,kBACL,KAAlB9gG,EAAQ9Z,QAEmB,IAA3B8Z,EAAQ+gG,gBAAiD,IAAzB/gG,EAAQghG,aAgB1C,SAAS,GAAa9R,EAAW+B,GAC/B,OAAO/B,EAAUoR,gBAAkBrP,EAASqP,eAAiBpR,EAAUmR,cAAgBpP,EAASoP,YAOjF,IAAU/gG,MACH,IAAUA,MACV,IAAUA,MACV,IAAUG,KACnB,IAAUC,OACH,IAAUA,OACV,IAAUA,OACT,IAAUD,KACR,IAAUA,KACd,IAAUG,OACN,IAAUA,OAdnC,IAgBIqhG,GAAe,CACjB7N,UAAWF,EAAeE,UAC1BT,aAAcO,EAAeP,aAC7BpE,YAAa2E,EAAe3E,YAC5B2S,kBAAmB,aACnBC,sBAAuB,aAGrBC,GAAoB36E,EASxB,IAaI,GAAgC7iC,OAAO85C,OAAO,CAChD55C,UAAW,KACXu9G,cARiF,EASjFC,yBAVwG,EAWxGC,kCAZ2H,EAa3HC,wBAVuG,EAWvGC,2BAV6G,EAW7GvK,cARiF,GASjFwK,uBAVqG,GAWrGC,yBAZyG,GAazGC,kBAvB0F,EAwB1FC,6BAtBiH,EAuBjHC,0BAxB2G,EAyB3GC,kCAvB4H,EAwB5HC,sCAvBoI,IA2BtI,SAASC,GAAkCx9E,EAAOqiC,GAChD,IAMIoqC,EANA10F,EAAOsqD,EAAOtqD,KACd0b,EAAQ4uC,EAAO5uC,MACfvZ,EAAQmoD,EAAOnoD,MACfmyF,EAAehqC,EAAOgqC,aACtBuP,EAAc57E,EAAM47E,YACpBC,EAAgB77E,EAAM67E,cAG1B,OAAQ9jG,GACN,KAzCwF,EA0CtF00F,EAAU,CACRmP,YAAanoF,GAEf,MAEF,KA3CkI,EA4ChIg5E,EAAU,CACRmP,YAAaA,EAAc,EAAI,EAAI,EAAIA,EAAc,GAEvD,MAEF,KAlD0H,EAmDxHnP,EAAU,CACRmP,YAAaA,EAAc,GAAKC,EAAcp7G,QAAU,EAAIm7G,EAAc,GAE5E,MAEF,KAzD+G,EA0D/G,KA3DyG,EA6DrG,GAAIA,EAAc,EAChB,MAGF,IAAI6B,EAAiB7B,EAEQ,IAAzBC,EAAcp7G,OAChBg9G,GAAkB,EACT7B,IAAgBC,EAAcp7G,OAAS,IAChDg9G,EAAiB5B,EAAcp7G,OAAS,GAG1CgsG,EAAU51F,EAAS,CACjBglG,cAAe,GAAGr4G,OAAOq4G,EAAct4G,MAAM,EAAGq4G,GAAcC,EAAct4G,MAAMq4G,EAAc,KAC/F,CACDA,YAAa6B,IAEf,MAGJ,KA7EyH,EA8EvHhR,EAAU,CACRmP,YAAaC,EAAcp7G,OAAS,GAEtC,MAEF,KAlFsG,EAmFpGgsG,EAAU,CACRoP,cAAeA,EAAct4G,MAAM,EAAGs4G,EAAcp7G,OAAS,IAE/D,MAEF,KAtFqG,EAuFnGgsG,EAAU,CACRoP,cAAe,GAAGr4G,OAAOq4G,EAAe,CAACxP,KAE3C,MAEF,KA7F+E,EA8F7EI,EAAU,CACRmP,aAAc,GAEhB,MAEF,KAjG2G,EAmGvG,IAAI8B,EAAkB9B,EAClB+B,EAAoB9B,EAAc34F,WAAU,SAAUktB,GACxD,OAAOl2B,EAAMy0F,UAAUv+D,KAAUl2B,EAAMy0F,UAAUtC,MAGnD,GAAIsR,EAAoB,EACtB,MAG2B,IAAzB9B,EAAcp7G,OAChBi9G,GAAmB,EACVC,IAAsB9B,EAAcp7G,OAAS,IACtDi9G,EAAkB7B,EAAcp7G,OAAS,GAG3CgsG,EAAU,CACRoP,cAAe,GAAGr4G,OAAOq4G,EAAct4G,MAAM,EAAGo6G,GAAoB9B,EAAct4G,MAAMo6G,EAAoB,IAC5G/B,YAAa8B,GAEf,MAGJ,KAxHuG,GA2HnGjR,EAAU,CACRoP,cAFqBx5C,EAAOw5C,eAI9B,MAGJ,KAhImG,GAmI/FpP,EAAU,CACRmP,YAFqBv5C,EAAOu5C,aAI9B,MAGJ,KAxI+E,GAyI7EnP,EAAU,CACRmP,YAAaG,GAAgB7hG,EAAO,eACpC2hG,cAAeE,GAAgB7hG,EAAO,kBAExC,MAEF,QACE,MAAM,IAAIvW,MAAM,8CAGpB,OAAOkT,EAAS,GAAImpB,EAAOysE,GAG7B,IAAIvwF,GAAY,CAAC,SAAU,MAAO,UAAW,YAAa,eAAgB,SACtEC,GAAa,CAAC,SAAU,MAAO,YAAa,UAAW,oBAG3D,SAASyhG,GAAqBtJ,QACV,IAAdA,IACFA,EAAY,IAGdqI,GAAkBrI,EAAWsJ,IAE7B,IAAI1jG,EAAQrD,EAAS,GAAI2lG,GAAclI,GAEnCjE,EAAuBn2F,EAAMm2F,qBAC7BvG,EAAc5vF,EAAM4vF,YACpB2S,EAAoBviG,EAAMuiG,kBAC1BC,EAAwBxiG,EAAMwiG,sBAE9BnI,EAAwBhG,EAAuBiP,GAAmCtjG,EAAO8hG,GAAiB,IAC1Gh8E,EAAQu0E,EAAsB,GAC9BnG,EAAWmG,EAAsB,GAEjCqH,EAAc57E,EAAM47E,YACpBC,EAAgB77E,EAAM67E,cAEtBtL,EAAiBC,KACjBqN,EAAc,iBAAO,MACrBC,EAAmB,mBACvBA,EAAiBp9F,QAAU,GAC3B,IAAIqtC,EAAS4/C,EAAa,CACxB3tE,MAAOA,EACP9lB,MAAOA,IAITk2F,EAAqBC,EAAsBrwE,EAAO,CAAC47E,EAAaC,GAAgB/R,GAEhF,qBAAU,WACJyG,KAIiB,IAAjBqL,GAAsBiC,EAAYn9F,QACpCm9F,EAAYn9F,QAAQm0F,QACXiJ,EAAiBp9F,QAAQk7F,IAClCkC,EAAiBp9F,QAAQk7F,GAAa/G,WAGvC,CAAC+G,IACJ7K,EAAyB,CACvB72F,MAAOA,EACP8lB,MAAOA,IAET,IAAI+0E,EAAwB5E,IAExB4N,EAA8B,mBAAQ,WACxC,IAAIlgG,EAEJ,OAAOA,EAAO,IAAS6+F,GAAyB,WAC9CtO,EAAS,CACPr2F,KA1N8H,KA4N/H8F,EAAK4+F,GAAqB,WAC3BrO,EAAS,CACPr2F,KA/NsH,KAiOvH8F,EAAKmgG,OAAS,WACf5P,EAAS,CACPr2F,KArOqG,KAuOtG8F,EAAKogG,UAAY,WAClB7P,EAAS,CACPr2F,KAxO2G,KA0O5G8F,IACF,CAACuwF,EAAUqO,EAAmBC,IAC7BwB,EAA0B,mBAAQ,WACpC,IAAI/+F,EAEJ,OAAOA,EAAQ,IAAUu9F,GAAyB,SAAU1rF,GACtDirF,GAA4BjrF,IAC9Bo9E,EAAS,CACPr2F,KA/OmH,KAkPtHoH,EAAM8+F,UAAY,SAAmBjtF,GAClCirF,GAA4BjrF,IAC9Bo9E,EAAS,CACPr2F,KApPgG,KAuPnGoH,IACF,CAACivF,EAAUsO,IAmHd,MAAO,CACLyB,qBAlHyB,uBAAY,SAAU9H,GAC/C,IAAIO,EAEAx4F,OAAkB,IAAVi4F,EAAmB,GAAKA,EAChCyE,EAAe18F,EAAM24F,OACrBA,OAA0B,IAAjB+D,EAA0B,MAAQA,EAC3Cv6F,EAAMnC,EAAMmC,IACZkqB,EAAUrsB,EAAMqsB,QAChBgtE,EAAYr5F,EAAMq5F,UAClB2G,EAAmBhgG,EAAMiuF,aACzBoB,EAAYrvF,EAAMqV,MAClBlQ,EAAO/F,EAA8BY,EAAOlC,IAE5C07F,EAAc7pD,EAAOrtC,QAAQsf,MAG7BvM,EADmB85E,EAAgB6Q,EAAkB3Q,EAAWmK,EAAYiE,cAAe,sDAClE,GAEzBwC,EAAc5qF,GAAS,GAAKA,IAAUmkF,EAAYgE,YAiBtD,OAAO/kG,IAAU+/F,EAAY,IAAcG,GAAUzM,EAAW/pF,GAAK,SAAU+9F,GACzEA,GACFR,EAAiBp9F,QAAQ1d,KAAKs7G,MAE9B1H,EAAUmB,SAAWsG,EAAc,GAAK,EAAGzH,EAAUnsE,QAAUy/D,EAAqBz/D,GAnB1D,WAC5B2jE,EAAS,CACPr2F,KAtRoF,EAuRpF0b,MAAOA,OAgBgHmjF,EAAUa,UAAYvN,EAAqBuN,GAZtI,SAAmCzmF,GACjE,IAAI1lB,EAAMq/F,EAAkB35E,GAExB1lB,GAAOyyG,EAA4BzyG,IACrCyyG,EAA4BzyG,GAAK0lB,MAQwK4lF,GAAYrzF,KACxN,CAAC6qF,EAAUrgD,EAAQgwD,IA2EpBQ,iBA1EqB,uBAAY,SAAU7H,EAAQC,GACnD,IAAIW,EAEAr4D,OAAmB,IAAXy3D,EAAoB,GAAKA,EACjCgB,EAAez4D,EAAM83D,OACrBA,OAA0B,IAAjBW,EAA0B,MAAQA,EAC3Cn3F,EAAM0+B,EAAM1+B,IACZk3F,EAAYx4D,EAAMw4D,UAClBhtE,EAAUwU,EAAMxU,QAChB+zE,EAAwBv/D,EAAMw/D,iBAC9BA,OAA6C,IAA1BD,GAA2CA,EAC9Dj7F,EAAO/F,EAA8ByhC,EAAO9iC,IAG5Cw7F,QADmB,IAAXhB,EAAoB,GAAKA,GACHM,iBAGlClC,EAAsB,wBAF2B,IAA1B4C,GAA2CA,EAENZ,EAAQ8G,GAgBpE,OAAOhnG,IAAUygG,EAAY,IAAcP,GAAUzM,EAAW/pF,GAAK,SAAUm+F,GACzEA,IACFb,EAAYn9F,QAAUg+F,MAEtBpH,IAAamH,GAAoB,CACnChH,UAAWvN,EAAqBuN,GAnBN,SAA+BzmF,GACzD,IAAI1lB,EAAMq/F,EAAkB35E,GAExB1lB,GAAO4yG,EAAwB5yG,IACjC4yG,EAAwB5yG,GAAK0lB,MAgB/ByZ,QAASy/D,EAAqBz/D,GAZN,WACxB2jE,EAAS,CACPr2F,KA/T2E,QA0U5EwL,KACF,CAAC6qF,EAAU8P,EAAyBnJ,IAkCrC4J,gBAhCoB,uBAAY,SAAUtS,GAC1C+B,EAAS,CACPr2F,KA9UmG,EA+UnGs0F,aAAcA,MAEf,CAAC+B,IA4BFwQ,mBA3BuB,uBAAY,SAAUvS,GAC7C+B,EAAS,CACPr2F,KAnVyG,EAoVzGs0F,aAAcA,MAEf,CAAC+B,IAuBFyQ,iBAtBqB,uBAAY,SAAUC,GAC3C1Q,EAAS,CACPr2F,KAxVqG,GAyVrG8jG,cAAeiD,MAEhB,CAAC1Q,IAkBF2Q,eAjBmB,uBAAY,SAAUtB,GACzCrP,EAAS,CACPr2F,KA7ViG,GA8VjG6jG,YAAa6B,MAEd,CAACrP,IAaFvsF,MAZU,uBAAY,WACtBusF,EAAS,CACPr2F,KAlW6E,OAoW9E,CAACq2F,IASFyN,cAAeA,EACfD,YAAaA,GAtNjBgC,GAAqB7L,iBAAmB,I,oBC/jIxC,IAAIphB,EAAgB,EAAQ,KACxBquB,EAAa,EAAQ,KACrBnuB,EAAc,EAAQ,KA8B1Bl6E,EAAOC,QAJP,SAAgBsE,GACd,OAAO21E,EAAY31E,GAAUy1E,EAAcz1E,GAAQ,GAAQ8jG,EAAW9jG,K,oBC7BxE,IAAI41E,EAAa,EAAQ,KACrBp6E,EAAU,EAAQ,KAClBuoG,EAAe,EAAQ,KA2B3BtoG,EAAOC,QAJP,SAAkBnV,GAChB,MAAuB,iBAATA,IAAsBiV,EAAQjV,IAAUw9G,EAAax9G,IApBrD,mBAoB+DqvF,EAAWrvF,K,oBC1B1FkV,EAAOC,QAAU,IAA0B,gD,iCCA3C,IAAIqkF,EAAuB,CACzBC,iBAAkB,CAChBN,IAAK,2BACLtxB,MAAO,+BAETgyB,SAAU,CACRV,IAAK,YACLtxB,MAAO,sBAETiyB,YAAa,cACbC,iBAAkB,CAChBZ,IAAK,0BACLtxB,MAAO,8BAETmyB,SAAU,CACRb,IAAK,WACLtxB,MAAO,qBAEToyB,YAAa,CACXd,IAAK,kBACLtxB,MAAO,4BAETqyB,OAAQ,CACNf,IAAK,UACLtxB,MAAO,oBAETsyB,MAAO,CACLhB,IAAK,SACLtxB,MAAO,mBAETuyB,YAAa,CACXjB,IAAK,oBACLtxB,MAAO,8BAETwyB,OAAQ,CACNlB,IAAK,YACLtxB,MAAO,sBAETyyB,aAAc,CACZnB,IAAK,iBACLtxB,MAAO,0BAET0yB,QAAS,CACPpB,IAAK,SACLtxB,MAAO,kBAET2yB,YAAa,CACXrB,IAAK,eACLtxB,MAAO,yBAET4yB,OAAQ,CACNtB,IAAK,OACLtxB,MAAO,iBAET6yB,WAAY,CACVvB,IAAK,oBACLtxB,MAAO,yBAET8yB,aAAc,CACZxB,IAAK,oBACLtxB,MAAO,0B,YC3BI,EAdE,CACfl7D,KAAM,OAAA0T,EAAA,GAAkB,CACtBC,QApBc,CAChBC,KAAM,gBACNC,KAAM,WACNC,OAAQ,UACRC,MAAO,WAiBL7K,aAAc,SAEhB8K,KAAM,OAAAN,EAAA,GAAkB,CACtBC,QAlBc,CAChBC,KAAM,gBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,SAeL7K,aAAc,SAEhB+K,SAAU,OAAAP,EAAA,GAAkB,CAC1BC,QAhBkB,CACpBC,KAAM,2BACNC,KAAM,2BACNC,OAAQ,qBACRC,MAAO,sBAaL7K,aAAc,UC9Bd+lF,EAAuB,CACzBC,SAAU,wBACVC,UAAW,gBACXC,MAAO,4BACPC,SAAU,mBACVC,SAAU,yBACVp0B,MAAO,K,YC4ET,IA0Be,EA1BA,CACbl5D,cA5BF,SAAuBu/E,EAAa36E,GAClC,IAAIiG,EAASihB,OAAOyzD,GAEhBt/E,EAAOxQ,QADGmV,GAAgB,IACJ3E,MAG1B,OAAe,IAAX4K,EACKA,EAiBFA,GAdM,SAAT5K,GAA4B,SAATA,GAA4B,SAATA,EACzB,IAAX4K,EACO,SAEA,SAGI,IAAXA,EACO,KAEA,WASb/K,IAAK,OAAA+G,EAAA,GAAgB,CACnBS,OApFY,CACdimF,OAAQ,CAAC,WAAY,YACrBC,YAAa,CAAC,WAAY,YAC1BC,KAAM,CAAC,wBAAsB,6BAkF3BvmF,aAAc,SAEhBpG,QAAS,OAAA+F,EAAA,GAAgB,CACvBS,OAnFgB,CAClBimF,OAAQ,CAAC,KAAM,KAAM,KAAM,MAC3BC,YAAa,CAAC,YAAa,gBAAc,gBAAc,iBACvDC,KAAM,CAAC,gBAAiB,oBAAkB,oBAAkB,sBAiF1DvmF,aAAc,OACdK,iBAAkB,SAA0BzG,GAC1C,OAAOgrB,OAAOhrB,GAAW,KAG7BvC,MAAO,OAAAsI,EAAA,GAAgB,CACrBS,OArFc,CAChBimF,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,QAAS,WAAS,OAAQ,OAAQ,MAAO,OAAQ,QAAS,UAAQ,QAAS,OAAQ,OAAQ,WACzGC,KAAM,CAAC,UAAW,aAAW,OAAQ,QAAS,MAAO,OAAQ,UAAW,UAAQ,YAAa,UAAW,WAAY,gBAmFlHvmF,aAAc,SAEhB3E,IAAK,OAAAsE,EAAA,GAAgB,CACnBS,OApFY,CACdimF,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvCx7E,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5Cy7E,YAAa,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAC9DC,KAAM,CAAC,WAAY,QAAS,QAAS,WAAY,QAAS,WAAY,WAiFpEvmF,aAAc,SAEhBtE,UAAW,OAAAiE,EAAA,GAAgB,CACzBS,OAlFkB,CACpBimF,OAAQ,CACNG,GAAI,KACJC,GAAI,KACJC,SAAU,SACVC,KAAM,OACNC,QAAS,OACTC,UAAW,QACXC,QAAS,OACTC,MAAO,QAETT,YAAa,CACXE,GAAI,KACJC,GAAI,KACJC,SAAU,SACVC,KAAM,OACNC,QAAS,QACTC,UAAW,gBACXC,QAAS,OACTC,MAAO,SAETR,KAAM,CACJC,GAAI,KACJC,GAAI,KACJC,SAAU,SACVC,KAAM,OACNC,QAAS,WACTC,UAAW,0BACXC,QAAS,UACTC,MAAO,aAsDP/mF,aAAc,U,gBC1FdxO,EAAS,CACXwZ,KAAM,KACNC,eJ8Ca,SAAwBlU,EAAOkQ,EAAO/N,GAEnD,IAAI3O,EAUJ,OAXA2O,EAAUA,GAAW,GAInB3O,EADyC,kBAAhCo5F,EAAqB5sF,GACrB4sF,EAAqB5sF,GACX,IAAVkQ,EACA08E,EAAqB5sF,GAAOusF,IAE5BK,EAAqB5sF,GAAOi7D,MAAM7yD,QAAQ,YAAa8H,GAG9D/N,EAAQ8tF,UACN9tF,EAAQ+tF,WAAa,EAChB,QAAU18F,EAEV,UAAYA,EAIhBA,GIjEP4T,WAAY,EACZ+M,eFXa,SAAwBnU,EAAOqwF,EAAOC,EAAWC,GAC9D,OAAOvB,EAAqBhvF,IEW5B4B,SAAU,EACV8F,MCkCU,CACV3F,cAAe,OAAAouF,EAAA,GAAoB,CACjC77E,aAvD4B,uCAwD5B87E,aAvD4B,OAwD5Bn7E,cAAe,SAAuB7hB,GACpC,OAAOyoB,SAASzoB,EAAO,OAG3ByO,IAAK,OAAAuS,EAAA,GAAa,CAChBG,cA5DmB,CACrB+6E,OAAQ,kCACRC,YAAa,oDACbC,KAAM,sDA0DJh7E,kBAAmB,OACnBG,cAzDmB,CACrB3H,IAAK,CAAC,OAAQ,SAyDZ4H,kBAAmB,QAErB/R,QAAS,OAAAuR,EAAA,GAAa,CACpBG,cA1DuB,CACzB+6E,OAAQ,WACRC,YAAa,YACbC,KAAM,oCAwDJh7E,kBAAmB,OACnBG,cAvDuB,CACzB3H,IAAK,CAAC,KAAM,KAAM,KAAM,OAuDtB4H,kBAAmB,MACnBK,cAAe,SAAuBmQ,GACpC,OAAOA,EAAQ,KAGnB9kB,MAAO,OAAA8T,EAAA,GAAa,CAClBG,cA3DqB,CACvB+6E,OAAQ,eACRC,YAAa,+EACbC,KAAM,qGAyDJh7E,kBAAmB,OACnBG,cAxDqB,CACvB26E,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtFtiF,IAAK,CAAC,OAAQ,MAAO,QAAS,OAAQ,OAAQ,SAAU,SAAU,OAAQ,MAAO,MAAO,MAAO,QAuD7F4H,kBAAmB,QAErBtQ,IAAK,OAAA8P,EAAA,GAAa,CAChBG,cAxDmB,CACrB+6E,OAAQ,aACRx7E,MAAO,2BACPy7E,YAAa,qCACbC,KAAM,2DAqDJh7E,kBAAmB,OACnBG,cApDmB,CACrB26E,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnDtiF,IAAK,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,SAmDpD4H,kBAAmB,QAErBjQ,UAAW,OAAAyP,EAAA,GAAa,CACtBG,cApDyB,CAC3B+6E,OAAQ,iDACRtiF,IAAK,yEAmDHwH,kBAAmB,MACnBG,cAlDyB,CAC3B3H,IAAK,CACHyiF,GAAI,MACJC,GAAI,MACJC,SAAU,QACVC,KAAM,QACNC,QAAS,OACTC,UAAW,MACXC,QAAS,QACTC,MAAO,UA0CPp7E,kBAAmB,SDxErBzS,QAAS,CACPqC,aAAc,EAGdsC,sBAAuB,IAGZ,O,wiCEkCf,IA0DM+pG,EAAS,IAkBY,IAlBX,GACdj1F,EADc,WAEd0nE,EACAwtB,WAAYC,EAHE,QAId/2F,EAAU,UAJI,KAKduzB,EAAO,UALO,SAMdq2D,GAAW,EANG,YAOdoN,EAAc,SAPA,KAQdC,EAAO,KARO,SASdC,EATc,UAUdjrB,GAAY,EAVE,QAWd7pD,EAXc,gBAYd+0E,EAZc,iBAadC,GAAmB,EAbL,WAcdC,EAdc,qBAedC,GAAuB,EAfT,iBAgBdz7F,EAAmB,KAhBL,aAiBd07F,GAAe,GACS,EAClBT,EAAU,GACdxoF,WAAW,GACPyoF,IAEA,EAAEh/G,GAAMqkB,YAAc,OAAC06F,QAAD,IAACA,OAAD,EAACA,EAAYhzG,YAGvC1K,MAAOo+G,EACP56B,QAAS66B,EACT56B,SAAU66B,GACRj7B,aAAW,GAETk7B,EAAqB,MACzB,OAAQ33F,GAQN,QACE,MAAO,aALT,IAAK,YACL,IAAK,QACH,OAAO4pF,EAAW,cAAgB,gBAPb,GAerBgO,EAAqB,MACzB,OAAQrkE,GACN,IAAK,QACH,OA3GkB,GAmHpB,QACE,OAnHoB,GA+GtB,IAAK,OACH,OA/GiB,KAsGI,GAiBrBskE,EAAsB,MAC1B,IAAKZ,EACH,MAAO,GAGT,IAAM,SAAE3Z,GAAa2Z,EAGfa,EACJxa,EAASlrE,OAAO,GAAG7uB,cAAgB+5F,EAASpiG,MAAM,GAEpD,OAAOwkB,IAAO,OAAD,OAAQo4F,KAXK,GAetBC,EAAmBv3F,uBACtBw3F,IACCr5F,YAAW,oBAAD,GACR+B,qBAAsBs3F,GAClBn8F,EAAmB,CAAEkD,kBAAmBlD,GAAqB,OAGrE,CAACA,IAGGo8F,EAAgBz3F,uBACnBmI,IACM6uF,IACC5N,GACFuN,GAAmBA,EAAgBxuF,IAO9ByuF,GAAoBE,GACvBS,EAAiB,GAAD,OAAIV,EAAJ,eAETj1E,IACTA,EAAQzZ,IAGHyuF,GAAoBC,GACvBU,EAAiBV,OAKzB,CACEG,EACA5N,EACAuN,EACA/0E,EACAg1E,EACAC,EACAC,EACAS,IAKEG,EAAkB13F,uBAAY,KAC7BopF,IAAYuN,GACfM,MAED,CAACA,EAAY7N,EAAUuN,IAEpBgB,EAAoB33F,uBAAY,KAC/BopF,IAAYuN,GACfO,MAED,CAACA,EAAc9N,EAAUuN,IAGtBiB,EAAgB53F,uBACnBmI,IACmB,UAAdA,EAAM1lB,KAAoBu0G,IAC5BU,IACAD,EAActvF,MAGlB,CAACuvF,EAAiBV,EAASS,IAGvBI,EAAc73F,uBACjBmI,IACmB,UAAdA,EAAM1lB,KACRk1G,MAGJ,CAACA,IAGH,cAAIjB,QAAJ,IAAIA,KAAUoB,UACL,kBAAC,iBAAD,GAAgBrhG,OAAQ2gG,GAAwBV,IAIvD,4BACEt1F,GAAIA,EACJvL,UAAS,UAAKqJ,IAAO64F,OAAZ,YAAsB74F,IAAOM,GAA7B,YACPN,IAAO6zB,GADA,YAELskE,EAFK,YAEkBjO,EAAWlqF,IAAOkqF,SAAW,GAF/C,YAGP3d,EAAYvsE,IAAOusE,UAAY,GAHxB,YAILsrB,EAAe73F,IAAO63F,aAAe,IACzC7nG,KAAK,SACL,aACY,OAAVonG,QAAU,IAAVA,KAAYxoF,UACRv2B,EAAC,OAAC++G,QAAD,IAACA,OAAD,EAACA,EAAYp6F,MADlB,OAEKo6F,QAFL,IAEKA,OAFL,EAEKA,EAAYp6F,KAEnB,gBAAektF,EACfxnE,QAAS61E,EACTxQ,YAAayQ,EACbxQ,UAAWyQ,EACX3J,aAAc2J,EACdxQ,aAAcuQ,EACdrQ,WAAYsQ,EACZ/I,UAAWgJ,EACXI,QAASH,EACT,cAAa/uB,GAEZ2tB,GACC,yBACE5gG,UAAS,UAAKwhG,EAAL,YACS,UAAhBb,EAA0Bt3F,IAAO+4F,SAAW,IAE9C,aACY,OAAV3B,QAAU,IAAVA,KAAYxoF,UAAZ,UACOv2B,EAAC,OAAC++G,QAAD,IAACA,OAAD,EAACA,EAAYp6F,MADrB,0BAEOo6F,QAFP,IAEOA,OAFP,EAEOA,EAAYp6F,KAFnB,UAKDu6F,EAAK7lB,WAIO,UAAhB4lB,GAA2BF,GAC1B,yBAAKzgG,UAAS,UAAKqJ,IAAOg5F,WAAZ,YAA0Bh5F,IAAOs3F,KAC7C,kBAAC,UAAD,KACMF,EADN,CAEExtB,WAAU,UAAKA,EAAL,SACV5sE,KAAMo6F,EAAWp6F,KACjBsD,QAAkB,SAATuzB,EAAkB,aAAe,aAC1Cs1C,OAAQ8uB,EACRhvB,QAAQ,EACRI,aAAa,EACb71E,QAAQ,c,gCC5Ub,IAAIylG,EAYJ,SAASC,EAAyB1wD,GACvC,QAAOA,GAAgBA,EAAgB,EAbzC,oEAEA,SAAWywD,GACTA,EAAcA,EAAuB,QAAI,GAAK,UAC9CA,EAAcA,EAA4B,aAAI,GAAK,eACnDA,EAAcA,EAAyB,UAAI,GAAK,YAChDA,EAAcA,EAAuB,QAAI,GAAK,UAC9CA,EAAcA,EAAoB,KAAI,GAAK,OAC3CA,EAAcA,EAAqB,MAAI,GAAK,QAC5CA,EAAcA,EAAqB,MAAI,GAAK,QAP9C,CAQGA,IAAkBA,EAAgB,M,sFCStBhX,EAlBE,CAAChvF,EAAgCgmB,KAChD,IAAIuzB,EAGJ,OAAO,WAA2C,IAAD,uBAAbr9C,EAAa,yBAAbA,EAAa,gBAC/C,IAAMgqG,EAAQ,KACZ3sD,EAAU,KACVv5C,KAAQ9D,IAGNq9C,GACFD,aAAaC,GAGfA,EAAU/qC,WAAW03F,EAAOlgF,K,m7BCuPjBpd,6BA/NW,IAUQ,IAVP,mBACzB8G,EADyB,YAEzBC,EAFyB,OAGzBL,EAHyB,aAIzB2kF,EAJyB,UAKzBkS,EALyB,WAMzB92F,EANyB,YAOzBO,GAAc,EAPW,QAQzBvC,EAAUL,uBAAqBM,QARN,KASzBszB,GAC+B,GACzB,WAAErxB,EAAF,iBAAcZ,EAAd,aAAgCc,GAAiBH,EAEjDne,EAAY,gBACXi1G,EAAQC,GAAa54F,mBAAkB,KACvC64F,EAAkBC,GAAuB94F,oBAAS,IAEnD,EAAEroB,GAAMqkB,YAAetY,IACtBq1G,GAAY,QAAEnhG,EAAF,KAAWW,EAAX,MAAiBD,IAAW0gG,YAG7CC,6BAEIC,EAAsBp4E,mBAC1B,IACEygE,GAAUsC,IACRkV,EAAWlV,KACV,MACL,CAACkV,IAGGI,EAAoBr4E,mBAAQ,KACzB,CACL8J,WAAY,QACZppB,GAAI,MACJ3e,IAAK,cACLmP,KAAMra,EAAE,0BAA2B,CAAEwI,GAAI,WACzCi5G,SAAS,KAEV,CAACzhH,IAEE0hH,EAAoBv4E,mBAAQ,KACzB,CACL8J,WAAY,QACZppB,GAAI,MACJ3e,IAAK,QACLmP,KAAMra,EAAE,oBAAqB,CAAEwI,GAAI,WACnCi5G,SAAS,KAEV,CAACzhH,KAEE,OACJgsG,EADI,aAEJqK,EAFI,cAGJwE,EAHI,aAIJhD,EAJI,UAKJrC,EALI,iBAMJ3K,EANI,WAOJqB,GACE+N,YAAY,CACd5I,oBAAqBxC,EACrBvpE,MAAO07E,EACP1S,aAAe1lF,GAAWA,EAAQA,EAAMvO,KAAO,GAC/Ck3F,qBAAsB,IAAuB,IAAtB,aAAEtF,GAAmB,EACtCA,GACF1iF,EAAiB0iF,IAGrBwN,mBAAoB,IAA2B,IAA1B,WAAEvN,EAAF,KAAcv0F,GAAW,EAC5C,IAAKu0F,EAIH,OAHAiV,GAAoB,GACpB3L,SACAnrF,IAGF82F,GAAoB,GAGhBxpG,IAASsiG,IAAYtI,iBAAiBe,WACxC6O,EAAoB,CAAEt2F,UAAW,CAAE5Q,KAAM6xF,KAKnC,OAAJtrF,QAAI,IAAJA,KAAMogG,QAAUpgG,EAAKogG,OAAO3gH,OAAS,EACvC4gH,EAAU,IAAIrgG,EAAKogG,SAEnBC,EAAU,CAACO,EAAYE,KAG3B5T,aAAc,CAACluE,EAAO+hF,KACpB,IAAQhqG,KAAMiqG,EAAR,QAA8BvV,GAAYsV,EAChD,OAAQC,IACD3H,IAAYtI,iBAAiB+G,WAChCyI,GAAoB,GACb,EAAP,KACK9U,GADL,IAEEJ,aAAc,QAGTI,KAKTwV,EAAep5F,uBAAY,KAC/ByB,EAAOE,SAAWF,EAAOE,UACpB8hF,GACHqV,EAAoB,CAClBt2F,UAAW,CAAEw2F,QAASx5F,IAAYL,uBAAqBoC,YAG3Dm3F,GAAoB,KACnB,CAACI,EAAqBr3F,EAAQjC,EAASikF,IAEpC4V,EAAc9V,IAAW/rF,GAAW+gG,EAAO3gH,OAAS,EAkB1D,OAhBAymC,IAAM6C,WAAU,MACT1pB,GAAWW,IACVA,EAAKogG,OAAO3gH,OAAS,EACvB4gH,EAAUrgG,EAAKogG,QAEfC,EAAU,CAACO,EAAYE,OAG1B,CAAC9gG,EAAMX,EAASuhG,EAAYE,IAE/B56E,IAAM6C,WAAU,KACVm4E,GACF33F,MAED,CAAC23F,EAAa33F,IAEbxJ,GACFxV,IAAA,gCAAyD,CACvDuhB,MAAO,CAAE/L,MAAOA,KAEX,MAIP,yBAAKrC,UAAU,iCACb,yBACEA,UAAS,qDACPwjG,EAAc,WAAa,GADpB,YAGP75F,IAAYL,uBAAqBoC,SAC7B,uDACA,KAGN,6BACE1L,UAAU,mDACNu8F,EAAc,CAChBtwF,YAAatK,EAAUqK,EAAqBC,EAC5CH,QAASy3F,EACT1hG,IAAK4gG,EACLvlE,KAAMA,MAGTvxB,GACCO,GACAvC,IAAYL,uBAAqBoC,UAC/B,yBAAK1L,UAAU,gDACb,kBAACyjG,EAAA,QAAD,CACEb,iBAAkBA,EAClBv8F,KAAM,oDACN5Y,UAAWA,EACXs+B,QAASpgB,MAKnB,yBACE3L,UAAS,mDACNwjG,EAAyB,GAAX,SADR,YAGP75F,IAAYL,uBAAqBoC,SAC7B,qDACA,KAGN,0BACE1L,UAAS,iEACNwjG,EAAyB,GAAX,UAEjB,aAAW,cACPzL,KAEHyL,GACCd,EAAO51G,KAAI,CAACwd,EAAOyK,IACjB,0BACE/U,UAAS,UACPusF,IAAqBx3E,EACjB,kCACA,IAENnoB,IAAK0d,EAAM1d,KACP2sG,EAAa,CACf7nE,KAAMpnB,EACNyK,WAGDzK,EAAMvO,WAKfynG,GACA75F,IAAYL,uBAAqBoC,UACjCC,GACE,4BACE3L,UAAU,yBACV3G,KAAK,SACL0yB,QAASpgB,GAERjqB,EAAE,kC,iCCvPf,IAAIyZ,EAAuB,EAAQ,KAEnC,SAASC,KAET,SAASC,KAETA,EAAuBC,kBAAoBF,EAE3CnD,EAAOC,QAAU,WACf,SAASqD,EAAKC,EAAOC,EAAUC,EAAeC,EAAUC,EAAcC,GACpE,GAAIA,IAAWV,EAAf,CAKA,IAAIW,EAAM,IAAI7W,MAAM,mLAEpB,MADA6W,EAAIC,KAAO,sBACLD,GAMR,SAASE,IACP,OAAOT,EAHTA,EAAKU,WAAaV,EASlB,IAAIW,EAAiB,CACnBC,MAAOZ,EACPc,KAAMd,EACNe,KAAMf,EACNgB,OAAQhB,EACRiB,OAAQjB,EACRkB,OAAQlB,EACRmB,OAAQnB,EACRoB,IAAKpB,EACLqB,QAASZ,EACTa,QAAStB,EACTuB,YAAavB,EACbwB,WAAYf,EACZgB,KAAMzB,EACN0B,SAAUjB,EACVkB,MAAOlB,EACPmB,UAAWnB,EACXoB,MAAOpB,EACPqB,MAAOrB,EACPsB,eAAgBjC,EAChBC,kBAAmBF,GAGrB,OADAc,EAAeqB,UAAYrB,EACpBA,I,iCCpDTjE,EAAOC,QADoB,gD,oBCR3BD,EAAOC,QAAU,IAA0B,oC,gCCA3C,sCAAIyH,EAAKlf,OAAOK,UACZs0B,EAAWzV,EAAGyV,SACdr0B,EAAiB4e,EAAG5e,eACpB2iH,EAAU58F,SAAShmB,UAAUs0B,SAC7BuuF,EAAsB,IAAIt3F,IAK9B,SAASu3F,EAAMxzG,EAAG5P,GAChB,IACE,OAAOqjH,EAAMzzG,EAAG5P,GAChB,QACAmjH,EAAoBltD,SAIxB,SAASotD,EAAMzzG,EAAG5P,GAEhB,GAAI4P,IAAM5P,EACR,OAAO,EAKT,IA0KgB8iB,EAAMmW,EAClBqqF,EA3KAC,EAAO3uF,EAASp0B,KAAKoP,GAKzB,GAAI2zG,IAJO3uF,EAASp0B,KAAKR,GAKvB,OAAO,EAGT,OAAQujH,GACN,IAAK,iBAGH,GAAI3zG,EAAErO,SAAWvB,EAAEuB,OAAQ,OAAO,EAGpC,IAAK,kBAED,GAAIiiH,EAAmB5zG,EAAG5P,GAAI,OAAO,EACrC,IAAIyjH,EAAQC,EAAY9zG,GACpB+zG,EAAQD,EAAY1jH,GAGpB4jH,EAAWH,EAAMliH,OACrB,GAAIqiH,IAAaD,EAAMpiH,OAAQ,OAAO,EAEtC,IAAK,IAAI4S,EAAI,EAAGA,EAAIyvG,IAAYzvG,EAC9B,IAAK5T,EAAeC,KAAKR,EAAGyjH,EAAMtvG,IAChC,OAAO,EAKX,IAASA,EAAI,EAAGA,EAAIyvG,IAAYzvG,EAAG,CACjC,IAAI/H,EAAMq3G,EAAMtvG,GAEhB,IAAKkvG,EAAMzzG,EAAExD,GAAMpM,EAAEoM,IACnB,OAAO,EAIX,OAAO,EAGX,IAAK,iBACH,OAAOwD,EAAE2L,OAASvb,EAAEub,MAAQ3L,EAAE+d,UAAY3tB,EAAE2tB,QAE9C,IAAK,kBAEH,GAAI/d,IAAMA,EAAG,OAAO5P,IAAMA,EAG5B,IAAK,mBACL,IAAK,gBACH,OAAQ4P,KAAO5P,EAEjB,IAAK,kBACL,IAAK,kBACH,OAAO4P,GAAK,GAAK5P,EAEnB,IAAK,eACL,IAAK,eAED,GAAI4P,EAAE8sC,OAAS18C,EAAE08C,KAAM,OAAO,EAC9B,GAAI8mE,EAAmB5zG,EAAG5P,GAAI,OAAO,EAIrC,IAHA,IAAI6jH,EAAYj0G,EAAE4X,UACds8F,EAAiB,iBAATP,IAEC,CACX,IAAIpuD,EAAO0uD,EAAUphH,OACrB,GAAI0yD,EAAKvyD,KAAM,MAEf,IAAIuc,EAAKg2C,EAAK5yD,MACVwhH,EAAO5kG,EAAG,GACV6kG,EAAS7kG,EAAG,GAEhB,IAAKnf,EAAEqoD,IAAI07D,GACT,OAAO,EAKT,GAAID,IAAUT,EAAMW,EAAQhkH,EAAEqK,IAAI05G,IAChC,OAAO,EAIX,OAAO,EAGX,IAAK,uBACL,IAAK,sBAEL,IAAK,uBACL,IAAK,sBACL,IAAK,qBACL,IAAK,sBACL,IAAK,uBAGHn0G,EAAI,IAAIq0G,WAAWr0G,GACnB5P,EAAI,IAAIikH,WAAWjkH,GAGrB,IAAK,oBAED,IAAIqmC,EAAMz2B,EAAEs0G,WAEZ,GAAI79E,IAAQrmC,EAAEkkH,WACZ,KAAO79E,KAASz2B,EAAEy2B,KAASrmC,EAAEqmC,KAI/B,OAAgB,IAATA,EAGX,IAAK,yBACL,IAAK,6BACL,IAAK,kCACL,IAAK,oBAED,IAAI89E,EAAQjB,EAAQ1iH,KAAKoP,GAEzB,OAAIu0G,IAAUjB,EAAQ1iH,KAAKR,KA+CXi5B,EApBQmrF,KAqB1Bd,GADYxgG,EApBOqhG,GAqBF5iH,OAAS03B,EAAO13B,SACjB,GAAKuhB,EAAKnhB,QAAQs3B,EAAQqqF,KAAeA,IAjB7D,OAAO,EAGT,SAASI,EAAY1lG,GAGnB,OAAO/d,OAAOmd,KAAKY,GAAKV,OAAO+mG,EAAcrmG,GAG/C,SAASqmG,EAAaj4G,GACpB,YAAqB,IAAdvL,KAAKuL,GAGd,IAAIg4G,EAAmB,oBAOvB,SAASZ,EAAmB5zG,EAAG5P,GAS7B,IAAIskH,EAAOnB,EAAoB94G,IAAIuF,GAEnC,GAAI00G,GAGF,GAAIA,EAAKj8D,IAAIroD,GAAI,OAAO,OAExBmjH,EAAoBv4F,IAAIhb,EAAG00G,EAAO,IAAI9nE,KAIxC,OADA8nE,EAAKx5E,IAAI9qC,IACF,I,kBCxLTyX,EAAOC,QAJP,SAAYnV,EAAO6nE,GACjB,OAAO7nE,IAAU6nE,GAAS7nE,IAAUA,GAAS6nE,IAAUA,I,uDCjClD,SAAS1U,IAGd,IAFA,IAAI6uD,EAAU,GAEL73F,EAAK,EAAGA,EAAKprB,UAAUC,OAAQmrB,IACtC63F,EAAQ73F,GAAMprB,UAAUorB,GAG1B,IAAI/pB,EAAS1C,OAAOc,OAAO,MAW3B,OAVAwjH,EAAQ5mG,SAAQ,SAAUK,GACnBA,GACL/d,OAAOmd,KAAKY,GAAKL,SAAQ,SAAUvR,GACjC,IAAI7J,EAAQyb,EAAI5R,QAEF,IAAV7J,IACFI,EAAOyJ,GAAO7J,SAIbI,EAlBT,mC,iCCAO,SAAS6hH,EAAgBjiH,GAC9B,OAAOnC,MAAMoX,QAAQjV,IAAUA,EAAMhB,OAAS,EADhD,mC,iCCCA,2DAkBMsjB,EAAY,sBAkGH4/F,UAxFa,IAMM,IANL,wBAC3BC,EAD2B,eAE3BC,GAI+B,GACzB,EAAEzjH,GAAMqkB,YAAe,CAAC,qBAAsB,eAE7C0lB,EAAa25E,GAAkB58E,YAAe,IAC9C68E,EAAgBC,GAAqB98E,YAAe,GAErD+8E,EAAc/8E,eAAkB,KACpC48E,GAAgB35E,GAChB3gB,YACE,KACEw6F,GAAmBD,GAxBWF,KACpC,IACM38F,EAAa,CACjBg9F,gBAAiBL,GAEnB56F,kBAJkB,4BAIM/B,IAoBlBi9F,CAA6BN,KAE/B15E,EAAc,IAAM,KAErB,CACDA,EACA25E,EACAE,EACAD,EACAF,IAGIO,EAAqBC,2BACrBC,EAAkBC,sBACtBH,EACAR,GAGF,OACE,gBAAC,WAAD,KACE,0BACE,cAAY,gBACZllG,UAAWqF,EACXhM,KAAK,SACL0yB,QAASw5E,GAET,uBACEj2F,IAAKw2F,yBAAeJ,IAAuB,GAC3C1lG,UAAS,UAAKqF,EAAL,kBACTiB,IAAG,sBAAiBy/F,yBAAe,CACjCb,0BACAc,YAAaN,EACbhkH,OAEFkf,OAAO,KACPnP,MAAM,KACNkQ,QAAQ,SAEV,wBACE3B,UAAS,UAAKqF,EAAL,6CAER0gG,yBAAe,CACdb,0BACAc,YAAaN,EACbhkH,OACI,IAER,wBACE,wBAAgB2jB,EAAhB,sBACArF,UAAS,UAAKqF,EAAL,wCAER4gG,+BAAqB,CAAE7vF,SAAUwvF,EAAiBlkH,OAAQ,IAE7D,wBAAMse,UAAS,UAAKqF,EAAL,wCACZ6gG,YAAmCR,KAGvCL,GACC,gBAAC,UAAD,CACEO,gBAAiBA,EACjBF,mBAAoBA,EACpBR,wBAAyBA,EACzB35E,WAAYg6E,EACZ7X,OAAQjiE,EACR05E,eAAgBA,O,kBCzF1BltG,EAAOC,QAZP,SAAkBiE,EAAOgqG,GAKvB,IAJA,IAAIpxF,GAAS,EACThzB,EAAkB,MAAToa,EAAgB,EAAIA,EAAMpa,OACnCoB,EAASvC,MAAMmB,KAEVgzB,EAAQhzB,GACfoB,EAAO4xB,GAASoxF,EAAShqG,EAAM4Y,GAAQA,EAAO5Y,GAGhD,OAAOhZ,I,kBClBT8U,EAAOC,QAAU,SAAUD,GAsBzB,OArBKA,EAAOmuG,kBACVnuG,EAAOskB,UAAY,aAEnBtkB,EAAOuc,MAAQ,GAEVvc,EAAOmH,WAAUnH,EAAOmH,SAAW,IACxC3e,OAAO8d,eAAetG,EAAQ,SAAU,CACtCgG,YAAY,EACZpT,IAAK,WACH,OAAOoN,EAAOrT,KAGlBnE,OAAO8d,eAAetG,EAAQ,KAAM,CAClCgG,YAAY,EACZpT,IAAK,WACH,OAAOoN,EAAOrW,KAGlBqW,EAAOmuG,gBAAkB,GAGpBnuG,I,iCCtBT,kCAAO,IAAMouG,EAAgB,IACE,cAA7Bh/F,OAAO1L,SAAS2qG,UAChBj/F,OAAO1L,SAAS2qG,SAAS54G,SAAS,cAClC2Z,OAAO1L,SAAS2qG,SAAS54G,SAAS,cAClC2Z,OAAO1L,SAAS2qG,SAAS54G,SAAS,mB,iCCFpC,8CAEMw9B,EAAmBnoC,GAChBsI,IAAK3J,EAAE,oBAAqB,CAAEqB,W,utBCIxB,SAASwnB,EACtBhC,GAC4B,IAA5BC,EAA2B,uDAAV,GACjB,IACEnB,OAAOwB,UAAUC,MAAMP,EAAWC,GAClC,MAAOnG,GACP2O,QAAQ3O,MAAMA,I,yFAIX,MAAMkkG,EACC,aACVj0F,GAE0D,IAD1D9J,EACyD,uDADxC,GACjBg+F,EAAyD,uDAApBj8F,EACrC,IACEi8F,EAAiBl0F,EAAO9J,GACxB,MAAOnG,GACP2O,QAAQ3O,MAAMA,IAIK,wBACrBiQ,EACAm0F,GAE0D,IAD1DC,EACyD,uDADnC,GACtBF,EAAyD,uDAApBj8F,EAC/B/B,EAAU,OACXi+F,GACAC,GAEL,IACEF,EAAiBl0F,EAAO9J,GACxB,MAAOnG,GACP2O,QAAQ3O,MAAMA,O,iCC3CpB,IAAIk6E,EAAuB,CACzBC,iBAAkB,CAChBN,IAAK,CACHO,QAAS,gCACTC,KAAM,2CACNC,OAAQ,oCAEVgqB,IAAK,CACHlqB,QAAS,0CACTC,KAAM,sDACNC,OAAQ,8CAEViqB,KAAM,CACJnqB,QAAS,yCACTC,KAAM,sDACNC,OAAQ,8CAGZC,SAAU,CACRV,IAAK,CACHO,QAAS,UACTC,KAAM,qBACNC,OAAQ,cAEVgqB,IAAK,CACHlqB,QAAS,oBACTC,KAAM,gCACNC,OAAQ,wBAEViqB,KAAM,CACJnqB,QAAS,mBACTC,KAAM,gCACNC,OAAQ,wBAGZE,YAAa,CACXjyB,MAAO,CACL6xB,QAAS,kBACTC,KAAM,6BACNC,OAAQ,uBAGZG,iBAAkB,CAChBZ,IAAK,CACHO,QAAS,+BACTC,KAAM,0CACNC,OAAQ,mCAEVgqB,IAAK,CACHlqB,QAAS,yCACTC,KAAM,qDACNC,OAAQ,6CAEViqB,KAAM,CACJnqB,QAAS,wCACTC,KAAM,qDACNC,OAAQ,6CAGZI,SAAU,CACRb,IAAK,CACHO,QAAS,SACTC,KAAM,oBACNC,OAAQ,aAEVgqB,IAAK,CACHlqB,QAAS,mBACTC,KAAM,+BACNC,OAAQ,uBAEViqB,KAAM,CACJnqB,QAAS,kBACTC,KAAM,+BACNC,OAAQ,uBAGZK,YAAa,CACXd,IAAK,CACHO,QAAS,kCACTC,KAAM,6CACNC,OAAQ,sCAEVgqB,IAAK,CACHlqB,QAAS,4CACTC,KAAM,wDACNC,OAAQ,gDAEViqB,KAAM,CACJnqB,QAAS,2CACTC,KAAM,wDACNC,OAAQ,gDAGZM,OAAQ,CACNf,IAAK,CACHO,QAAS,SACTC,KAAM,oBACNC,OAAQ,aAEVgqB,IAAK,CACHlqB,QAAS,mBACTC,KAAM,+BACNC,OAAQ,uBAEViqB,KAAM,CACJnqB,QAAS,kBACTC,KAAM,+BACNC,OAAQ,uBAGZO,MAAO,CACLhB,IAAK,CACHO,QAAS,MACTC,KAAM,iBACNC,OAAQ,UAEVgqB,IAAK,CACHlqB,QAAS,gBACTC,KAAM,0BACNC,OAAQ,oBAEViqB,KAAM,CACJnqB,QAAS,mBACTC,KAAM,0BACNC,OAAQ,wBAGZQ,YAAa,CACXjB,IAAK,CACHO,QAAS,oCACTC,KAAM,+CACNC,OAAQ,wCAEVgqB,IAAK,CACHlqB,QAAS,8CACTC,KAAM,wDACNC,OAAQ,kDAEViqB,KAAM,CACJnqB,QAAS,mDACTC,KAAM,wDACNC,OAAQ,wDAGZS,OAAQ,CACNlB,IAAK,CACHO,QAAS,WACTC,KAAM,sBACNC,OAAQ,eAEVgqB,IAAK,CACHlqB,QAAS,qBACTC,KAAM,+BACNC,OAAQ,yBAEViqB,KAAM,CACJnqB,QAAS,0BACTC,KAAM,+BACNC,OAAQ,+BAGZU,aAAc,CACZnB,IAAK,CACHO,QAAS,yCACTC,KAAM,qDACNC,OAAQ,6CAEVgqB,IAAK,CACHlqB,QAAS,oDACTC,KAAM,8DACNC,OAAQ,wDAEViqB,KAAM,CACJnqB,QAAS,yDACTC,KAAM,8DACNC,OAAQ,8DAGZW,QAAS,CACPpB,IAAK,CACHO,QAAS,gBACTC,KAAM,4BACNC,OAAQ,oBAEVgqB,IAAK,CACHlqB,QAAS,2BACTC,KAAM,qCACNC,OAAQ,+BAEViqB,KAAM,CACJnqB,QAAS,gCACTC,KAAM,qCACNC,OAAQ,qCAGZY,YAAa,CACXrB,IAAK,CACHO,QAAS,+BACTC,KAAM,2CACNC,OAAQ,mCAEVgqB,IAAK,CACHlqB,QAAS,0CACTC,KAAM,oDACNC,OAAQ,8CAEViqB,KAAM,CACJnqB,QAAS,+CACTC,KAAM,oDACNC,OAAQ,oDAGZa,OAAQ,CACNtB,IAAK,CACHO,QAAS,MACTC,KAAM,kBACNC,OAAQ,UAEVgqB,IAAK,CACHlqB,QAAS,iBACTC,KAAM,2BACNC,OAAQ,qBAEViqB,KAAM,CACJnqB,QAAS,sBACTC,KAAM,2BACNC,OAAQ,2BAGZc,WAAY,CACVvB,IAAK,CACHO,QAAS,uBACTC,KAAM,mCACNC,OAAQ,2BAEVgqB,IAAK,CACHlqB,QAAS,kCACTC,KAAM,4CACNC,OAAQ,sCAEViqB,KAAM,CACJnqB,QAAS,uCACTC,KAAM,4CACNC,OAAQ,4CAGZe,aAAc,CACZxB,IAAK,CACHO,QAAS,YACTC,KAAM,wBACNC,OAAQ,gBAEVgqB,IAAK,CACHlqB,QAAS,uBACTC,KAAM,iCACNC,OAAQ,2BAEViqB,KAAM,CACJnqB,QAAS,4BACTC,KAAM,iCACNC,OAAQ,kC,YCnOC,EAdE,CACfjtF,KAAM,OAAA0T,EAAA,GAAkB,CACtBC,QApBc,CAChBC,KAAM,qBACNC,KAAM,eACNC,OAAQ,aACRC,MAAO,cAiBL7K,aAAc,SAEhB8K,KAAM,OAAAN,EAAA,GAAkB,CACtBC,QAlBc,CAChBC,KAAM,eACNC,KAAM,YACNC,OAAQ,UACRC,MAAO,QAeL7K,aAAc,SAEhB+K,SAAU,OAAAP,EAAA,GAAkB,CAC1BC,QAhBkB,CACpBC,KAAM,wBACNC,KAAM,wBACNC,OAAQ,qBACRC,MAAO,sBAaL7K,aAAc,UC9BdiuG,EAAqB,CAAC,cAAU,kBAAW,cAAS,cAAU,eAAW,WAAS,UAClFloB,EAAuB,CACzBC,SAAU,4BACVC,UAAW,mBACXC,MAAO,aACPC,SAAU,iBACVC,SAAU,SAAkBtvF,EAAMuwF,EAAWC,GAC3C,IAAIjsF,EAAMvE,EAAKsE,YACf,MAAO,MAAQ6yG,EAAmB5yG,GAAO,SAE3C22D,MAAO,K,YCuFT,IA8Be,EA9BA,CACbl5D,cANF,SAAuBu/E,GAErB,OADazzD,OAAOyzD,GACJ,KAKhBz/E,IAAK,OAAA+G,EAAA,GAAgB,CACnBS,OAnGY,CACdimF,OAAQ,CAAC,iBAAa,SACtBC,YAAa,CAAC,iBAAa,SAC3BC,KAAM,CAAC,0CAAyB,+BAiG9BvmF,aAAc,SAEhBpG,QAAS,OAAA+F,EAAA,GAAgB,CACvBS,OAlGgB,CAClBimF,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,uBAAgB,uBAAgB,uBAAgB,wBAC9DC,KAAM,CAAC,uBAAgB,uBAAgB,uBAAgB,yBAgGrDvmF,aAAc,OACdK,iBAAkB,SAA0BzG,GAC1C,OAAOgrB,OAAOhrB,GAAW,KAG7BvC,MAAO,OAAAsI,EAAA,GAAgB,CACrBS,OApGc,CAChBimF,OAAQ,CAAC,IAAK,OAAK,IAAK,IAAK,IAAK,SAAK,SAAK,IAAK,IAAK,SAAK,IAAK,KAChEC,YAAa,CAAC,MAAO,SAAO,WAAO,MAAO,WAAO,WAAO,WAAO,MAAO,cAAO,cAAO,MAAO,OAC3FC,KAAM,CAAC,QAAS,UAAQ,cAAU,QAAS,cAAU,cAAU,gBAAY,QAAS,kBAAQ,gBAAS,WAAY,aAkG/GvmF,aAAc,OACdD,iBAjGwB,CAC1BsmF,OAAQ,CAAC,IAAK,OAAK,IAAK,IAAK,IAAK,SAAK,SAAK,IAAK,IAAK,SAAK,IAAK,KAChEC,YAAa,CAAC,MAAO,SAAO,WAAO,MAAO,WAAO,WAAO,WAAO,MAAO,cAAO,cAAO,MAAO,OAC3FC,KAAM,CAAC,QAAS,WAAS,cAAU,QAAS,cAAU,cAAU,gBAAY,QAAS,kBAAQ,gBAAS,YAAa,aA+FjHtmF,uBAAwB,SAE1B5E,IAAK,OAAAsE,EAAA,GAAgB,CACnBS,OAhGY,CACdimF,OAAQ,CAAC,KAAM,KAAM,QAAM,KAAM,UAAM,QAAM,MAC7Cx7E,MAAO,CAAC,KAAM,KAAM,QAAM,KAAM,UAAM,QAAM,MAC5Cy7E,YAAa,CAAC,MAAO,MAAO,SAAO,WAAO,WAAO,SAAO,OACxDC,KAAM,CAAC,cAAU,kBAAW,cAAS,cAAU,eAAW,WAAS,WA6FjEvmF,aAAc,SAEhBtE,UAAW,OAAAiE,EAAA,GAAgB,CACzBS,OA9FkB,CACpBimF,OAAQ,CACNG,GAAI,OACJC,GAAI,OACJC,SAAU,cACVC,KAAM,UACNC,QAAS,UACTC,UAAW,YACXC,QAAS,aACTC,MAAO,OAETT,YAAa,CACXE,GAAI,OACJC,GAAI,OACJC,SAAU,cACVC,KAAM,UACNC,QAAS,UACTC,UAAW,YACXC,QAAS,aACTC,MAAO,OAETR,KAAM,CACJC,GAAI,YACJC,GAAI,YACJC,SAAU,cACVC,KAAM,UACNC,QAAS,UACTC,UAAW,YACXC,QAAS,aACTC,MAAO,QAkEP/mF,aAAc,OACdD,iBAhE4B,CAC9BsmF,OAAQ,CACNG,GAAI,OACJC,GAAI,OACJC,SAAU,cACVC,KAAM,UACNC,QAAS,UACTC,UAAW,YACXC,QAAS,aACTC,MAAO,OAETT,YAAa,CACXE,GAAI,OACJC,GAAI,OACJC,SAAU,cACVC,KAAM,UACNC,QAAS,UACTC,UAAW,YACXC,QAAS,aACTC,MAAO,OAETR,KAAM,CACJC,GAAI,YACJC,GAAI,YACJC,SAAU,cACVC,KAAM,UACNC,QAAS,UACTC,UAAW,YACXC,QAAS,aACTC,MAAO,QAoCP9mF,uBAAwB,U,gBC5GxBzO,EAAS,CACXwZ,KAAM,KACNC,eJsPa,SAAwBlU,EAAOkQ,EAAO/N,GACnDA,EAAUA,GAAW,GACrB,IAEIg1G,EAFA7qB,EAASM,EAAqB5sF,GAKhCm3G,EAD0B,kBAAjB7qB,EAAOrxB,MACF,QACK,IAAV/qD,EACK,MACLA,EAAQ,GAAKA,EAAQ,GAAe,IAAVA,EACrB,MAEA,OAIhB,IAEIknG,EAFAC,GAAoC,IAAtBl1G,EAAQ8tF,UACtBC,EAAa/tF,EAAQ+tF,WAWzB,OAPEknB,EADEC,IAA+B,IAAhBnnB,EACL,OACHmnB,GAA8B,IAAfnnB,EACZ,SAEA,UAGP5D,EAAO6qB,GAAaC,GAAWhvG,QAAQ,YAAa8H,IIlR3D9I,WAAY,EACZ+M,eFRa,SAAwBnU,EAAOD,EAAMwuF,EAAUpsF,GAC5D,IAAI7E,EAAS0xF,EAAqBhvF,GAElC,MAAsB,oBAAX1C,EACFA,EAAOyC,EAAMwuF,EAAUpsF,GAGzB7E,GEEPsE,SAAU,EACV8F,MCgCU,CACV3F,cAAe,OAAAouF,EAAA,GAAoB,CACjC77E,aAtD4B,aAuD5B87E,aAtD4B,OAuD5Bn7E,cAAe,SAAuB7hB,GACpC,OAAOyoB,SAASzoB,EAAO,OAG3ByO,IAAK,OAAAuS,EAAA,GAAa,CAChBG,cA3DmB,CACrB+6E,OAAQ,qDACRC,YAAa,+DACbC,KAAM,mHAyDJh7E,kBAAmB,OACnBG,cAxDmB,CACrB3H,IAAK,CAAC,eAAW,aAwDf4H,kBAAmB,QAErB/R,QAAS,OAAAuR,EAAA,GAAa,CACpBG,cAzDuB,CACzB+6E,OAAQ,WACRC,YAAa,qCACbC,KAAM,sCAuDJh7E,kBAAmB,OACnBG,cAtDuB,CACzB3H,IAAK,CAAC,KAAM,KAAM,KAAM,OAsDtB4H,kBAAmB,MACnBK,cAAe,SAAuBmQ,GACpC,OAAOA,EAAQ,KAGnB9kB,MAAO,OAAA8T,EAAA,GAAa,CAClBG,cA1DqB,CACvB+6E,OAAQ,kCACRC,YAAa,wHACbC,KAAM,4PAwDJh7E,kBAAmB,OACnBG,cAvDqB,CACvB26E,OAAQ,CAAC,MAAO,YAAU,MAAO,MAAO,MAAO,cAAU,cAAU,MAAO,MAAO,cAAU,MAAO,OAClGtiF,IAAK,CAAC,QAAS,aAAW,gBAAY,QAAS,gBAAY,oDAAsC,sCAA6B,QAAS,sBAAe,sBAAe,QAAS,UAsD5K4H,kBAAmB,QAErBtQ,IAAK,OAAA8P,EAAA,GAAa,CAChBG,cAvDmB,CACrB+6E,OAAQ,uBACRx7E,MAAO,+CACPy7E,YAAa,+CACbC,KAAM,gHAoDJh7E,kBAAmB,OACnBG,cAnDmB,CACrB26E,OAAQ,CAAC,MAAO,MAAO,YAAU,MAAO,cAAU,MAAO,OACzDtiF,IAAK,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,eAAW,MAAO,SAkDtD4H,kBAAmB,QAErBjQ,UAAW,OAAAyP,EAAA,GAAa,CACtBG,cAnDyB,CAC3BvH,IAAK,wGAmDHwH,kBAAmB,MACnBG,cAlDyB,CAC3B3H,IAAK,CACHyiF,GAAI,QACJC,GAAI,QACJC,SAAU,mBACVC,KAAM,YACNC,QAAS,cACTC,UAAW,aACXC,QAAS,iBACTC,MAAO,SA0CPp7E,kBAAmB,SDtErBzS,QAAS,CACPqC,aAAc,EAGdsC,sBAAuB,IAGZ,O,kBE7Bf,IAAIwwG,EAAcxmH,OAAOK,UAezBmX,EAAOC,QANP,SAAqBnV,GACnB,IAAImkH,EAAOnkH,GAASA,EAAMzB,YAE1B,OAAOyB,KADoB,mBAARmkH,GAAsBA,EAAKpmH,WAAammH,K,kBCC7DhvG,EAAOC,QANP,SAAmBoE,GACjB,OAAO,SAAUvZ,GACf,OAAOuZ,EAAKvZ,M,iCCHhB,SAASgiF,EAAuBvmE,GAC9B,OAAOA,GAAOA,EAAIqP,WAAarP,EAAM,CACnC,QAAWA,GANftG,EAAQ2V,YAAa,EACrB3V,EAAQ4+E,uBAqCR,SAAgCjoE,GAC9Bs4F,EAAqC,QAAEt4F,GAEvCu4F,EAAuB,QAAEv4F,GAEzBw4F,EAAgC,QAAEx4F,GAElCy4F,EAAqB,QAAEz4F,GAEvB04F,EAAsB,QAAE14F,GAExB24F,EAAyB,QAAE34F,GAE3B44F,EAAuB,QAAE54F,IAjD3B3W,EAAQwvG,kBAoDR,SAA2B74F,EAAU84F,EAAYC,GAC3C/4F,EAAS8nE,QAAQgxB,KACnB94F,EAASg5F,MAAMF,GAAc94F,EAAS8nE,QAAQgxB,GAEzCC,UACI/4F,EAAS8nE,QAAQgxB,KAjD9B,IAEIR,EAA8BpiC,EAFD,EAAQ,MAMrCqiC,EAAgBriC,EAFD,EAAQ,MAMvBsiC,EAAyBtiC,EAFD,EAAQ,MAMhCuiC,EAAcviC,EAFD,EAAQ,MAMrBwiC,EAAexiC,EAFD,EAAQ,MAMtByiC,EAAkBziC,EAFD,EAAQ,MAMzB0iC,EAAgB1iC,EAFD,EAAQ,O,iCClC3B7sE,EAAQ2V,YAAa,EAErB,IAAImoE,EAAS,EAAQ,IAEjB5kE,EAAS,CACX02F,UAAW,CAAC,QAAS,OAAQ,OAAQ,SACrCr5F,MAAO,OAEPs5F,YAAa,SAAqBt5F,GAChC,GAAqB,kBAAVA,EAAoB,CAC7B,IAAIu5F,EAAWhyB,EAAO7zF,QAAQivB,EAAO02F,UAAWr5F,EAAMla,eAGpDka,EADEu5F,GAAY,EACNA,EAEAx8F,SAASiD,EAAO,IAI5B,OAAOA,GAGToC,IAAK,SAAapC,GAGhB,GAFAA,EAAQ2C,EAAO22F,YAAYt5F,GAEJ,qBAAZuC,SAA2BI,EAAO22F,YAAY32F,EAAO3C,QAAUA,EAAO,CAC/E,IAAI8iB,EAASngB,EAAO02F,UAAUr5F,GAEzBuC,QAAQugB,KACXA,EAAS,OAGX,IAAK,IAAIlgB,EAAOvvB,UAAUC,OAAQosB,EAAUvtB,MAAMywB,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IACjGnD,EAAQmD,EAAO,GAAKxvB,UAAUwvB,GAGhCN,QAAQugB,GAAQvvC,MAAMgvB,QAAS7C,MAIrCjW,EAAiB,QAAIkZ,EACrBnZ,EAAOC,QAAUA,EAAiB,S,iCCzClCA,EAAQ2V,YAAa,EACrB3V,EAAQ+vG,yBA6BR,SAAkCC,GAChC,IAAIC,EAAyB1nH,OAAOc,OAAO,MAC3C4mH,EAAoC,aAAI,EACxCA,EAAyC,kBAAI,EAC7CA,EAAyC,kBAAI,EAC7CA,EAAyC,kBAAI,EAC7C,IAAIC,EAA2B3nH,OAAOc,OAAO,MAG7C,OADA6mH,EAAoC,WAAI,EACjC,CACL5/F,WAAY,CACVyT,UAAWosF,EAAuBC,sBAAsBF,EAA0BF,EAAeK,wBACjG9vF,aAAcyvF,EAAeM,+BAE/BC,QAAS,CACPxsF,UAAWosF,EAAuBC,sBAAsBH,EAAwBD,EAAeQ,qBAC/FjwF,aAAcyvF,EAAeS,8BA5CnCzwG,EAAQ0wG,gBAiDR,SAAyBzlH,EAAQ0lH,EAAoBC,GACnD,OACSC,EADa,oBAAX5lH,EACa0lH,EAAmBJ,QAEnBI,EAAmBrgG,WAFSsgG,IAlDtD5wG,EAAQq/E,sBA4ER,WACE92F,OAAOmd,KAAKorG,GAAkB7qG,SAAQ,SAAU2qG,UACvCE,EAAiBF,OA3D5B,IAAIT,EAAyB,EAAQ,KAIjCj3F,EArBJ,SAAiC5S,GAC/B,GAAIA,GAAOA,EAAIqP,WACb,OAAOrP,EAEP,IAAIyqG,EAAS,GAEb,GAAW,MAAPzqG,EACF,IAAK,IAAI5R,KAAO4R,EACV/d,OAAOK,UAAUC,eAAeC,KAAKwd,EAAK5R,KAAMq8G,EAAOr8G,GAAO4R,EAAI5R,IAK1E,OADAq8G,EAAgB,QAAIzqG,EACbyqG,EAQEC,CAFC,EAAQ,MAIlBF,EAAmBvoH,OAAOc,OAAO,MA+BrC,SAASwnH,EAAeI,EAA2BL,GACjD,YAA0D9kG,IAAtDmlG,EAA0BltF,UAAU6sF,IACuB,IAAtDK,EAA0BltF,UAAU6sF,QAGE9kG,IAA3CmlG,EAA0B1wF,aACrB0wF,EAA0B1wF,cAOrC,SAAwCqwF,IACC,IAAnCE,EAAiBF,KACnBE,EAAiBF,IAAgB,EACjC13F,EAAOP,IAAI,QAAS,+DAAiEi4F,EAAjE,8OAPtBM,CAA+BN,IACxB,K,kCCvET,YAEA5wG,EAAQ2V,YAAa,EAErB3V,EAAiB,QAAI,SAAUi7E,GAE7B,IAAItsE,EAAyB,qBAAXrZ,EAAyBA,EAAS6Z,OAChDgiG,EAAcxiG,EAAKssE,WAGvBA,EAAWa,WAAa,WAKtB,OAJIntE,EAAKssE,aAAeA,IACtBtsE,EAAKssE,WAAak2B,GAGbl2B,IAIXl7E,EAAOC,QAAUA,EAAiB,U,mDCjBlCA,EAAQ2V,YAAa,EACrB,IAAI83D,EAAM,CAERgR,QAAS,CAIP2yB,iBAAkB,SAA0BtsG,GAC1C,MAAqB,kBAAdA,EAAK3D,OAA2C,sBAAd2D,EAAK3D,MAA8C,mBAAd2D,EAAK3D,UAAiC2D,EAAKusG,QAAUvsG,EAAKusG,OAAOxnH,QAAUib,EAAKwsG,OAEhKC,SAAU,SAAkBz2F,GAC1B,MAAO,aAAatO,KAAKsO,EAAK43B,WAIhC8+D,SAAU,SAAkB12F,GAC1B,OAA6B,IAAtBA,EAAK0D,MAAM30B,SAAiB4jF,EAAIgR,QAAQ8yB,SAASz2F,KAAUA,EAAK22F,SAM7EzxG,EAAiB,QAAIytE,EACrB1tE,EAAOC,QAAUA,EAAiB,S,gCCxBlC,sBAUe,IACbzX,OAAOmpH,YACLnpH,OAAOunB,QAAQ/B,KAAanZ,KAAI,QAAEF,EAAK7J,GAAP,QAAkB,CAChD6J,EACA4e,SAASzoB,EAAMgV,QAAQ,KAAM,W,iCCbnCG,EAAQ2V,YAAa,EAQrB,IANgCrP,EAM5BqrG,EAAa,EAAQ,IAErB5zB,GAR4Bz3E,EAQSqrG,IAPzBrrG,EAAIqP,WAAarP,EAAM,CACnC,QAAWA,GAQf,SAASynE,IACP5kF,KAAKyoH,QAAU,GAgHjB,SAASC,EAAmBC,GAC1B3oH,KAAK4oH,eAAeD,EAAU,QAC9B3oH,KAAK6oH,YAAYF,EAAST,QAC1BloH,KAAK8oH,UAAUH,EAAU,QAG3B,SAASI,EAAWhqE,GAClB2pE,EAAmB/oH,KAAKK,KAAM++C,GAC9B/+C,KAAK8oH,UAAU/pE,EAAO,WACtB/+C,KAAK8oH,UAAU/pE,EAAO,WAGxB,SAASiqE,EAAal4D,GACpB9wD,KAAK4oH,eAAe93D,EAAS,QAC7B9wD,KAAK6oH,YAAY/3D,EAAQo3D,QACzBloH,KAAK8oH,UAAUh4D,EAAS,QA5H1B8zB,EAAQnlF,UAAY,CAClBQ,YAAa2kF,EACbqkC,UAAU,EAEVH,UAAW,SAAmBntG,EAAMjB,GAClC,IAAIhZ,EAAQ1B,KAAK2iD,OAAOhnC,EAAKjB,IAE7B,GAAI1a,KAAKipH,SAAU,CAGjB,GAAIvnH,IAAUkjF,EAAQnlF,UAAUiC,EAAMsW,MACpC,MAAM,IAAI48E,EAAqB,QAAE,yBAA2BlzF,EAAMsW,KAAO,0BAA4B0C,EAAO,OAASiB,EAAK3D,MAG5H2D,EAAKjB,GAAQhZ,IAKjBknH,eAAgB,SAAwBjtG,EAAMjB,GAG5C,GAFA1a,KAAK8oH,UAAUntG,EAAMjB,IAEhBiB,EAAKjB,GACR,MAAM,IAAIk6E,EAAqB,QAAEj5E,EAAK3D,KAAO,aAAe0C,IAKhEmuG,YAAa,SAAqB/tG,GAChC,IAAK,IAAIva,EAAI,EAAGgD,EAAIuX,EAAMpa,OAAQH,EAAIgD,EAAGhD,IACvCP,KAAK8oH,UAAUhuG,EAAOva,GAEjBua,EAAMva,KACTua,EAAM6Y,OAAOpzB,EAAG,GAChBA,IACAgD,MAINo/C,OAAQ,SAAgBxnC,GACtB,GAAKA,EAAL,CAMA,IAAKnb,KAAKmb,EAAOnD,MACf,MAAM,IAAI48E,EAAqB,QAAE,iBAAmBz5E,EAAOnD,KAAMmD,GAG/Dnb,KAAK2gB,SACP3gB,KAAKyoH,QAAQ18B,QAAQ/rF,KAAK2gB,SAG5B3gB,KAAK2gB,QAAUxF,EACf,IAAI0mB,EAAM7hC,KAAKmb,EAAOnD,MAAMmD,GAG5B,OAFAnb,KAAK2gB,QAAU3gB,KAAKyoH,QAAQz2F,SAEvBhyB,KAAKipH,UAAYpnF,EACbA,GACU,IAARA,EACF1mB,OADF,IAIT+tG,QAAS,SAAiBC,GACxBnpH,KAAK6oH,YAAYM,EAAQjnH,OAE3BknH,kBAAmBV,EACnBW,UAAWX,EACXY,eAAgBP,EAChBQ,eAAgBR,EAChBS,iBAAkBR,EAClBS,sBAAuB,SAA+B34D,GACpDk4D,EAAarpH,KAAKK,KAAM8wD,GACxB9wD,KAAK8oH,UAAUh4D,EAAS,YAE1B44D,iBAAkB,aAGlBC,iBAAkB,aAGlBC,cAAelB,EACfmB,eAAgB,aAGhBC,cAAe,aAGfC,cAAe,aAGfC,eAAgB,aAGhBC,iBAAkB,aAGlBC,YAAa,aAGbC,KAAM,SAAchC,GAClBnoH,KAAK6oH,YAAYV,EAAKiC,QAExBC,SAAU,SAAkBztE,GAC1B58C,KAAK4oH,eAAehsE,EAAM,WAsB9B/lC,EAAiB,QAAI+tE,EACrBhuE,EAAOC,QAAUA,EAAiB,S,mBC1IlC,WACE,aAEA,GAAsB,kBAAXmP,OAMX,GAAI,yBAA0BA,QAAU,8BAA+BA,QAAU,sBAAuBA,OAAOskG,0BAA0B7qH,UAGjI,mBAAoBumB,OAAOskG,0BAA0B7qH,WACzDL,OAAO8d,eAAe8I,OAAOskG,0BAA0B7qH,UAAW,iBAAkB,CAClF+J,IAAK,WACH,OAAOxJ,KAAKuqH,kBAAoB,SANxC,CAiCA,IAAIpgH,EAAW,SAAUqgH,GAIvB,IAHA,IAAI72E,EASJ3tB,OAAO7b,SARHsgH,EAAQC,EAAgB/2E,GAErB82E,GAELA,EAAQC,EADR/2E,EAAM82E,EAAMnjB,eAId,OAAO3zD,EATM,GAmBXg3E,EAAW,GAOXC,EAAqB,KAMrBC,EAAkB,KA8EtBnkG,EAAqBjnB,UAAUqrH,iBAAmB,IAOlDpkG,EAAqBjnB,UAAUsrH,cAAgB,KAM/CrkG,EAAqBjnB,UAAUurH,uBAAwB,EAWvDtkG,EAAqBukG,yBAA2B,WAmB9C,OAlBKL,IAKHA,EAAqB,SAA4BM,EAAoBC,GAIjEN,EAHGK,GAAuBC,EAGRC,EAAsBF,EAAoBC,GAisB3D,CACL5hG,IAAK,EACL++E,OAAQ,EACRjzD,KAAM,EACNC,MAAO,EACPllC,MAAO,EACPmP,OAAQ,GApsBNorG,EAAS7tG,SAAQ,SAAUqU,GACzBA,EAASk6F,8BAKRT,GAOTlkG,EAAqB4kG,yBAA2B,WAC9CV,EAAqB,KACrBC,EAAkB,MASpBnkG,EAAqBjnB,UAAUsnB,QAAU,SAAU/P,GAKjD,IAJ8BhX,KAAKurH,oBAAoBx/E,MAAK,SAAUsE,GACpE,OAAOA,EAAK70B,SAAWxE,KAGzB,CAIA,IAAMA,GAA6B,GAAnBA,EAAO61E,SACrB,MAAM,IAAIjpF,MAAM,6BAGlB5D,KAAKwrH,oBAELxrH,KAAKurH,oBAAoBtoH,KAAK,CAC5BuY,QAASxE,EACT4P,MAAO,OAGT5mB,KAAKyrH,sBAAsBz0G,EAAOswF,eAElCtnG,KAAKqrH,2BAQP3kG,EAAqBjnB,UAAUisH,UAAY,SAAU10G,GACnDhX,KAAKurH,oBAAsBvrH,KAAKurH,oBAAoB9uG,QAAO,SAAU4zB,GACnE,OAAOA,EAAK70B,SAAWxE,KAGzBhX,KAAK2rH,wBAAwB30G,EAAOswF,eAEG,GAAnCtnG,KAAKurH,oBAAoB7qH,QAC3BV,KAAK4rH,uBAQTllG,EAAqBjnB,UAAUumG,WAAa,WAC1ChmG,KAAKurH,oBAAsB,GAE3BvrH,KAAK6rH,6BAEL7rH,KAAK4rH,uBAUPllG,EAAqBjnB,UAAUqsH,YAAc,WAC3C,IAAIC,EAAU/rH,KAAKgsH,eAAexoH,QAGlC,OADAxD,KAAKgsH,eAAiB,GACfD,GAaTrlG,EAAqBjnB,UAAUwsH,gBAAkB,SAAUC,GACzD,IAAIC,EAAYD,GAAiB,CAAC,GAElC,OADK3sH,MAAMoX,QAAQw1G,KAAYA,EAAY,CAACA,IACrCA,EAAU15E,OAAOh2B,QAAO,SAAUpc,EAAGE,EAAGwO,GAC7C,GAAgB,iBAAL1O,GAAiB8rC,MAAM9rC,IAAMA,EAAI,GAAKA,EAAI,EACnD,MAAM,IAAIuD,MAAM,0DAGlB,OAAOvD,IAAM0O,EAAExO,EAAI,OAgBvBmmB,EAAqBjnB,UAAU2sH,iBAAmB,SAAUC,GAC1D,IACIC,GADeD,GAAkB,OACV9/G,MAAM,OAAOd,KAAI,SAAUwlF,GACpD,IAAI57D,EAAQ,wBAAwB6J,KAAK+xD,GAEzC,IAAK57D,EACH,MAAM,IAAIzxB,MAAM,qDAGlB,MAAO,CACLlC,MAAO6mG,WAAWlzE,EAAM,IACxB/kB,KAAM+kB,EAAM,OAOhB,OAHAi3F,EAAQ,GAAKA,EAAQ,IAAMA,EAAQ,GACnCA,EAAQ,GAAKA,EAAQ,IAAMA,EAAQ,GACnCA,EAAQ,GAAKA,EAAQ,IAAMA,EAAQ,GAC5BA,GAUT5lG,EAAqBjnB,UAAUgsH,sBAAwB,SAAU93E,GAC/D,IAAI44E,EAAM54E,EAAI4zD,YAEd,GAAKglB,IAK0C,GAA3CvsH,KAAKwsH,qBAAqB1rH,QAAQ6yC,GAAtC,CAMA,IAAIxT,EAAWngC,KAAKqrH,uBAChBoB,EAAqB,KACrBC,EAAc,KAGd1sH,KAAK+qH,cACP0B,EAAqBF,EAAII,YAAYxsF,EAAUngC,KAAK+qH,gBAEpD6B,EAASL,EAAK,SAAUpsF,GAAU,GAClCysF,EAASj5E,EAAK,SAAUxT,GAAU,GAE9BngC,KAAKgrH,uBAAyB,qBAAsBuB,IACtDG,EAAc,IAAIH,EAAIM,iBAAiB1sF,IAC3BpZ,QAAQ4sB,EAAK,CACvBo5C,YAAY,EACZ+/B,WAAW,EACXC,eAAe,EACfC,SAAS,KAKfhtH,KAAKwsH,qBAAqBvpH,KAAK0wC,GAE/B3zC,KAAKitH,wBAAwBhqH,MAAK,WAGhC,IAAIspH,EAAM54E,EAAI4zD,YAEVglB,IACEE,GACFF,EAAIW,cAAcT,GAGpBU,EAAYZ,EAAK,SAAUpsF,GAAU,IAGvCgtF,EAAYx5E,EAAK,SAAUxT,GAAU,GAEjCusF,GACFA,EAAY1mB,gBAKhB,IAAIonB,EAAUptH,KAAKwlB,OAASxlB,KAAKwlB,KAAK8hF,eAAiBtnG,KAAKwlB,OAASrb,EAErE,GAAIwpC,GAAOy5E,EAAS,CAClB,IAAI3C,EAAQC,EAAgB/2E,GAExB82E,GACFzqH,KAAKyrH,sBAAsBhB,EAAMnjB,kBAWvC5gF,EAAqBjnB,UAAUksH,wBAA0B,SAAUh4E,GACjE,IAAIjgB,EAAQ1zB,KAAKwsH,qBAAqB1rH,QAAQ6yC,GAE9C,IAAc,GAAVjgB,EAAJ,CAIA,IAAI05F,EAAUptH,KAAKwlB,OAASxlB,KAAKwlB,KAAK8hF,eAAiBtnG,KAAKwlB,OAASrb,EAEjEkjH,EAAsBrtH,KAAKurH,oBAAoBx/E,MAAK,SAAUsE,GAChE,IAAIi9E,EAAUj9E,EAAK70B,QAAQ8rF,cAE3B,GAAIgmB,GAAW35E,EACb,OAAO,EAIT,KAAO25E,GAAWA,GAAWF,GAAS,CACpC,IAAI3C,EAAQC,EAAgB4C,GAG5B,IAFAA,EAAU7C,GAASA,EAAMnjB,gBAEV3zD,EACb,OAAO,EAIX,OAAO,KAGT,IAAI05E,EAAJ,CAKA,IAAIj/E,EAAcpuC,KAAKitH,wBAAwBv5F,GAQ/C,GANA1zB,KAAKwsH,qBAAqB74F,OAAOD,EAAO,GAExC1zB,KAAKitH,wBAAwBt5F,OAAOD,EAAO,GAE3C0a,IAEIuF,GAAOy5E,EAAS,CAClB,IAAI3C,EAAQC,EAAgB/2E,GAExB82E,GACFzqH,KAAK2rH,wBAAwBlB,EAAMnjB,mBAWzC5gF,EAAqBjnB,UAAUosH,2BAA6B,WAC1D,IAAI0B,EAAevtH,KAAKitH,wBAAwBzpH,MAAM,GAEtDxD,KAAKwsH,qBAAqB9rH,OAAS,EACnCV,KAAKitH,wBAAwBvsH,OAAS,EAEtC,IAAK,IAAIH,EAAI,EAAGA,EAAIgtH,EAAa7sH,OAAQH,IACvCgtH,EAAahtH,MAWjBmmB,EAAqBjnB,UAAU4rH,uBAAyB,WACtD,GAAKrrH,KAAKwlB,OAAQolG,GAAuBC,EAAzC,CAKA,IAAI2C,EAAcxtH,KAAKytH,eAEnBC,EAAWF,EAAcxtH,KAAK2tH,eAqY3B,CACLpkG,IAAK,EACL++E,OAAQ,EACRjzD,KAAM,EACNC,MAAO,EACPllC,MAAO,EACPmP,OAAQ,GAzYVvf,KAAKurH,oBAAoBzuG,SAAQ,SAAUuzB,GACzC,IAAIr5B,EAASq5B,EAAK70B,QACdoyG,EAAatkG,EAAsBtS,GAEnC62G,EAAqB7tH,KAAK8tH,oBAAoB92G,GAE9C+2G,EAAW19E,EAAKzpB,MAEhBukG,EAAmBqC,GAAeK,GAAsB7tH,KAAKguH,kCAAkCh3G,EAAQ42G,EAAYF,GAEnHO,EAAa,KAEZjuH,KAAK8tH,oBAAoB92G,GAElB4zG,IAAsB5qH,KAAKwlB,OACrCyoG,EAAaP,GAFbO,EAsXG,CACL1kG,IAAK,EACL++E,OAAQ,EACRjzD,KAAM,EACNC,MAAO,EACPllC,MAAO,EACPmP,OAAQ,GAvXR,IAAI2uG,EAAW79E,EAAKzpB,MAAQ,IAAI0jG,EAA0B,CACxDjoG,KAuPG2D,OAAO07E,aAAeA,YAAYzW,KAAOyW,YAAYzW,MAtPxDj0E,OAAQA,EACRk0G,mBAAoB0C,EACpBK,WAAYA,EACZ9C,iBAAkBA,IAGf4C,EAEMP,GAAeK,EAGpB7tH,KAAKmuH,qBAAqBJ,EAAUG,IACtCluH,KAAKgsH,eAAe/oH,KAAKirH,GAMvBH,GAAYA,EAASlnG,gBACvB7mB,KAAKgsH,eAAe/oH,KAAKirH,GAZ3BluH,KAAKgsH,eAAe/oH,KAAKirH,KAe1BluH,MAECA,KAAKgsH,eAAetrH,QACtBV,KAAKouH,UAAUpuH,KAAK8rH,cAAe9rH,QAkBvC0mB,EAAqBjnB,UAAUuuH,kCAAoC,SAAUh3G,EAAQ42G,EAAYF,GAE/F,GAA+C,QAA3C1nG,OAAOmhF,iBAAiBnwF,GAAQq3G,QAApC,CAKA,IAJA,IA0Q+BC,EAAOC,EAClChlG,EACA++E,EACAjzD,EACAC,EACAllC,EACAmP,EAhRA4rG,EAAmByC,EACnBp0E,EAASg1E,EAAcx3G,GACvBy3G,GAAS,GAELA,GAAUj1E,GAAQ,CACxB,IAAIk1E,EAAa,KACbC,EAAyC,GAAnBn1E,EAAOqzC,SAAgB7mE,OAAOmhF,iBAAiB3tD,GAAU,GAEnF,GAAmC,QAA/Bm1E,EAAoBN,QAAmB,OAAO,KAElD,GAAI70E,GAAUx5C,KAAKwlB,MAEnB,GAF2Bg0B,EAAOqzC,SAKhC,GAFA4hC,GAAS,EAELj1E,GAAUx5C,KAAKwlB,MAAQg0B,GAAUrvC,EAC/BygH,IAAuB5qH,KAAKwlB,MACzBqlG,GAA4C,GAAzBA,EAAgBz6G,OAAwC,GAA1By6G,EAAgBtrG,QAEpEi6B,EAAS,KACTk1E,EAAa,KACbvD,EAAmB,MAEnBuD,EAAa7D,EAGf6D,EAAahB,MAEV,CAEL,IAAIjD,EAAQ+D,EAAch1E,GACtBo1E,EAAYnE,GAASnhG,EAAsBmhG,GAE3CoE,EAAiBpE,GAASzqH,KAAKguH,kCAAkCvD,EAAOmE,EAAWlB,GAEnFkB,GAAaC,GACfr1E,EAASixE,EACTiE,EAAatD,EAAsBwD,EAAWC,KAE9Cr1E,EAAS,KACT2xE,EAAmB,UAGlB,CAKL,IAAIx3E,EAAM6F,EAAO8tD,cAEb9tD,GAAU7F,EAAIzxC,MAAQs3C,GAAU7F,EAAIs6C,iBAAmD,WAAhC0gC,EAAoB1iB,WAC7EyiB,EAAaplG,EAAsBkwB,IAUvC,GAJIk1E,IAiNyBJ,EAhNgBI,EAgNTH,EAhNqBpD,EAiNvD5hG,SACA++E,SACAjzD,SACAC,SACAllC,SACAmP,SALAgK,EAAM3Z,KAAK+5D,IAAI2kD,EAAM/kG,IAAKglG,EAAMhlG,KAChC++E,EAAS14F,KAAK61B,IAAI6oF,EAAMhmB,OAAQimB,EAAMjmB,QACtCjzD,EAAOzlC,KAAK+5D,IAAI2kD,EAAMj5E,KAAMk5E,EAAMl5E,MAClCC,EAAQ1lC,KAAK61B,IAAI6oF,EAAMh5E,MAAOi5E,EAAMj5E,OAEpC/1B,EAAS+oF,EAAS/+E,EAtNlB4hG,GAqNA/6G,EAAQklC,EAAQD,IAEJ,GAAK91B,GAAU,GAAK,CAClCgK,IAAKA,EACL++E,OAAQA,EACRjzD,KAAMA,EACNC,MAAOA,EACPllC,MAAOA,EACPmP,OAAQA,IACL,OA3NE4rG,EAAkB,MACvB3xE,EAASA,GAAUg1E,EAAch1E,GAGnC,OAAO2xE,IASTzkG,EAAqBjnB,UAAUkuH,aAAe,WAC5C,IAAID,EAEJ,GAAI1tH,KAAKwlB,OAASspG,EAAM9uH,KAAKwlB,MAC3BkoG,EAAWpkG,EAAsBtpB,KAAKwlB,UACjC,CAEL,IAAImuB,EAAMm7E,EAAM9uH,KAAKwlB,MAAQxlB,KAAKwlB,KAAOrb,EACrC4kH,EAAOp7E,EAAIs6C,gBACX/rF,EAAOyxC,EAAIzxC,KACfwrH,EAAW,CACTnkG,IAAK,EACL8rB,KAAM,EACNC,MAAOy5E,EAAK7gC,aAAehsF,EAAKgsF,YAChC99E,MAAO2+G,EAAK7gC,aAAehsF,EAAKgsF,YAChCoa,OAAQymB,EAAKhoB,cAAgB7kG,EAAK6kG,aAClCxnF,OAAQwvG,EAAKhoB,cAAgB7kG,EAAK6kG,cAItC,OAAO/mG,KAAKgvH,wBAAwBtB,IAUtChnG,EAAqBjnB,UAAUuvH,wBAA0B,SAAUC,GACjE,IAAI3C,EAAUtsH,KAAKkvH,kBAAkBzjH,KAAI,SAAUwlF,EAAQ1wF,GACzD,MAAsB,MAAf0wF,EAAO3gF,KAAe2gF,EAAOvvF,MAAQuvF,EAAOvvF,OAASnB,EAAI,EAAI0uH,EAAK7+G,MAAQ6+G,EAAK1vG,QAAU,OAG9F4vG,EAAU,CACZ5lG,IAAK0lG,EAAK1lG,IAAM+iG,EAAQ,GACxBh3E,MAAO25E,EAAK35E,MAAQg3E,EAAQ,GAC5BhkB,OAAQ2mB,EAAK3mB,OAASgkB,EAAQ,GAC9Bj3E,KAAM45E,EAAK55E,KAAOi3E,EAAQ,IAI5B,OAFA6C,EAAQ/+G,MAAQ++G,EAAQ75E,MAAQ65E,EAAQ95E,KACxC85E,EAAQ5vG,OAAS4vG,EAAQ7mB,OAAS6mB,EAAQ5lG,IACnC4lG,GAcTzoG,EAAqBjnB,UAAU0uH,qBAAuB,SAAUJ,EAAUG,GAGxE,IAAIkB,EAAWrB,GAAYA,EAASlnG,eAAiBknG,EAASxD,mBAAqB,GAAK,EACpF8E,EAAWnB,EAASrnG,eAAiBqnG,EAAS3D,mBAAqB,GAAK,EAE5E,GAAI6E,IAAaC,EAEjB,IAAK,IAAI9uH,EAAI,EAAGA,EAAIP,KAAKsvH,WAAW5uH,OAAQH,IAAK,CAC/C,IAAI4rH,EAAYnsH,KAAKsvH,WAAW/uH,GAGhC,GAAI4rH,GAAaiD,GAAYjD,GAAakD,GAAYlD,EAAYiD,IAAajD,EAAYkD,EACzF,OAAO,IAWb3oG,EAAqBjnB,UAAUguH,aAAe,WAC5C,OAAQztH,KAAKwlB,MAAQ+pG,EAAaplH,EAAUnK,KAAKwlB,OAUnDkB,EAAqBjnB,UAAUquH,oBAAsB,SAAU92G,GAC7D,IAAIo2G,EAAUptH,KAAKwlB,OAASxlB,KAAKwlB,KAAK8hF,eAAiBtnG,KAAKwlB,OAASrb,EACrE,OAAOolH,EAAanC,EAASp2G,MAAahX,KAAKwlB,MAAQ4nG,GAAWp2G,EAAOswF,gBAS3E5gF,EAAqBjnB,UAAU+rH,kBAAoB,WAC7Cb,EAAS7pH,QAAQd,MAAQ,GAC3B2qH,EAAS1nH,KAAKjD,OASlB0mB,EAAqBjnB,UAAUmsH,oBAAsB,WACnD,IAAIl4F,EAAQi3F,EAAS7pH,QAAQd,OACf,GAAV0zB,GAAai3F,EAASh3F,OAAOD,EAAO,IA4P1C1N,OAAOU,qBAAuBA,EAC9BV,OAAOskG,0BAA4BA,EAx9BnC,SAASI,EAAgB/2E,GACvB,IACE,OAAOA,EAAI4zD,aAAe5zD,EAAI4zD,YAAYC,cAAgB,KAC1D,MAAO3mG,GAEP,OAAO,MAgDX,SAASypH,EAA0B1jG,GACjC5mB,KAAKqiB,KAAOuE,EAAMvE,KAClBriB,KAAKgX,OAAS4P,EAAM5P,OACpBhX,KAAKiuH,WAAauB,EAAc5oG,EAAMqnG,YACtCjuH,KAAKkrH,mBAAqBsE,EAAc5oG,EAAMskG,oBAC9ClrH,KAAKmrH,iBAAmBqE,EAAc5oG,EAAMukG,kBAoyBrC,CACL5hG,IAAK,EACL++E,OAAQ,EACRjzD,KAAM,EACNC,MAAO,EACPllC,MAAO,EACPmP,OAAQ,IAzyBVvf,KAAK6mB,iBAAmBD,EAAMukG,iBAE9B,IAAIyC,EAAa5tH,KAAKkrH,mBAClBuE,EAAa7B,EAAWx9G,MAAQw9G,EAAWruG,OAC3C4rG,EAAmBnrH,KAAKmrH,iBACxBuE,EAAmBvE,EAAiB/6G,MAAQ+6G,EAAiB5rG,OAK/Dvf,KAAKuqH,kBAHHkF,EAGuBtzF,QAAQuzF,EAAmBD,GAAYE,QAAQ,IAG/C3vH,KAAK6mB,eAAiB,EAAI,EAcvD,SAASH,EAAqByZ,EAAUyvF,GACtC,IA0pBgB7hF,EAAIymB,EAChBq7D,EA3pBAp/G,EAAUm/G,GAAe,GAE7B,GAAuB,mBAAZzvF,EACT,MAAM,IAAIv8B,MAAM,+BAGlB,GAAI6M,EAAQ+U,MAAiC,GAAzB/U,EAAQ+U,KAAKqnE,UAA0C,GAAzBp8E,EAAQ+U,KAAKqnE,SAC7D,MAAM,IAAIjpF,MAAM,sCAIlB5D,KAAKqrH,wBA+oBWt9E,EA/oBuB/tC,KAAKqrH,uBAAuBt0G,KAAK/W,MA+oBpDw0D,EA/oB2Dx0D,KAAK8qH,iBAgpBhF+E,EAAQ,KACL,WACAA,IACHA,EAAQpmG,YAAW,WACjBskB,IACA8hF,EAAQ,OACPr7D,MAppBPx0D,KAAKouH,UAAYjuF,EACjBngC,KAAKurH,oBAAsB,GAC3BvrH,KAAKgsH,eAAiB,GACtBhsH,KAAKkvH,kBAAoBlvH,KAAKosH,iBAAiB37G,EAAQq/G,YAEvD9vH,KAAKsvH,WAAatvH,KAAKisH,gBAAgBx7G,EAAQ07G,WAC/CnsH,KAAKwlB,KAAO/U,EAAQ+U,MAAQ,KAC5BxlB,KAAK8vH,WAAa9vH,KAAKkvH,kBAAkBzjH,KAAI,SAAUwlF,GACrD,OAAOA,EAAOvvF,MAAQuvF,EAAO3gF,QAC5B5E,KAAK,KAGR1L,KAAKwsH,qBAAuB,GAG5BxsH,KAAKitH,wBAA0B,GAmpBjC,SAASL,EAASjxG,EAAMsV,EAAO8c,EAAIgiF,GACG,mBAAzBp0G,EAAK8xE,iBACd9xE,EAAK8xE,iBAAiBx8D,EAAO8c,EAAIgiF,IAAkB,GACf,mBAApBp0G,EAAKq0G,aACrBr0G,EAAKq0G,YAAY,KAAO/+F,EAAO8c,GAanC,SAASo/E,EAAYxxG,EAAMsV,EAAO8c,EAAIgiF,GACG,mBAA5Bp0G,EAAKqyE,oBACdryE,EAAKqyE,oBAAoB/8D,EAAO8c,EAAIgiF,IAAkB,GACjB,mBAArBp0G,EAAKs0G,cACrBt0G,EAAKs0G,aAAa,KAAOh/F,EAAO8c,GAmCpC,SAASzkB,EAAsBtJ,GAC7B,IAAIivG,EAEJ,IACEA,EAAOjvG,EAAGsJ,wBACV,MAAO7O,IAIT,OAAKw0G,GAECA,EAAK7+G,OAAS6+G,EAAK1vG,SACvB0vG,EAAO,CACL1lG,IAAK0lG,EAAK1lG,IACV+rB,MAAO25E,EAAK35E,MACZgzD,OAAQ2mB,EAAK3mB,OACbjzD,KAAM45E,EAAK55E,KACXjlC,MAAO6+G,EAAK35E,MAAQ25E,EAAK55E,KACzB91B,OAAQ0vG,EAAK3mB,OAAS2mB,EAAK1lG,MAIxB0lG,GAUA,CACL1lG,IAAK,EACL++E,OAAQ,EACRjzD,KAAM,EACNC,MAAO,EACPllC,MAAO,EACPmP,OAAQ,GAYZ,SAASiwG,EAAcP,GAErB,OAAKA,GAAQ,MAAOA,EACXA,EAOF,CACL1lG,IAAK0lG,EAAK1lG,IACVnnB,EAAG6sH,EAAK1lG,IACR++E,OAAQ2mB,EAAK3mB,OACbjzD,KAAM45E,EAAK55E,KACXvhC,EAAGm7G,EAAK55E,KACRC,MAAO25E,EAAK35E,MACZllC,MAAO6+G,EAAK7+G,MACZmP,OAAQ0vG,EAAK1vG,QAYjB,SAAS6rG,EAAsB8E,EAAoBC,GACjD,IAAI5mG,EAAM4mG,EAAuB5mG,IAAM2mG,EAAmB3mG,IACtD8rB,EAAO86E,EAAuB96E,KAAO66E,EAAmB76E,KAC5D,MAAO,CACL9rB,IAAKA,EACL8rB,KAAMA,EACN91B,OAAQ4wG,EAAuB5wG,OAC/BnP,MAAO+/G,EAAuB//G,MAC9Bk4F,OAAQ/+E,EAAM4mG,EAAuB5wG,OACrC+1B,MAAOD,EAAO86E,EAAuB//G,OAYzC,SAASm/G,EAAa/1E,EAAQsV,GAG5B,IAFA,IAAInzC,EAAOmzC,EAEJnzC,GAAM,CACX,GAAIA,GAAQ69B,EAAQ,OAAO,EAC3B79B,EAAO6yG,EAAc7yG,GAGvB,OAAO,EAUT,SAAS6yG,EAAc7yG,GACrB,IAAI69B,EAAS79B,EAAKy0G,WAElB,OAEA,GAFIz0G,EAAKkxE,UAEJlxE,GAAQxR,EAEJugH,EAAgB/uG,IAIrB69B,GAAUA,EAAO62E,eACnB72E,EAASA,EAAO62E,aAAaD,YAG3B52E,GAA6B,IAAnBA,EAAOqzC,UAAkBrzC,EAAOs9C,KAErCt9C,EAAOs9C,KAGTt9C,GAST,SAASs1E,EAAMnzG,GACb,OAAOA,GAA0B,IAAlBA,EAAKkxE,UAh/BxB,I,iCCNAztF,OAAO8d,eAAerG,EAAS,aAAc,CAC3CnV,OAAO,IAETmV,EAAQy5G,QAER,SAAwB32B,GACtB,OAAOA,EAAUxJ,aAAewJ,EAAUj/E,OAA8B,kBAAdi/E,GAA0BA,EAAUj5F,OAAS,EAAIi5F,EAAY,a,oBCRzH,IAAI42B,EAAe,EAAQ,KA4B3B35G,EAAOC,QAJP,SAAkBnV,GAChB,OAAgB,MAATA,EAAgB,GAAK6uH,EAAa7uH,K,oBCzB3C,IAAIqvF,EAAa,EAAQ,KACrBmuB,EAAe,EAAQ,KA2B3BtoG,EAAOC,QAJP,SAAkBnV,GAChB,MAAuB,iBAATA,GAAqBw9G,EAAax9G,IApBlC,mBAoB4CqvF,EAAWrvF,K,oBCzBvE,IAAI8uH,EAAiB,EAAQ,KACzBC,EAAkB,EAAQ,KAC1BC,EAAe,EAAQ,KACvBC,EAAe,EAAQ,KACvBC,EAAe,EAAQ,KAU3B,SAASC,EAAUlqG,GACjB,IAAI+M,GAAS,EACThzB,EAAoB,MAAXimB,EAAkB,EAAIA,EAAQjmB,OAG3C,IAFAV,KAAKo1D,UAEI1hC,EAAQhzB,GAAQ,CACvB,IAAIkmB,EAAQD,EAAQ+M,GACpB1zB,KAAK+pB,IAAInD,EAAM,GAAIA,EAAM,KAK7BiqG,EAAUpxH,UAAU21D,MAAQo7D,EAC5BK,EAAUpxH,UAAkB,OAAIgxH,EAChCI,EAAUpxH,UAAU+J,IAAMknH,EAC1BG,EAAUpxH,UAAU+nD,IAAMmpE,EAC1BE,EAAUpxH,UAAUsqB,IAAM6mG,EAC1Bh6G,EAAOC,QAAUg6G,G,oBC/BjB,IAAIC,EAAK,EAAQ,KAuBjBl6G,EAAOC,QAZP,SAAsBiE,EAAOvP,GAG3B,IAFA,IAAI7K,EAASoa,EAAMpa,OAEZA,KACL,GAAIowH,EAAGh2G,EAAMpa,GAAQ,GAAI6K,GACvB,OAAO7K,EAIX,OAAQ,I,oBCpBV,IAIIqwH,EAJY,EAAQ,IAILC,CAAU5xH,OAAQ,UACrCwX,EAAOC,QAAUk6G,G,oBCLjB,IAAIE,EAAY,EAAQ,KAgBxBr6G,EAAOC,QALP,SAAoBpL,EAAKF,GACvB,IAAI0V,EAAOxV,EAAIylH,SACf,OAAOD,EAAU1lH,GAAO0V,EAAmB,iBAAP1V,EAAkB,SAAW,QAAU0V,EAAKxV,M,oBCblF,IAAI0lH,EAAgB,EAAQ,KACxBC,EAAY,EAAQ,KACpBC,EAAgB,EAAQ,KAgB5Bz6G,EAAOC,QAJP,SAAqBiE,EAAOpZ,EAAO+gH,GACjC,OAAO/gH,IAAUA,EAAQ2vH,EAAcv2G,EAAOpZ,EAAO+gH,GAAa0O,EAAcr2G,EAAOs2G,EAAW3O,K,iCCdpG,qDA+Ge6O,UAtFG,IAKS,IALR,cACjB9oG,EADiB,UAEjBpc,EAFiB,iBAGjBgc,EAHiB,QAIjBE,EAAUL,uBAAqBM,SACP,GAClB,EAAEloB,GAAMqkB,YAAetY,GAE7B,OACE,yBACE8d,GAAG,mBACHvL,UAAS,qDAET,yBACEA,UAAS,2BACP2J,IAAYL,uBAAqBoC,SAC7B,6BACA,KAGL7B,EAAc4B,UACb,yBAAKzL,UAAU,6BACb,yBAAKA,UAAU,oCACb,kBAAC,UAAD,CACEsG,IAAI,GACJC,KAAMsD,EAActD,KACpBC,MAAO,CACL/U,MAAO,GACPmP,OAAQ,GACR6F,WAAY,qBAIlB,6BACE,yBAAKzG,UAAU,sBACb,uBACEA,UAAU,kBAEVimF,wBAAyB,CACvBC,OAAQxkG,EAAE,iDAAD,OAEL+nB,EAAmB,oBAAsB,IAE3C,CACElN,OAAQsN,EAActN,OACtBq2G,oBAAqBlxH,EAAE,iBAAD,OACHmoB,EAAcjd,IADX,mCAWhB,cAAtBid,EAAcjd,IACZ,yBAAKoT,UAAU,sBACb,uBAAGA,UAAU,mBACVte,EACuB,UAAtBmoB,EAAcjd,IAAd,iDAEM6c,EAAmB,oBAAsB,IAF/C,mDAKMA,EAAmB,oBAAsB,OAMrD,uBACEzJ,UAAU,kBAEVimF,wBAAyB,CACvBC,OAAQxkG,EAAE,+CAAgD,CACxD8oB,KAAM,8F,gCCpGtB,wNA+CMqoG,EAAsB7tH,IAC1B,OAAQA,GACN,IAAK,KACH,MAAO,KAET,IAAK,KACH,MAAO,KAET,IAAK,QACL,IAAK,QACH,MAAO,QAET,IAAK,KACH,MAAO,KAET,IAAK,QACL,IAAK,QACH,MAAO,QAET,IAAK,KACH,MAAO,KAET,IAAK,QACL,IAAK,QACH,MAAO,QAET,IAAK,QACL,IAAK,QACH,MAAO,QAET,QAEE,OADA6H,IAAA,4CAA6D7H,IACtD,OAKP8tH,EAAiB,CAACC,EAAwB/tH,KAC9C,GAAuB,IAAnB+tH,EAAQhxH,OAEV,OADA8K,IAAwB,2CACjB,SAQT,OADiBgmH,EAAmB7tH,IAElC,IAAK,KACL,IAAK,KACL,IAAK,QACL,IAAK,KACL,IAAK,QACL,IAAK,KACL,IAAK,QACL,IAAK,QACH,OAAI+tH,EAAQhxH,OAAS,EACZ,SAEFgxH,EAAQ,GACjB,QAEE,OADAlmH,IAAA,mBAAoC7H,EAApC,uBACO+tH,EAAQ,KAKfC,EAAuBzJ,IAC3B,IAAM,IAAErnF,EAAF,IAAOl9B,GAAQukH,EACf0J,OAAqCjvG,IAAvBulG,EAAO0J,aAAoC1J,EAAO0J,YAChE78F,EAAWpxB,EAAM6tH,EAAmB7tH,GAAO,KACjD,GAAmB,IAAfk9B,EAAIngC,OAEN,OADA8K,IAAwB,uCACjB,GAET,GAAmB,IAAfq1B,EAAIngC,OACN,OAAOmgC,EAAI,GACN,GAAmB,IAAfA,EAAIngC,OACb,OAAQq0B,GACN,IAAK,KACH,OAAO8L,EAAIn1B,KAAK,SAClB,IAAK,KACL,IAAK,QACH,OAAOm1B,EAAIn1B,KAAK,QAClB,IAAK,KACL,IAAK,QACH,OAAOm1B,EAAIn1B,KAAK,OAClB,IAAK,KACH,OAAOm1B,EAAIn1B,KAAK,QAClB,IAAK,QACH,OAAOm1B,EAAIn1B,KAAK,SAClB,IAAK,QACH,OAAOm1B,EAAIn1B,KAAK,OAClB,QAEE,OADAF,IAAA,mBAAoCupB,EAApC,uBACO8L,EAAIn1B,KAAK,aAGf,CACL,IAAMmmH,EAAWhxF,EAAIA,EAAIngC,OAAS,GAC5BoxH,EAAiBjxF,EAAIr9B,MAAM,GAAI,GACrC,OAAQuxB,GACN,IAAK,KAEH,MAAM,GAAN,OAAU+8F,EAAepmH,KAAK,OAA9B,OAAsCkmH,EAAc,IAAM,GAA1D,gBAAoEC,GACtE,IAAK,KACL,IAAK,QAEH,MAAM,GAAN,OAAUC,EAAepmH,KAAK,OAA9B,OAAsCkmH,EAAc,IAAM,GAA1D,eAAmEC,GACrE,IAAK,KACL,IAAK,QAEH,MAAM,GAAN,OAAUC,EAAepmH,KAAK,OAA9B,OAAsCkmH,EAAc,IAAM,GAA1D,cAAkEC,GACpE,IAAK,KAEH,MAAM,GAAN,OAAUC,EAAepmH,KAAK,OAA9B,OAAsCkmH,EAAc,IAAM,GAA1D,eAAmEC,GACrE,IAAK,QAEH,MAAM,GAAN,OAAUC,EAAepmH,KAAK,OAA9B,OAAsCkmH,EAAc,IAAM,GAA1D,gBAAoEC,GACtE,QAGE,OAFArmH,IAAA,mBAAoCupB,EAApC,uBAEM,GAAN,OAAU+8F,EAAepmH,KAAK,OAA9B,OAAsCkmH,EAAc,IAAM,GAA1D,gBAAoEC,MAMtEE,EAAa,SAACzxH,GAA6C,IAAlCqD,EAAiC,uDAAjB,KACvCoxB,EAAWy8F,EAAmB7tH,GACpC,GAAiB,IAAbrD,EAAEI,OAEJ,OADA8K,IAAwB,wCACjB,GAET,OAAQupB,GACN,IAAK,KAEH,IAAMqD,EAAS93B,EAAE0xH,SAAS,KAAX,SACf,MAAM,GAAN,OAAU1xH,GAAV,OAAc83B,GAEhB,IAAK,KACL,IAAK,QACL,IAAK,KACL,IAAK,QACH,IAAK,IAAM73B,IAAK,QAId,GAAID,EAAE0xH,SAASzxH,GAEb,MAAM,GAAN,OAAUD,EAAV,MAGJ,OAAIA,EAAE0xH,SAAS,KACP,GAAN,OAAU1xH,EAAV,KAGI,GAAN,OAAUA,EAAV,KACF,IAAK,QAEH,MAAI,uBAAoB+iB,KAAK/iB,GAErB,GAAN,OAAUA,EAAV,MAKI,GAAN,OAAUA,EAAV,KACF,IAAK,KACL,IAAK,QAEH,MAAM,GAAN,OAAUA,GACZ,QAEE,OADAkL,IAAA,mBAAoC7H,EAApC,uBACM,GAAN,OAAUrD,KAIV2xH,EAAoB,SAACP,GAA0E,IAAlD38F,EAAiD,uDAA5B,KAOtE,GAAuB,IAAnB28F,EAAQhxH,OAAgB,MAAM,IAAIkD,MAAM,8CAC5C,GAAI8tH,EAAQhxH,OAAS,EACnB,OAAQq0B,GACN,IAAK,KACL,IAAK,QACH,MAAO,MAET,IAAK,KACL,IAAK,QACH,MAAO,MAET,IAAK,KACH,MAAO,OAET,IAAK,QACH,MAAO,OAET,IAAK,QACH,MAAO,SAET,QACE,MAAO,QAIb,OAAQ28F,EAAQ,IACd,IAAK,OACH,OAAQ38F,GACN,IAAK,KACL,IAAK,QACH,MAAO,OAET,IAAK,KACL,IAAK,QACH,MAAO,OAET,IAAK,KACH,MAAO,MAET,IAAK,QACH,MAAO,QAET,IAAK,QACH,MAAO,OAET,QACE,MAAO,MAIb,IAAK,SACH,OAAQA,GACN,IAAK,KACL,IAAK,QACH,MAAO,OAET,IAAK,KACL,IAAK,QACH,MAAO,MAET,IAAK,KACH,MAAO,KAET,IAAK,QACH,MAAO,OAET,IAAK,QACH,MAAO,UAET,QACE,MAAO,MAIb,QAEE,MADC28F,EAAQ,GACH,IAAI9tH,MAAJ,gDAAmD8tH,EAAQ,OAKjEQ,EAAyBtmF,GACT,IAAhBA,EAAKlrC,QACP8K,IAAwB,mDACjB,IAEH,GAAN,OAAUogC,EAAK,GAAG//B,eAAlB,OAAkC+/B,EAAKpoC,MAAM,K,kBC7S/CoT,EAAOC,QAJP,SAAkBnV,GAChB,OAAOA,I,iCCfTmV,EAAQ2V,YAAa,EACrB3V,EAAiB,QAAI,CACnBs7G,SAAU,CACRljC,UAAW,IACXC,QAAS,IAGXkjC,OAAQ,CACNnjC,UAAW,IACXC,QAAS,IAEXmjC,OAAQ,CACNpjC,UAAW,IACXC,QAAS,IAEXojC,MAAO,CACLrjC,UAAW,IACXC,QAAS,KAGbt4E,EAAOC,QAAUA,EAAiB,S,mJChBnB,SAAS07G,EAAcC,GACpC,IAAIzkF,EAAKykF,EAAY/yH,UAAUgzH,OACjB,oBAAP1kF,GCRM,SAAmBo1C,EAAWr2D,GAG3C,IAFuBogB,QAAQi2C,GAG7B,MAAM,IAAIv/E,MAAiB,MAAXkpB,EAAkBA,EAAU,mCDIlBo2D,CAAU,GACtCsvC,EAAY/yH,UAAUwlC,QAAU8I,EAE5B1H,EAAA,IACFmsF,EAAY/yH,UAAU4mC,EAAA,GAA6B0H,GENhD,IAAI2kF,EAAwB,WAoBjC,SAASA,EAASC,EAAYC,EAAU37G,GACtCjX,KAAKiiD,MAAQ0wE,EAAW1wE,MACxBjiD,KAAKmiD,IAAMywE,EAASzwE,IACpBniD,KAAK2yH,WAAaA,EAClB3yH,KAAK4yH,SAAWA,EAChB5yH,KAAKiX,OAASA,EAYhB,OATay7G,EAASjzH,UAEfgzH,OAAS,WACd,MAAO,CACLxwE,MAAOjiD,KAAKiiD,MACZE,IAAKniD,KAAKmiD,MAIPuwE,EArC0B,GAwCnCH,EAAcG,GAMP,IAAIG,EAAqB,WA8B9B,SAASA,EAAMrnG,EAAMy2B,EAAOE,EAAKjE,EAAMwyC,EAAQv2C,EAAMz4C,GACnD1B,KAAKwrB,KAAOA,EACZxrB,KAAKiiD,MAAQA,EACbjiD,KAAKmiD,IAAMA,EACXniD,KAAKk+C,KAAOA,EACZl+C,KAAK0wF,OAASA,EACd1wF,KAAK0B,MAAQA,EACb1B,KAAKm6C,KAAOA,EACZn6C,KAAK4B,KAAO,KAcd,OAXcixH,EAAMpzH,UAEZgzH,OAAS,WACf,MAAO,CACLjnG,KAAMxrB,KAAKwrB,KACX9pB,MAAO1B,KAAK0B,MACZw8C,KAAMl+C,KAAKk+C,KACXwyC,OAAQ1wF,KAAK0wF,SAIVmiC,EApDuB,GA4DzB,SAASC,EAAOC,GACrB,OAAoB,MAAbA,GAA+C,kBAAnBA,EAAUvnG,KAN/C+mG,EAAcM,I,oBC3Gdj8G,EAAOC,QAAU,IAA0B,oC,gCCA5B,SAAS4nF,EAAoBtnF,GAC1C,OAAO,SAAUiE,GACf,IAAI3K,EAAUhQ,UAAUC,OAAS,QAAsBiiB,IAAjBliB,UAAU,GAAmBA,UAAU,GAAK,GAC9EsiB,EAAc3H,EAAOpF,MAAMmB,EAAKyL,cACpC,IAAKG,EAAa,OAAO,KACzB,IAAIC,EAAgBD,EAAY,GAC5BiwG,EAAc53G,EAAOpF,MAAMmB,EAAKunF,cACpC,IAAKs0B,EAAa,OAAO,KACzB,IAAItxH,EAAQyV,EAAKoM,cAAgBpM,EAAKoM,cAAcyvG,EAAY,IAAMA,EAAY,GAClFtxH,EAAQ+O,EAAQ8S,cAAgB9S,EAAQ8S,cAAc7hB,GAASA,EAC/D,IAAI8hB,EAAOpI,EAAO5X,MAAMwf,EAActiB,QACtC,MAAO,CACLgB,MAAOA,EACP8hB,KAAMA,IAbZ,mC,gCCGA,qYAgCMyvG,EAAgCtO,IACpC,OAAQA,GACN,IAAK,KAGL,IAAK,KACH,MAAO,MAET,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,MAAO,MAET,IAAK,KACH,MAAO,MAET,IAAK,KACH,MAAO,MAET,QAEE,MADAx7G,YAAYw7G,GACN,IAAI/gH,MAAJ,gGACqF+gH,MAM3FE,EACJF,IAEA,OAAQA,GACN,IAAK,KAGL,IAAK,KACH,MAAO,OAET,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,MAAO,SAET,IAAK,KACH,MAAO,UAET,IAAK,KACH,MAAO,UAET,QAEE,MADAx7G,YAAYw7G,GACN,IAAI/gH,MAAJ,sGAC2F+gH,MAMjGuO,EAAsB,CAC1BvO,EACA5vF,KAGA,OAD8By8F,YAAmBz8F,IAE/C,IAAK,QACH,MAAO,QACT,IAAK,QACH,MAAO,QACT,IAAK,QACH,MAAO,QACT,IAAK,QACH,MAAO,QACT,QACE,MAAM,GAAN,OAAUA,EAAV,YAAsB4vF,KAItB/6E,EAA8B,CAClCtlB,EACAyQ,KAEA,IAAMo+F,EAAkBF,EAA6B3uG,GAC/C8uG,EACJvO,EAAmCvgG,GAE/BqgG,EAAcrgG,EAEpB,IAAKyQ,EACH,MAAM,IAAInxB,MAAJ,yFAC8EmxB,IAKtF,MAAO,CACL4U,SAAUwpF,EACVE,eAAgBD,EAChBrqH,OALamqH,EAAoBvO,EAAa5vF,KA2B5Cu+F,EAAqB,CACzBhvG,EACAyQ,KAEA,IACMhsB,EAvB0B,EAChCub,EACAyQ,KAEA,OAAQA,GACN,IAAK,QACH,MAAO,QACT,IAAK,QACH,MAAO,QACT,IAAK,QACH,MAAO,QACT,IAAK,QACH,MAAO,QACT,QACE,MAAM,GAAN,OAAUA,EAAV,YAAsBzQ,KASXivG,CACbjvG,EAF4BktG,YAAmBz8F,IAKjD,OAAQhsB,GAuBN,QACE,OAAOC,IAlBT,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACH,OAAOnB,IACT,IAAK,QACH,OAAOoB,IACT,IAAK,QACH,OAAOhB,IACT,IAAK,KACL,IAAK,QACH,OAAOK,IACT,IAAK,KACL,IAAK,QACH,OAAOY,IACT,IAAK,QACH,OAAOsqH,MAMPzuB,EAA2B4f,IAC/B,OAAQA,GAeN,QACE,MAAO,qBAXT,IAAK,KACH,MAAO,qBACT,IAAK,KACH,MAAO,qBACT,IAAK,KACH,MAAO,qBACT,IAAK,KACH,MAAO,qBACT,IAAK,KACH,MAAO,uBAMP8O,EAAgC9O,IACpC,OAAQA,GACN,IAAK,KACH,MAAO,6CAET,IAAK,KACH,MAAO,6CAET,IAAK,KACL,IAAK,KACH,MAAO,sCAET,IAAK,KACH,MAAO,6CAET,IAAK,KACL,IAAK,KACL,IAAK,KACH,MAAO,yCAET,QACE,MAAM,IAAI/gH,MAAJ,8DACmD+gH,MAMzD+O,EAA+B/O,IACnC,OAAQA,GACN,IAAK,KACH,MAAO,4CAET,IAAK,KACH,MAAO,4CAET,IAAK,KACH,MAAO,4CAET,IAAK,KACL,IAAK,KACH,MAAO,qCAET,IAAK,KACH,MAAO,yDAET,IAAK,KACL,IAAK,KACH,MAAO,yCAET,QACE,MAAM,IAAI/gH,MAAJ,6DACkD+gH,MAMxDgP,EAA6BhP,IACjC,OAAQA,GACN,IAAK,KACL,IAAK,KACH,MAAO,mCAET,QACE,MAAO,0C,gCCvRb,6CACO,SAASlwB,EAAem/B,GAC7B,IAAIlyH,EAAQkyH,IACR5uC,EAAW,mBAAStjF,GAAO,GAU/B,OATA,qBAAU,WACR,IAAImyH,EAAoBD,IAExB,GAAIlyH,IAAUmyH,EAGZ,OAAOD,EAAGE,aAAa9uC,GAFvBA,EAAS6uC,KAIV,CAACnyH,IACGA,I,gCCET,oEACA,IAGMqyH,EAA2B,CAC/BpqF,SAJiC,MAKjC5gC,OAJ6B,SAazBirH,EAA4B,SAChCxzH,GAEY,IADZ,OAAEuI,EAAF,SAAU4gC,GACC,uDADqBoqF,EAEhC,OAAQvzH,EAAI,KAAKyzH,eACflrH,EACA,CACEiW,MAAO,WACP2qB,WACAuqF,sBAAuB,KAWvBpqF,EAA+B,SACnCtpC,GAEY,IADZ,OAAEuI,EAAF,SAAU4gC,GACC,uDADqBoqF,EAEhC,OAAQvzH,EAAI,KAAKyzH,eACflrH,EACA,CACEiW,MAAO,WACP2qB,WACAwqF,sBAAuB,EACvBD,sBAAuB,M,iFC3D7B,uLAiCME,EAAgBjqH,SAASuvE,cAAc,qBACxC06C,GACH5oH,IAAwB,mCAAoC,CAC1DyhB,KAAM,CACJuZ,QAASh7B,IAAe6oH,YAI9B,IAAM,QAAEC,GAAYF,GACd,SACJr/F,EADI,iBAEJw/F,EAFI,cAGJlwG,EAHI,uBAIJmwG,EAJI,oBAKJlwG,EALI,sBAMJmwG,EANI,mBAOJC,GACEJ,EAEErwG,EAAqB8Q,GAAyB,KA4E9C4/F,EAAqB,CAACC,EAA0BC,KACpD,IAAMC,EAAoB3qH,SAAS4qH,uBAAuBH,GAEpDI,EAAwB,IAAIF,GAElC,IAAKA,EAAmB,OAAO,KAE/BE,EAAsBl4G,SAAStB,IAC7Bu+E,IAAStK,OACP,kBAAC,UAAD,CAAgBrjF,UAAU,YAAY4Y,KAAM6vG,IAC5Cr5G,OA2FAy5G,EAAqB,IAQpB,IARqB,UAC1BC,EAD0B,UAE1BhuG,EAF0B,WAG1BC,GAKI,EACE3L,EAAUrR,SAASkuF,eAAe68B,GAGxC,IAAK15G,EAAS,OAAO,KAErB,IAAI25G,GAAa,EAEXhkG,EAAW,IAAIzK,sBAAqB,IAAc,IAAZE,GAAW,EACjDA,EAAMC,iBAAmBsuG,IAC3BjsG,kBAAahC,EAAWC,GACxBguG,GAAa,EACbhkG,EAAS60E,iBAIb,OAAO70E,EAASpK,QAAQvL,IAG1BrR,SAASsjF,iBAAiB,oBAAoB,KAzM5C5jF,kBAASoa,GA4MT0wG,EACE,mBAC0B,SAA1BF,EACI,wBACA,sBAENE,EACE,0BAC0B,SAA1BF,EACI,wBACA,6BAENE,EACE,mCACA,sCAlI4B,MAC9B,IAAMS,EAA6BjrH,SAASkuF,eAC1C,yBAIF,IAAK+8B,EAA4B,OAAO,KAExCr7B,IAAStK,OACP,kBAAC,UAAD,CACExrE,kBAAmBA,EACnBE,iBAAiB,WACjBE,cAAeA,EACfD,cAAe+F,SAASqqG,GAA0B,KAAO,EACzDlwG,oBAAqBA,EACrBC,WAAS,IAEX6wG,IAmHFC,GACAxvG,cACAyvG,kBAAgB,CACdC,YAAY,EACZC,eAAe,EACfC,oBAAqB,qBAEvBrvG,cAhOwB,MACxB,IAAMsvG,EACJvrH,SAAS4qH,uBAAuB,kBAAkB,GAEpD,GAAKW,EAAL,CAEA,IAAMrtG,EACiB,SAArBksG,EAA8B,cAAgB,iBAE1CoB,EAAyB,KAC7B,IAAM,YAAEnxG,GAAgBC,cAExB,OACE,kBAAC,UAAD,CACE2D,iBAAuC,SAArBmsG,EAClBlsG,eAAgBA,EAChBC,QAASL,uBAAqBoC,SAC9BlC,gBACE3D,GAAeI,cAAYC,IAAK,CAAEwE,UAAW,IAE/ClF,iBAAiB,cAKvB41E,IAAStK,OAAO,kBAACkmC,EAAD,MAA4BD,KAwM5CE,GACAr9B,8BAtMmB,MACnB,IAAMs9B,EAAkB1rH,SAASkuF,eAAe,aAChD,GAAKw9B,EAAL,CAEA,IAAM1qF,EAAmB0qF,EAAgBvB,QACtCnpF,kBACG,wBAAE2qF,GAA4BD,EAAgBvB,QASpD,GACuB,uBAArBnpF,GACA2qF,GAC4B,aAA5BA,EACA,CAEA,IAAMC,EAA4B,IAE9B,kBAAC,UAAD,CACE5sF,qBAAsB0sF,EAAgBvB,UAK5Cv6B,IAAStK,OAAO,kBAACsmC,EAAD,MAA+BF,OAC1C,CAGL,GAzBiD,CACjD,qBACA,0BAuB2Bx6E,OAAOvG,GAASA,IAAS3J,IAClD,OACF,IAAM6qF,EAAoB,IACjB,kBAAC,UAAD,CAAU/qF,aAAc4qF,EAAgBvB,UAEjDv6B,IAAStK,OAAO,kBAACumC,EAAD,MAAuBH,MAiKzCI,GAzHyBf,KACzB,IAAM15G,EAAUrR,SAASkuF,eAAe68B,GACxC,GAAK15G,EAAL,CAEA,IAAI06G,EAAM,CAAE3sG,IAAK,EAAG8rB,KAAM,EAAGvhC,EAAG,EAAG1R,EAAG,GAEhC+zH,EAAmB,SAAUt1H,GACjC2a,EAAQkuF,WAAawsB,EAAI7gF,MAAQx0C,EAAEu1H,QAAUF,EAAIpiH,IAG7CuiH,EAAiB,KACrBlsH,SAAS6jF,oBAAoB,YAAamoC,GAC1ChsH,SAAS6jF,oBAAoB,UAAWqoC,GAExC76G,EAAQwD,MAAMs3G,OAAS,OACvB96G,EAAQwD,MAAMu3G,eAAe,gBAkB/B/6G,EAAQiyE,iBAAiB,aAfC5sF,IACxB2a,EAAQwD,MAAMs3G,OAAS,WACvB96G,EAAQwD,MAAMw3G,WAAa,OAE3BN,EAAM,CACJ7gF,KAAM75B,EAAQkuF,WACdngF,IAAK/N,EAAQouF,UACb91F,EAAGjT,EAAEu1H,QACLh0H,EAAGvB,EAAE41H,SAGPtsH,SAASsjF,iBAAiB,YAAa0oC,GACvChsH,SAASsjF,iBAAiB,UAAW4oC,QA4FvCK,CAAkB,uBACS,SAAvBhC,GAvFgB,MACpB,IAAMiC,EAAYxsH,SAASkuF,eAAe,sBAE1C,GAAKs+B,EAAL,CAIA,IAYMxlG,EAAW,IAAIzK,sBAZG,CACtBC,EACAwK,KAEAxK,EAAQ7J,SAAS8J,IACXA,EAAMC,iBACR8vG,EAAUztF,UAAUe,IAAI,iBACxB9Y,EAASu6F,UAAU9kG,EAAM5P,eAMzB4/G,EAAmBzsH,SAAS4qH,uBAChC,uBACA,GAEF,IAAK6B,EACH,MAAM,IAAIhzH,MAAM,iDAClButB,EAASpK,QAAQ6vG,KA8DfC,GAGF5B,EAAmB,CACjBC,UAAW,gBACXhuG,UAAW,kCACXC,WAAY,CACVwK,KAAM3L,OAAO1L,SAASgN,YAG1B2tG,EAAmB,CACjBC,UAAW,eACXhuG,UAAW,mCACXC,WAAY,CACVwK,KAAM3L,OAAO1L,SAASgN,YAG1B2tG,EAAmB,CACjBC,UAAW,iBACXhuG,UAAW,uBACXC,WAAY,CACVwK,KAAM3L,OAAO1L,SAASgN,YAG1B2tG,EAAmB,CACjBC,UAAW,mBACXhuG,UAAW,4BACXC,WAAY,CACVwK,KAAM3L,OAAO1L,SAASgN,YAG1B2tG,EAAmB,CACjBC,UAAW,oBACXhuG,UAAW,0CACXC,WAAY,CACVwK,KAAM3L,OAAO1L,SAASgN,YAG1B2tG,EAAmB,CACjBC,UAAW,wBACXhuG,UAAW,uCACXC,WAAY,CACVwK,KAAM3L,OAAO1L,SAASgN,YAG1B2tG,EAAmB,CACjBC,UAAW,6BACXhuG,UAAW,oBACXC,WAAY,CACVwK,KAAM3L,OAAO1L,SAASgN,gB,qBClV5B,YACA,IAAIjC,EAA8B,iBAAVlZ,GAAsBA,GAAUA,EAAO/M,SAAWA,QAAU+M,EACpFyK,EAAOC,QAAUwO,I,kDCAjB,WAoDeZ,IA5BO,KACpB,IAAMqyG,EAA6B,kBAAX9wG,OAElB+wG,EAAU,MACdvyG,YAAawB,OAAOkiF,WACpB8uB,aAAchxG,OAAOmiF,eAGhB8uB,EAAYC,GAAiBxuG,mBAASquG,KAc7C,OAZA/sF,qBAAU,KACR,IAAMmtF,EAAe,KACnBD,EAAcH,MAKhB,GAFA/wG,OAAOynE,iBAAiB,SAAU0pC,GAE9BL,EACF,MAAO,IAAY9wG,OAAOgoE,oBAAoB,SAAUmpC,KAEzD,CAACL,IAEG,CACLtyG,YAAayyG,EAAWzyG,YACxBwyG,aAAcC,EAAWD,gB,oBClD7B,IAAII,EAAkB,EAAQ,KAC1BlY,EAAe,EAAQ,KAIvB0G,EAAcxmH,OAAOK,UAGrBC,EAAiBkmH,EAAYlmH,eAG7BsB,EAAuB4kH,EAAY5kH,qBAoBnCq2H,EAAcD,EAAgB,WAChC,OAAO32H,UADyB,IAE3B22H,EAAkB,SAAU11H,GACjC,OAAOw9G,EAAax9G,IAAUhC,EAAeC,KAAK+B,EAAO,YAAcV,EAAqBrB,KAAK+B,EAAO,WAE1GkV,EAAOC,QAAUwgH,G,qBCpCjB,kBAAW,EAAQ,KACfC,EAAY,EAAQ,KAIpBC,EAA4C1gH,IAAYA,EAAQg2E,UAAYh2E,EAG5E2gH,EAAaD,GAAgC,iBAAV3gH,GAAsBA,IAAWA,EAAOi2E,UAAYj2E,EAMvF6gH,EAHgBD,GAAcA,EAAW3gH,UAAY0gH,EAG5B/xG,EAAKiyG,YAAS90G,EAsBvC+0G,GAnBiBD,EAASA,EAAOC,cAAW/0G,IAmBf20G,EACjC1gH,EAAOC,QAAU6gH,I,0CCrCjB,IAAIC,EAAW,EAAQ,KACnB3sG,EAAM,EAAQ,KACd1pB,EAAU,EAAQ,KAClBq6C,EAAM,EAAQ,KACdpV,EAAU,EAAQ,KAClBwqD,EAAa,EAAQ,KACrB6mC,EAAW,EAAQ,KAInBC,EAAS,eAETC,EAAa,mBACbC,EAAS,eACTC,EAAa,mBACbC,EAAc,oBAGdC,EAAqBN,EAASD,GAC9BQ,EAAgBP,EAAS5sG,GACzBotG,EAAoBR,EAASt2H,GAC7B+2H,EAAgBT,EAASj8E,GACzB28E,EAAoBV,EAASrxF,GAS7BgyF,EAASxnC,GAET4mC,GAAYY,EAAO,IAAIZ,EAAS,IAAIa,YAAY,MAAQP,GAAejtG,GAAOutG,EAAO,IAAIvtG,IAAU6sG,GAAUv2H,GAAWi3H,EAAOj3H,EAAQC,YAAcu2H,GAAcn8E,GAAO48E,EAAO,IAAI58E,IAAUo8E,GAAUxxF,GAAWgyF,EAAO,IAAIhyF,IAAcyxF,KAC/OO,EAAS,SAAgB72H,GACvB,IAAII,EAASivF,EAAWrvF,GACpBmkH,EAzBQ,mBAyBD/jH,EAAsBJ,EAAMzB,iBAAc0iB,EACjD81G,EAAa5S,EAAO+R,EAAS/R,GAAQ,GAEzC,GAAI4S,EACF,OAAQA,GACN,KAAKP,EACH,OAAOD,EAET,KAAKE,EACH,OAAON,EAET,KAAKO,EACH,OAAON,EAET,KAAKO,EACH,OAAON,EAET,KAAKO,EACH,OAAON,EAIb,OAAOl2H,IAIX8U,EAAOC,QAAU0hH,G,oBC9DjB3hH,EAAOC,QAAU,IAA0B,oC,oBCA3CD,EAAOC,QAAU,IAA0B,oC,oBCA3CD,EAAOC,QAAU,IAA0B,oC,oBCA3CD,EAAOC,QAAU,IAA0B,oC,oBCA3CD,EAAOC,QAAU,IAA0B,oC,oBCA3CD,EAAOC,QAAU,IAA0B,oC,iCCA3C,sDAEO,SAAS4rD,EAAanC,EAAU7vD,GACrC,OAAO,YAAQ6vD,EAAU7vD,EAASA,EAAQ6a,WAAa,CACrDA,UAAW,YAAS,YAAS,GAAIg1C,GAAYA,EAASh1C,WAAY7a,EAAQ6a,e,oBCJ9E,IAAI1oB,EAAS,EAAQ,KACjB81H,EAAW,EAAQ,KACnB/hH,EAAU,EAAQ,KAClBgiH,EAAW,EAAQ,KAOnBC,EAAch2H,EAASA,EAAOnD,eAAYkjB,EAC1Ck2G,EAAiBD,EAAcA,EAAY7kG,cAAWpR,EA6B1D/L,EAAOC,QAnBP,SAAS05G,EAAa7uH,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAGT,GAAIiV,EAAQjV,GAEV,OAAOg3H,EAASh3H,EAAO6uH,GAAgB,GAGzC,GAAIoI,EAASj3H,GACX,OAAOm3H,EAAiBA,EAAel5H,KAAK+B,GAAS,GAGvD,IAAII,EAASJ,EAAQ,GACrB,MAAiB,KAAVI,GAAiB,EAAIJ,IA9Bf,SA8BoC,KAAOI,I,kBCpC1D,IAWIg3H,EAAe16F,OAAO,uFAa1BxnB,EAAOC,QAJP,SAAoBuE,GAClB,OAAO09G,EAAaz1G,KAAKjI,K,oBCtB3B,IAAIq4E,EAAkB,EAAQ,KAC1Bq9B,EAAK,EAAQ,KAObpxH,EAHcN,OAAOK,UAGQC,eAoBjCkX,EAAOC,QARP,SAAqBsE,EAAQ5P,EAAK7J,GAChC,IAAIq3H,EAAW59G,EAAO5P,GAEhB7L,EAAeC,KAAKwb,EAAQ5P,IAAQulH,EAAGiI,EAAUr3H,UAAqBihB,IAAVjhB,GAAyB6J,KAAO4P,IAChGs4E,EAAgBt4E,EAAQ5P,EAAK7J,K,iCCtBjC,mJA2BMs3H,EAAqB,gBAWrBC,EAAqC,IAY9B,IAZ+B,eAC1CnV,EAD0C,gBAE1CS,EAF0C,YAG1C2U,EAH0C,mBAI1C7U,EAJ0C,eAK1C8U,GAOU,EAEJhyG,EAA6B,CACjC28F,kBAEES,IACFp9F,EAAWo9F,gBAAkBA,EAC7Bp9F,EAAW+xG,YAAcA,GAEvB7U,IACFl9F,EAAWk9F,mBAAqBA,EAChCl9F,EAAWgyG,eAAiBA,GAE9BjwG,kBAZkB,mCAYM/B,IAyVXtD,6BAjSW,IAcQ,IAdP,mBACzBwgG,EADyB,gBAEzBE,EAFyB,wBAGzBV,EAHyB,WAIzB35E,EAJyB,OAKzBmiE,EALyB,eAMzByX,GAQ+B,GACxBsV,EAAmBC,GACxBlyF,IAAMze,SAAS67F,IACV+U,EAA0BC,GAC/BpyF,IAAMze,SAAS27F,IACVmV,EAA0BC,GAC/BtyF,IAAMze,UAAS,IACVgxG,EAA2BC,GAChCxyF,IAAMze,UAAS,IACX,QAAEpI,EAAF,KAAWW,EAAX,MAAiBD,GAAU44G,YAAoBC,YAC9CC,GAAgB75G,YAGrB85G,UAAwB,CACxBt4G,cACEuE,OAAO1L,SAASmmB,YAIdu5F,EAAyB7yF,IAAMre,aACnC,IAQO,IARN,YACCowG,EADD,gBAEC3U,EAFD,eAGCT,GAKI,EACJ,GAAIoV,IAAgB3U,EAAiB,CACnC,IAAM0V,EACyB,cAA7Bj0G,OAAO1L,SAAS2qG,cACZtiG,EACA,CAAEk0E,OAAQ7wE,OAAO1L,SAAS2qG,UAShC,OARA17G,IAAQwgB,IAAIivG,EAAoBE,EAAae,GAE7ChB,EAAmC,CACjC1U,kBACA2U,cACApV,mBAGMoV,GACN,IAAK,QACH,OAAOY,EAAa,CAClBxuG,UAAW,CACTyJ,SAAUurD,IAASj4E,SAIzB,IAAK,KACH,OAAOyxH,EAAa,CAClBxuG,UAAW,CACTyJ,SAAUurD,IAASr4E,MAIzB,IAAK,QACH,OAAO6xH,EAAa,CAClBxuG,UAAW,CACTyJ,SAAUurD,IAASt4E,SAIzB,IAAK,KACH,OAAO8xH,EAAa,CAClBxuG,UAAW,CACTyJ,SAAUurD,IAASz4E,MAIzB,IAAK,KACH,OAAOiyH,EAAa,CAClBxuG,UAAW,CACTyJ,SAAUurD,IAASv8E,MAIzB,IAAK,QACH,OAAO+1H,EAAa,CAClBxuG,UAAW,CACTyJ,SAAUurD,IAAS33E,SAIzB,IAAK,QACH,OAAOmxH,EAAa,CAClBxuG,UAAW,CACTyJ,SAAUurD,IAAS73E,aAO/B,CAACqxH,IAGGI,EAAiB/yF,IAAMre,aAAajoB,IAGrCA,EAAEmW,OAAOkyB,UAAUmlD,SAAS,oCAC5BxtF,EAAEmW,OAAOkyB,UAAUmlD,SAAS,wCAE7BorC,GAA4B,GAC5BE,GAA6B,MAE9B,IAEGQ,EAAyBhzF,IAAMre,aACnC,CAACwwG,EAA0BjV,EAAoBtvF,KAC7C,GAAiC,OAA7BukG,EACF,OAAQvkG,GACN,IAAK,QACL,IAAK,KACH,OAAOurD,IAASj4E,MAClB,QACE,OAAO0sB,MAEN,IACwB,OAA7BukG,GACuB,OAAvBjV,EAUA,OAAOtvF,EARP,OAAQA,GACN,IAAK,QACL,IAAK,KACH,OAAOurD,IAASr4E,GAClB,QACE,OAAO8sB,MAMf,IAGIqlG,EAAsBjzF,IAAMre,aAAY,KAC5C,IAAMowG,EAAciB,EAClBb,EACAjV,EACA+U,GAhNyB,KAYlB,IAZmB,eAC9BD,EAD8B,mBAE9B9U,EAF8B,YAG9B6U,EAH8B,gBAI9B3U,EAJ8B,eAK9BT,GAOU,EACNuW,GAAkB,EAClBC,GAAiB,EACfL,EACyB,cAA7Bj0G,OAAO1L,SAAS2qG,cACZtiG,EACA,CAAEk0E,OAAQ7wE,OAAO1L,SAAS2qG,UAC5BiU,IAAgB3U,IAClBh7G,IAAQwgB,IAAIivG,EAAoBE,EAAae,GAC7CI,GAAkB,GAEhBlB,IAAmB9U,IACrB96G,IAAQwgB,IA9DkB,oBA8DSovG,EAAgBc,GACnDK,GAAiB,IAEfD,GAAmBC,KACjBD,GAAmBC,EACrBrB,EAAmC,CACjC1U,kBACA2U,cACA7U,qBACA8U,iBACArV,mBAEOuW,EACTpB,EAAmC,CACjC1U,kBACA2U,cACApV,mBAEOwW,GACTrB,EAAmC,CACjC5U,qBACA8U,iBACArV,mBAGJ99F,OAAO1L,SAASmmB,WAiKhB85F,CAAuB,CACrBhW,kBACAF,qBACA6U,cACAC,eAAgBG,EAChBxV,qBAED,CACDqW,EACAb,EACAjV,EACA+U,EACA7U,EACAT,IAGI0W,EAAuBrzF,IAAMre,aAAY,KAC7C,IAAMowG,EAAciB,EAClBb,EACAjV,EACA+U,GAEFY,EAAuB,CAAEzV,kBAAiB2U,cAAapV,qBACtD,CACDqW,EACAb,EACAjV,EACA+U,EACAY,EACAzV,EACAT,KAaI,EAAEzjH,GAAMqkB,YAAe,sBAE7B,GAAIpE,IAAYW,EAAM,OAAO,KAE7B,GAAID,EACF,MAAM,IAAIpd,MAAJ,2CAA8Cod,EAAM8L,UAE5D,IAAM1E,EAAmB,KAAgB,IAAD,EACtC,MAAwC,oBAAjC,UAAAnH,EAAKw5G,mBAAL,eAAkBnnF,aAGrB/sC,EAAYs9G,EACfpnG,QAAQi+G,GAAYpB,IAA6BoB,EAAQn4G,OACzDstB,SAAS6qF,GAAYA,EAAQC,qBAEhC,OACE,kBAAC,UAAD,CACEzwF,WAAYA,EACZC,aAAa,qBACbC,YAAaiiE,EACbhiE,UAAU,QACVC,iBAAe,EACfC,gBAAiB,CAAEC,QAAS,QAASC,OAAQ,WAE7C,yBACE0sE,KAAK,SACLa,SAAU,EACVN,UAAWwiB,EACXv7G,UAAU,8BACV+rB,QAASwvF,GAET,wBAAIv7G,UAAU,cAActe,EAAE,UAC7B+nB,KACC,kBAAC,IAAM/P,SAAP,KACE,wBACEsG,UAAU,+BACVpT,IAAI,uBAEHlL,EAAE,wBAEL,kBAAC,UAAD,CACEkL,IAAI,gBACJguH,4BAA6BA,EAC7BD,yBAA0BA,EAC1BzV,wBAAyBA,EACzB4V,4BAA6BA,EAC7BD,yBAA0BA,KAIhC,wBAAI76G,UAAU,gCACXte,EAAE,0BA7DwB,MACjC,IAAMkG,EAAYs9G,EAAwBp4G,KACvCivH,GACQA,EAAQE,kBAInB,MADwB,IAAI,IAAIj/E,IAAIp1C,IACb7F,OAAS,GAwD3Bm6H,GACC,kBAAC,UAAD,CACExB,qBAAsBA,EACtBD,kBAAmBA,EACnBO,6BAA8BA,EAC9BD,0BAA2BA,EAC3BiB,mBAAoBp0H,IAGtB,uBAAGoY,UAAU,wDACVm8G,0BAAgB,CAAE/lG,SAAUqkG,EAAmB/4H,OAAQ,IAG5D,yBAAKse,UAAU,iCACb,4BACE3G,KAAK,SACL2G,UAAU,uBACV+rB,QAASR,GAER7pC,EAAE,WAEL,4BACE2X,KAAK,SACL2G,UAAU,mBACV+rB,QACEtiB,IAAqBgyG,EAAsBI,GAG5Cn6H,EAAE,gB,6EClZf,SAASgsB,EAAQlP,GAaf,OATEkP,EADoB,oBAAXzpB,QAAoD,kBAApBA,OAAOC,SACtC,SAAiBsa,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAXva,QAAyBua,EAAIld,cAAgB2C,QAAUua,IAAQva,OAAOnD,UAAY,gBAAkB0d,GAItHkP,EAAQlP,G,aCLV,SAAS49G,EAAY9jH,EAAQ2uF,GAMlC,IALA,IAGI5vF,EAHAglH,EAAa,eACb98E,EAAO,EACPwyC,EAASkV,EAAW,GAGhB5vF,EAAQglH,EAAW97F,KAAKjoB,EAAO/U,QAAU8T,EAAM0d,MAAQkyE,GAC7D1nD,GAAQ,EACRwyC,EAASkV,EAAW,GAAK5vF,EAAM0d,MAAQ1d,EAAM,GAAGtV,QAGlD,MAAO,CACLw9C,KAAMA,EACNwyC,OAAQA,GChBL,SAASuqC,EAAc3gH,GAC5B,OAAO4gH,EAAoB5gH,EAASrD,OAAQ8jH,EAAYzgH,EAASrD,OAAQqD,EAAS2nC,QAM7E,SAASi5E,EAAoBjkH,EAAQkkH,GAC1C,IAAIC,EAAwBnkH,EAAOw5E,eAAeC,OAAS,EACvDxuF,EAAOm5H,EAAWD,GAAyBnkH,EAAO/U,KAClDo5H,EAAYH,EAAej9E,KAAO,EAClCq9E,EAAatkH,EAAOw5E,eAAevyC,KAAO,EAC1Cs9E,EAAUL,EAAej9E,KAAOq9E,EAChCE,EAAuC,IAAxBN,EAAej9E,KAAak9E,EAAwB,EACnEM,EAAYP,EAAezqC,OAAS+qC,EACpCE,EAAc,GAAGl4H,OAAOwT,EAAOyD,KAAM,KAAKjX,OAAO+3H,EAAS,KAAK/3H,OAAOi4H,EAAW,MACjF/5C,EAAQz/E,EAAKqK,MAAM,gBACnBqvH,EAAej6C,EAAM25C,GAEzB,GAAIM,EAAal7H,OAAS,IAAK,CAK7B,IAJA,IAAIm7H,EAAejsH,KAAKC,MAAM6rH,EAAY,IACtCI,EAAmBJ,EAAY,GAC/BK,EAAW,GAENx7H,EAAI,EAAGA,EAAIq7H,EAAal7H,OAAQH,GAAK,GAC5Cw7H,EAAS94H,KAAK24H,EAAap4H,MAAMjD,EAAGA,EAAI,KAG1C,OAAOo7H,EAAcK,EAAmB,CAAC,CAAC,GAAGv4H,OAAO+3H,GAAUO,EAAS,KAAKt4H,OAAOs4H,EAASv4H,MAAM,EAAGq4H,EAAe,GAAGpwH,KAAI,SAAUwwH,GACnI,MAAO,CAAC,GAAIA,MACV,CAAC,CAAC,IAAKZ,EAAWS,EAAmB,GAAK,KAAM,CAAC,GAAIC,EAASF,EAAe,OAGnF,OAAOF,EAAcK,EAAmB,CACxC,CAAC,GAAGv4H,OAAO+3H,EAAU,GAAI75C,EAAM25C,EAAY,IAAK,CAAC,GAAG73H,OAAO+3H,GAAUI,GAAe,CAAC,GAAIP,EAAWK,EAAY,GAAK,KAAM,CAAC,GAAGj4H,OAAO+3H,EAAU,GAAI75C,EAAM25C,EAAY,MAGxK,SAASU,EAAmBr6C,GAC1B,IAAIu6C,EAAgBv6C,EAAMllE,QAAO,SAAUqB,GACjCA,EAAK,GAEb,YAAgB6E,IADL7E,EAAK,MAGdq+G,EAASvsH,KAAK+5D,IAAIhpE,MAAMiP,KAAMssH,EAAczwH,KAAI,SAAU2T,GAE5D,OADaA,EAAM,GACL1e,WAEhB,OAAOw7H,EAAczwH,KAAI,SAAU4S,GACjC,IAUkBuU,EAVd9C,EAASzR,EAAM,GACf6/B,EAAO7/B,EAAM,GACjB,OASKg9G,EATUc,GAQGvpG,EARK9C,GASGpvB,QAAUkyB,GATFsrB,EAAO,MAAQA,EAAO,SACvDxyC,KAAK,MAGV,SAAS2vH,EAAW71F,GAClB,OAAOjmC,MAAMimC,EAAM,GAAG95B,KAAK,KC5D7B,SAAS,EAAQyR,GAaf,OATE,EADoB,oBAAXva,QAAoD,kBAApBA,OAAOC,SACtC,SAAiBsa,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAXva,QAAyBua,EAAIld,cAAgB2C,QAAUua,IAAQva,OAAOnD,UAAY,gBAAkB0d,GAItH,EAAQA,GAGjB,SAASd,EAAQlB,EAAQmB,GACvB,IAAIC,EAAOnd,OAAOmd,KAAKpB,GAEvB,GAAI/b,OAAO2B,sBAAuB,CAChC,IAAIyb,EAAUpd,OAAO2B,sBAAsBoa,GACvCmB,IAAgBE,EAAUA,EAAQC,QAAO,SAAUC,GACrD,OAAOtd,OAAOud,yBAAyBxB,EAAQuB,GAAKE,eAEtDL,EAAKtZ,KAAKtC,MAAM4b,EAAMC,GAGxB,OAAOD,EAuBT,SAASQ,EAAgBI,EAAK5R,EAAK7J,GAYjC,OAXI6J,KAAO4R,EACT/d,OAAO8d,eAAeC,EAAK5R,EAAK,CAC9B7J,MAAOA,EACPkb,YAAY,EACZQ,cAAc,EACdC,UAAU,IAGZF,EAAI5R,GAAO7J,EAGNyb,EAST,SAASwQ,EAAkB3W,EAAQmD,GACjC,IAAK,IAAI5Z,EAAI,EAAGA,EAAI4Z,EAAMzZ,OAAQH,IAAK,CACrC,IAAIqtB,EAAazT,EAAM5Z,GACvBqtB,EAAWhR,WAAagR,EAAWhR,aAAc,EACjDgR,EAAWxQ,cAAe,EACtB,UAAWwQ,IAAYA,EAAWvQ,UAAW,GACjDje,OAAO8d,eAAelG,EAAQ4W,EAAWriB,IAAKqiB,IA4ClD,SAASoB,EAA2BzJ,EAAM5lB,GACxC,OAAIA,GAA2B,WAAlB,EAAQA,IAAsC,oBAATA,EAI3Cy8H,EAAuB72G,GAHrB5lB,EAMX,SAASy8H,EAAuB72G,GAC9B,QAAa,IAATA,EACF,MAAM,IAAI82G,eAAe,6DAG3B,OAAO92G,EAGT,SAAS+2G,EAAiBC,GACxB,IAAIC,EAAwB,oBAARxxG,IAAqB,IAAIA,SAAQrI,EA8BrD,OA5BA25G,EAAmB,SAA0BC,GAC3C,GAAc,OAAVA,IA4DmBxuF,EA5DkBwuF,GA6DqB,IAAzD92G,SAASsO,SAASp0B,KAAKouC,GAAIjtC,QAAQ,kBA7DS,OAAOy7H,EA4D5D,IAA2BxuF,EA1DvB,GAAqB,oBAAVwuF,EACT,MAAM,IAAI18H,UAAU,sDAGtB,GAAsB,qBAAX28H,EAAwB,CACjC,GAAIA,EAAOh1E,IAAI+0E,GAAQ,OAAOC,EAAOhzH,IAAI+yH,GAEzCC,EAAOzyG,IAAIwyG,EAAO79G,GAGpB,SAASA,IACP,OAAO+9G,EAAWF,EAAO97H,UAAWyuB,EAAgBlvB,MAAMC,aAW5D,OARAye,EAAQjf,UAAYL,OAAOc,OAAOq8H,EAAM98H,UAAW,CACjDQ,YAAa,CACXyB,MAAOgd,EACP9B,YAAY,EACZS,UAAU,EACVD,cAAc,KAGXuI,EAAgBjH,EAAS69G,IAG3BD,EAAiBC,GAG1B,SAASE,EAAWC,EAAQvlH,EAAMolH,GAchC,OAZEE,EADEE,IACWC,QAAQC,UAER,SAAoBH,EAAQvlH,EAAMolH,GAC7C,IAAIxtH,EAAI,CAAC,MACTA,EAAE9L,KAAKtC,MAAMoO,EAAGoI,GAChB,IACIqW,EAAW,IADG/H,SAAS1O,KAAKpW,MAAM+7H,EAAQ3tH,IAG9C,OADIwtH,GAAO52G,EAAgB6H,EAAU+uG,EAAM98H,WACpC+tB,GAIJivG,EAAW97H,MAAM,KAAMF,WAGhC,SAASk8H,IACP,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAUC,KAAM,OAAO,EACnC,GAAqB,oBAAVC,MAAsB,OAAO,EAExC,IAEE,OADA1uG,KAAK5uB,UAAUs0B,SAASp0B,KAAKi9H,QAAQC,UAAUxuG,KAAM,IAAI,iBAClD,EACP,MAAOxtB,GACP,OAAO,GAQX,SAAS8kB,EAAgBC,EAAGpmB,GAM1B,OALAmmB,EAAkBvmB,OAAOC,gBAAkB,SAAyBumB,EAAGpmB,GAErE,OADAomB,EAAEtmB,UAAYE,EACPomB,GAGFD,EAAgBC,EAAGpmB,GAG5B,SAAS0vB,EAAgBtJ,GAIvB,OAHAsJ,EAAkB9vB,OAAOC,eAAiBD,OAAO+vB,eAAiB,SAAyBvJ,GACzF,OAAOA,EAAEtmB,WAAaF,OAAO+vB,eAAevJ,IAEvCsJ,EAAgBtJ,GAclB,IAAI,EAA4B,SAAUo3G,IAjJjD,SAAmB3tG,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIzvB,UAAU,sDAGtBwvB,EAAS5vB,UAAYL,OAAOc,OAAOovB,GAAcA,EAAW7vB,UAAW,CACrEQ,YAAa,CACXyB,MAAO2tB,EACPhS,UAAU,EACVD,cAAc,KAGdkS,GAAY3J,EAAgB0J,EAAUC,GAsI1CF,CAAU6tG,EAAcD,GAExB,IArIoBE,EAChBC,EAtBgB1vG,EAAaI,EAAYC,EA0JzCknB,GArIgBkoF,EAqIMD,EApItBE,EAA4BR,IAEzB,WACL,IACI76H,EADAs7H,EAAQluG,EAAgBguG,GAG5B,GAAIC,EAA2B,CAC7B,IAAIE,EAAYnuG,EAAgBlvB,MAAMC,YAEtC6B,EAAS86H,QAAQC,UAAUO,EAAO38H,UAAW48H,QAE7Cv7H,EAASs7H,EAAMz8H,MAAMX,KAAMS,WAG7B,OAAOuuB,EAA2BhvB,KAAM8B,KAkK1C,SAASm7H,EAAanwG,EAASwwG,EAAOrmH,EAAQsmH,EAAW5rG,EAAM6rG,EAAe5nF,GAC5E,IAAI6nF,EAAgBC,EAAiBC,EAEjC3sG,GAzNR,SAAyBxD,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAI5tB,UAAU,qCAyNpBkvB,CAAgB/uB,KAAMi9H,IAEtBjsG,EAAQgkB,EAAOr1C,KAAKK,KAAM8sB,IACpBpS,KAAO,eACbsW,EAAMwsG,cAAkC,OAAlBA,QAA4C,IAAlBA,EAA2BA,OAAgB76G,EAE3FqO,EAAMssG,MAAQM,EAAiBr+H,MAAMoX,QAAQ2mH,GAASA,EAAQA,EAAQ,CAACA,QAAS36G,GAGhF,IAFA,IAAIk7G,EAAgB,GAEXhkF,EAAM,EAAGx7B,EAAwC,QAA/By/G,EAAc9sG,EAAMssG,aAAmC,IAAhBQ,EAAyBA,EAAc,GAAIjkF,EAAMx7B,EAAM3d,OAAQm5C,IAAO,CACtI,IAAIikF,EAGAC,EADQ1/G,EAAMw7B,GACFkkF,IAEL,MAAPA,GACFF,EAAc56H,KAAK86H,GAIvBF,EAAgBD,EAAiBC,GAEjC7sG,EAAM/Z,OAAoB,OAAXA,QAA8B,IAAXA,EAAoBA,EAA8C,QAApCwmH,EAAiBI,SAA8C,IAAnBJ,OAA4B,EAASA,EAAe,GAAGxmH,OACnK+Z,EAAMusG,UAA0B,OAAdA,QAAoC,IAAdA,EAAuBA,EAAkD,QAArCG,EAAkBG,SAA+C,IAApBH,OAA6B,EAASA,EAAgBjyH,KAAI,SAAUsyH,GAC3L,OAAOA,EAAI97E,SAEbjxB,EAAMqwB,UAAYk8E,GAAatmH,EAASsmH,EAAU9xH,KAAI,SAAUyqH,GAC9D,OAAO6E,EAAY9jH,EAAQi/G,MACc,QAArCyH,EAAkBE,SAA+C,IAApBF,OAA6B,EAASA,EAAgBlyH,KAAI,SAAUsyH,GACrH,OAAOhD,EAAYgD,EAAI9mH,OAAQ8mH,EAAI97E,UAErCjxB,EAAMW,KAAgB,OAATA,QAA0B,IAATA,EAAkBA,OAAOhP,EACvD,IHvSiCjhB,EGuS7Bs8H,EAAuC,OAAlBR,QAA4C,IAAlBA,OAA2B,EAASA,EAAc5nF,WAwCrG,OAtCkB,MAAdA,IHxSmB,UAAlBvpB,EAD4B3qB,EGySMs8H,IHxSM,OAAVt8H,GGySjCsvB,EAAM4kB,WAjSZ,SAAuB5+B,GACrB,IAAK,IAAIzW,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CACzC,IAAI0W,EAAyB,MAAhBxW,UAAUF,GAAaE,UAAUF,GAAK,GAE/CA,EAAI,EACN8b,EAAQjd,OAAO6X,IAAS,GAAM6F,SAAQ,SAAUvR,GAC9CwR,EAAgB/F,EAAQzL,EAAK0L,EAAO1L,OAE7BnM,OAAO4d,0BAChB5d,OAAO6d,iBAAiBjG,EAAQ5X,OAAO4d,0BAA0B/F,IAEjEoF,EAAQjd,OAAO6X,IAAS6F,SAAQ,SAAUvR,GACxCnM,OAAO8d,eAAelG,EAAQzL,EAAKnM,OAAOud,yBAAyB1F,EAAQ1L,OAKjF,OAAOyL,EAgRgB6F,CAAc,GAAImhH,GAErChtG,EAAM4kB,WAA4B,OAAfA,QAAsC,IAAfA,EAAwBA,EAAa,GAKjFx2C,OAAO6d,iBAAiBm/G,EAAuBprG,GAAQ,CACrDlE,QAAS,CACPlQ,YAAY,GAEdykC,UAAW,CACTzkC,WAA+B,MAAnBoU,EAAMqwB,WAEpB1vB,KAAM,CACJ/U,WAA0B,MAAdoU,EAAMW,MAEpBikB,WAAY,CACVh5B,WAAgC,MAApBoU,EAAM4kB,YAAsBx2C,OAAOmd,KAAKyU,EAAM4kB,YAAYl1C,OAAS,GAEjFga,KAAM,CACJkC,YAAY,GAEd0gH,MAAO,CACL1gH,YAAY,GAEd3F,OAAQ,CACN2F,YAAY,GAEd2gH,UAAW,CACT3gH,YAAY,GAEd4gH,cAAe,CACb5gH,YAAY,KAIM,OAAlB4gH,QAA4C,IAAlBA,GAA4BA,EAAczrG,OACtE3yB,OAAO8d,eAAek/G,EAAuBprG,GAAQ,QAAS,CAC5DtvB,MAAO87H,EAAczrG,MACrB1U,UAAU,EACVD,cAAc,IAET4R,EAA2BgC,KAIhCptB,MAAMq6H,kBACRr6H,MAAMq6H,kBAAkB7B,EAAuBprG,GAAQisG,GAEvD79H,OAAO8d,eAAek/G,EAAuBprG,GAAQ,QAAS,CAC5DtvB,MAAOkC,QAAQmuB,MACf1U,UAAU,EACVD,cAAc,IAIX4T,GAiBT,OAxToBvD,EA0SPwvG,GA1SoBpvG,EA0SN,CAAC,CAC1BtiB,IAAK,WACL7J,MAAO,WACL,OAuBC,SAAoBsf,GACzB,IAAIyO,EAASzO,EAAM8L,QAEnB,GAAI9L,EAAMs8G,MACR,IAAK,IAAIY,EAAM,EAAGC,EAAgBn9G,EAAMs8G,MAAOY,EAAMC,EAAcz9H,OAAQw9H,IAAO,CAChF,IAAIviH,EAAOwiH,EAAcD,GAErBviH,EAAKoiH,MACPtuG,GAAU,OAASwrG,EAAct/G,EAAKoiH,WAGrC,GAAI/8G,EAAM/J,QAAU+J,EAAMqgC,UAC/B,IAAK,IAAI+8E,EAAM,EAAGC,EAAoBr9G,EAAMqgC,UAAW+8E,EAAMC,EAAkB39H,OAAQ09H,IAAO,CAC5F,IAAI9jH,EAAW+jH,EAAkBD,GACjC3uG,GAAU,OAASyrG,EAAoBl6G,EAAM/J,OAAQqD,GAIzD,OAAOmV,EAzCI6uG,CAAWt+H,QAInB,CACDuL,IAAK,IACL/B,IAAK,WACH,MAAO,cAnTKmkB,EAAkBF,EAAYhuB,UAAWouB,GACrDC,GAAaH,EAAkBF,EAAaK,GAsTzCmvG,EAjK8B,CAkKvBX,EAAiB14H,QAEjC,SAASg6H,EAAiB9iH,GACxB,YAAiB6H,IAAV7H,GAAwC,IAAjBA,EAAMpa,YAAeiiB,EAAY7H,ECvY1D,SAASyjH,EAAYtnH,EAAQ2uF,EAAU9gF,GAC5C,OAAO,IAAI,EAAa,iBAAiBrhB,OAAOqhB,QAAcnC,EAAW1L,EAAQ,CAAC2uF,I,oBCHzE44B,EAAYp/H,OAAO85C,OAAO,CACnCulF,IAAK,QACLC,IAAK,QACLC,KAAM,IACNC,OAAQ,IACRC,IAAK,IACLC,QAAS,IACTC,QAAS,IACTC,OAAQ,MACRC,MAAO,IACPC,OAAQ,IACRC,GAAI,IACJC,UAAW,IACXC,UAAW,IACXC,QAAS,IACTC,KAAM,IACNC,QAAS,IACTl4C,KAAM,OACNU,IAAK,MACLC,MAAO,QACPC,OAAQ,SACRu3C,aAAc,cACdC,QAAS,Y,SCvBAC,EAAoBvgI,OAAO85C,OAAO,CAE3C0mF,MAAO,QACPC,SAAU,WACVC,aAAc,eACdn4C,MAAO,QACPG,oBAAqB,sBACrBjd,gBAAiB,kBACjBgd,gBAAiB,kBACjBJ,oBAAqB,sBAErBs4C,OAAQ,SACRC,OAAQ,SACRz3C,OAAQ,SACRU,iBAAkB,mBAClBg3C,oBAAqB,sBACrBC,UAAW,YACXC,MAAO,QACP93C,KAAM,OACN+3C,WAAY,aACZC,aAAc,eACdC,uBAAwB,2B,SCXf,EAAqB,WAgB9B,SAASC,EAAMtpH,GACb,IAAIupH,EAAmB,IAAI,IAAMhC,EAAUC,IAAK,EAAG,EAAG,EAAG,EAAG,MAC5Dz+H,KAAKiX,OAASA,EACdjX,KAAKygI,UAAYD,EACjBxgI,KAAKsO,MAAQkyH,EACbxgI,KAAKk+C,KAAO,EACZl+C,KAAK0gI,UAAY,EAOnB,IAAIC,EAASJ,EAAM9gI,UA4BnB,OA1BAkhI,EAAOC,QAAU,WAGf,OAFA5gI,KAAKygI,UAAYzgI,KAAKsO,MACVtO,KAAKsO,MAAQtO,KAAK6gI,aAShCF,EAAOE,UAAY,WACjB,IAAIvyH,EAAQtO,KAAKsO,MAEjB,GAAIA,EAAMkd,OAASgzG,EAAUE,IAC3B,EAAG,CACD,IAAIoC,EAGJxyH,EAAuC,QAA9BwyH,EAAcxyH,EAAM1M,YAAkC,IAAhBk/H,EAAyBA,EAAcxyH,EAAM1M,KAAOm/H,EAAU/gI,KAAMsO,SAC5GA,EAAMkd,OAASgzG,EAAUkB,SAGpC,OAAOpxH,GAGFiyH,EAzDuB,GAmEhC,SAASS,EAAcz+G,GACrB,OACE4pB,MAAM5pB,GAAQi8G,EAAUE,IACxBn8G,EAAO,IAASyH,KAAKC,UAAUnqB,OAAOmhI,aAAa1+G,IACnD,OAAQ9e,QAAQ,KAAO8e,EAAKwR,SAAS,IAAIloB,eAAerI,OAAO,GAAI,KAYvE,SAASu9H,EAAUG,EAAO/mF,GAMxB,IALA,IAAIljC,EAASiqH,EAAMjqH,OACf/U,EAAO+U,EAAO/U,KACdi/H,EAAaj/H,EAAKxB,OAClBw1H,EAAM/7E,EAAKgI,IAER+zE,EAAMiL,GAAY,CACvB,IAAI5+G,EAAOrgB,EAAK8/E,WAAWk0C,GACvBkL,EAAQF,EAAMhjF,KAEdmjF,EAAO,EAAInL,EAAMgL,EAAMR,UAG3B,OAAQn+G,GACN,KAAK,MAEL,KAAK,EAEL,KAAK,GAEL,KAAK,KAED2zG,EACF,SAEF,KAAK,KAEDA,IACAgL,EAAMhjF,KACRgjF,EAAMR,UAAYxK,EAClB,SAEF,KAAK,GAE8B,KAA7Bh0H,EAAK8/E,WAAWk0C,EAAM,GACxBA,GAAO,IAELA,IAGFgL,EAAMhjF,KACRgjF,EAAMR,UAAYxK,EAClB,SAEF,KAAK,GAEH,OAAO,IAAI,IAAMsI,EAAUG,KAAMzI,EAAKA,EAAM,EAAGkL,EAAOC,EAAMlnF,GAE9D,KAAK,GAEH,OAAOmnF,EAAYrqH,EAAQi/G,EAAKkL,EAAOC,EAAMlnF,GAE/C,KAAK,GAEH,OAAO,IAAI,IAAMqkF,EAAUI,OAAQ1I,EAAKA,EAAM,EAAGkL,EAAOC,EAAMlnF,GAEhE,KAAK,GAEH,OAAO,IAAI,IAAMqkF,EAAUK,IAAK3I,EAAKA,EAAM,EAAGkL,EAAOC,EAAMlnF,GAE7D,KAAK,GAEH,OAAO,IAAI,IAAMqkF,EAAUM,QAAS5I,EAAKA,EAAM,EAAGkL,EAAOC,EAAMlnF,GAEjE,KAAK,GAEH,OAAO,IAAI,IAAMqkF,EAAUO,QAAS7I,EAAKA,EAAM,EAAGkL,EAAOC,EAAMlnF,GAEjE,KAAK,GAEH,GAAiC,KAA7Bj4C,EAAK8/E,WAAWk0C,EAAM,IAA0C,KAA7Bh0H,EAAK8/E,WAAWk0C,EAAM,GAC3D,OAAO,IAAI,IAAMsI,EAAUQ,OAAQ9I,EAAKA,EAAM,EAAGkL,EAAOC,EAAMlnF,GAGhE,MAEF,KAAK,GAEH,OAAO,IAAI,IAAMqkF,EAAUS,MAAO/I,EAAKA,EAAM,EAAGkL,EAAOC,EAAMlnF,GAE/D,KAAK,GAEH,OAAO,IAAI,IAAMqkF,EAAUU,OAAQhJ,EAAKA,EAAM,EAAGkL,EAAOC,EAAMlnF,GAEhE,KAAK,GAEH,OAAO,IAAI,IAAMqkF,EAAUW,GAAIjJ,EAAKA,EAAM,EAAGkL,EAAOC,EAAMlnF,GAE5D,KAAK,GAEH,OAAO,IAAI,IAAMqkF,EAAUY,UAAWlJ,EAAKA,EAAM,EAAGkL,EAAOC,EAAMlnF,GAEnE,KAAK,GAEH,OAAO,IAAI,IAAMqkF,EAAUa,UAAWnJ,EAAKA,EAAM,EAAGkL,EAAOC,EAAMlnF,GAEnE,KAAK,IAEH,OAAO,IAAI,IAAMqkF,EAAUc,QAASpJ,EAAKA,EAAM,EAAGkL,EAAOC,EAAMlnF,GAEjE,KAAK,IAEH,OAAO,IAAI,IAAMqkF,EAAUe,KAAMrJ,EAAKA,EAAM,EAAGkL,EAAOC,EAAMlnF,GAE9D,KAAK,IAEH,OAAO,IAAI,IAAMqkF,EAAUgB,QAAStJ,EAAKA,EAAM,EAAGkL,EAAOC,EAAMlnF,GAEjE,KAAK,GAEH,OAAiC,KAA7Bj4C,EAAK8/E,WAAWk0C,EAAM,IAA0C,KAA7Bh0H,EAAK8/E,WAAWk0C,EAAM,GACpDqL,EAAgBtqH,EAAQi/G,EAAKkL,EAAOC,EAAMlnF,EAAM+mF,GAGlDM,EAAWvqH,EAAQi/G,EAAKkL,EAAOC,EAAMlnF,GAE9C,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEH,OAAOsnF,EAAWxqH,EAAQi/G,EAAK3zG,EAAM6+G,EAAOC,EAAMlnF,GAEpD,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,GAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEL,KAAK,IAEH,OAAOunF,EAASzqH,EAAQi/G,EAAKkL,EAAOC,EAAMlnF,GAG9C,MAAMokF,EAAYtnH,EAAQi/G,EAAKyL,EAA2Bp/G,IAG5D,IAAI27B,EAAOgjF,EAAMhjF,KACb0jF,EAAM,EAAI1L,EAAMgL,EAAMR,UAC1B,OAAO,IAAI,IAAMlC,EAAUE,IAAKyC,EAAYA,EAAYjjF,EAAM0jF,EAAKznF,GAOrE,SAASwnF,EAA2Bp/G,GAClC,OAAIA,EAAO,IAAmB,IAATA,GAA4B,KAATA,GAA4B,KAATA,EAClD,wCAAwC9e,OAAOu9H,EAAcz+G,GAAO,KAGhE,KAATA,EAEK,kFAGF,yCAAyC9e,OAAOu9H,EAAcz+G,GAAO,KAS9E,SAAS++G,EAAYrqH,EAAQgrC,EAAO/D,EAAM0jF,EAAKznF,GAC7C,IACI53B,EADArgB,EAAO+U,EAAO/U,KAEd0jG,EAAW3jD,EAEf,GACE1/B,EAAOrgB,EAAK8/E,aAAa4jB,UACjBz5D,MAAM5pB,KAChBA,EAAO,IAAmB,IAATA,IAEjB,OAAO,IAAI,IAAMi8G,EAAUkB,QAASz9E,EAAO2jD,EAAU1nD,EAAM0jF,EAAKznF,EAAMj4C,EAAKsB,MAAMy+C,EAAQ,EAAG2jD,IAW9F,SAAS67B,EAAWxqH,EAAQgrC,EAAO4/E,EAAW3jF,EAAM0jF,EAAKznF,GACvD,IAAIj4C,EAAO+U,EAAO/U,KACdqgB,EAAOs/G,EACPj8B,EAAW3jD,EACX6/E,GAAU,EAOd,GALa,KAATv/G,IAEFA,EAAOrgB,EAAK8/E,aAAa4jB,IAGd,KAATrjF,GAIF,IAFAA,EAAOrgB,EAAK8/E,aAAa4jB,KAEb,IAAMrjF,GAAQ,GACxB,MAAMg8G,EAAYtnH,EAAQ2uF,EAAU,6CAA6CniG,OAAOu9H,EAAcz+G,GAAO,WAG/GqjF,EAAWm8B,EAAW9qH,EAAQ2uF,EAAUrjF,GACxCA,EAAOrgB,EAAK8/E,WAAW4jB,GA0BzB,GAvBa,KAATrjF,IAEFu/G,GAAU,EACVv/G,EAAOrgB,EAAK8/E,aAAa4jB,GACzBA,EAAWm8B,EAAW9qH,EAAQ2uF,EAAUrjF,GACxCA,EAAOrgB,EAAK8/E,WAAW4jB,IAGZ,KAATrjF,GAAwB,MAATA,IAEjBu/G,GAAU,EAGG,MAFbv/G,EAAOrgB,EAAK8/E,aAAa4jB,KAEG,KAATrjF,IAEjBA,EAAOrgB,EAAK8/E,aAAa4jB,IAG3BA,EAAWm8B,EAAW9qH,EAAQ2uF,EAAUrjF,GACxCA,EAAOrgB,EAAK8/E,WAAW4jB,IAIZ,KAATrjF,GAsON,SAAqBA,GACnB,OAAgB,KAATA,GAAeA,GAAQ,IAAMA,GAAQ,IAAMA,GAAQ,IAAMA,GAAQ,IAvOrDy/G,CAAYz/G,GAC7B,MAAMg8G,EAAYtnH,EAAQ2uF,EAAU,2CAA2CniG,OAAOu9H,EAAcz+G,GAAO,MAG7G,OAAO,IAAI,IAAMu/G,EAAUtD,EAAUv2C,MAAQu2C,EAAUx2C,IAAK/lC,EAAO2jD,EAAU1nD,EAAM0jF,EAAKznF,EAAMj4C,EAAKsB,MAAMy+C,EAAO2jD,IAOlH,SAASm8B,EAAW9qH,EAAQgrC,EAAO4/E,GACjC,IAAI3/H,EAAO+U,EAAO/U,KACd0jG,EAAW3jD,EACX1/B,EAAOs/G,EAEX,GAAIt/G,GAAQ,IAAMA,GAAQ,GAAI,CAE5B,GACEA,EAAOrgB,EAAK8/E,aAAa4jB,SAClBrjF,GAAQ,IAAMA,GAAQ,IAG/B,OAAOqjF,EAGT,MAAM24B,EAAYtnH,EAAQ2uF,EAAU,2CAA2CniG,OAAOu9H,EAAcz+G,GAAO,MAS7G,SAASi/G,EAAWvqH,EAAQgrC,EAAO/D,EAAM0jF,EAAKznF,GAO5C,IANA,IAsJmBprC,EAAG5P,EAAG4T,EAAG7T,EAtJxBgD,EAAO+U,EAAO/U,KACd0jG,EAAW3jD,EAAQ,EACnBggF,EAAar8B,EACbrjF,EAAO,EACP7gB,EAAQ,GAELkkG,EAAW1jG,EAAKxB,SAAWyrC,MAAM5pB,EAAOrgB,EAAK8/E,WAAW4jB,KACtD,KAATrjF,GAA4B,KAATA,GAAiB,CAElC,GAAa,KAATA,EAEF,OADA7gB,GAASQ,EAAKsB,MAAMy+H,EAAYr8B,GACzB,IAAI,IAAM44B,EAAUt2C,OAAQjmC,EAAO2jD,EAAW,EAAG1nD,EAAM0jF,EAAKznF,EAAMz4C,GAI3E,GAAI6gB,EAAO,IAAmB,IAATA,EACnB,MAAMg8G,EAAYtnH,EAAQ2uF,EAAU,oCAAoCniG,OAAOu9H,EAAcz+G,GAAO,MAKtG,KAFEqjF,EAEW,KAATrjF,EAAa,CAKf,OAHA7gB,GAASQ,EAAKsB,MAAMy+H,EAAYr8B,EAAW,GAC3CrjF,EAAOrgB,EAAK8/E,WAAW4jB,IAGrB,KAAK,GACHlkG,GAAS,IACT,MAEF,KAAK,GACHA,GAAS,IACT,MAEF,KAAK,GACHA,GAAS,KACT,MAEF,KAAK,GACHA,GAAS,KACT,MAEF,KAAK,IACHA,GAAS,KACT,MAEF,KAAK,IACHA,GAAS,KACT,MAEF,KAAK,IACHA,GAAS,KACT,MAEF,KAAK,IACHA,GAAS,KACT,MAEF,KAAK,IAGD,IAAIwgI,GAwFKnzH,EAxFkB7M,EAAK8/E,WAAW4jB,EAAW,GAwF1CzmG,EAxF8C+C,EAAK8/E,WAAW4jB,EAAW,GAwFtE7yF,EAxF0E7Q,EAAK8/E,WAAW4jB,EAAW,GAwFlG1mG,EAxFsGgD,EAAK8/E,WAAW4jB,EAAW,GAyFtJu8B,EAASpzH,IAAM,GAAKozH,EAAShjI,IAAM,EAAIgjI,EAASpvH,IAAM,EAAIovH,EAASjjI,IAvFhE,GAAIgjI,EAAW,EAAG,CAChB,IAAIE,EAAkBlgI,EAAKsB,MAAMoiG,EAAW,EAAGA,EAAW,GAC1D,MAAM24B,EAAYtnH,EAAQ2uF,EAAU,yCAAyCniG,OAAO2+H,EAAiB,MAGvG1gI,GAAS5B,OAAOmhI,aAAaiB,GAC7Bt8B,GAAY,EACZ,MAGJ,QACE,MAAM24B,EAAYtnH,EAAQ2uF,EAAU,wCAAwCniG,OAAO3D,OAAOmhI,aAAa1+G,GAAO,MAIlH0/G,IADEr8B,GAKN,MAAM24B,EAAYtnH,EAAQ2uF,EAAU,wBAStC,SAAS27B,EAAgBtqH,EAAQgrC,EAAO/D,EAAM0jF,EAAKznF,EAAM+mF,GAOvD,IANA,IAAIh/H,EAAO+U,EAAO/U,KACd0jG,EAAW3jD,EAAQ,EACnBggF,EAAar8B,EACbrjF,EAAO,EACP8/G,EAAW,GAERz8B,EAAW1jG,EAAKxB,SAAWyrC,MAAM5pB,EAAOrgB,EAAK8/E,WAAW4jB,KAAY,CAEzE,GAAa,KAATrjF,GAAiD,KAAlCrgB,EAAK8/E,WAAW4jB,EAAW,IAA+C,KAAlC1jG,EAAK8/E,WAAW4jB,EAAW,GAEpF,OADAy8B,GAAYngI,EAAKsB,MAAMy+H,EAAYr8B,GAC5B,IAAI,IAAM44B,EAAUiB,aAAcx9E,EAAO2jD,EAAW,EAAG1nD,EAAM0jF,EAAKznF,EAAM,YAAuBkoF,IAIxG,GAAI9/G,EAAO,IAAmB,IAATA,GAA4B,KAATA,GAA4B,KAATA,EACzD,MAAMg8G,EAAYtnH,EAAQ2uF,EAAU,oCAAoCniG,OAAOu9H,EAAcz+G,GAAO,MAGzF,KAATA,KAEAqjF,IACAs7B,EAAMhjF,KACRgjF,EAAMR,UAAY96B,GACA,KAATrjF,GAE6B,KAAlCrgB,EAAK8/E,WAAW4jB,EAAW,GAC7BA,GAAY,IAEVA,IAGFs7B,EAAMhjF,KACRgjF,EAAMR,UAAY96B,GAEX,KAATrjF,GAAiD,KAAlCrgB,EAAK8/E,WAAW4jB,EAAW,IAA+C,KAAlC1jG,EAAK8/E,WAAW4jB,EAAW,IAA+C,KAAlC1jG,EAAK8/E,WAAW4jB,EAAW,IACxHy8B,GAAYngI,EAAKsB,MAAMy+H,EAAYr8B,GAAY,MAE/Cq8B,EADAr8B,GAAY,KAGVA,EAIN,MAAM24B,EAAYtnH,EAAQ2uF,EAAU,wBA2BtC,SAASu8B,EAASpzH,GAChB,OAAOA,GAAK,IAAMA,GAAK,GAAKA,EAAI,GAC9BA,GAAK,IAAMA,GAAK,GAAKA,EAAI,GACzBA,GAAK,IAAMA,GAAK,IAAMA,EAAI,IACzB,EASL,SAAS2yH,EAASzqH,EAAQgrC,EAAO/D,EAAM0jF,EAAKznF,GAM1C,IALA,IAAIj4C,EAAO+U,EAAO/U,KACdi/H,EAAaj/H,EAAKxB,OAClBklG,EAAW3jD,EAAQ,EACnB1/B,EAAO,EAEJqjF,IAAau7B,IAAeh1F,MAAM5pB,EAAOrgB,EAAK8/E,WAAW4jB,MAAwB,KAATrjF,GAC/EA,GAAQ,IAAMA,GAAQ,IACtBA,GAAQ,IAAMA,GAAQ,IACtBA,GAAQ,IAAMA,GAAQ,QAElBqjF,EAGJ,OAAO,IAAI,IAAM44B,EAAUl3C,KAAMrlC,EAAO2jD,EAAU1nD,EAAM0jF,EAAKznF,EAAMj4C,EAAKsB,MAAMy+C,EAAO2jD,ICzlBhF,IAAI,EAAsB,WAC/B,SAASnhB,EAAOxtE,EAAQxG,GACtB,IAAI6xH,EAAY,YAASrrH,GAAUA,EAAS,IAAI,IAAOA,GACvDjX,KAAKuiI,OAAS,IAAI,EAAMD,GACxBtiI,KAAK6+F,SAAWpuF,EAOlB,IAAIkwH,EAASl8C,EAAOhlF,UA26CpB,OAz6CAkhI,EAAO6B,UAAY,WACjB,IAAIl0H,EAAQtO,KAAKyiI,YAAYjE,EAAUl3C,MACvC,MAAO,CACL97D,KAAM,IAAK87D,KACX5lF,MAAO4M,EAAM5M,MACbq8H,IAAK/9H,KAAK+9H,IAAIzvH,KASlBqyH,EAAO+B,cAAgB,WACrB,IAAIzgF,EAAQjiD,KAAKuiI,OAAOj0H,MACxB,MAAO,CACLkd,KAAM,IAAK+7D,SACXz7D,YAAa9rB,KAAKulH,KAAKiZ,EAAUC,IAAKz+H,KAAK2iI,gBAAiBnE,EAAUE,KACtEX,IAAK/9H,KAAK+9H,IAAI97E,KAelB0+E,EAAOgC,gBAAkB,WACvB,GAAI3iI,KAAKwpE,KAAKg1D,EAAUl3C,MACtB,OAAQtnF,KAAKuiI,OAAOj0H,MAAM5M,OACxB,IAAK,QACL,IAAK,WACL,IAAK,eACH,OAAO1B,KAAK4iI,2BAEd,IAAK,WACH,OAAO5iI,KAAK6iI,0BAEd,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,YACH,OAAO7iI,KAAK8iI,4BAEd,IAAK,SACH,OAAO9iI,KAAK+iI,+BAEX,IAAI/iI,KAAKwpE,KAAKg1D,EAAUc,SAC7B,OAAOt/H,KAAK4iI,2BACP,GAAI5iI,KAAKgjI,kBACd,OAAOhjI,KAAK8iI,4BAGd,MAAM9iI,KAAKijI,cAUbtC,EAAOiC,yBAA2B,WAChC,IAAI3gF,EAAQjiD,KAAKuiI,OAAOj0H,MAExB,GAAItO,KAAKwpE,KAAKg1D,EAAUc,SACtB,MAAO,CACL9zG,KAAM,IAAKg8D,qBACXn8D,UAAW,QACX3Q,UAAMiI,EACNqJ,oBAAqB,GACrBumB,WAAY,GACZ7B,aAAc1wC,KAAKkjI,oBACnBnF,IAAK/9H,KAAK+9H,IAAI97E,IAIlB,IACIvnC,EADA2Q,EAAYrrB,KAAKmjI,qBAOrB,OAJInjI,KAAKwpE,KAAKg1D,EAAUl3C,QACtB5sE,EAAO1a,KAAKwiI,aAGP,CACLh3G,KAAM,IAAKg8D,qBACXn8D,UAAWA,EACX3Q,KAAMA,EACNsR,oBAAqBhsB,KAAKojI,2BAC1B7wF,WAAYvyC,KAAKqjI,iBAAgB,GACjC3yF,aAAc1wC,KAAKkjI,oBACnBnF,IAAK/9H,KAAK+9H,IAAI97E,KAQlB0+E,EAAOwC,mBAAqB,WAC1B,IAAIG,EAAiBtjI,KAAKyiI,YAAYjE,EAAUl3C,MAEhD,OAAQg8C,EAAe5hI,OACrB,IAAK,QACH,MAAO,QAET,IAAK,WACH,MAAO,WAET,IAAK,eACH,MAAO,eAGX,MAAM1B,KAAKijI,WAAWK,IAOxB3C,EAAOyC,yBAA2B,WAChC,OAAOpjI,KAAKujI,aAAa/E,EAAUM,QAAS9+H,KAAKwjI,wBAAyBhF,EAAUO,UAOtF4B,EAAO6C,wBAA0B,WAC/B,IAAIvhF,EAAQjiD,KAAKuiI,OAAOj0H,MACxB,MAAO,CACLkd,KAAM,IAAKi8D,oBACXhzC,SAAUz0C,KAAKyjI,gBACfzrH,MAAOhY,KAAKyiI,YAAYjE,EAAUS,OAAQj/H,KAAK0jI,sBAC/CtsG,aAAcp3B,KAAK2jI,oBAAoBnF,EAAUU,QAAUl/H,KAAK4jI,mBAAkB,QAAQjhH,EAC1F4vB,WAAYvyC,KAAKqjI,iBAAgB,GACjCtF,IAAK/9H,KAAK+9H,IAAI97E,KAQlB0+E,EAAO8C,cAAgB,WACrB,IAAIxhF,EAAQjiD,KAAKuiI,OAAOj0H,MAExB,OADAtO,KAAKyiI,YAAYjE,EAAUI,QACpB,CACLpzG,KAAM,IAAKu8D,SACXrtE,KAAM1a,KAAKwiI,YACXzE,IAAK/9H,KAAK+9H,IAAI97E,KAQlB0+E,EAAOuC,kBAAoB,WACzB,IAAIjhF,EAAQjiD,KAAKuiI,OAAOj0H,MACxB,MAAO,CACLkd,KAAM,IAAKk8D,cACX/2C,WAAY3wC,KAAKulH,KAAKiZ,EAAUc,QAASt/H,KAAK6jI,eAAgBrF,EAAUgB,SACxEzB,IAAK/9H,KAAK+9H,IAAI97E,KAWlB0+E,EAAOkD,eAAiB,WACtB,OAAO7jI,KAAKwpE,KAAKg1D,EAAUQ,QAAUh/H,KAAK8jI,gBAAkB9jI,KAAK+jI,cASnEpD,EAAOoD,WAAa,WAClB,IAEI3wF,EACA14B,EAHAunC,EAAQjiD,KAAKuiI,OAAOj0H,MACpB01H,EAAchkI,KAAKwiI,YAWvB,OAPIxiI,KAAK2jI,oBAAoBnF,EAAUS,QACrC7rF,EAAQ4wF,EACRtpH,EAAO1a,KAAKwiI,aAEZ9nH,EAAOspH,EAGF,CACLx4G,KAAM,IAAKm8D,MACXv0C,MAAOA,EACP14B,KAAMA,EACNja,UAAWT,KAAKikI,gBAAe,GAC/B1xF,WAAYvyC,KAAKqjI,iBAAgB,GACjC3yF,aAAc1wC,KAAKwpE,KAAKg1D,EAAUc,SAAWt/H,KAAKkjI,yBAAsBvgH,EACxEo7G,IAAK/9H,KAAK+9H,IAAI97E,KAQlB0+E,EAAOsD,eAAiB,SAAwBC,GAC9C,IAAI7zF,EAAO6zF,EAAUlkI,KAAKmkI,mBAAqBnkI,KAAKokI,cACpD,OAAOpkI,KAAKujI,aAAa/E,EAAUM,QAASzuF,EAAMmuF,EAAUO,UAO9D4B,EAAOyD,cAAgB,WACrB,IAAIniF,EAAQjiD,KAAKuiI,OAAOj0H,MACpBoM,EAAO1a,KAAKwiI,YAEhB,OADAxiI,KAAKyiI,YAAYjE,EAAUS,OACpB,CACLzzG,KAAM,IAAKo8D,SACXltE,KAAMA,EACNhZ,MAAO1B,KAAK4jI,mBAAkB,GAC9B7F,IAAK/9H,KAAK+9H,IAAI97E,KAIlB0+E,EAAOwD,mBAAqB,WAC1B,IAAIliF,EAAQjiD,KAAKuiI,OAAOj0H,MACxB,MAAO,CACLkd,KAAM,IAAKo8D,SACXltE,KAAM1a,KAAKwiI,YACX9gI,OAAQ1B,KAAKyiI,YAAYjE,EAAUS,OAAQj/H,KAAK4jI,mBAAkB,IAClE7F,IAAK/9H,KAAK+9H,IAAI97E,KAalB0+E,EAAOmD,cAAgB,WACrB,IAAI7hF,EAAQjiD,KAAKuiI,OAAOj0H,MACxBtO,KAAKyiI,YAAYjE,EAAUQ,QAC3B,IAAIqF,EAAmBrkI,KAAKskI,sBAAsB,MAElD,OAAKD,GAAoBrkI,KAAKwpE,KAAKg1D,EAAUl3C,MACpC,CACL97D,KAAM,IAAKq/C,gBACXnwD,KAAM1a,KAAKukI,oBACXhyF,WAAYvyC,KAAKqjI,iBAAgB,GACjCtF,IAAK/9H,KAAK+9H,IAAI97E,IAIX,CACLz2B,KAAM,IAAKq8D,gBACXxoC,cAAeglF,EAAmBrkI,KAAKwkI,sBAAmB7hH,EAC1D4vB,WAAYvyC,KAAKqjI,iBAAgB,GACjC3yF,aAAc1wC,KAAKkjI,oBACnBnF,IAAK/9H,KAAK+9H,IAAI97E,KAWlB0+E,EAAOkC,wBAA0B,WAC/B,IAAI4B,EAEAxiF,EAAQjiD,KAAKuiI,OAAOj0H,MAKxB,OAJAtO,KAAK0kI,cAAc,aAIsH,KAA/F,QAApCD,EAAiBzkI,KAAK6+F,gBAAyC,IAAnB4lC,OAA4B,EAASA,EAAeE,+BAC7F,CACLn5G,KAAM,IAAKs8D,oBACXptE,KAAM1a,KAAKukI,oBACXv4G,oBAAqBhsB,KAAKojI,2BAC1B/jF,eAAgBr/C,KAAK0kI,cAAc,MAAO1kI,KAAKwkI,kBAC/CjyF,WAAYvyC,KAAKqjI,iBAAgB,GACjC3yF,aAAc1wC,KAAKkjI,oBACnBnF,IAAK/9H,KAAK+9H,IAAI97E,IAIX,CACLz2B,KAAM,IAAKs8D,oBACXptE,KAAM1a,KAAKukI,oBACXllF,eAAgBr/C,KAAK0kI,cAAc,MAAO1kI,KAAKwkI,kBAC/CjyF,WAAYvyC,KAAKqjI,iBAAgB,GACjC3yF,aAAc1wC,KAAKkjI,oBACnBnF,IAAK/9H,KAAK+9H,IAAI97E,KAQlB0+E,EAAO4D,kBAAoB,WACzB,GAAgC,OAA5BvkI,KAAKuiI,OAAOj0H,MAAM5M,MACpB,MAAM1B,KAAKijI,aAGb,OAAOjjI,KAAKwiI,aAuBd7B,EAAOiD,kBAAoB,SAA2BM,GACpD,IAAI51H,EAAQtO,KAAKuiI,OAAOj0H,MAExB,OAAQA,EAAMkd,MACZ,KAAKgzG,EAAUY,UACb,OAAOp/H,KAAK4kI,UAAUV,GAExB,KAAK1F,EAAUc,QACb,OAAOt/H,KAAK6kI,YAAYX,GAE1B,KAAK1F,EAAUx2C,IAGb,OAFAhoF,KAAKuiI,OAAO3B,UAEL,CACLp1G,KAAM,IAAKw8D,IACXtmF,MAAO4M,EAAM5M,MACbq8H,IAAK/9H,KAAK+9H,IAAIzvH,IAGlB,KAAKkwH,EAAUv2C,MAGb,OAFAjoF,KAAKuiI,OAAO3B,UAEL,CACLp1G,KAAM,IAAKy8D,MACXvmF,MAAO4M,EAAM5M,MACbq8H,IAAK/9H,KAAK+9H,IAAIzvH,IAGlB,KAAKkwH,EAAUt2C,OACf,KAAKs2C,EAAUiB,aACb,OAAOz/H,KAAK8kI,qBAEd,KAAKtG,EAAUl3C,KAGb,OAFAtnF,KAAKuiI,OAAO3B,UAEJtyH,EAAM5M,OACZ,IAAK,OACH,MAAO,CACL8pB,KAAM,IAAK28D,QACXzmF,OAAO,EACPq8H,IAAK/9H,KAAK+9H,IAAIzvH,IAGlB,IAAK,QACH,MAAO,CACLkd,KAAM,IAAK28D,QACXzmF,OAAO,EACPq8H,IAAK/9H,KAAK+9H,IAAIzvH,IAGlB,IAAK,OACH,MAAO,CACLkd,KAAM,IAAK48D,KACX21C,IAAK/9H,KAAK+9H,IAAIzvH,IAGlB,QACE,MAAO,CACLkd,KAAM,IAAK68D,KACX3mF,MAAO4M,EAAM5M,MACbq8H,IAAK/9H,KAAK+9H,IAAIzvH,IAItB,KAAKkwH,EAAUI,OACb,IAAKsF,EACH,OAAOlkI,KAAKyjI,gBAMlB,MAAMzjI,KAAKijI,cAGbtC,EAAOmE,mBAAqB,WAC1B,IAAIx2H,EAAQtO,KAAKuiI,OAAOj0H,MAIxB,OAFAtO,KAAKuiI,OAAO3B,UAEL,CACLp1G,KAAM,IAAK08D,OACXxmF,MAAO4M,EAAM5M,MACbq9C,MAAOzwC,EAAMkd,OAASgzG,EAAUiB,aAChC1B,IAAK/9H,KAAK+9H,IAAIzvH,KAUlBqyH,EAAOiE,UAAY,SAAmBV,GACpC,IAAIlzG,EAAQhxB,KAERiiD,EAAQjiD,KAAKuiI,OAAOj0H,MAMxB,MAAO,CACLkd,KAAM,IAAK88D,KACX3wE,OAAQ3X,KAAKsb,IAAIkjH,EAAUY,WANlB,WACT,OAAOpuG,EAAM4yG,kBAAkBM,KAKa1F,EAAUa,WACtDtB,IAAK/9H,KAAK+9H,IAAI97E,KAUlB0+E,EAAOkE,YAAc,SAAqBX,GACxC,IAAI3uG,EAASv1B,KAETiiD,EAAQjiD,KAAKuiI,OAAOj0H,MAMxB,MAAO,CACLkd,KAAM,IAAK+8D,OACX32C,OAAQ5xC,KAAKsb,IAAIkjH,EAAUc,SANlB,WACT,OAAO/pG,EAAOwvG,iBAAiBb,KAKW1F,EAAUgB,SACpDzB,IAAK/9H,KAAK+9H,IAAI97E,KAQlB0+E,EAAOoE,iBAAmB,SAA0Bb,GAClD,IAAIjiF,EAAQjiD,KAAKuiI,OAAOj0H,MACpBoM,EAAO1a,KAAKwiI,YAEhB,OADAxiI,KAAKyiI,YAAYjE,EAAUS,OACpB,CACLzzG,KAAM,IAAKg9D,aACX9tE,KAAMA,EACNhZ,MAAO1B,KAAK4jI,kBAAkBM,GAC9BnG,IAAK/9H,KAAK+9H,IAAI97E,KASlB0+E,EAAO0C,gBAAkB,SAAyBa,GAGhD,IAFA,IAAI3xF,EAAa,GAEVvyC,KAAKwpE,KAAKg1D,EAAUW,KACzB5sF,EAAWtvC,KAAKjD,KAAKglI,eAAed,IAGtC,OAAO3xF,GAOTouF,EAAOqE,eAAiB,SAAwBd,GAC9C,IAAIjiF,EAAQjiD,KAAKuiI,OAAOj0H,MAExB,OADAtO,KAAKyiI,YAAYjE,EAAUW,IACpB,CACL3zG,KAAM,IAAKi9D,UACX/tE,KAAM1a,KAAKwiI,YACX/hI,UAAWT,KAAKikI,eAAeC,GAC/BnG,IAAK/9H,KAAK+9H,IAAI97E,KAYlB0+E,EAAO+C,mBAAqB,WAC1B,IACI1rH,EADAiqC,EAAQjiD,KAAKuiI,OAAOj0H,MAexB,OAZItO,KAAK2jI,oBAAoBnF,EAAUY,YACrCpnH,EAAOhY,KAAK0jI,qBACZ1jI,KAAKyiI,YAAYjE,EAAUa,WAC3BrnH,EAAO,CACLwT,KAAM,IAAKm9D,UACX3wE,KAAMA,EACN+lH,IAAK/9H,KAAK+9H,IAAI97E,KAGhBjqC,EAAOhY,KAAKwkI,iBAGVxkI,KAAK2jI,oBAAoBnF,EAAUG,MAC9B,CACLnzG,KAAM,IAAKo9D,cACX5wE,KAAMA,EACN+lH,IAAK/9H,KAAK+9H,IAAI97E,IAIXjqC,GAOT2oH,EAAO6D,eAAiB,WACtB,IAAIviF,EAAQjiD,KAAKuiI,OAAOj0H,MACxB,MAAO,CACLkd,KAAM,IAAKk9D,WACXhuE,KAAM1a,KAAKwiI,YACXzE,IAAK/9H,KAAK+9H,IAAI97E,KAoBlB0+E,EAAOmC,0BAA4B,WAEjC,IAAImC,EAAejlI,KAAKgjI,kBAAoBhjI,KAAKuiI,OAAO1B,YAAc7gI,KAAKuiI,OAAOj0H,MAElF,GAAI22H,EAAaz5G,OAASgzG,EAAUl3C,KAClC,OAAQ29C,EAAavjI,OACnB,IAAK,SACH,OAAO1B,KAAKklI,wBAEd,IAAK,SACH,OAAOllI,KAAKmlI,4BAEd,IAAK,OACH,OAAOnlI,KAAKolI,4BAEd,IAAK,YACH,OAAOplI,KAAKqlI,+BAEd,IAAK,QACH,OAAOrlI,KAAKslI,2BAEd,IAAK,OACH,OAAOtlI,KAAKulI,0BAEd,IAAK,QACH,OAAOvlI,KAAKwlI,iCAEd,IAAK,YACH,OAAOxlI,KAAKylI,2BAIlB,MAAMzlI,KAAKijI,WAAWgC,IAGxBtE,EAAOqC,gBAAkB,WACvB,OAAOhjI,KAAKwpE,KAAKg1D,EAAUt2C,SAAWloF,KAAKwpE,KAAKg1D,EAAUiB,eAO5DkB,EAAO+E,iBAAmB,WACxB,GAAI1lI,KAAKgjI,kBACP,OAAOhjI,KAAK8kI,sBAQhBnE,EAAOuE,sBAAwB,WAC7B,IAAIjjF,EAAQjiD,KAAKuiI,OAAOj0H,MACpBwW,EAAc9kB,KAAK0lI,mBACvB1lI,KAAK0kI,cAAc,UACnB,IAAInyF,EAAavyC,KAAKqjI,iBAAgB,GAClChjF,EAAiBrgD,KAAKulH,KAAKiZ,EAAUc,QAASt/H,KAAK2lI,6BAA8BnH,EAAUgB,SAC/F,MAAO,CACLh0G,KAAM,IAAKq9D,kBACX/jE,YAAaA,EACbytB,WAAYA,EACZ8N,eAAgBA,EAChB09E,IAAK/9H,KAAK+9H,IAAI97E,KAQlB0+E,EAAOgF,6BAA+B,WACpC,IAAI1jF,EAAQjiD,KAAKuiI,OAAOj0H,MACpB+c,EAAYrrB,KAAKmjI,qBACrBnjI,KAAKyiI,YAAYjE,EAAUS,OAC3B,IAAIjnH,EAAOhY,KAAKwkI,iBAChB,MAAO,CACLh5G,KAAM,IAAKs9D,0BACXz9D,UAAWA,EACXrT,KAAMA,EACN+lH,IAAK/9H,KAAK+9H,IAAI97E,KAQlB0+E,EAAOwE,0BAA4B,WACjC,IAAIljF,EAAQjiD,KAAKuiI,OAAOj0H,MACpBwW,EAAc9kB,KAAK0lI,mBACvB1lI,KAAK0kI,cAAc,UACnB,IAAIhqH,EAAO1a,KAAKwiI,YACZjwF,EAAavyC,KAAKqjI,iBAAgB,GACtC,MAAO,CACL73G,KAAM,IAAKu9D,uBACXjkE,YAAaA,EACbpK,KAAMA,EACN63B,WAAYA,EACZwrF,IAAK/9H,KAAK+9H,IAAI97E,KAUlB0+E,EAAOyE,0BAA4B,WACjC,IAAInjF,EAAQjiD,KAAKuiI,OAAOj0H,MACpBwW,EAAc9kB,KAAK0lI,mBACvB1lI,KAAK0kI,cAAc,QACnB,IAAIhqH,EAAO1a,KAAKwiI,YACZ/hF,EAAazgD,KAAK4lI,4BAClBrzF,EAAavyC,KAAKqjI,iBAAgB,GAClCzxF,EAAS5xC,KAAK6lI,wBAClB,MAAO,CACLr6G,KAAM,IAAKw9D,uBACXlkE,YAAaA,EACbpK,KAAMA,EACN+lC,WAAYA,EACZlO,WAAYA,EACZX,OAAQA,EACRmsF,IAAK/9H,KAAK+9H,IAAI97E,KAUlB0+E,EAAOiF,0BAA4B,WACjC,IAAIE,EAEJ,IAAK9lI,KAAKskI,sBAAsB,cAC9B,MAAO,GAGT,IAAiJ,KAAtG,QAArCwB,EAAkB9lI,KAAK6+F,gBAA0C,IAApBinC,OAA6B,EAASA,EAAgBC,oCAA8C,CACrJ,IAAIhlF,EAAQ,GAEZ/gD,KAAK2jI,oBAAoBnF,EAAUK,KAEnC,GACE99E,EAAM99C,KAAKjD,KAAKwkI,wBACTxkI,KAAK2jI,oBAAoBnF,EAAUK,MAAQ7+H,KAAKwpE,KAAKg1D,EAAUl3C,OAExE,OAAOvmC,EAGT,OAAO/gD,KAAKgmI,cAAcxH,EAAUK,IAAK7+H,KAAKwkI,iBAOhD7D,EAAOkF,sBAAwB,WAC7B,IAAII,EAGJ,OAAwI,KAA7F,QAArCA,EAAkBjmI,KAAK6+F,gBAA0C,IAApBonC,OAA6B,EAASA,EAAgBC,4BAAuClmI,KAAKwpE,KAAKg1D,EAAUc,UAAYt/H,KAAKuiI,OAAO1B,YAAYr1G,OAASgzG,EAAUgB,SACzNx/H,KAAKuiI,OAAO3B,UAEZ5gI,KAAKuiI,OAAO3B,UAEL,IAGF5gI,KAAKujI,aAAa/E,EAAUc,QAASt/H,KAAKmmI,qBAAsB3H,EAAUgB,UAQnFmB,EAAOwF,qBAAuB,WAC5B,IAAIlkF,EAAQjiD,KAAKuiI,OAAOj0H,MACpBwW,EAAc9kB,KAAK0lI,mBACnBhrH,EAAO1a,KAAKwiI,YACZrrH,EAAOnX,KAAKomI,oBAChBpmI,KAAKyiI,YAAYjE,EAAUS,OAC3B,IAAIjnH,EAAOhY,KAAK0jI,qBACZnxF,EAAavyC,KAAKqjI,iBAAgB,GACtC,MAAO,CACL73G,KAAM,IAAKy9D,iBACXnkE,YAAaA,EACbpK,KAAMA,EACNja,UAAW0W,EACXa,KAAMA,EACNu6B,WAAYA,EACZwrF,IAAK/9H,KAAK+9H,IAAI97E,KAQlB0+E,EAAOyF,kBAAoB,WACzB,OAAOpmI,KAAKujI,aAAa/E,EAAUM,QAAS9+H,KAAKqmI,mBAAoB7H,EAAUO,UAQjF4B,EAAO0F,mBAAqB,WAC1B,IAAIpkF,EAAQjiD,KAAKuiI,OAAOj0H,MACpBwW,EAAc9kB,KAAK0lI,mBACnBhrH,EAAO1a,KAAKwiI,YAChBxiI,KAAKyiI,YAAYjE,EAAUS,OAC3B,IACI7nG,EADApf,EAAOhY,KAAK0jI,qBAGZ1jI,KAAK2jI,oBAAoBnF,EAAUU,UACrC9nG,EAAep3B,KAAK4jI,mBAAkB,IAGxC,IAAIrxF,EAAavyC,KAAKqjI,iBAAgB,GACtC,MAAO,CACL73G,KAAM,IAAK09D,uBACXpkE,YAAaA,EACbpK,KAAMA,EACN1C,KAAMA,EACNof,aAAcA,EACdmb,WAAYA,EACZwrF,IAAK/9H,KAAK+9H,IAAI97E,KASlB0+E,EAAO0E,6BAA+B,WACpC,IAAIpjF,EAAQjiD,KAAKuiI,OAAOj0H,MACpBwW,EAAc9kB,KAAK0lI,mBACvB1lI,KAAK0kI,cAAc,aACnB,IAAIhqH,EAAO1a,KAAKwiI,YACZ/hF,EAAazgD,KAAK4lI,4BAClBrzF,EAAavyC,KAAKqjI,iBAAgB,GAClCzxF,EAAS5xC,KAAK6lI,wBAClB,MAAO,CACLr6G,KAAM,IAAK29D,0BACXrkE,YAAaA,EACbpK,KAAMA,EACN+lC,WAAYA,EACZlO,WAAYA,EACZX,OAAQA,EACRmsF,IAAK/9H,KAAK+9H,IAAI97E,KASlB0+E,EAAO2E,yBAA2B,WAChC,IAAIrjF,EAAQjiD,KAAKuiI,OAAOj0H,MACpBwW,EAAc9kB,KAAK0lI,mBACvB1lI,KAAK0kI,cAAc,SACnB,IAAIhqH,EAAO1a,KAAKwiI,YACZjwF,EAAavyC,KAAKqjI,iBAAgB,GAClCtiF,EAAQ/gD,KAAKsmI,wBACjB,MAAO,CACL96G,KAAM,IAAK49D,sBACXtkE,YAAaA,EACbpK,KAAMA,EACN63B,WAAYA,EACZwO,MAAOA,EACPg9E,IAAK/9H,KAAK+9H,IAAI97E,KAUlB0+E,EAAO2F,sBAAwB,WAC7B,OAAOtmI,KAAK2jI,oBAAoBnF,EAAUU,QAAUl/H,KAAKgmI,cAAcxH,EAAUe,KAAMv/H,KAAKwkI,gBAAkB,IAQhH7D,EAAO4E,wBAA0B,WAC/B,IAAItjF,EAAQjiD,KAAKuiI,OAAOj0H,MACpBwW,EAAc9kB,KAAK0lI,mBACvB1lI,KAAK0kI,cAAc,QACnB,IAAIhqH,EAAO1a,KAAKwiI,YACZjwF,EAAavyC,KAAKqjI,iBAAgB,GAClC1rH,EAAS3X,KAAKumI,4BAClB,MAAO,CACL/6G,KAAM,IAAK69D,qBACXvkE,YAAaA,EACbpK,KAAMA,EACN63B,WAAYA,EACZ56B,OAAQA,EACRomH,IAAK/9H,KAAK+9H,IAAI97E,KAQlB0+E,EAAO4F,0BAA4B,WACjC,OAAOvmI,KAAKujI,aAAa/E,EAAUc,QAASt/H,KAAKwmI,yBAA0BhI,EAAUgB,UASvFmB,EAAO6F,yBAA2B,WAChC,IAAIvkF,EAAQjiD,KAAKuiI,OAAOj0H,MACpBwW,EAAc9kB,KAAK0lI,mBACnBhrH,EAAO1a,KAAKwiI,YACZjwF,EAAavyC,KAAKqjI,iBAAgB,GACtC,MAAO,CACL73G,KAAM,IAAK89D,sBACXxkE,YAAaA,EACbpK,KAAMA,EACN63B,WAAYA,EACZwrF,IAAK/9H,KAAK+9H,IAAI97E,KASlB0+E,EAAO6E,+BAAiC,WACtC,IAAIvjF,EAAQjiD,KAAKuiI,OAAOj0H,MACpBwW,EAAc9kB,KAAK0lI,mBACvB1lI,KAAK0kI,cAAc,SACnB,IAAIhqH,EAAO1a,KAAKwiI,YACZjwF,EAAavyC,KAAKqjI,iBAAgB,GAClCzxF,EAAS5xC,KAAKymI,6BAClB,MAAO,CACLj7G,KAAM,IAAK+9D,6BACXzkE,YAAaA,EACbpK,KAAMA,EACN63B,WAAYA,EACZX,OAAQA,EACRmsF,IAAK/9H,KAAK+9H,IAAI97E,KAQlB0+E,EAAO8F,2BAA6B,WAClC,OAAOzmI,KAAKujI,aAAa/E,EAAUc,QAASt/H,KAAKqmI,mBAAoB7H,EAAUgB,UAiBjFmB,EAAOoC,yBAA2B,WAChC,IAAIkC,EAAejlI,KAAKuiI,OAAO1B,YAE/B,GAAIoE,EAAaz5G,OAASgzG,EAAUl3C,KAClC,OAAQ29C,EAAavjI,OACnB,IAAK,SACH,OAAO1B,KAAK0mI,uBAEd,IAAK,SACH,OAAO1mI,KAAK2mI,2BAEd,IAAK,OACH,OAAO3mI,KAAK4mI,2BAEd,IAAK,YACH,OAAO5mI,KAAK6mI,8BAEd,IAAK,QACH,OAAO7mI,KAAK8mI,0BAEd,IAAK,OACH,OAAO9mI,KAAK+mI,yBAEd,IAAK,QACH,OAAO/mI,KAAKgnI,gCAIlB,MAAMhnI,KAAKijI,WAAWgC,IASxBtE,EAAO+F,qBAAuB,WAC5B,IAAIzkF,EAAQjiD,KAAKuiI,OAAOj0H,MACxBtO,KAAK0kI,cAAc,UACnB1kI,KAAK0kI,cAAc,UACnB,IAAInyF,EAAavyC,KAAKqjI,iBAAgB,GAClChjF,EAAiBrgD,KAAKujI,aAAa/E,EAAUc,QAASt/H,KAAK2lI,6BAA8BnH,EAAUgB,SAEvG,GAA0B,IAAtBjtF,EAAW7xC,QAA0C,IAA1B2/C,EAAe3/C,OAC5C,MAAMV,KAAKijI,aAGb,MAAO,CACLz3G,KAAM,IAAKi+D,iBACXl3C,WAAYA,EACZ8N,eAAgBA,EAChB09E,IAAK/9H,KAAK+9H,IAAI97E,KASlB0+E,EAAOgG,yBAA2B,WAChC,IAAI1kF,EAAQjiD,KAAKuiI,OAAOj0H,MACxBtO,KAAK0kI,cAAc,UACnB1kI,KAAK0kI,cAAc,UACnB,IAAIhqH,EAAO1a,KAAKwiI,YACZjwF,EAAavyC,KAAKqjI,iBAAgB,GAEtC,GAA0B,IAAtB9wF,EAAW7xC,OACb,MAAMV,KAAKijI,aAGb,MAAO,CACLz3G,KAAM,IAAKk+D,sBACXhvE,KAAMA,EACN63B,WAAYA,EACZwrF,IAAK/9H,KAAK+9H,IAAI97E,KAWlB0+E,EAAOiG,yBAA2B,WAChC,IAAI3kF,EAAQjiD,KAAKuiI,OAAOj0H,MACxBtO,KAAK0kI,cAAc,UACnB1kI,KAAK0kI,cAAc,QACnB,IAAIhqH,EAAO1a,KAAKwiI,YACZ/hF,EAAazgD,KAAK4lI,4BAClBrzF,EAAavyC,KAAKqjI,iBAAgB,GAClCzxF,EAAS5xC,KAAK6lI,wBAElB,GAA0B,IAAtBplF,EAAW//C,QAAsC,IAAtB6xC,EAAW7xC,QAAkC,IAAlBkxC,EAAOlxC,OAC/D,MAAMV,KAAKijI,aAGb,MAAO,CACLz3G,KAAM,IAAKm+D,sBACXjvE,KAAMA,EACN+lC,WAAYA,EACZlO,WAAYA,EACZX,OAAQA,EACRmsF,IAAK/9H,KAAK+9H,IAAI97E,KAWlB0+E,EAAOkG,4BAA8B,WACnC,IAAI5kF,EAAQjiD,KAAKuiI,OAAOj0H,MACxBtO,KAAK0kI,cAAc,UACnB1kI,KAAK0kI,cAAc,aACnB,IAAIhqH,EAAO1a,KAAKwiI,YACZ/hF,EAAazgD,KAAK4lI,4BAClBrzF,EAAavyC,KAAKqjI,iBAAgB,GAClCzxF,EAAS5xC,KAAK6lI,wBAElB,GAA0B,IAAtBplF,EAAW//C,QAAsC,IAAtB6xC,EAAW7xC,QAAkC,IAAlBkxC,EAAOlxC,OAC/D,MAAMV,KAAKijI,aAGb,MAAO,CACLz3G,KAAM,IAAKo+D,yBACXlvE,KAAMA,EACN+lC,WAAYA,EACZlO,WAAYA,EACZX,OAAQA,EACRmsF,IAAK/9H,KAAK+9H,IAAI97E,KAUlB0+E,EAAOmG,wBAA0B,WAC/B,IAAI7kF,EAAQjiD,KAAKuiI,OAAOj0H,MACxBtO,KAAK0kI,cAAc,UACnB1kI,KAAK0kI,cAAc,SACnB,IAAIhqH,EAAO1a,KAAKwiI,YACZjwF,EAAavyC,KAAKqjI,iBAAgB,GAClCtiF,EAAQ/gD,KAAKsmI,wBAEjB,GAA0B,IAAtB/zF,EAAW7xC,QAAiC,IAAjBqgD,EAAMrgD,OACnC,MAAMV,KAAKijI,aAGb,MAAO,CACLz3G,KAAM,IAAKq+D,qBACXnvE,KAAMA,EACN63B,WAAYA,EACZwO,MAAOA,EACPg9E,IAAK/9H,KAAK+9H,IAAI97E,KAUlB0+E,EAAOoG,uBAAyB,WAC9B,IAAI9kF,EAAQjiD,KAAKuiI,OAAOj0H,MACxBtO,KAAK0kI,cAAc,UACnB1kI,KAAK0kI,cAAc,QACnB,IAAIhqH,EAAO1a,KAAKwiI,YACZjwF,EAAavyC,KAAKqjI,iBAAgB,GAClC1rH,EAAS3X,KAAKumI,4BAElB,GAA0B,IAAtBh0F,EAAW7xC,QAAkC,IAAlBiX,EAAOjX,OACpC,MAAMV,KAAKijI,aAGb,MAAO,CACLz3G,KAAM,IAAKs+D,oBACXpvE,KAAMA,EACN63B,WAAYA,EACZ56B,OAAQA,EACRomH,IAAK/9H,KAAK+9H,IAAI97E,KAUlB0+E,EAAOqG,8BAAgC,WACrC,IAAI/kF,EAAQjiD,KAAKuiI,OAAOj0H,MACxBtO,KAAK0kI,cAAc,UACnB1kI,KAAK0kI,cAAc,SACnB,IAAIhqH,EAAO1a,KAAKwiI,YACZjwF,EAAavyC,KAAKqjI,iBAAgB,GAClCzxF,EAAS5xC,KAAKymI,6BAElB,GAA0B,IAAtBl0F,EAAW7xC,QAAkC,IAAlBkxC,EAAOlxC,OACpC,MAAMV,KAAKijI,aAGb,MAAO,CACLz3G,KAAM,IAAKu+D,4BACXrvE,KAAMA,EACN63B,WAAYA,EACZX,OAAQA,EACRmsF,IAAK/9H,KAAK+9H,IAAI97E,KASlB0+E,EAAO8E,yBAA2B,WAChC,IAAIxjF,EAAQjiD,KAAKuiI,OAAOj0H,MACpBwW,EAAc9kB,KAAK0lI,mBACvB1lI,KAAK0kI,cAAc,aACnB1kI,KAAKyiI,YAAYjE,EAAUW,IAC3B,IAAIzkH,EAAO1a,KAAKwiI,YACZrrH,EAAOnX,KAAKomI,oBACZhlF,EAAaphD,KAAKskI,sBAAsB,cAC5CtkI,KAAK0kI,cAAc,MACnB,IAAIrjF,EAAYrhD,KAAKinI,0BACrB,MAAO,CACLz7G,KAAM,IAAKg+D,qBACX1kE,YAAaA,EACbpK,KAAMA,EACNja,UAAW0W,EACXiqC,WAAYA,EACZC,UAAWA,EACX08E,IAAK/9H,KAAK+9H,IAAI97E,KAUlB0+E,EAAOsG,wBAA0B,WAC/B,OAAOjnI,KAAKgmI,cAAcxH,EAAUe,KAAMv/H,KAAKknI,yBA+BjDvG,EAAOuG,uBAAyB,WAC9B,IAAIjlF,EAAQjiD,KAAKuiI,OAAOj0H,MACpBoM,EAAO1a,KAAKwiI,YAEhB,QAAsC7/G,IAAlCg9G,EAAkBjlH,EAAKhZ,OACzB,OAAOgZ,EAGT,MAAM1a,KAAKijI,WAAWhhF,IAQxB0+E,EAAO5C,IAAM,SAAapL,GACxB,IAAIwU,EAEJ,IAAyH,KAA9E,QAArCA,EAAkBnnI,KAAK6+F,gBAA0C,IAApBsoC,OAA6B,EAASA,EAAgBC,YACvG,OAAO,IAAI,IAASzU,EAAY3yH,KAAKuiI,OAAO9B,UAAWzgI,KAAKuiI,OAAOtrH,SAQvE0pH,EAAOn3D,KAAO,SAAch+C,GAC1B,OAAOxrB,KAAKuiI,OAAOj0H,MAAMkd,OAASA,GAQpCm1G,EAAO8B,YAAc,SAAqBj3G,GACxC,IAAIld,EAAQtO,KAAKuiI,OAAOj0H,MAExB,GAAIA,EAAMkd,OAASA,EAGjB,OAFAxrB,KAAKuiI,OAAO3B,UAELtyH,EAGT,MAAMiwH,EAAYv+H,KAAKuiI,OAAOtrH,OAAQ3I,EAAM2zC,MAAO,YAAYx+C,OAAO4jI,EAAiB77G,GAAO,YAAY/nB,OAAO6jI,EAAah5H,GAAQ,OAQxIqyH,EAAOgD,oBAAsB,SAA6Bn4G,GACxD,IAAIld,EAAQtO,KAAKuiI,OAAOj0H,MAExB,GAAIA,EAAMkd,OAASA,EAGjB,OAFAxrB,KAAKuiI,OAAO3B,UAELtyH,GAWXqyH,EAAO+D,cAAgB,SAAuBhjI,GAC5C,IAAI4M,EAAQtO,KAAKuiI,OAAOj0H,MAExB,GAAIA,EAAMkd,OAASgzG,EAAUl3C,MAAQh5E,EAAM5M,QAAUA,EAGnD,MAAM68H,EAAYv+H,KAAKuiI,OAAOtrH,OAAQ3I,EAAM2zC,MAAO,aAAcx+C,OAAO/B,EAAO,aAAc+B,OAAO6jI,EAAah5H,GAAQ,MAFzHtO,KAAKuiI,OAAO3B,WAWhBD,EAAO2D,sBAAwB,SAA+B5iI,GAC5D,IAAI4M,EAAQtO,KAAKuiI,OAAOj0H,MAExB,OAAIA,EAAMkd,OAASgzG,EAAUl3C,MAAQh5E,EAAM5M,QAAUA,IACnD1B,KAAKuiI,OAAO3B,WAEL,IAUXD,EAAOsC,WAAa,SAAoBsE,GACtC,IAAIj5H,EAAoB,OAAZi5H,QAAgC,IAAZA,EAAqBA,EAAUvnI,KAAKuiI,OAAOj0H,MAC3E,OAAOiwH,EAAYv+H,KAAKuiI,OAAOtrH,OAAQ3I,EAAM2zC,MAAO,cAAcx+C,OAAO6jI,EAAah5H,GAAQ,OAShGqyH,EAAOrlH,IAAM,SAAaksH,EAAUC,EAASC,GAC3C1nI,KAAKyiI,YAAY+E,GAGjB,IAFA,IAAIlK,EAAQ,IAEJt9H,KAAK2jI,oBAAoB+D,IAC/BpK,EAAMr6H,KAAKwkI,EAAQ9nI,KAAKK,OAG1B,OAAOs9H,GAUTqD,EAAO4C,aAAe,SAAsBiE,EAAUC,EAASC,GAC7D,GAAI1nI,KAAK2jI,oBAAoB6D,GAAW,CACtC,IAAIlK,EAAQ,GAEZ,GACEA,EAAMr6H,KAAKwkI,EAAQ9nI,KAAKK,cAChBA,KAAK2jI,oBAAoB+D,IAEnC,OAAOpK,EAGT,MAAO,IASTqD,EAAOpb,KAAO,SAAciiB,EAAUC,EAASC,GAC7C1nI,KAAKyiI,YAAY+E,GACjB,IAAIlK,EAAQ,GAEZ,GACEA,EAAMr6H,KAAKwkI,EAAQ9nI,KAAKK,cAChBA,KAAK2jI,oBAAoB+D,IAEnC,OAAOpK,GASTqD,EAAOqF,cAAgB,SAAuB2B,EAAeF,GAC3DznI,KAAK2jI,oBAAoBgE,GACzB,IAAIrK,EAAQ,GAEZ,GACEA,EAAMr6H,KAAKwkI,EAAQ9nI,KAAKK,aACjBA,KAAK2jI,oBAAoBgE,IAElC,OAAOrK,GAGF74C,EAt7CwB,GA47CjC,SAAS6iD,EAAah5H,GACpB,IAAI5M,EAAQ4M,EAAM5M,MAClB,OAAO2lI,EAAiB/4H,EAAMkd,OAAkB,MAAT9pB,EAAgB,KAAM+B,OAAO/B,EAAO,KAAQ,IAOrF,SAAS2lI,EAAiB77G,GACxB,OD97CK,SAA+BA,GACpC,OAAOA,IAASgzG,EAAUG,MAAQnzG,IAASgzG,EAAUI,QAAUpzG,IAASgzG,EAAUK,KAAOrzG,IAASgzG,EAAUM,SAAWtzG,IAASgzG,EAAUO,SAAWvzG,IAASgzG,EAAUQ,QAAUxzG,IAASgzG,EAAUS,OAASzzG,IAASgzG,EAAUU,QAAU1zG,IAASgzG,EAAUW,IAAM3zG,IAASgzG,EAAUY,WAAa5zG,IAASgzG,EAAUa,WAAa7zG,IAASgzG,EAAUc,SAAW9zG,IAASgzG,EAAUe,MAAQ/zG,IAASgzG,EAAUgB,QC67CzYoI,CAAsBp8G,GAAQ,IAAK/nB,OAAO+nB,EAAM,KAAQA,ECxgDjE,IAAIq8G,EAAW,IAAI78G,IACf88G,EAAoB,IAAI98G,IACxB+8G,GAAwB,EACxBpD,GAAgC,EAEpC,SAAS53D,EAAU3xD,GACjB,OAAOA,EAAO1E,QAAQ,UAAW,KAAKmoB,OAOxC,SAASmpG,EAAiBrpF,GACxB,IAAIspF,EAAW,IAAItsF,IACf7vB,EAAc,GAyBlB,OAxBA6yB,EAAI7yB,YAAYhP,SAAQ,SAAUs3B,GAChC,GAAgC,uBAA5BA,EAAmB5oB,KAA+B,CACpD,IAAIglB,EAAe4D,EAAmB15B,KAAKhZ,MACvC2lD,EATD0lB,GADgBgxD,EAUa3pF,EAAmB2pF,KATlC9mH,OAAO/U,KAAK+T,UAAU8nH,EAAI97E,MAAO87E,EAAI57E,MAUlD+lF,EAAeJ,EAAkBt+H,IAAIgnC,GAErC03F,IAAiBA,EAAa1gF,IAAIH,GAChC0gF,GACFp4G,QAAQD,KAAK,+BAAiC8gB,EAAjC,iMAEL03F,GACVJ,EAAkB/9G,IAAIymB,EAAc03F,EAAe,IAAIvsF,KAGzDusF,EAAaj+F,IAAIod,GAEZ4gF,EAASzgF,IAAIH,KAChB4gF,EAASh+F,IAAIod,GACbv7B,EAAY7oB,KAAKmxC,SAGnBtoB,EAAY7oB,KAAKmxC,GA5BvB,IAAyB2pF,KA+BhB,YAAS,YAAS,GAAIp/E,GAAM,CACjC7yB,YAAaA,IA0BjB,SAAS,EAAc7U,GACrB,IAAIu0D,EAAWuB,EAAU91D,GAEzB,IAAK4wH,EAASrgF,IAAIgkB,GAAW,CAC3B,IAAI28D,EDzDD,SAAelxH,EAAQxG,GAE5B,OADa,IAAI,EAAOwG,EAAQxG,GAClBiyH,gBCuDClqG,CAAMvhB,EAAQ,CACzB0tH,8BAA+BA,EAC/ByD,6BAA8BzD,IAGhC,IAAKwD,GAA0B,aAAhBA,EAAO38G,KACpB,MAAM,IAAI5nB,MAAM,iCAGlBikI,EAAS99G,IAAIyhD,EAnCjB,SAAkB73B,GAChB,IAAIi3B,EAAU,IAAIjvB,IAAIhI,EAAI7nB,aAC1B8+C,EAAQ9tD,SAAQ,SAAUnB,GACpBA,EAAKoiH,YAAYpiH,EAAKoiH,IAC1B3+H,OAAOmd,KAAKZ,GAAMmB,SAAQ,SAAUvR,GAClC,IAAI7J,EAAQia,EAAKpQ,GAEb7J,GAA0B,kBAAVA,GAClBkpE,EAAQ3gC,IAAIvoC,SAIlB,IAAIq8H,EAAMpqF,EAAIoqF,IAOd,OALIA,WACKA,EAAIpL,kBACJoL,EAAInL,UAGNj/E,EAgBkB00F,CAASL,EAAiBG,KAGnD,OAAON,EAASr+H,IAAIgiE,GAGf,SAAS88D,EAAIC,GAGlB,IAFA,IAAIpxH,EAAO,GAEF0U,EAAK,EAAGA,EAAKprB,UAAUC,OAAQmrB,IACtC1U,EAAK0U,EAAK,GAAKprB,UAAUorB,GAGH,kBAAb08G,IACTA,EAAW,CAACA,IAGd,IAAIzmI,EAASymI,EAAS,GAUtB,OATApxH,EAAK2F,SAAQ,SAAUyP,EAAKhsB,GACtBgsB,GAAoB,aAAbA,EAAIf,KACb1pB,GAAUyqB,EAAIwxG,IAAI9mH,OAAO/U,KAEzBJ,GAAUyqB,EAGZzqB,GAAUymI,EAAShoI,EAAI,MAElB,EAAcuB,GAevB,IAQW0mI,EARPC,GACGH,EADHG,GAbG,WACLZ,EAASzyE,QACT0yE,EAAkB1yE,SAWhBqzE,GATG,WACLV,GAAwB,GAQtBU,GANG,WACL9D,GAAgC,GAK9B8D,GAHG,WACL9D,GAAgC,IAUvB6D,EAERF,IAAQA,EAAM,KADTA,IAAMG,GAAYD,EAAME,YAAcD,GAAoBD,EAAMG,wBAA0BF,GAAgCD,EAAMI,oCAAsCH,GAA4CD,EAAMK,qCAAuCJ,GAGvQH,EAAa,QAAIA,G,iCCtIjB,oDAsBMtkH,EAAY,kBAEZ8kH,EAAiB,IAMiC,IANhC,SACtB/zG,EADsB,0BAEtB2kG,EAFsB,6BAGtBC,EAHsB,qBAItBN,EAJsB,SAKtBnnB,GACqD,GAC/C,EAAE7xG,GAAMqkB,YAAe,CAAC,qBAAsB,aAE9CqkH,EAAiB5hG,eAAkB,KACvCwyF,GAA8BD,GAC9BL,EAAqBtkG,KACpB,CACD4kG,EACAD,EACAL,EACAtkG,IAGF,OACE,0BACE7K,GAAI6K,EACJpW,UAAS,UAAKqF,EAAL,qBACT0mB,QAASq+F,EACT/wH,KAAK,SACLk6F,SAAUA,GAEV,wBAAMvzF,UAAS,UAAKqF,EAAL,oCACZ82G,0BAAgB,CAAE/lG,WAAU10B,OAAQ,MAuF9B2oI,UAjFQ,IAMkB,IANjB,qBACtB3P,EADsB,kBAEtBD,EAFsB,0BAGtBM,EAHsB,6BAItBC,EAJsB,mBAKtBgB,GACsC,GAChC,EAAEt6H,GAAMqkB,YAAe,sBAEvBukH,EAAkBtO,EAAmBl+G,QACxCsY,GAAaA,IAAaqkG,IAGvB1Y,EAAgBv5E,eACnBtmC,IACe,QAAVA,EAAE0K,KACJouH,GAA8BD,KAGlC,CAACC,EAA8BD,IAG3BwP,EAAc/hG,eAAkB,KACpCwyF,GAA8BD,KAC7B,CAACC,EAA8BD,IAElC,OACE,uBAAK/6G,UAAWqF,GACd,uBACErF,UAAS,UAAKqF,EAAL,uCACT0mB,QAASw+F,EACTxxB,UAAWgJ,EACXvJ,KAAK,SACLa,SAAU,GAEV,wBACEr5F,UAAS,UAAKqF,EAAL,8CAER82G,0BAAgB,CAAE/lG,SAAUqkG,EAAmB/4H,OAAQ,IAE1D,uBAAKse,UAAS,UAAKqF,EAAL,uCACZ,uBACEiK,IAAKk7G,IACLxqH,UAAS,UAAKqF,EAAL,qCACP01G,EAA4B,OAAS,UAEvCz0G,IAAG,gCACDy0G,EAA4B,KAAO,QAErCn6G,OAAO,KACPnP,MAAM,SAIXspH,GACC,uBAAK/6G,UAAS,UAAKqF,EAAL,uBACXilH,EACEx2F,MAAK,CAAC22F,EAAWC,KAChB,IAAMC,EAAgBxO,0BAAgB,CAAE/lG,SAAUq0G,EAAW/oI,MACvDkpI,EAAgBzO,0BAAgB,CAAE/lG,SAAUs0G,EAAWhpI,MAE7D,OAAOipI,GAAiBC,EACpBD,EAAcE,cAAcD,GAC5B,KAEL99H,KAAKspB,GACJ,gBAAC+zG,EAAD,CACEv9H,IAAKwpB,EACLA,SAAUA,EACV2kG,0BAA2BA,EAC3BC,6BAA8BA,EAC9BN,qBAAsBA,EACtBnnB,UAAU,U,iCCnI1B,qEAeMluF,EAAY,gBAEZylH,EAAgB,IAcY,IAdX,YACrB9kB,EADqB,yBAErB6U,EAFqB,4BAGrBC,EAHqB,wBAIrB5V,EAJqB,4BAKrB0V,EALqB,OAMrB1iC,GAQ+B,GACzB,EAAEx2F,GAAMqkB,YAAe,CAAC,qBAAsB,aAC9CglH,EAAqBviG,eAAkB,KAC3CoyF,EAA4B5U,GAC5B8U,GAA6BD,GAE7B,IAAMmQ,EAAgB3jH,OAAO1L,SAAS2qG,SAEjCD,eAAmB2kB,IAAkB9yC,IAExC7wE,OAAO1L,SAAS6O,KAAhB,kBAAkC0tE,MAEnC,CACD8tB,EACA4U,EACAC,EACAC,EACA5iC,IAGI6pB,EAAgBv5E,eACnBtmC,IACe,QAAVA,EAAE0K,KACJm+H,MAGJ,CAACA,IAGH,OACE,uBACEx/G,GAAIy6F,EACJ,uCAA+BA,GAC/BhmG,UAAS,UAAKqF,EAAL,oBACT0mB,QAASg/F,EACThyB,UAAWgJ,EACXvJ,KAAK,SACLa,SAAU,GAEV,uBACE/pF,IAAKw2F,yBAAeE,IAAgB,GACpChmG,UAAS,UAAKqF,EAAL,kBACTiB,IAAG,sBAAiBy/F,yBAAe,CACjCb,0BACAc,cACAtkH,OAEFkf,OAAO,KACPnP,MAAM,OAER,wBAAMuO,UAAS,UAAKqF,EAAL,mCACZ0gG,yBAAe,CAAEb,0BAAyBc,cAAatkH,OAAQ,IAElE,wBAAMse,UAAS,UAAKqF,EAAL,wCACZ6gG,YAAmCF,MAyG7BilB,UAnGM,IAYa,IAZZ,wBACpB/lB,EADoB,4BAEpB0V,EAFoB,yBAGpBD,EAHoB,4BAIpBG,EAJoB,yBAKpBD,GAO+B,GACzB,EAAEn5H,GAAMqkB,YAAe,sBACvBmlH,EAAiBhmB,EAAwBpnG,QAC5Ci+G,GAA6BA,EAAQn4G,OAAS+2G,IAG3C5Y,EAAgBv5E,eACnBtmC,IACe,QAAVA,EAAE0K,KACJkuH,GAA6BD,KAGjC,CAACC,EAA6BD,IAG1B0P,EAAc/hG,eAAkB,KACpCsyF,GAA6BD,KAC5B,CAACC,EAA6BD,IAEjC,OACE,uBAAK76G,UAAWqF,GACd,uBACE,cAAY,gBACZrF,UAAS,UAAKqF,EAAL,sCACT0mB,QAASw+F,EACTxxB,UAAWgJ,EACXvJ,KAAK,SACLa,SAAU,GAEV,uBACE/pF,IAAKw2F,yBAAe6U,IAA6B,GACjD36G,UAAS,UAAKqF,EAAL,kBACTiB,IAAG,sBAAiBy/F,yBAAe,CACjCb,0BACAc,YAAa2U,EACbj5H,OAEFkf,OAAO,KACPnP,MAAM,OAER,wBACEuO,UAAS,UAAKqF,EAAL,6CAER0gG,yBAAe,CACdb,0BACAc,YAAa2U,EACbj5H,OACI,IAER,wBAAMse,UAAS,UAAKqF,EAAL,wCACZ6gG,YAAmCyU,IAEtC,uBAAK36G,UAAS,UAAKqF,EAAL,sCACZ,uBACEiK,IAAKk7G,IACLxqH,UAAS,UAAKqF,EAAL,oCACPw1G,EAA2B,OAAS,UAEtCv0G,IAAG,gCACDu0G,EAA2B,KAAO,QAEpCj6G,OAAO,KACPnP,MAAM,SAIXopH,GACC,uBAAK76G,UAAS,UAAKqF,EAAL,sBACX6lH,EAAep+H,KACd,QAAC,KAAE8W,EAAF,OAAQs0E,GAAT,SACE,gBAAC4yC,EAAD,CACEl+H,IAAKgX,EACLoiG,YAAapiG,EACbi3G,yBAA0BA,EAC1BC,4BAA6BA,EAC7B5V,wBAAyBA,EACzB0V,4BAA6BA,EAC7B1iC,OAAQA,W,sDCnLxB,I,IAAMkjC,EAAyBuO,YAAH,I,EAAA,4N,kBAAA,E,2EAcbvO,a,sDCdf,I,IAAMF,EAAkByO,YAAH,I,EAAA,gM,kBAAA,E,2EAcNzO,a,oWCOf,IAAMiQ,EAAsC,oBAAG,aAIhB,IAJuB,UACpDC,GAG4B,EAEtBrnF,EAAU,CACdsnF,OAAQ,mBACR,eAAgB,mBAChB,eAAgBD,GAoBZ7nI,EAAO8nB,KAAKC,UAAU,CAC1B4rB,MAhBgB,wSAmBZz0B,QAAiBs9B,MA5BN,WA4BsB,CAAEgE,UAASxS,OAtBnC,OAsB2C+S,YArBtC,cAqBmD/gD,SACvE,OAAKkf,EAAS6oH,GASP7oH,EACJwoC,OACA5nD,MAAK,IAA8D,IAA7D,KAAEif,EAAF,OAAQK,GAAoD,EACjE,GAAIL,EAAM,CACR,IAAM,kBAAEipH,GAAsBjpH,EAK9B,MAAO,CACLjJ,KAAM,UACNiJ,KAN8BipH,EAAkBztH,QAC/Ci+G,IAAgD,IAAnBA,EAAQyP,UAOnC,OAAI7oH,EACF,CACLtJ,KAAM,eACNsJ,UAGK,CACLtJ,KAAM,eACNgJ,MAAO,oBA7BNI,EAAS4D,OAAOhjB,MAAM8qB,IACpB,CACL9U,KAAM,cACN8lC,OAAQ18B,EAAS08B,OACjBhxB,iBAvCoC,sDAsEtCs9G,EAA4B,oBAAG,aAIG,IAJI,UAC1CL,GAGqC,EA0BrC,aAxBQD,EAAuC,CAAEC,cAAa/nI,MACzDqoI,IACC,OAAQA,EAAcryH,MACpB,IAAK,cACH,MAAM,IAAIpU,MAAJ,+BACoBymI,EAAcvsF,OADlC,qBACqDusF,EAAcv9G,UAG3E,IAAK,eACH,MAAM,IAAIlpB,MACRymI,EAAc/oH,OACX7V,KAAI,QAAC,QAAEqhB,GAAH,SAA8CA,KAClDphB,KAAK,OAGZ,IAAK,eACH,MAAM,IAAI9H,MAAJ,yBAA4BymI,EAAcrpH,QAElD,IAAK,UACH,OAAOqpH,EAAcppH,YAzBC,sDAiCnBmpH,I,kKCtHf,IAAM9U,EAAe,e,EAAA,G,EAAG,aAUF,IAVS,WAC7BC,EAD6B,cAE7BC,EAF6B,oBAG7BC,EAH6B,UAI7BsU,GAMmB,EACfz7H,EAAQ,GAEZ,GAAIy7H,EACFz7H,EAAQy7H,MACH,CACL,IAAItU,EAaG,MAAM,IAAI7xH,MAAM,mDAZrB,IAAM0mI,EAAoBngI,SAASkuF,eAAeo9B,GAClD,IAAK6U,EACH,MAAM,IAAI1mI,MAAJ,8CACmC6xH,IAG3C,IAAQsU,aAAcO,EAAkBhW,QACxC,IAAKyV,EACH,MAAM,IAAInmI,MAAJ,yDAC8C0mI,IAEtDh8H,EAAQy7H,EAIZ,IAAMlmB,QAAgCumB,EAA6B,CACjEL,UAAWz7H,IAgDb,IAHgCnE,SAASuvE,cACvC,oCAGA,MAAM,IAAI91E,MAAM,0CAEd2xH,GAhD8B,MAChC,IAAMgV,EAAqBpgI,SAASuvE,cAClC,oCAEF,IAAK6wD,EACH,MAAM,IAAI3mI,MAAM,2DAElBm2F,IAAStK,OACP,gBAAC,UAAD,CACEo0B,wBAAyBA,EACzBC,eAAe,gBAEjBymB,IAqCFC,GAEEhV,GAnCiC,MACnC,IAAM+U,EAAqBpgI,SAASuvE,cAClC,+CAEF,IAAK6wD,EACH,MAAM,IAAI3mI,MAAM,uDAIlBm2F,IAAStK,OACP,gBAAC,WAAD,KACE,sBAAI9wE,UAAU,oCACd,uBAAKA,UAAU,8CACb,qBAAGA,UAAU,mBACVqmB,IAAQ3kC,EAAR,UAPW,2BAOX,oBAEH,gBAAC,UAAD,CACEwjH,wBAAyBA,EACzBC,eAAe,qBAIrBymB,IAcFE,I,+KAxFiB,sDA4FNnV,a,iCCpGf,iHAIA,SAASx+G,IAeP,OAdAA,EAAW1X,OAAOgB,QAAU,SAAU4W,GACpC,IAAK,IAAIzW,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CACzC,IAAI0W,EAASxW,UAAUF,GAEvB,IAAK,IAAIgL,KAAO0L,EACV7X,OAAOK,UAAUC,eAAeC,KAAKsX,EAAQ1L,KAC/CyL,EAAOzL,GAAO0L,EAAO1L,IAK3B,OAAOyL,GAGFF,EAASnW,MAAMX,KAAMS,WAG9B,SAASiqI,EAAer7G,EAAUC,GAChCD,EAAS5vB,UAAYL,OAAOc,OAAOovB,EAAW7vB,WAC9C4vB,EAAS5vB,UAAUQ,YAAcovB,EAEjC1J,EAAgB0J,EAAUC,GAG5B,SAAS3J,EAAgBC,EAAGpmB,GAM1B,OALAmmB,EAAkBvmB,OAAOC,gBAAkB,SAAyBumB,EAAGpmB,GAErE,OADAomB,EAAEtmB,UAAYE,EACPomB,GAGFD,EAAgBC,EAAGpmB,GAG5B,SAASie,EAA8BxG,EAAQsG,GAC7C,GAAc,MAAVtG,EAAgB,MAAO,GAC3B,IAEI1L,EAAKhL,EAFLyW,EAAS,GACTwG,EAAape,OAAOmd,KAAKtF,GAG7B,IAAK1W,EAAI,EAAGA,EAAIid,EAAW9c,OAAQH,IACjCgL,EAAMiS,EAAWjd,GACbgd,EAASzc,QAAQyK,IAAQ,IAC7ByL,EAAOzL,GAAO0L,EAAO1L,IAGvB,OAAOyL,EAGT,IAAI2zH,EAAc,OAAKC,UACnBC,EAAoB,OAAKA,kBACzB1/E,EAAU,OAAKA,QAEf2/E,EAAyB,CAAC,gBAAiB,cAAe,UAAW,cAAe,WAAY,aAMhGC,EAAmB,CACrBC,IAAK,QACL,MAAO,OACPC,IAAK,YACLC,IAAK,OACLC,IAAK,YACLC,IAAK,WACLC,IAAK,OAOHC,EAAmB,CACrBC,IAAK,MACLC,IAAK,UACLC,IAAK,YACLC,IAAK,OACLL,IAAK,MACLM,IAAK,SACLC,KAAM,SACNC,KAAM,UAIJC,EAAmB,GAAGroI,OAAO,iBAAiBsoI,YAAajB,GAAwBr/H,IAAI,OAAKm/H,WAAW/qG,QAAO,SAAUmsG,EAAaC,GAEvI,OADAD,EAAYC,IAAsB,EAC3BD,IACN,IAsBCE,EAA0B,SAAiCC,GAE7D,IAlB+BhvH,EAmB3Bza,EAAM+a,GAnBqBN,EAkBNgvH,EAjBlB/sI,OAAOunB,QAAQxJ,GAAK0iB,QAAO,SAAU9wB,EAAG+O,GAC7C,IAAI+4F,EAEAvjG,EAAIwK,EAAK,GACThb,EAAIgb,EAAK,GACb,OAAY,MAALhb,EAAYiM,EAAI+H,EAAS,GAAI/H,IAAI8nG,EAAY,IAAcvjG,GAAKxQ,EAAG+zG,MACzE,KAYgD,CAAC,cAGhDpmG,EAAU,OAAK27H,kBAAkB1pI,GACrC,OAAO,aAAgB,IAAE+N,IAiBvB47H,EAAc,SAAqBlyH,GACrC,OAfW,SAAgBA,EAAOmyH,GAClC,IAAI3kG,EAAWxtB,EAAMwtB,SACjBjlC,EAAM+a,EAA8BtD,EAAO,CAAC,aAIhD,OADU+xH,EAAwBxpI,GACvB4pI,EAAU,OAAO3kG,EAAU,OAAKykG,kBAAkB1pI,IAStD61H,CAAOp+G,EAAO,UAUnBoyH,EAAwB,SAA+BC,EAAK/7H,GAC9D,IAAIg8H,EAAmB,OAAKL,kBAAkB37H,GAC1Ci8H,EAAMR,EAAwBO,GAGlC,OADAC,EAAIC,kBAAkBH,EAAKC,GACpBC,EAAIE,WAAWH,GAAkB,IAUtCI,EAAyB,SAAgCztH,GAC3D,IAAIrB,EAAWqB,EAAMrB,SACjB5D,EAAQsD,EAA8B2B,EAAO,CAAC,aAE9Ctd,EAAS,CACXic,SAAUA,EACV+uH,gBAAiB,GACjBC,mBAAoB,GACpBC,qBAAsB,IAkBxB,OAhBA5tI,OAAOmd,KAAKpC,GAAO2C,SAAQ,SAAUvR,GACnC,IAAI0hI,EAAW,OAAKrC,UAAUr/H,GAC1B7J,EAAQyY,EAAM5O,GAEdugI,EAAiBmB,QACAtqH,IAAfxI,EAAM5O,IAAqC,OAAf4O,EAAM5O,KACpCzJ,EAAOgrI,gBAAgBG,GAAYvrI,GAEf,mBAAburI,EAETnrI,EAAOkrI,qBAAqBC,GAAYvrI,EAGxCI,EAAOirI,mBAAmBxhI,GAAO7J,KAG9BI,GAULorI,EAAwB,SAA+BxzC,EAAWvJ,GACpE,SAAwB,IAAMg9C,eAAezzC,KAAcA,EAAU1hF,MAAQ0hF,EAAU1hF,KAAKm4E,cAAgBA,IAW1Gi9C,EAAmB,WACrB,MAAO,GAAG5pI,MAAM7D,KAAKc,WAAWo/B,QAAO,SAAUwV,EAAMC,GAQrD,OAPAl2C,OAAOmd,KAAK+4B,GAAS,IAAIx4B,SAAQ,SAAUvR,GACzC,IAAI7J,EAAQ4zC,EAAM/pC,GAEJ,OAAV7J,QAA4BihB,IAAVjhB,IACpB2zC,EAAK9pC,GAAO7J,MAGT2zC,IACN,KAeDg4F,EAA0B,SAASA,EAAwBtvH,GAC7D,IAAIjc,EAASic,EAAW,IAAMuvH,SAASC,QAAQxvH,GAAUtB,QAAO,SAAUqyC,GACxE,OAAOo+E,EAAsBp+E,EAAO,+BACnCrjD,KAAI,SAAUqjD,GACf,IAAIr+C,EAAU28H,EAAiBt+E,EAAM30C,MAAO20C,EAAMtiD,SAC9CghI,EAAeH,EAAwBv+E,EAAM30C,MAAM4D,UAMvD,OAJIyvH,IACF/8H,EAAQg9H,eAAiBD,GAGpB/8H,KACJ,GACL,OAAO3O,EAAOpB,OAASoB,EAAS,MAuD9B4rI,EAAoB,SAA2BvB,GACjD,IA9CuBl1H,EAAQsF,EA8C3BwB,EAAWouH,EAAcpuH,SACzB4vH,EAAgBxB,EAAcwB,cAC9B/iH,EAAcuhH,EAAcvhH,YAC5BpH,EAAO/F,EAA8B0uH,EAAe,CAAC,WAAY,gBAAiB,gBAElFyB,GAnDmB32H,EAmDM4zH,EAAkBrnH,QAlDlC,KADkBjH,EAmDuB,iBAAiB6qG,WAjDrE7qG,EAAO,KAGJtF,EAIEsF,EAAKsjB,QAAO,SAAUguG,EAAItiI,GAK/B,OAJIA,KAAO0L,IACT42H,EAAGtiI,GAAO0L,EAAO1L,IAGZsiI,IACN,IATM52H,IA6C0E,IAC/E62H,EAAkBT,EAAwBtvH,GAEzCotC,EAAQ2iF,KACXF,EAAkBH,eAAiBK,GAIrC,IAAIC,EAA0B,CAC5BJ,cAAeA,EACf/iH,YAAaA,GAOf,OALAxrB,OAAOmd,KAAKwxH,GAAyBtxH,QAAO,SAAUnJ,GACpD,OAAOy6H,EAAwBz6H,MAC9BwJ,SAAQ,SAAUxJ,GACnBs6H,EAAkBt6H,GAAKy6H,EAAwBz6H,MAE1Cs6H,GAGLI,EAAqC,0BACrCpD,EAAY,OAAKA,UAMjBqD,EAAmC,SAAUC,GAG/C,SAASD,EAAoBE,EAAQC,GACnC,IAAIp9G,EAyCJ,OAvCAA,EAAQk9G,EAAevuI,KAAKK,KAAMmuI,EAAQC,IAAapuI,MAEjDo8C,WAAa,WACjB,OAAOprB,EAAMxkB,SAAW,IAG1BwkB,EAAMq9G,YAAc,WAElBr9G,EAAM68D,SAAS,CACbygD,UAAU,KAIdt9G,EAAMu9G,iBAAmB,SAAUp0H,EAAO3N,GASxC,YARc,IAAV2N,IACFA,EAAQ6W,EAAM7W,YAGA,IAAZ3N,IACFA,EAAUwkB,EAAMorB,cAGXgxF,EAAiB5gI,EAAS2N,IAGnC6W,EAAMw9G,UAAY,SAAUhzH,GAC1B,IAAI0sB,EAAWlX,EAAM7W,MAAM+tB,SAC3BlX,EAAMxV,QAAQmF,QAAUnF,EAEpB0sB,IACEA,aAAoBziB,SACtByiB,EAAS1sB,GAET0sB,EAASvnB,QAAUnF,IAKzBwV,EAAMxV,QAAuB,sBACtBwV,EAST,OArDA05G,EAAeuD,EAAqBC,GA+CvBD,EAAoBxuI,UAE1BgwF,OAAS,WACd,OAAO,MAGFw+C,EAtD8B,CAuDrC,iBAEFA,EAAoBxxB,aAAe,CACjCv0E,SAAU,KACVP,SAAU,MAEZsmG,EAAoB5gD,UAAYv2E,EAAS,GAlHzB,SAAmB23H,GACjCA,EAAeA,GAAgB,GAG/B,IAFA,IAAI1tF,EAAQ,GAEHxgD,EAAI,EAAGA,EAAIkuI,EAAa/tI,OAAQH,IAAK,CAC5C,IAAIgL,EAAMkjI,EAAaluI,GACvBwgD,EAAM4pF,EAAYp/H,IAAQ,IAAU+P,IAGtC,OAAOylC,EAyGoC2tF,CAAU,iBAAiB3C,YAAYtgI,IAAIm/H,IAAa,CACnG1iG,SAAU,IAAU5sB,IACpBqsB,SAAU,IAAUvsB,SAEtB6yH,EAAoBU,YAAcX,EAYlC,IAAIY,EAAiC,SAAUC,GAG7C,SAASD,IACP,OAAOC,EAAqBluI,MAAMX,KAAMS,YAAcT,KAmBxD,OAtBA0qI,EAAekE,EAAmBC,GAMrBD,EAAkBnvI,UAExBgwF,OAAS,WACd,IAAIt1E,EAAQrD,EAAS,GAAI9W,KAAKo8C,aAAcp8C,KAAKma,OAE7C20H,EAAwBjC,EAAuB1yH,GAC/C4D,EAAW+wH,EAAsB/wH,SACjC+uH,EAAkBgC,EAAsBhC,gBACxCC,EAAqB+B,EAAsB/B,mBAC3CC,EAAuB8B,EAAsB9B,qBAEjD,OAAoB,IAAM/uH,cAAc+vH,EAAsB9vH,SAAU,CACtExc,MAAOorI,GACNE,EAAqB+B,eAAiBhxH,EAAwB,IAAME,cAAc,MAAO8uH,EAAoBhvH,KAG3G6wH,EAvB4B,CAwBnCX,GAEFW,EAAkBvhD,UAAYv2E,EAAS,GAAIm3H,EAAoB5gD,UAAW,CACxE0hD,eAAgB,IAAU/zH,OAE5B4zH,EAAkBnyB,aAAe,CAC/BsyB,gBAAgB,GAElB,IAAIC,EAA8B,mhBAAmhBnwG,OAKjjB9Q,EAAqB,SAAU8gH,GAGjC,SAAS9gH,EAAM5T,EAAO3N,GACpB,IAAIwkB,EA0JJ,OAxJAA,EAAQ69G,EAAqBlvI,KAAKK,KAAMma,EAAO3N,IAAYxM,MAErDivI,aAAe,WACnB,IAAIC,EAAwBl+G,EAAMu9G,mBAC9B3B,EAAasC,EAAsBtC,WACnCx8H,EAAQ8+H,EAAsB9+H,MAMlC,OAJIw8H,GAAwB,SAAVx8H,GAChBuf,QAAQD,KAAKs/G,GAGRpC,GAAc57G,EAAMxV,SAAWwV,EAAMxV,QAAQmF,SAGtDqQ,EAAMm+G,WAAa,WACjB,IAAIhD,EAAgBn7G,EAAMu9G,mBAGtB99H,EAAUgN,EADc3G,EAAS,GAAIq1H,EAAeuB,EAAkBvB,IACP,CAAC,WAAY,aAMhF,OAJKn7G,EAAMo+G,yBACF3+H,EAAQ6P,QAGV7P,GAGTugB,EAAMq+G,cAAgB,SAAUC,QACJ,IAAtBA,IACFA,EAAoB,IAGtB,IACI1kH,EADqB0kH,EACY1kH,YACjCna,EAAUo8H,EAAuB/1H,EAAS,GAAIka,EAAMm+G,aAAcG,IAClExC,EAAkBr8H,EAAQq8H,gBAC1BC,EAAqBt8H,EAAQs8H,mBAC7BC,EAAuBv8H,EAAQu8H,qBAC/BuC,EAAWlD,EAAYv1H,EAAS,GAAIg2H,EAAiBE,IAGrDjgD,EAAaj2E,EAAS,GAFC,OAAK+zH,kBAAkB0E,EAASxiD,cAEPggD,GAsBpD,OAnBIhgD,EAAWyiD,UACbziD,EAAW,YAAcA,EAAWyiD,SAIlC5kH,GAAemiE,EAAW7iE,KAC5B6iE,EAAW7iE,IAAM,oBAIf8G,EAAMo+G,mBACRriD,EAAW,YAAcA,EAAWyiD,SAAWziD,EAAW9+D,WACnD8+D,EAAW9+D,KAIpB68G,EAAuBhuH,SAAQ,SAAU2yH,UAChC1iD,EAAW0iD,MAEb1iD,GAGT/7D,EAAM0hC,OAAS,WAEb,GAAI1hC,EAAMo+G,iBAER,OAAKM,mBAAmB1+G,EAAMxV,QAAQmF,QAASqQ,EAAMq9G,kBAChD,GAAIr9G,EAAMi+G,eAAgB,CAC/B,IAAIx+H,EAAUugB,EAAMm+G,aAEhBvkH,EAAcoG,EAAM2+G,qBAGxB,GAAI/kH,EAAa,CACf,IAAIglH,EAA4BrD,EAAsBv7G,EAAM6+G,mBAAmBlvH,QAAS7J,EAAS,GAAIrG,EAAS,CAC5Gma,YAAaA,KAGfoG,EAAM8+G,iBAAiB7sI,KAAK2sI,GAI9B,IAAIG,EAAoBxD,EAAsBv7G,EAAMxV,QAAQmF,QAASlQ,GAErEugB,EAAM8+G,iBAAiB7sI,KAAK8sI,KAIhC/+G,EAAMo+G,eAAiB,WACrB,IACI9uH,EADyB0Q,EAAMu9G,mBACEjuH,QAGrC,OADe0Q,EAAMiP,MAAMquG,WACM,SAAZhuH,GAAkC,SAAZA,IAG7C0Q,EAAMg/G,kBAAoB,WACxB,IAAIC,EAASj/G,EAAM7W,MAAM81H,OAEzBj/G,EAAM68D,SAAS,CACbqiD,UAAU,IACT,WACGD,GACFA,QAKNj/G,EAAMm/G,kBAAoB,SAAUvlH,EAAamiE,GAC/CA,EAAW/tE,MAAQlI,EAAS,GAAIi2E,EAAW/tE,OAAS,GAAI,CACtD4vE,QAAS,EACTgX,SAAU,aAEZ7Y,EAAWkjD,OAASj/G,EAAMg/G,kBAC1B,IAIII,EAAwBp/G,EAAMq+G,cAAc,CAC9CzkH,YAAaA,IAGf,OAAoB,IAAM3M,cAAc,WAAU,KAAM+S,EAAMq/G,YAAYtjD,GAA0B,IAAM9uE,cAAc,MAAO,CAC7He,MAT4B,CAC5BqvG,QAAS,WASK,IAAMpwG,cAAc,MAAOnH,EAAS,CAClD0J,IAAKwQ,EAAM6+G,oBACVO,OAGLp/G,EAAMq/G,YAAc,SAAUtjD,GAC5B,OAAoB,IAAM9uE,cAAc,MAAOnH,EAAS,CACtD0J,IAAKwQ,EAAMw9G,WACVzhD,KAGL/7D,EAAM2+G,mBAAqB,WACzB,IAGI/kH,EAxXgB,SAA6B7M,GACrD,IAAIjc,EAAS,KAQb,OANIic,IACFjc,EAAS,IAAMwrI,SAASC,QAAQxvH,GAAUyd,MAAK,SAAUszB,GACvD,OAAOo+E,EAAsBp+E,EAAO,6BAIjChtD,EA+WewuI,CAHWt/G,EAAMu9G,mBACGxwH,UAGtC,OAAO6M,EAAcA,EAAYzQ,MAAMnC,KAAO,MAGhDgZ,EAAM6+G,mBAAkC,sBACxC7+G,EAAMiP,MAAQ,CACZiwG,UAAU,GAEZl/G,EAAM8+G,iBAAmB,GAClB9+G,EA7JT05G,EAAe38G,EAAO8gH,GAoKtB,IAAIlO,EAAS5yG,EAAMtuB,UAwCnB,OAnCAkhI,EAAO4P,kBAAoB,WACzBvwI,KAAK0yD,UAOPiuE,EAAO6P,mBAAqB,WAC1BxwI,KAAK0yD,UAGPiuE,EAAO8P,qBAAuB,WAC5BzwI,KAAK8vI,iBAAiBhzH,SAAQ,SAAUggC,GACtC,OAAOA,QASX6jF,EAAOlxC,OAAS,WACd,IAAIygD,EAAWlwI,KAAKigC,MAAMiwG,SACtBnjD,EAAa/sF,KAAKqvI,gBAClBzkH,EAAc5qB,KAAK2vI,qBAEvB,OAAKO,GAAYtlH,EACR5qB,KAAKmwI,kBAAkBvlH,EAAamiE,GAGtC/sF,KAAKqwI,YAAYtjD,IAGnBh/D,EA7MgB,CA8MvBkgH,GAEFlgH,EAAM0uF,aAAe,GACrB1uF,EAAMs/D,UAAY4gD,EAAoB5gD,UACtCt/D,EAAMs/D,UAAUu/C,WAAa,IAAU5xH,KACvC+S,EAAMs/D,UAAU/sE,QAAU,IAAUlF,OACpC2S,EAAMs/D,UAAUsgD,cAAgB,IAAUvyH,OAK1C,IAAIs1H,EAA8B,SAAU7B,GAG1C,SAAS6B,IACP,OAAO7B,EAAqBluI,MAAMX,KAAMS,YAAcT,KASxD,OAZA0qI,EAAegG,EAAgB7B,GAMlB6B,EAAejxI,UAErBgwF,OAAS,WACd,OAAO,MAGFihD,EAbyB,CAchCzC,GAEFyC,EAAerjD,UAAY4gD,EAAoB5gD,UAC/CqjD,EAAej0B,aAAe,GAC9Bi0B,EAAeC,cAAe,EAC9BD,EAAevgD,YAAc,2BAK7B,IAAIygD,EAAqB,SAAU/B,GAGjC,SAAS+B,IAGP,IAFA,IAAI5/G,EAEKhB,EAAOvvB,UAAUC,OAAQyW,EAAO,IAAI5X,MAAMywB,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9Y,EAAK8Y,GAAQxvB,UAAUwvB,GA2GzB,OAxGAe,EAAQ69G,EAAqBlvI,KAAKgB,MAAMkuI,EAAsB,CAAC7uI,MAAMyD,OAAO0T,KAAUnX,MAChF6wI,SAAW,QACjB7/G,EAAM8/G,aAAe/F,EAErB/5G,EAAM+/G,eAAiB,WACrB,OAAOj6H,EAAS,GAAIka,EAAMorB,aAAcprB,EAAM7W,QAGhD6W,EAAMggH,iBAAmB,SAAUtE,EAAK/kG,EAAUspG,EAAsBC,EAAuBC,GAC7F,IAAIC,EAAa,OAAKhF,kBAAkB,OAAK9rE,SAAS,GAAI4wE,EAAuBD,EAAsB,CACrGI,cAAe,QACfzlI,OAAQulI,KAEV,OAAOzE,EAAItqE,IAAIz6B,EAAUypG,IAG3BpgH,EAAMsgH,yBAA2B,SAAU5E,EAAK/kG,EAAUspG,EAAsBC,EAAuBK,GACrG,OAAOA,EAAY9lI,KAAI,SAAU0lI,GAC/B,OAAOngH,EAAMwgH,YAAY9E,EAAK/kG,EAAUspG,EAAsBC,EAAsBC,IAAe,GAAIA,EAAYngH,EAAMygH,cAAcN,QAI3IngH,EAAM0gH,qBAAuB,SAAUhF,EAAK/kG,EAAUspG,EAAsBthG,GAC1E,OAAOA,EAAQlkC,KAAI,SAAUqS,GAC3B,IAAI6zH,EAAuB7zH,EAAK8zH,gBAC5BA,OAA2C,IAAzBD,EAAkC,GAAKA,EACzD35H,EAAO8F,EAAK9F,KACZ65H,EAAS/zH,EAAK+zH,OAClB,OAAO7gH,EAAMwgH,YAAY9E,EAAK/kG,EAAUspG,EAAsBW,EAAiB55H,EAAMgZ,EAAMygH,cAAcz5H,EAAM65H,QAInH7gH,EAAMwgH,YAAc,SAAU9E,EAAK/kG,EAAUspG,EAAsBW,EAAiBT,EAAYN,GAC9F,IAAI5iH,EAAM+C,EAAMggH,iBAAiBtE,EAAK/kG,EAAUspG,EAAsBW,EAAiBT,GAEvF,OAAoB,IAAMlzH,cAAc,SAAU,CAChD1S,IAAK0iB,EAAM4iH,EACX5iH,IAAKA,EACLjW,KAAM64H,KAIV7/G,EAAMygH,cAAgB,SAAUz5H,EAAM65H,GACpC,IAAIhB,EAAW7/G,EAAM6/G,SAAW,KAAO7/G,EAAM8/G,aAAa94H,IAASA,GAMnE,OAJK,OAAKmzC,QAAQ0mF,KAChBhB,GAAY,aAAe,OAAKl6H,QAAQk7H,GAAUA,EAAOnmI,KAAK,MAAQmmI,IAGjEhB,GAGT7/G,EAAM8gH,iBAAmB,WACvB,IAAIC,EAAuB/gH,EAAM+/G,iBAC7BppG,EAAWoqG,EAAqBpqG,SAChC5pB,EAAWg0H,EAAqBh0H,SAChCwzH,EAAcQ,EAAqBR,YACnCS,EAAwBD,EAAqBE,qBAC7CA,OAAiD,IAA1BD,EAAmC,GAAKA,EAC/DriG,EAAUoiG,EAAqBpiG,QAC/Bl/B,EAAUgN,EAA8Bs0H,EAAsB,CAAC,WAAY,WAAY,WAAY,WAAY,cAAe,uBAAwB,YAE1JthI,EAAU28H,EAAiB38H,EAAS,IAEpC,IAAIq+H,EAAwBjC,EAAuBp8H,GAC/Cq8H,EAAkBgC,EAAsBhC,gBACxCE,EAAuB8B,EAAsB9B,qBAC7CD,EAAqB+B,EAAsB/B,mBAE/Ct8H,EAAUqG,EAAS,GAAIg2H,EAAiBE,GAExC,IAAIP,EAAmB,OAAKL,kBAAkB37H,GAC1Ci8H,EAAM,aAAgB,IAAED,GAExByF,EAAgBxF,EAAIyF,SAASxqG,EAAUl3B,GAASs8E,aACpDmlD,EAAgBp7H,EAAS,GAAI,OAAK+zH,kBAAkBqH,GAAgBnF,GAEpE,IAAIkE,EAAuBvD,EAAkB52H,EAAS,GAAIrG,EAAS,CACjEsN,SAAUA,KAERq0H,EAAiB,KAYrB,OAVI,OAAKz7H,QAAQg5B,KAAa,OAAKwb,QAAQxb,GACzCyiG,EAAiBphH,EAAM0gH,qBAAqBhF,EAAK/kG,EAAUspG,EAAsBthG,GACxE,OAAKh5B,QAAQ46H,GAEtBa,EAAiBphH,EAAMsgH,yBAAyB5E,EAAK/kG,EAAUspG,EAAsBgB,EAAsBV,GAG3GW,EAAcjkH,IAAM+C,EAAMggH,iBAAiBtE,EAAK/kG,EAAUspG,EAAsBgB,EAAqBV,IAAgB,GAAIA,GAGpH,CACL5hG,QAASyiG,EACTF,cAAeA,IAInBlhH,EAAMqhH,YAAc,WACdrhH,EAAMxV,SAAWwV,EAAMxV,QAAQmF,SACjCqQ,EAAMxV,QAAQmF,QAAQzU,QAInB8kB,EAjHT05G,EAAekG,EAAO/B,GAoHtB,IAAIlO,EAASiQ,EAAMnxI,UAyBnB,OAvBAkhI,EAAO6P,mBAAqB,WAE1BxwI,KAAKqyI,eAOP1R,EAAOlxC,OAAS,WACd,IAAI6iD,EAActyI,KAAKma,MACnBo4H,EAAWD,EAAYC,SACvBx0H,EAAWu0H,EAAYv0H,SAEvBy0H,EAAwBxyI,KAAK8xI,mBAC7BI,EAAgBM,EAAsBN,cACtCviG,EAAU6iG,EAAsB7iG,QAEpC,OAAoB,IAAM1xB,cAAc,QAASnH,EAAS,CACxD0J,IAAKxgB,KAAKwuI,WACT0D,GAAgBviG,EAAS4iG,EAAUx0H,IAGjC6yH,EA9IgB,CA+IvB3C,GAEF2C,EAAMvjD,UAAY,CAChB1lD,SAAU,IAAUvsB,OACpBu0B,QAAS,IAAUp0B,QAAQ,IAAUQ,MAAM,CACzC/D,KAAM,IAAUoD,OAChBy2H,OAAQ,IAAU/1H,UAAU,CAAC,IAAUV,OAAQ,IAAUG,QAAQ,IAAUH,UAC3Ew2H,gBAAiB,IAAUz2H,WAG/By1H,EAAMn0B,aAAe,CACnB80B,YAAa,aAAWkB,qBAAqBC,cAS/C,IAAIC,EAAqB,SAAUC,GAGjC,SAASD,IAGP,IAFA,IAAI3hH,EAEKhB,EAAOvvB,UAAUC,OAAQyW,EAAO,IAAI5X,MAAMywB,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9Y,EAAK8Y,GAAQxvB,UAAUwvB,GAMzB,OAHAe,EAAQ4hH,EAAOjzI,KAAKgB,MAAMiyI,EAAQ,CAAC5yI,MAAMyD,OAAO0T,KAAUnX,MACpD6wI,SAAW,QACjB7/G,EAAM8/G,aAAexF,EACdt6G,EAyBT,OArCA05G,EAAeiI,EAAOC,GAeTD,EAAMlzI,UAKZgwF,OAAS,WACd,IAAI6iD,EAActyI,KAAKma,MACnB+tB,EAAWoqG,EAAYpqG,SACvBqqG,EAAWD,EAAYC,SACvBx0H,EAAWu0H,EAAYv0H,SAEvBy0H,EAAwBxyI,KAAK8xI,mBAC7BI,EAAgBM,EAAsBN,cACtCviG,EAAU6iG,EAAsB7iG,QAIpC,cADOuiG,EAAczqG,OACD,IAAMxpB,cAAc,QAASnH,EAAS,CACxD0J,IAAK0nB,GACJgqG,GAAgBviG,EAAS4iG,EAAUx0H,IAGjC40H,EAtCgB,CAuCvB/B,GAEF+B,EAAMtlD,UAAY,CAChB1lD,SAAU,IAAUvsB,QAEtBu3H,EAAMl2B,aAAe,CACnB80B,YAAa,CAAC,MAAO,MAAO,QAW9B,IAAIsB,EAAc,SAAqB/0H,GACrC,OAAO,MAGT+0H,EAAYxlD,UAAY,CACtBr1E,KAAM,IAAUoD,QAElBy3H,EAAYp2B,aAAe,CACzBzkG,KAAM,QAER66H,EAAY1iD,YAAc,yB,oBC15B1B,IAAIjzE,EAAiB,EAAQ,KAyB7BtG,EAAOC,QAbP,SAAyBsE,EAAQ5P,EAAK7J,GACzB,aAAP6J,GAAsB2R,EACxBA,EAAe/B,EAAQ5P,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAAS7J,EACT,UAAY,IAGdyZ,EAAO5P,GAAO7J,I,qBCrBlB,kBAAiB,EAAQ,KAIrB61H,EAA4C1gH,IAAYA,EAAQg2E,UAAYh2E,EAG5E2gH,EAAaD,GAAgC,iBAAV3gH,GAAsBA,IAAWA,EAAOi2E,UAAYj2E,EAMvFk8H,EAHgBtb,GAAcA,EAAW3gH,UAAY0gH,GAGtBlyG,EAAWhc,QAG1C0pI,EAAW,WACb,IAEE,IAAIhyF,EAAQy2E,GAAcA,EAAWwb,SAAWxb,EAAWwb,QAAQ,QAAQjyF,MAE3E,OAAIA,GAKG+xF,GAAeA,EAAY/rD,SAAW+rD,EAAY/rD,QAAQ,QACjE,MAAOlmF,KAXI,GAcf+V,EAAOC,QAAUk8H,I,0CC9BjB,IAKI/nH,EALY,EAAQ,IAKdgmG,CAJC,EAAQ,KAIO,OAC1Bp6G,EAAOC,QAAUmU,G,oBCNjB,IAAIioH,EAAc,EAAQ,KACtBC,EAAY,EAAQ,KAOpBlyI,EAHc5B,OAAOK,UAGcuB,qBAGnCmyI,EAAmB/zI,OAAO2B,sBAS1BqyI,EAAcD,EAA+B,SAAUh4H,GACzD,OAAc,MAAVA,EACK,IAGTA,EAAS/b,OAAO+b,GACT83H,EAAYE,EAAiBh4H,IAAS,SAAUE,GACrD,OAAOra,EAAqBrB,KAAKwb,EAAQE,QAPR63H,EAUrCt8H,EAAOC,QAAUu8H,G,kBCVjBx8H,EAAOC,QAZP,SAAmBiE,EAAOnD,GAKxB,IAJA,IAAI+b,GAAS,EACThzB,EAASiX,EAAOjX,OAChB0T,EAAS0G,EAAMpa,SAEVgzB,EAAQhzB,GACfoa,EAAM1G,EAASsf,GAAS/b,EAAO+b,GAGjC,OAAO5Y,I,oBCjBT,IAIIu4H,EAJU,EAAQ,IAIHC,CAAQl0I,OAAO+vB,eAAgB/vB,QAClDwX,EAAOC,QAAUw8H,G,oBCLjB,IAAIjwB,EAAa,EAAQ,KAgBzBxsG,EAAOC,QANP,SAA0B0mC,GACxB,IAAIz7C,EAAS,IAAIy7C,EAAYt9C,YAAYs9C,EAAY8lE,YAErD,OADA,IAAID,EAAWthH,GAAQioB,IAAI,IAAIq5F,EAAW7lE,IACnCz7C,I,oBCbT,IAAIivF,EAAa,EAAQ,KACrBsiD,EAAe,EAAQ,KACvBn0B,EAAe,EAAQ,KAOvBq0B,EAAY9tH,SAAShmB,UACrBmmH,EAAcxmH,OAAOK,UAGrB+zI,EAAeD,EAAUx/G,SAGzBr0B,EAAiBkmH,EAAYlmH,eAG7B+zI,EAAmBD,EAAa7zI,KAAKP,QA6CzCwX,EAAOC,QAfP,SAAuBnV,GACrB,IAAKw9G,EAAax9G,IA5CJ,mBA4CcqvF,EAAWrvF,GACrC,OAAO,EAGT,IAAIqhF,EAAQswD,EAAa3xI,GAEzB,GAAc,OAAVqhF,EACF,OAAO,EAGT,IAAI8iC,EAAOnmH,EAAeC,KAAKojF,EAAO,gBAAkBA,EAAM9iF,YAC9D,MAAsB,mBAAR4lH,GAAsBA,aAAgBA,GAAQ2tB,EAAa7zI,KAAKkmH,IAAS4tB,I,iCC7DzF,mDAEO,IAAMC,EAAc,CAAC,aAAa,UAAU,YAAY,WAAW,cAAc,qBAAqB,oBAAoB,sBAAsB,SAAS,SAAS,gBAAgB,mBAAmB,aAAa,MAAM,QAAQ,0BAA0B,iBAAiB,cAAc,qBAAqB,0BAA0B,wBAAwB,0BAA0B,qCAAqC,iCAAiC,iCAAiC,oCAAoC,gCAAgC,kCAAkC,wCAAwC,+CAA+C,2CAA2C,2CAA2C,8CAA8C,0CAA0C,gCAAgC,4CAA4C,sBAAsB,iBAAiB,eAAe,mBAAmB,4BAA4B,kBAAkB,eAAe,MAAM,aAAa,QAAQ,YAAY,iBAAiB,wBAAwB,eAAe,sBAAsB,QAAQ,cAAc,UAAU,kBAAkB,mBAAmB,aAAa,2BAA2B,aAAa,aAAa,iBAAiB,eAAe,sBAAsB,eAAe,eAAe,QAAQ,sBAAsB,6BAA6B,wCAAwC,sBAAsB,OAAO,eAAe,UAAU,iBAAiB,oBAAoB,eAAe,eAAe,iBAAiB,iBAAiB,wBAAwB,aAAa,iCAAiC,kBAAkB,kBAAkB,eAAe,kCAAkC,S,gCCF9wD,oJAEWC,EAAY,IAFvB,OAE2B,GACvBC,EAAe,IAAIrtG,QAEvB,SAASstG,EAAa9oH,GACpB,IAAIupC,EAAOs/E,EAAapqI,IAAIuhB,GAS5B,OAPKupC,GACHs/E,EAAa7pH,IAAIgB,EAAOupC,EAAO,CAC7BxC,KAAM,IAAInW,IACVm4F,IAAK,gBAIFx/E,EAGF,SAASy/E,EAAYhpH,GAC1B8oH,EAAa9oH,GAAO+mC,KAAKh1C,SAAQ,SAAU82G,GACzC,OAAOA,EAAGmgB,YAAYhpH,MAGnB,SAASipH,EAAYjpH,GAC1B8oH,EAAa9oH,GAAO+mC,KAAKh1C,SAAQ,SAAU82G,GACzC,OAAOA,EAAGqgB,YAAYlpH,MAGnB,SAAS6pD,EAAQlzE,GACtB,IAAIwyI,EAAS,IAAIv4F,IACb6c,EAAY,IAAI7c,IAEhBi4E,EAAK,SAASA,EAAG1hG,GACnB,GAAIzxB,UAAUC,OAAS,GACrB,GAAIgB,IAAUwwB,EAAU,CACtBxwB,EAAQwwB,EACRgiH,EAAOp3H,SAAQ,SAAUiO,GACvB8oH,EAAa9oH,GAAO+oH,IAAIn7E,MAAMi7D,GAC9Bp+C,EAAUzqD,MAEZ,IAAIopH,EAAe50I,MAAM6D,KAAKo1D,GAC9BA,EAAUpD,QACV++E,EAAar3H,SAAQ,SAAUiU,GAC7B,OAAOA,EAASrvB,WAGf,CACL,IAAIqpB,EAAQ4oH,EAAU1pD,WAElBl/D,IACFqpH,EAAOrpH,GACP8oH,EAAa9oH,GAAO+oH,IAAIlgB,IAI5B,OAAOlyH,GAGTkyH,EAAGE,aAAe,SAAU/iG,GAE1B,OADAynC,EAAUvuB,IAAIlZ,GACP,WACLynC,EAAU1c,OAAO/qB,KAIrB,IAAIqjH,EAASxgB,EAAGqgB,YAAc,SAAUlpH,GAGtC,OAFAmpH,EAAOjqG,IAAIlf,GACX8oH,EAAa9oH,GAAO+mC,KAAK7nB,IAAI2pF,GACtBA,GAOT,OAJAA,EAAGmgB,YAAc,SAAUhpH,GACzB,OAAOmpH,EAAOp4F,OAAO/wB,IAGhB6oG,EAGT,SAASp+C,EAAUzqD,GACbA,EAAM0qD,kBACR1qD,EAAM0qD,qB,mBChER7+D,EAAOC,QAAU,EAAQ,IAAR,I,kBCfnB,IAGIw9H,EAAW,mBAgBfz9H,EAAOC,QANP,SAAiBnV,EAAOhB,GACtB,IAAIsX,SAActW,EAElB,SADAhB,EAAmB,MAAVA,EAfY,iBAewBA,KACjB,UAARsX,GAA4B,UAARA,GAAoBq8H,EAAShxH,KAAK3hB,KAAWA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQhB,I,8zrjBCjB/H,SAASitB,EAAkB3W,EAAQmD,GACjC,IAAK,IAAI5Z,EAAI,EAAGA,EAAI4Z,EAAMzZ,OAAQH,IAAK,CACrC,IAAIqtB,EAAazT,EAAM5Z,GACvBqtB,EAAWhR,WAAagR,EAAWhR,aAAc,EACjDgR,EAAWxQ,cAAe,EACtB,UAAWwQ,IAAYA,EAAWvQ,UAAW,GACjDje,OAAO8d,eAAelG,EAAQ4W,EAAWriB,IAAKqiB,IAInC,SAASmf,EAAatf,EAAaI,EAAYC,GAG5D,OAFID,GAAYF,EAAkBF,EAAYhuB,UAAWouB,GACrDC,GAAaH,EAAkBF,EAAaK,GACzCL,EAbT,mC,oBCAA,IAAI6mH,EAAY,EAAQ,KAkBxB19H,EAAOC,QANP,SAAmBiE,EAAOmnC,EAAOE,GAC/B,IAAIzhD,EAASoa,EAAMpa,OAEnB,OADAyhD,OAAcx/B,IAARw/B,EAAoBzhD,EAASyhD,GAC3BF,GAASE,GAAOzhD,EAASoa,EAAQw5H,EAAUx5H,EAAOmnC,EAAOE,K,oBCfnE,IAAIoyF,EAAe,EAAQ,KACvBC,EAAa,EAAQ,KACrBC,EAAiB,EAAQ,KAc7B79H,EAAOC,QAJP,SAAuBuE,GACrB,OAAOo5H,EAAWp5H,GAAUq5H,EAAer5H,GAAUm5H,EAAan5H,K,oBCbpE,IAAIs5H,EAAkB,EAAQ,KAI1BC,EAAc,OAalB/9H,EAAOC,QAJP,SAAkBuE,GAChB,OAAOA,EAASA,EAAO5X,MAAM,EAAGkxI,EAAgBt5H,GAAU,GAAG1E,QAAQi+H,EAAa,IAAMv5H,I,gCCd1F,8DAKe,SAASq/D,EAAe1oE,EAAWkD,GAChD,YAAa,EAAGxU,WAChB,IAAIgQ,EAAUwE,GAAgB,GAC1BlM,EAAS0H,EAAQ1H,OACjByM,EAAqBzM,GAAUA,EAAO0H,SAAW1H,EAAO0H,QAAQqC,aAChE2C,EAA4C,MAAtBD,EAA6B,EAAI,YAAUA,GACjE1C,EAAuC,MAAxBrC,EAAQqC,aAAuB2C,EAAsB,YAAUhF,EAAQqC,cAE1F,KAAMA,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAIyC,WAAW,oDAGvB,IAAIlH,EAAO,YAAO0D,GACda,EAAMvE,EAAKsE,YACXg+C,GAAQ/9C,EAAME,EAAe,EAAI,GAAKF,EAAME,EAGhD,OAFAzE,EAAKumI,WAAWvmI,EAAKS,aAAe6hD,GACpCtiD,EAAKgE,YAAY,EAAG,EAAG,EAAG,GACnBhE,I,oBCtBT,IAAIzL,EAAS,EAAQ,KAIjBgjH,EAAcxmH,OAAOK,UAGrBC,EAAiBkmH,EAAYlmH,eAO7Bm1I,EAAuBjvB,EAAY7xF,SAGnCknD,EAAiBr4E,EAASA,EAAOs4E,iBAAcv4D,EA+BnD/L,EAAOC,QAtBP,SAAmBnV,GACjB,IAAIozI,EAAQp1I,EAAeC,KAAK+B,EAAOu5E,GACnCp1C,EAAMnkC,EAAMu5E,GAEhB,IACEv5E,EAAMu5E,QAAkBt4D,EACxB,IAAIoyH,GAAW,EACf,MAAOl0I,IAET,IAAIiB,EAAS+yI,EAAqBl1I,KAAK+B,GAUvC,OARIqzI,IACED,EACFpzI,EAAMu5E,GAAkBp1C,SAEjBnkC,EAAMu5E,IAIVn5E,I,kBC5CT,IAOI+yI,EAPcz1I,OAAOK,UAOcs0B,SAavCnd,EAAOC,QAJP,SAAwBnV,GACtB,OAAOmzI,EAAqBl1I,KAAK+B,K,kBCenCkV,EAAOC,QAJP,SAAkBnV,GAChB,MAAuB,iBAATA,GAAqBA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA7B9C,mB,iCCGvB,SAASgiF,EAAuBvmE,GAC9B,OAAOA,GAAOA,EAAIqP,WAAarP,EAAM,CACnC,QAAWA,GAKf,SAAS0qG,EAAwB1qG,GAC/B,GAAIA,GAAOA,EAAIqP,WACb,OAAOrP,EAEP,IAAIyqG,EAAS,GAEb,GAAW,MAAPzqG,EACF,IAAK,IAAI5R,KAAO4R,EACV/d,OAAOK,UAAUC,eAAeC,KAAKwd,EAAK5R,KAAMq8G,EAAOr8G,GAAO4R,EAAI5R,IAK1E,OADAq8G,EAAgB,QAAIzqG,EACbyqG,EAtBX/wG,EAAQ2V,YAAa,EA0BrB,IAEIwoH,EAAOntB,EAFW,EAAQ,MAQ1BotB,EAAyBvxD,EAFD,EAAQ,MAMhCwxD,EAAwBxxD,EAFD,EAAQ,KAM/ByxD,EAAQttB,EAFW,EAAQ,KAM3ButB,EAAUvtB,EAFW,EAAQ,MAM7B5jC,EAAyBP,EAFD,EAAQ,MAKpC,SAASxjF,IACP,IAAIikF,EAAK,IAAI6wD,EAAKtgD,sBAYlB,OAXAygD,EAAMviD,OAAOzO,EAAI6wD,GACjB7wD,EAAGkxD,WAAaJ,EAAgC,QAChD9wD,EAAGmxD,UAAYJ,EAA+B,QAC9C/wD,EAAGgxD,MAAQA,EACXhxD,EAAGoxD,iBAAmBJ,EAAMI,iBAC5BpxD,EAAGqxD,GAAKJ,EAERjxD,EAAGsxD,SAAW,SAAUlqE,GACtB,OAAO6pE,EAAQK,SAASlqE,EAAM4Y,IAGzBA,EAGT,IAAIQ,EAAOzkF,IACXykF,EAAKzkF,OAASA,EAEd+jF,EAAgC,QAAEU,GAElCA,EAAc,QAAIA,EAClB9tE,EAAiB,QAAI8tE,EACrB/tE,EAAOC,QAAUA,EAAiB,S,iCC5ElCA,EAAQ2V,YAAa,EAErB,IAAImoE,EAAS,EAAQ,IAErB99E,EAAiB,QAAI,SAAU2W,GAC7BA,EAASmoE,eAAe,sBAAsB,SAAUnpF,EAASiE,GAC/D,IAAIilI,EAAUjlI,EAAQilI,QAClB3nG,EAAKt9B,EAAQs9B,GAEjB,IAAgB,IAAZvhC,EACF,OAAOuhC,EAAG/tC,MACL,IAAgB,IAAZwM,GAAgC,MAAXA,EAC9B,OAAOkpI,EAAQ11I,MACV,GAAI20F,EAAOh+E,QAAQnK,GACxB,OAAIA,EAAQ9L,OAAS,GACf+P,EAAQ02D,MACV12D,EAAQ02D,IAAM,CAAC12D,EAAQiK,OAGlB8S,EAAS8nE,QAAQqgD,KAAKnpI,EAASiE,IAE/BilI,EAAQ11I,MAGjB,GAAIyQ,EAAQwQ,MAAQxQ,EAAQ02D,IAAK,CAC/B,IAAIlmD,EAAO0zE,EAAOwB,YAAY1lF,EAAQwQ,MAEtCA,EAAK20H,YAAcjhD,EAAOkhD,kBAAkBplI,EAAQwQ,KAAK20H,YAAanlI,EAAQiK,MAC9EjK,EAAU,CACRwQ,KAAMA,GAIV,OAAO8sB,EAAGvhC,EAASiE,OAKzBmG,EAAOC,QAAUA,EAAiB,S,kCCxClC,YAEAA,EAAQ2V,YAAa,EAQrB,IANgCrP,EAM5Bw3E,EAAS,EAAQ,IAEjB6zB,EAAa,EAAQ,IAErB5zB,GAV4Bz3E,EAUSqrG,IATzBrrG,EAAIqP,WAAarP,EAAM,CACnC,QAAWA,GAUftG,EAAiB,QAAI,SAAU2W,GAC7BA,EAASmoE,eAAe,QAAQ,SAAUnpF,EAASiE,GACjD,IAAKA,EACH,MAAM,IAAImkF,EAAqB,QAAE,+BAGnC,IA2DUkhD,EA3DN/nG,EAAKt9B,EAAQs9B,GACb2nG,EAAUjlI,EAAQilI,QAClBn1I,EAAI,EACJshC,EAAM,GACN5gB,OAAO0B,EACPizH,OAAcjzH,EAclB,SAASozH,EAAc9iG,EAAOvf,EAAO27B,GAC/BpuC,IACFA,EAAK1V,IAAM0nC,EACXhyB,EAAKyS,MAAQA,EACbzS,EAAKyuB,MAAkB,IAAVhc,EACbzS,EAAKouC,OAASA,EAEVumF,IACF30H,EAAK20H,YAAcA,EAAc3iG,IAIrCpR,GAAYkM,EAAGvhC,EAAQymC,GAAQ,CAC7BhyB,KAAMA,EACN+0H,YAAarhD,EAAOqhD,YAAY,CAACxpI,EAAQymC,GAAQA,GAAQ,CAAC2iG,EAAc3iG,EAAO,SAInF,GA9BIxiC,EAAQwQ,MAAQxQ,EAAQ02D,MAC1ByuE,EAAcjhD,EAAOkhD,kBAAkBplI,EAAQwQ,KAAK20H,YAAanlI,EAAQ02D,IAAI,IAAM,KAGjFwtB,EAAOnK,WAAWh+E,KACpBA,EAAUA,EAAQ7M,KAAKK,OAGrByQ,EAAQwQ,OACVA,EAAO0zE,EAAOwB,YAAY1lF,EAAQwQ,OAqBhCzU,GAA8B,kBAAZA,EACpB,GAAImoF,EAAOh+E,QAAQnK,GACjB,IAAK,IAAI4mB,EAAI5mB,EAAQ9L,OAAQH,EAAI6yB,EAAG7yB,IAC9BA,KAAKiM,GACPupI,EAAcx1I,EAAGA,EAAGA,IAAMiM,EAAQ9L,OAAS,QAG1C,GAAIyL,EAAOvJ,QAAU4J,EAAQL,EAAOvJ,OAAOC,UAAW,CAI3D,IAHA,IAAIu+D,EAAa,GACbv+D,EAAW2J,EAAQL,EAAOvJ,OAAOC,YAE5B6pC,EAAK7pC,EAASjB,QAAS8qC,EAAG3qC,KAAM2qC,EAAK7pC,EAASjB,OACrDw/D,EAAWn+D,KAAKypC,EAAGhrC,OAKrB,IAAS0xB,GAFT5mB,EAAU40D,GAEW1gE,OAAQH,EAAI6yB,EAAG7yB,IAClCw1I,EAAcx1I,EAAGA,EAAGA,IAAMiM,EAAQ9L,OAAS,QAIvCo1I,OAAWnzH,EACfvjB,OAAOmd,KAAK/P,GAASsQ,SAAQ,SAAUvR,QAIpBoX,IAAbmzH,GACFC,EAAcD,EAAUv1I,EAAI,GAG9Bu1I,EAAWvqI,EACXhL,YAGeoiB,IAAbmzH,GACFC,EAAcD,EAAUv1I,EAAI,GAAG,GAUvC,OAJU,IAANA,IACFshC,EAAM6zG,EAAQ11I,OAGT6hC,MAIXjrB,EAAOC,QAAUA,EAAiB,U,mDC3GlCA,EAAQ2V,YAAa,EAQrB,IANgCrP,EAM5BqrG,EAAa,EAAQ,IAErB5zB,GAR4Bz3E,EAQSqrG,IAPzBrrG,EAAIqP,WAAarP,EAAM,CACnC,QAAWA,GAQftG,EAAiB,QAAI,SAAU2W,GAC7BA,EAASmoE,eAAe,iBAAiB,WAGvC,GAAyB,IAArBl1F,UAAUC,OAKZ,MAAM,IAAIk0F,EAAqB,QAAE,oBAAsBn0F,UAAUA,UAAUC,OAAS,GAAGga,KAAO,SAKpG9D,EAAOC,QAAUA,EAAiB,S,gCC5BnB,SAASulH,EAAuB72G,GAC7C,QAAa,IAATA,EACF,MAAM,IAAI82G,eAAe,6DAG3B,OAAO92G,EALT,mC,iCCEA1O,EAAQ2V,YAAa,EAQrB,IANgCrP,EAM5Bw3E,EAAS,EAAQ,IAEjB6zB,EAAa,EAAQ,IAErB5zB,GAV4Bz3E,EAUSqrG,IATzBrrG,EAAIqP,WAAarP,EAAM,CACnC,QAAWA,GAUftG,EAAiB,QAAI,SAAU2W,GAC7BA,EAASmoE,eAAe,MAAM,SAAUsgD,EAAaxlI,GACnD,GAAwB,GAApBhQ,UAAUC,OACZ,MAAM,IAAIk0F,EAAqB,QAAE,qCAUnC,OAPID,EAAOnK,WAAWyrD,KACpBA,EAAcA,EAAYt2I,KAAKK,QAM5ByQ,EAAQ03G,KAAK+tB,cAAgBD,GAAethD,EAAOxpC,QAAQ8qF,GACvDxlI,EAAQilI,QAAQ11I,MAEhByQ,EAAQs9B,GAAG/tC,SAGtBwtB,EAASmoE,eAAe,UAAU,SAAUsgD,EAAaxlI,GACvD,GAAwB,GAApBhQ,UAAUC,OACZ,MAAM,IAAIk0F,EAAqB,QAAE,yCAGnC,OAAOpnE,EAAS8nE,QAAY,GAAE31F,KAAKK,KAAMi2I,EAAa,CACpDloG,GAAIt9B,EAAQilI,QACZA,QAASjlI,EAAQs9B,GACjBo6E,KAAM13G,EAAQ03G,WAKpBvxG,EAAOC,QAAUA,EAAiB,S,iCC9ClCA,EAAQ2V,YAAa,EAErB3V,EAAiB,QAAI,SAAU2W,GAC7BA,EAASmoE,eAAe,OAAO,WAM7B,IAHA,IAAIx+E,EAAO,MAACwL,GACRlS,EAAUhQ,UAAUA,UAAUC,OAAS,GAElCH,EAAI,EAAGA,EAAIE,UAAUC,OAAS,EAAGH,IACxC4W,EAAKlU,KAAKxC,UAAUF,IAGtB,IAAI6sB,EAAQ,EAEc,MAAtB3c,EAAQ03G,KAAK/6F,MACfA,EAAQ3c,EAAQ03G,KAAK/6F,MACZ3c,EAAQwQ,MAA8B,MAAtBxQ,EAAQwQ,KAAKmM,QACtCA,EAAQ3c,EAAQwQ,KAAKmM,OAGvBjW,EAAK,GAAKiW,EACVI,EAASgC,IAAI7uB,MAAM6sB,EAAUrW,OAIjCP,EAAOC,QAAUA,EAAiB,S,iCC1BlCA,EAAQ2V,YAAa,EAErB3V,EAAiB,QAAI,SAAU2W,GAC7BA,EAASmoE,eAAe,UAAU,SAAUx4E,EAAK81B,EAAOxiC,GACtD,OAAK0M,EAKE1M,EAAQ0lI,eAAeh5H,EAAK81B,GAH1B91B,MAObvG,EAAOC,QAAUA,EAAiB,S,iCCblCA,EAAQ2V,YAAa,EAQrB,IANgCrP,EAM5Bw3E,EAAS,EAAQ,IAEjB6zB,EAAa,EAAQ,IAErB5zB,GAV4Bz3E,EAUSqrG,IATzBrrG,EAAIqP,WAAarP,EAAM,CACnC,QAAWA,GAUftG,EAAiB,QAAI,SAAU2W,GAC7BA,EAASmoE,eAAe,QAAQ,SAAUnpF,EAASiE,GACjD,GAAwB,GAApBhQ,UAAUC,OACZ,MAAM,IAAIk0F,EAAqB,QAAE,uCAG/BD,EAAOnK,WAAWh+E,KACpBA,EAAUA,EAAQ7M,KAAKK,OAGzB,IAAI+tC,EAAKt9B,EAAQs9B,GAEjB,GAAK4mD,EAAOxpC,QAAQ3+C,GAalB,OAAOiE,EAAQilI,QAAQ11I,MAZvB,IAAIihB,EAAOxQ,EAAQwQ,KAOnB,OALIxQ,EAAQwQ,MAAQxQ,EAAQ02D,OAC1BlmD,EAAO0zE,EAAOwB,YAAY1lF,EAAQwQ,OAC7B20H,YAAcjhD,EAAOkhD,kBAAkBplI,EAAQwQ,KAAK20H,YAAanlI,EAAQ02D,IAAI,KAG7Ep5B,EAAGvhC,EAAS,CACjByU,KAAMA,EACN+0H,YAAarhD,EAAOqhD,YAAY,CAACxpI,GAAU,CAACyU,GAAQA,EAAK20H,oBAQjEh/H,EAAOC,QAAUA,EAAiB,S,iCC5ClCA,EAAQ2V,YAAa,EACrB3V,EAAQ6+E,0BAYR,SAAmCloE,GACjC4oH,EAA4B,QAAE5oH,IALhC,IANgCrQ,EAM5Bk5H,EAAoB,EAAQ,KAE5BD,GAR4Bj5H,EAQgBk5H,IAPhCl5H,EAAIqP,WAAarP,EAAM,CACnC,QAAWA,I,iCCLftG,EAAQ2V,YAAa,EAErB,IAAImoE,EAAS,EAAQ,IAErB99E,EAAiB,QAAI,SAAU2W,GAC7BA,EAASuoE,kBAAkB,UAAU,SAAUhoD,EAAI5zB,EAAOm8H,EAAW7lI,GACnE,IAAIoxB,EAAMkM,EAgBV,OAdK5zB,EAAMo7E,WACTp7E,EAAMo7E,SAAW,GAEjB1zD,EAAM,SAAar1B,EAASiE,GAE1B,IAAI84C,EAAW+sF,EAAU/gD,SACzB+gD,EAAU/gD,SAAWZ,EAAO/B,OAAO,GAAIrpC,EAAUpvC,EAAMo7E,UACvD,IAAI1zD,EAAMkM,EAAGvhC,EAASiE,GAEtB,OADA6lI,EAAU/gD,SAAWhsC,EACd1nB,IAIX1nB,EAAMo7E,SAAS9kF,EAAQ0G,KAAK,IAAM1G,EAAQs9B,GACnClM,MAIXjrB,EAAOC,QAAUA,EAAiB,S,iCC1BlCA,EAAQ2V,YAAa,EACrB3V,EAAQowG,sBAWR,WACE,IAAK,IAAIj3F,EAAOvvB,UAAUC,OAAQivC,EAAUpwC,MAAMywB,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC9E0f,EAAQ1f,GAAQxvB,UAAUwvB,GAG5B,OAAO0kE,EAAO/B,OAAOjyF,WAAMgiB,EAAW,CAACvjB,OAAOc,OAAO,OAAOuD,OAAOksC,KAdrE,IAAIglD,EAAS,EAAQ,K,iCCArB,SAAS0gD,EAAWj6H,GAClBpb,KAAKob,OAASA,EAHhBvE,EAAQ2V,YAAa,EAMrB6oH,EAAW51I,UAAUs0B,SAAWshH,EAAW51I,UAAU82I,OAAS,WAC5D,MAAO,GAAKv2I,KAAKob,QAGnBvE,EAAiB,QAAIw+H,EACrBz+H,EAAOC,QAAUA,EAAiB,S,iCCZlCA,EAAQ2V,YAAa,EACrB3V,EAAQ2/H,cA+CR,SAAuBC,GACrB,IAAIC,EAAmBD,GAAgBA,EAAa,IAAM,EACtDE,EAAkBC,EAAM1hD,kBAE5B,GAAIwhD,GAAoBE,EAAMzhD,mCAAqCuhD,GAAoBE,EAAM1hD,kBAC3F,OAGF,GAAIwhD,EAAmBE,EAAMzhD,kCAAmC,CAC9D,IAAI0hD,EAAkBD,EAAMxhD,iBAAiBuhD,GACzCG,EAAmBF,EAAMxhD,iBAAiBshD,GAC9C,MAAM,IAAI9hD,EAAqB,QAAE,6IAAoJiiD,EAAkB,oDAAsDC,EAAmB,MAGhR,MAAM,IAAIliD,EAAqB,QAAE,wIAA+I6hD,EAAa,GAAK,OA5DtM5/H,EAAQ4+H,SAgER,SAAkBsB,EAAczwD,GAE9B,IAAKA,EACH,MAAM,IAAIsO,EAAqB,QAAE,qCAGnC,IAAKmiD,IAAiBA,EAAaC,KACjC,MAAM,IAAIpiD,EAAqB,QAAE,mCAAqCmiD,GAGxEA,EAAaC,KAAKC,UAAYF,EAAaG,OAG3C5wD,EAAIkvD,GAAGgB,cAAcO,EAAaI,UAElC,IAAIC,EAAuCL,EAAaI,UAAyC,IAA7BJ,EAAaI,SAAS,GA6C1F,IAAIb,EAAY,CACde,OAAQ,SAAgBl6H,EAAKzC,EAAMqjH,GACjC,IAAK5gH,KAASzC,KAAQyC,GACpB,MAAM,IAAIy3E,EAAqB,QAAE,IAAMl6E,EAAO,oBAAsByC,EAAK,CACvE4gH,IAAKA,IAIT,OAAOuY,EAAUH,eAAeh5H,EAAKzC,IAEvCy7H,eAAgB,SAAwB38F,EAAQiuE,GAC9C,IAAI3lH,EAAS03C,EAAOiuE,GAEpB,OAAc,MAAV3lH,GAIA1C,OAAOK,UAAUC,eAAeC,KAAK65C,EAAQiuE,IAI7CzyB,EAAqBuyB,gBAAgBzlH,EAAQw0I,EAAU9uB,mBAAoBC,GAPtE3lH,OAOT,GAMF6mD,OAAQ,SAAgB2uF,EAAQ58H,GAG9B,IAFA,IAAI8qB,EAAM8xG,EAAO52I,OAERH,EAAI,EAAGA,EAAIilC,EAAKjlC,IAAK,CAG5B,GAAc,OAFD+2I,EAAO/2I,IAAM+1I,EAAUH,eAAemB,EAAO/2I,GAAIma,IAG5D,OAAO48H,EAAO/2I,GAAGma,KAIvB68H,OAAQ,SAAgB52H,EAASnU,GAC/B,MAA0B,oBAAZmU,EAAyBA,EAAQhhB,KAAK6M,GAAWmU,GAEjE40H,iBAAkBJ,EAAMI,iBACxBiC,cArFF,SAA8B1mF,EAAStkD,EAASiE,GAC1CA,EAAQ03G,OACV37G,EAAU2oI,EAAMviD,OAAO,GAAIpmF,EAASiE,EAAQ03G,MAExC13G,EAAQ02D,MACV12D,EAAQ02D,IAAI,IAAK,IAIrBrW,EAAUw1B,EAAIkvD,GAAGiC,eAAe93I,KAAKK,KAAM8wD,EAAStkD,EAASiE,GAC7D,IAAIinI,EAAkBvC,EAAMviD,OAAO,GAAIniF,EAAS,CAC9C+1G,MAAOxmH,KAAKwmH,MACZgB,mBAAoBxnH,KAAKwnH,qBAEvB1lH,EAASwkF,EAAIkvD,GAAGgC,cAAc73I,KAAKK,KAAM8wD,EAAStkD,EAASkrI,GAO/D,GALc,MAAV51I,GAAkBwkF,EAAIlC,UACxB3zE,EAAQ8kF,SAAS9kF,EAAQiK,MAAQ4rE,EAAIlC,QAAQtzB,EAASimF,EAAaY,gBAAiBrxD,GACpFxkF,EAAS2O,EAAQ8kF,SAAS9kF,EAAQiK,MAAMlO,EAASkrI,IAGrC,MAAV51I,EAAgB,CAClB,GAAI2O,EAAQwuC,OAAQ,CAGlB,IAFA,IAAI0iC,EAAQ7/E,EAAOyK,MAAM,MAEhBhM,EAAI,EAAGgD,EAAIo+E,EAAMjhF,OAAQH,EAAIgD,IAC/Bo+E,EAAMphF,IAAMA,EAAI,IAAMgD,GADYhD,IAKvCohF,EAAMphF,GAAKkQ,EAAQwuC,OAAS0iC,EAAMphF,GAGpCuB,EAAS6/E,EAAMj2E,KAAK,MAGtB,OAAO5J,EAEP,MAAM,IAAI8yF,EAAqB,QAAE,eAAiBnkF,EAAQiK,KAAO,6DAgDnEqzB,GAAI,SAAYxtC,GACd,IAAIshC,EAAMk1G,EAAax2I,GAEvB,OADAshC,EAAIo1G,UAAYF,EAAax2I,EAAI,MAC1BshC,GAET+1G,SAAU,GACVzuB,QAAS,SAAiB5oH,EAAG0gB,EAAM42H,EAAqB7B,EAAasB,GACnE,IAAIQ,EAAiB93I,KAAK43I,SAASr3I,GAC/BwtC,EAAK/tC,KAAK+tC,GAAGxtC,GAQjB,OANI0gB,GAAQq2H,GAAUtB,GAAe6B,EACnCC,EAAiBC,EAAY/3I,KAAMO,EAAGwtC,EAAI9sB,EAAM42H,EAAqB7B,EAAasB,GACxEQ,IACVA,EAAiB93I,KAAK43I,SAASr3I,GAAKw3I,EAAY/3I,KAAMO,EAAGwtC,IAGpD+pG,GAET72H,KAAM,SAAcvf,EAAO4mH,GACzB,KAAO5mH,GAAS4mH,KACd5mH,EAAQA,EAAMs2I,QAGhB,OAAOt2I,GAETu2I,cAAe,SAAuBC,EAAOC,GAC3C,IAAIh7H,EAAM+6H,GAASC,EAMnB,OAJID,GAASC,GAAUD,IAAUC,IAC/Bh7H,EAAMg4H,EAAMviD,OAAO,GAAIulD,EAAQD,IAG1B/6H,GAGTi7H,YAAah5I,OAAOi5I,KAAK,IACzBp2G,KAAMqkD,EAAIkvD,GAAGvzG,KACbw0G,aAAcM,EAAaI,UAG7B,SAASt1G,EAAIr1B,GACX,IAAIiE,EAAUhQ,UAAUC,QAAU,QAAsBiiB,IAAjBliB,UAAU,GAAmB,GAAKA,UAAU,GAC/EwgB,EAAOxQ,EAAQwQ,KAEnB4gB,EAAIy2G,OAAO7nI,IAENA,EAAQqgD,SAAWimF,EAAawB,UACnCt3H,EAAOu3H,EAAShsI,EAASyU,IAG3B,IAAIq2H,OAAS30H,EACTqzH,EAAce,EAAa0B,eAAiB,QAAK91H,EAUrD,SAASq0H,EAAKxqI,GAGZ,MAAO,GAAKuqI,EAAaC,KAAKV,EAAW9pI,EAAS8pI,EAAUhhD,QAASghD,EAAU/gD,SAAUt0E,EAAM+0H,EAAasB,GAI9G,OAfIP,EAAa2B,YAEbpB,EADE7mI,EAAQ6mI,OACD9qI,GAAWiE,EAAQ6mI,OAAO,GAAK,CAAC9qI,GAAS/I,OAAOgN,EAAQ6mI,QAAU7mI,EAAQ6mI,OAE1E,CAAC9qI,KAUdwqI,EAAO2B,EAAkB5B,EAAaC,KAAMA,EAAMV,EAAW7lI,EAAQ6mI,QAAU,GAAIr2H,EAAM+0H,IAC7ExpI,EAASiE,GAiDvB,OA9CAoxB,EAAI+2G,OAAQ,EAEZ/2G,EAAIy2G,OAAS,SAAU7nI,GACrB,GAAKA,EAAQqgD,QAsBXwlF,EAAU9uB,mBAAqB/2G,EAAQ+2G,mBAEvC8uB,EAAUhhD,QAAU7kF,EAAQ6kF,QAC5BghD,EAAU/gD,SAAW9kF,EAAQ8kF,SAC7B+gD,EAAU9gD,WAAa/kF,EAAQ+kF,WAC/B8gD,EAAU9vB,MAAQ/1G,EAAQ+1G,UA3BN,CACpB,IAAIqyB,EAAgB1D,EAAMviD,OAAO,GAAItM,EAAIgP,QAAS7kF,EAAQ6kF,UAsJhE,SAAyCujD,EAAevC,GACtDl3I,OAAOmd,KAAKs8H,GAAe/7H,SAAQ,SAAUwpG,GAC3C,IAAIwyB,EAASD,EAAcvyB,GAC3BuyB,EAAcvyB,GAIlB,SAAkCwyB,EAAQxC,GACxC,IAAIH,EAAiBG,EAAUH,eAC/B,OAAO4C,EAAoBC,WAAWF,GAAQ,SAAUroI,GACtD,OAAO0kI,EAAMviD,OAAO,CAClBujD,eAAgBA,GACf1lI,MATyBwoI,CAAyBH,EAAQxC,MAxJ3D4C,CAAgCL,EAAevC,GAC/CA,EAAUhhD,QAAUujD,EAEhB9B,EAAaoC,aAEf7C,EAAU/gD,SAAW+gD,EAAU2B,cAAcxnI,EAAQ8kF,SAAUjP,EAAIiP,YAGjEwhD,EAAaoC,YAAcpC,EAAaqC,iBAC1C9C,EAAU9gD,WAAa2/C,EAAMviD,OAAO,GAAItM,EAAIkP,WAAY/kF,EAAQ+kF,aAGlE8gD,EAAU9vB,MAAQ,GAClB8vB,EAAU9uB,mBAAqBxyB,EAAqB4xB,yBAAyBn2G,GAC7E,IAAI4oI,EAAsB5oI,EAAQ6oI,2BAA6BlC,EAE/DviD,EAASwxB,kBAAkBiwB,EAAW,gBAAiB+C,GAEvDxkD,EAASwxB,kBAAkBiwB,EAAW,qBAAsB+C,KAWhEx3G,EAAI03G,OAAS,SAAUh5I,EAAG0gB,EAAM+0H,EAAasB,GAC3C,GAAIP,EAAa0B,iBAAmBzC,EAClC,MAAM,IAAIphD,EAAqB,QAAE,0BAGnC,GAAImiD,EAAa2B,YAAcpB,EAC7B,MAAM,IAAI1iD,EAAqB,QAAE,2BAGnC,OAAOmjD,EAAYzB,EAAW/1I,EAAGw2I,EAAax2I,GAAI0gB,EAAM,EAAG+0H,EAAasB,IAGnEz1G,GA3RThrB,EAAQkhI,YAAcA,EACtBlhI,EAAQ4gI,eAoTR,SAAwB3mF,EAAStkD,EAASiE,GACnCqgD,EAMOA,EAAQnxD,MAAS8Q,EAAQiK,OAEnCjK,EAAQiK,KAAOo2C,EACfA,EAAUrgD,EAAQ8kF,SAASzkC,IAPzBA,EADmB,mBAAjBrgD,EAAQiK,KACAjK,EAAQwQ,KAAK,iBAEbxQ,EAAQ8kF,SAAS9kF,EAAQiK,MAQvC,OAAOo2C,GAhUTj6C,EAAQ2gI,cAmUR,SAAuB1mF,EAAStkD,EAASiE,GAEvC,IAAI+oI,EAAsB/oI,EAAQwQ,MAAQxQ,EAAQwQ,KAAK,iBACvDxQ,EAAQqgD,SAAU,EAEdrgD,EAAQ02D,MACV12D,EAAQwQ,KAAK20H,YAAcnlI,EAAQ02D,IAAI,IAAM12D,EAAQwQ,KAAK20H,aAG5D,IAAI6D,OAAe92H,EAEflS,EAAQs9B,IAAMt9B,EAAQs9B,KAAO9L,GAC/B,WACExxB,EAAQwQ,KAAO21H,EAAMzgD,YAAY1lF,EAAQwQ,MAEzC,IAAI8sB,EAAKt9B,EAAQs9B,GAEjB0rG,EAAehpI,EAAQwQ,KAAK,iBAAmB,SAA6BzU,GAC1E,IAAIiE,EAAUhQ,UAAUC,QAAU,QAAsBiiB,IAAjBliB,UAAU,GAAmB,GAAKA,UAAU,GAKnF,OAFAgQ,EAAQwQ,KAAO21H,EAAMzgD,YAAY1lF,EAAQwQ,MACzCxQ,EAAQwQ,KAAK,iBAAmBu4H,EACzBzrG,EAAGvhC,EAASiE,IAGjBs9B,EAAGwnD,WACL9kF,EAAQ8kF,SAAW4/C,EAAMviD,OAAO,GAAIniF,EAAQ8kF,SAAUxnD,EAAGwnD,WAf7D,QAoBc5yE,IAAZmuC,GAAyB2oF,IAC3B3oF,EAAU2oF,GAGZ,QAAgB92H,IAAZmuC,EACF,MAAM,IAAI8jC,EAAqB,QAAE,eAAiBnkF,EAAQiK,KAAO,uBAC5D,GAAIo2C,aAAmBrrC,SAC5B,OAAOqrC,EAAQtkD,EAASiE,IAzW5BoG,EAAQorB,KAAOA,EA0Bf,IAxBgC9kB,EA0B5Bg4H,EAnBJ,SAAiCh4H,GAC/B,GAAIA,GAAOA,EAAIqP,WACb,OAAOrP,EAEP,IAAIyqG,EAAS,GAEb,GAAW,MAAPzqG,EACF,IAAK,IAAI5R,KAAO4R,EACV/d,OAAOK,UAAUC,eAAeC,KAAKwd,EAAK5R,KAAMq8G,EAAOr8G,GAAO4R,EAAI5R,IAK1E,OADAq8G,EAAgB,QAAIzqG,EACbyqG,EAMCC,CAFC,EAAQ,KAIjBW,EAAa,EAAQ,IAErB5zB,GA9B4Bz3E,EA8BSqrG,IA7BzBrrG,EAAIqP,WAAarP,EAAM,CACnC,QAAWA,GA8BXy5H,EAAQ,EAAQ,KAEhB/hD,EAAW,EAAQ,KAEnBkkD,EAAsB,EAAQ,KAE9B/jD,EAAuB,EAAQ,KAmPnC,SAAS+iD,EAAYzB,EAAW/1I,EAAGwtC,EAAI9sB,EAAM42H,EAAqB7B,EAAasB,GAC7E,SAASoC,EAAKltI,GACZ,IAAIiE,EAAUhQ,UAAUC,QAAU,QAAsBiiB,IAAjBliB,UAAU,GAAmB,GAAKA,UAAU,GAC/Ek5I,EAAgBrC,EAMpB,OAJIA,GAAU9qI,GAAW8qI,EAAO,IAAQ9qI,IAAY8pI,EAAU8B,aAA6B,OAAdd,EAAO,KAClFqC,EAAgB,CAACntI,GAAS/I,OAAO6zI,IAG5BvpG,EAAGuoG,EAAW9pI,EAAS8pI,EAAUhhD,QAASghD,EAAU/gD,SAAU9kF,EAAQwQ,MAAQA,EAAM+0H,GAAe,CAACvlI,EAAQulI,aAAavyI,OAAOuyI,GAAc2D,GAOvJ,OAJAD,EAAOf,EAAkB5qG,EAAI2rG,EAAMpD,EAAWgB,EAAQr2H,EAAM+0H,IACvD7sB,QAAU5oH,EACfm5I,EAAKpxB,MAAQgvB,EAASA,EAAO52I,OAAS,EACtCg5I,EAAK1D,YAAc6B,GAAuB,EACnC6B,EAkET,SAASz3G,IACP,MAAO,GAGT,SAASu2G,EAAShsI,EAASyU,GAMzB,OALKA,GAAU,SAAUA,KACvBA,EAAOA,EAAO21H,EAAMzgD,YAAYl1E,GAAQ,IACnCuE,KAAOhZ,GAGPyU,EAGT,SAAS03H,EAAkB5qG,EAAI2rG,EAAMpD,EAAWgB,EAAQr2H,EAAM+0H,GAC5D,GAAIjoG,EAAGkpG,UAAW,CAChB,IAAI98H,EAAQ,GACZu/H,EAAO3rG,EAAGkpG,UAAUyC,EAAMv/H,EAAOm8H,EAAWgB,GAAUA,EAAO,GAAIr2H,EAAM+0H,EAAasB,GACpFnC,EAAMviD,OAAO8mD,EAAMv/H,GAGrB,OAAOu/H,I,iCCvYT7iI,EAAQ2V,YAAa,EACrB3V,EAAQmiI,WAER,SAAoBF,EAAQc,GAC1B,GAAsB,oBAAXd,EAGT,OAAOA,EAWT,OARc,WAKZ,OADAr4I,UAAUA,UAAUC,OAAS,GAAKk5I,EADpBn5I,UAAUA,UAAUC,OAAS,IAEpCo4I,EAAOn4I,MAAMX,KAAMS,c,mBCD5BmW,EAAOC,QAAU,EAAQ,KAAR,I,iCCQnB,SAAS6sE,EAAuBvmE,GAC9B,OAAOA,GAAOA,EAAIqP,WAAarP,EAAM,CACnC,QAAWA,GAxBftG,EAAQ2V,YAAa,EACrB3V,EAAQ6tE,uBAAyBA,EACjC7tE,EAAQ2hB,MA8DR,SAAe/hB,EAAOhG,GACpB,IAAIkuC,EAAM+lC,EAAuBjuE,EAAOhG,GAExC,OADY,IAAIopI,EAA6B,QAAEppI,GAClCkyC,OAAOhE,IAvCtB,IAEIm7F,EAAWp2D,EAFD,EAAQ,MAMlBm2D,EAAsBn2D,EAFD,EAAQ,MAM7Bq2D,EAlCJ,SAAiC58H,GAC/B,GAAIA,GAAOA,EAAIqP,WACb,OAAOrP,EAEP,IAAIyqG,EAAS,GAEb,GAAW,MAAPzqG,EACF,IAAK,IAAI5R,KAAO4R,EACV/d,OAAOK,UAAUC,eAAeC,KAAKwd,EAAK5R,KAAMq8G,EAAOr8G,GAAO4R,EAAI5R,IAK1E,OADAq8G,EAAgB,QAAIzqG,EACbyqG,EAqBGC,CAFC,EAAQ,MAInBlzB,EAAS,EAAQ,IAErB99E,EAAQqV,OAAS4tH,EAAkB,QACnC,IAAIE,EAAK,GAIT,SAASt1D,EAAuBjuE,EAAOhG,GAErC,MAAmB,YAAfgG,EAAMuB,KACDvB,GAGTqjI,EAAkB,QAAEE,GAAKA,EAEzBA,EAAGC,QAAU,SAAUA,GACrB,OAAO,IAAID,EAAGE,eAAezpI,GAAWA,EAAQ0pI,QAASF,IAGjDH,EAAkB,QAAEthH,MAAM/hB,IAdtCk+E,EAAO/B,OAAOonD,EAAID,I,iCC1ClBljI,EAAQ2V,YAAa,EAErB,IAAI4tH,EAAa,WACf,IAAIluH,EAAS,CACXmuH,MAAO,aACPL,GAAI,GACJM,SAAU,CACR,MAAS,EACT,KAAQ,EACR,QAAW,EACX,IAAO,EACP,oBAAuB,EACvB,UAAa,EACb,SAAY,EACZ,MAAS,EACT,SAAY,GACZ,QAAW,GACX,aAAgB,GAChB,QAAW,GACX,QAAW,GACX,QAAW,GACX,aAAgB,GAChB,qBAAwB,GACxB,cAAiB,GACjB,eAAkB,GAClB,WAAc,GACd,yBAA4B,GAC5B,qBAAwB,GACxB,gBAAmB,GACnB,UAAa,GACb,cAAiB,GACjB,WAAc,GACd,YAAe,GACf,cAAiB,GACjB,WAAc,GACd,sBAAyB,GACzB,kBAAqB,GACrB,kBAAqB,GACrB,MAAS,GACT,aAAgB,GAChB,wBAA2B,GAC3B,oBAAuB,GACvB,oBAAuB,GACvB,iBAAoB,GACpB,mBAAsB,GACtB,6BAAgC,GAChC,yBAA4B,GAC5B,yBAA4B,GAC5B,kBAAqB,GACrB,QAAW,GACX,aAAgB,GAChB,qBAAwB,GACxB,cAAiB,GACjB,KAAQ,GACR,qBAAwB,GACxB,iBAAoB,GACpB,eAAkB,GAClB,qBAAwB,GACxB,iBAAoB,GACpB,gBAAmB,GACnB,aAAgB,GAChB,YAAe,GACf,oBAAuB,GACvB,gBAAmB,GACnB,iBAAoB,GACpB,mBAAsB,GACtB,6BAAgC,GAChC,yBAA4B,GAC5B,MAAS,GACT,MAAS,GACT,WAAc,GACd,kBAAqB,GACrB,cAAiB,GACjB,YAAe,GACf,KAAQ,GACR,sBAAyB,GACzB,YAAe,GACf,GAAM,GACN,OAAU,GACV,YAAe,GACf,kBAAqB,GACrB,6BAAgC,GAChC,mBAAsB,GACtB,KAAQ,GACR,SAAY,GACZ,OAAU,GACV,OAAU,GACV,QAAW,GACX,UAAa,GACb,KAAQ,GACR,KAAQ,GACR,aAAgB,GAChB,IAAO,GACP,QAAW,EACX,KAAQ,GAEVC,WAAY,CACV,EAAG,QACH,EAAG,MACH,GAAI,UACJ,GAAI,UACJ,GAAI,gBACJ,GAAI,iBACJ,GAAI,kBACJ,GAAI,aACJ,GAAI,QACJ,GAAI,eACJ,GAAI,qBACJ,GAAI,UACJ,GAAI,gBACJ,GAAI,OACJ,GAAI,iBACJ,GAAI,kBACJ,GAAI,eACJ,GAAI,qBACJ,GAAI,aACJ,GAAI,cACJ,GAAI,KACJ,GAAI,SACJ,GAAI,oBACJ,GAAI,qBACJ,GAAI,SACJ,GAAI,SACJ,GAAI,UACJ,GAAI,YACJ,GAAI,OACJ,GAAI,OACJ,GAAI,OAENC,aAAc,CAAC,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,IAC54BC,cAAe,SAAmBC,EAAQC,EAAQC,EAAUZ,EAAIa,EAASC,EAAIC,GAC3E,IAAIC,EAAKF,EAAGp6I,OAAS,EAErB,OAAQm6I,GACN,KAAK,EACH,OAAOC,EAAGE,EAAK,GAGjB,KAAK,EACHh7I,KAAKi7I,EAAIjB,EAAGkB,eAAeJ,EAAGE,IAC9B,MAEF,KAAK,EAIL,KAAK,EAIL,KAAK,EAIL,KAAK,EAIL,KAAK,EAIL,KAAK,EA2FL,KAAK,GA4CL,KAAK,GAIL,KAAK,GAmCL,KAAK,GAIL,KAAK,GAiDL,KAAK,GAIL,KAAK,GACHh7I,KAAKi7I,EAAIH,EAAGE,GACZ,MArOF,KAAK,EACHh7I,KAAKi7I,EAAI,CACPjjI,KAAM,mBACNtW,MAAOs4I,EAAGmB,aAAaL,EAAGE,IAC1BI,MAAOpB,EAAGqB,WAAWP,EAAGE,GAAKF,EAAGE,IAChCjd,IAAKic,EAAGC,QAAQj6I,KAAK+6I,KAEvB,MAEF,KAAK,GACH/6I,KAAKi7I,EAAI,CACPjjI,KAAM,mBACNuxC,SAAUuxF,EAAGE,GACbt5I,MAAOo5I,EAAGE,GACVjd,IAAKic,EAAGC,QAAQj6I,KAAK+6I,KAEvB,MAEF,KAAK,GACH/6I,KAAKi7I,EAAIjB,EAAGsB,gBAAgBR,EAAGE,EAAK,GAAIF,EAAGE,EAAK,GAAIF,EAAGE,GAAKh7I,KAAK+6I,IACjE,MAEF,KAAK,GACH/6I,KAAKi7I,EAAI,CACPtpH,KAAMmpH,EAAGE,EAAK,GACd9yB,OAAQ4yB,EAAGE,EAAK,GAChB7yB,KAAM2yB,EAAGE,EAAK,IAEhB,MAEF,KAAK,GACHh7I,KAAKi7I,EAAIjB,EAAGuB,aAAaT,EAAGE,EAAK,GAAIF,EAAGE,EAAK,GAAIF,EAAGE,EAAK,GAAIF,EAAGE,IAAK,EAAOh7I,KAAK+6I,IACjF,MAEF,KAAK,GACH/6I,KAAKi7I,EAAIjB,EAAGuB,aAAaT,EAAGE,EAAK,GAAIF,EAAGE,EAAK,GAAIF,EAAGE,EAAK,GAAIF,EAAGE,IAAK,EAAMh7I,KAAK+6I,IAChF,MAEF,KAAK,GACH/6I,KAAKi7I,EAAI,CACPO,KAAMV,EAAGE,EAAK,GACdrpH,KAAMmpH,EAAGE,EAAK,GACd9yB,OAAQ4yB,EAAGE,EAAK,GAChB7yB,KAAM2yB,EAAGE,EAAK,GACdhF,YAAa8E,EAAGE,EAAK,GACrBI,MAAOpB,EAAGqB,WAAWP,EAAGE,EAAK,GAAIF,EAAGE,KAEtC,MAEF,KAAK,GAUL,KAAK,GACHh7I,KAAKi7I,EAAI,CACPtpH,KAAMmpH,EAAGE,EAAK,GACd9yB,OAAQ4yB,EAAGE,EAAK,GAChB7yB,KAAM2yB,EAAGE,EAAK,GACdhF,YAAa8E,EAAGE,EAAK,GACrBI,MAAOpB,EAAGqB,WAAWP,EAAGE,EAAK,GAAIF,EAAGE,KAEtC,MAEF,KAAK,GACHh7I,KAAKi7I,EAAI,CACPG,MAAOpB,EAAGqB,WAAWP,EAAGE,EAAK,GAAIF,EAAGE,EAAK,IACzC7xB,QAAS2xB,EAAGE,IAEd,MAEF,KAAK,GACH,IAAItF,EAAUsE,EAAGuB,aAAaT,EAAGE,EAAK,GAAIF,EAAGE,EAAK,GAAIF,EAAGE,GAAKF,EAAGE,IAAK,EAAOh7I,KAAK+6I,IAC9E5xB,EAAU6wB,EAAGkB,eAAe,CAACxF,GAAUoF,EAAGE,EAAK,GAAGjd,KACtD5U,EAAQsyB,SAAU,EAClBz7I,KAAKi7I,EAAI,CACPG,MAAON,EAAGE,EAAK,GAAGI,MAClBjyB,QAASA,EACTuyB,OAAO,GAET,MAMF,KAAK,GACH17I,KAAKi7I,EAAI,CACPtpH,KAAMmpH,EAAGE,EAAK,GACdI,MAAOpB,EAAGqB,WAAWP,EAAGE,EAAK,GAAIF,EAAGE,KAEtC,MAEF,KAAK,GAIL,KAAK,GACHh7I,KAAKi7I,EAAIjB,EAAG2B,gBAAgBb,EAAGE,EAAK,GAAIF,EAAGE,EAAK,GAAIF,EAAGE,EAAK,GAAIF,EAAGE,EAAK,GAAIhB,EAAGqB,WAAWP,EAAGE,EAAK,GAAIF,EAAGE,IAAMh7I,KAAK+6I,IACpH,MAEF,KAAK,GACH/6I,KAAKi7I,EAAI,CACPjjI,KAAM,mBACN0C,KAAMogI,EAAGE,EAAK,GACd9yB,OAAQ4yB,EAAGE,EAAK,GAChB7yB,KAAM2yB,EAAGE,EAAK,GACd/7F,OAAQ,GACRm8F,MAAOpB,EAAGqB,WAAWP,EAAGE,EAAK,GAAIF,EAAGE,IACpCjd,IAAKic,EAAGC,QAAQj6I,KAAK+6I,KAEvB,MAEF,KAAK,GACH/6I,KAAKi7I,EAAIjB,EAAG4B,oBAAoBd,EAAGE,EAAK,GAAIF,EAAGE,EAAK,GAAIF,EAAGE,GAAKh7I,KAAK+6I,IACrE,MAEF,KAAK,GACH/6I,KAAKi7I,EAAI,CACPtpH,KAAMmpH,EAAGE,EAAK,GACd9yB,OAAQ4yB,EAAGE,EAAK,GAChB7yB,KAAM2yB,EAAGE,EAAK,GACdI,MAAOpB,EAAGqB,WAAWP,EAAGE,EAAK,GAAIF,EAAGE,KAEtC,MAUF,KAAK,GACHh7I,KAAKi7I,EAAI,CACPjjI,KAAM,gBACN2Z,KAAMmpH,EAAGE,EAAK,GACd9yB,OAAQ4yB,EAAGE,EAAK,GAChB7yB,KAAM2yB,EAAGE,EAAK,GACdjd,IAAKic,EAAGC,QAAQj6I,KAAK+6I,KAEvB,MAEF,KAAK,GACH/6I,KAAKi7I,EAAI,CACPjjI,KAAM,OACNoyG,MAAO0wB,EAAGE,GACVjd,IAAKic,EAAGC,QAAQj6I,KAAK+6I,KAEvB,MAEF,KAAK,GACH/6I,KAAKi7I,EAAI,CACPjjI,KAAM,WACNzM,IAAKyuI,EAAG9vH,GAAG4wH,EAAGE,EAAK,IACnBt5I,MAAOo5I,EAAGE,GACVjd,IAAKic,EAAGC,QAAQj6I,KAAK+6I,KAEvB,MAEF,KAAK,GACH/6I,KAAKi7I,EAAIjB,EAAG9vH,GAAG4wH,EAAGE,EAAK,IACvB,MAUF,KAAK,GACHh7I,KAAKi7I,EAAI,CACPjjI,KAAM,gBACNtW,MAAOo5I,EAAGE,GACVzxF,SAAUuxF,EAAGE,GACbjd,IAAKic,EAAGC,QAAQj6I,KAAK+6I,KAEvB,MAEF,KAAK,GACH/6I,KAAKi7I,EAAI,CACPjjI,KAAM,gBACNtW,MAAOy6B,OAAO2+G,EAAGE,IACjBzxF,SAAUptB,OAAO2+G,EAAGE,IACpBjd,IAAKic,EAAGC,QAAQj6I,KAAK+6I,KAEvB,MAEF,KAAK,GACH/6I,KAAKi7I,EAAI,CACPjjI,KAAM,iBACNtW,MAAkB,SAAXo5I,EAAGE,GACVzxF,SAAqB,SAAXuxF,EAAGE,GACbjd,IAAKic,EAAGC,QAAQj6I,KAAK+6I,KAEvB,MAEF,KAAK,GACH/6I,KAAKi7I,EAAI,CACPjjI,KAAM,mBACNuxC,cAAU5mC,EACVjhB,WAAOihB,EACPo7G,IAAKic,EAAGC,QAAQj6I,KAAK+6I,KAEvB,MAEF,KAAK,GACH/6I,KAAKi7I,EAAI,CACPjjI,KAAM,cACNuxC,SAAU,KACV7nD,MAAO,KACPq8H,IAAKic,EAAGC,QAAQj6I,KAAK+6I,KAEvB,MAUF,KAAK,GACH/6I,KAAKi7I,EAAIjB,EAAG6B,aAAY,EAAMf,EAAGE,GAAKh7I,KAAK+6I,IAC3C,MAEF,KAAK,GACH/6I,KAAKi7I,EAAIjB,EAAG6B,aAAY,EAAOf,EAAGE,GAAKh7I,KAAK+6I,IAC5C,MAEF,KAAK,GACHD,EAAGE,EAAK,GAAG/3I,KAAK,CACd+3B,KAAMg/G,EAAG9vH,GAAG4wH,EAAGE,IACfzxF,SAAUuxF,EAAGE,GACbh5F,UAAW84F,EAAGE,EAAK,KAErBh7I,KAAKi7I,EAAIH,EAAGE,EAAK,GACjB,MAEF,KAAK,GACHh7I,KAAKi7I,EAAI,CAAC,CACRjgH,KAAMg/G,EAAG9vH,GAAG4wH,EAAGE,IACfzxF,SAAUuxF,EAAGE,KAEf,MAEF,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GACHh7I,KAAKi7I,EAAI,GACT,MA9EF,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,GAQL,KAAK,IACHH,EAAGE,EAAK,GAAG/3I,KAAK63I,EAAGE,IACnB,MAdF,KAAK,GAQL,KAAK,IACHh7I,KAAKi7I,EAAI,CAACH,EAAGE,MAQnBc,MAAO,CAAC,CACN,EAAG,EACH,EAAG,EACH,EAAG,CAAC,EAAG,IACP,EAAG,EACH,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,EAAG,CAAC,IACH,CACD,EAAG,CAAC,EAAG,IACN,CACD,EAAG,CAAC,EAAG,GACP,EAAG,EACH,EAAG,EACH,EAAG,EACH,GAAI,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,KACP,CACD,EAAG,CAAC,EAAG,IACN,CACD,EAAG,CAAC,EAAG,IACP,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,EAAG,CAAC,EAAG,GACP,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,IACP,CACD,EAAG,CAAC,EAAG,GACP,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,IACP,CACD,EAAG,CAAC,EAAG,GACP,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,IACP,CACD,EAAG,CAAC,EAAG,GACP,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,IACP,CACD,EAAG,CAAC,EAAG,GACP,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,IACP,CACD,EAAG,CAAC,EAAG,GACP,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,IACP,CACD,EAAG,CAAC,EAAG,GACP,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,EAAG,GACR,GAAI,CAAC,E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AAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,G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AAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,EAAG,CAAC,EAAG,IACP,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,IACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,GACJ,GAAI,GACJ,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACH,CACD,GAAI,CAAC,EAAG,MACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,CAAC,EAAG,KACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,MACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,I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AAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,IACJ,GAAI,IACJ,GAAI,CAAC,EAAG,MACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,IACR,GAAI,CAAC,EAAG,KACP,CACD,GAAI,CAAC,EAAG,KACR,GAAI,CAAC,EAAG,MACP,CACD,G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","file":"js/static/index-9f67924bc447a659f86e.chunk.js","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}","// @flow\n\nimport type { Language } from '@/packs/localisation'\n\ntype Ordinality =\n | 'st'\n | 'nd'\n | 'rd'\n | 'th'\n | 'e'\n | ''\n | '.'\n\n/**\n * This method returns the ordinality of the number passed in given the\n * following guidelines:\n *\n * 1: If the last 2 digits of the number are between 10 and 20 (inclusive),\n * then return 'th' (111th, 2419th, etc)\n * 2: If the last digit of the number is a 1, return 'st' (1st, 1251st, etc)\n * 3: If the last digit of the number is a 2, return 'nd' (2nd, 1252nd, etc)\n * 4: If the last digit of the number is a 3, return 'rd' (3rd, 1253rd, etc)\n * 5: In all other cases, return a 'th'\n */\nconst ordinality = (n: number, lng: Language = 'en'): Ordinality => {\n // if the last 2 digits of n are between 10 and 20 (inclusive)\n switch (lng) {\n case 'en': {\n if (n % 100 >= 10 && n % 100 <= 20) return 'th'\n // if n ends in a 1\n if (n % 10 === 1) return 'st'\n // if n ends in a 2\n if (n % 10 === 2) return 'nd'\n // if n ends in a 3\n if (n % 10 === 3) return 'rd'\n // all other cases\n return 'th'\n }\n case 'nl':\n case 'nl_BE': {\n return 'e'\n }\n case 'pl':\n case 'pl_PL': {\n // For Polish, there is no suffix, so we can return an empty string\n return '.'\n }\n case 'fr': {\n return 'e'\n }\n case 'de_DE':\n case 'cs_CZ': {\n return '.'\n }\n default: {\n throw new Error(`language ${lng} is not supported.`)\n }\n }\n}\n\nexport { ordinality }\n\nexport type { Ordinality }\n","// @noflow\n// Config\nimport { format as formatDate } from 'date-fns'\nimport { de, enGB, fr, nl, nlBE, pl } from 'date-fns/locale'\nimport i18n from 'i18next'\nimport Pseudo from 'i18next-pseudo'\nimport Cookies from 'js-cookie'\nimport { initReactI18next } from 'react-i18next'\n\nimport * as StringHelper from '@/utils/StringHelper'\nimport { ordinality } from '@/utils/ordinal'\nimport * as Sentry from '@/utils/sentry'\n\nimport { ensureNever } from '@/typescript/utils'\n\nimport * as CSCZData from '../../../config/locales/cs_CZ.yml'\nimport * as DEDEData from '../../../config/locales/de_DE.yml'\nimport * as ENData from '../../../config/locales/en.yml'\nimport * as FRData from '../../../config/locales/fr.yml'\nimport * as NLData from '../../../config/locales/nl.yml'\nimport * as NLBeData from '../../../config/locales/nl_BE.yml'\nimport * as PLData from '../../../config/locales/pl.yml'\nimport * as PLPLData from '../../../config/locales/pl_PL.yml'\n\n// Due to needing to use snake_case elsewhere and i18next expecting kebab-case,\n// we have the two different type declarations here to satisfy i18next's\n// requirement whilst maintaining a consistent use of snake_case everywhere\n// else possible\n\ntype Language =\n | 'nl'\n | 'en'\n | 'nl_BE'\n | 'fr'\n | 'pl'\n | 'pl_PL'\n | 'de_DE'\n | 'cs_CZ'\n\ntype SupportedLanguage =\n | 'en'\n | 'nl'\n | 'nl-BE'\n | 'fr'\n | 'pl'\n | 'pl-PL'\n | 'de-DE'\n | 'cs-CZ'\n\nconst supportedLanguages: Array<SupportedLanguage> = [\n 'nl',\n 'en',\n 'nl-BE',\n 'fr',\n 'pl',\n 'pl-PL',\n 'de-DE',\n 'cs-CZ'\n]\n\nconst resources = {\n en: {\n app: ENData.default.en.app,\n dynamic: ENData.default.en.dynamic,\n surveys: ENData.default.en.surveys,\n learn_more_about_butternut:\n ENData.default.en.shared.learn_more_about_butternut,\n frequently_asked_questions:\n ENData.default.en.shared.frequently_asked_questions,\n reviews: ENData.default.en.reviews,\n account: ENData.default.en.account,\n homepage: ENData.default.en.homepage,\n home_page: ENData.default.en.home_page,\n contacts: ENData.default.en.contacts,\n our_products: ENData.default.en.our_products,\n our_story: ENData.default.en.our_story,\n making_our_meals: ENData.default.en.making_our_meals,\n wizard_flow: ENData.default.en.wizard_flow,\n self_resolution_flow: ENData.default.en.self_resolution_flow,\n customer_issue_management_flow:\n ENData.default.en.customer_issue_management_flow,\n plans_flow: ENData.default.en.plans_flow,\n simplified_plans_flow: ENData.default.en.simplified_plans_flow,\n ds_app_pay_on_signup_flow: ENData.default.en.ds_app_pay_on_signup_flow,\n checkout: ENData.default.en.checkout,\n thank_you: ENData.default.en.thank_you,\n models: ENData.default.en.models,\n product_categories: ENData.default.en.models.product_categories,\n post_signup_wizard: ENData.default.en.post_signup_wizard,\n dashboard: ENData.default.en.dashboard,\n shipping_countries: ENData.default.en.models.shipping_countries,\n calories_covered: ENData.default.en.shared.calories_covered,\n text_field: ENData.default.en.shared.text_field,\n footer: ENData.default.en.shared.footer,\n navigation: ENData.default.en.shared.navigation,\n unavailable_dates_card: ENData.default.en.shared.unavailable_dates_card,\n expert: ENData.default.en.shared.expert,\n paid_traffic_breeds: ENData.default.en.paid_traffic.breed_autocomplete,\n paid_traffic: ENData.default.en.paid_traffic,\n one_time_purchase_footer: ENData.default.en.shared.one_time_purchase_footer,\n order_summary: ENData.default.en.shared.order_summary,\n shared: ENData.default.en.shared,\n languages: ENData.default.en.models.languages,\n localisation_modal: ENData.default.en.shared.localisation_modal,\n plan_management: ENData.default.en.plan_management,\n onboarding_quiz: ENData.default.en.onboarding_quiz,\n product_modal: ENData.default.en.shared.product_modal,\n gql_errors: ENData.default.en.gql_errors,\n archive_reasons: ENData.default.en.archive_reasons,\n care: ENData.default.en.care,\n orders: ENData.default.en.orders,\n order: ENData.default.en.order,\n butternut_app: ENData.default.en.butternut_app,\n atoms: ENData.default.en.atoms,\n molecules: ENData.default.en.molecules,\n organisms: ENData.default.en.organisms,\n one_off_box_page: ENData.default.en.one_off_box_page,\n swap_and_save: ENData.default.en.swap_and_save,\n limited_offer_paused_page: ENData.default.en.limited_offer_paused_page,\n treatments_paused_page: ENData.default.en.treatments_paused_page,\n ribbon: ENData.default.en.ribbon,\n blog: ENData.default.en.blog,\n ambassadors: ENData.default.en.ambassadors,\n modals: ENData.default.en.modals\n },\n nl: {\n dynamic: NLData.default.nl.dynamic,\n surveys: NLData.default.nl.surveys,\n learn_more_about_butternut:\n NLData.default.nl.shared.learn_more_about_butternut,\n frequently_asked_questions:\n NLData.default.nl.shared.frequently_asked_questions,\n reviews: NLData.default.nl.reviews,\n account: NLData.default.nl.account,\n homepage: NLData.default.nl.homepage,\n home_page: NLData.default.nl.home_page,\n contacts: NLData.default.nl.contacts,\n our_products: NLData.default.nl.our_products,\n our_story: NLData.default.nl.our_story,\n making_our_meals: NLData.default.nl.making_our_meals,\n wizard_flow: NLData.default.nl.wizard_flow,\n self_resolution_flow: NLData.default.nl.self_resolution_flow,\n customer_issue_management_flow:\n NLData.default.nl.customer_issue_management_flow,\n plans_flow: NLData.default.nl.plans_flow,\n simplified_plans_flow: NLData.default.nl.simplified_plans_flow,\n checkout: NLData.default.nl.checkout,\n thank_you: NLData.default.nl.thank_you,\n models: NLData.default.nl.models,\n product_categories: NLData.default.nl.models.product_categories,\n post_signup_wizard: NLData.default.nl.post_signup_wizard,\n dashboard: NLData.default.nl.dashboard,\n ds_app_pay_on_signup_flow: NLData.default.nl.ds_app_pay_on_signup_flow,\n shipping_countries: NLData.default.nl.models.shipping_countries,\n calories_covered: NLData.default.nl.shared.calories_covered,\n text_field: NLData.default.nl.shared.text_field,\n footer: NLData.default.nl.shared.footer,\n navigation: NLData.default.nl.shared.navigation,\n unavailable_dates_card: NLData.default.nl.shared.unavailable_dates_card,\n expert: NLData.default.nl.shared.expert,\n paid_traffic_breeds: NLData.default.nl.paid_traffic.breed_autocomplete,\n paid_traffic: NLData.default.nl.paid_traffic,\n one_time_purchase_footer: NLData.default.nl.shared.one_time_purchase_footer,\n order_summary: NLData.default.nl.shared.order_summary,\n shared: NLData.default.nl.shared,\n languages: NLData.default.nl.models.languages,\n localisation_modal: NLData.default.nl.shared.localisation_modal,\n plan_management: NLData.default.nl.plan_management,\n onboarding_quiz: NLData.default.nl.onboarding_quiz,\n product_modal: NLData.default.nl.shared.product_modal,\n gql_errors: NLData.default.nl.gql_errors,\n archive_reasons: NLData.default.nl.archive_reasons,\n care: NLData.default.nl.care,\n orders: NLData.default.nl.orders,\n order: NLData.default.nl.order,\n butternut_app: NLData.default.nl.butternut_app,\n atoms: NLData.default.nl.atoms,\n molecules: NLData.default.nl.molecules,\n organisms: NLData.default.nl.organisms,\n one_off_box_page: NLData.default.nl.one_off_box_page, // Note: New atomic OOB page\n swap_and_save: NLData.default.nl.swap_and_save,\n limited_offer_paused_page: NLData.default.nl.limited_offer_paused_page,\n treatments_paused_page: NLData.default.nl.treatments_paused_page,\n ribbon: NLData.default.nl.ribbon,\n ambassadors: NLData.default.nl.ambassadors,\n modals: NLData.default.nl.modals,\n blog: NLData.default.nl.blog\n },\n 'nl-BE': {\n frequently_asked_questions:\n NLBeData.default.nl_BE.shared.frequently_asked_questions,\n account: NLBeData.default.nl_BE.account,\n homepage: NLBeData.default.nl_BE.homepage,\n home_page: NLBeData.default.nl_BE.home_page,\n contacts: NLBeData.default.nl_BE.contacts,\n ds_app_pay_on_signup_flow: NLBeData.default.nl_BE.ds_app_pay_on_signup_flow,\n our_story: NLBeData.default.nl_BE.our_story,\n wizard_flow: NLBeData.default.nl_BE.wizard_flow,\n plans_flow: NLBeData.default.nl_BE.plans_flow,\n checkout: NLBeData.default.nl_BE.checkout,\n models: NLBeData.default.nl_BE.models,\n post_signup_wizard: NLBeData.default.nl_BE.post_signup_wizard,\n text_field: NLBeData.default.nl_BE.shared.text_field,\n footer: NLBeData.default.nl_BE.shared.footer,\n paid_traffic: NLBeData.default.nl_BE.paid_traffic,\n plan_management: NLBeData.default.nl_BE.plan_management,\n order: NLBeData.default.nl_BE.order,\n molecules: NLBeData.default.nl_BE.molecules,\n organisms: NLBeData.default.nl_BE.organisms,\n modals: NLBeData.default.nl_BE.modals,\n limited_offer_paused_page: NLBeData.default.nl_BE.limited_offer_paused_page,\n ambassadors: NLBeData.default.nl_BE.ambassadors,\n blog: NLBeData.default.nl_BE.blog\n },\n pl: {\n dynamic: PLData.default.pl.dynamic,\n surveys: PLData.default.pl.surveys,\n learn_more_about_butternut:\n PLData.default.pl.shared.learn_more_about_butternut,\n frequently_asked_questions:\n PLData.default.pl.shared.frequently_asked_questions,\n reviews: PLData.default.pl.reviews,\n account: PLData.default.pl.account,\n homepage: PLData.default.pl.homepage,\n home_page: PLData.default.pl.home_page,\n contacts: PLData.default.pl.contacts,\n our_products: PLData.default.pl.our_products,\n our_story: PLData.default.pl.our_story,\n making_our_meals: PLData.default.pl.making_our_meals,\n wizard_flow: PLData.default.pl.wizard_flow,\n self_resolution_flow: PLData.default.pl.self_resolution_flow,\n customer_issue_management_flow:\n PLData.default.pl.customer_issue_management_flow,\n plans_flow: PLData.default.pl.plans_flow,\n simplified_plans_flow: PLData.default.pl.simplified_plans_flow,\n checkout: PLData.default.pl.checkout,\n thank_you: PLData.default.pl.thank_you,\n models: PLData.default.pl.models,\n product_categories: PLData.default.pl.models.product_categories,\n post_signup_wizard: PLData.default.pl.post_signup_wizard,\n dashboard: PLData.default.pl.dashboard,\n ds_app_pay_on_signup_flow: PLData.default.pl.ds_app_pay_on_signup_flow,\n shipping_countries: PLData.default.pl.models.shipping_countries,\n calories_covered: PLData.default.pl.shared.calories_covered,\n text_field: PLData.default.pl.shared.text_field,\n footer: PLData.default.pl.shared.footer,\n navigation: PLData.default.pl.shared.navigation,\n unavailable_dates_card: PLData.default.pl.shared.unavailable_dates_card,\n expert: PLData.default.pl.shared.expert,\n paid_traffic_breeds: PLData.default.pl.paid_traffic.breed_autocomplete,\n paid_traffic: PLData.default.pl.paid_traffic,\n one_time_purchase_footer: PLData.default.pl.shared.one_time_purchase_footer,\n order_summary: PLData.default.pl.shared.order_summary,\n shared: PLData.default.pl.shared,\n languages: PLData.default.pl.models.languages,\n localisation_modal: PLData.default.pl.shared.localisation_modal,\n plan_management: PLData.default.pl.plan_management,\n onboarding_quiz: PLData.default.pl.onboarding_quiz,\n product_modal: PLData.default.pl.shared.product_modal,\n gql_errors: PLData.default.pl.gql_errors,\n archive_reasons: PLData.default.pl.archive_reasons,\n care: PLData.default.pl.care,\n orders: PLData.default.pl.orders,\n order: PLData.default.pl.order,\n butternut_app: PLData.default.pl.butternut_app,\n atoms: PLData.default.pl.atoms,\n molecules: PLData.default.pl.molecules,\n organisms: PLData.default.pl.organisms,\n one_off_box_page: PLData.default.pl.one_off_box_page, // Note: New atomic OOB page\n swap_and_save: PLData.default.pl.swap_and_save,\n limited_offer_paused_page: PLData.default.pl.limited_offer_paused_page,\n treatments_paused_page: PLData.default.pl.treatments_paused_page,\n ribbon: PLData.default.pl.ribbon,\n invoices: PLData.default.pl.invoices,\n ambassadors: PLData.default.pl.ambassadors,\n modals: PLData.default.pl.modals,\n blog: PLData.default.pl.blog\n },\n 'pl-PL': {\n learn_more_about_butternut:\n PLPLData.default.pl_PL.shared.learn_more_about_butternut,\n frequently_asked_questions:\n PLPLData.default.pl_PL.shared.frequently_asked_questions,\n reviews: PLPLData.default.pl_PL.reviews,\n account: PLPLData.default.pl_PL.account,\n homepage: PLPLData.default.pl_PL.homepage,\n home_page: PLPLData.default.pl_PL.home_page,\n contacts: PLPLData.default.pl_PL.contacts,\n our_products: PLPLData.default.pl_PL.our_products,\n our_story: PLPLData.default.pl_PL.our_story,\n making_our_meals: PLPLData.default.pl_PL.making_our_meals,\n wizard_flow: PLPLData.default.pl_PL.wizard_flow,\n self_resolution_flow: PLPLData.default.pl_PL.self_resolution_flow,\n customer_issue_management_flow:\n PLPLData.default.pl_PL.customer_issue_management_flow,\n plans_flow: PLPLData.default.pl_PL.plans_flow,\n simplified_plans_flow: PLPLData.default.pl_PL.simplified_plans_flow,\n checkout: PLPLData.default.pl_PL.checkout,\n thank_you: PLPLData.default.pl_PL.thank_you,\n models: PLPLData.default.pl_PL.models,\n post_signup_wizard: PLPLData.default.pl_PL.post_signup_wizard,\n dashboard: PLPLData.default.pl_PL.dashboard,\n calories_covered: PLPLData.default.pl_PL.shared.calories_covered,\n text_field: PLPLData.default.pl_PL.shared.text_field,\n footer: PLPLData.default.pl_PL.shared.footer,\n navigation: PLPLData.default.pl_PL.shared.navigation,\n unavailable_dates_card:\n PLPLData.default.pl_PL.shared.unavailable_dates_card,\n expert: PLPLData.default.pl_PL.shared.expert,\n paid_traffic_breeds: PLPLData.default.pl_PL.paid_traffic.breed_autocomplete,\n paid_traffic: PLPLData.default.pl_PL.paid_traffic,\n one_time_purchase_footer:\n PLPLData.default.pl_PL.shared.one_time_purchase_footer,\n order_summary: PLPLData.default.pl_PL.shared.order_summary,\n shared: PLPLData.default.pl_PL.shared,\n localisation_modal: PLPLData.default.pl_PL.shared.localisation_modal,\n plan_management: PLPLData.default.pl_PL.plan_management,\n onboarding_quiz: PLPLData.default.pl_PL.onboarding_quiz,\n product_modal: PLPLData.default.pl_PL.shared.product_modal,\n gql_errors: PLPLData.default.pl_PL.gql_errors,\n archive_reasons: PLPLData.default.pl_PL.archive_reasons,\n care: PLPLData.default.pl_PL.care,\n orders: PLPLData.default.pl_PL.orders,\n order: PLPLData.default.pl_PL.order,\n butternut_app: PLPLData.default.pl_PL.butternut_app,\n atoms: PLPLData.default.pl_PL.atoms,\n molecules: PLPLData.default.pl_PL.molecules,\n organisms: PLPLData.default.pl_PL.organisms,\n one_off_box_page: PLPLData.default.pl_PL.one_off_box_page, // Note: New atomic OOB page\n swap_and_save: PLPLData.default.pl_PL.swap_and_save,\n limited_offer_paused_page: PLPLData.default.pl_PL.limited_offer_paused_page,\n treatments_paused_page: PLPLData.default.pl_PL.treatments_paused_page,\n invoices: PLPLData.default.pl_PL.invoices,\n ribbon: PLPLData.default.pl_PL.ribbon,\n modals: PLPLData.default.pl_PL.modals,\n blog: PLPLData.default.pl_PL.blog\n },\n fr: {\n dynamic: FRData.default.fr.dynamic,\n surveys: FRData.default.fr.surveys,\n learn_more_about_butternut:\n FRData.default.fr.shared.learn_more_about_butternut,\n frequently_asked_questions:\n FRData.default.fr.shared.frequently_asked_questions,\n reviews: FRData.default.fr.reviews,\n account: FRData.default.fr.account,\n homepage: FRData.default.fr.homepage,\n home_page: FRData.default.fr.home_page,\n contacts: FRData.default.fr.contacts,\n our_products: FRData.default.fr.our_products,\n our_story: FRData.default.fr.our_story,\n making_our_meals: FRData.default.fr.making_our_meals,\n wizard_flow: FRData.default.fr.wizard_flow,\n self_resolution_flow: FRData.default.fr.self_resolution_flow,\n customer_issue_management_flow:\n FRData.default.fr.customer_issue_management_flow,\n plans_flow: FRData.default.fr.plans_flow,\n simplified_plans_flow: FRData.default.fr.simplified_plans_flow,\n checkout: FRData.default.fr.checkout,\n thank_you: FRData.default.fr.thank_you,\n models: FRData.default.fr.models,\n product_categories: FRData.default.fr.models.product_categories,\n post_signup_wizard: FRData.default.fr.post_signup_wizard,\n dashboard: FRData.default.fr.dashboard,\n ds_app_pay_on_signup_flow: FRData.default.fr.ds_app_pay_on_signup_flow,\n shipping_countries: FRData.default.fr.models.shipping_countries,\n calories_covered: FRData.default.fr.shared.calories_covered,\n text_field: FRData.default.fr.shared.text_field,\n footer: FRData.default.fr.shared.footer,\n navigation: FRData.default.fr.shared.navigation,\n unavailable_dates_card: FRData.default.fr.shared.unavailable_dates_card,\n expert: FRData.default.fr.shared.expert,\n paid_traffic_breeds: FRData.default.fr.paid_traffic.breed_autocomplete,\n paid_traffic: FRData.default.fr.paid_traffic,\n one_time_purchase_footer: FRData.default.fr.shared.one_time_purchase_footer,\n order_summary: FRData.default.fr.shared.order_summary,\n shared: FRData.default.fr.shared,\n languages: FRData.default.fr.models.languages,\n localisation_modal: FRData.default.fr.shared.localisation_modal,\n plan_management: FRData.default.fr.plan_management,\n onboarding_quiz: FRData.default.fr.onboarding_quiz,\n product_modal: FRData.default.fr.shared.product_modal,\n gql_errors: FRData.default.fr.gql_errors,\n archive_reasons: FRData.default.fr.archive_reasons,\n care: FRData.default.fr.care,\n orders: FRData.default.fr.orders,\n order: FRData.default.fr.order,\n butternut_app: FRData.default.fr.butternut_app,\n atoms: FRData.default.fr.atoms,\n molecules: FRData.default.fr.molecules,\n organisms: FRData.default.fr.organisms,\n one_off_box_page: FRData.default.fr.one_off_box_page, // Note: New atomic OOB page\n swap_and_save: FRData.default.fr.swap_and_save,\n limited_offer_paused_page: FRData.default.fr.limited_offer_paused_page,\n treatments_paused_page: FRData.default.fr.treatments_paused_page,\n ribbon: FRData.default.fr.ribbon,\n invoices: FRData.default.fr.invoices,\n ambassadors: FRData.default.fr.ambassadors,\n modals: FRData.default.fr.modals,\n blog: FRData.default.fr.blog\n },\n 'cs-CZ': {\n homepage: CSCZData.default.cs_CZ.homepage\n },\n 'de-DE': {\n dynamic: DEDEData.default.de_DE.dynamic,\n surveys: DEDEData.default.de_DE.surveys,\n learn_more_about_butternut:\n DEDEData.default.de_DE.shared.learn_more_about_butternut,\n frequently_asked_questions:\n DEDEData.default.de_DE.shared.frequently_asked_questions,\n reviews: DEDEData.default.de_DE.reviews,\n account: DEDEData.default.de_DE.account,\n homepage: DEDEData.default.de_DE.homepage,\n home_page: DEDEData.default.de_DE.home_page,\n contacts: DEDEData.default.de_DE.contacts,\n our_products: DEDEData.default.de_DE.our_products,\n our_story: DEDEData.default.de_DE.our_story,\n making_our_meals: DEDEData.default.de_DE.making_our_meals,\n wizard_flow: DEDEData.default.de_DE.wizard_flow,\n self_resolution_flow: DEDEData.default.de_DE.self_resolution_flow,\n customer_issue_management_flow:\n DEDEData.default.de_DE.customer_issue_management_flow,\n plans_flow: DEDEData.default.de_DE.plans_flow,\n simplified_plans_flow: DEDEData.default.de_DE.simplified_plans_flow,\n checkout: DEDEData.default.de_DE.checkout,\n thank_you: DEDEData.default.de_DE.thank_you,\n models: DEDEData.default.de_DE.models,\n product_categories: DEDEData.default.de_DE.models.product_categories,\n post_signup_wizard: DEDEData.default.de_DE.post_signup_wizard,\n dashboard: DEDEData.default.de_DE.dashboard,\n ds_app_pay_on_signup_flow: DEDEData.default.de_DE.ds_app_pay_on_signup_flow,\n shipping_countries: DEDEData.default.de_DE.models.shipping_countries,\n calories_covered: DEDEData.default.de_DE.shared.calories_covered,\n text_field: DEDEData.default.de_DE.shared.text_field,\n footer: DEDEData.default.de_DE.shared.footer,\n navigation: DEDEData.default.de_DE.shared.navigation,\n unavailable_dates_card:\n DEDEData.default.de_DE.shared.unavailable_dates_card,\n expert: DEDEData.default.de_DE.shared.expert,\n paid_traffic_breeds: DEDEData.default.de_DE.paid_traffic.breed_autocomplete,\n paid_traffic: DEDEData.default.de_DE.paid_traffic,\n one_time_purchase_footer:\n DEDEData.default.de_DE.shared.one_time_purchase_footer,\n order_summary: DEDEData.default.de_DE.shared.order_summary,\n shared: DEDEData.default.de_DE.shared,\n languages: DEDEData.default.de_DE.models.languages,\n localisation_modal: DEDEData.default.de_DE.shared.localisation_modal,\n plan_management: DEDEData.default.de_DE.plan_management,\n onboarding_quiz: DEDEData.default.de_DE.onboarding_quiz,\n product_modal: DEDEData.default.de_DE.shared.product_modal,\n gql_errors: DEDEData.default.de_DE.gql_errors,\n archive_reasons: DEDEData.default.de_DE.archive_reasons,\n care: DEDEData.default.de_DE.care,\n orders: DEDEData.default.de_DE.orders,\n order: DEDEData.default.de_DE.order,\n butternut_app: DEDEData.default.de_DE.butternut_app,\n atoms: DEDEData.default.de_DE.atoms,\n molecules: DEDEData.default.de_DE.molecules,\n organisms: DEDEData.default.de_DE.organisms,\n one_off_box_page: DEDEData.default.de_DE.one_off_box_page, // Note: New atomic OOB page\n swap_and_save: DEDEData.default.de_DE.swap_and_save,\n limited_offer_paused_page: DEDEData.default.de_DE.limited_offer_paused_page,\n treatments_paused_page: DEDEData.default.de_DE.treatments_paused_page,\n ribbon: DEDEData.default.de_DE.ribbon,\n invoices: DEDEData.default.de_DE.invoices,\n ambassadors: DEDEData.default.de_DE.ambassadors,\n modals: DEDEData.default.de_DE.modals,\n blog: DEDEData.default.de_DE.blog\n }\n}\n\nconst namespaceToPath = (ns: string): string => {\n switch (ns) {\n case 'learn_more_about_butternut':\n return 'shared.learn_more_about_butternut'\n case 'frequently_asked_questions':\n return 'shared.frequently_asked_questions'\n case 'reviews':\n return 'reviews'\n case 'account':\n return 'account'\n case 'homepage':\n return 'homepage'\n case 'home_page':\n return 'home_page'\n case 'wizard_flow':\n return 'wizard_flow'\n case 'self_resolution_flow':\n return 'self_resolution_flow'\n case 'customer_issue_management_flow':\n return 'customer_issue_management_flow'\n case 'plans_flow':\n return 'plans_flow'\n case 'simplified_plans_flow':\n return 'simplified_plans_flow'\n case 'checkout':\n return 'checkout'\n case 'ds_app_pay_on_signup_flow':\n return 'ds_app_pay_on_signup_flow'\n case 'thank_you':\n return 'thank_you'\n case 'contacts':\n return 'contacts'\n case 'our_products':\n return 'our_products'\n case 'our_story':\n return 'our_story'\n case 'making_our_meals':\n return 'making_our_meals'\n case 'models':\n return 'models'\n case 'product_categories':\n return 'models.product_categories'\n case 'dashboard':\n return 'dashboard'\n case 'post_signup_wizard':\n return 'post_signup_wizard'\n case 'shipping_countries':\n return 'models.shipping_countries'\n case 'calories_covered':\n return 'shared.calories_covered'\n case 'text_field':\n return 'shared.text_field'\n case 'footer':\n return 'shared.footer'\n case 'navigation':\n return 'shared.navigation'\n case 'unavailable_dates_card':\n return 'shared.unavailable_dates_card'\n case 'expert':\n return 'shared.expert'\n case 'paid_traffic_breeds':\n return 'paid_traffic.breed_autocomplete'\n case 'paid_traffic':\n return 'paid_traffic'\n case 'one_time_purchase_footer':\n return 'shared.one_time_purchase_footer'\n case 'order_summary':\n return 'shared.order_summary'\n case 'shared':\n return 'shared'\n case 'localisation_modal':\n return 'shared.localisation_modal'\n case 'plan_management':\n return 'plan_management'\n case 'onboarding_quiz':\n return 'onboarding_quiz'\n case 'product_modal':\n return 'shared.product_modal'\n case 'gql_errors':\n return 'gql_errors'\n case 'archive_reasons':\n return 'archive_reasons'\n case 'care':\n return 'care'\n case 'order':\n return 'order'\n case 'orders':\n return 'orders'\n case 'butternut_app':\n return 'butternut_app'\n case 'atoms':\n return 'atoms'\n case 'molecules':\n return 'molecules'\n case 'organisms':\n return 'organisms'\n case 'one_off_box_page':\n return 'one_off_box_page'\n case 'swap_and_save':\n return 'swap_and_save'\n case 'limited_offer_paused_page':\n return 'limited_offer_paused_page'\n case 'treatments_paused_page':\n return 'treatments_paused_page'\n case 'invoices':\n return 'invoices'\n case 'ribbon':\n return 'ribbon'\n case 'blog':\n return 'blog'\n case 'ambassadors':\n return 'ambassadors'\n case 'modals':\n return 'modals'\n default: {\n return ''\n }\n }\n}\nconst dateLocale = (locale: Language): Locale => {\n switch (locale) {\n case 'cs_CZ':\n case 'en':\n return enGB\n case 'nl':\n return nl\n case 'nl_BE':\n return nlBE\n case 'fr':\n return fr\n case 'de_DE':\n return de\n case 'pl_PL':\n case 'pl':\n return pl\n default:\n ensureNever(locale)\n return enGB\n }\n}\nconst development = process.env.NODE_ENV === 'development'\nconst phraseBackendEnabled = Cookies.get('phraseapp_enabled') === 'true'\nCookies.remove('phraseapp_enabled')\n\nconst pseudolocaliseCookie = Cookies.get('pseudolocalise') === 'true'\n\n// i18next expects kebab-case\nconst convertLanguageToKebabCase = (lng: Language): string => {\n switch (lng) {\n case 'nl_BE':\n return 'nl-BE'\n case 'pl_PL':\n return 'pl-PL'\n case 'de_DE':\n return 'de-DE'\n default:\n return lng\n }\n}\n\nconst fallbackLanguage = (lng: Language): string | Array<string> => {\n switch (lng) {\n case 'pl_PL':\n return ['pl', 'en']\n case 'nl_BE':\n return ['nl', 'en']\n case 'nl':\n case 'fr':\n case 'de_DE':\n case 'pl':\n default:\n return 'en'\n }\n}\n\nconst initI18n = (\n lng: Language,\n pseudolocalise = pseudolocaliseCookie,\n phraseEnabled = phraseBackendEnabled\n): void => {\n if (i18n.isInitialized) return\n i18n.on('initialized', () => {\n document.dispatchEvent(\n new CustomEvent('translationInitialised', { detail: i18n })\n )\n })\n\n i18n\n .use(\n new Pseudo({\n enabled: pseudolocalise,\n languageToPseudo: 'en',\n letterMultiplier: 1\n })\n )\n .use(initReactI18next)\n .init({\n ns: [\n 'ambassadors',\n 'dynamic',\n 'surveys',\n 'learn_more_about_butternut',\n 'frequently_asked_questions',\n 'reviews',\n 'account',\n 'homepage',\n 'home_page',\n 'contacts',\n 'thank_you',\n 'our_products',\n 'our_story',\n 'making_our_meals',\n 'wizard_flow',\n 'self_resolution_flow',\n 'customer_issue_management_flow',\n 'plans_flow',\n 'simplified_plans_flow',\n 'checkout',\n 'models',\n 'product_categories',\n 'dashboard',\n 'post_signup_wizard',\n 'ds_app_pay_on_signup_flow',\n 'shipping_countries',\n 'calories_covered',\n 'text_field',\n 'footer',\n 'navigation',\n 'unavailable_dates_card',\n 'expert',\n 'paid_traffic_breeds',\n 'paid_traffic',\n 'one_time_purchase_footer',\n 'order_summary',\n 'shared',\n 'languages',\n 'localisation_modal',\n 'plan_management',\n 'onboarding_quiz',\n 'product_modal',\n 'gql_errors',\n 'archive_reasons',\n 'care',\n 'orders',\n 'order',\n 'butternut_app',\n 'atoms',\n 'molecules',\n 'organisms',\n 'one_off_box_page',\n 'swap_and_save',\n 'limited_offer_paused_page',\n 'treatments_paused_page',\n 'invoices',\n 'ribbon',\n 'modals'\n ],\n defaultNS: '',\n lng: convertLanguageToKebabCase(lng),\n react: {\n hashTransKey: () => null\n },\n fallbackLng: fallbackLanguage(lng),\n debug: development,\n resources: resources,\n saveMissing: true,\n supportedLngs: supportedLanguages,\n missingKeyHandler: (\n lngs: readonly string[],\n ns: string,\n key: string\n ): void => {\n if (development) {\n console.error(\n // eslint-disable-next-line i18next/no-literal-string\n `Missing key: ${key} in namespace: ${ns} for language(s): ${lngs\n .map((lng: string): string => lng)\n .join(', ')}`\n )\n } else if (ns !== 'dynamic') {\n Sentry.captureException(\n `Missing key: ${key} in namespace: ${ns} for language(s): ${lngs\n .map((lng: string): string => lng)\n .join(', ')}`\n )\n }\n },\n interpolation: {\n format: (value, format) => {\n // Ensure that the date is localised by updating its locale\n // ---\n switch (format) {\n case 'uppercase':\n return value.toUpperCase()\n case 'capitalise':\n return StringHelper.capitaliseFirstLetter(value)\n case 'ordinal':\n return ordinality(value, lng)\n case 'fullDate':\n return formatDate(value, 'P', { locale: dateLocale(lng) })\n case 'day':\n return formatDate(value, 'eeee', { locale: dateLocale(lng) })\n case 'month':\n return formatDate(value, 'MMMM', { locale: dateLocale(lng) })\n case 'year':\n return formatDate(value, 'yyyy', { locale: dateLocale(lng) })\n case 'shortenedMonth':\n return formatDate(value, 'MMM', { locale: dateLocale(lng) })\n case 'monthAndDate':\n return formatDate(value, 'MMMM do', { locale: dateLocale(lng) })\n case 'dateAndMonth':\n return formatDate(value, 'd MMMM', { locale: dateLocale(lng) })\n case 'dateNumber':\n return formatDate(value, 'd', { locale: dateLocale(lng) })\n case 'dayDateMonth':\n return formatDate(value, 'iiii, dd MMM', {\n locale: dateLocale(lng)\n })\n case 'dayDateLongMonth':\n return formatDate(value, 'iiii, dd MMMM', {\n locale: dateLocale(lng)\n })\n default:\n return value\n }\n },\n escapeValue: false // not needed for react as it escapes by default\n },\n postProcess: ['pseudo'],\n load: 'currentOnly'\n })\n if (phraseEnabled) {\n // the types the we see when phrase in context editor is enabled do not correspond to\n // expected value here\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n i18n.t = (key: string, global: any) => {\n let namespace = ''\n if (key.includes(':')) {\n // split up namespace and rest of key\n const fullKey = key.split(':')\n namespace = fullKey[0]\n key = fullKey[1]\n }\n if (global && global.context) {\n key = `${key}_${global.context}`\n }\n // The Phrase in context editor scans the page and identifies exposed keys that\n // look like this:\n // {{__phrase_${key}__}}\n // we attempted this transformation with their postProcessing library, however,\n // the library does not work with varying namespaces. The following solution\n // allows us to interpolate the keys while integrating the appropriate namespace\n // utilised in the I18n t function.\n // eslint-disable-next-line i18next/no-literal-string\n return `{{__phrase_${namespaceToPath(\n namespace || global.ns || ''\n )}.${key}__}}`\n }\n }\n}\n\nexport default initI18n\nexport type { Language }\n","// @flow\n\n/**\n * Support Colours\n * Here is where we define our core support colours in JavaScript variables so we\n * can pass them as parameters into our asset functions that are stored inside\n * 'javascript/assets/...'. These colours should ALWAYS be in-line with the\n * variables stored in our `_colours.scss` CSS sheet.\n */\n\ntype SupportColours = {|\n // Blue\n supportBlue100: '#f1fcfd',\n supportBlue200: '#beebf4',\n supportBlue300: '#0bb4d0',\n supportBlue400: '#078aa2',\n supportBlue500: '#05697a',\n\n // Green\n successGreen100: '#eff8ed',\n successGreen200: '#98d98c',\n successGreen300: '#4dbd37',\n successGreen400: '#238a0f',\n successGreen500: '#1f6412',\n\n // Red\n dangerRed100: '#fdf2f1',\n dangerRed200: '#f5bebc',\n dangerRed300: '#d2322d',\n dangerRed400: '#9d100b',\n dangerRed500: '#7a0a06',\n\n // Orange\n warningOrange100: '#fcf2e8',\n warningOrange200: '#f9c794',\n warningOrange300: '#f6820e',\n warningOrange400: '#c60',\n warningOrange500: '#66401a',\n\n // Grey\n grey100: '#f7f5f3',\n grey200: '#e7e6e4',\n grey300: '#cfccc9',\n grey400: '#b6b3af',\n grey500: '#9c9896',\n grey600: '#696563',\n\n // Shadows\n shadowYellow: '#f6d17d'\n|}\n\nconst SUPPORT_COLOURS: SupportColours = {\n // Blue\n supportBlue100: '#f1fcfd',\n supportBlue200: '#beebf4',\n supportBlue300: '#0bb4d0',\n supportBlue400: '#078aa2',\n supportBlue500: '#05697a',\n\n // Green\n successGreen100: '#eff8ed',\n successGreen200: '#98d98c',\n successGreen300: '#4dbd37',\n successGreen400: '#238a0f',\n successGreen500: '#1f6412',\n\n // Red\n dangerRed100: '#fdf2f1',\n dangerRed200: '#f5bebc',\n dangerRed300: '#d2322d',\n dangerRed400: '#9d100b',\n dangerRed500: '#7a0a06',\n\n // Orange\n warningOrange100: '#fcf2e8',\n warningOrange200: '#f9c794',\n warningOrange300: '#f6820e',\n warningOrange400: '#c60',\n warningOrange500: '#66401a',\n\n // Grey\n grey100: '#f7f5f3',\n grey200: '#e7e6e4',\n grey300: '#cfccc9',\n grey400: '#b6b3af',\n grey500: '#9c9896',\n grey600: '#696563',\n\n // Shadows\n shadowYellow: '#f6d17d',\n}\n\nexport default SUPPORT_COLOURS\n\nexport type { SupportColours }\n","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import lightFormatters from \"../lightFormatters/index.js\";\nimport getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\nmodule.exports = isArray;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"xs\":\"375px\",\"sm\":\"600px\",\"md\":\"834px\",\"lg\":\"1280px\",\"xl\":\"1280px\",\"brandWhite\":\"Base-module__brandWhite___36IoN\",\"brandYellow100\":\"Base-module__brandYellow100___2mNyL\",\"brandYellow200\":\"Base-module__brandYellow200___22pc5\",\"transparent\":\"Base-module__transparent___2mQQH\"};","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challange you to try to remove it!\n\n return valuesArray[index];\n };\n}","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar b = Symbol.for(\"react.element\"),\n c = Symbol.for(\"react.portal\"),\n d = Symbol.for(\"react.fragment\"),\n e = Symbol.for(\"react.strict_mode\"),\n f = Symbol.for(\"react.profiler\"),\n g = Symbol.for(\"react.provider\"),\n h = Symbol.for(\"react.context\"),\n k = Symbol.for(\"react.server_context\"),\n l = Symbol.for(\"react.forward_ref\"),\n m = Symbol.for(\"react.suspense\"),\n n = Symbol.for(\"react.suspense_list\"),\n p = Symbol.for(\"react.memo\"),\n q = Symbol.for(\"react.lazy\"),\n t = Symbol.for(\"react.offscreen\"),\n u;\nu = Symbol.for(\"react.module.reference\");\n\nfunction v(a) {\n if (\"object\" === typeof a && null !== a) {\n var r = a.$$typeof;\n\n switch (r) {\n case b:\n switch (a = a.type, a) {\n case d:\n case f:\n case e:\n case m:\n case n:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case h:\n case l:\n case q:\n case p:\n case g:\n return a;\n\n default:\n return r;\n }\n\n }\n\n case c:\n return r;\n }\n }\n}\n\nexports.ContextConsumer = h;\nexports.ContextProvider = g;\nexports.Element = b;\nexports.ForwardRef = l;\nexports.Fragment = d;\nexports.Lazy = q;\nexports.Memo = p;\nexports.Portal = c;\nexports.Profiler = f;\nexports.StrictMode = e;\nexports.Suspense = m;\nexports.SuspenseList = n;\n\nexports.isAsyncMode = function () {\n return !1;\n};\n\nexports.isConcurrentMode = function () {\n return !1;\n};\n\nexports.isContextConsumer = function (a) {\n return v(a) === h;\n};\n\nexports.isContextProvider = function (a) {\n return v(a) === g;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === b;\n};\n\nexports.isForwardRef = function (a) {\n return v(a) === l;\n};\n\nexports.isFragment = function (a) {\n return v(a) === d;\n};\n\nexports.isLazy = function (a) {\n return v(a) === q;\n};\n\nexports.isMemo = function (a) {\n return v(a) === p;\n};\n\nexports.isPortal = function (a) {\n return v(a) === c;\n};\n\nexports.isProfiler = function (a) {\n return v(a) === f;\n};\n\nexports.isStrictMode = function (a) {\n return v(a) === e;\n};\n\nexports.isSuspense = function (a) {\n return v(a) === m;\n};\n\nexports.isSuspenseList = function (a) {\n return v(a) === n;\n};\n\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === d || a === f || a === e || a === m || a === n || a === t || \"object\" === typeof a && null !== a && (a.$$typeof === q || a.$$typeof === p || a.$$typeof === g || a.$$typeof === h || a.$$typeof === l || a.$$typeof === u || void 0 !== a.getModuleId) ? !0 : !1;\n};\n\nexports.typeOf = v;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","var _excluded = [\"children\"],\n _excluded2 = [\"count\", \"wrapper\", \"className\", \"containerClassName\", \"containerTestId\", \"circle\", \"style\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\n/**\n * @internal\n */\n\nvar SkeletonThemeContext = React.createContext({});\n\nfunction SkeletonTheme(_ref) {\n var {\n children\n } = _ref,\n styleOptions = _objectWithoutProperties(_ref, _excluded);\n\n return React.createElement(SkeletonThemeContext.Provider, {\n value: styleOptions\n }, children);\n}\n/* eslint-disable react/no-array-index-key */\n\n\nvar defaultEnableAnimation = true; // For performance & cleanliness, don't add any inline styles unless we have to\n\nfunction styleOptionsToCssProperties(_ref2) {\n var {\n baseColor,\n highlightColor,\n width,\n height,\n borderRadius,\n circle,\n direction,\n duration,\n enableAnimation = defaultEnableAnimation\n } = _ref2;\n var style = {};\n if (direction === 'rtl') style['--animation-direction'] = 'reverse';\n if (typeof duration === 'number') style['--animation-duration'] = \"\".concat(duration, \"s\");\n if (!enableAnimation) style['--pseudo-element-display'] = 'none';\n if (typeof width === 'string' || typeof width === 'number') style.width = width;\n if (typeof height === 'string' || typeof height === 'number') style.height = height;\n if (typeof borderRadius === 'string' || typeof borderRadius === 'number') style.borderRadius = borderRadius;\n if (circle) style.borderRadius = '50%';\n if (typeof baseColor !== 'undefined') style['--base-color'] = baseColor;\n if (typeof highlightColor !== 'undefined') style['--highlight-color'] = highlightColor;\n return style;\n}\n\nfunction Skeleton(_ref3) {\n var {\n count = 1,\n wrapper: Wrapper,\n className: customClassName,\n containerClassName,\n containerTestId,\n circle = false,\n style: styleProp\n } = _ref3,\n propsStyleOptions = _objectWithoutProperties(_ref3, _excluded2);\n\n var _a, _b;\n\n var contextStyleOptions = React.useContext(SkeletonThemeContext); // Props take priority over context\n\n var styleOptions = _objectSpread(_objectSpread(_objectSpread({}, contextStyleOptions), propsStyleOptions), {}, {\n circle\n }); // `styleProp` has the least priority out of everything\n\n\n var style = _objectSpread(_objectSpread({}, styleProp), styleOptionsToCssProperties(styleOptions));\n\n var className = 'react-loading-skeleton';\n if (customClassName) className += \" \".concat(customClassName);\n var inline = (_a = styleOptions.inline) !== null && _a !== void 0 ? _a : false;\n var elements = []; // Without the <br />, the skeleton lines will all run together if\n // `width` is specified\n\n for (var i = 0; i < count; i++) {\n var skeletonSpan = React.createElement(\"span\", {\n className: className,\n style: style,\n key: i\n }, \"\\u200C\");\n\n if (inline) {\n elements.push(skeletonSpan);\n } else {\n elements.push(React.createElement(React.Fragment, {\n key: i\n }, skeletonSpan, React.createElement(\"br\", null)));\n }\n }\n\n return React.createElement(\"span\", {\n className: containerClassName,\n \"data-testid\": containerTestId,\n \"aria-live\": \"polite\",\n \"aria-busy\": (_b = styleOptions.enableAnimation) !== null && _b !== void 0 ? _b : defaultEnableAnimation\n }, Wrapper ? elements.map((el, i) => React.createElement(Wrapper, {\n key: i\n }, el)) : elements);\n}\n\nexport { SkeletonTheme, Skeleton as default };","import { __assign } from \"tslib\";\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { mergeOptions } from \"../../core/index.js\";\nimport { equal } from '@wry/equality';\nimport { DocumentType, verifyDocumentType } from \"../parser/index.js\";\nimport { ApolloError } from \"../../errors/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nexport function useMutation(mutation, options) {\n var client = useApolloClient(options === null || options === void 0 ? void 0 : options.client);\n verifyDocumentType(mutation, DocumentType.Mutation);\n\n var _a = useState({\n called: false,\n loading: false,\n client: client\n }),\n result = _a[0],\n setResult = _a[1];\n\n var ref = useRef({\n result: result,\n mutationId: 0,\n isMounted: true,\n client: client,\n mutation: mutation,\n options: options\n });\n {\n Object.assign(ref.current, {\n client: client,\n options: options,\n mutation: mutation\n });\n }\n var execute = useCallback(function (executeOptions) {\n if (executeOptions === void 0) {\n executeOptions = {};\n }\n\n var _a = ref.current,\n client = _a.client,\n options = _a.options,\n mutation = _a.mutation;\n\n var baseOptions = __assign(__assign({}, options), {\n mutation: mutation\n });\n\n if (!ref.current.result.loading && !baseOptions.ignoreResults && ref.current.isMounted) {\n setResult(ref.current.result = {\n loading: true,\n error: void 0,\n data: void 0,\n called: true,\n client: client\n });\n }\n\n var mutationId = ++ref.current.mutationId;\n var clientOptions = mergeOptions(baseOptions, executeOptions);\n return client.mutate(clientOptions).then(function (response) {\n var _a, _b, _c;\n\n var data = response.data,\n errors = response.errors;\n var error = errors && errors.length > 0 ? new ApolloError({\n graphQLErrors: errors\n }) : void 0;\n\n if (mutationId === ref.current.mutationId && !clientOptions.ignoreResults) {\n var result_1 = {\n called: true,\n loading: false,\n data: data,\n error: error,\n client: client\n };\n\n if (ref.current.isMounted && !equal(ref.current.result, result_1)) {\n setResult(ref.current.result = result_1);\n }\n }\n\n (_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onCompleted) === null || _b === void 0 ? void 0 : _b.call(_a, response.data, clientOptions);\n (_c = executeOptions.onCompleted) === null || _c === void 0 ? void 0 : _c.call(executeOptions, response.data, clientOptions);\n return response;\n }).catch(function (error) {\n var _a, _b, _c, _d;\n\n if (mutationId === ref.current.mutationId && ref.current.isMounted) {\n var result_2 = {\n loading: false,\n error: error,\n data: void 0,\n called: true,\n client: client\n };\n\n if (!equal(ref.current.result, result_2)) {\n setResult(ref.current.result = result_2);\n }\n }\n\n if (((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError) || clientOptions.onError) {\n (_c = (_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onError) === null || _c === void 0 ? void 0 : _c.call(_b, error, clientOptions);\n (_d = executeOptions.onError) === null || _d === void 0 ? void 0 : _d.call(executeOptions, error, clientOptions);\n return {\n data: void 0,\n errors: error\n };\n }\n\n throw error;\n });\n }, []);\n var reset = useCallback(function () {\n if (ref.current.isMounted) {\n setResult({\n called: false,\n loading: false,\n client: client\n });\n }\n }, []);\n useEffect(function () {\n ref.current.isMounted = true;\n return function () {\n ref.current.isMounted = false;\n };\n }, []);\n return [execute, __assign({\n reset: reset\n }, result)];\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM yyyy',\n medium: 'd MMM yyyy',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","import formatDistance from \"../en-US/_lib/formatDistance/index.js\";\nimport formatRelative from \"../en-US/_lib/formatRelative/index.js\";\nimport localize from \"../en-US/_lib/localize/index.js\";\nimport match from \"../en-US/_lib/match/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United Kingdom).\n * @language English\n * @iso-639-2 eng\n * @author Alex [@glintik]{@link https://github.com/glintik}\n */\n\nvar locale = {\n code: 'en-GB',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;","import { invariant } from \"../../utilities/globals/index.js\";\nimport * as React from 'react';\nimport { getApolloContext } from \"./ApolloContext.js\";\nexport var ApolloProvider = function ApolloProvider(_a) {\n var client = _a.client,\n children = _a.children;\n var ApolloContext = getApolloContext();\n return React.createElement(ApolloContext.Consumer, null, function (context) {\n if (context === void 0) {\n context = {};\n }\n\n if (client && context.client !== client) {\n context = Object.assign({}, context, {\n client: client\n });\n }\n\n __DEV__ ? invariant(context.client, 'ApolloProvider was not passed a client instance. Make ' + 'sure you pass in your client via the \"client\" prop.') : invariant(context.client, 28);\n return React.createElement(ApolloContext.Provider, {\n value: context\n }, children);\n });\n};","import { ApolloProvider } from '@apollo/client'\nimport React from 'react'\n\nimport client from './client'\n\n// In most standard ( non railsy ) react apps there is a root level App component\n// in to which we can place the apollo wrapper. But we don't have that. As such we need to\n// wrapp each page component in the apollo provider using this HOC\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction withApollo<P>(WrappedComponent: React.ComponentType<P>) {\n const ComponentWithApollo = (props: P) => (\n <ApolloProvider client={client}>\n <WrappedComponent {...props} />\n </ApolloProvider>\n )\n return ComponentWithApollo\n}\n\nexport default withApollo\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"xs\":\"375px\",\"sm\":\"600px\",\"md\":\"834px\",\"lg\":\"1280px\",\"xl\":\"1280px\",\"wrapper\":\"Text-module__wrapper___1AWXr\",\"nomargin\":\"Text-module__nomargin___2Rcge\",\"leftAlign\":\"Text-module__leftAlign___3Lrh8\",\"centerAlign\":\"Text-module__centerAlign___YwIRg\",\"rightAlign\":\"Text-module__rightAlign___3dJHY\",\"uppercase\":\"Text-module__uppercase___2vgix\",\"strikeThrough\":\"Text-module__strikeThrough___3_cNB\",\"bold\":\"Text-module__bold___c5iiP\",\"discount\":\"Text-module__discount___3Ej9z\",\"textMono18\":\"Text-module__textMono18___3Q4ne\",\"textMono16\":\"Text-module__textMono16___2dPk-\",\"textMono14\":\"Text-module__textMono14___1-VGH\",\"textMono12\":\"Text-module__textMono12___1UTPA\",\"textRegular20\":\"Text-module__textRegular20___22scn\",\"textRegular18\":\"Text-module__textRegular18___13QiL\",\"textRegular16\":\"Text-module__textRegular16___2yxOG\",\"textRegular14\":\"Text-module__textRegular14___2GKiG\",\"textRegular12\":\"Text-module__textRegular12___3xQpx\",\"display45\":\"Text-module__display45___1mI6D\",\"display36\":\"Text-module__display36___3LmhC\",\"display28\":\"Text-module__display28___350q6\",\"display24\":\"Text-module__display24___2g8-i\",\"display20\":\"Text-module__display20___SSooV\",\"display18\":\"Text-module__display18___1zOnn\",\"display16\":\"Text-module__display16___29Iuk\",\"display14\":\"Text-module__display14___2ElYH\",\"display12\":\"Text-module__display12___2HeMT\",\"scale\":\"Text-module__scale___cMpoE\",\"tight\":\"Text-module__tight___3fHKE\",\"brandBlue100\":\"Text-module__brandBlue100___1Fs9M\",\"brandBlue200\":\"Text-module__brandBlue200___2IfrB\",\"brandBlue300\":\"Text-module__brandBlue300___sfIRq\",\"brandBlue400\":\"Text-module__brandBlue400___2p9zS\",\"brandBlue500\":\"Text-module__brandBlue500___2OgN7\",\"brandBlue600\":\"Text-module__brandBlue600___1g3kC\",\"brandRed300\":\"Text-module__brandRed300___5uQeb\",\"brandRed400\":\"Text-module__brandRed400___2RGDi\",\"brandRed500\":\"Text-module__brandRed500___3GsVu\",\"brandRed600\":\"Text-module__brandRed600___1fY4_\",\"brandYellow100\":\"Text-module__brandYellow100___2JTmD\",\"brandYellow300\":\"Text-module__brandYellow300___2YZMw\",\"brandYellow600\":\"Text-module__brandYellow600___30Z2N\",\"brandYellow700\":\"Text-module__brandYellow700___39Kg8\",\"brandPink200\":\"Text-module__brandPink200___2SFyd\",\"brandPink400\":\"Text-module__brandPink400___1wazs\",\"brandPink500\":\"Text-module__brandPink500___2LYAb\",\"brandWhite\":\"Text-module__brandWhite___laIxv\",\"supportGreen300\":\"Text-module__supportGreen300___2bJ-c\",\"supportGreen400\":\"Text-module__supportGreen400___1gTWF\",\"supportGreen500\":\"Text-module__supportGreen500___1V2Pz\",\"supportOrange300\":\"Text-module__supportOrange300___PKPYj\",\"supportOrange400\":\"Text-module__supportOrange400___1VCrJ\",\"supportOrange500\":\"Text-module__supportOrange500___1TVVy\",\"supportRed300\":\"Text-module__supportRed300___1-A7n\",\"supportRed500\":\"Text-module__supportRed500___1Vs5A\",\"supportBlue300\":\"Text-module__supportBlue300___1haMh\",\"supportBlue500\":\"Text-module__supportBlue500___1gIzd\",\"dangerRed300\":\"Text-module__dangerRed300___3eegP\",\"dangerRed500\":\"Text-module__dangerRed500___c-KM0\",\"cardboardBrown\":\"Text-module__cardboardBrown___diY4h\",\"grey400\":\"Text-module__grey400___3Zh0X\",\"shadowBlack\":\"Text-module__shadowBlack___oJISb\",\"squigglyUnderlineYellow\":\"Text-module__squigglyUnderlineYellow___2o4fi\",\"squigglyUnderlineBlue\":\"Text-module__squigglyUnderlineBlue___9Q2J2\",\"squigglyUnderlineGreen\":\"Text-module__squigglyUnderlineGreen___1aMJd\",\"squigglyUnderlinePinkLarge\":\"Text-module__squigglyUnderlinePinkLarge___qmlAW\",\"pillDiscount\":\"Text-module__pillDiscount___2C8CG\",\"angledStrikethrough\":\"Text-module__angledStrikethrough___fFhKa\",\"discountStrikeThrough\":\"Text-module__discountStrikeThrough___1GPQ3\",\"link\":\"Text-module__link___1iRfy\",\"whiteTape\":\"Text-module__whiteTape___2Jry2\",\"lightBlueTape\":\"Text-module__lightBlueTape___39bEn\",\"whiteTapeWithBlueShadow\":\"Text-module__whiteTapeWithBlueShadow___yrlmM\",\"blueTape\":\"Text-module__blueTape___2fzh7\",\"yellowTape\":\"Text-module__yellowTape___3a8ek\",\"pinkTape\":\"Text-module__pinkTape___19vNr\",\"redTape\":\"Text-module__redTape___2wZDy\",\"greenTape\":\"Text-module__greenTape___17ozm\",\"colorAccentDiscount\":\"Text-module__colorAccentDiscount___tx-E-\",\"colorAccentLight\":\"Text-module__colorAccentLight___1pQhE\",\"strikeTrough\":\"Text-module__strikeTrough___28Jvk\",\"underline\":\"Text-module__underline___5CRKC\",\"redAccent\":\"Text-module__redAccent___3P6aG\",\"yellowAccent\":\"Text-module__yellowAccent___3DmJZ\",\"blueTextShadow\":\"Text-module__blueTextShadow___1P9rK\",\"grayTextShadow\":\"Text-module__grayTextShadow___1QpkL\",\"redTextShadow\":\"Text-module__redTextShadow___1yOY7\",\"yellowUnderline\":\"Text-module__yellowUnderline___20wN-\"};","// @noflow\nimport type { Language } from '@/packs/localisation'\nimport React from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { DiscountBasis } from '@/utils/butternutbox/discountCodes'\nimport { UserType } from '@/utils/wizardCtaLink'\n\nimport BREAKPOINTS from '@/constants/Breakpoints'\n\nimport useWindowSize from '@/hooks/useWindowSize'\n\nimport Cta from './components/CTA'\nimport DogDetailsForm from './components/DogDetailsForm'\nimport Plan from './components/Plan'\nimport withApollo from '@/components/apollo/withApollo'\nimport Image from '@/components/shared/elements/Image/Image'\n\nimport type { Code as CountryCode } from '@/shared_types/rails_models/shipping_countries'\n\ntype Props = {\n preferredLanguage: Language\n currentUserType?: UserType\n screenIdentifier: string\n discountValue: number\n discountBasis: DiscountBasis\n shippingCountryCode: CountryCode\n showImage: boolean\n}\n\ntype DogDetails = {\n age: number\n weight: string | number\n interactedWithAge: boolean\n}\n\nconst namespace = 'homepage'\nconst copyContext = 'rough_cost_calculator'\nconst baseClass = 'rough-cost-calculator__cost-calculator'\n\nconst FullSectionRoughCostCalculator = ({\n preferredLanguage,\n currentUserType,\n screenIdentifier,\n discountValue,\n discountBasis,\n shippingCountryCode,\n showImage\n}: Props): JSX.Element | null => {\n const { windowWidth } = useWindowSize()\n const { t } = useTranslation(namespace)\n const isDesktop = windowWidth > BREAKPOINTS.lg\n\n return (\n <div className={`${baseClass}`}>\n <div className={`${baseClass}__text-wrapper`}>\n <h3 className={`${!isDesktop ? 'display-36' : 'display-45'} no-scale`}>\n {t(`${copyContext}.title`)}\n </h3>\n <div className={`${baseClass}__card`}>\n <p className={`text-regular-20 no-scale ${baseClass}__text`}>\n {t(`${copyContext}.description`)}\n </p>\n <DogDetailsForm />\n <div className={`${baseClass}__plan-row`}>\n <Plan\n description={t(`${copyContext}.mix_plan`)}\n planType=\"mix\"\n copyContext={copyContext}\n namespace={namespace}\n preferredLanguage={preferredLanguage}\n shippingCountryCode={shippingCountryCode}\n discountValue={discountValue}\n discountBasis={discountBasis}\n />\n <Plan\n description={t(`${copyContext}.full_butternut`)}\n planType=\"all\"\n copyContext={copyContext}\n namespace={namespace}\n preferredLanguage={preferredLanguage}\n shippingCountryCode={shippingCountryCode}\n discountValue={discountValue}\n discountBasis={discountBasis}\n />\n </div>\n <Cta\n namespace={namespace}\n text={`${copyContext}.build_your_box`}\n currentUserType={currentUserType}\n screenIdentifier={screenIdentifier}\n />\n </div>\n </div>\n {showImage && (\n <div className={`${baseClass}__image-wrapper`}>\n <Image\n alt={t(`${copyContext}.image_alt`)}\n slug=\"charlie-standing-in-front-of-open-fridge\"\n image={{\n width: 640,\n height: 857,\n resizeMode: 'resize_to_fit'\n }}\n className={`${baseClass}__image-wrapper__image`}\n />\n </div>\n )}\n </div>\n )\n}\n\nexport { Props }\nexport type { DogDetails }\nexport default withApollo(FullSectionRoughCostCalculator)\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;","var freeGlobal = require('./_freeGlobal');\n/** Detect free variable `self`. */\n\n\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\nmodule.exports = root;","import React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n var theme = React.useContext(ThemeContext);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","const initGoogleClickIdentifierSession = (): void => {\n const gclid = new URLSearchParams(window.location.search).get('gclid')\n\n if (gclid) window.sessionStorage.setItem('gclid', gclid)\n}\n\nexport { initGoogleClickIdentifierSession }\n","/**\n * Plays videos when they become visible in the viewport and pauses them when they are out of view.\n */\nconst playVideosOnScroll = (): void => {\n const videos = document.querySelectorAll('video')\n\n videos.forEach((video) => {\n video.load()\n video.muted = true\n\n const playPromise = video.play()\n\n if (playPromise !== undefined) {\n playPromise\n .then(() => {\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n video.play()\n } else {\n video.pause()\n }\n })\n })\n observer.observe(video)\n })\n .catch(() => {\n video.pause()\n })\n }\n })\n}\n\nexport { playVideosOnScroll }\n","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","// @noflow\nimport {\n DynamicDefaultTrackEventProperties,\n dynamicDefaultTrackEventPropertiesVar\n} from '@/services/apollo'\n\ntype DefaultProperties = {\n source: string\n screen_identifier: string\n} & DynamicDefaultTrackEventProperties\n\ntype TrackEventProperties = {\n component_identifier: string\n screen_identifier?: string\n sub_event_name?: string\n}\n\ntype ComponentAnalyticsEnabled = {\n identifier: string\n screenIdentifier?: string | null\n subEventName?: string | null\n trackDisabledPresses?: boolean\n disableAnalytics?: never\n}\n\ntype ComponentAnalyticsDisabled = {\n disableAnalytics: boolean\n identifier?: never\n screenIdentifier?: never\n subEventName?: never\n trackDisabledPresses?: never\n}\n\ntype AnalyticsProps = ComponentAnalyticsEnabled | ComponentAnalyticsDisabled\n\n/**\n * Track an analytics event\n *\n * This method should only be called from page loads or generic\n * components (atoms and molecules).\n * Direct interaction with this function from a screen is anti-pattern.\n *\n * @example\n ```\n import { trackEvent, AnalyticsProps } from 'services/segment'\n\n type Props = ButtonProps & AnalyticsProps\n\n trackEvent('Component Clicked', {\n component_identifier: identifier\n })\n ```\n *\n * @param {string} eventName - The name of the event to track\n * @param {TrackEventProperties} properties - The properties to attach to the event\n */\nconst trackEvent = (\n eventName: string,\n properties: TrackEventProperties\n): void => {\n /**\n * Get the current route name in order to set the `screen_identifier`\n * property dynamically.\n *\n * If the route is not available, we set the route name to `unknown`.\n *\n * Alternatively, we can pass optional `screen_identifier` prop to the\n * `trackEvent` function to override the default value.\n *\n * TODO: Establish if we want to use pathname or react route name\n */\n const routeName = window.location.pathname ?? 'unknown'\n\n /**\n * Get the dynamic default properties from the Apollo reactive variable.\n * When one of the properties changes, the reactive variable will be\n * updated and future `trackEvent` function calls will be called with new\n * dynamic properties.\n */\n const dynamicDefaultTrackEventProperties =\n dynamicDefaultTrackEventPropertiesVar()\n\n const defaultProperties: DefaultProperties = {\n source: 'web',\n screen_identifier: routeName,\n ...dynamicDefaultTrackEventProperties\n }\n\n window.analytics.track(eventName, {\n ...defaultProperties,\n ...properties\n })\n}\n\nexport type {\n AnalyticsProps,\n ComponentAnalyticsEnabled,\n ComponentAnalyticsDisabled\n}\n\nexport { trackEvent }\n","// @noflow\nimport { ThemeProvider, createTheme } from '@material-ui/core/styles'\nimport isUndefined from 'lodash/isUndefined'\nimport React from 'react'\n\nimport { BrandColours } from '@/constants/BrandColours'\nimport BREAKPOINTS from '@/constants/Breakpoints'\n\nimport STYLES from './Base.module.sass'\n\nconst theme = createTheme({\n breakpoints: {\n values: {\n ...BREAKPOINTS\n }\n }\n})\n\ntype Props = {\n background?:\n | keyof Pick<\n BrandColours,\n 'brandWhite' | 'brandYellow100' | 'brandYellow200'\n >\n | 'transparent'\n children: React.ReactNode\n}\n\nconst Base = ({ background, children }: Props): JSX.Element => (\n <div className={!isUndefined(background) ? STYLES[background] : ''}>\n <ThemeProvider theme={theme}>{children}</ThemeProvider>\n </div>\n)\n\nexport { BREAKPOINTS, Props, theme }\nexport default Base\n","// @noflow\nimport Cookies from 'js-cookie'\nimport React, { useCallback, useRef, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport popularBreeds from '@/constants/PopularBreeds'\n\nimport BreedAutocomplete from './components/BreedAutocomplete/BreedAutocomplete'\nimport BreedCard, {\n NonPopularBreed,\n PopularBreed\n} from './components/BreedCard/BreedCard'\nimport BreedQuestionnaire from './components/BreedQuestionaire'\nimport segmentTrack from '@/components/analytics/Analytics'\n\nimport type { HomeBreedSelectorQuery_breeds as Breed } from './queries/__generated__/HomeBreedSelectorQuery'\n\nenum BreedSelectorVariant {\n Homepage = 'homepage',\n Generic = 'generic'\n}\n\ntype Props = {\n ctaDestination: string\n isPreWizardGuest: boolean\n scrollToOnFocus?:\n | {\n topOffset: number\n }\n | false\n variant: BreedSelectorVariant\n screenIdentifier: string\n}\n\nconst BreedSelector = ({\n scrollToOnFocus,\n isPreWizardGuest,\n ctaDestination,\n variant = BreedSelectorVariant.Generic,\n screenIdentifier\n}: Props): JSX.Element => {\n const namespace = 'paid_traffic'\n const { t } = useTranslation(namespace)\n const [selectedBreed, setSelectedBreed] = useState<\n PopularBreed | NonPopularBreed | null\n >(null)\n\n const breedSelectorRef = useRef<HTMLDivElement>(null)\n\n // Callbacks\n const onOpenCallback = useCallback(() => setSelectedBreed(null), [])\n const linkCTADestination = useCallback(() => {\n const eventName = 'Component Clicked'\n const properties = {\n screen_identifier: screenIdentifier,\n component_identifier: 'breed_selector_cta',\n breed: selectedBreed?.key\n }\n\n segmentTrack(eventName, properties)\n\n window.location.href = ctaDestination\n }, [ctaDestination, screenIdentifier, selectedBreed?.key])\n\n const onFocusCallback = useCallback(() => {\n if (scrollToOnFocus && breedSelectorRef.current) {\n const { topOffset } = scrollToOnFocus\n const containerDistanceFromTop =\n breedSelectorRef.current.getBoundingClientRect().top\n\n const y = containerDistanceFromTop + window.pageYOffset - topOffset\n\n // On iOS, when a user focuses on an input, the window is automatically\n // scrolled so the input element is placed above the keyboard. By setting a\n // very small timeout, we can ensure that our custom scroll position does not\n // scroll too far which was observed previously.\n setTimeout(() => window.scrollTo({ top: y, behavior: 'smooth' }), 100)\n }\n }, [scrollToOnFocus])\n\n const onBreedSelection = useCallback((breed: Breed) => {\n const matchingPopularBreed = popularBreeds[breed.key]\n\n // Set Breed ID cookie to be accessed by the Wizard to allow\n // for pre-populated breed selection\n Cookies.set(\n 'breedSelectorBreedId',\n JSON.stringify({\n id: parseInt(breed.id),\n key: breed.key,\n name: breed.name\n })\n )\n\n if (matchingPopularBreed) {\n return setSelectedBreed({\n ...breed,\n ...matchingPopularBreed,\n isPopular: true\n })\n } else {\n return setSelectedBreed({\n ...breed,\n isPopular: false\n })\n }\n }, [])\n\n switch (variant) {\n case BreedSelectorVariant.Homepage: {\n return (\n <div id=\"breed-questionaire\" ref={breedSelectorRef}>\n <BreedQuestionnaire\n namespace={namespace}\n onClickCTA={linkCTADestination}\n variant={variant}\n isPreWizardGuest={isPreWizardGuest}\n selectedBreed={selectedBreed}\n events={{\n onBreedSelection: onBreedSelection,\n onListOpen: onOpenCallback,\n onFocus: onFocusCallback,\n onInputEmpty: () => null\n }}\n />\n </div>\n )\n }\n default: {\n return (\n <div id=\"breed-questionaire\" ref={breedSelectorRef}>\n <BreedAutocomplete\n loadingPlaceholder={t(\n `breed_hero_section.field_placeholder_loading`\n )}\n placeholder={t('breed_hero_section.placeholder_v2')}\n embeddedCTA\n onClickCTA={linkCTADestination}\n events={{\n onBreedSelection,\n onListOpen: onOpenCallback,\n onFocus: onFocusCallback,\n onInputEmpty: () => null\n }}\n variant={variant}\n />\n {selectedBreed !== null && (\n <div>\n <div className=\"breed-selector__breed-card-section\">\n <div className=\"breed-selector__breed-card-wrapper\">\n <BreedCard\n selectedBreed={selectedBreed}\n isPreWizardGuest={isPreWizardGuest}\n namespace={namespace}\n variant={variant}\n />\n </div>\n </div>\n </div>\n )}\n </div>\n )\n }\n }\n}\n\nexport default BreedSelector\nexport { BreedSelectorVariant }\n","import { invariant } from \"../../utilities/globals/index.js\";\nexport var DocumentType;\n\n(function (DocumentType) {\n DocumentType[DocumentType[\"Query\"] = 0] = \"Query\";\n DocumentType[DocumentType[\"Mutation\"] = 1] = \"Mutation\";\n DocumentType[DocumentType[\"Subscription\"] = 2] = \"Subscription\";\n})(DocumentType || (DocumentType = {}));\n\nvar cache = new Map();\nexport function operationName(type) {\n var name;\n\n switch (type) {\n case DocumentType.Query:\n name = 'Query';\n break;\n\n case DocumentType.Mutation:\n name = 'Mutation';\n break;\n\n case DocumentType.Subscription:\n name = 'Subscription';\n break;\n }\n\n return name;\n}\nexport function parser(document) {\n var cached = cache.get(document);\n if (cached) return cached;\n var variables, type, name;\n __DEV__ ? invariant(!!document && !!document.kind, \"Argument of \".concat(document, \" passed to parser was not a valid GraphQL \") + \"DocumentNode. You may need to use 'graphql-tag' or another method \" + \"to convert your operation into a document\") : invariant(!!document && !!document.kind, 32);\n var fragments = [];\n var queries = [];\n var mutations = [];\n var subscriptions = [];\n\n for (var _i = 0, _a = document.definitions; _i < _a.length; _i++) {\n var x = _a[_i];\n\n if (x.kind === 'FragmentDefinition') {\n fragments.push(x);\n continue;\n }\n\n if (x.kind === 'OperationDefinition') {\n switch (x.operation) {\n case 'query':\n queries.push(x);\n break;\n\n case 'mutation':\n mutations.push(x);\n break;\n\n case 'subscription':\n subscriptions.push(x);\n break;\n }\n }\n }\n\n __DEV__ ? invariant(!fragments.length || queries.length || mutations.length || subscriptions.length, \"Passing only a fragment to 'graphql' is not yet supported. \" + \"You must include a query, subscription or mutation as well\") : invariant(!fragments.length || queries.length || mutations.length || subscriptions.length, 33);\n __DEV__ ? invariant(queries.length + mutations.length + subscriptions.length <= 1, \"react-apollo only supports a query, subscription, or a mutation per HOC. \" + \"\".concat(document, \" had \").concat(queries.length, \" queries, \").concat(subscriptions.length, \" \") + \"subscriptions and \".concat(mutations.length, \" mutations. \") + \"You can use 'compose' to join multiple operation types to a component\") : invariant(queries.length + mutations.length + subscriptions.length <= 1, 34);\n type = queries.length ? DocumentType.Query : DocumentType.Mutation;\n if (!queries.length && !mutations.length) type = DocumentType.Subscription;\n var definitions = queries.length ? queries : mutations.length ? mutations : subscriptions;\n __DEV__ ? invariant(definitions.length === 1, \"react-apollo only supports one definition per HOC. \".concat(document, \" had \") + \"\".concat(definitions.length, \" definitions. \") + \"You can use 'compose' to join multiple operation types to a component\") : invariant(definitions.length === 1, 35);\n var definition = definitions[0];\n variables = definition.variableDefinitions || [];\n\n if (definition.name && definition.name.kind === 'Name') {\n name = definition.name.value;\n } else {\n name = 'data';\n }\n\n var payload = {\n name: name,\n type: type,\n variables: variables\n };\n cache.set(document, payload);\n return payload;\n}\nexport function verifyDocumentType(document, type) {\n var operation = parser(document);\n var requiredOperationName = operationName(type);\n var usedOperationName = operationName(operation.type);\n __DEV__ ? invariant(operation.type === type, \"Running a \".concat(requiredOperationName, \" requires a graphql \") + \"\".concat(requiredOperationName, \", but a \").concat(usedOperationName, \" was used instead.\")) : invariant(operation.type === type, 36);\n}","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import BreedSelector from './BreedSelector'\n\nexport default BreedSelector\n","import RafCampaignModal from './RafCampaignModal'\n\nexport default RafCampaignModal\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import RafModal from './RafModal'\n\nexport default RafModal\n","import * as Sentry from '@sentry/browser'\nimport { Extras, SeverityLevel } from '@sentry/types'\n\nenum Product {\n Account = 'Account',\n Checkout = 'Checkout',\n HomePage = 'HomePage',\n PaidTraffic = 'PaidTraffic',\n OurProducts = 'OurProducts',\n PlansFlow = 'PlansFlow',\n Wizard = 'Wizard',\n Influencer = 'Influencer',\n Ambassador = 'Ambassador',\n PayOnOwnDevice = 'PayOnOwnDevice'\n}\n\nenum Team {\n Retention = 'retention',\n CoreEx = 'core-ex'\n}\n\ntype Options = {\n extra?: Extras | unknown\n tags?: {\n product?: Product\n team?: Team\n }\n}\n\ntype CaptureMessageOptions = { logLevel: SeverityLevel } & Options\n\n/**\n * Calls Sentry captureMessage event with configurable message, logging level and additional data\n *\n * @name captureMessage\n *\n * @function\n *\n * @param { string } message - Event that will be displayed as Sentry issue title\n * @param { Object } options - Options to pass to Sentry.captureEvent\n * @param { Object } options.extra - Additional object containing any error data\n * @param { string } options.logLevel - Log level in Sentry, if this is `error` and NODE_EVN === `development` this will change to `warning`\n * @param { Object } options.tags - Object containing custom tags to be added to the Sentry event\n *\n * @returns { void }\n */\nexport const captureMessage = (\n message: string,\n { extra, logLevel = 'warning', tags }: CaptureMessageOptions\n): void => {\n Sentry.withScope((scope) => {\n extra && scope.setExtras(extra as Extras)\n\n const level =\n process.env.NODE_ENV === 'development' && logLevel === 'error'\n ? 'warning'\n : logLevel\n\n scope.setLevel(level)\n\n if (tags) scope.setTags(tags)\n\n Sentry.captureMessage(message)\n })\n}\n\n/**\n * Calls Sentry captureException event with configurable message, logging level and additional data\n *\n * @name captureException\n *\n * @function\n *\n * @param { string } message - Event that will be displayed as Sentry issue title\n * @param { Object } options - Options to pass to Sentry.captureEvent\n * @param { Object } options.extra - Additional object containing any error data\n *\n * @returns { void }\n */\nexport const captureException = (message: string, options?: Options): void =>\n captureMessage(message, { ...options, logLevel: 'error' })\n\nexport { Product, Team }\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","// @noflow\nimport Cookies from 'js-cookie'\nimport * as React from 'react'\n\ntype GravityType =\n | 'auto'\n | 'north_west'\n | 'north'\n | 'north_east'\n | 'west'\n | 'center'\n | 'east'\n | 'south_west'\n | 'south'\n | 'south_east'\n | 'custom'\n | 'xy_center'\n\ntype ResizeModeType =\n | 'resize_to_fill'\n | 'resize_to_fit'\n | 'resize_to_limit'\n | 'resize_and_pad'\n | 'crop'\n\ntype ImageParams = {\n width: number\n height: number\n resizeMode?: ResizeModeType\n quality?: string\n format?: string\n gravity?: GravityType\n aspectRatio?: string\n x?: number\n y?: number\n rotate?: number\n monochrome?: boolean\n backgroundColour?: string\n retina?: boolean\n}\n\ntype Props = {\n slug: string\n image: ImageParams\n alt: string\n className?: string\n lazyLoad?: boolean\n}\n\nconst urlBuilder = (imageParams: ImageParams, slug: string): string => {\n // eslint-disable-next-line i18next/no-literal-string\n let src = `/asset_management/assets/${slug}/${Cookies.get('user_language')}?`\n\n // multiply width and height by 2 for retina screens\n const width = imageParams.retina ? imageParams.width * 2 : imageParams.width\n const height = imageParams.retina\n ? imageParams.height * 2\n : imageParams.height\n\n if (imageParams.resizeMode === 'crop') {\n src += `&${imageParams.resizeMode}=${imageParams.x},${imageParams.y},${width},${height}`\n } else if (imageParams.resizeMode) {\n src += `&${imageParams.resizeMode}=${width},${height}`\n }\n\n Object.keys(imageParams).forEach((key: string) => {\n if (!['resizeMode', 'width', 'height', 'x', 'y', 'crop'].includes(key)) {\n const formattedKey = key === 'format' ? 'convert' : key\n // eslint-disable-next-line i18next/no-literal-string\n src += `&${formattedKey}=${imageParams[key as keyof ImageParams]}`\n }\n })\n\n return src\n}\n\n/**\n * An image element that uses the butternut asset management system and React package to dynamically\n * transform our uploaded images\n * The system allows us to set many transformations including height, width,\n * mode (scale, crop, etc), and quality (by default we set quality to auto).\n * All props other than slug are optional.\n *\n * Example usage\n * <Image\n * alt='An image of butternut box'\n * slug='top-logo'\n * image={{ width: 200, height: 200, resizeMode: 'resize_to_fit'}}\n * />\n */\n\nconst Image = ({\n slug,\n alt,\n image,\n className,\n lazyLoad = false\n}: Props): JSX.Element => {\n const src = urlBuilder(image, slug)\n\n const { width, height } = image\n\n return (\n <img\n alt={alt}\n className={`image ${lazyLoad ? 'lazy' : ''} ${className || ''}`}\n width={width}\n height={height}\n src={src}\n data-src={lazyLoad ? src : undefined}\n />\n )\n}\n\nexport type { GravityType, Props, ImageParams }\n\nexport default Image\n","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import defineProperty from \"./defineProperty.js\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }, this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\n\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\n\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\n\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\n\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\n\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\n\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\n\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\n\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\n\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\n\nvar isIE10 = typeof window !== 'undefined' && window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ResourceStore).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread({}, pack, resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread({}, {}, this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Translator).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS;\n\n if (nsSeparator && key.indexOf(nsSeparator) > -1) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n return namespace + nsSeparator + key;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread({}, options, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread({}, options, {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread({}, options, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, fallbackValue) {\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? fallbackValue : resForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? fallbackValue : resForMissing, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread({}, options, {\n interpolation: _objectSpread({}, this.options.interpolation, options.interpolation)\n }));\n var skipOnVariables = options.interpolation && options.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables;\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread({}, this.options.interpolation.defaultVariables, data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKey = key;\n var finalKeys = [finalKey];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count);\n if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix);\n if (needsContextHandling) finalKeys.push(finalKey += \"\".concat(_this4.options.contextSeparator).concat(options.context));\n if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.whitelist = this.options.supportedLngs || false;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isWhitelisted\",\n value: function isWhitelisted(code) {\n this.logger.deprecate('languageUtils.isWhitelisted', 'function \"isWhitelisted\" will be renamed to \"isSupportedCode\" in the next major - please make sure to rename it\\'s usage asap.');\n return this.isSupportedCode(code);\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var rule = this.getRule(code);\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n return this.getSuffixes(code).map(function (suffix) {\n return key + suffix;\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var rule = this.getRule(code);\n\n if (!rule) {\n return [];\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var _this2 = this;\n\n var rule = this.getRule(code);\n\n if (rule) {\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }]);\n\n return PluralResolver;\n}();\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread({}, options, data, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread({}, options, data, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n value = handleFormat(match[1].trim());\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += safeValue.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread({}, inheritedOptions, clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread({}, options, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction remove(arr, what) {\n var found = arr.indexOf(what);\n\n while (found !== -1) {\n arr.splice(found, 1);\n found = arr.indexOf(what);\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Connector).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = [];\n var pending = [];\n var toLoadLanguages = [];\n var toLoadNamespaces = [];\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ;else if (_this2.state[name] === 1) {\n if (pending.indexOf(name) < 0) pending.push(name);\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending.indexOf(name) < 0) pending.push(name);\n if (toLoad.indexOf(name) < 0) toLoad.push(name);\n if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n }\n });\n if (!hasAllNamespaces) toLoadLanguages.push(lng);\n });\n\n if (toLoad.length || pending.length) {\n this.queue.push({\n pending: pending,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: toLoad,\n pending: pending,\n toLoadLanguages: toLoadLanguages,\n toLoadNamespaces: toLoadNamespaces\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n remove(q.pending, name);\n if (err) q.errors.push(err);\n\n if (q.pending.length === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = [];\n\n if (q.loaded[l].length) {\n q.loaded[l].forEach(function (ns) {\n if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread({}, options, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n whitelist: false,\n nonExplicitWhitelist: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: false\n }\n };\n}\n\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.whitelist) {\n if (options.whitelist && options.whitelist.indexOf('cimode') < 0) {\n options.whitelist = options.whitelist.concat(['cimode']);\n }\n\n options.supportedLngs = options.whitelist;\n }\n\n if (options.nonExplicitWhitelist) {\n options.nonExplicitSupportedLngs = options.nonExplicitWhitelist;\n }\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction noop() {}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(I18n).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (options.whitelist && !options.supportedLngs) {\n this.logger.deprecate('whitelist', 'option \"whitelist\" will be renamed to \"supportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n\n if (options.nonExplicitWhitelist && !options.nonExplicitSupportedLngs) {\n this.logger.deprecate('whitelist', 'options \"nonExplicitWhitelist\" will be renamed to \"nonExplicitSupportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n\n this.options = _objectSpread({}, get(), this.options, transformOptions(options));\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, usedCallback);\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var done = function done(err, l) {\n if (l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = keyPrefix ? \"\".concat(keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.languages && this.languages.length > 0 ? this.languages[0] : this.language;\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"createInstance\",\n value: function createInstance() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread({}, this.options, options, {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\nvar i18next = new I18n();\nexport default i18next;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n/* eslint-disable flowtype/no-weak-types */\n\n\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\nvar MAX_ARRAY_LENGTH = 10;\nvar MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport default function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (_typeof(value)) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? \"[function \".concat(value.name, \"]\") : '[function]';\n\n case 'object':\n if (value === null) {\n return 'null';\n }\n\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (previouslySeenValues.indexOf(value) !== -1) {\n return '[Circular]';\n }\n\n var seenValues = [].concat(previouslySeenValues, [value]);\n var customInspectFn = getCustomFn(value);\n\n if (customInspectFn !== undefined) {\n var customValue = customInspectFn.call(value); // check for infinite recursion\n\n if (customValue !== value) {\n return typeof customValue === 'string' ? customValue : formatValue(customValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction formatObject(object, seenValues) {\n var keys = Object.keys(object);\n\n if (keys.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n var properties = keys.map(function (key) {\n var value = formatValue(object[key], seenValues);\n return key + ': ' + value;\n });\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n var len = Math.min(MAX_ARRAY_LENGTH, array.length);\n var remaining = array.length - len;\n var items = [];\n\n for (var i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(\"... \".concat(remaining, \" more items\"));\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getCustomFn(object) {\n var customInspectFn = object[String(nodejsCustomInspectSymbol)];\n\n if (typeof customInspectFn === 'function') {\n return customInspectFn;\n }\n\n if (typeof object.inspect === 'function') {\n return object.inspect;\n }\n}\n\nfunction getObjectTag(object) {\n var tag = Object.prototype.toString.call(object).replace(/^\\[object /, '').replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n var name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}","import { maybe } from \"./maybe.js\";\nexport default maybe(function () {\n return globalThis;\n}) || maybe(function () {\n return window;\n}) || maybe(function () {\n return self;\n}) || maybe(function () {\n return global;\n}) || maybe(function () {\n return maybe.constructor(\"return this\")();\n});","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nvar nodejsCustomInspectSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function' ? Symbol.for('nodejs.util.inspect.custom') : undefined;\nexport default nodejsCustomInspectSymbol;","import { maybe } from \"../globals/index.js\";\nexport var canUseWeakMap = typeof WeakMap === 'function' && maybe(function () {\n return navigator.product;\n}) !== 'ReactNative';\nexport var canUseWeakSet = typeof WeakSet === 'function';\nexport var canUseSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function';\nexport var canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;\nexport var canUseDOM = typeof maybe(function () {\n return window.document.createElement;\n}) === \"function\";\nvar usingJSDOM = maybe(function () {\n return navigator.userAgent.indexOf(\"jsdom\") >= 0;\n}) || false;\nexport var canUseLayoutEffect = canUseDOM && !usingJSDOM;","// @flow\n\nimport * as React from 'react'\nimport { Video as CLVideo } from 'cloudinary-react'\n\ntype CropType =\n | 'scale'\n | 'fill'\n | 'fit'\n | 'limit'\n | 'pad'\n | 'lpad'\n | 'crop'\n\ntype GravityType =\n | 'auto'\n | 'north_west'\n | 'north'\n | 'north_east'\n | 'west'\n | 'center'\n | 'east'\n | 'south_west'\n | 'south'\n | 'south_east'\n\ntype CloudinaryParams = {|\n path: string,\n width?: number,\n height?: number,\n mode?: string,\n quality?: string,\n crop?: CropType,\n gravity?: GravityType,\n format?: string,\n dpr?: number,\n aspectRatio?: string,\n duration?: number,\n x?: number,\n y?: number\n|}\n\ntype Props = {|\n video: CloudinaryParams,\n alt: string,\n autoPlay?: boolean,\n loop?: boolean,\n muted?: boolean,\n playsInline?: boolean,\n controls?: boolean,\n onPlay?: () => void,\n poster?: ?string,\n className?: string,\n preload?: 'none' | 'auto' | 'metadata'\n|}\n\ntype Ref = {|\n current: null | HTMLVideoElement\n|}\n\nconst CloudName = 'ldhg5acsz'\nconst CloudPath = `https://res.cloudinary.com/${CloudName}/video/upload/`\n\n/**\n* A video element that uses the cloudinary API and React package to dynamically\n* transform our uploaded images\n* Default props, following the pattern of existing videos in the codebase, are:\n* loop, muted, playsInline = true\n* autoplay, controls = false\n*\n* The onPlay optional prop can be used to add an analytics event.\n*\n* Cloudinary allows us to set many transformations including height, width,\n* mode (scale, crop, etc), and quality (by default auto: good).\n* All cloudinary props other than path are optional.\n*\n* Example usage\n* <VideoElement\n* autoPlay\n* loop\n* muted\n* playsInline\n* alt='A dog waiting for a bowl of Butternut'\n* video={{path: 'Web/videos/dogs/dog-with-bowl'}}\n* />\n*/\n\nconst VideoElement = React.forwardRef<Props, HTMLVideoElement>(({\n onPlay,\n video,\n alt,\n autoPlay = false,\n loop = true,\n muted = true,\n playsInline = true,\n controls = false,\n poster = null,\n className,\n preload\n}: Props, ref: React.Ref<'video'>): React.Element<'video'> => (\n /*\n * If we set a video height or width to anything less than 0 the\n * Cloudinary default width or height will be set instead.\n */\n <CLVideo\n className={className}\n cloudName='ldhg5acsz'\n publicId={video.path}\n width={typeof video.width === 'number' && video.width > 0 ? video.width : null}\n height={typeof video.height === 'number' && video.height > 0 ? video.height : null}\n mode={video.mode ? video.mode : null}\n quality={video.quality ? video.quality : 'auto:good'}\n crop={video.crop ? video.crop : null}\n gravity={video.gravity ? video.gravity : null}\n autoPlay={autoPlay}\n loop={loop}\n muted={muted}\n playsInline={playsInline}\n controls={controls}\n controlsList=\"nodownload\"\n onPlay={onPlay}\n disablepictureinpicture=\"true\"\n innerRef={ref}\n alt={alt}\n fetchFormat={video.format ? video.format : 'auto'}\n dpr={video.dpr ? video.dpr : null}\n aspectRatio={video.aspectRatio ? video.aspectRatio : null}\n duration={video.duration ? video.duration : null}\n poster={poster}\n preload={preload}\n x={video.x}\n y={video.y}\n />\n))\n\nexport default VideoElement\nexport {\n CloudPath\n}\n\nexport type { Ref }\n","import React from 'react'\nimport { Markup } from 'react-render-markup'\n\ntype InjectedMarkupTextProps = {\n text: string\n}\n\ntype InjectedTextProps = {\n children: Array<string>\n type: string\n}\n\nconst allowedHtmlElement = ['strong', 'em', 'b', 'a', 'br', 'span', 'accent'] // strips all other elements\n\n// This allows us to add specific styling to certain word(s) in a string by\n// wrapping custom <accent> wrappers around them and declaring the style 'type'\n// with a class within the Text component stylesheet. See Storybook for examples\n// under 'With Underline'\nconst AccentText = ({ children, type }: InjectedTextProps) => {\n return <span className={type}>{children[0]}</span>\n}\n\nconst replace = {\n accent: AccentText\n}\n\nconst InjectedMarkupText = ({\n text\n}: InjectedMarkupTextProps): React.ReactElement => {\n return (\n <Markup\n allowedElements={allowedHtmlElement}\n replace={replace}\n markup={text}\n />\n )\n}\n\nexport default InjectedMarkupText\n","// @noflow\nimport type { Language } from '@/packs/localisation'\nimport Cookies from 'js-cookie'\nimport * as React from 'react'\nimport { ReactElement, useCallback, useEffect, useMemo, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { countryCodeToLocaleCurrency } from '@/utils/countryCodeHelper'\nimport { formatCurrencyWithoutDecimal } from '@/utils/currency'\nimport { percentageValue } from '@/utils/percentage'\n\nimport useWindowSize from '@/hooks/useWindowSize'\n\nimport TransitionalModal from '@/components/shared/TransitionalModal'\nimport { BREAKPOINTS } from '@/components/templates/Base'\n\nimport type { Basis as DiscountBasis } from '@/shared_types/rails_models/discounts.js'\nimport type { Code as CountryCode } from '@/shared_types/rails_models/shipping_countries'\n\nimport Image from '../Image'\n\ntype RafCampaignModalData = {\n referrerName: string\n referrerDogNames: string\n referrerDogNumber: string\n referralLinkType: 'ClientReferralLink'\n rafMessage: string\n refereeNextBoxDiscountBasis: DiscountBasis\n refereeNextBoxDiscountValue: string\n}\n\ntype Props = {\n rafCampaignModalData: RafCampaignModalData\n}\n\nconst RafCampaignModal = (props: Props): ReactElement | null => {\n const { windowWidth } = useWindowSize()\n const isMobile = windowWidth < BREAKPOINTS.md\n\n const [rafCampaignModalIsMounted, setRafCampaignModalIsMounted] =\n useState(false)\n const [rafCampaignModalIsOpen, setRafCampaignModalIsOpen] = useState(false)\n\n const namespace = 'homepage'\n const copyContext = 'raf_campaign_modal'\n const { t } = useTranslation(namespace)\n\n const closeRafCampaignModal = useCallback((): void => {\n Cookies.set('has_dismissed_home_raf_modal', 'true')\n setRafCampaignModalIsOpen(false)\n // Unlocks background body-scroll\n document.body.classList.remove('modal--open')\n\n setTimeout((): void => {\n setRafCampaignModalIsMounted(false)\n }, 300)\n }, [])\n\n const { rafCampaignModalData } = props\n const { referrerName, referrerDogNames, referrerDogNumber } =\n rafCampaignModalData\n\n const nextBoxDiscountValue = useMemo(() => {\n const { refereeNextBoxDiscountBasis, refereeNextBoxDiscountValue } =\n rafCampaignModalData\n\n const shippingCountryCode = Cookies.get('user_country_code') || 'GB'\n const language = Cookies.get('user_language') || 'en'\n\n const { locale, currency } = countryCodeToLocaleCurrency(\n shippingCountryCode as CountryCode,\n language as Language\n )\n\n return refereeNextBoxDiscountBasis === 'percentage'\n ? percentageValue(refereeNextBoxDiscountValue)\n : formatCurrencyWithoutDecimal(parseInt(refereeNextBoxDiscountValue), {\n locale: locale,\n currency: currency\n })\n }, [rafCampaignModalData])\n\n const headingCopy = React.useMemo((): string => {\n switch (referrerDogNumber) {\n case '0': {\n return t(`${copyContext}.title_long`, { referrerName })\n }\n case '1': {\n if (referrerName.length + referrerDogNames.length < 42) {\n return t(`${copyContext}.title_short`, {\n referrerName,\n referrerDogNames\n })\n }\n return t(`${copyContext}.title_long`, { referrerName })\n }\n case '2': {\n if (referrerName.length + referrerDogNames.length < 39) {\n return t(`${copyContext}.title_short_plural`, {\n referrerName,\n referrerDogNames\n })\n }\n return t(`${copyContext}.title_long_plural`, { referrerName })\n }\n default: {\n return t(`${copyContext}.title_long_plural`, { referrerName })\n }\n }\n }, [referrerDogNames, referrerDogNumber, referrerName, t])\n\n useEffect((): void => {\n setRafCampaignModalIsMounted(true)\n // Locks background body-scroll\n document.body.classList.add('modal--open')\n setTimeout((): void => {\n setRafCampaignModalIsOpen(true)\n }, 1000)\n }, [])\n\n if (!rafCampaignModalIsMounted) return null\n\n return (\n <TransitionalModal\n closeModal={closeRafCampaignModal}\n extraClasses=\"raf-campaign-modal-wrapper\"\n modalIsOpen={rafCampaignModalIsOpen}\n modalSize=\"large\"\n showCloseButton\n transitionTypes={{ desktop: 'scale', mobile: 'bottom' }}\n >\n <div className=\"raf-campaign-modal__container\">\n <div className=\"raf-campaign-modal__image\">\n <Image\n slug=\"ifd-modal-hero\"\n image={{\n width: 400,\n height: 600,\n resizeMode: 'resize_to_fill',\n gravity: isMobile ? 'center' : 'south'\n }}\n alt={t(`${copyContext}.image_alt`)}\n />\n <div className=\"raf-campaign-modal__ribbon-wrapper\">\n <div className=\"raf-campaign-modal__ribbon-container\">\n <div className=\"raf-campaign-modal__ribbon\" />\n <div className=\"raf-campaign-modal__ribbon__text\">\n <p className=\"display-20\">\n {t(`${copyContext}.ribbon_html`, {\n value: nextBoxDiscountValue\n })}\n </p>\n </div>\n </div>\n </div>\n </div>\n <div className=\"raf-campaign-modal__content__copy\">\n <div className=\"raf-campaign-modal__content__heading\">\n <h2 className=\"display-28\">{headingCopy}</h2>\n </div>\n <div className=\"raf-campaign-modal__content__discount\">\n <p className=\"text-regular-16\">\n {t(`${copyContext}.description`, {\n value: nextBoxDiscountValue\n })}\n </p>\n <button\n className=\"btn primary\"\n onClick={closeRafCampaignModal}\n type=\"button\"\n >\n {t(`${copyContext}.button_text`)}\n </button>\n </div>\n </div>\n </div>\n </TransitionalModal>\n )\n}\n\nexport type { RafCampaignModalData }\nexport default RafCampaignModal\n","// @noflow\nimport type { Language } from '@/packs/localisation'\nimport Cookies from 'js-cookie'\nimport * as React from 'react'\nimport { ReactElement, useCallback, useEffect, useMemo, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { countryCodeToLocaleCurrency } from '@/utils/countryCodeHelper'\nimport { formatCurrencyWithoutDecimal } from '@/utils/currency'\nimport { percentageValue } from '@/utils/percentage'\n\nimport AmbassadorReferralLinkContent from './components/AmbassadorReferralLinkContent'\nimport ClientReferralLinkContent from './components/ClientReferralLinkContent'\nimport TransitionalModal from '@/components/shared/TransitionalModal'\nimport VideoElement from '@/components/shared/VideoElement'\n\nimport type { Basis as DiscountBasis } from '@/shared_types/rails_models/discounts.js'\nimport type { Code as CountryCode } from '@/shared_types/rails_models/shipping_countries'\nimport { ensureNever } from '@/typescript/utils'\n\ntype Profession =\n | 'vet'\n | 'trainer'\n | 'nutritionist'\n | 'behaviourist'\n | 'vet_nurse'\n | 'groomer'\n | 'breeder'\n | 'doggy_day_care'\n | 'dog_walker'\n | 'charity'\n | 'rescue_centre'\n | 'pet_accessories'\n | 'restaurant'\n | 'dog_show'\n | 'dog_blog'\n | 'dog_therapist'\n | 'other'\n\ntype ClientReferralLinkProps = {\n referrerName: string\n referrerDogNames: string\n referrerDogNumber: string\n referralLinkType: 'ClientReferralLink'\n rafMessage: string\n refereeNextBoxDiscountBasis: DiscountBasis\n refereeNextBoxDiscountValue: string\n}\n\ntype AmbassadorReferralLinkProps = {\n referrerName: string\n profession: Profession\n companyName: string\n referralLinkType: 'AmbassadorReferralLink'\n refereeDiscountMessage: string\n refereeNextBoxDiscountBasis: DiscountBasis\n refereeNextBoxDiscountValue: string\n}\n\ntype RafModalData = ClientReferralLinkProps | AmbassadorReferralLinkProps\n\ntype Props = {\n rafModalData: RafModalData\n}\n\nconst RafModal = (props: Props): ReactElement | null => {\n const [rafModalIsMounted, setRafModalIsMounted] = useState(false)\n const [rafModalIsOpen, setRafModalIsOpen] = useState(false)\n\n const namespace = 'homepage'\n const copy_context = 'raf_modal'\n const { t } = useTranslation(namespace)\n\n const closeRafModal = useCallback((): void => {\n Cookies.set('has_dismissed_home_raf_modal', 'true')\n setRafModalIsOpen(false)\n // Unlocks background body-scroll\n document.body.classList.remove('modal--open')\n\n setTimeout((): void => {\n setRafModalIsMounted(false)\n }, 300)\n }, [])\n\n const { rafModalData } = props\n\n const nextBoxDiscountValue = useMemo(() => {\n const { refereeNextBoxDiscountBasis, refereeNextBoxDiscountValue } =\n rafModalData\n\n const shippingCountryCode = Cookies.get('user_country_code') || 'GB'\n const language = Cookies.get('user_language') || 'en'\n\n const { locale, currency } = countryCodeToLocaleCurrency(\n shippingCountryCode as CountryCode,\n language as Language\n )\n\n return refereeNextBoxDiscountBasis === 'percentage'\n ? percentageValue(refereeNextBoxDiscountValue)\n : formatCurrencyWithoutDecimal(parseInt(refereeNextBoxDiscountValue), {\n locale: locale,\n currency: currency\n })\n }, [rafModalData])\n\n const RafModalContent = useMemo(() => {\n const { referralLinkType } = rafModalData\n switch (referralLinkType) {\n case 'ClientReferralLink': {\n const {\n rafMessage,\n referrerName,\n referrerDogNames,\n referrerDogNumber\n } = rafModalData\n return (\n <ClientReferralLinkContent\n namespace={namespace}\n closeRafModal={closeRafModal}\n rafMessage={rafMessage}\n referrerName={referrerName}\n referrerDogNames={referrerDogNames}\n referrerDogNumber={referrerDogNumber}\n />\n )\n }\n case 'AmbassadorReferralLink': {\n const {\n referrerName,\n profession,\n companyName,\n refereeDiscountMessage\n } = rafModalData\n return (\n <AmbassadorReferralLinkContent\n namespace={namespace}\n closeRafModal={closeRafModal}\n referrerName={referrerName}\n profession={profession}\n companyName={companyName}\n refereeDiscountMessage={refereeDiscountMessage}\n />\n )\n }\n default: {\n ensureNever(referralLinkType)\n throw new Error(\n `Could not generate RafModalContent for referralLinkType of: ${referralLinkType}`\n )\n }\n }\n }, [closeRafModal, rafModalData])\n\n useEffect((): void => {\n setRafModalIsMounted(true)\n // Locks background body-scroll\n document.body.classList.add('modal--open')\n setTimeout((): void => {\n setRafModalIsOpen(true)\n }, 1000)\n }, [])\n\n if (!rafModalIsMounted) return null\n\n return (\n <TransitionalModal\n closeModal={closeRafModal}\n extraClasses=\"raf-modal-wrapper\"\n modalIsOpen={rafModalIsOpen}\n modalSize=\"large\"\n showCloseButton\n transitionTypes={{ desktop: 'scale', mobile: 'bottom' }}\n >\n <div className=\"raf-modal__container\">\n <div className=\"raf-modal__video\">\n <div className=\"raf-modal__video__crop\">\n <VideoElement\n video={{\n path: 'Web/videos/dogs/dogs-with-bowls',\n width: 400,\n crop: 'fill',\n dpr: window.devicePixelRatio\n }}\n preload=\"auto\"\n className=\"lazy\"\n muted\n controls={false}\n autoPlay\n loop\n playsInline\n alt={t(`${copy_context}.image_alt`)}\n />\n </div>\n <div className=\"raf-modal__ribbon-wrapper\">\n <div className=\"raf-modal__ribbon-container\">\n <div className=\"raf-modal__ribbon\" />\n <div className=\"raf-modal__ribbon__text\">\n <p className=\"display-20\">\n {t(`${copy_context}.ribbon_html`, {\n value: nextBoxDiscountValue\n })}\n </p>\n </div>\n </div>\n </div>\n </div>\n {RafModalContent}\n </div>\n </TransitionalModal>\n )\n}\n\nexport type {\n Profession,\n ClientReferralLinkProps,\n AmbassadorReferralLinkProps,\n RafModalData\n}\nexport default RafModal\n","// @noflow\nimport * as React from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { captureException } from '@/utils/sentry'\n\nimport InjectedMarkupText from '../../InjectedMarkupText'\nimport type { AmbassadorReferralLinkProps } from '../RafModal'\n\ntype Props = {\n namespace: string\n closeRafModal: () => void\n referrerName: AmbassadorReferralLinkProps['referrerName']\n profession: AmbassadorReferralLinkProps['profession']\n companyName: AmbassadorReferralLinkProps['companyName']\n refereeDiscountMessage: AmbassadorReferralLinkProps['refereeDiscountMessage']\n}\n\nconst AmbassadorReferralLinkContent = ({\n namespace,\n closeRafModal,\n referrerName,\n profession,\n companyName,\n refereeDiscountMessage\n}: Props): React.ReactElement => {\n const { t } = useTranslation(namespace)\n const copyContext = 'raf_modal'\n\n // Turns 'john doe' => 'John Doe'\n const capitalise = (chars: string) =>\n chars\n .trim()\n .split(' ')\n .map((word) => word[0].toUpperCase() + word.slice(1))\n .join(' ')\n\n const referrerNameProfession: Array<Props['profession']> = [\n 'trainer',\n 'behaviourist',\n 'groomer',\n 'vet',\n 'vet_nurse',\n 'nutritionist',\n 'breeder',\n 'dog_walker',\n 'dog_therapist'\n ]\n\n const companyNameProfession: Array<Props['profession']> = [\n 'doggy_day_care',\n 'charity',\n 'rescue_centre',\n 'pet_accessories',\n 'restaurant',\n 'dog_show',\n 'dog_blog',\n 'other'\n ]\n\n const generateTitle = () => {\n if (referrerNameProfession.some((name) => name === profession)) {\n return t(`${copyContext}.ambassadors.title_profession`, {\n referrerName: capitalise(referrerName),\n context: profession\n })\n }\n\n if (companyNameProfession.some((name) => name === profession)) {\n return t(`${copyContext}.ambassadors.title_company_name`, {\n companyName: capitalise(companyName)\n })\n }\n\n captureException(`Unhandled AmbassadorReferralLinkContent profession`, {\n extra: { profession: profession }\n })\n return t(`${copyContext}.ambassadors.title_generic`)\n }\n\n return (\n <div className=\"raf-modal__content__copy\">\n <div className=\"raf-modal__content__heading\">\n <h2 className=\"display-28\">{generateTitle()}</h2>\n </div>\n <div className=\"raf-modal__content__discount\">\n <p className=\"text-regular-16\">\n {<InjectedMarkupText text={refereeDiscountMessage} />}\n </p>\n <button className=\"btn primary\" onClick={closeRafModal} type=\"button\">\n {t(`${copyContext}.button_text`)}\n </button>\n <p className=\"text-regular-12\">\n <InjectedMarkupText\n text={t(`${copyContext}.ambassadors.join_other_referred_customers`)}\n />\n </p>\n </div>\n </div>\n )\n}\n\nexport default AmbassadorReferralLinkContent\n","// @noflow\nimport * as React from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport InjectedMarkupText from '../../InjectedMarkupText'\nimport type { ClientReferralLinkProps } from '../RafModal'\n\ntype Props = {\n namespace: string\n closeRafModal: () => void\n rafMessage: ClientReferralLinkProps['rafMessage']\n referrerName: ClientReferralLinkProps['referrerName']\n referrerDogNames: ClientReferralLinkProps['referrerDogNames']\n referrerDogNumber: ClientReferralLinkProps['referrerDogNumber']\n}\n\nconst ClientReferralLinkContent = ({\n namespace,\n closeRafModal,\n rafMessage,\n referrerName,\n referrerDogNames,\n referrerDogNumber\n}: Props): React.ReactElement => {\n const { t } = useTranslation(namespace)\n const copyContext = 'raf_modal'\n\n const referrerNames = React.useMemo((): string => {\n switch (referrerDogNumber) {\n case '0': {\n return t(`${copyContext}.title_long`, { referrerName })\n }\n case '1': {\n if (referrerName.length + referrerDogNames.length < 42) {\n return t(`${copyContext}.title_short`, {\n referrerName,\n referrerDogNames\n })\n }\n return t(`${copyContext}.title_long`, { referrerName })\n }\n case '2': {\n if (referrerName.length + referrerDogNames.length < 39) {\n return t(`${copyContext}.title_short_plural`, {\n referrerName,\n referrerDogNames\n })\n }\n return t(`${copyContext}.title_long_plural`, { referrerName })\n }\n default: {\n return t(`${copyContext}.title_long_plural`, { referrerName })\n }\n }\n }, [referrerDogNames, referrerDogNumber, referrerName, t])\n\n return (\n <div className=\"raf-modal__content__copy\">\n <div className=\"raf-modal__content__heading\">\n <h2 className=\"display-28\">{referrerNames}</h2>\n </div>\n <div className=\"raf-modal__content__discount\">\n <p className=\"text-regular-16\">\n {<InjectedMarkupText text={rafMessage} />}\n </p>\n <button className=\"btn primary\" onClick={closeRafModal} type=\"button\">\n {t(`${copyContext}.button_text`)}\n </button>\n </div>\n </div>\n )\n}\n\nexport default ClientReferralLinkContent\n","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\n\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; // TODO: Remove String()\n\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n} // === Symbol Support ===\n\n\nvar hasSymbols = function hasSymbols() {\n return typeof Symbol === 'function';\n};\n\nvar hasSymbol = function hasSymbol(name) {\n return hasSymbols() && Boolean(Symbol[name]);\n};\n\nvar getSymbol = function getSymbol(name) {\n return hasSymbol(name) ? Symbol[name] : '@@' + name;\n};\n\nif (hasSymbols() && !hasSymbol('observable')) {\n Symbol.observable = Symbol('observable');\n}\n\nvar SymbolIterator = getSymbol('iterator');\nvar SymbolObservable = getSymbol('observable');\nvar SymbolSpecies = getSymbol('species'); // === Abstract Operations ===\n\nfunction getMethod(obj, key) {\n var value = obj[key];\n if (value == null) return undefined;\n if (typeof value !== 'function') throw new TypeError(value + ' is not a function');\n return value;\n}\n\nfunction getSpecies(obj) {\n var ctor = obj.constructor;\n\n if (ctor !== undefined) {\n ctor = ctor[SymbolSpecies];\n\n if (ctor === null) {\n ctor = undefined;\n }\n }\n\n return ctor !== undefined ? ctor : Observable;\n}\n\nfunction isObservable(x) {\n return x instanceof Observable; // SPEC: Brand check\n}\n\nfunction hostReportError(e) {\n if (hostReportError.log) {\n hostReportError.log(e);\n } else {\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nfunction enqueue(fn) {\n Promise.resolve().then(function () {\n try {\n fn();\n } catch (e) {\n hostReportError(e);\n }\n });\n}\n\nfunction cleanupSubscription(subscription) {\n var cleanup = subscription._cleanup;\n if (cleanup === undefined) return;\n subscription._cleanup = undefined;\n\n if (!cleanup) {\n return;\n }\n\n try {\n if (typeof cleanup === 'function') {\n cleanup();\n } else {\n var unsubscribe = getMethod(cleanup, 'unsubscribe');\n\n if (unsubscribe) {\n unsubscribe.call(cleanup);\n }\n }\n } catch (e) {\n hostReportError(e);\n }\n}\n\nfunction closeSubscription(subscription) {\n subscription._observer = undefined;\n subscription._queue = undefined;\n subscription._state = 'closed';\n}\n\nfunction flushSubscription(subscription) {\n var queue = subscription._queue;\n\n if (!queue) {\n return;\n }\n\n subscription._queue = undefined;\n subscription._state = 'ready';\n\n for (var i = 0; i < queue.length; ++i) {\n notifySubscription(subscription, queue[i].type, queue[i].value);\n if (subscription._state === 'closed') break;\n }\n}\n\nfunction notifySubscription(subscription, type, value) {\n subscription._state = 'running';\n var observer = subscription._observer;\n\n try {\n var m = getMethod(observer, type);\n\n switch (type) {\n case 'next':\n if (m) m.call(observer, value);\n break;\n\n case 'error':\n closeSubscription(subscription);\n if (m) m.call(observer, value);else throw value;\n break;\n\n case 'complete':\n closeSubscription(subscription);\n if (m) m.call(observer);\n break;\n }\n } catch (e) {\n hostReportError(e);\n }\n\n if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready';\n}\n\nfunction onNotify(subscription, type, value) {\n if (subscription._state === 'closed') return;\n\n if (subscription._state === 'buffering') {\n subscription._queue.push({\n type: type,\n value: value\n });\n\n return;\n }\n\n if (subscription._state !== 'ready') {\n subscription._state = 'buffering';\n subscription._queue = [{\n type: type,\n value: value\n }];\n enqueue(function () {\n return flushSubscription(subscription);\n });\n return;\n }\n\n notifySubscription(subscription, type, value);\n}\n\nvar Subscription = /*#__PURE__*/function () {\n function Subscription(observer, subscriber) {\n // ASSERT: observer is an object\n // ASSERT: subscriber is callable\n this._cleanup = undefined;\n this._observer = observer;\n this._queue = undefined;\n this._state = 'initializing';\n var subscriptionObserver = new SubscriptionObserver(this);\n\n try {\n this._cleanup = subscriber.call(undefined, subscriptionObserver);\n } catch (e) {\n subscriptionObserver.error(e);\n }\n\n if (this._state === 'initializing') this._state = 'ready';\n }\n\n var _proto = Subscription.prototype;\n\n _proto.unsubscribe = function unsubscribe() {\n if (this._state !== 'closed') {\n closeSubscription(this);\n cleanupSubscription(this);\n }\n };\n\n _createClass(Subscription, [{\n key: \"closed\",\n get: function get() {\n return this._state === 'closed';\n }\n }]);\n\n return Subscription;\n}();\n\nvar SubscriptionObserver = /*#__PURE__*/function () {\n function SubscriptionObserver(subscription) {\n this._subscription = subscription;\n }\n\n var _proto2 = SubscriptionObserver.prototype;\n\n _proto2.next = function next(value) {\n onNotify(this._subscription, 'next', value);\n };\n\n _proto2.error = function error(value) {\n onNotify(this._subscription, 'error', value);\n };\n\n _proto2.complete = function complete() {\n onNotify(this._subscription, 'complete');\n };\n\n _createClass(SubscriptionObserver, [{\n key: \"closed\",\n get: function get() {\n return this._subscription._state === 'closed';\n }\n }]);\n\n return SubscriptionObserver;\n}();\n\nvar Observable = /*#__PURE__*/function () {\n function Observable(subscriber) {\n if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function');\n if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function');\n this._subscriber = subscriber;\n }\n\n var _proto3 = Observable.prototype;\n\n _proto3.subscribe = function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n observer = {\n next: observer,\n error: arguments[1],\n complete: arguments[2]\n };\n }\n\n return new Subscription(observer, this._subscriber);\n };\n\n _proto3.forEach = function forEach(fn) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n if (typeof fn !== 'function') {\n reject(new TypeError(fn + ' is not a function'));\n return;\n }\n\n function done() {\n subscription.unsubscribe();\n resolve();\n }\n\n var subscription = _this.subscribe({\n next: function next(value) {\n try {\n fn(value, done);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n };\n\n _proto3.map = function map(fn) {\n var _this2 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this2.subscribe({\n next: function next(value) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n observer.complete();\n }\n });\n });\n };\n\n _proto3.filter = function filter(fn) {\n var _this3 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this3.subscribe({\n next: function next(value) {\n try {\n if (!fn(value)) return;\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n observer.complete();\n }\n });\n });\n };\n\n _proto3.reduce = function reduce(fn) {\n var _this4 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n return new C(function (observer) {\n return _this4.subscribe({\n next: function next(value) {\n var first = !hasValue;\n hasValue = true;\n\n if (!first || hasSeed) {\n try {\n acc = fn(acc, value);\n } catch (e) {\n return observer.error(e);\n }\n } else {\n acc = value;\n }\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence'));\n observer.next(acc);\n observer.complete();\n }\n });\n });\n };\n\n _proto3.concat = function concat() {\n var _this5 = this;\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscription;\n var index = 0;\n\n function startNext(next) {\n subscription = next.subscribe({\n next: function next(v) {\n observer.next(v);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n if (index === sources.length) {\n subscription = undefined;\n observer.complete();\n } else {\n startNext(C.from(sources[index++]));\n }\n }\n });\n }\n\n startNext(_this5);\n return function () {\n if (subscription) {\n subscription.unsubscribe();\n subscription = undefined;\n }\n };\n });\n };\n\n _proto3.flatMap = function flatMap(fn) {\n var _this6 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscriptions = [];\n\n var outer = _this6.subscribe({\n next: function next(value) {\n if (fn) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n }\n\n var inner = C.from(value).subscribe({\n next: function next(value) {\n observer.next(value);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n var i = subscriptions.indexOf(inner);\n if (i >= 0) subscriptions.splice(i, 1);\n completeIfDone();\n }\n });\n subscriptions.push(inner);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n completeIfDone();\n }\n });\n\n function completeIfDone() {\n if (outer.closed && subscriptions.length === 0) observer.complete();\n }\n\n return function () {\n subscriptions.forEach(function (s) {\n return s.unsubscribe();\n });\n outer.unsubscribe();\n };\n });\n };\n\n _proto3[SymbolObservable] = function () {\n return this;\n };\n\n Observable.from = function from(x) {\n var C = typeof this === 'function' ? this : Observable;\n if (x == null) throw new TypeError(x + ' is not an object');\n var method = getMethod(x, SymbolObservable);\n\n if (method) {\n var observable = method.call(x);\n if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object');\n if (isObservable(observable) && observable.constructor === C) return observable;\n return new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n\n if (hasSymbol('iterator')) {\n method = getMethod(x, SymbolIterator);\n\n if (method) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var _iterator = _createForOfIteratorHelperLoose(method.call(x)), _step; !(_step = _iterator()).done;) {\n var item = _step.value;\n observer.next(item);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n }\n\n if (Array.isArray(x)) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < x.length; ++i) {\n observer.next(x[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n\n throw new TypeError(x + ' is not observable');\n };\n\n Observable.of = function of() {\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n\n var C = typeof this === 'function' ? this : Observable;\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < items.length; ++i) {\n observer.next(items[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n };\n\n _createClass(Observable, null, [{\n key: SymbolSpecies,\n get: function get() {\n return this;\n }\n }]);\n\n return Observable;\n}();\n\nif (hasSymbols()) {\n Object.defineProperty(Observable, Symbol('extensions'), {\n value: {\n symbol: SymbolObservable,\n hostReportError: hostReportError\n },\n configurable: true\n });\n}\n\nexport { Observable };","import { __assign, __spreadArray } from \"tslib\";\nimport { invariant, InvariantError } from \"../globals/index.js\";\nexport function getFragmentQueryDocument(document, fragmentName) {\n var actualFragmentName = fragmentName;\n var fragments = [];\n document.definitions.forEach(function (definition) {\n if (definition.kind === 'OperationDefinition') {\n throw __DEV__ ? new InvariantError(\"Found a \".concat(definition.operation, \" operation\").concat(definition.name ? \" named '\".concat(definition.name.value, \"'\") : '', \". \") + 'No operations are allowed when using a fragment as a query. Only fragments are allowed.') : new InvariantError(43);\n }\n\n if (definition.kind === 'FragmentDefinition') {\n fragments.push(definition);\n }\n });\n\n if (typeof actualFragmentName === 'undefined') {\n __DEV__ ? invariant(fragments.length === 1, \"Found \".concat(fragments.length, \" fragments. `fragmentName` must be provided when there is not exactly 1 fragment.\")) : invariant(fragments.length === 1, 44);\n actualFragmentName = fragments[0].name.value;\n }\n\n var query = __assign(__assign({}, document), {\n definitions: __spreadArray([{\n kind: 'OperationDefinition',\n operation: 'query',\n selectionSet: {\n kind: 'SelectionSet',\n selections: [{\n kind: 'FragmentSpread',\n name: {\n kind: 'Name',\n value: actualFragmentName\n }\n }]\n }\n }], document.definitions, true)\n });\n\n return query;\n}\nexport function createFragmentMap(fragments) {\n if (fragments === void 0) {\n fragments = [];\n }\n\n var symTable = {};\n fragments.forEach(function (fragment) {\n symTable[fragment.name.value] = fragment;\n });\n return symTable;\n}\nexport function getFragmentFromSelection(selection, fragmentMap) {\n switch (selection.kind) {\n case 'InlineFragment':\n return selection;\n\n case 'FragmentSpread':\n {\n var fragmentName = selection.name.value;\n\n if (typeof fragmentMap === \"function\") {\n return fragmentMap(fragmentName);\n }\n\n var fragment = fragmentMap && fragmentMap[fragmentName];\n __DEV__ ? invariant(fragment, \"No fragment named \".concat(fragmentName)) : invariant(fragment, 45);\n return fragment || null;\n }\n\n default:\n return null;\n }\n}","import { InvariantError } from \"../globals/index.js\";\nimport { isNonNullObject } from \"../common/objects.js\";\nimport { getFragmentFromSelection } from \"./fragments.js\";\nexport function makeReference(id) {\n return {\n __ref: String(id)\n };\n}\nexport function isReference(obj) {\n return Boolean(obj && typeof obj === 'object' && typeof obj.__ref === 'string');\n}\nexport function isDocumentNode(value) {\n return isNonNullObject(value) && value.kind === \"Document\" && Array.isArray(value.definitions);\n}\n\nfunction isStringValue(value) {\n return value.kind === 'StringValue';\n}\n\nfunction isBooleanValue(value) {\n return value.kind === 'BooleanValue';\n}\n\nfunction isIntValue(value) {\n return value.kind === 'IntValue';\n}\n\nfunction isFloatValue(value) {\n return value.kind === 'FloatValue';\n}\n\nfunction isVariable(value) {\n return value.kind === 'Variable';\n}\n\nfunction isObjectValue(value) {\n return value.kind === 'ObjectValue';\n}\n\nfunction isListValue(value) {\n return value.kind === 'ListValue';\n}\n\nfunction isEnumValue(value) {\n return value.kind === 'EnumValue';\n}\n\nfunction isNullValue(value) {\n return value.kind === 'NullValue';\n}\n\nexport function valueToObjectRepresentation(argObj, name, value, variables) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n } else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n } else if (isObjectValue(value)) {\n var nestedArgObj_1 = {};\n value.fields.map(function (obj) {\n return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables);\n });\n argObj[name.value] = nestedArgObj_1;\n } else if (isVariable(value)) {\n var variableValue = (variables || {})[value.name.value];\n argObj[name.value] = variableValue;\n } else if (isListValue(value)) {\n argObj[name.value] = value.values.map(function (listValue) {\n var nestedArgArrayObj = {};\n valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables);\n return nestedArgArrayObj[name.value];\n });\n } else if (isEnumValue(value)) {\n argObj[name.value] = value.value;\n } else if (isNullValue(value)) {\n argObj[name.value] = null;\n } else {\n throw __DEV__ ? new InvariantError(\"The inline argument \\\"\".concat(name.value, \"\\\" of kind \\\"\").concat(value.kind, \"\\\"\") + 'is not supported. Use variables instead of inline arguments to ' + 'overcome this limitation.') : new InvariantError(54);\n }\n}\nexport function storeKeyNameFromField(field, variables) {\n var directivesObj = null;\n\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(function (directive) {\n directivesObj[directive.name.value] = {};\n\n if (directive.arguments) {\n directive.arguments.forEach(function (_a) {\n var name = _a.name,\n value = _a.value;\n return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables);\n });\n }\n });\n }\n\n var argObj = null;\n\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name,\n value = _a.value;\n return valueToObjectRepresentation(argObj, name, value, variables);\n });\n }\n\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\nvar KNOWN_DIRECTIVES = ['connection', 'include', 'skip', 'client', 'rest', 'export'];\nexport var getStoreKeyName = Object.assign(function (fieldName, args, directives) {\n if (args && directives && directives['connection'] && directives['connection']['key']) {\n if (directives['connection']['filter'] && directives['connection']['filter'].length > 0) {\n var filterKeys = directives['connection']['filter'] ? directives['connection']['filter'] : [];\n filterKeys.sort();\n var filteredArgs_1 = {};\n filterKeys.forEach(function (key) {\n filteredArgs_1[key] = args[key];\n });\n return \"\".concat(directives['connection']['key'], \"(\").concat(stringify(filteredArgs_1), \")\");\n } else {\n return directives['connection']['key'];\n }\n }\n\n var completeFieldName = fieldName;\n\n if (args) {\n var stringifiedArgs = stringify(args);\n completeFieldName += \"(\".concat(stringifiedArgs, \")\");\n }\n\n if (directives) {\n Object.keys(directives).forEach(function (key) {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return;\n\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += \"@\".concat(key, \"(\").concat(stringify(directives[key]), \")\");\n } else {\n completeFieldName += \"@\".concat(key);\n }\n });\n }\n\n return completeFieldName;\n}, {\n setStringify: function setStringify(s) {\n var previous = stringify;\n stringify = s;\n return previous;\n }\n});\n\nvar stringify = function defaultStringify(value) {\n return JSON.stringify(value, stringifyReplacer);\n};\n\nfunction stringifyReplacer(_key, value) {\n if (isNonNullObject(value) && !Array.isArray(value)) {\n value = Object.keys(value).sort().reduce(function (copy, key) {\n copy[key] = value[key];\n return copy;\n }, {});\n }\n\n return value;\n}\n\nexport function argumentsObjectFromField(field, variables) {\n if (field.arguments && field.arguments.length) {\n var argObj_1 = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name,\n value = _a.value;\n return valueToObjectRepresentation(argObj_1, name, value, variables);\n });\n return argObj_1;\n }\n\n return null;\n}\nexport function resultKeyNameFromField(field) {\n return field.alias ? field.alias.value : field.name.value;\n}\nexport function getTypenameFromResult(result, selectionSet, fragmentMap) {\n if (typeof result.__typename === 'string') {\n return result.__typename;\n }\n\n for (var _i = 0, _a = selectionSet.selections; _i < _a.length; _i++) {\n var selection = _a[_i];\n\n if (isField(selection)) {\n if (selection.name.value === '__typename') {\n return result[resultKeyNameFromField(selection)];\n }\n } else {\n var typename = getTypenameFromResult(result, getFragmentFromSelection(selection, fragmentMap).selectionSet, fragmentMap);\n\n if (typeof typename === 'string') {\n return typename;\n }\n }\n }\n}\nexport function isField(selection) {\n return selection.kind === 'Field';\n}\nexport function isInlineFragment(selection) {\n return selection.kind === 'InlineFragment';\n}","import { invariant, InvariantError } from \"../globals/index.js\";\nimport { valueToObjectRepresentation } from \"./storeUtils.js\";\nexport function checkDocument(doc) {\n __DEV__ ? invariant(doc && doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\") : invariant(doc && doc.kind === 'Document', 46);\n var operations = doc.definitions.filter(function (d) {\n return d.kind !== 'FragmentDefinition';\n }).map(function (definition) {\n if (definition.kind !== 'OperationDefinition') {\n throw __DEV__ ? new InvariantError(\"Schema type definitions not allowed in queries. Found: \\\"\".concat(definition.kind, \"\\\"\")) : new InvariantError(47);\n }\n\n return definition;\n });\n __DEV__ ? invariant(operations.length <= 1, \"Ambiguous GraphQL document: contains \".concat(operations.length, \" operations\")) : invariant(operations.length <= 1, 48);\n return doc;\n}\nexport function getOperationDefinition(doc) {\n checkDocument(doc);\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'OperationDefinition';\n })[0];\n}\nexport function getOperationName(doc) {\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'OperationDefinition' && definition.name;\n }).map(function (x) {\n return x.name.value;\n })[0] || null;\n}\nexport function getFragmentDefinitions(doc) {\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'FragmentDefinition';\n });\n}\nexport function getQueryDefinition(doc) {\n var queryDef = getOperationDefinition(doc);\n __DEV__ ? invariant(queryDef && queryDef.operation === 'query', 'Must contain a query definition.') : invariant(queryDef && queryDef.operation === 'query', 49);\n return queryDef;\n}\nexport function getFragmentDefinition(doc) {\n __DEV__ ? invariant(doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\") : invariant(doc.kind === 'Document', 50);\n __DEV__ ? invariant(doc.definitions.length <= 1, 'Fragment must have exactly one definition.') : invariant(doc.definitions.length <= 1, 51);\n var fragmentDef = doc.definitions[0];\n __DEV__ ? invariant(fragmentDef.kind === 'FragmentDefinition', 'Must be a fragment definition.') : invariant(fragmentDef.kind === 'FragmentDefinition', 52);\n return fragmentDef;\n}\nexport function getMainDefinition(queryDoc) {\n checkDocument(queryDoc);\n var fragmentDefinition;\n\n for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) {\n var definition = _a[_i];\n\n if (definition.kind === 'OperationDefinition') {\n var operation = definition.operation;\n\n if (operation === 'query' || operation === 'mutation' || operation === 'subscription') {\n return definition;\n }\n }\n\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n fragmentDefinition = definition;\n }\n }\n\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n\n throw __DEV__ ? new InvariantError('Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.') : new InvariantError(53);\n}\nexport function getDefaultValues(definition) {\n var defaultValues = Object.create(null);\n var defs = definition && definition.variableDefinitions;\n\n if (defs && defs.length) {\n defs.forEach(function (def) {\n if (def.defaultValue) {\n valueToObjectRepresentation(defaultValues, def.variable.name, def.defaultValue);\n }\n });\n }\n\n return defaultValues;\n}","import { __extends } from \"tslib\";\nimport { InvariantError, invariant } from \"../../utilities/globals/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { validateOperation, createOperation, transformOperation } from \"../utils/index.js\";\n\nfunction passthrough(op, forward) {\n return forward ? forward(op) : Observable.of();\n}\n\nfunction toLink(handler) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n}\n\nfunction isTerminating(link) {\n return link.request.length <= 1;\n}\n\nvar LinkError = function (_super) {\n __extends(LinkError, _super);\n\n function LinkError(message, link) {\n var _this = _super.call(this, message) || this;\n\n _this.link = link;\n return _this;\n }\n\n return LinkError;\n}(Error);\n\nvar ApolloLink = function () {\n function ApolloLink(request) {\n if (request) this.request = request;\n }\n\n ApolloLink.empty = function () {\n return new ApolloLink(function () {\n return Observable.of();\n });\n };\n\n ApolloLink.from = function (links) {\n if (links.length === 0) return ApolloLink.empty();\n return links.map(toLink).reduce(function (x, y) {\n return x.concat(y);\n });\n };\n\n ApolloLink.split = function (test, left, right) {\n var leftLink = toLink(left);\n var rightLink = toLink(right || new ApolloLink(passthrough));\n\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(function (operation) {\n return test(operation) ? leftLink.request(operation) || Observable.of() : rightLink.request(operation) || Observable.of();\n });\n } else {\n return new ApolloLink(function (operation, forward) {\n return test(operation) ? leftLink.request(operation, forward) || Observable.of() : rightLink.request(operation, forward) || Observable.of();\n });\n }\n };\n\n ApolloLink.execute = function (link, operation) {\n return link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || Observable.of();\n };\n\n ApolloLink.concat = function (first, second) {\n var firstLink = toLink(first);\n\n if (isTerminating(firstLink)) {\n __DEV__ && invariant.warn(new LinkError(\"You are calling concat on a terminating link, which will have no effect\", firstLink));\n return firstLink;\n }\n\n var nextLink = toLink(second);\n\n if (isTerminating(nextLink)) {\n return new ApolloLink(function (operation) {\n return firstLink.request(operation, function (op) {\n return nextLink.request(op) || Observable.of();\n }) || Observable.of();\n });\n } else {\n return new ApolloLink(function (operation, forward) {\n return firstLink.request(operation, function (op) {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of();\n });\n }\n };\n\n ApolloLink.prototype.split = function (test, left, right) {\n return this.concat(ApolloLink.split(test, left, right || new ApolloLink(passthrough)));\n };\n\n ApolloLink.prototype.concat = function (next) {\n return ApolloLink.concat(this, next);\n };\n\n ApolloLink.prototype.request = function (operation, forward) {\n throw __DEV__ ? new InvariantError('request is not implemented') : new InvariantError(21);\n };\n\n ApolloLink.prototype.onError = function (error, observer) {\n if (observer && observer.error) {\n observer.error(error);\n return false;\n }\n\n throw error;\n };\n\n ApolloLink.prototype.setOnError = function (fn) {\n this.onError = fn;\n return this;\n };\n\n return ApolloLink;\n}();\n\nexport { ApolloLink };","import { __assign } from \"tslib\";\nexport function createOperation(starting, operation) {\n var context = __assign({}, starting);\n\n var setContext = function setContext(next) {\n if (typeof next === 'function') {\n context = __assign(__assign({}, context), next(context));\n } else {\n context = __assign(__assign({}, context), next);\n }\n };\n\n var getContext = function getContext() {\n return __assign({}, context);\n };\n\n Object.defineProperty(operation, 'setContext', {\n enumerable: false,\n value: setContext\n });\n Object.defineProperty(operation, 'getContext', {\n enumerable: false,\n value: getContext\n });\n return operation;\n}","import { getOperationName } from \"../../utilities/index.js\";\nexport function transformOperation(operation) {\n var transformedOperation = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query\n };\n\n if (!transformedOperation.operationName) {\n transformedOperation.operationName = typeof transformedOperation.query !== 'string' ? getOperationName(transformedOperation.query) || undefined : '';\n }\n\n return transformedOperation;\n}","import { InvariantError } from \"../../utilities/globals/index.js\";\nexport function validateOperation(operation) {\n var OPERATION_FIELDS = ['query', 'operationName', 'variables', 'extensions', 'context'];\n\n for (var _i = 0, _a = Object.keys(operation); _i < _a.length; _i++) {\n var key = _a[_i];\n\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw __DEV__ ? new InvariantError(\"illegal argument: \".concat(key)) : new InvariantError(26);\n }\n }\n\n return operation;\n}","import { ApolloLink } from \"./ApolloLink.js\";\nexport var execute = ApolloLink.execute;","import inspect from \"../jsutils/inspect.mjs\";\nimport { isNode } from \"./ast.mjs\";\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport var QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: ['name', 'variableDefinitions', 'directives', 'selectionSet'],\n VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: ['name', // Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n 'variableDefinitions', 'typeCondition', 'directives', 'selectionSet'],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: ['description', 'name', 'type', 'defaultValue', 'directives'],\n InterfaceTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields']\n};\nexport var BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * const editedAST = visit(ast, {\n * enter(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: skip visiting this node\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * },\n * leave(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: no action\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * }\n * });\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to four permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n *\n * 2) Named visitors that trigger upon entering and leaving a node of\n * a specific kind.\n *\n * visit(ast, {\n * Kind: {\n * enter(node) {\n * // enter the \"Kind\" node\n * }\n * leave(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n *\n * 4) Parallel visitors for entering and leaving nodes of a specific kind.\n *\n * visit(ast, {\n * enter: {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * },\n * leave: {\n * Kind(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n */\n\nexport function visit(root, visitor) {\n var visitorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QueryDocumentKeys;\n /* eslint-disable no-undef-init */\n\n var stack = undefined;\n var inArray = Array.isArray(root);\n var keys = [root];\n var index = -1;\n var edits = [];\n var node = undefined;\n var key = undefined;\n var parent = undefined;\n var path = [];\n var ancestors = [];\n var newRoot = root;\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n var isLeaving = index === keys.length;\n var isEdited = isLeaving && edits.length !== 0;\n\n if (isLeaving) {\n key = ancestors.length === 0 ? undefined : path[path.length - 1];\n node = parent;\n parent = ancestors.pop();\n\n if (isEdited) {\n if (inArray) {\n node = node.slice();\n } else {\n var clone = {};\n\n for (var _i2 = 0, _Object$keys2 = Object.keys(node); _i2 < _Object$keys2.length; _i2++) {\n var k = _Object$keys2[_i2];\n clone[k] = node[k];\n }\n\n node = clone;\n }\n\n var editOffset = 0;\n\n for (var ii = 0; ii < edits.length; ii++) {\n var editKey = edits[ii][0];\n var editValue = edits[ii][1];\n\n if (inArray) {\n editKey -= editOffset;\n }\n\n if (inArray && editValue === null) {\n node.splice(editKey, 1);\n editOffset++;\n } else {\n node[editKey] = editValue;\n }\n }\n }\n\n index = stack.index;\n keys = stack.keys;\n edits = stack.edits;\n inArray = stack.inArray;\n stack = stack.prev;\n } else {\n key = parent ? inArray ? index : keys[index] : undefined;\n node = parent ? parent[key] : newRoot;\n\n if (node === null || node === undefined) {\n continue;\n }\n\n if (parent) {\n path.push(key);\n }\n }\n\n var result = void 0;\n\n if (!Array.isArray(node)) {\n if (!isNode(node)) {\n throw new Error(\"Invalid AST Node: \".concat(inspect(node), \".\"));\n }\n\n var visitFn = getVisitFn(visitor, node.kind, isLeaving);\n\n if (visitFn) {\n result = visitFn.call(visitor, node, key, parent, path, ancestors);\n\n if (result === BREAK) {\n break;\n }\n\n if (result === false) {\n if (!isLeaving) {\n path.pop();\n continue;\n }\n } else if (result !== undefined) {\n edits.push([key, result]);\n\n if (!isLeaving) {\n if (isNode(result)) {\n node = result;\n } else {\n path.pop();\n continue;\n }\n }\n }\n }\n }\n\n if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _visitorKeys$node$kin;\n\n stack = {\n inArray: inArray,\n index: index,\n keys: keys,\n edits: edits,\n prev: stack\n };\n inArray = Array.isArray(node);\n keys = inArray ? node : (_visitorKeys$node$kin = visitorKeys[node.kind]) !== null && _visitorKeys$node$kin !== void 0 ? _visitorKeys$node$kin : [];\n index = -1;\n edits = [];\n\n if (parent) {\n ancestors.push(parent);\n }\n\n parent = node;\n }\n } while (stack !== undefined);\n\n if (edits.length !== 0) {\n newRoot = edits[edits.length - 1][1];\n }\n\n return newRoot;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n var skipping = new Array(visitors.length);\n return {\n enter: function enter(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (skipping[i] == null) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n false);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === false) {\n skipping[i] = node;\n } else if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined) {\n return result;\n }\n }\n }\n }\n },\n leave: function leave(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (skipping[i] == null) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n true);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n }\n };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n var kindVisitor = visitor[kind];\n\n if (kindVisitor) {\n if (!isLeaving && typeof kindVisitor === 'function') {\n // { Kind() {} }\n return kindVisitor;\n }\n\n var kindSpecificVisitor = isLeaving ? kindVisitor.leave : kindVisitor.enter;\n\n if (typeof kindSpecificVisitor === 'function') {\n // { Kind: { enter() {}, leave() {} } }\n return kindSpecificVisitor;\n }\n } else {\n var specificVisitor = isLeaving ? visitor.leave : visitor.enter;\n\n if (specificVisitor) {\n if (typeof specificVisitor === 'function') {\n // { enter() {}, leave() {} }\n return specificVisitor;\n }\n\n var specificKindVisitor = specificVisitor[kind];\n\n if (typeof specificKindVisitor === 'function') {\n // { enter: { Kind() {} }, leave: { Kind() {} } }\n return specificKindVisitor;\n }\n }\n }\n}","import { invariant } from \"../globals/index.js\";\nimport { visit, BREAK } from 'graphql';\nexport function shouldInclude(_a, variables) {\n var directives = _a.directives;\n\n if (!directives || !directives.length) {\n return true;\n }\n\n return getInclusionDirectives(directives).every(function (_a) {\n var directive = _a.directive,\n ifArgument = _a.ifArgument;\n var evaledValue = false;\n\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables && variables[ifArgument.value.name.value];\n __DEV__ ? invariant(evaledValue !== void 0, \"Invalid variable referenced in @\".concat(directive.name.value, \" directive.\")) : invariant(evaledValue !== void 0, 39);\n } else {\n evaledValue = ifArgument.value.value;\n }\n\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\nexport function getDirectiveNames(root) {\n var names = [];\n visit(root, {\n Directive: function Directive(node) {\n names.push(node.name.value);\n }\n });\n return names;\n}\nexport var hasAnyDirectives = function hasAnyDirectives(names, root) {\n return hasDirectives(names, root, false);\n};\nexport var hasAllDirectives = function hasAllDirectives(names, root) {\n return hasDirectives(names, root, true);\n};\nexport function hasDirectives(names, root, all) {\n var nameSet = new Set(names);\n var uniqueCount = nameSet.size;\n visit(root, {\n Directive: function Directive(node) {\n if (nameSet.delete(node.name.value) && (!all || !nameSet.size)) {\n return BREAK;\n }\n }\n });\n return all ? !nameSet.size : nameSet.size < uniqueCount;\n}\nexport function hasClientExports(document) {\n return document && hasDirectives(['client', 'export'], document, true);\n}\n\nfunction isInclusionDirective(_a) {\n var value = _a.name.value;\n return value === 'skip' || value === 'include';\n}\n\nexport function getInclusionDirectives(directives) {\n var result = [];\n\n if (directives && directives.length) {\n directives.forEach(function (directive) {\n if (!isInclusionDirective(directive)) return;\n var directiveArguments = directive.arguments;\n var directiveName = directive.name.value;\n __DEV__ ? invariant(directiveArguments && directiveArguments.length === 1, \"Incorrect number of arguments for the @\".concat(directiveName, \" directive.\")) : invariant(directiveArguments && directiveArguments.length === 1, 40);\n var ifArgument = directiveArguments[0];\n __DEV__ ? invariant(ifArgument.name && ifArgument.name.value === 'if', \"Invalid argument for the @\".concat(directiveName, \" directive.\")) : invariant(ifArgument.name && ifArgument.name.value === 'if', 41);\n var ifValue = ifArgument.value;\n __DEV__ ? invariant(ifValue && (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), \"Argument for the @\".concat(directiveName, \" directive must be a variable or a boolean value.\")) : invariant(ifValue && (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 42);\n result.push({\n directive: directive,\n ifArgument: ifArgument\n });\n });\n }\n\n return result;\n}","import { InvariantError } from \"../../utilities/globals/index.js\";\nexport var serializeFetchParameter = function serializeFetchParameter(p, label) {\n var serialized;\n\n try {\n serialized = JSON.stringify(p);\n } catch (e) {\n var parseError = __DEV__ ? new InvariantError(\"Network request failed. \".concat(label, \" is not serializable: \").concat(e.message)) : new InvariantError(23);\n parseError.parseError = e;\n throw parseError;\n }\n\n return serialized;\n};","export var selectURI = function selectURI(operation, fallbackURI) {\n var context = operation.getContext();\n var contextURI = context.uri;\n\n if (contextURI) {\n return contextURI;\n } else if (typeof fallbackURI === 'function') {\n return fallbackURI(operation);\n } else {\n return fallbackURI || '/graphql';\n }\n};","import { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function nodeStreamIterator(stream) {\n var _cleanup = null;\n var error = null;\n var done = false;\n var data = [];\n var waiting = [];\n\n function onData(chunk) {\n if (error) return;\n\n if (waiting.length) {\n var shiftedArr = waiting.shift();\n\n if (Array.isArray(shiftedArr) && shiftedArr[0]) {\n return shiftedArr[0]({\n value: chunk,\n done: false\n });\n }\n }\n\n data.push(chunk);\n }\n\n function onError(err) {\n error = err;\n var all = waiting.slice();\n all.forEach(function (pair) {\n pair[1](err);\n });\n !_cleanup || _cleanup();\n }\n\n function onEnd() {\n done = true;\n var all = waiting.slice();\n all.forEach(function (pair) {\n pair[0]({\n value: undefined,\n done: true\n });\n });\n !_cleanup || _cleanup();\n }\n\n _cleanup = function cleanup() {\n _cleanup = null;\n stream.removeListener(\"data\", onData);\n stream.removeListener(\"error\", onError);\n stream.removeListener(\"end\", onEnd);\n stream.removeListener(\"finish\", onEnd);\n stream.removeListener(\"close\", onEnd);\n };\n\n stream.on(\"data\", onData);\n stream.on(\"error\", onError);\n stream.on(\"end\", onEnd);\n stream.on(\"finish\", onEnd);\n stream.on(\"close\", onEnd);\n\n function getNext() {\n return new Promise(function (resolve, reject) {\n if (error) return reject(error);\n if (data.length) return resolve({\n value: data.shift(),\n done: false\n });\n if (done) return resolve({\n value: undefined,\n done: true\n });\n waiting.push([resolve, reject]);\n });\n }\n\n var iterator = {\n next: function next() {\n return getNext();\n }\n };\n\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n\n return iterator;\n}","import { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function readerIterator(reader) {\n var iterator = {\n next: function next() {\n return reader.read();\n }\n };\n\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n\n return iterator;\n}","import { isAsyncIterableIterator, isBlob, isNodeResponse, isNodeReadableStream, isReadableStream, isStreamableBlob } from \"../../utilities/common/responseIterator.js\";\nimport asyncIterator from \"./iterators/async.js\";\nimport nodeStreamIterator from \"./iterators/nodeStream.js\";\nimport promiseIterator from \"./iterators/promise.js\";\nimport readerIterator from \"./iterators/reader.js\";\nexport function responseIterator(response) {\n var body = response;\n if (isNodeResponse(response)) body = response.body;\n if (isAsyncIterableIterator(body)) return asyncIterator(body);\n if (isReadableStream(body)) return readerIterator(body.getReader());\n\n if (isStreamableBlob(body)) {\n return readerIterator(body.stream().getReader());\n }\n\n if (isBlob(body)) return promiseIterator(body.arrayBuffer());\n if (isNodeReadableStream(body)) return nodeStreamIterator(body);\n throw new Error(\"Unknown body type for responseIterator. Please pass a streamable response.\");\n}","export default function asyncIterator(source) {\n var _a;\n\n var iterator = source[Symbol.asyncIterator]();\n return _a = {\n next: function next() {\n return iterator.next();\n }\n }, _a[Symbol.asyncIterator] = function () {\n return this;\n }, _a;\n}","import { canUseAsyncIteratorSymbol } from \"./canUse.js\";\nexport function isNodeResponse(value) {\n return !!value.body;\n}\nexport function isReadableStream(value) {\n return !!value.getReader;\n}\nexport function isAsyncIterableIterator(value) {\n return !!(canUseAsyncIteratorSymbol && value[Symbol.asyncIterator]);\n}\nexport function isStreamableBlob(value) {\n return !!value.stream;\n}\nexport function isBlob(value) {\n return !!value.arrayBuffer;\n}\nexport function isNodeReadableStream(value) {\n return !!value.pipe;\n}","import { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function promiseIterator(promise) {\n var resolved = false;\n var iterator = {\n next: function next() {\n if (resolved) return Promise.resolve({\n value: undefined,\n done: true\n });\n resolved = true;\n return new Promise(function (resolve, reject) {\n promise.then(function (value) {\n resolve({\n value: value,\n done: false\n });\n }).catch(reject);\n });\n }\n };\n\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n\n return iterator;\n}","export var throwServerError = function throwServerError(response, result, message) {\n var error = new Error(message);\n error.name = 'ServerError';\n error.response = response;\n error.statusCode = response.status;\n error.result = result;\n throw error;\n};","import { __awaiter, __generator } from \"tslib\";\nimport { responseIterator } from \"./responseIterator.js\";\nimport { throwServerError } from \"../utils/index.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function readMultipartBody(response, observer) {\n var _a, _b, _c;\n\n return __awaiter(this, void 0, void 0, function () {\n var decoder, contentType, delimiter, boundaryVal, boundary, buffer, iterator, running, _d, value, done, chunk, bi, message, i, headers, contentType_1, body, result;\n\n var _e;\n\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n if (TextDecoder === undefined) {\n throw new Error(\"TextDecoder must be defined in the environment: please import a polyfill.\");\n }\n\n decoder = new TextDecoder(\"utf-8\");\n contentType = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get('content-type');\n delimiter = \"boundary=\";\n boundaryVal = (contentType === null || contentType === void 0 ? void 0 : contentType.includes(delimiter)) ? contentType === null || contentType === void 0 ? void 0 : contentType.substring((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(delimiter)) + delimiter.length).replace(/['\"]/g, \"\").replace(/\\;(.*)/gm, \"\").trim() : \"-\";\n boundary = \"--\".concat(boundaryVal);\n buffer = \"\";\n iterator = responseIterator(response);\n running = true;\n _f.label = 1;\n\n case 1:\n if (!running) return [3, 3];\n return [4, iterator.next()];\n\n case 2:\n _d = _f.sent(), value = _d.value, done = _d.done;\n chunk = typeof value === \"string\" ? value : decoder.decode(value);\n running = !done;\n buffer += chunk;\n bi = buffer.indexOf(boundary);\n\n while (bi > -1) {\n message = void 0;\n _e = [buffer.slice(0, bi), buffer.slice(bi + boundary.length)], message = _e[0], buffer = _e[1];\n\n if (message.trim()) {\n i = message.indexOf(\"\\r\\n\\r\\n\");\n headers = parseHeaders(message.slice(0, i));\n contentType_1 = headers[\"content-type\"];\n\n if (contentType_1 && contentType_1.toLowerCase().indexOf(\"application/json\") === -1) {\n throw new Error(\"Unsupported patch content type: application/json is required.\");\n }\n\n body = message.slice(i);\n\n try {\n result = parseJsonBody(response, body.replace(\"\\r\\n\", \"\"));\n\n if (Object.keys(result).length > 1 || \"data\" in result || \"incremental\" in result || \"errors\" in result) {\n (_b = observer.next) === null || _b === void 0 ? void 0 : _b.call(observer, result);\n }\n } catch (err) {\n handleError(err, observer);\n }\n }\n\n bi = buffer.indexOf(boundary);\n }\n\n return [3, 1];\n\n case 3:\n (_c = observer.complete) === null || _c === void 0 ? void 0 : _c.call(observer);\n return [2];\n }\n });\n });\n}\nexport function parseHeaders(headerText) {\n var headersInit = {};\n headerText.split(\"\\n\").forEach(function (line) {\n var i = line.indexOf(\":\");\n\n if (i > -1) {\n var name_1 = line.slice(0, i).trim().toLowerCase();\n var value = line.slice(i + 1).trim();\n headersInit[name_1] = value;\n }\n });\n return headersInit;\n}\nexport function parseJsonBody(response, bodyText) {\n if (response.status >= 300) {\n var getResult = function getResult() {\n try {\n return JSON.parse(bodyText);\n } catch (err) {\n return bodyText;\n }\n };\n\n throwServerError(response, getResult(), \"Response not successful: Received status code \".concat(response.status));\n }\n\n try {\n return JSON.parse(bodyText);\n } catch (err) {\n var parseError = err;\n parseError.name = \"ServerParseError\";\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n throw parseError;\n }\n}\nexport function handleError(err, observer) {\n var _a, _b;\n\n if (err.name === \"AbortError\") return;\n\n if (err.result && err.result.errors && err.result.data) {\n (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, err.result);\n }\n\n (_b = observer.error) === null || _b === void 0 ? void 0 : _b.call(observer, err);\n}\nexport function readJsonBody(response, operation, observer) {\n parseAndCheckHttpResponse(operation)(response).then(function (result) {\n var _a, _b;\n\n (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, result);\n (_b = observer.complete) === null || _b === void 0 ? void 0 : _b.call(observer);\n }).catch(function (err) {\n return handleError(err, observer);\n });\n}\nexport function parseAndCheckHttpResponse(operations) {\n return function (response) {\n return response.text().then(function (bodyText) {\n return parseJsonBody(response, bodyText);\n }).then(function (result) {\n if (response.status >= 300) {\n throwServerError(response, result, \"Response not successful: Received status code \".concat(response.status));\n }\n\n if (!Array.isArray(result) && !hasOwnProperty.call(result, \"data\") && !hasOwnProperty.call(result, \"errors\")) {\n throwServerError(response, result, \"Server response was missing for query '\".concat(Array.isArray(operations) ? operations.map(function (op) {\n return op.operationName;\n }) : operations.operationName, \"'.\"));\n }\n\n return result;\n });\n };\n}","import { InvariantError } from \"../../utilities/globals/index.js\";\nexport var checkFetcher = function checkFetcher(fetcher) {\n if (!fetcher && typeof fetch === 'undefined') {\n throw __DEV__ ? new InvariantError(\"\\n\\\"fetch\\\" has not been found globally and no fetcher has been configured. To fix this, install a fetch package (like https://www.npmjs.com/package/cross-fetch), instantiate the fetcher, and pass it into your HttpLink constructor. For example:\\n\\nimport fetch from 'cross-fetch';\\nimport { ApolloClient, HttpLink } from '@apollo/client';\\nconst client = new ApolloClient({\\n link: new HttpLink({ uri: '/graphql', fetch })\\n});\\n \") : new InvariantError(22);\n }\n};","import { visit } from \"./visitor.mjs\";\nimport { printBlockString } from \"./blockString.mjs\";\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n return visit(ast, {\n leave: printDocASTReducer\n });\n}\nvar MAX_LINE_LENGTH = 80; // TODO: provide better type coverage in future\n\nvar printDocASTReducer = {\n Name: function Name(node) {\n return node.value;\n },\n Variable: function Variable(node) {\n return '$' + node.name;\n },\n // Document\n Document: function Document(node) {\n return join(node.definitions, '\\n\\n') + '\\n';\n },\n OperationDefinition: function OperationDefinition(node) {\n var op = node.operation;\n var name = node.name;\n var varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n var directives = join(node.directives, ' ');\n var selectionSet = node.selectionSet; // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return !name && !directives && !varDefs && op === 'query' ? selectionSet : join([op, join([name, varDefs]), directives, selectionSet], ' ');\n },\n VariableDefinition: function VariableDefinition(_ref) {\n var variable = _ref.variable,\n type = _ref.type,\n defaultValue = _ref.defaultValue,\n directives = _ref.directives;\n return variable + ': ' + type + wrap(' = ', defaultValue) + wrap(' ', join(directives, ' '));\n },\n SelectionSet: function SelectionSet(_ref2) {\n var selections = _ref2.selections;\n return block(selections);\n },\n Field: function Field(_ref3) {\n var alias = _ref3.alias,\n name = _ref3.name,\n args = _ref3.arguments,\n directives = _ref3.directives,\n selectionSet = _ref3.selectionSet;\n var prefix = wrap('', alias, ': ') + name;\n var argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n if (argsLine.length > MAX_LINE_LENGTH) {\n argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n }\n\n return join([argsLine, join(directives, ' '), selectionSet], ' ');\n },\n Argument: function Argument(_ref4) {\n var name = _ref4.name,\n value = _ref4.value;\n return name + ': ' + value;\n },\n // Fragments\n FragmentSpread: function FragmentSpread(_ref5) {\n var name = _ref5.name,\n directives = _ref5.directives;\n return '...' + name + wrap(' ', join(directives, ' '));\n },\n InlineFragment: function InlineFragment(_ref6) {\n var typeCondition = _ref6.typeCondition,\n directives = _ref6.directives,\n selectionSet = _ref6.selectionSet;\n return join(['...', wrap('on ', typeCondition), join(directives, ' '), selectionSet], ' ');\n },\n FragmentDefinition: function FragmentDefinition(_ref7) {\n var name = _ref7.name,\n typeCondition = _ref7.typeCondition,\n variableDefinitions = _ref7.variableDefinitions,\n directives = _ref7.directives,\n selectionSet = _ref7.selectionSet;\n return (// Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n \"fragment \".concat(name).concat(wrap('(', join(variableDefinitions, ', '), ')'), \" \") + \"on \".concat(typeCondition, \" \").concat(wrap('', join(directives, ' '), ' ')) + selectionSet\n );\n },\n // Value\n IntValue: function IntValue(_ref8) {\n var value = _ref8.value;\n return value;\n },\n FloatValue: function FloatValue(_ref9) {\n var value = _ref9.value;\n return value;\n },\n StringValue: function StringValue(_ref10, key) {\n var value = _ref10.value,\n isBlockString = _ref10.block;\n return isBlockString ? printBlockString(value, key === 'description' ? '' : ' ') : JSON.stringify(value);\n },\n BooleanValue: function BooleanValue(_ref11) {\n var value = _ref11.value;\n return value ? 'true' : 'false';\n },\n NullValue: function NullValue() {\n return 'null';\n },\n EnumValue: function EnumValue(_ref12) {\n var value = _ref12.value;\n return value;\n },\n ListValue: function ListValue(_ref13) {\n var values = _ref13.values;\n return '[' + join(values, ', ') + ']';\n },\n ObjectValue: function ObjectValue(_ref14) {\n var fields = _ref14.fields;\n return '{' + join(fields, ', ') + '}';\n },\n ObjectField: function ObjectField(_ref15) {\n var name = _ref15.name,\n value = _ref15.value;\n return name + ': ' + value;\n },\n // Directive\n Directive: function Directive(_ref16) {\n var name = _ref16.name,\n args = _ref16.arguments;\n return '@' + name + wrap('(', join(args, ', '), ')');\n },\n // Type\n NamedType: function NamedType(_ref17) {\n var name = _ref17.name;\n return name;\n },\n ListType: function ListType(_ref18) {\n var type = _ref18.type;\n return '[' + type + ']';\n },\n NonNullType: function NonNullType(_ref19) {\n var type = _ref19.type;\n return type + '!';\n },\n // Type System Definitions\n SchemaDefinition: addDescription(function (_ref20) {\n var directives = _ref20.directives,\n operationTypes = _ref20.operationTypes;\n return join(['schema', join(directives, ' '), block(operationTypes)], ' ');\n }),\n OperationTypeDefinition: function OperationTypeDefinition(_ref21) {\n var operation = _ref21.operation,\n type = _ref21.type;\n return operation + ': ' + type;\n },\n ScalarTypeDefinition: addDescription(function (_ref22) {\n var name = _ref22.name,\n directives = _ref22.directives;\n return join(['scalar', name, join(directives, ' ')], ' ');\n }),\n ObjectTypeDefinition: addDescription(function (_ref23) {\n var name = _ref23.name,\n interfaces = _ref23.interfaces,\n directives = _ref23.directives,\n fields = _ref23.fields;\n return join(['type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n FieldDefinition: addDescription(function (_ref24) {\n var name = _ref24.name,\n args = _ref24.arguments,\n type = _ref24.type,\n directives = _ref24.directives;\n return name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + ': ' + type + wrap(' ', join(directives, ' '));\n }),\n InputValueDefinition: addDescription(function (_ref25) {\n var name = _ref25.name,\n type = _ref25.type,\n defaultValue = _ref25.defaultValue,\n directives = _ref25.directives;\n return join([name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], ' ');\n }),\n InterfaceTypeDefinition: addDescription(function (_ref26) {\n var name = _ref26.name,\n interfaces = _ref26.interfaces,\n directives = _ref26.directives,\n fields = _ref26.fields;\n return join(['interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n UnionTypeDefinition: addDescription(function (_ref27) {\n var name = _ref27.name,\n directives = _ref27.directives,\n types = _ref27.types;\n return join(['union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n }),\n EnumTypeDefinition: addDescription(function (_ref28) {\n var name = _ref28.name,\n directives = _ref28.directives,\n values = _ref28.values;\n return join(['enum', name, join(directives, ' '), block(values)], ' ');\n }),\n EnumValueDefinition: addDescription(function (_ref29) {\n var name = _ref29.name,\n directives = _ref29.directives;\n return join([name, join(directives, ' ')], ' ');\n }),\n InputObjectTypeDefinition: addDescription(function (_ref30) {\n var name = _ref30.name,\n directives = _ref30.directives,\n fields = _ref30.fields;\n return join(['input', name, join(directives, ' '), block(fields)], ' ');\n }),\n DirectiveDefinition: addDescription(function (_ref31) {\n var name = _ref31.name,\n args = _ref31.arguments,\n repeatable = _ref31.repeatable,\n locations = _ref31.locations;\n return 'directive @' + name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + (repeatable ? ' repeatable' : '') + ' on ' + join(locations, ' | ');\n }),\n SchemaExtension: function SchemaExtension(_ref32) {\n var directives = _ref32.directives,\n operationTypes = _ref32.operationTypes;\n return join(['extend schema', join(directives, ' '), block(operationTypes)], ' ');\n },\n ScalarTypeExtension: function ScalarTypeExtension(_ref33) {\n var name = _ref33.name,\n directives = _ref33.directives;\n return join(['extend scalar', name, join(directives, ' ')], ' ');\n },\n ObjectTypeExtension: function ObjectTypeExtension(_ref34) {\n var name = _ref34.name,\n interfaces = _ref34.interfaces,\n directives = _ref34.directives,\n fields = _ref34.fields;\n return join(['extend type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n InterfaceTypeExtension: function InterfaceTypeExtension(_ref35) {\n var name = _ref35.name,\n interfaces = _ref35.interfaces,\n directives = _ref35.directives,\n fields = _ref35.fields;\n return join(['extend interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n UnionTypeExtension: function UnionTypeExtension(_ref36) {\n var name = _ref36.name,\n directives = _ref36.directives,\n types = _ref36.types;\n return join(['extend union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n },\n EnumTypeExtension: function EnumTypeExtension(_ref37) {\n var name = _ref37.name,\n directives = _ref37.directives,\n values = _ref37.values;\n return join(['extend enum', name, join(directives, ' '), block(values)], ' ');\n },\n InputObjectTypeExtension: function InputObjectTypeExtension(_ref38) {\n var name = _ref38.name,\n directives = _ref38.directives,\n fields = _ref38.fields;\n return join(['extend input', name, join(directives, ' '), block(fields)], ' ');\n }\n};\n\nfunction addDescription(cb) {\n return function (node) {\n return join([node.description, cb(node)], '\\n');\n };\n}\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\n\nfunction join(maybeArray) {\n var _maybeArray$filter$jo;\n\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return (_maybeArray$filter$jo = maybeArray === null || maybeArray === void 0 ? void 0 : maybeArray.filter(function (x) {\n return x;\n }).join(separator)) !== null && _maybeArray$filter$jo !== void 0 ? _maybeArray$filter$jo : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an\n * indented \"{ }\" block.\n */\n\n\nfunction block(array) {\n return wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.\n */\n\n\nfunction wrap(start, maybeString) {\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n return maybeString != null && maybeString !== '' ? start + maybeString + end : '';\n}\n\nfunction indent(str) {\n return wrap(' ', str.replace(/\\n/g, '\\n '));\n}\n\nfunction isMultiline(str) {\n return str.indexOf('\\n') !== -1;\n}\n\nfunction hasMultilineItems(maybeArray) {\n return maybeArray != null && maybeArray.some(isMultiline);\n}","import { __assign, __spreadArray } from \"tslib\";\nimport { print } from 'graphql';\n;\nvar defaultHttpOptions = {\n includeQuery: true,\n includeExtensions: false,\n preserveHeaderCase: false\n};\nvar defaultHeaders = {\n accept: '*/*',\n 'content-type': 'application/json'\n};\nvar defaultOptions = {\n method: 'POST'\n};\nexport var fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions\n};\nexport var defaultPrinter = function defaultPrinter(ast, printer) {\n return printer(ast);\n};\nexport function selectHttpOptionsAndBody(operation, fallbackConfig) {\n var configs = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n\n configs.unshift(fallbackConfig);\n return selectHttpOptionsAndBodyInternal.apply(void 0, __spreadArray([operation, defaultPrinter], configs, false));\n}\nexport function selectHttpOptionsAndBodyInternal(operation, printer) {\n var configs = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n\n var options = {};\n var http = {};\n configs.forEach(function (config) {\n options = __assign(__assign(__assign({}, options), config.options), {\n headers: __assign(__assign({}, options.headers), config.headers)\n });\n\n if (config.credentials) {\n options.credentials = config.credentials;\n }\n\n http = __assign(__assign({}, http), config.http);\n });\n options.headers = removeDuplicateHeaders(options.headers, http.preserveHeaderCase);\n var operationName = operation.operationName,\n extensions = operation.extensions,\n variables = operation.variables,\n query = operation.query;\n var body = {\n operationName: operationName,\n variables: variables\n };\n if (http.includeExtensions) body.extensions = extensions;\n if (http.includeQuery) body.query = printer(query, print);\n return {\n options: options,\n body: body\n };\n}\n;\n\nfunction removeDuplicateHeaders(headers, preserveHeaderCase) {\n if (!preserveHeaderCase) {\n var normalizedHeaders_1 = Object.create(null);\n Object.keys(Object(headers)).forEach(function (name) {\n normalizedHeaders_1[name.toLowerCase()] = headers[name];\n });\n return normalizedHeaders_1;\n }\n\n var headerData = Object.create(null);\n Object.keys(Object(headers)).forEach(function (name) {\n headerData[name.toLowerCase()] = {\n originalName: name,\n value: headers[name]\n };\n });\n var normalizedHeaders = Object.create(null);\n Object.keys(headerData).forEach(function (name) {\n normalizedHeaders[headerData[name].originalName] = headerData[name].value;\n });\n return normalizedHeaders;\n}","export var createSignalIfSupported = function createSignalIfSupported() {\n if (typeof AbortController === 'undefined') return {\n controller: false,\n signal: false\n };\n var controller = new AbortController();\n var signal = controller.signal;\n return {\n controller: controller,\n signal: signal\n };\n};","import { Observable } from \"../../utilities/index.js\";\nexport function fromError(errorValue) {\n return new Observable(function (observer) {\n observer.error(errorValue);\n });\n}","import { __assign, __rest } from \"tslib\";\nimport \"../../utilities/globals/index.js\";\nimport { visit } from 'graphql';\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable, hasDirectives } from \"../../utilities/index.js\";\nimport { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nimport { selectURI } from \"./selectURI.js\";\nimport { handleError, readMultipartBody, readJsonBody } from \"./parseAndCheckHttpResponse.js\";\nimport { checkFetcher } from \"./checkFetcher.js\";\nimport { selectHttpOptionsAndBodyInternal, defaultPrinter, fallbackHttpConfig } from \"./selectHttpOptionsAndBody.js\";\nimport { createSignalIfSupported } from \"./createSignalIfSupported.js\";\nimport { rewriteURIForGET } from \"./rewriteURIForGET.js\";\nimport { fromError } from \"../utils/index.js\";\nimport { maybe } from \"../../utilities/index.js\";\nvar backupFetch = maybe(function () {\n return fetch;\n});\nexport var createHttpLink = function createHttpLink(linkOptions) {\n if (linkOptions === void 0) {\n linkOptions = {};\n }\n\n var _a = linkOptions.uri,\n uri = _a === void 0 ? '/graphql' : _a,\n preferredFetch = linkOptions.fetch,\n _b = linkOptions.print,\n print = _b === void 0 ? defaultPrinter : _b,\n includeExtensions = linkOptions.includeExtensions,\n preserveHeaderCase = linkOptions.preserveHeaderCase,\n useGETForQueries = linkOptions.useGETForQueries,\n _c = linkOptions.includeUnusedVariables,\n includeUnusedVariables = _c === void 0 ? false : _c,\n requestOptions = __rest(linkOptions, [\"uri\", \"fetch\", \"print\", \"includeExtensions\", \"preserveHeaderCase\", \"useGETForQueries\", \"includeUnusedVariables\"]);\n\n if (__DEV__) {\n checkFetcher(preferredFetch || backupFetch);\n }\n\n var linkConfig = {\n http: {\n includeExtensions: includeExtensions,\n preserveHeaderCase: preserveHeaderCase\n },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers\n };\n return new ApolloLink(function (operation) {\n var chosenURI = selectURI(operation, uri);\n var context = operation.getContext();\n var clientAwarenessHeaders = {};\n\n if (context.clientAwareness) {\n var _a = context.clientAwareness,\n name_1 = _a.name,\n version = _a.version;\n\n if (name_1) {\n clientAwarenessHeaders['apollographql-client-name'] = name_1;\n }\n\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n\n var contextHeaders = __assign(__assign({}, clientAwarenessHeaders), context.headers);\n\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders\n };\n\n var _b = selectHttpOptionsAndBodyInternal(operation, print, fallbackHttpConfig, linkConfig, contextConfig),\n options = _b.options,\n body = _b.body;\n\n if (body.variables && !includeUnusedVariables) {\n var unusedNames_1 = new Set(Object.keys(body.variables));\n visit(operation.query, {\n Variable: function Variable(node, _key, parent) {\n if (parent && parent.kind !== 'VariableDefinition') {\n unusedNames_1.delete(node.name.value);\n }\n }\n });\n\n if (unusedNames_1.size) {\n body.variables = __assign({}, body.variables);\n unusedNames_1.forEach(function (name) {\n delete body.variables[name];\n });\n }\n }\n\n var controller;\n\n if (!options.signal) {\n var _c = createSignalIfSupported(),\n _controller = _c.controller,\n signal = _c.signal;\n\n controller = _controller;\n if (controller) options.signal = signal;\n }\n\n var definitionIsMutation = function definitionIsMutation(d) {\n return d.kind === 'OperationDefinition' && d.operation === 'mutation';\n };\n\n if (useGETForQueries && !operation.query.definitions.some(definitionIsMutation)) {\n options.method = 'GET';\n }\n\n if (hasDirectives(['defer'], operation.query)) {\n options.headers.accept = \"multipart/mixed; deferSpec=20220824, application/json\";\n }\n\n if (options.method === 'GET') {\n var _d = rewriteURIForGET(chosenURI, body),\n newURI = _d.newURI,\n parseError = _d.parseError;\n\n if (parseError) {\n return fromError(parseError);\n }\n\n chosenURI = newURI;\n } else {\n try {\n options.body = serializeFetchParameter(body, 'Payload');\n } catch (parseError) {\n return fromError(parseError);\n }\n }\n\n return new Observable(function (observer) {\n var currentFetch = preferredFetch || maybe(function () {\n return fetch;\n }) || backupFetch;\n currentFetch(chosenURI, options).then(function (response) {\n var _a;\n\n operation.setContext({\n response: response\n });\n var ctype = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get('content-type');\n\n if (ctype !== null && /^multipart\\/mixed/i.test(ctype)) {\n return readMultipartBody(response, observer);\n } else {\n return readJsonBody(response, operation, observer);\n }\n }).catch(function (err) {\n return handleError(err, observer);\n });\n return function () {\n if (controller) controller.abort();\n };\n });\n });\n};","import { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nexport function rewriteURIForGET(chosenURI, body) {\n var queryParams = [];\n\n var addQueryParam = function addQueryParam(key, value) {\n queryParams.push(\"\".concat(key, \"=\").concat(encodeURIComponent(value)));\n };\n\n if ('query' in body) {\n addQueryParam('query', body.query);\n }\n\n if (body.operationName) {\n addQueryParam('operationName', body.operationName);\n }\n\n if (body.variables) {\n var serializedVariables = void 0;\n\n try {\n serializedVariables = serializeFetchParameter(body.variables, 'Variables map');\n } catch (parseError) {\n return {\n parseError: parseError\n };\n }\n\n addQueryParam('variables', serializedVariables);\n }\n\n if (body.extensions) {\n var serializedExtensions = void 0;\n\n try {\n serializedExtensions = serializeFetchParameter(body.extensions, 'Extensions map');\n } catch (parseError) {\n return {\n parseError: parseError\n };\n }\n\n addQueryParam('extensions', serializedExtensions);\n }\n\n var fragment = '',\n preFragment = chosenURI;\n var fragmentStart = chosenURI.indexOf('#');\n\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n\n var queryParamsPrefix = preFragment.indexOf('?') === -1 ? '?' : '&';\n var newURI = preFragment + queryParamsPrefix + queryParams.join('&') + fragment;\n return {\n newURI: newURI\n };\n}","import { __extends } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { createHttpLink } from \"./createHttpLink.js\";\n\nvar HttpLink = function (_super) {\n __extends(HttpLink, _super);\n\n function HttpLink(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _this = _super.call(this, createHttpLink(options).request) || this;\n\n _this.options = options;\n return _this;\n }\n\n return HttpLink;\n}(ApolloLink);\n\nexport { HttpLink };","import { __assign, __spreadArray } from \"tslib\";\nimport { isNonNullObject } from \"./objects.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function mergeDeep() {\n var sources = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n\n return mergeDeepArray(sources);\n}\nexport function mergeDeepArray(sources) {\n var target = sources[0] || {};\n var count = sources.length;\n\n if (count > 1) {\n var merger = new DeepMerger();\n\n for (var i = 1; i < count; ++i) {\n target = merger.merge(target, sources[i]);\n }\n }\n\n return target;\n}\n\nvar defaultReconciler = function defaultReconciler(target, source, property) {\n return this.merge(target[property], source[property]);\n};\n\nvar DeepMerger = function () {\n function DeepMerger(reconciler) {\n if (reconciler === void 0) {\n reconciler = defaultReconciler;\n }\n\n this.reconciler = reconciler;\n this.isObject = isNonNullObject;\n this.pastCopies = new Set();\n }\n\n DeepMerger.prototype.merge = function (target, source) {\n var _this = this;\n\n var context = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n context[_i - 2] = arguments[_i];\n }\n\n if (isNonNullObject(source) && isNonNullObject(target)) {\n Object.keys(source).forEach(function (sourceKey) {\n if (hasOwnProperty.call(target, sourceKey)) {\n var targetValue = target[sourceKey];\n\n if (source[sourceKey] !== targetValue) {\n var result = _this.reconciler.apply(_this, __spreadArray([target, source, sourceKey], context, false));\n\n if (result !== targetValue) {\n target = _this.shallowCopyForMerge(target);\n target[sourceKey] = result;\n }\n }\n } else {\n target = _this.shallowCopyForMerge(target);\n target[sourceKey] = source[sourceKey];\n }\n });\n return target;\n }\n\n return source;\n };\n\n DeepMerger.prototype.shallowCopyForMerge = function (value) {\n if (isNonNullObject(value)) {\n if (!this.pastCopies.has(value)) {\n if (Array.isArray(value)) {\n value = value.slice(0);\n } else {\n value = __assign({\n __proto__: Object.getPrototypeOf(value)\n }, value);\n }\n\n this.pastCopies.add(value);\n }\n }\n\n return value;\n };\n\n return DeepMerger;\n}();\n\nexport { DeepMerger };","import { isReference, isField, DeepMerger, resultKeyNameFromField, shouldInclude, isNonNullObject, compact, createFragmentMap, getFragmentDefinitions } from \"../../utilities/index.js\";\nexport var hasOwn = Object.prototype.hasOwnProperty;\nexport function isNullish(value) {\n return value === null || value === void 0;\n}\nexport var isArray = Array.isArray;\nexport function defaultDataIdFromObject(_a, context) {\n var __typename = _a.__typename,\n id = _a.id,\n _id = _a._id;\n\n if (typeof __typename === \"string\") {\n if (context) {\n context.keyObject = !isNullish(id) ? {\n id: id\n } : !isNullish(_id) ? {\n _id: _id\n } : void 0;\n }\n\n if (isNullish(id) && !isNullish(_id)) {\n id = _id;\n }\n\n if (!isNullish(id)) {\n return \"\".concat(__typename, \":\").concat(typeof id === \"number\" || typeof id === \"string\" ? id : JSON.stringify(id));\n }\n }\n}\nvar defaultConfig = {\n dataIdFromObject: defaultDataIdFromObject,\n addTypename: true,\n resultCaching: true,\n canonizeResults: false\n};\nexport function normalizeConfig(config) {\n return compact(defaultConfig, config);\n}\nexport function shouldCanonizeResults(config) {\n var value = config.canonizeResults;\n return value === void 0 ? defaultConfig.canonizeResults : value;\n}\nexport function getTypenameFromStoreObject(store, objectOrReference) {\n return isReference(objectOrReference) ? store.get(objectOrReference.__ref, \"__typename\") : objectOrReference && objectOrReference.__typename;\n}\nexport var TypeOrFieldNameRegExp = /^[_a-z][_0-9a-z]*/i;\nexport function fieldNameFromStoreName(storeFieldName) {\n var match = storeFieldName.match(TypeOrFieldNameRegExp);\n return match ? match[0] : storeFieldName;\n}\nexport function selectionSetMatchesResult(selectionSet, result, variables) {\n if (isNonNullObject(result)) {\n return isArray(result) ? result.every(function (item) {\n return selectionSetMatchesResult(selectionSet, item, variables);\n }) : selectionSet.selections.every(function (field) {\n if (isField(field) && shouldInclude(field, variables)) {\n var key = resultKeyNameFromField(field);\n return hasOwn.call(result, key) && (!field.selectionSet || selectionSetMatchesResult(field.selectionSet, result[key], variables));\n }\n\n return true;\n });\n }\n\n return false;\n}\nexport function storeValueIsStoreObject(value) {\n return isNonNullObject(value) && !isReference(value) && !isArray(value);\n}\nexport function makeProcessedFieldsMerger() {\n return new DeepMerger();\n}\nexport function extractFragmentContext(document, fragments) {\n var fragmentMap = createFragmentMap(getFragmentDefinitions(document));\n return {\n fragmentMap: fragmentMap,\n lookupFragment: function lookupFragment(name) {\n var def = fragmentMap[name];\n\n if (!def && fragments) {\n def = fragments.lookup(name);\n }\n\n return def || null;\n }\n };\n}","import { __assign } from \"tslib\";\nimport \"../../utilities/globals/index.js\";\nimport { Trie } from \"@wry/trie\";\nimport { canUseWeakMap, canUseWeakSet, isNonNullObject as isObjectOrArray } from \"../../utilities/index.js\";\nimport { isArray } from \"./helpers.js\";\n\nfunction shallowCopy(value) {\n if (isObjectOrArray(value)) {\n return isArray(value) ? value.slice(0) : __assign({\n __proto__: Object.getPrototypeOf(value)\n }, value);\n }\n\n return value;\n}\n\nvar ObjectCanon = function () {\n function ObjectCanon() {\n this.known = new (canUseWeakSet ? WeakSet : Set)();\n this.pool = new Trie(canUseWeakMap);\n this.passes = new WeakMap();\n this.keysByJSON = new Map();\n this.empty = this.admit({});\n }\n\n ObjectCanon.prototype.isKnown = function (value) {\n return isObjectOrArray(value) && this.known.has(value);\n };\n\n ObjectCanon.prototype.pass = function (value) {\n if (isObjectOrArray(value)) {\n var copy = shallowCopy(value);\n this.passes.set(copy, value);\n return copy;\n }\n\n return value;\n };\n\n ObjectCanon.prototype.admit = function (value) {\n var _this = this;\n\n if (isObjectOrArray(value)) {\n var original = this.passes.get(value);\n if (original) return original;\n var proto = Object.getPrototypeOf(value);\n\n switch (proto) {\n case Array.prototype:\n {\n if (this.known.has(value)) return value;\n var array = value.map(this.admit, this);\n var node = this.pool.lookupArray(array);\n\n if (!node.array) {\n this.known.add(node.array = array);\n\n if (__DEV__) {\n Object.freeze(array);\n }\n }\n\n return node.array;\n }\n\n case null:\n case Object.prototype:\n {\n if (this.known.has(value)) return value;\n var proto_1 = Object.getPrototypeOf(value);\n var array_1 = [proto_1];\n var keys = this.sortedKeys(value);\n array_1.push(keys.json);\n var firstValueIndex_1 = array_1.length;\n keys.sorted.forEach(function (key) {\n array_1.push(_this.admit(value[key]));\n });\n var node = this.pool.lookupArray(array_1);\n\n if (!node.object) {\n var obj_1 = node.object = Object.create(proto_1);\n this.known.add(obj_1);\n keys.sorted.forEach(function (key, i) {\n obj_1[key] = array_1[firstValueIndex_1 + i];\n });\n\n if (__DEV__) {\n Object.freeze(obj_1);\n }\n }\n\n return node.object;\n }\n }\n }\n\n return value;\n };\n\n ObjectCanon.prototype.sortedKeys = function (obj) {\n var keys = Object.keys(obj);\n var node = this.pool.lookupArray(keys);\n\n if (!node.keys) {\n keys.sort();\n var json = JSON.stringify(keys);\n\n if (!(node.keys = this.keysByJSON.get(json))) {\n this.keysByJSON.set(json, node.keys = {\n sorted: keys,\n json: json\n });\n }\n }\n\n return node.keys;\n };\n\n return ObjectCanon;\n}();\n\nexport { ObjectCanon };\nexport var canonicalStringify = Object.assign(function (value) {\n if (isObjectOrArray(value)) {\n if (stringifyCanon === void 0) {\n resetCanonicalStringify();\n }\n\n var canonical = stringifyCanon.admit(value);\n var json = stringifyCache.get(canonical);\n\n if (json === void 0) {\n stringifyCache.set(canonical, json = JSON.stringify(canonical));\n }\n\n return json;\n }\n\n return JSON.stringify(value);\n}, {\n reset: resetCanonicalStringify\n});\nvar stringifyCanon;\nvar stringifyCache;\n\nfunction resetCanonicalStringify() {\n stringifyCanon = new ObjectCanon();\n stringifyCache = new (canUseWeakMap ? WeakMap : Map)();\n}","import { Observable } from \"./Observable.js\";\nexport function asyncMap(observable, mapFn, catchFn) {\n return new Observable(function (observer) {\n var next = observer.next,\n error = observer.error,\n _complete = observer.complete;\n var activeCallbackCount = 0;\n var completed = false;\n var promiseQueue = {\n then: function then(callback) {\n return new Promise(function (resolve) {\n return resolve(callback());\n });\n }\n };\n\n function makeCallback(examiner, delegate) {\n if (examiner) {\n return function (arg) {\n ++activeCallbackCount;\n\n var both = function both() {\n return examiner(arg);\n };\n\n promiseQueue = promiseQueue.then(both, both).then(function (result) {\n --activeCallbackCount;\n next && next.call(observer, result);\n\n if (completed) {\n handler.complete();\n }\n }, function (error) {\n --activeCallbackCount;\n throw error;\n }).catch(function (caught) {\n error && error.call(observer, caught);\n });\n };\n } else {\n return function (arg) {\n return delegate && delegate.call(observer, arg);\n };\n }\n }\n\n var handler = {\n next: makeCallback(mapFn, next),\n error: makeCallback(catchFn, error),\n complete: function complete() {\n completed = true;\n\n if (!activeCallbackCount) {\n _complete && _complete.call(observer);\n }\n }\n };\n var sub = observable.subscribe(handler);\n return function () {\n return sub.unsubscribe();\n };\n });\n}","export function graphQLResultHasError(result) {\n return result.errors && result.errors.length > 0 || false;\n}","export function filterInPlace(array, test, context) {\n var target = 0;\n array.forEach(function (elem, i) {\n if (test.call(this, elem, i, array)) {\n array[target++] = elem;\n }\n }, context);\n array.length = target;\n return array;\n}","import { __assign, __spreadArray } from \"tslib\";\nimport { invariant } from \"../globals/index.js\";\nimport { visit } from 'graphql';\nimport { checkDocument, getOperationDefinition, getFragmentDefinition, getFragmentDefinitions, getMainDefinition } from \"./getFromAST.js\";\nimport { filterInPlace } from \"../common/filterInPlace.js\";\nimport { isField, isInlineFragment } from \"./storeUtils.js\";\nimport { createFragmentMap } from \"./fragments.js\";\nvar TYPENAME_FIELD = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: '__typename'\n }\n};\n\nfunction isEmpty(op, fragmentMap) {\n return !op || op.selectionSet.selections.every(function (selection) {\n return selection.kind === 'FragmentSpread' && isEmpty(fragmentMap[selection.name.value], fragmentMap);\n });\n}\n\nfunction nullIfDocIsEmpty(doc) {\n return isEmpty(getOperationDefinition(doc) || getFragmentDefinition(doc), createFragmentMap(getFragmentDefinitions(doc))) ? null : doc;\n}\n\nfunction getDirectiveMatcher(directives) {\n return function directiveMatcher(directive) {\n return directives.some(function (dir) {\n return dir.name && dir.name === directive.name.value || dir.test && dir.test(directive);\n });\n };\n}\n\nexport function removeDirectivesFromDocument(directives, doc) {\n var variablesInUse = Object.create(null);\n var variablesToRemove = [];\n var fragmentSpreadsInUse = Object.create(null);\n var fragmentSpreadsToRemove = [];\n var modifiedDoc = nullIfDocIsEmpty(visit(doc, {\n Variable: {\n enter: function enter(node, _key, parent) {\n if (parent.kind !== 'VariableDefinition') {\n variablesInUse[node.name.value] = true;\n }\n }\n },\n Field: {\n enter: function enter(node) {\n if (directives && node.directives) {\n var shouldRemoveField = directives.some(function (directive) {\n return directive.remove;\n });\n\n if (shouldRemoveField && node.directives && node.directives.some(getDirectiveMatcher(directives))) {\n if (node.arguments) {\n node.arguments.forEach(function (arg) {\n if (arg.value.kind === 'Variable') {\n variablesToRemove.push({\n name: arg.value.name.value\n });\n }\n });\n }\n\n if (node.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(node.selectionSet).forEach(function (frag) {\n fragmentSpreadsToRemove.push({\n name: frag.name.value\n });\n });\n }\n\n return null;\n }\n }\n }\n },\n FragmentSpread: {\n enter: function enter(node) {\n fragmentSpreadsInUse[node.name.value] = true;\n }\n },\n Directive: {\n enter: function enter(node) {\n if (getDirectiveMatcher(directives)(node)) {\n return null;\n }\n }\n }\n }));\n\n if (modifiedDoc && filterInPlace(variablesToRemove, function (v) {\n return !!v.name && !variablesInUse[v.name];\n }).length) {\n modifiedDoc = removeArgumentsFromDocument(variablesToRemove, modifiedDoc);\n }\n\n if (modifiedDoc && filterInPlace(fragmentSpreadsToRemove, function (fs) {\n return !!fs.name && !fragmentSpreadsInUse[fs.name];\n }).length) {\n modifiedDoc = removeFragmentSpreadFromDocument(fragmentSpreadsToRemove, modifiedDoc);\n }\n\n return modifiedDoc;\n}\nexport var addTypenameToDocument = Object.assign(function (doc) {\n return visit(doc, {\n SelectionSet: {\n enter: function enter(node, _key, parent) {\n if (parent && parent.kind === 'OperationDefinition') {\n return;\n }\n\n var selections = node.selections;\n\n if (!selections) {\n return;\n }\n\n var skip = selections.some(function (selection) {\n return isField(selection) && (selection.name.value === '__typename' || selection.name.value.lastIndexOf('__', 0) === 0);\n });\n\n if (skip) {\n return;\n }\n\n var field = parent;\n\n if (isField(field) && field.directives && field.directives.some(function (d) {\n return d.name.value === 'export';\n })) {\n return;\n }\n\n return __assign(__assign({}, node), {\n selections: __spreadArray(__spreadArray([], selections, true), [TYPENAME_FIELD], false)\n });\n }\n }\n });\n}, {\n added: function added(field) {\n return field === TYPENAME_FIELD;\n }\n});\nvar connectionRemoveConfig = {\n test: function test(directive) {\n var willRemove = directive.name.value === 'connection';\n\n if (willRemove) {\n if (!directive.arguments || !directive.arguments.some(function (arg) {\n return arg.name.value === 'key';\n })) {\n __DEV__ && invariant.warn('Removing an @connection directive even though it does not have a key. ' + 'You may want to use the key parameter to specify a store key.');\n }\n }\n\n return willRemove;\n }\n};\nexport function removeConnectionDirectiveFromDocument(doc) {\n return removeDirectivesFromDocument([connectionRemoveConfig], checkDocument(doc));\n}\n\nfunction hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) {\n if (nestedCheck === void 0) {\n nestedCheck = true;\n }\n\n return !!selectionSet && selectionSet.selections && selectionSet.selections.some(function (selection) {\n return hasDirectivesInSelection(directives, selection, nestedCheck);\n });\n}\n\nfunction hasDirectivesInSelection(directives, selection, nestedCheck) {\n if (nestedCheck === void 0) {\n nestedCheck = true;\n }\n\n if (!isField(selection)) {\n return true;\n }\n\n if (!selection.directives) {\n return false;\n }\n\n return selection.directives.some(getDirectiveMatcher(directives)) || nestedCheck && hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck);\n}\n\nfunction getArgumentMatcher(config) {\n return function argumentMatcher(argument) {\n return config.some(function (aConfig) {\n return argument.value && argument.value.kind === 'Variable' && argument.value.name && (aConfig.name === argument.value.name.value || aConfig.test && aConfig.test(argument));\n });\n };\n}\n\nexport function removeArgumentsFromDocument(config, doc) {\n var argMatcher = getArgumentMatcher(config);\n return nullIfDocIsEmpty(visit(doc, {\n OperationDefinition: {\n enter: function enter(node) {\n return __assign(__assign({}, node), {\n variableDefinitions: node.variableDefinitions ? node.variableDefinitions.filter(function (varDef) {\n return !config.some(function (arg) {\n return arg.name === varDef.variable.name.value;\n });\n }) : []\n });\n }\n },\n Field: {\n enter: function enter(node) {\n var shouldRemoveField = config.some(function (argConfig) {\n return argConfig.remove;\n });\n\n if (shouldRemoveField) {\n var argMatchCount_1 = 0;\n\n if (node.arguments) {\n node.arguments.forEach(function (arg) {\n if (argMatcher(arg)) {\n argMatchCount_1 += 1;\n }\n });\n }\n\n if (argMatchCount_1 === 1) {\n return null;\n }\n }\n }\n },\n Argument: {\n enter: function enter(node) {\n if (argMatcher(node)) {\n return null;\n }\n }\n }\n }));\n}\nexport function removeFragmentSpreadFromDocument(config, doc) {\n function enter(node) {\n if (config.some(function (def) {\n return def.name === node.name.value;\n })) {\n return null;\n }\n }\n\n return nullIfDocIsEmpty(visit(doc, {\n FragmentSpread: {\n enter: enter\n },\n FragmentDefinition: {\n enter: enter\n }\n }));\n}\n\nfunction getAllFragmentSpreadsFromSelectionSet(selectionSet) {\n var allFragments = [];\n selectionSet.selections.forEach(function (selection) {\n if ((isField(selection) || isInlineFragment(selection)) && selection.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(selection.selectionSet).forEach(function (frag) {\n return allFragments.push(frag);\n });\n } else if (selection.kind === 'FragmentSpread') {\n allFragments.push(selection);\n }\n });\n return allFragments;\n}\n\nexport function buildQueryFromSelectionSet(document) {\n var definition = getMainDefinition(document);\n var definitionOperation = definition.operation;\n\n if (definitionOperation === 'query') {\n return document;\n }\n\n var modifiedDoc = visit(document, {\n OperationDefinition: {\n enter: function enter(node) {\n return __assign(__assign({}, node), {\n operation: 'query'\n });\n }\n }\n });\n return modifiedDoc;\n}\nexport function removeClientSetsFromDocument(document) {\n checkDocument(document);\n var modifiedDoc = removeDirectivesFromDocument([{\n test: function test(directive) {\n return directive.name.value === 'client';\n },\n remove: true\n }], document);\n\n if (modifiedDoc) {\n modifiedDoc = visit(modifiedDoc, {\n FragmentDefinition: {\n enter: function enter(node) {\n if (node.selectionSet) {\n var isTypenameOnly = node.selectionSet.selections.every(function (selection) {\n return isField(selection) && selection.name.value === '__typename';\n });\n\n if (isTypenameOnly) {\n return null;\n }\n }\n }\n }\n });\n }\n\n return modifiedDoc;\n}","var prefixCounts = new Map();\nexport function makeUniqueId(prefix) {\n var count = prefixCounts.get(prefix) || 1;\n prefixCounts.set(prefix, count + 1);\n return \"\".concat(prefix, \":\").concat(count, \":\").concat(Math.random().toString(36).slice(2));\n}","export function iterateObserversSafely(observers, method, argument) {\n var observersWithMethod = [];\n observers.forEach(function (obs) {\n return obs[method] && observersWithMethod.push(obs);\n });\n observersWithMethod.forEach(function (obs) {\n return obs[method](argument);\n });\n}","import { Observable } from \"./Observable.js\";\nimport { canUseSymbol } from \"../common/canUse.js\";\nexport function fixObservableSubclass(subclass) {\n function set(key) {\n Object.defineProperty(subclass, key, {\n value: Observable\n });\n }\n\n if (canUseSymbol && Symbol.species) {\n set(Symbol.species);\n }\n\n set(\"@@species\");\n return subclass;\n}","import { __extends } from \"tslib\";\nimport { Observable } from \"./Observable.js\";\nimport { iterateObserversSafely } from \"./iteration.js\";\nimport { fixObservableSubclass } from \"./subclassing.js\";\n\nfunction isPromiseLike(value) {\n return value && typeof value.then === \"function\";\n}\n\nvar Concast = function (_super) {\n __extends(Concast, _super);\n\n function Concast(sources) {\n var _this = _super.call(this, function (observer) {\n _this.addObserver(observer);\n\n return function () {\n return _this.removeObserver(observer);\n };\n }) || this;\n\n _this.observers = new Set();\n _this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n _this.handlers = {\n next: function next(result) {\n if (_this.sub !== null) {\n _this.latest = [\"next\", result];\n\n _this.notify(\"next\", result);\n\n iterateObserversSafely(_this.observers, \"next\", result);\n }\n },\n error: function error(_error) {\n var sub = _this.sub;\n\n if (sub !== null) {\n if (sub) setTimeout(function () {\n return sub.unsubscribe();\n });\n _this.sub = null;\n _this.latest = [\"error\", _error];\n\n _this.reject(_error);\n\n _this.notify(\"error\", _error);\n\n iterateObserversSafely(_this.observers, \"error\", _error);\n }\n },\n complete: function complete() {\n var sub = _this.sub;\n\n if (sub !== null) {\n var value = _this.sources.shift();\n\n if (!value) {\n if (sub) setTimeout(function () {\n return sub.unsubscribe();\n });\n _this.sub = null;\n\n if (_this.latest && _this.latest[0] === \"next\") {\n _this.resolve(_this.latest[1]);\n } else {\n _this.resolve();\n }\n\n _this.notify(\"complete\");\n\n iterateObserversSafely(_this.observers, \"complete\");\n } else if (isPromiseLike(value)) {\n value.then(function (obs) {\n return _this.sub = obs.subscribe(_this.handlers);\n });\n } else {\n _this.sub = value.subscribe(_this.handlers);\n }\n }\n }\n };\n _this.nextResultListeners = new Set();\n\n _this.cancel = function (reason) {\n _this.reject(reason);\n\n _this.sources = [];\n\n _this.handlers.complete();\n };\n\n _this.promise.catch(function (_) {});\n\n if (typeof sources === \"function\") {\n sources = [new Observable(sources)];\n }\n\n if (isPromiseLike(sources)) {\n sources.then(function (iterable) {\n return _this.start(iterable);\n }, _this.handlers.error);\n } else {\n _this.start(sources);\n }\n\n return _this;\n }\n\n Concast.prototype.start = function (sources) {\n if (this.sub !== void 0) return;\n this.sources = Array.from(sources);\n this.handlers.complete();\n };\n\n Concast.prototype.deliverLastMessage = function (observer) {\n if (this.latest) {\n var nextOrError = this.latest[0];\n var method = observer[nextOrError];\n\n if (method) {\n method.call(observer, this.latest[1]);\n }\n\n if (this.sub === null && nextOrError === \"next\" && observer.complete) {\n observer.complete();\n }\n }\n };\n\n Concast.prototype.addObserver = function (observer) {\n if (!this.observers.has(observer)) {\n this.deliverLastMessage(observer);\n this.observers.add(observer);\n }\n };\n\n Concast.prototype.removeObserver = function (observer) {\n if (this.observers.delete(observer) && this.observers.size < 1) {\n this.handlers.complete();\n }\n };\n\n Concast.prototype.notify = function (method, arg) {\n var nextResultListeners = this.nextResultListeners;\n\n if (nextResultListeners.size) {\n this.nextResultListeners = new Set();\n nextResultListeners.forEach(function (listener) {\n return listener(method, arg);\n });\n }\n };\n\n Concast.prototype.beforeNext = function (callback) {\n var called = false;\n this.nextResultListeners.add(function (method, arg) {\n if (!called) {\n called = true;\n callback(method, arg);\n }\n });\n };\n\n return Concast;\n}(Observable);\n\nexport { Concast };\nfixObservableSubclass(Concast);","var toString = Object.prototype.toString;\nexport function cloneDeep(value) {\n return cloneDeepHelper(value);\n}\n\nfunction cloneDeepHelper(val, seen) {\n switch (toString.call(val)) {\n case \"[object Array]\":\n {\n seen = seen || new Map();\n if (seen.has(val)) return seen.get(val);\n var copy_1 = val.slice(0);\n seen.set(val, copy_1);\n copy_1.forEach(function (child, i) {\n copy_1[i] = cloneDeepHelper(child, seen);\n });\n return copy_1;\n }\n\n case \"[object Object]\":\n {\n seen = seen || new Map();\n if (seen.has(val)) return seen.get(val);\n var copy_2 = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy_2);\n Object.keys(val).forEach(function (key) {\n copy_2[key] = cloneDeepHelper(val[key], seen);\n });\n return copy_2;\n }\n\n default:\n return val;\n }\n}","import { __assign, __extends } from \"tslib\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { cloneDeep, compact, getOperationDefinition, Observable, iterateObserversSafely, isNonEmptyArray, fixObservableSubclass, getQueryDefinition } from \"../utilities/index.js\";\nvar assign = Object.assign,\n hasOwnProperty = Object.hasOwnProperty;\n\nvar ObservableQuery = function (_super) {\n __extends(ObservableQuery, _super);\n\n function ObservableQuery(_a) {\n var queryManager = _a.queryManager,\n queryInfo = _a.queryInfo,\n options = _a.options;\n\n var _this = _super.call(this, function (observer) {\n try {\n var subObserver = observer._subscription._observer;\n\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n } catch (_a) {}\n\n var first = !_this.observers.size;\n\n _this.observers.add(observer);\n\n var last = _this.last;\n\n if (last && last.error) {\n observer.error && observer.error(last.error);\n } else if (last && last.result) {\n observer.next && observer.next(last.result);\n }\n\n if (first) {\n _this.reobserve().catch(function () {});\n }\n\n return function () {\n if (_this.observers.delete(observer) && !_this.observers.size) {\n _this.tearDownQuery();\n }\n };\n }) || this;\n\n _this.observers = new Set();\n _this.subscriptions = new Set();\n _this.queryInfo = queryInfo;\n _this.queryManager = queryManager;\n _this.isTornDown = false;\n\n var _b = queryManager.defaultOptions.watchQuery,\n _c = _b === void 0 ? {} : _b,\n _d = _c.fetchPolicy,\n defaultFetchPolicy = _d === void 0 ? \"cache-first\" : _d;\n\n var _e = options.fetchPolicy,\n fetchPolicy = _e === void 0 ? defaultFetchPolicy : _e,\n _f = options.initialFetchPolicy,\n initialFetchPolicy = _f === void 0 ? fetchPolicy === \"standby\" ? defaultFetchPolicy : fetchPolicy : _f;\n _this.options = __assign(__assign({}, options), {\n initialFetchPolicy: initialFetchPolicy,\n fetchPolicy: fetchPolicy\n });\n _this.queryId = queryInfo.queryId || queryManager.generateQueryId();\n var opDef = getOperationDefinition(_this.query);\n _this.queryName = opDef && opDef.name && opDef.name.value;\n return _this;\n }\n\n Object.defineProperty(ObservableQuery.prototype, \"query\", {\n get: function get() {\n return this.queryManager.transform(this.options.query).document;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ObservableQuery.prototype, \"variables\", {\n get: function get() {\n return this.options.variables;\n },\n enumerable: false,\n configurable: true\n });\n\n ObservableQuery.prototype.result = function () {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n var observer = {\n next: function next(result) {\n resolve(result);\n\n _this.observers.delete(observer);\n\n if (!_this.observers.size) {\n _this.queryManager.removeQuery(_this.queryId);\n }\n\n setTimeout(function () {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject\n };\n\n var subscription = _this.subscribe(observer);\n });\n };\n\n ObservableQuery.prototype.getCurrentResult = function (saveAsLastResult) {\n if (saveAsLastResult === void 0) {\n saveAsLastResult = true;\n }\n\n var lastResult = this.getLastResult(true);\n var networkStatus = this.queryInfo.networkStatus || lastResult && lastResult.networkStatus || NetworkStatus.ready;\n\n var result = __assign(__assign({}, lastResult), {\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus: networkStatus\n });\n\n var _a = this.options.fetchPolicy,\n fetchPolicy = _a === void 0 ? \"cache-first\" : _a;\n\n if (fetchPolicy === 'network-only' || fetchPolicy === 'no-cache' || fetchPolicy === 'standby' || this.queryManager.transform(this.options.query).hasForcedResolvers) {} else {\n var diff = this.queryInfo.getDiff();\n\n if (diff.complete || this.options.returnPartialData) {\n result.data = diff.result;\n }\n\n if (equal(result.data, {})) {\n result.data = void 0;\n }\n\n if (diff.complete) {\n delete result.partial;\n\n if (diff.complete && result.networkStatus === NetworkStatus.loading && (fetchPolicy === 'cache-first' || fetchPolicy === 'cache-only')) {\n result.networkStatus = NetworkStatus.ready;\n result.loading = false;\n }\n } else {\n result.partial = true;\n }\n\n if (__DEV__ && !diff.complete && !this.options.partialRefetch && !result.loading && !result.data && !result.error) {\n logMissingFieldErrors(diff.missing);\n }\n }\n\n if (saveAsLastResult) {\n this.updateLastResult(result);\n }\n\n return result;\n };\n\n ObservableQuery.prototype.isDifferentFromLastResult = function (newResult, variables) {\n return !this.last || !equal(this.last.result, newResult) || variables && !equal(this.last.variables, variables);\n };\n\n ObservableQuery.prototype.getLast = function (key, variablesMustMatch) {\n var last = this.last;\n\n if (last && last[key] && (!variablesMustMatch || equal(last.variables, this.variables))) {\n return last[key];\n }\n };\n\n ObservableQuery.prototype.getLastResult = function (variablesMustMatch) {\n return this.getLast(\"result\", variablesMustMatch);\n };\n\n ObservableQuery.prototype.getLastError = function (variablesMustMatch) {\n return this.getLast(\"error\", variablesMustMatch);\n };\n\n ObservableQuery.prototype.resetLastResults = function () {\n delete this.last;\n this.isTornDown = false;\n };\n\n ObservableQuery.prototype.resetQueryStoreErrors = function () {\n this.queryManager.resetErrors(this.queryId);\n };\n\n ObservableQuery.prototype.refetch = function (variables) {\n var _a;\n\n var reobserveOptions = {\n pollInterval: 0\n };\n var fetchPolicy = this.options.fetchPolicy;\n\n if (fetchPolicy === 'cache-and-network') {\n reobserveOptions.fetchPolicy = fetchPolicy;\n } else if (fetchPolicy === 'no-cache') {\n reobserveOptions.fetchPolicy = 'no-cache';\n } else {\n reobserveOptions.fetchPolicy = 'network-only';\n }\n\n if (__DEV__ && variables && hasOwnProperty.call(variables, \"variables\")) {\n var queryDef = getQueryDefinition(this.query);\n var vars = queryDef.variableDefinitions;\n\n if (!vars || !vars.some(function (v) {\n return v.variable.name.value === \"variables\";\n })) {\n __DEV__ && invariant.warn(\"Called refetch(\".concat(JSON.stringify(variables), \") for query \").concat(((_a = queryDef.name) === null || _a === void 0 ? void 0 : _a.value) || JSON.stringify(queryDef), \", which does not declare a $variables variable.\\nDid you mean to call refetch(variables) instead of refetch({ variables })?\"));\n }\n }\n\n if (variables && !equal(this.options.variables, variables)) {\n reobserveOptions.variables = this.options.variables = __assign(__assign({}, this.options.variables), variables);\n }\n\n this.queryInfo.resetLastWrite();\n return this.reobserve(reobserveOptions, NetworkStatus.refetch);\n };\n\n ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {\n var _this = this;\n\n var combinedOptions = __assign(__assign({}, fetchMoreOptions.query ? fetchMoreOptions : __assign(__assign(__assign(__assign({}, this.options), {\n query: this.query\n }), fetchMoreOptions), {\n variables: __assign(__assign({}, this.options.variables), fetchMoreOptions.variables)\n })), {\n fetchPolicy: \"no-cache\"\n });\n\n var qid = this.queryManager.generateQueryId();\n var queryInfo = this.queryInfo;\n var originalNetworkStatus = queryInfo.networkStatus;\n queryInfo.networkStatus = NetworkStatus.fetchMore;\n\n if (combinedOptions.notifyOnNetworkStatusChange) {\n this.observe();\n }\n\n var updatedQuerySet = new Set();\n return this.queryManager.fetchQuery(qid, combinedOptions, NetworkStatus.fetchMore).then(function (fetchMoreResult) {\n _this.queryManager.removeQuery(qid);\n\n if (queryInfo.networkStatus === NetworkStatus.fetchMore) {\n queryInfo.networkStatus = originalNetworkStatus;\n }\n\n _this.queryManager.cache.batch({\n update: function update(cache) {\n var updateQuery = fetchMoreOptions.updateQuery;\n\n if (updateQuery) {\n cache.updateQuery({\n query: _this.query,\n variables: _this.variables,\n returnPartialData: true,\n optimistic: false\n }, function (previous) {\n return updateQuery(previous, {\n fetchMoreResult: fetchMoreResult.data,\n variables: combinedOptions.variables\n });\n });\n } else {\n cache.writeQuery({\n query: combinedOptions.query,\n variables: combinedOptions.variables,\n data: fetchMoreResult.data\n });\n }\n },\n onWatchUpdated: function onWatchUpdated(watch) {\n updatedQuerySet.add(watch.query);\n }\n });\n\n return fetchMoreResult;\n }).finally(function () {\n if (!updatedQuerySet.has(_this.query)) {\n reobserveCacheFirst(_this);\n }\n });\n };\n\n ObservableQuery.prototype.subscribeToMore = function (options) {\n var _this = this;\n\n var subscription = this.queryManager.startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n context: options.context\n }).subscribe({\n next: function next(subscriptionData) {\n var updateQuery = options.updateQuery;\n\n if (updateQuery) {\n _this.updateQuery(function (previous, _a) {\n var variables = _a.variables;\n return updateQuery(previous, {\n subscriptionData: subscriptionData,\n variables: variables\n });\n });\n }\n },\n error: function error(err) {\n if (options.onError) {\n options.onError(err);\n return;\n }\n\n __DEV__ && invariant.error('Unhandled GraphQL subscription error', err);\n }\n });\n this.subscriptions.add(subscription);\n return function () {\n if (_this.subscriptions.delete(subscription)) {\n subscription.unsubscribe();\n }\n };\n };\n\n ObservableQuery.prototype.setOptions = function (newOptions) {\n return this.reobserve(newOptions);\n };\n\n ObservableQuery.prototype.setVariables = function (variables) {\n if (equal(this.variables, variables)) {\n return this.observers.size ? this.result() : Promise.resolve();\n }\n\n this.options.variables = variables;\n\n if (!this.observers.size) {\n return Promise.resolve();\n }\n\n return this.reobserve({\n fetchPolicy: this.options.initialFetchPolicy,\n variables: variables\n }, NetworkStatus.setVariables);\n };\n\n ObservableQuery.prototype.updateQuery = function (mapFn) {\n var queryManager = this.queryManager;\n var result = queryManager.cache.diff({\n query: this.options.query,\n variables: this.variables,\n returnPartialData: true,\n optimistic: false\n }).result;\n var newResult = mapFn(result, {\n variables: this.variables\n });\n\n if (newResult) {\n queryManager.cache.writeQuery({\n query: this.options.query,\n data: newResult,\n variables: this.variables\n });\n queryManager.broadcastQueries();\n }\n };\n\n ObservableQuery.prototype.startPolling = function (pollInterval) {\n this.options.pollInterval = pollInterval;\n this.updatePolling();\n };\n\n ObservableQuery.prototype.stopPolling = function () {\n this.options.pollInterval = 0;\n this.updatePolling();\n };\n\n ObservableQuery.prototype.applyNextFetchPolicy = function (reason, options) {\n if (options.nextFetchPolicy) {\n var _a = options.fetchPolicy,\n fetchPolicy = _a === void 0 ? \"cache-first\" : _a,\n _b = options.initialFetchPolicy,\n initialFetchPolicy = _b === void 0 ? fetchPolicy : _b;\n\n if (fetchPolicy === \"standby\") {} else if (typeof options.nextFetchPolicy === \"function\") {\n options.fetchPolicy = options.nextFetchPolicy(fetchPolicy, {\n reason: reason,\n options: options,\n observable: this,\n initialFetchPolicy: initialFetchPolicy\n });\n } else if (reason === \"variables-changed\") {\n options.fetchPolicy = initialFetchPolicy;\n } else {\n options.fetchPolicy = options.nextFetchPolicy;\n }\n }\n\n return options.fetchPolicy;\n };\n\n ObservableQuery.prototype.fetch = function (options, newNetworkStatus) {\n this.queryManager.setObservableQuery(this);\n return this.queryManager.fetchQueryObservable(this.queryId, options, newNetworkStatus);\n };\n\n ObservableQuery.prototype.updatePolling = function () {\n var _this = this;\n\n if (this.queryManager.ssrMode) {\n return;\n }\n\n var _a = this,\n pollingInfo = _a.pollingInfo,\n pollInterval = _a.options.pollInterval;\n\n if (!pollInterval) {\n if (pollingInfo) {\n clearTimeout(pollingInfo.timeout);\n delete this.pollingInfo;\n }\n\n return;\n }\n\n if (pollingInfo && pollingInfo.interval === pollInterval) {\n return;\n }\n\n __DEV__ ? invariant(pollInterval, 'Attempted to start a polling query without a polling interval.') : invariant(pollInterval, 12);\n var info = pollingInfo || (this.pollingInfo = {});\n info.interval = pollInterval;\n\n var maybeFetch = function maybeFetch() {\n if (_this.pollingInfo) {\n if (!isNetworkRequestInFlight(_this.queryInfo.networkStatus)) {\n _this.reobserve({\n fetchPolicy: _this.options.initialFetchPolicy === 'no-cache' ? 'no-cache' : 'network-only'\n }, NetworkStatus.poll).then(poll, poll);\n } else {\n poll();\n }\n }\n\n ;\n };\n\n var poll = function poll() {\n var info = _this.pollingInfo;\n\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch, info.interval);\n }\n };\n\n poll();\n };\n\n ObservableQuery.prototype.updateLastResult = function (newResult, variables) {\n if (variables === void 0) {\n variables = this.variables;\n }\n\n this.last = __assign(__assign({}, this.last), {\n result: this.queryManager.assumeImmutableResults ? newResult : cloneDeep(newResult),\n variables: variables\n });\n\n if (!isNonEmptyArray(newResult.errors)) {\n delete this.last.error;\n }\n\n return this.last;\n };\n\n ObservableQuery.prototype.reobserve = function (newOptions, newNetworkStatus) {\n var _this = this;\n\n this.isTornDown = false;\n var useDisposableConcast = newNetworkStatus === NetworkStatus.refetch || newNetworkStatus === NetworkStatus.fetchMore || newNetworkStatus === NetworkStatus.poll;\n var oldVariables = this.options.variables;\n var oldFetchPolicy = this.options.fetchPolicy;\n var mergedOptions = compact(this.options, newOptions || {});\n var options = useDisposableConcast ? mergedOptions : assign(this.options, mergedOptions);\n\n if (!useDisposableConcast) {\n this.updatePolling();\n\n if (newOptions && newOptions.variables && !equal(newOptions.variables, oldVariables) && options.fetchPolicy !== \"standby\" && options.fetchPolicy === oldFetchPolicy) {\n this.applyNextFetchPolicy(\"variables-changed\", options);\n\n if (newNetworkStatus === void 0) {\n newNetworkStatus = NetworkStatus.setVariables;\n }\n }\n }\n\n var variables = options.variables && __assign({}, options.variables);\n\n var concast = this.fetch(options, newNetworkStatus);\n var observer = {\n next: function next(result) {\n _this.reportResult(result, variables);\n },\n error: function error(_error) {\n _this.reportError(_error, variables);\n }\n };\n\n if (!useDisposableConcast) {\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n }\n\n this.concast = concast;\n this.observer = observer;\n }\n\n concast.addObserver(observer);\n return concast.promise;\n };\n\n ObservableQuery.prototype.observe = function () {\n this.reportResult(this.getCurrentResult(false), this.variables);\n };\n\n ObservableQuery.prototype.reportResult = function (result, variables) {\n var lastError = this.getLastError();\n\n if (lastError || this.isDifferentFromLastResult(result, variables)) {\n if (lastError || !result.partial || this.options.returnPartialData) {\n this.updateLastResult(result, variables);\n }\n\n iterateObserversSafely(this.observers, 'next', result);\n }\n };\n\n ObservableQuery.prototype.reportError = function (error, variables) {\n var errorResult = __assign(__assign({}, this.getLastResult()), {\n error: error,\n errors: error.graphQLErrors,\n networkStatus: NetworkStatus.error,\n loading: false\n });\n\n this.updateLastResult(errorResult, variables);\n iterateObserversSafely(this.observers, 'error', this.last.error = error);\n };\n\n ObservableQuery.prototype.hasObservers = function () {\n return this.observers.size > 0;\n };\n\n ObservableQuery.prototype.tearDownQuery = function () {\n if (this.isTornDown) return;\n\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n delete this.concast;\n delete this.observer;\n }\n\n this.stopPolling();\n this.subscriptions.forEach(function (sub) {\n return sub.unsubscribe();\n });\n this.subscriptions.clear();\n this.queryManager.stopQuery(this.queryId);\n this.observers.clear();\n this.isTornDown = true;\n };\n\n return ObservableQuery;\n}(Observable);\n\nexport { ObservableQuery };\nfixObservableSubclass(ObservableQuery);\nexport function reobserveCacheFirst(obsQuery) {\n var _a = obsQuery.options,\n fetchPolicy = _a.fetchPolicy,\n _nextFetchPolicy = _a.nextFetchPolicy;\n\n if (fetchPolicy === \"cache-and-network\" || fetchPolicy === \"network-only\") {\n return obsQuery.reobserve({\n fetchPolicy: \"cache-first\",\n nextFetchPolicy: function nextFetchPolicy() {\n this.nextFetchPolicy = _nextFetchPolicy;\n\n if (typeof _nextFetchPolicy === \"function\") {\n return _nextFetchPolicy.apply(this, arguments);\n }\n\n return fetchPolicy;\n }\n });\n }\n\n return obsQuery.reobserve();\n}\n\nfunction defaultSubscriptionObserverErrorCallback(error) {\n __DEV__ && invariant.error('Unhandled error', error.message, error.stack);\n}\n\nexport function logMissingFieldErrors(missing) {\n if (__DEV__ && missing) {\n __DEV__ && invariant.debug(\"Missing cache result fields: \".concat(JSON.stringify(missing)), missing);\n }\n}","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport { visit, BREAK } from 'graphql';\nimport { argumentsObjectFromField, buildQueryFromSelectionSet, createFragmentMap, getFragmentDefinitions, getMainDefinition, hasDirectives, isField, isInlineFragment, mergeDeep, mergeDeepArray, removeClientSetsFromDocument, resultKeyNameFromField, shouldInclude } from \"../utilities/index.js\";\nimport { cacheSlot } from \"../cache/index.js\";\n\nvar LocalState = function () {\n function LocalState(_a) {\n var cache = _a.cache,\n client = _a.client,\n resolvers = _a.resolvers,\n fragmentMatcher = _a.fragmentMatcher;\n this.cache = cache;\n\n if (client) {\n this.client = client;\n }\n\n if (resolvers) {\n this.addResolvers(resolvers);\n }\n\n if (fragmentMatcher) {\n this.setFragmentMatcher(fragmentMatcher);\n }\n }\n\n LocalState.prototype.addResolvers = function (resolvers) {\n var _this = this;\n\n this.resolvers = this.resolvers || {};\n\n if (Array.isArray(resolvers)) {\n resolvers.forEach(function (resolverGroup) {\n _this.resolvers = mergeDeep(_this.resolvers, resolverGroup);\n });\n } else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n };\n\n LocalState.prototype.setResolvers = function (resolvers) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n };\n\n LocalState.prototype.getResolvers = function () {\n return this.resolvers || {};\n };\n\n LocalState.prototype.runResolvers = function (_a) {\n var document = _a.document,\n remoteResult = _a.remoteResult,\n context = _a.context,\n variables = _a.variables,\n _b = _a.onlyRunForcedResolvers,\n onlyRunForcedResolvers = _b === void 0 ? false : _b;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_c) {\n if (document) {\n return [2, this.resolveDocument(document, remoteResult.data, context, variables, this.fragmentMatcher, onlyRunForcedResolvers).then(function (localResult) {\n return __assign(__assign({}, remoteResult), {\n data: localResult.result\n });\n })];\n }\n\n return [2, remoteResult];\n });\n });\n };\n\n LocalState.prototype.setFragmentMatcher = function (fragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n };\n\n LocalState.prototype.getFragmentMatcher = function () {\n return this.fragmentMatcher;\n };\n\n LocalState.prototype.clientQuery = function (document) {\n if (hasDirectives(['client'], document)) {\n if (this.resolvers) {\n return document;\n }\n }\n\n return null;\n };\n\n LocalState.prototype.serverQuery = function (document) {\n return removeClientSetsFromDocument(document);\n };\n\n LocalState.prototype.prepareContext = function (context) {\n var cache = this.cache;\n return __assign(__assign({}, context), {\n cache: cache,\n getCacheKey: function getCacheKey(obj) {\n return cache.identify(obj);\n }\n });\n };\n\n LocalState.prototype.addExportedVariables = function (document, variables, context) {\n if (variables === void 0) {\n variables = {};\n }\n\n if (context === void 0) {\n context = {};\n }\n\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (document) {\n return [2, this.resolveDocument(document, this.buildRootValueFromCache(document, variables) || {}, this.prepareContext(context), variables).then(function (data) {\n return __assign(__assign({}, variables), data.exportedVariables);\n })];\n }\n\n return [2, __assign({}, variables)];\n });\n });\n };\n\n LocalState.prototype.shouldForceResolvers = function (document) {\n var forceResolvers = false;\n visit(document, {\n Directive: {\n enter: function enter(node) {\n if (node.name.value === 'client' && node.arguments) {\n forceResolvers = node.arguments.some(function (arg) {\n return arg.name.value === 'always' && arg.value.kind === 'BooleanValue' && arg.value.value === true;\n });\n\n if (forceResolvers) {\n return BREAK;\n }\n }\n }\n }\n });\n return forceResolvers;\n };\n\n LocalState.prototype.buildRootValueFromCache = function (document, variables) {\n return this.cache.diff({\n query: buildQueryFromSelectionSet(document),\n variables: variables,\n returnPartialData: true,\n optimistic: false\n }).result;\n };\n\n LocalState.prototype.resolveDocument = function (document, rootValue, context, variables, fragmentMatcher, onlyRunForcedResolvers) {\n if (context === void 0) {\n context = {};\n }\n\n if (variables === void 0) {\n variables = {};\n }\n\n if (fragmentMatcher === void 0) {\n fragmentMatcher = function fragmentMatcher() {\n return true;\n };\n }\n\n if (onlyRunForcedResolvers === void 0) {\n onlyRunForcedResolvers = false;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var mainDefinition, fragments, fragmentMap, definitionOperation, defaultOperationType, _a, cache, client, execContext;\n\n return __generator(this, function (_b) {\n mainDefinition = getMainDefinition(document);\n fragments = getFragmentDefinitions(document);\n fragmentMap = createFragmentMap(fragments);\n definitionOperation = mainDefinition.operation;\n defaultOperationType = definitionOperation ? definitionOperation.charAt(0).toUpperCase() + definitionOperation.slice(1) : 'Query';\n _a = this, cache = _a.cache, client = _a.client;\n execContext = {\n fragmentMap: fragmentMap,\n context: __assign(__assign({}, context), {\n cache: cache,\n client: client\n }),\n variables: variables,\n fragmentMatcher: fragmentMatcher,\n defaultOperationType: defaultOperationType,\n exportedVariables: {},\n onlyRunForcedResolvers: onlyRunForcedResolvers\n };\n return [2, this.resolveSelectionSet(mainDefinition.selectionSet, rootValue, execContext).then(function (result) {\n return {\n result: result,\n exportedVariables: execContext.exportedVariables\n };\n })];\n });\n });\n };\n\n LocalState.prototype.resolveSelectionSet = function (selectionSet, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var fragmentMap, context, variables, resultsToMerge, execute;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n fragmentMap = execContext.fragmentMap, context = execContext.context, variables = execContext.variables;\n resultsToMerge = [rootValue];\n\n execute = function execute(selection) {\n return __awaiter(_this, void 0, void 0, function () {\n var fragment, typeCondition;\n return __generator(this, function (_a) {\n if (!shouldInclude(selection, variables)) {\n return [2];\n }\n\n if (isField(selection)) {\n return [2, this.resolveField(selection, rootValue, execContext).then(function (fieldResult) {\n var _a;\n\n if (typeof fieldResult !== 'undefined') {\n resultsToMerge.push((_a = {}, _a[resultKeyNameFromField(selection)] = fieldResult, _a));\n }\n })];\n }\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n fragment = fragmentMap[selection.name.value];\n __DEV__ ? invariant(fragment, \"No fragment named \".concat(selection.name.value)) : invariant(fragment, 11);\n }\n\n if (fragment && fragment.typeCondition) {\n typeCondition = fragment.typeCondition.name.value;\n\n if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n return [2, this.resolveSelectionSet(fragment.selectionSet, rootValue, execContext).then(function (fragmentResult) {\n resultsToMerge.push(fragmentResult);\n })];\n }\n }\n\n return [2];\n });\n });\n };\n\n return [2, Promise.all(selectionSet.selections.map(execute)).then(function () {\n return mergeDeepArray(resultsToMerge);\n })];\n });\n });\n };\n\n LocalState.prototype.resolveField = function (field, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var variables, fieldName, aliasedFieldName, aliasUsed, defaultResult, resultPromise, resolverType, resolverMap, resolve;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n variables = execContext.variables;\n fieldName = field.name.value;\n aliasedFieldName = resultKeyNameFromField(field);\n aliasUsed = fieldName !== aliasedFieldName;\n defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n resultPromise = Promise.resolve(defaultResult);\n\n if (!execContext.onlyRunForcedResolvers || this.shouldForceResolvers(field)) {\n resolverType = rootValue.__typename || execContext.defaultOperationType;\n resolverMap = this.resolvers && this.resolvers[resolverType];\n\n if (resolverMap) {\n resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n\n if (resolve) {\n resultPromise = Promise.resolve(cacheSlot.withValue(this.cache, resolve, [rootValue, argumentsObjectFromField(field, variables), execContext.context, {\n field: field,\n fragmentMap: execContext.fragmentMap\n }]));\n }\n }\n }\n\n return [2, resultPromise.then(function (result) {\n if (result === void 0) {\n result = defaultResult;\n }\n\n if (field.directives) {\n field.directives.forEach(function (directive) {\n if (directive.name.value === 'export' && directive.arguments) {\n directive.arguments.forEach(function (arg) {\n if (arg.name.value === 'as' && arg.value.kind === 'StringValue') {\n execContext.exportedVariables[arg.value.value] = result;\n }\n });\n }\n });\n }\n\n if (!field.selectionSet) {\n return result;\n }\n\n if (result == null) {\n return result;\n }\n\n if (Array.isArray(result)) {\n return _this.resolveSubSelectedArray(field, result, execContext);\n }\n\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, result, execContext);\n }\n })];\n });\n });\n };\n\n LocalState.prototype.resolveSubSelectedArray = function (field, result, execContext) {\n var _this = this;\n\n return Promise.all(result.map(function (item) {\n if (item === null) {\n return null;\n }\n\n if (Array.isArray(item)) {\n return _this.resolveSubSelectedArray(field, item, execContext);\n }\n\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, item, execContext);\n }\n }));\n };\n\n return LocalState;\n}();\n\nexport { LocalState };","import { __assign } from \"tslib\";\nimport { equal } from \"@wry/equality\";\nimport { DeepMerger } from \"../utilities/index.js\";\nimport { reobserveCacheFirst } from \"./ObservableQuery.js\";\nimport { isNonEmptyArray, graphQLResultHasError, canUseWeakMap } from \"../utilities/index.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\n;\nvar destructiveMethodCounts = new (canUseWeakMap ? WeakMap : Map)();\n\nfunction wrapDestructiveCacheMethod(cache, methodName) {\n var original = cache[methodName];\n\n if (typeof original === \"function\") {\n cache[methodName] = function () {\n destructiveMethodCounts.set(cache, (destructiveMethodCounts.get(cache) + 1) % 1e15);\n return original.apply(this, arguments);\n };\n }\n}\n\nfunction cancelNotifyTimeout(info) {\n if (info[\"notifyTimeout\"]) {\n clearTimeout(info[\"notifyTimeout\"]);\n info[\"notifyTimeout\"] = void 0;\n }\n}\n\nvar QueryInfo = function () {\n function QueryInfo(queryManager, queryId) {\n if (queryId === void 0) {\n queryId = queryManager.generateQueryId();\n }\n\n this.queryId = queryId;\n this.listeners = new Set();\n this.document = null;\n this.lastRequestId = 1;\n this.subscriptions = new Set();\n this.stopped = false;\n this.dirty = false;\n this.observableQuery = null;\n var cache = this.cache = queryManager.cache;\n\n if (!destructiveMethodCounts.has(cache)) {\n destructiveMethodCounts.set(cache, 0);\n wrapDestructiveCacheMethod(cache, \"evict\");\n wrapDestructiveCacheMethod(cache, \"modify\");\n wrapDestructiveCacheMethod(cache, \"reset\");\n }\n }\n\n QueryInfo.prototype.init = function (query) {\n var networkStatus = query.networkStatus || NetworkStatus.loading;\n\n if (this.variables && this.networkStatus !== NetworkStatus.loading && !equal(this.variables, query.variables)) {\n networkStatus = NetworkStatus.setVariables;\n }\n\n if (!equal(query.variables, this.variables)) {\n this.lastDiff = void 0;\n }\n\n Object.assign(this, {\n document: query.document,\n variables: query.variables,\n networkError: null,\n graphQLErrors: this.graphQLErrors || [],\n networkStatus: networkStatus\n });\n\n if (query.observableQuery) {\n this.setObservableQuery(query.observableQuery);\n }\n\n if (query.lastRequestId) {\n this.lastRequestId = query.lastRequestId;\n }\n\n return this;\n };\n\n QueryInfo.prototype.reset = function () {\n cancelNotifyTimeout(this);\n this.dirty = false;\n };\n\n QueryInfo.prototype.getDiff = function (variables) {\n if (variables === void 0) {\n variables = this.variables;\n }\n\n var options = this.getDiffOptions(variables);\n\n if (this.lastDiff && equal(options, this.lastDiff.options)) {\n return this.lastDiff.diff;\n }\n\n this.updateWatch(this.variables = variables);\n var oq = this.observableQuery;\n\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return {\n complete: false\n };\n }\n\n var diff = this.cache.diff(options);\n this.updateLastDiff(diff, options);\n return diff;\n };\n\n QueryInfo.prototype.updateLastDiff = function (diff, options) {\n this.lastDiff = diff ? {\n diff: diff,\n options: options || this.getDiffOptions()\n } : void 0;\n };\n\n QueryInfo.prototype.getDiffOptions = function (variables) {\n var _a;\n\n if (variables === void 0) {\n variables = this.variables;\n }\n\n return {\n query: this.document,\n variables: variables,\n returnPartialData: true,\n optimistic: true,\n canonizeResults: (_a = this.observableQuery) === null || _a === void 0 ? void 0 : _a.options.canonizeResults\n };\n };\n\n QueryInfo.prototype.setDiff = function (diff) {\n var _this = this;\n\n var oldDiff = this.lastDiff && this.lastDiff.diff;\n this.updateLastDiff(diff);\n\n if (!this.dirty && !equal(oldDiff && oldDiff.result, diff && diff.result)) {\n this.dirty = true;\n\n if (!this.notifyTimeout) {\n this.notifyTimeout = setTimeout(function () {\n return _this.notify();\n }, 0);\n }\n }\n };\n\n QueryInfo.prototype.setObservableQuery = function (oq) {\n var _this = this;\n\n if (oq === this.observableQuery) return;\n\n if (this.oqListener) {\n this.listeners.delete(this.oqListener);\n }\n\n this.observableQuery = oq;\n\n if (oq) {\n oq[\"queryInfo\"] = this;\n this.listeners.add(this.oqListener = function () {\n var diff = _this.getDiff();\n\n if (diff.fromOptimisticTransaction) {\n oq[\"observe\"]();\n } else {\n reobserveCacheFirst(oq);\n }\n });\n } else {\n delete this.oqListener;\n }\n };\n\n QueryInfo.prototype.notify = function () {\n var _this = this;\n\n cancelNotifyTimeout(this);\n\n if (this.shouldNotify()) {\n this.listeners.forEach(function (listener) {\n return listener(_this);\n });\n }\n\n this.dirty = false;\n };\n\n QueryInfo.prototype.shouldNotify = function () {\n if (!this.dirty || !this.listeners.size) {\n return false;\n }\n\n if (isNetworkRequestInFlight(this.networkStatus) && this.observableQuery) {\n var fetchPolicy = this.observableQuery.options.fetchPolicy;\n\n if (fetchPolicy !== \"cache-only\" && fetchPolicy !== \"cache-and-network\") {\n return false;\n }\n }\n\n return true;\n };\n\n QueryInfo.prototype.stop = function () {\n if (!this.stopped) {\n this.stopped = true;\n this.reset();\n this.cancel();\n this.cancel = QueryInfo.prototype.cancel;\n this.subscriptions.forEach(function (sub) {\n return sub.unsubscribe();\n });\n var oq = this.observableQuery;\n if (oq) oq.stopPolling();\n }\n };\n\n QueryInfo.prototype.cancel = function () {};\n\n QueryInfo.prototype.updateWatch = function (variables) {\n var _this = this;\n\n if (variables === void 0) {\n variables = this.variables;\n }\n\n var oq = this.observableQuery;\n\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return;\n }\n\n var watchOptions = __assign(__assign({}, this.getDiffOptions(variables)), {\n watcher: this,\n callback: function callback(diff) {\n return _this.setDiff(diff);\n }\n });\n\n if (!this.lastWatch || !equal(watchOptions, this.lastWatch)) {\n this.cancel();\n this.cancel = this.cache.watch(this.lastWatch = watchOptions);\n }\n };\n\n QueryInfo.prototype.resetLastWrite = function () {\n this.lastWrite = void 0;\n };\n\n QueryInfo.prototype.shouldWrite = function (result, variables) {\n var lastWrite = this.lastWrite;\n return !(lastWrite && lastWrite.dmCount === destructiveMethodCounts.get(this.cache) && equal(variables, lastWrite.variables) && equal(result.data, lastWrite.result.data));\n };\n\n QueryInfo.prototype.markResult = function (result, document, options, cacheWriteBehavior) {\n var _this = this;\n\n var graphQLErrors = isNonEmptyArray(result.errors) ? result.errors.slice(0) : [];\n this.reset();\n\n if ('incremental' in result && isNonEmptyArray(result.incremental)) {\n var mergedData_1 = this.getDiff().result;\n var merger_1 = new DeepMerger();\n result.incremental.forEach(function (_a) {\n var data = _a.data,\n path = _a.path,\n errors = _a.errors;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var key = path[i];\n var isNumericKey = !isNaN(+key);\n var parent_1 = isNumericKey ? [] : {};\n parent_1[key] = data;\n data = parent_1;\n }\n\n if (errors) {\n graphQLErrors.push.apply(graphQLErrors, errors);\n }\n\n mergedData_1 = merger_1.merge(mergedData_1, data);\n });\n result.data = mergedData_1;\n }\n\n this.graphQLErrors = graphQLErrors;\n\n if (options.fetchPolicy === 'no-cache') {\n this.updateLastDiff({\n result: result.data,\n complete: true\n }, this.getDiffOptions(options.variables));\n } else if (cacheWriteBehavior !== 0) {\n if (shouldWriteResult(result, options.errorPolicy)) {\n this.cache.performTransaction(function (cache) {\n if (_this.shouldWrite(result, options.variables)) {\n cache.writeQuery({\n query: document,\n data: result.data,\n variables: options.variables,\n overwrite: cacheWriteBehavior === 1\n });\n _this.lastWrite = {\n result: result,\n variables: options.variables,\n dmCount: destructiveMethodCounts.get(_this.cache)\n };\n } else {\n if (_this.lastDiff && _this.lastDiff.diff.complete) {\n result.data = _this.lastDiff.diff.result;\n return;\n }\n }\n\n var diffOptions = _this.getDiffOptions(options.variables);\n\n var diff = cache.diff(diffOptions);\n\n if (!_this.stopped) {\n _this.updateWatch(options.variables);\n }\n\n _this.updateLastDiff(diff, diffOptions);\n\n if (diff.complete) {\n result.data = diff.result;\n }\n });\n } else {\n this.lastWrite = void 0;\n }\n }\n };\n\n QueryInfo.prototype.markReady = function () {\n this.networkError = null;\n return this.networkStatus = NetworkStatus.ready;\n };\n\n QueryInfo.prototype.markError = function (error) {\n this.networkStatus = NetworkStatus.error;\n this.lastWrite = void 0;\n this.reset();\n\n if (error.graphQLErrors) {\n this.graphQLErrors = error.graphQLErrors;\n }\n\n if (error.networkError) {\n this.networkError = error.networkError;\n }\n\n return error;\n };\n\n return QueryInfo;\n}();\n\nexport { QueryInfo };\nexport function shouldWriteResult(result, errorPolicy) {\n if (errorPolicy === void 0) {\n errorPolicy = \"none\";\n }\n\n var ignoreErrors = errorPolicy === \"ignore\" || errorPolicy === \"all\";\n var writeWithErrors = !graphQLResultHasError(result);\n\n if (!writeWithErrors && ignoreErrors && result.data) {\n writeWithErrors = true;\n }\n\n return writeWithErrors;\n}","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { invariant, InvariantError } from \"../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { execute } from \"../link/core/index.js\";\nimport { isExecutionPatchIncrementalResult } from \"../utilities/common/incrementalResult.js\";\nimport { canonicalStringify } from \"../cache/index.js\";\nimport { getDefaultValues, getOperationDefinition, getOperationName, hasClientExports, graphQLResultHasError, removeConnectionDirectiveFromDocument, canUseWeakMap, Observable, asyncMap, isNonEmptyArray, Concast, makeUniqueId, isDocumentNode, isNonNullObject, cloneDeep } from \"../utilities/index.js\";\nimport { ApolloError, isApolloError } from \"../errors/index.js\";\nimport { ObservableQuery, logMissingFieldErrors } from \"./ObservableQuery.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { LocalState } from \"./LocalState.js\";\nimport { QueryInfo, shouldWriteResult } from \"./QueryInfo.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar QueryManager = function () {\n function QueryManager(_a) {\n var cache = _a.cache,\n link = _a.link,\n defaultOptions = _a.defaultOptions,\n _b = _a.queryDeduplication,\n queryDeduplication = _b === void 0 ? false : _b,\n onBroadcast = _a.onBroadcast,\n _c = _a.ssrMode,\n ssrMode = _c === void 0 ? false : _c,\n _d = _a.clientAwareness,\n clientAwareness = _d === void 0 ? {} : _d,\n localState = _a.localState,\n assumeImmutableResults = _a.assumeImmutableResults;\n this.clientAwareness = {};\n this.queries = new Map();\n this.fetchCancelFns = new Map();\n this.transformCache = new (canUseWeakMap ? WeakMap : Map)();\n this.queryIdCounter = 1;\n this.requestIdCounter = 1;\n this.mutationIdCounter = 1;\n this.inFlightLinkObservables = new Map();\n this.cache = cache;\n this.link = link;\n this.defaultOptions = defaultOptions || Object.create(null);\n this.queryDeduplication = queryDeduplication;\n this.clientAwareness = clientAwareness;\n this.localState = localState || new LocalState({\n cache: cache\n });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n\n if (this.onBroadcast = onBroadcast) {\n this.mutationStore = Object.create(null);\n }\n }\n\n QueryManager.prototype.stop = function () {\n var _this = this;\n\n this.queries.forEach(function (_info, queryId) {\n _this.stopQueryNoBroadcast(queryId);\n });\n this.cancelPendingFetches(__DEV__ ? new InvariantError('QueryManager stopped while query was in flight') : new InvariantError(13));\n };\n\n QueryManager.prototype.cancelPendingFetches = function (error) {\n this.fetchCancelFns.forEach(function (cancel) {\n return cancel(error);\n });\n this.fetchCancelFns.clear();\n };\n\n QueryManager.prototype.mutate = function (_a) {\n var _b, _c;\n\n var mutation = _a.mutation,\n variables = _a.variables,\n optimisticResponse = _a.optimisticResponse,\n updateQueries = _a.updateQueries,\n _d = _a.refetchQueries,\n refetchQueries = _d === void 0 ? [] : _d,\n _e = _a.awaitRefetchQueries,\n awaitRefetchQueries = _e === void 0 ? false : _e,\n updateWithProxyFn = _a.update,\n onQueryUpdated = _a.onQueryUpdated,\n _f = _a.fetchPolicy,\n fetchPolicy = _f === void 0 ? ((_b = this.defaultOptions.mutate) === null || _b === void 0 ? void 0 : _b.fetchPolicy) || \"network-only\" : _f,\n _g = _a.errorPolicy,\n errorPolicy = _g === void 0 ? ((_c = this.defaultOptions.mutate) === null || _c === void 0 ? void 0 : _c.errorPolicy) || \"none\" : _g,\n keepRootFields = _a.keepRootFields,\n context = _a.context;\n return __awaiter(this, void 0, void 0, function () {\n var mutationId, _h, document, hasClientExports, mutationStoreValue, self;\n\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n __DEV__ ? invariant(mutation, 'mutation option is required. You must specify your GraphQL document in the mutation option.') : invariant(mutation, 14);\n __DEV__ ? invariant(fetchPolicy === 'network-only' || fetchPolicy === 'no-cache', \"Mutations support only 'network-only' or 'no-cache' fetchPolicy strings. The default `network-only` behavior automatically writes mutation results to the cache. Passing `no-cache` skips the cache write.\") : invariant(fetchPolicy === 'network-only' || fetchPolicy === 'no-cache', 15);\n mutationId = this.generateMutationId();\n _h = this.transform(mutation), document = _h.document, hasClientExports = _h.hasClientExports;\n mutation = this.cache.transformForLink(document);\n variables = this.getVariables(mutation, variables);\n if (!hasClientExports) return [3, 2];\n return [4, this.localState.addExportedVariables(mutation, variables, context)];\n\n case 1:\n variables = _j.sent();\n _j.label = 2;\n\n case 2:\n mutationStoreValue = this.mutationStore && (this.mutationStore[mutationId] = {\n mutation: mutation,\n variables: variables,\n loading: true,\n error: null\n });\n\n if (optimisticResponse) {\n this.markMutationOptimistic(optimisticResponse, {\n mutationId: mutationId,\n document: mutation,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n context: context,\n updateQueries: updateQueries,\n update: updateWithProxyFn,\n keepRootFields: keepRootFields\n });\n }\n\n this.broadcastQueries();\n self = this;\n return [2, new Promise(function (resolve, reject) {\n return asyncMap(self.getObservableFromLink(mutation, __assign(__assign({}, context), {\n optimisticResponse: optimisticResponse\n }), variables, false), function (result) {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n throw new ApolloError({\n graphQLErrors: result.errors\n });\n }\n\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = null;\n }\n\n var storeResult = __assign({}, result);\n\n if (typeof refetchQueries === \"function\") {\n refetchQueries = refetchQueries(storeResult);\n }\n\n if (errorPolicy === 'ignore' && graphQLResultHasError(storeResult)) {\n delete storeResult.errors;\n }\n\n return self.markMutationResult({\n mutationId: mutationId,\n result: storeResult,\n document: mutation,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n context: context,\n update: updateWithProxyFn,\n updateQueries: updateQueries,\n awaitRefetchQueries: awaitRefetchQueries,\n refetchQueries: refetchQueries,\n removeOptimistic: optimisticResponse ? mutationId : void 0,\n onQueryUpdated: onQueryUpdated,\n keepRootFields: keepRootFields\n });\n }).subscribe({\n next: function next(storeResult) {\n self.broadcastQueries();\n resolve(storeResult);\n },\n error: function error(err) {\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = err;\n }\n\n if (optimisticResponse) {\n self.cache.removeOptimistic(mutationId);\n }\n\n self.broadcastQueries();\n reject(err instanceof ApolloError ? err : new ApolloError({\n networkError: err\n }));\n }\n });\n })];\n }\n });\n });\n };\n\n QueryManager.prototype.markMutationResult = function (mutation, cache) {\n var _this = this;\n\n if (cache === void 0) {\n cache = this.cache;\n }\n\n var result = mutation.result;\n var cacheWrites = [];\n var skipCache = mutation.fetchPolicy === \"no-cache\";\n\n if (!skipCache && shouldWriteResult(result, mutation.errorPolicy)) {\n cacheWrites.push({\n result: result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables\n });\n var updateQueries_1 = mutation.updateQueries;\n\n if (updateQueries_1) {\n this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n var queryName = observableQuery && observableQuery.queryName;\n\n if (!queryName || !hasOwnProperty.call(updateQueries_1, queryName)) {\n return;\n }\n\n var updater = updateQueries_1[queryName];\n\n var _b = _this.queries.get(queryId),\n document = _b.document,\n variables = _b.variables;\n\n var _c = cache.diff({\n query: document,\n variables: variables,\n returnPartialData: true,\n optimistic: false\n }),\n currentQueryResult = _c.result,\n complete = _c.complete;\n\n if (complete && currentQueryResult) {\n var nextQueryResult = updater(currentQueryResult, {\n mutationResult: result,\n queryName: document && getOperationName(document) || void 0,\n queryVariables: variables\n });\n\n if (nextQueryResult) {\n cacheWrites.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: document,\n variables: variables\n });\n }\n }\n });\n }\n }\n\n if (cacheWrites.length > 0 || mutation.refetchQueries || mutation.update || mutation.onQueryUpdated || mutation.removeOptimistic) {\n var results_1 = [];\n this.refetchQueries({\n updateCache: function updateCache(cache) {\n if (!skipCache) {\n cacheWrites.forEach(function (write) {\n return cache.write(write);\n });\n }\n\n var update = mutation.update;\n\n if (update) {\n if (!skipCache) {\n var diff = cache.diff({\n id: \"ROOT_MUTATION\",\n query: _this.transform(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true\n });\n\n if (diff.complete && !isExecutionPatchIncrementalResult(result)) {\n result = __assign(__assign({}, result), {\n data: diff.result\n });\n }\n }\n\n update(cache, result, {\n context: mutation.context,\n variables: mutation.variables\n });\n }\n\n if (!skipCache && !mutation.keepRootFields) {\n cache.modify({\n id: 'ROOT_MUTATION',\n fields: function fields(value, _a) {\n var fieldName = _a.fieldName,\n DELETE = _a.DELETE;\n return fieldName === \"__typename\" ? value : DELETE;\n }\n });\n }\n },\n include: mutation.refetchQueries,\n optimistic: false,\n removeOptimistic: mutation.removeOptimistic,\n onQueryUpdated: mutation.onQueryUpdated || null\n }).forEach(function (result) {\n return results_1.push(result);\n });\n\n if (mutation.awaitRefetchQueries || mutation.onQueryUpdated) {\n return Promise.all(results_1).then(function () {\n return result;\n });\n }\n }\n\n return Promise.resolve(result);\n };\n\n QueryManager.prototype.markMutationOptimistic = function (optimisticResponse, mutation) {\n var _this = this;\n\n var data = typeof optimisticResponse === \"function\" ? optimisticResponse(mutation.variables) : optimisticResponse;\n return this.cache.recordOptimisticTransaction(function (cache) {\n try {\n _this.markMutationResult(__assign(__assign({}, mutation), {\n result: {\n data: data\n }\n }), cache);\n } catch (error) {\n __DEV__ && invariant.error(error);\n }\n }, mutation.mutationId);\n };\n\n QueryManager.prototype.fetchQuery = function (queryId, options, networkStatus) {\n return this.fetchQueryObservable(queryId, options, networkStatus).promise;\n };\n\n QueryManager.prototype.getQueryStore = function () {\n var store = Object.create(null);\n this.queries.forEach(function (info, queryId) {\n store[queryId] = {\n variables: info.variables,\n networkStatus: info.networkStatus,\n networkError: info.networkError,\n graphQLErrors: info.graphQLErrors\n };\n });\n return store;\n };\n\n QueryManager.prototype.resetErrors = function (queryId) {\n var queryInfo = this.queries.get(queryId);\n\n if (queryInfo) {\n queryInfo.networkError = undefined;\n queryInfo.graphQLErrors = [];\n }\n };\n\n QueryManager.prototype.transform = function (document) {\n var transformCache = this.transformCache;\n\n if (!transformCache.has(document)) {\n var transformed = this.cache.transformDocument(document);\n var noConnection = removeConnectionDirectiveFromDocument(transformed);\n var clientQuery = this.localState.clientQuery(transformed);\n var serverQuery = noConnection && this.localState.serverQuery(noConnection);\n var cacheEntry_1 = {\n document: transformed,\n hasClientExports: hasClientExports(transformed),\n hasForcedResolvers: this.localState.shouldForceResolvers(transformed),\n clientQuery: clientQuery,\n serverQuery: serverQuery,\n defaultVars: getDefaultValues(getOperationDefinition(transformed)),\n asQuery: __assign(__assign({}, transformed), {\n definitions: transformed.definitions.map(function (def) {\n if (def.kind === \"OperationDefinition\" && def.operation !== \"query\") {\n return __assign(__assign({}, def), {\n operation: \"query\"\n });\n }\n\n return def;\n })\n })\n };\n\n var add = function add(doc) {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry_1);\n }\n };\n\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n\n return transformCache.get(document);\n };\n\n QueryManager.prototype.getVariables = function (document, variables) {\n return __assign(__assign({}, this.transform(document).defaultVars), variables);\n };\n\n QueryManager.prototype.watchQuery = function (options) {\n options = __assign(__assign({}, options), {\n variables: this.getVariables(options.query, options.variables)\n });\n\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n\n var queryInfo = new QueryInfo(this);\n var observable = new ObservableQuery({\n queryManager: this,\n queryInfo: queryInfo,\n options: options\n });\n this.queries.set(observable.queryId, queryInfo);\n queryInfo.init({\n document: observable.query,\n observableQuery: observable,\n variables: observable.variables\n });\n return observable;\n };\n\n QueryManager.prototype.query = function (options, queryId) {\n var _this = this;\n\n if (queryId === void 0) {\n queryId = this.generateQueryId();\n }\n\n __DEV__ ? invariant(options.query, 'query option is required. You must specify your GraphQL document ' + 'in the query option.') : invariant(options.query, 16);\n __DEV__ ? invariant(options.query.kind === 'Document', 'You must wrap the query string in a \"gql\" tag.') : invariant(options.query.kind === 'Document', 17);\n __DEV__ ? invariant(!options.returnPartialData, 'returnPartialData option only supported on watchQuery.') : invariant(!options.returnPartialData, 18);\n __DEV__ ? invariant(!options.pollInterval, 'pollInterval option only supported on watchQuery.') : invariant(!options.pollInterval, 19);\n return this.fetchQuery(queryId, options).finally(function () {\n return _this.stopQuery(queryId);\n });\n };\n\n QueryManager.prototype.generateQueryId = function () {\n return String(this.queryIdCounter++);\n };\n\n QueryManager.prototype.generateRequestId = function () {\n return this.requestIdCounter++;\n };\n\n QueryManager.prototype.generateMutationId = function () {\n return String(this.mutationIdCounter++);\n };\n\n QueryManager.prototype.stopQueryInStore = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n };\n\n QueryManager.prototype.stopQueryInStoreNoBroadcast = function (queryId) {\n var queryInfo = this.queries.get(queryId);\n if (queryInfo) queryInfo.stop();\n };\n\n QueryManager.prototype.clearStore = function (options) {\n if (options === void 0) {\n options = {\n discardWatches: true\n };\n }\n\n this.cancelPendingFetches(__DEV__ ? new InvariantError('Store reset while query was in flight (not completed in link chain)') : new InvariantError(20));\n this.queries.forEach(function (queryInfo) {\n if (queryInfo.observableQuery) {\n queryInfo.networkStatus = NetworkStatus.loading;\n } else {\n queryInfo.stop();\n }\n });\n\n if (this.mutationStore) {\n this.mutationStore = Object.create(null);\n }\n\n return this.cache.reset(options);\n };\n\n QueryManager.prototype.getObservableQueries = function (include) {\n var _this = this;\n\n if (include === void 0) {\n include = \"active\";\n }\n\n var queries = new Map();\n var queryNamesAndDocs = new Map();\n var legacyQueryOptions = new Set();\n\n if (Array.isArray(include)) {\n include.forEach(function (desc) {\n if (typeof desc === \"string\") {\n queryNamesAndDocs.set(desc, false);\n } else if (isDocumentNode(desc)) {\n queryNamesAndDocs.set(_this.transform(desc).document, false);\n } else if (isNonNullObject(desc) && desc.query) {\n legacyQueryOptions.add(desc);\n }\n });\n }\n\n this.queries.forEach(function (_a, queryId) {\n var oq = _a.observableQuery,\n document = _a.document;\n\n if (oq) {\n if (include === \"all\") {\n queries.set(queryId, oq);\n return;\n }\n\n var queryName = oq.queryName,\n fetchPolicy = oq.options.fetchPolicy;\n\n if (fetchPolicy === \"standby\" || include === \"active\" && !oq.hasObservers()) {\n return;\n }\n\n if (include === \"active\" || queryName && queryNamesAndDocs.has(queryName) || document && queryNamesAndDocs.has(document)) {\n queries.set(queryId, oq);\n if (queryName) queryNamesAndDocs.set(queryName, true);\n if (document) queryNamesAndDocs.set(document, true);\n }\n }\n });\n\n if (legacyQueryOptions.size) {\n legacyQueryOptions.forEach(function (options) {\n var queryId = makeUniqueId(\"legacyOneTimeQuery\");\n\n var queryInfo = _this.getQuery(queryId).init({\n document: options.query,\n variables: options.variables\n });\n\n var oq = new ObservableQuery({\n queryManager: _this,\n queryInfo: queryInfo,\n options: __assign(__assign({}, options), {\n fetchPolicy: \"network-only\"\n })\n });\n invariant(oq.queryId === queryId);\n queryInfo.setObservableQuery(oq);\n queries.set(queryId, oq);\n });\n }\n\n if (__DEV__ && queryNamesAndDocs.size) {\n queryNamesAndDocs.forEach(function (included, nameOrDoc) {\n if (!included) {\n __DEV__ && invariant.warn(\"Unknown query \".concat(typeof nameOrDoc === \"string\" ? \"named \" : \"\").concat(JSON.stringify(nameOrDoc, null, 2), \" requested in refetchQueries options.include array\"));\n }\n });\n }\n\n return queries;\n };\n\n QueryManager.prototype.reFetchObservableQueries = function (includeStandby) {\n var _this = this;\n\n if (includeStandby === void 0) {\n includeStandby = false;\n }\n\n var observableQueryPromises = [];\n this.getObservableQueries(includeStandby ? \"all\" : \"active\").forEach(function (observableQuery, queryId) {\n var fetchPolicy = observableQuery.options.fetchPolicy;\n observableQuery.resetLastResults();\n\n if (includeStandby || fetchPolicy !== \"standby\" && fetchPolicy !== \"cache-only\") {\n observableQueryPromises.push(observableQuery.refetch());\n }\n\n _this.getQuery(queryId).setDiff(null);\n });\n this.broadcastQueries();\n return Promise.all(observableQueryPromises);\n };\n\n QueryManager.prototype.setObservableQuery = function (observableQuery) {\n this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery);\n };\n\n QueryManager.prototype.startGraphQLSubscription = function (_a) {\n var _this = this;\n\n var query = _a.query,\n fetchPolicy = _a.fetchPolicy,\n errorPolicy = _a.errorPolicy,\n variables = _a.variables,\n _b = _a.context,\n context = _b === void 0 ? {} : _b;\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n\n var makeObservable = function makeObservable(variables) {\n return _this.getObservableFromLink(query, context, variables).map(function (result) {\n if (fetchPolicy !== 'no-cache') {\n if (shouldWriteResult(result, errorPolicy)) {\n _this.cache.write({\n query: query,\n result: result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n variables: variables\n });\n }\n\n _this.broadcastQueries();\n }\n\n if (graphQLResultHasError(result)) {\n throw new ApolloError({\n graphQLErrors: result.errors\n });\n }\n\n return result;\n });\n };\n\n if (this.transform(query).hasClientExports) {\n var observablePromise_1 = this.localState.addExportedVariables(query, variables, context).then(makeObservable);\n return new Observable(function (observer) {\n var sub = null;\n observablePromise_1.then(function (observable) {\n return sub = observable.subscribe(observer);\n }, observer.error);\n return function () {\n return sub && sub.unsubscribe();\n };\n });\n }\n\n return makeObservable(variables);\n };\n\n QueryManager.prototype.stopQuery = function (queryId) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n };\n\n QueryManager.prototype.stopQueryNoBroadcast = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n };\n\n QueryManager.prototype.removeQuery = function (queryId) {\n this.fetchCancelFns.delete(queryId);\n\n if (this.queries.has(queryId)) {\n this.getQuery(queryId).stop();\n this.queries.delete(queryId);\n }\n };\n\n QueryManager.prototype.broadcastQueries = function () {\n if (this.onBroadcast) this.onBroadcast();\n this.queries.forEach(function (info) {\n return info.notify();\n });\n };\n\n QueryManager.prototype.getLocalState = function () {\n return this.localState;\n };\n\n QueryManager.prototype.getObservableFromLink = function (query, context, variables, deduplication) {\n var _this = this;\n\n var _a;\n\n if (deduplication === void 0) {\n deduplication = (_a = context === null || context === void 0 ? void 0 : context.queryDeduplication) !== null && _a !== void 0 ? _a : this.queryDeduplication;\n }\n\n var observable;\n var serverQuery = this.transform(query).serverQuery;\n\n if (serverQuery) {\n var _b = this,\n inFlightLinkObservables_1 = _b.inFlightLinkObservables,\n link = _b.link;\n\n var operation = {\n query: serverQuery,\n variables: variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext(__assign(__assign({}, context), {\n forceFetch: !deduplication\n }))\n };\n context = operation.context;\n\n if (deduplication) {\n var byVariables_1 = inFlightLinkObservables_1.get(serverQuery) || new Map();\n inFlightLinkObservables_1.set(serverQuery, byVariables_1);\n var varJson_1 = canonicalStringify(variables);\n observable = byVariables_1.get(varJson_1);\n\n if (!observable) {\n var concast = new Concast([execute(link, operation)]);\n byVariables_1.set(varJson_1, observable = concast);\n concast.beforeNext(function () {\n if (byVariables_1.delete(varJson_1) && byVariables_1.size < 1) {\n inFlightLinkObservables_1.delete(serverQuery);\n }\n });\n }\n } else {\n observable = new Concast([execute(link, operation)]);\n }\n } else {\n observable = new Concast([Observable.of({\n data: {}\n })]);\n context = this.prepareContext(context);\n }\n\n var clientQuery = this.transform(query).clientQuery;\n\n if (clientQuery) {\n observable = asyncMap(observable, function (result) {\n return _this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context: context,\n variables: variables\n });\n });\n }\n\n return observable;\n };\n\n QueryManager.prototype.getResultsFromLink = function (queryInfo, cacheWriteBehavior, options) {\n var requestId = queryInfo.lastRequestId = this.generateRequestId();\n options = cloneDeep(options);\n var linkDocument = this.cache.transformForLink(this.transform(queryInfo.document).document);\n return asyncMap(this.getObservableFromLink(linkDocument, options.context, options.variables), function (result) {\n var graphQLErrors = isNonEmptyArray(result.errors) ? result.errors.slice(0) : [];\n\n if ('incremental' in result && isNonEmptyArray(result.incremental)) {\n result.incremental.forEach(function (incrementalResult) {\n if (incrementalResult.errors) {\n graphQLErrors.push.apply(graphQLErrors, incrementalResult.errors);\n }\n });\n }\n\n var hasErrors = isNonEmptyArray(graphQLErrors);\n\n if (requestId >= queryInfo.lastRequestId) {\n if (hasErrors && options.errorPolicy === \"none\") {\n throw queryInfo.markError(new ApolloError({\n graphQLErrors: graphQLErrors\n }));\n }\n\n queryInfo.markResult(result, linkDocument, options, cacheWriteBehavior);\n queryInfo.markReady();\n }\n\n var aqr = {\n data: result.data,\n loading: false,\n networkStatus: NetworkStatus.ready\n };\n\n if (hasErrors && options.errorPolicy !== \"ignore\") {\n aqr.errors = graphQLErrors;\n aqr.networkStatus = NetworkStatus.error;\n }\n\n return aqr;\n }, function (networkError) {\n var error = isApolloError(networkError) ? networkError : new ApolloError({\n networkError: networkError\n });\n\n if (requestId >= queryInfo.lastRequestId) {\n queryInfo.markError(error);\n }\n\n throw error;\n });\n };\n\n QueryManager.prototype.fetchQueryObservable = function (queryId, options, networkStatus) {\n var _this = this;\n\n if (networkStatus === void 0) {\n networkStatus = NetworkStatus.loading;\n }\n\n var query = this.transform(options.query).document;\n var variables = this.getVariables(query, options.variables);\n var queryInfo = this.getQuery(queryId);\n var defaults = this.defaultOptions.watchQuery;\n var _a = options.fetchPolicy,\n fetchPolicy = _a === void 0 ? defaults && defaults.fetchPolicy || \"cache-first\" : _a,\n _b = options.errorPolicy,\n errorPolicy = _b === void 0 ? defaults && defaults.errorPolicy || \"none\" : _b,\n _c = options.returnPartialData,\n returnPartialData = _c === void 0 ? false : _c,\n _d = options.notifyOnNetworkStatusChange,\n notifyOnNetworkStatusChange = _d === void 0 ? false : _d,\n _e = options.context,\n context = _e === void 0 ? {} : _e;\n var normalized = Object.assign({}, options, {\n query: query,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n returnPartialData: returnPartialData,\n notifyOnNetworkStatusChange: notifyOnNetworkStatusChange,\n context: context\n });\n\n var fromVariables = function fromVariables(variables) {\n normalized.variables = variables;\n\n var concastSources = _this.fetchQueryByPolicy(queryInfo, normalized, networkStatus);\n\n if (normalized.fetchPolicy !== \"standby\" && concastSources.length > 0 && queryInfo.observableQuery) {\n queryInfo.observableQuery[\"applyNextFetchPolicy\"](\"after-fetch\", options);\n }\n\n return concastSources;\n };\n\n var cleanupCancelFn = function cleanupCancelFn() {\n return _this.fetchCancelFns.delete(queryId);\n };\n\n this.fetchCancelFns.set(queryId, function (reason) {\n cleanupCancelFn();\n setTimeout(function () {\n return concast.cancel(reason);\n });\n });\n var concast = new Concast(this.transform(normalized.query).hasClientExports ? this.localState.addExportedVariables(normalized.query, normalized.variables, normalized.context).then(fromVariables) : fromVariables(normalized.variables));\n concast.promise.then(cleanupCancelFn, cleanupCancelFn);\n return concast;\n };\n\n QueryManager.prototype.refetchQueries = function (_a) {\n var _this = this;\n\n var updateCache = _a.updateCache,\n include = _a.include,\n _b = _a.optimistic,\n optimistic = _b === void 0 ? false : _b,\n _c = _a.removeOptimistic,\n removeOptimistic = _c === void 0 ? optimistic ? makeUniqueId(\"refetchQueries\") : void 0 : _c,\n onQueryUpdated = _a.onQueryUpdated;\n var includedQueriesById = new Map();\n\n if (include) {\n this.getObservableQueries(include).forEach(function (oq, queryId) {\n includedQueriesById.set(queryId, {\n oq: oq,\n lastDiff: _this.getQuery(queryId).getDiff()\n });\n });\n }\n\n var results = new Map();\n\n if (updateCache) {\n this.cache.batch({\n update: updateCache,\n optimistic: optimistic && removeOptimistic || false,\n removeOptimistic: removeOptimistic,\n onWatchUpdated: function onWatchUpdated(watch, diff, lastDiff) {\n var oq = watch.watcher instanceof QueryInfo && watch.watcher.observableQuery;\n\n if (oq) {\n if (onQueryUpdated) {\n includedQueriesById.delete(oq.queryId);\n var result = onQueryUpdated(oq, diff, lastDiff);\n\n if (result === true) {\n result = oq.refetch();\n }\n\n if (result !== false) {\n results.set(oq, result);\n }\n\n return result;\n }\n\n if (onQueryUpdated !== null) {\n includedQueriesById.set(oq.queryId, {\n oq: oq,\n lastDiff: lastDiff,\n diff: diff\n });\n }\n }\n }\n });\n }\n\n if (includedQueriesById.size) {\n includedQueriesById.forEach(function (_a, queryId) {\n var oq = _a.oq,\n lastDiff = _a.lastDiff,\n diff = _a.diff;\n var result;\n\n if (onQueryUpdated) {\n if (!diff) {\n var info = oq[\"queryInfo\"];\n info.reset();\n diff = info.getDiff();\n }\n\n result = onQueryUpdated(oq, diff, lastDiff);\n }\n\n if (!onQueryUpdated || result === true) {\n result = oq.refetch();\n }\n\n if (result !== false) {\n results.set(oq, result);\n }\n\n if (queryId.indexOf(\"legacyOneTimeQuery\") >= 0) {\n _this.stopQueryNoBroadcast(queryId);\n }\n });\n }\n\n if (removeOptimistic) {\n this.cache.removeOptimistic(removeOptimistic);\n }\n\n return results;\n };\n\n QueryManager.prototype.fetchQueryByPolicy = function (queryInfo, _a, networkStatus) {\n var _this = this;\n\n var query = _a.query,\n variables = _a.variables,\n fetchPolicy = _a.fetchPolicy,\n refetchWritePolicy = _a.refetchWritePolicy,\n errorPolicy = _a.errorPolicy,\n returnPartialData = _a.returnPartialData,\n context = _a.context,\n notifyOnNetworkStatusChange = _a.notifyOnNetworkStatusChange;\n var oldNetworkStatus = queryInfo.networkStatus;\n queryInfo.init({\n document: this.transform(query).document,\n variables: variables,\n networkStatus: networkStatus\n });\n\n var readCache = function readCache() {\n return queryInfo.getDiff(variables);\n };\n\n var resultsFromCache = function resultsFromCache(diff, networkStatus) {\n if (networkStatus === void 0) {\n networkStatus = queryInfo.networkStatus || NetworkStatus.loading;\n }\n\n var data = diff.result;\n\n if (__DEV__ && !returnPartialData && !equal(data, {})) {\n logMissingFieldErrors(diff.missing);\n }\n\n var fromData = function fromData(data) {\n return Observable.of(__assign({\n data: data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus: networkStatus\n }, diff.complete ? null : {\n partial: true\n }));\n };\n\n if (data && _this.transform(query).hasForcedResolvers) {\n return _this.localState.runResolvers({\n document: query,\n remoteResult: {\n data: data\n },\n context: context,\n variables: variables,\n onlyRunForcedResolvers: true\n }).then(function (resolved) {\n return fromData(resolved.data || void 0);\n });\n }\n\n return fromData(data);\n };\n\n var cacheWriteBehavior = fetchPolicy === \"no-cache\" ? 0 : networkStatus === NetworkStatus.refetch && refetchWritePolicy !== \"merge\" ? 1 : 2;\n\n var resultsFromLink = function resultsFromLink() {\n return _this.getResultsFromLink(queryInfo, cacheWriteBehavior, {\n variables: variables,\n context: context,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy\n });\n };\n\n var shouldNotify = notifyOnNetworkStatusChange && typeof oldNetworkStatus === \"number\" && oldNetworkStatus !== networkStatus && isNetworkRequestInFlight(networkStatus);\n\n switch (fetchPolicy) {\n default:\n case \"cache-first\":\n {\n var diff = readCache();\n\n if (diff.complete) {\n return [resultsFromCache(diff, queryInfo.markReady())];\n }\n\n if (returnPartialData || shouldNotify) {\n return [resultsFromCache(diff), resultsFromLink()];\n }\n\n return [resultsFromLink()];\n }\n\n case \"cache-and-network\":\n {\n var diff = readCache();\n\n if (diff.complete || returnPartialData || shouldNotify) {\n return [resultsFromCache(diff), resultsFromLink()];\n }\n\n return [resultsFromLink()];\n }\n\n case \"cache-only\":\n return [resultsFromCache(readCache(), queryInfo.markReady())];\n\n case \"network-only\":\n if (shouldNotify) {\n return [resultsFromCache(readCache()), resultsFromLink()];\n }\n\n return [resultsFromLink()];\n\n case \"no-cache\":\n if (shouldNotify) {\n return [resultsFromCache(queryInfo.getDiff()), resultsFromLink()];\n }\n\n return [resultsFromLink()];\n\n case \"standby\":\n return [];\n }\n };\n\n QueryManager.prototype.getQuery = function (queryId) {\n if (queryId && !this.queries.has(queryId)) {\n this.queries.set(queryId, new QueryInfo(this, queryId));\n }\n\n return this.queries.get(queryId);\n };\n\n QueryManager.prototype.prepareContext = function (context) {\n if (context === void 0) {\n context = {};\n }\n\n var newContext = this.localState.prepareContext(context);\n return __assign(__assign({}, newContext), {\n clientAwareness: this.clientAwareness\n });\n };\n\n return QueryManager;\n}();\n\nexport { QueryManager };","import { __assign, __extends, __rest } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { dep } from 'optimism';\nimport { equal } from '@wry/equality';\nimport { Trie } from '@wry/trie';\nimport { isReference, makeReference, DeepMerger, maybeDeepFreeze, canUseWeakMap, isNonNullObject } from \"../../utilities/index.js\";\nimport { hasOwn, fieldNameFromStoreName } from \"./helpers.js\";\nvar DELETE = Object.create(null);\n\nvar delModifier = function delModifier() {\n return DELETE;\n};\n\nvar INVALIDATE = Object.create(null);\n\nvar EntityStore = function () {\n function EntityStore(policies, group) {\n var _this = this;\n\n this.policies = policies;\n this.group = group;\n this.data = Object.create(null);\n this.rootIds = Object.create(null);\n this.refs = Object.create(null);\n\n this.getFieldValue = function (objectOrReference, storeFieldName) {\n return maybeDeepFreeze(isReference(objectOrReference) ? _this.get(objectOrReference.__ref, storeFieldName) : objectOrReference && objectOrReference[storeFieldName]);\n };\n\n this.canRead = function (objOrRef) {\n return isReference(objOrRef) ? _this.has(objOrRef.__ref) : typeof objOrRef === \"object\";\n };\n\n this.toReference = function (objOrIdOrRef, mergeIntoStore) {\n if (typeof objOrIdOrRef === \"string\") {\n return makeReference(objOrIdOrRef);\n }\n\n if (isReference(objOrIdOrRef)) {\n return objOrIdOrRef;\n }\n\n var id = _this.policies.identify(objOrIdOrRef)[0];\n\n if (id) {\n var ref = makeReference(id);\n\n if (mergeIntoStore) {\n _this.merge(id, objOrIdOrRef);\n }\n\n return ref;\n }\n };\n }\n\n EntityStore.prototype.toObject = function () {\n return __assign({}, this.data);\n };\n\n EntityStore.prototype.has = function (dataId) {\n return this.lookup(dataId, true) !== void 0;\n };\n\n EntityStore.prototype.get = function (dataId, fieldName) {\n this.group.depend(dataId, fieldName);\n\n if (hasOwn.call(this.data, dataId)) {\n var storeObject = this.data[dataId];\n\n if (storeObject && hasOwn.call(storeObject, fieldName)) {\n return storeObject[fieldName];\n }\n }\n\n if (fieldName === \"__typename\" && hasOwn.call(this.policies.rootTypenamesById, dataId)) {\n return this.policies.rootTypenamesById[dataId];\n }\n\n if (this instanceof Layer) {\n return this.parent.get(dataId, fieldName);\n }\n };\n\n EntityStore.prototype.lookup = function (dataId, dependOnExistence) {\n if (dependOnExistence) this.group.depend(dataId, \"__exists\");\n\n if (hasOwn.call(this.data, dataId)) {\n return this.data[dataId];\n }\n\n if (this instanceof Layer) {\n return this.parent.lookup(dataId, dependOnExistence);\n }\n\n if (this.policies.rootTypenamesById[dataId]) {\n return Object.create(null);\n }\n };\n\n EntityStore.prototype.merge = function (older, newer) {\n var _this = this;\n\n var dataId;\n if (isReference(older)) older = older.__ref;\n if (isReference(newer)) newer = newer.__ref;\n var existing = typeof older === \"string\" ? this.lookup(dataId = older) : older;\n var incoming = typeof newer === \"string\" ? this.lookup(dataId = newer) : newer;\n if (!incoming) return;\n __DEV__ ? invariant(typeof dataId === \"string\", \"store.merge expects a string ID\") : invariant(typeof dataId === \"string\", 1);\n var merged = new DeepMerger(storeObjectReconciler).merge(existing, incoming);\n this.data[dataId] = merged;\n\n if (merged !== existing) {\n delete this.refs[dataId];\n\n if (this.group.caching) {\n var fieldsToDirty_1 = Object.create(null);\n if (!existing) fieldsToDirty_1.__exists = 1;\n Object.keys(incoming).forEach(function (storeFieldName) {\n if (!existing || existing[storeFieldName] !== merged[storeFieldName]) {\n fieldsToDirty_1[storeFieldName] = 1;\n var fieldName = fieldNameFromStoreName(storeFieldName);\n\n if (fieldName !== storeFieldName && !_this.policies.hasKeyArgs(merged.__typename, fieldName)) {\n fieldsToDirty_1[fieldName] = 1;\n }\n\n if (merged[storeFieldName] === void 0 && !(_this instanceof Layer)) {\n delete merged[storeFieldName];\n }\n }\n });\n\n if (fieldsToDirty_1.__typename && !(existing && existing.__typename) && this.policies.rootTypenamesById[dataId] === merged.__typename) {\n delete fieldsToDirty_1.__typename;\n }\n\n Object.keys(fieldsToDirty_1).forEach(function (fieldName) {\n return _this.group.dirty(dataId, fieldName);\n });\n }\n }\n };\n\n EntityStore.prototype.modify = function (dataId, fields) {\n var _this = this;\n\n var storeObject = this.lookup(dataId);\n\n if (storeObject) {\n var changedFields_1 = Object.create(null);\n var needToMerge_1 = false;\n var allDeleted_1 = true;\n var sharedDetails_1 = {\n DELETE: DELETE,\n INVALIDATE: INVALIDATE,\n isReference: isReference,\n toReference: this.toReference,\n canRead: this.canRead,\n readField: function readField(fieldNameOrOptions, from) {\n return _this.policies.readField(typeof fieldNameOrOptions === \"string\" ? {\n fieldName: fieldNameOrOptions,\n from: from || makeReference(dataId)\n } : fieldNameOrOptions, {\n store: _this\n });\n }\n };\n Object.keys(storeObject).forEach(function (storeFieldName) {\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var fieldValue = storeObject[storeFieldName];\n if (fieldValue === void 0) return;\n var modify = typeof fields === \"function\" ? fields : fields[storeFieldName] || fields[fieldName];\n\n if (modify) {\n var newValue = modify === delModifier ? DELETE : modify(maybeDeepFreeze(fieldValue), __assign(__assign({}, sharedDetails_1), {\n fieldName: fieldName,\n storeFieldName: storeFieldName,\n storage: _this.getStorage(dataId, storeFieldName)\n }));\n\n if (newValue === INVALIDATE) {\n _this.group.dirty(dataId, storeFieldName);\n } else {\n if (newValue === DELETE) newValue = void 0;\n\n if (newValue !== fieldValue) {\n changedFields_1[storeFieldName] = newValue;\n needToMerge_1 = true;\n fieldValue = newValue;\n }\n }\n }\n\n if (fieldValue !== void 0) {\n allDeleted_1 = false;\n }\n });\n\n if (needToMerge_1) {\n this.merge(dataId, changedFields_1);\n\n if (allDeleted_1) {\n if (this instanceof Layer) {\n this.data[dataId] = void 0;\n } else {\n delete this.data[dataId];\n }\n\n this.group.dirty(dataId, \"__exists\");\n }\n\n return true;\n }\n }\n\n return false;\n };\n\n EntityStore.prototype.delete = function (dataId, fieldName, args) {\n var _a;\n\n var storeObject = this.lookup(dataId);\n\n if (storeObject) {\n var typename = this.getFieldValue(storeObject, \"__typename\");\n var storeFieldName = fieldName && args ? this.policies.getStoreFieldName({\n typename: typename,\n fieldName: fieldName,\n args: args\n }) : fieldName;\n return this.modify(dataId, storeFieldName ? (_a = {}, _a[storeFieldName] = delModifier, _a) : delModifier);\n }\n\n return false;\n };\n\n EntityStore.prototype.evict = function (options, limit) {\n var evicted = false;\n\n if (options.id) {\n if (hasOwn.call(this.data, options.id)) {\n evicted = this.delete(options.id, options.fieldName, options.args);\n }\n\n if (this instanceof Layer && this !== limit) {\n evicted = this.parent.evict(options, limit) || evicted;\n }\n\n if (options.fieldName || evicted) {\n this.group.dirty(options.id, options.fieldName || \"__exists\");\n }\n }\n\n return evicted;\n };\n\n EntityStore.prototype.clear = function () {\n this.replace(null);\n };\n\n EntityStore.prototype.extract = function () {\n var _this = this;\n\n var obj = this.toObject();\n var extraRootIds = [];\n this.getRootIdSet().forEach(function (id) {\n if (!hasOwn.call(_this.policies.rootTypenamesById, id)) {\n extraRootIds.push(id);\n }\n });\n\n if (extraRootIds.length) {\n obj.__META = {\n extraRootIds: extraRootIds.sort()\n };\n }\n\n return obj;\n };\n\n EntityStore.prototype.replace = function (newData) {\n var _this = this;\n\n Object.keys(this.data).forEach(function (dataId) {\n if (!(newData && hasOwn.call(newData, dataId))) {\n _this.delete(dataId);\n }\n });\n\n if (newData) {\n var __META = newData.__META,\n rest_1 = __rest(newData, [\"__META\"]);\n\n Object.keys(rest_1).forEach(function (dataId) {\n _this.merge(dataId, rest_1[dataId]);\n });\n\n if (__META) {\n __META.extraRootIds.forEach(this.retain, this);\n }\n }\n };\n\n EntityStore.prototype.retain = function (rootId) {\n return this.rootIds[rootId] = (this.rootIds[rootId] || 0) + 1;\n };\n\n EntityStore.prototype.release = function (rootId) {\n if (this.rootIds[rootId] > 0) {\n var count = --this.rootIds[rootId];\n if (!count) delete this.rootIds[rootId];\n return count;\n }\n\n return 0;\n };\n\n EntityStore.prototype.getRootIdSet = function (ids) {\n if (ids === void 0) {\n ids = new Set();\n }\n\n Object.keys(this.rootIds).forEach(ids.add, ids);\n\n if (this instanceof Layer) {\n this.parent.getRootIdSet(ids);\n } else {\n Object.keys(this.policies.rootTypenamesById).forEach(ids.add, ids);\n }\n\n return ids;\n };\n\n EntityStore.prototype.gc = function () {\n var _this = this;\n\n var ids = this.getRootIdSet();\n var snapshot = this.toObject();\n ids.forEach(function (id) {\n if (hasOwn.call(snapshot, id)) {\n Object.keys(_this.findChildRefIds(id)).forEach(ids.add, ids);\n delete snapshot[id];\n }\n });\n var idsToRemove = Object.keys(snapshot);\n\n if (idsToRemove.length) {\n var root_1 = this;\n\n while (root_1 instanceof Layer) {\n root_1 = root_1.parent;\n }\n\n idsToRemove.forEach(function (id) {\n return root_1.delete(id);\n });\n }\n\n return idsToRemove;\n };\n\n EntityStore.prototype.findChildRefIds = function (dataId) {\n if (!hasOwn.call(this.refs, dataId)) {\n var found_1 = this.refs[dataId] = Object.create(null);\n var root = this.data[dataId];\n if (!root) return found_1;\n var workSet_1 = new Set([root]);\n workSet_1.forEach(function (obj) {\n if (isReference(obj)) {\n found_1[obj.__ref] = true;\n }\n\n if (isNonNullObject(obj)) {\n Object.keys(obj).forEach(function (key) {\n var child = obj[key];\n\n if (isNonNullObject(child)) {\n workSet_1.add(child);\n }\n });\n }\n });\n }\n\n return this.refs[dataId];\n };\n\n EntityStore.prototype.makeCacheKey = function () {\n return this.group.keyMaker.lookupArray(arguments);\n };\n\n return EntityStore;\n}();\n\nexport { EntityStore };\n\nvar CacheGroup = function () {\n function CacheGroup(caching, parent) {\n if (parent === void 0) {\n parent = null;\n }\n\n this.caching = caching;\n this.parent = parent;\n this.d = null;\n this.resetCaching();\n }\n\n CacheGroup.prototype.resetCaching = function () {\n this.d = this.caching ? dep() : null;\n this.keyMaker = new Trie(canUseWeakMap);\n };\n\n CacheGroup.prototype.depend = function (dataId, storeFieldName) {\n if (this.d) {\n this.d(makeDepKey(dataId, storeFieldName));\n var fieldName = fieldNameFromStoreName(storeFieldName);\n\n if (fieldName !== storeFieldName) {\n this.d(makeDepKey(dataId, fieldName));\n }\n\n if (this.parent) {\n this.parent.depend(dataId, storeFieldName);\n }\n }\n };\n\n CacheGroup.prototype.dirty = function (dataId, storeFieldName) {\n if (this.d) {\n this.d.dirty(makeDepKey(dataId, storeFieldName), storeFieldName === \"__exists\" ? \"forget\" : \"setDirty\");\n }\n };\n\n return CacheGroup;\n}();\n\nfunction makeDepKey(dataId, storeFieldName) {\n return storeFieldName + '#' + dataId;\n}\n\nexport function maybeDependOnExistenceOfEntity(store, entityId) {\n if (supportsResultCaching(store)) {\n store.group.depend(entityId, \"__exists\");\n }\n}\n\n(function (EntityStore) {\n var Root = function (_super) {\n __extends(Root, _super);\n\n function Root(_a) {\n var policies = _a.policies,\n _b = _a.resultCaching,\n resultCaching = _b === void 0 ? true : _b,\n seed = _a.seed;\n\n var _this = _super.call(this, policies, new CacheGroup(resultCaching)) || this;\n\n _this.stump = new Stump(_this);\n _this.storageTrie = new Trie(canUseWeakMap);\n if (seed) _this.replace(seed);\n return _this;\n }\n\n Root.prototype.addLayer = function (layerId, replay) {\n return this.stump.addLayer(layerId, replay);\n };\n\n Root.prototype.removeLayer = function () {\n return this;\n };\n\n Root.prototype.getStorage = function () {\n return this.storageTrie.lookupArray(arguments);\n };\n\n return Root;\n }(EntityStore);\n\n EntityStore.Root = Root;\n})(EntityStore || (EntityStore = {}));\n\nvar Layer = function (_super) {\n __extends(Layer, _super);\n\n function Layer(id, parent, replay, group) {\n var _this = _super.call(this, parent.policies, group) || this;\n\n _this.id = id;\n _this.parent = parent;\n _this.replay = replay;\n _this.group = group;\n replay(_this);\n return _this;\n }\n\n Layer.prototype.addLayer = function (layerId, replay) {\n return new Layer(layerId, this, replay, this.group);\n };\n\n Layer.prototype.removeLayer = function (layerId) {\n var _this = this;\n\n var parent = this.parent.removeLayer(layerId);\n\n if (layerId === this.id) {\n if (this.group.caching) {\n Object.keys(this.data).forEach(function (dataId) {\n var ownStoreObject = _this.data[dataId];\n var parentStoreObject = parent[\"lookup\"](dataId);\n\n if (!parentStoreObject) {\n _this.delete(dataId);\n } else if (!ownStoreObject) {\n _this.group.dirty(dataId, \"__exists\");\n\n Object.keys(parentStoreObject).forEach(function (storeFieldName) {\n _this.group.dirty(dataId, storeFieldName);\n });\n } else if (ownStoreObject !== parentStoreObject) {\n Object.keys(ownStoreObject).forEach(function (storeFieldName) {\n if (!equal(ownStoreObject[storeFieldName], parentStoreObject[storeFieldName])) {\n _this.group.dirty(dataId, storeFieldName);\n }\n });\n }\n });\n }\n\n return parent;\n }\n\n if (parent === this.parent) return this;\n return parent.addLayer(this.id, this.replay);\n };\n\n Layer.prototype.toObject = function () {\n return __assign(__assign({}, this.parent.toObject()), this.data);\n };\n\n Layer.prototype.findChildRefIds = function (dataId) {\n var fromParent = this.parent.findChildRefIds(dataId);\n return hasOwn.call(this.data, dataId) ? __assign(__assign({}, fromParent), _super.prototype.findChildRefIds.call(this, dataId)) : fromParent;\n };\n\n Layer.prototype.getStorage = function () {\n var p = this.parent;\n\n while (p.parent) {\n p = p.parent;\n }\n\n return p.getStorage.apply(p, arguments);\n };\n\n return Layer;\n}(EntityStore);\n\nvar Stump = function (_super) {\n __extends(Stump, _super);\n\n function Stump(root) {\n return _super.call(this, \"EntityStore.Stump\", root, function () {}, new CacheGroup(root.group.caching, root.group)) || this;\n }\n\n Stump.prototype.removeLayer = function () {\n return this;\n };\n\n Stump.prototype.merge = function () {\n return this.parent.merge.apply(this.parent, arguments);\n };\n\n return Stump;\n}(Layer);\n\nfunction storeObjectReconciler(existingObject, incomingObject, property) {\n var existingValue = existingObject[property];\n var incomingValue = incomingObject[property];\n return equal(existingValue, incomingValue) ? existingValue : incomingValue;\n}\n\nexport function supportsResultCaching(store) {\n return !!(store instanceof EntityStore && store.group.caching);\n}","export function isExecutionPatchIncrementalResult(value) {\n return !!value.incremental;\n}","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from \"../utilities/globals/index.js\";\nimport { ApolloLink, execute } from \"../link/core/index.js\";\nimport { version } from \"../version.js\";\nimport { HttpLink } from \"../link/http/index.js\";\nimport { QueryManager } from \"./QueryManager.js\";\nimport { LocalState } from \"./LocalState.js\";\nvar hasSuggestedDevtools = false;\nimport { mergeOptions } from \"../utilities/index.js\";\nexport { mergeOptions };\n\nvar ApolloClient = function () {\n function ApolloClient(options) {\n var _this = this;\n\n this.resetStoreCallbacks = [];\n this.clearStoreCallbacks = [];\n var uri = options.uri,\n credentials = options.credentials,\n headers = options.headers,\n cache = options.cache,\n _a = options.ssrMode,\n ssrMode = _a === void 0 ? false : _a,\n _b = options.ssrForceFetchDelay,\n ssrForceFetchDelay = _b === void 0 ? 0 : _b,\n _c = options.connectToDevTools,\n connectToDevTools = _c === void 0 ? typeof window === 'object' && !window.__APOLLO_CLIENT__ && __DEV__ : _c,\n _d = options.queryDeduplication,\n queryDeduplication = _d === void 0 ? true : _d,\n defaultOptions = options.defaultOptions,\n _e = options.assumeImmutableResults,\n assumeImmutableResults = _e === void 0 ? false : _e,\n resolvers = options.resolvers,\n typeDefs = options.typeDefs,\n fragmentMatcher = options.fragmentMatcher,\n clientAwarenessName = options.name,\n clientAwarenessVersion = options.version;\n var link = options.link;\n\n if (!link) {\n link = uri ? new HttpLink({\n uri: uri,\n credentials: credentials,\n headers: headers\n }) : ApolloLink.empty();\n }\n\n if (!cache) {\n throw __DEV__ ? new InvariantError(\"To initialize Apollo Client, you must specify a 'cache' property \" + \"in the options object. \\n\" + \"For more information, please visit: https://go.apollo.dev/c/docs\") : new InvariantError(9);\n }\n\n this.link = link;\n this.cache = cache;\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.queryDeduplication = queryDeduplication;\n this.defaultOptions = defaultOptions || Object.create(null);\n this.typeDefs = typeDefs;\n\n if (ssrForceFetchDelay) {\n setTimeout(function () {\n return _this.disableNetworkFetches = false;\n }, ssrForceFetchDelay);\n }\n\n this.watchQuery = this.watchQuery.bind(this);\n this.query = this.query.bind(this);\n this.mutate = this.mutate.bind(this);\n this.resetStore = this.resetStore.bind(this);\n this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this);\n\n if (connectToDevTools && typeof window === 'object') {\n window.__APOLLO_CLIENT__ = this;\n }\n\n if (!hasSuggestedDevtools && __DEV__) {\n hasSuggestedDevtools = true;\n\n if (typeof window !== 'undefined' && window.document && window.top === window.self && !window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__) {\n var nav = window.navigator;\n var ua = nav && nav.userAgent;\n var url = void 0;\n\n if (typeof ua === \"string\") {\n if (ua.indexOf(\"Chrome/\") > -1) {\n url = \"https://chrome.google.com/webstore/detail/\" + \"apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm\";\n } else if (ua.indexOf(\"Firefox/\") > -1) {\n url = \"https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/\";\n }\n }\n\n if (url) {\n __DEV__ && invariant.log(\"Download the Apollo DevTools for a better development \" + \"experience: \" + url);\n }\n }\n }\n\n this.version = version;\n this.localState = new LocalState({\n cache: cache,\n client: this,\n resolvers: resolvers,\n fragmentMatcher: fragmentMatcher\n });\n this.queryManager = new QueryManager({\n cache: this.cache,\n link: this.link,\n defaultOptions: this.defaultOptions,\n queryDeduplication: queryDeduplication,\n ssrMode: ssrMode,\n clientAwareness: {\n name: clientAwarenessName,\n version: clientAwarenessVersion\n },\n localState: this.localState,\n assumeImmutableResults: assumeImmutableResults,\n onBroadcast: connectToDevTools ? function () {\n if (_this.devToolsHookCb) {\n _this.devToolsHookCb({\n action: {},\n state: {\n queries: _this.queryManager.getQueryStore(),\n mutations: _this.queryManager.mutationStore || {}\n },\n dataWithOptimisticResults: _this.cache.extract(true)\n });\n }\n } : void 0\n });\n }\n\n ApolloClient.prototype.stop = function () {\n this.queryManager.stop();\n };\n\n ApolloClient.prototype.watchQuery = function (options) {\n if (this.defaultOptions.watchQuery) {\n options = mergeOptions(this.defaultOptions.watchQuery, options);\n }\n\n if (this.disableNetworkFetches && (options.fetchPolicy === 'network-only' || options.fetchPolicy === 'cache-and-network')) {\n options = __assign(__assign({}, options), {\n fetchPolicy: 'cache-first'\n });\n }\n\n return this.queryManager.watchQuery(options);\n };\n\n ApolloClient.prototype.query = function (options) {\n if (this.defaultOptions.query) {\n options = mergeOptions(this.defaultOptions.query, options);\n }\n\n __DEV__ ? invariant(options.fetchPolicy !== 'cache-and-network', 'The cache-and-network fetchPolicy does not work with client.query, because ' + 'client.query can only return a single result. Please use client.watchQuery ' + 'to receive multiple results from the cache and the network, or consider ' + 'using a different fetchPolicy, such as cache-first or network-only.') : invariant(options.fetchPolicy !== 'cache-and-network', 10);\n\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = __assign(__assign({}, options), {\n fetchPolicy: 'cache-first'\n });\n }\n\n return this.queryManager.query(options);\n };\n\n ApolloClient.prototype.mutate = function (options) {\n if (this.defaultOptions.mutate) {\n options = mergeOptions(this.defaultOptions.mutate, options);\n }\n\n return this.queryManager.mutate(options);\n };\n\n ApolloClient.prototype.subscribe = function (options) {\n return this.queryManager.startGraphQLSubscription(options);\n };\n\n ApolloClient.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n\n return this.cache.readQuery(options, optimistic);\n };\n\n ApolloClient.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n\n return this.cache.readFragment(options, optimistic);\n };\n\n ApolloClient.prototype.writeQuery = function (options) {\n this.cache.writeQuery(options);\n this.queryManager.broadcastQueries();\n };\n\n ApolloClient.prototype.writeFragment = function (options) {\n this.cache.writeFragment(options);\n this.queryManager.broadcastQueries();\n };\n\n ApolloClient.prototype.__actionHookForDevTools = function (cb) {\n this.devToolsHookCb = cb;\n };\n\n ApolloClient.prototype.__requestRaw = function (payload) {\n return execute(this.link, payload);\n };\n\n ApolloClient.prototype.resetStore = function () {\n var _this = this;\n\n return Promise.resolve().then(function () {\n return _this.queryManager.clearStore({\n discardWatches: false\n });\n }).then(function () {\n return Promise.all(_this.resetStoreCallbacks.map(function (fn) {\n return fn();\n }));\n }).then(function () {\n return _this.reFetchObservableQueries();\n });\n };\n\n ApolloClient.prototype.clearStore = function () {\n var _this = this;\n\n return Promise.resolve().then(function () {\n return _this.queryManager.clearStore({\n discardWatches: true\n });\n }).then(function () {\n return Promise.all(_this.clearStoreCallbacks.map(function (fn) {\n return fn();\n }));\n });\n };\n\n ApolloClient.prototype.onResetStore = function (cb) {\n var _this = this;\n\n this.resetStoreCallbacks.push(cb);\n return function () {\n _this.resetStoreCallbacks = _this.resetStoreCallbacks.filter(function (c) {\n return c !== cb;\n });\n };\n };\n\n ApolloClient.prototype.onClearStore = function (cb) {\n var _this = this;\n\n this.clearStoreCallbacks.push(cb);\n return function () {\n _this.clearStoreCallbacks = _this.clearStoreCallbacks.filter(function (c) {\n return c !== cb;\n });\n };\n };\n\n ApolloClient.prototype.reFetchObservableQueries = function (includeStandby) {\n return this.queryManager.reFetchObservableQueries(includeStandby);\n };\n\n ApolloClient.prototype.refetchQueries = function (options) {\n var map = this.queryManager.refetchQueries(options);\n var queries = [];\n var results = [];\n map.forEach(function (result, obsQuery) {\n queries.push(obsQuery);\n results.push(result);\n });\n var result = Promise.all(results);\n result.queries = queries;\n result.results = results;\n result.catch(function (error) {\n __DEV__ && invariant.debug(\"In client.refetchQueries, Promise.all promise rejected with error \".concat(error));\n });\n return result;\n };\n\n ApolloClient.prototype.getObservableQueries = function (include) {\n if (include === void 0) {\n include = \"active\";\n }\n\n return this.queryManager.getObservableQueries(include);\n };\n\n ApolloClient.prototype.extract = function (optimistic) {\n return this.cache.extract(optimistic);\n };\n\n ApolloClient.prototype.restore = function (serializedState) {\n return this.cache.restore(serializedState);\n };\n\n ApolloClient.prototype.addResolvers = function (resolvers) {\n this.localState.addResolvers(resolvers);\n };\n\n ApolloClient.prototype.setResolvers = function (resolvers) {\n this.localState.setResolvers(resolvers);\n };\n\n ApolloClient.prototype.getResolvers = function () {\n return this.localState.getResolvers();\n };\n\n ApolloClient.prototype.setLocalStateFragmentMatcher = function (fragmentMatcher) {\n this.localState.setFragmentMatcher(fragmentMatcher);\n };\n\n ApolloClient.prototype.setLink = function (newLink) {\n this.link = this.queryManager.link = newLink;\n };\n\n return ApolloClient;\n}();\n\nexport { ApolloClient };","export var version = '3.7.1';","import { __assign, __rest } from \"tslib\";\nimport { wrap } from 'optimism';\nimport { getFragmentQueryDocument } from \"../../utilities/index.js\";\n\nvar ApolloCache = function () {\n function ApolloCache() {\n this.getFragmentDoc = wrap(getFragmentQueryDocument);\n }\n\n ApolloCache.prototype.batch = function (options) {\n var _this = this;\n\n var optimisticId = typeof options.optimistic === \"string\" ? options.optimistic : options.optimistic === false ? null : void 0;\n var updateResult;\n this.performTransaction(function () {\n return updateResult = options.update(_this);\n }, optimisticId);\n return updateResult;\n };\n\n ApolloCache.prototype.recordOptimisticTransaction = function (transaction, optimisticId) {\n this.performTransaction(transaction, optimisticId);\n };\n\n ApolloCache.prototype.transformDocument = function (document) {\n return document;\n };\n\n ApolloCache.prototype.transformForLink = function (document) {\n return document;\n };\n\n ApolloCache.prototype.identify = function (object) {\n return;\n };\n\n ApolloCache.prototype.gc = function () {\n return [];\n };\n\n ApolloCache.prototype.modify = function (options) {\n return false;\n };\n\n ApolloCache.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = !!options.optimistic;\n }\n\n return this.read(__assign(__assign({}, options), {\n rootId: options.id || 'ROOT_QUERY',\n optimistic: optimistic\n }));\n };\n\n ApolloCache.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = !!options.optimistic;\n }\n\n return this.read(__assign(__assign({}, options), {\n query: this.getFragmentDoc(options.fragment, options.fragmentName),\n rootId: options.id,\n optimistic: optimistic\n }));\n };\n\n ApolloCache.prototype.writeQuery = function (_a) {\n var id = _a.id,\n data = _a.data,\n options = __rest(_a, [\"id\", \"data\"]);\n\n return this.write(Object.assign(options, {\n dataId: id || 'ROOT_QUERY',\n result: data\n }));\n };\n\n ApolloCache.prototype.writeFragment = function (_a) {\n var id = _a.id,\n data = _a.data,\n fragment = _a.fragment,\n fragmentName = _a.fragmentName,\n options = __rest(_a, [\"id\", \"data\", \"fragment\", \"fragmentName\"]);\n\n return this.write(Object.assign(options, {\n query: this.getFragmentDoc(fragment, fragmentName),\n dataId: id,\n result: data\n }));\n };\n\n ApolloCache.prototype.updateQuery = function (options, _update) {\n return this.batch({\n update: function update(cache) {\n var value = cache.readQuery(options);\n\n var data = _update(value);\n\n if (data === void 0 || data === null) return value;\n cache.writeQuery(__assign(__assign({}, options), {\n data: data\n }));\n return data;\n }\n });\n };\n\n ApolloCache.prototype.updateFragment = function (options, _update2) {\n return this.batch({\n update: function update(cache) {\n var value = cache.readFragment(options);\n\n var data = _update2(value);\n\n if (data === void 0 || data === null) return value;\n cache.writeFragment(__assign(__assign({}, options), {\n data: data\n }));\n return data;\n }\n });\n };\n\n return ApolloCache;\n}();\n\nexport { ApolloCache };","import { __extends } from \"tslib\";\n\nvar MissingFieldError = function (_super) {\n __extends(MissingFieldError, _super);\n\n function MissingFieldError(message, path, query, variables) {\n var _a;\n\n var _this = _super.call(this, message) || this;\n\n _this.message = message;\n _this.path = path;\n _this.query = query;\n _this.variables = variables;\n\n if (Array.isArray(_this.path)) {\n _this.missing = _this.message;\n\n for (var i = _this.path.length - 1; i >= 0; --i) {\n _this.missing = (_a = {}, _a[_this.path[i]] = _this.missing, _a);\n }\n } else {\n _this.missing = _this.path;\n }\n\n _this.__proto__ = MissingFieldError.prototype;\n return _this;\n }\n\n return MissingFieldError;\n}(Error);\n\nexport { MissingFieldError };","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { Kind } from 'graphql';\nimport { wrap } from 'optimism';\nimport { isField, resultKeyNameFromField, isReference, makeReference, shouldInclude, addTypenameToDocument, getDefaultValues, getMainDefinition, getQueryDefinition, getFragmentFromSelection, maybeDeepFreeze, mergeDeepArray, DeepMerger, isNonNullObject, canUseWeakMap, compact } from \"../../utilities/index.js\";\nimport { maybeDependOnExistenceOfEntity, supportsResultCaching } from \"./entityStore.js\";\nimport { isArray, extractFragmentContext, getTypenameFromStoreObject, shouldCanonizeResults } from \"./helpers.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { canonicalStringify, ObjectCanon } from \"./object-canon.js\";\n;\n\nfunction execSelectionSetKeyArgs(options) {\n return [options.selectionSet, options.objectOrReference, options.context, options.context.canonizeResults];\n}\n\nvar StoreReader = function () {\n function StoreReader(config) {\n var _this = this;\n\n this.knownResults = new (canUseWeakMap ? WeakMap : Map)();\n this.config = compact(config, {\n addTypename: config.addTypename !== false,\n canonizeResults: shouldCanonizeResults(config)\n });\n this.canon = config.canon || new ObjectCanon();\n this.executeSelectionSet = wrap(function (options) {\n var _a;\n\n var canonizeResults = options.context.canonizeResults;\n var peekArgs = execSelectionSetKeyArgs(options);\n peekArgs[3] = !canonizeResults;\n\n var other = (_a = _this.executeSelectionSet).peek.apply(_a, peekArgs);\n\n if (other) {\n if (canonizeResults) {\n return __assign(__assign({}, other), {\n result: _this.canon.admit(other.result)\n });\n }\n\n return other;\n }\n\n maybeDependOnExistenceOfEntity(options.context.store, options.enclosingRef.__ref);\n return _this.execSelectionSetImpl(options);\n }, {\n max: this.config.resultCacheMaxSize,\n keyArgs: execSelectionSetKeyArgs,\n makeCacheKey: function makeCacheKey(selectionSet, parent, context, canonizeResults) {\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(selectionSet, isReference(parent) ? parent.__ref : parent, context.varString, canonizeResults);\n }\n }\n });\n this.executeSubSelectedArray = wrap(function (options) {\n maybeDependOnExistenceOfEntity(options.context.store, options.enclosingRef.__ref);\n return _this.execSubSelectedArrayImpl(options);\n }, {\n max: this.config.resultCacheMaxSize,\n makeCacheKey: function makeCacheKey(_a) {\n var field = _a.field,\n array = _a.array,\n context = _a.context;\n\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(field, array, context.varString);\n }\n }\n });\n }\n\n StoreReader.prototype.resetCanon = function () {\n this.canon = new ObjectCanon();\n };\n\n StoreReader.prototype.diffQueryAgainstStore = function (_a) {\n var store = _a.store,\n query = _a.query,\n _b = _a.rootId,\n rootId = _b === void 0 ? 'ROOT_QUERY' : _b,\n variables = _a.variables,\n _c = _a.returnPartialData,\n returnPartialData = _c === void 0 ? true : _c,\n _d = _a.canonizeResults,\n canonizeResults = _d === void 0 ? this.config.canonizeResults : _d;\n var policies = this.config.cache.policies;\n variables = __assign(__assign({}, getDefaultValues(getQueryDefinition(query))), variables);\n var rootRef = makeReference(rootId);\n var execResult = this.executeSelectionSet({\n selectionSet: getMainDefinition(query).selectionSet,\n objectOrReference: rootRef,\n enclosingRef: rootRef,\n context: __assign({\n store: store,\n query: query,\n policies: policies,\n variables: variables,\n varString: canonicalStringify(variables),\n canonizeResults: canonizeResults\n }, extractFragmentContext(query, this.config.fragments))\n });\n var missing;\n\n if (execResult.missing) {\n missing = [new MissingFieldError(firstMissing(execResult.missing), execResult.missing, query, variables)];\n\n if (!returnPartialData) {\n throw missing[0];\n }\n }\n\n return {\n result: execResult.result,\n complete: !missing,\n missing: missing\n };\n };\n\n StoreReader.prototype.isFresh = function (result, parent, selectionSet, context) {\n if (supportsResultCaching(context.store) && this.knownResults.get(result) === selectionSet) {\n var latest = this.executeSelectionSet.peek(selectionSet, parent, context, this.canon.isKnown(result));\n\n if (latest && result === latest.result) {\n return true;\n }\n }\n\n return false;\n };\n\n StoreReader.prototype.execSelectionSetImpl = function (_a) {\n var _this = this;\n\n var selectionSet = _a.selectionSet,\n objectOrReference = _a.objectOrReference,\n enclosingRef = _a.enclosingRef,\n context = _a.context;\n\n if (isReference(objectOrReference) && !context.policies.rootTypenamesById[objectOrReference.__ref] && !context.store.has(objectOrReference.__ref)) {\n return {\n result: this.canon.empty,\n missing: \"Dangling reference to missing \".concat(objectOrReference.__ref, \" object\")\n };\n }\n\n var variables = context.variables,\n policies = context.policies,\n store = context.store;\n var typename = store.getFieldValue(objectOrReference, \"__typename\");\n var objectsToMerge = [];\n var missing;\n var missingMerger = new DeepMerger();\n\n if (this.config.addTypename && typeof typename === \"string\" && !policies.rootIdsByTypename[typename]) {\n objectsToMerge.push({\n __typename: typename\n });\n }\n\n function handleMissing(result, resultName) {\n var _a;\n\n if (result.missing) {\n missing = missingMerger.merge(missing, (_a = {}, _a[resultName] = result.missing, _a));\n }\n\n return result.result;\n }\n\n var workSet = new Set(selectionSet.selections);\n workSet.forEach(function (selection) {\n var _a, _b;\n\n if (!shouldInclude(selection, variables)) return;\n\n if (isField(selection)) {\n var fieldValue = policies.readField({\n fieldName: selection.name.value,\n field: selection,\n variables: context.variables,\n from: objectOrReference\n }, context);\n var resultName = resultKeyNameFromField(selection);\n\n if (fieldValue === void 0) {\n if (!addTypenameToDocument.added(selection)) {\n missing = missingMerger.merge(missing, (_a = {}, _a[resultName] = \"Can't find field '\".concat(selection.name.value, \"' on \").concat(isReference(objectOrReference) ? objectOrReference.__ref + \" object\" : \"object \" + JSON.stringify(objectOrReference, null, 2)), _a));\n }\n } else if (isArray(fieldValue)) {\n fieldValue = handleMissing(_this.executeSubSelectedArray({\n field: selection,\n array: fieldValue,\n enclosingRef: enclosingRef,\n context: context\n }), resultName);\n } else if (!selection.selectionSet) {\n if (context.canonizeResults) {\n fieldValue = _this.canon.pass(fieldValue);\n }\n } else if (fieldValue != null) {\n fieldValue = handleMissing(_this.executeSelectionSet({\n selectionSet: selection.selectionSet,\n objectOrReference: fieldValue,\n enclosingRef: isReference(fieldValue) ? fieldValue : enclosingRef,\n context: context\n }), resultName);\n }\n\n if (fieldValue !== void 0) {\n objectsToMerge.push((_b = {}, _b[resultName] = fieldValue, _b));\n }\n } else {\n var fragment = getFragmentFromSelection(selection, context.lookupFragment);\n\n if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) {\n throw __DEV__ ? new InvariantError(\"No fragment named \".concat(selection.name.value)) : new InvariantError(5);\n }\n\n if (fragment && policies.fragmentMatches(fragment, typename)) {\n fragment.selectionSet.selections.forEach(workSet.add, workSet);\n }\n }\n });\n var result = mergeDeepArray(objectsToMerge);\n var finalResult = {\n result: result,\n missing: missing\n };\n var frozen = context.canonizeResults ? this.canon.admit(finalResult) : maybeDeepFreeze(finalResult);\n\n if (frozen.result) {\n this.knownResults.set(frozen.result, selectionSet);\n }\n\n return frozen;\n };\n\n StoreReader.prototype.execSubSelectedArrayImpl = function (_a) {\n var _this = this;\n\n var field = _a.field,\n array = _a.array,\n enclosingRef = _a.enclosingRef,\n context = _a.context;\n var missing;\n var missingMerger = new DeepMerger();\n\n function handleMissing(childResult, i) {\n var _a;\n\n if (childResult.missing) {\n missing = missingMerger.merge(missing, (_a = {}, _a[i] = childResult.missing, _a));\n }\n\n return childResult.result;\n }\n\n if (field.selectionSet) {\n array = array.filter(context.store.canRead);\n }\n\n array = array.map(function (item, i) {\n if (item === null) {\n return null;\n }\n\n if (isArray(item)) {\n return handleMissing(_this.executeSubSelectedArray({\n field: field,\n array: item,\n enclosingRef: enclosingRef,\n context: context\n }), i);\n }\n\n if (field.selectionSet) {\n return handleMissing(_this.executeSelectionSet({\n selectionSet: field.selectionSet,\n objectOrReference: item,\n enclosingRef: isReference(item) ? item : enclosingRef,\n context: context\n }), i);\n }\n\n if (__DEV__) {\n assertSelectionSetForIdValue(context.store, field, item);\n }\n\n return item;\n });\n return {\n result: context.canonizeResults ? this.canon.admit(array) : array,\n missing: missing\n };\n };\n\n return StoreReader;\n}();\n\nexport { StoreReader };\n\nfunction firstMissing(tree) {\n try {\n JSON.stringify(tree, function (_, value) {\n if (typeof value === \"string\") throw value;\n return value;\n });\n } catch (result) {\n return result;\n }\n}\n\nfunction assertSelectionSetForIdValue(store, field, fieldValue) {\n if (!field.selectionSet) {\n var workSet_1 = new Set([fieldValue]);\n workSet_1.forEach(function (value) {\n if (isNonNullObject(value)) {\n __DEV__ ? invariant(!isReference(value), \"Missing selection set for object of type \".concat(getTypenameFromStoreObject(store, value), \" returned for query field \").concat(field.name.value)) : invariant(!isReference(value), 6);\n Object.values(value).forEach(workSet_1.add, workSet_1);\n }\n });\n }\n}","import { invariant } from \"../../utilities/globals/index.js\";\nimport { argumentsObjectFromField, DeepMerger, isNonEmptyArray, isNonNullObject } from \"../../utilities/index.js\";\nimport { hasOwn, isArray } from \"./helpers.js\";\nvar specifierInfoCache = Object.create(null);\n\nfunction lookupSpecifierInfo(spec) {\n var cacheKey = JSON.stringify(spec);\n return specifierInfoCache[cacheKey] || (specifierInfoCache[cacheKey] = Object.create(null));\n}\n\nexport function keyFieldsFnFromSpecifier(specifier) {\n var info = lookupSpecifierInfo(specifier);\n return info.keyFieldsFn || (info.keyFieldsFn = function (object, context) {\n var extract = function extract(from, key) {\n return context.readField(key, from);\n };\n\n var keyObject = context.keyObject = collectSpecifierPaths(specifier, function (schemaKeyPath) {\n var extracted = extractKeyPath(context.storeObject, schemaKeyPath, extract);\n\n if (extracted === void 0 && object !== context.storeObject && hasOwn.call(object, schemaKeyPath[0])) {\n extracted = extractKeyPath(object, schemaKeyPath, extractKey);\n }\n\n __DEV__ ? invariant(extracted !== void 0, \"Missing field '\".concat(schemaKeyPath.join('.'), \"' while extracting keyFields from \").concat(JSON.stringify(object))) : invariant(extracted !== void 0, 2);\n return extracted;\n });\n return \"\".concat(context.typename, \":\").concat(JSON.stringify(keyObject));\n });\n}\nexport function keyArgsFnFromSpecifier(specifier) {\n var info = lookupSpecifierInfo(specifier);\n return info.keyArgsFn || (info.keyArgsFn = function (args, _a) {\n var field = _a.field,\n variables = _a.variables,\n fieldName = _a.fieldName;\n var collected = collectSpecifierPaths(specifier, function (keyPath) {\n var firstKey = keyPath[0];\n var firstChar = firstKey.charAt(0);\n\n if (firstChar === \"@\") {\n if (field && isNonEmptyArray(field.directives)) {\n var directiveName_1 = firstKey.slice(1);\n var d = field.directives.find(function (d) {\n return d.name.value === directiveName_1;\n });\n var directiveArgs = d && argumentsObjectFromField(d, variables);\n return directiveArgs && extractKeyPath(directiveArgs, keyPath.slice(1));\n }\n\n return;\n }\n\n if (firstChar === \"$\") {\n var variableName = firstKey.slice(1);\n\n if (variables && hasOwn.call(variables, variableName)) {\n var varKeyPath = keyPath.slice(0);\n varKeyPath[0] = variableName;\n return extractKeyPath(variables, varKeyPath);\n }\n\n return;\n }\n\n if (args) {\n return extractKeyPath(args, keyPath);\n }\n });\n var suffix = JSON.stringify(collected);\n\n if (args || suffix !== \"{}\") {\n fieldName += \":\" + suffix;\n }\n\n return fieldName;\n });\n}\nexport function collectSpecifierPaths(specifier, extractor) {\n var merger = new DeepMerger();\n return getSpecifierPaths(specifier).reduce(function (collected, path) {\n var _a;\n\n var toMerge = extractor(path);\n\n if (toMerge !== void 0) {\n for (var i = path.length - 1; i >= 0; --i) {\n toMerge = (_a = {}, _a[path[i]] = toMerge, _a);\n }\n\n collected = merger.merge(collected, toMerge);\n }\n\n return collected;\n }, Object.create(null));\n}\nexport function getSpecifierPaths(spec) {\n var info = lookupSpecifierInfo(spec);\n\n if (!info.paths) {\n var paths_1 = info.paths = [];\n var currentPath_1 = [];\n spec.forEach(function (s, i) {\n if (isArray(s)) {\n getSpecifierPaths(s).forEach(function (p) {\n return paths_1.push(currentPath_1.concat(p));\n });\n currentPath_1.length = 0;\n } else {\n currentPath_1.push(s);\n\n if (!isArray(spec[i + 1])) {\n paths_1.push(currentPath_1.slice(0));\n currentPath_1.length = 0;\n }\n }\n });\n }\n\n return info.paths;\n}\n\nfunction extractKey(object, key) {\n return object[key];\n}\n\nexport function extractKeyPath(object, path, extract) {\n extract = extract || extractKey;\n return normalize(path.reduce(function reducer(obj, key) {\n return isArray(obj) ? obj.map(function (child) {\n return reducer(child, key);\n }) : obj && extract(obj, key);\n }, object));\n}\n\nfunction normalize(value) {\n if (isNonNullObject(value)) {\n if (isArray(value)) {\n return value.map(normalize);\n }\n\n return collectSpecifierPaths(Object.keys(value).sort(), function (path) {\n return extractKeyPath(value, path);\n });\n }\n\n return value;\n}","import { __assign, __rest } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { storeKeyNameFromField, argumentsObjectFromField, isReference, getStoreKeyName, isNonNullObject, stringifyForDisplay } from \"../../utilities/index.js\";\nimport { hasOwn, fieldNameFromStoreName, storeValueIsStoreObject, selectionSetMatchesResult, TypeOrFieldNameRegExp, defaultDataIdFromObject, isArray } from \"./helpers.js\";\nimport { cacheSlot } from \"./reactiveVars.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\nimport { keyArgsFnFromSpecifier, keyFieldsFnFromSpecifier } from \"./key-extractor.js\";\ngetStoreKeyName.setStringify(canonicalStringify);\n\nfunction argsFromFieldSpecifier(spec) {\n return spec.args !== void 0 ? spec.args : spec.field ? argumentsObjectFromField(spec.field, spec.variables) : null;\n}\n\nvar nullKeyFieldsFn = function nullKeyFieldsFn() {\n return void 0;\n};\n\nvar simpleKeyArgsFn = function simpleKeyArgsFn(_args, context) {\n return context.fieldName;\n};\n\nvar mergeTrueFn = function mergeTrueFn(existing, incoming, _a) {\n var mergeObjects = _a.mergeObjects;\n return mergeObjects(existing, incoming);\n};\n\nvar mergeFalseFn = function mergeFalseFn(_, incoming) {\n return incoming;\n};\n\nvar Policies = function () {\n function Policies(config) {\n this.config = config;\n this.typePolicies = Object.create(null);\n this.toBeAdded = Object.create(null);\n this.supertypeMap = new Map();\n this.fuzzySubtypes = new Map();\n this.rootIdsByTypename = Object.create(null);\n this.rootTypenamesById = Object.create(null);\n this.usingPossibleTypes = false;\n this.config = __assign({\n dataIdFromObject: defaultDataIdFromObject\n }, config);\n this.cache = this.config.cache;\n this.setRootTypename(\"Query\");\n this.setRootTypename(\"Mutation\");\n this.setRootTypename(\"Subscription\");\n\n if (config.possibleTypes) {\n this.addPossibleTypes(config.possibleTypes);\n }\n\n if (config.typePolicies) {\n this.addTypePolicies(config.typePolicies);\n }\n }\n\n Policies.prototype.identify = function (object, partialContext) {\n var _a;\n\n var policies = this;\n var typename = partialContext && (partialContext.typename || ((_a = partialContext.storeObject) === null || _a === void 0 ? void 0 : _a.__typename)) || object.__typename;\n\n if (typename === this.rootTypenamesById.ROOT_QUERY) {\n return [\"ROOT_QUERY\"];\n }\n\n var storeObject = partialContext && partialContext.storeObject || object;\n\n var context = __assign(__assign({}, partialContext), {\n typename: typename,\n storeObject: storeObject,\n readField: partialContext && partialContext.readField || function () {\n var options = normalizeReadFieldOptions(arguments, storeObject);\n return policies.readField(options, {\n store: policies.cache[\"data\"],\n variables: options.variables\n });\n }\n });\n\n var id;\n var policy = typename && this.getTypePolicy(typename);\n var keyFn = policy && policy.keyFn || this.config.dataIdFromObject;\n\n while (keyFn) {\n var specifierOrId = keyFn(object, context);\n\n if (isArray(specifierOrId)) {\n keyFn = keyFieldsFnFromSpecifier(specifierOrId);\n } else {\n id = specifierOrId;\n break;\n }\n }\n\n id = id ? String(id) : void 0;\n return context.keyObject ? [id, context.keyObject] : [id];\n };\n\n Policies.prototype.addTypePolicies = function (typePolicies) {\n var _this = this;\n\n Object.keys(typePolicies).forEach(function (typename) {\n var _a = typePolicies[typename],\n queryType = _a.queryType,\n mutationType = _a.mutationType,\n subscriptionType = _a.subscriptionType,\n incoming = __rest(_a, [\"queryType\", \"mutationType\", \"subscriptionType\"]);\n\n if (queryType) _this.setRootTypename(\"Query\", typename);\n if (mutationType) _this.setRootTypename(\"Mutation\", typename);\n if (subscriptionType) _this.setRootTypename(\"Subscription\", typename);\n\n if (hasOwn.call(_this.toBeAdded, typename)) {\n _this.toBeAdded[typename].push(incoming);\n } else {\n _this.toBeAdded[typename] = [incoming];\n }\n });\n };\n\n Policies.prototype.updateTypePolicy = function (typename, incoming) {\n var _this = this;\n\n var existing = this.getTypePolicy(typename);\n var keyFields = incoming.keyFields,\n fields = incoming.fields;\n\n function setMerge(existing, merge) {\n existing.merge = typeof merge === \"function\" ? merge : merge === true ? mergeTrueFn : merge === false ? mergeFalseFn : existing.merge;\n }\n\n setMerge(existing, incoming.merge);\n existing.keyFn = keyFields === false ? nullKeyFieldsFn : isArray(keyFields) ? keyFieldsFnFromSpecifier(keyFields) : typeof keyFields === \"function\" ? keyFields : existing.keyFn;\n\n if (fields) {\n Object.keys(fields).forEach(function (fieldName) {\n var existing = _this.getFieldPolicy(typename, fieldName, true);\n\n var incoming = fields[fieldName];\n\n if (typeof incoming === \"function\") {\n existing.read = incoming;\n } else {\n var keyArgs = incoming.keyArgs,\n read = incoming.read,\n merge = incoming.merge;\n existing.keyFn = keyArgs === false ? simpleKeyArgsFn : isArray(keyArgs) ? keyArgsFnFromSpecifier(keyArgs) : typeof keyArgs === \"function\" ? keyArgs : existing.keyFn;\n\n if (typeof read === \"function\") {\n existing.read = read;\n }\n\n setMerge(existing, merge);\n }\n\n if (existing.read && existing.merge) {\n existing.keyFn = existing.keyFn || simpleKeyArgsFn;\n }\n });\n }\n };\n\n Policies.prototype.setRootTypename = function (which, typename) {\n if (typename === void 0) {\n typename = which;\n }\n\n var rootId = \"ROOT_\" + which.toUpperCase();\n var old = this.rootTypenamesById[rootId];\n\n if (typename !== old) {\n __DEV__ ? invariant(!old || old === which, \"Cannot change root \".concat(which, \" __typename more than once\")) : invariant(!old || old === which, 3);\n if (old) delete this.rootIdsByTypename[old];\n this.rootIdsByTypename[typename] = rootId;\n this.rootTypenamesById[rootId] = typename;\n }\n };\n\n Policies.prototype.addPossibleTypes = function (possibleTypes) {\n var _this = this;\n\n this.usingPossibleTypes = true;\n Object.keys(possibleTypes).forEach(function (supertype) {\n _this.getSupertypeSet(supertype, true);\n\n possibleTypes[supertype].forEach(function (subtype) {\n _this.getSupertypeSet(subtype, true).add(supertype);\n\n var match = subtype.match(TypeOrFieldNameRegExp);\n\n if (!match || match[0] !== subtype) {\n _this.fuzzySubtypes.set(subtype, new RegExp(subtype));\n }\n });\n });\n };\n\n Policies.prototype.getTypePolicy = function (typename) {\n var _this = this;\n\n if (!hasOwn.call(this.typePolicies, typename)) {\n var policy_1 = this.typePolicies[typename] = Object.create(null);\n policy_1.fields = Object.create(null);\n var supertypes = this.supertypeMap.get(typename);\n\n if (supertypes && supertypes.size) {\n supertypes.forEach(function (supertype) {\n var _a = _this.getTypePolicy(supertype),\n fields = _a.fields,\n rest = __rest(_a, [\"fields\"]);\n\n Object.assign(policy_1, rest);\n Object.assign(policy_1.fields, fields);\n });\n }\n }\n\n var inbox = this.toBeAdded[typename];\n\n if (inbox && inbox.length) {\n inbox.splice(0).forEach(function (policy) {\n _this.updateTypePolicy(typename, policy);\n });\n }\n\n return this.typePolicies[typename];\n };\n\n Policies.prototype.getFieldPolicy = function (typename, fieldName, createIfMissing) {\n if (typename) {\n var fieldPolicies = this.getTypePolicy(typename).fields;\n return fieldPolicies[fieldName] || createIfMissing && (fieldPolicies[fieldName] = Object.create(null));\n }\n };\n\n Policies.prototype.getSupertypeSet = function (subtype, createIfMissing) {\n var supertypeSet = this.supertypeMap.get(subtype);\n\n if (!supertypeSet && createIfMissing) {\n this.supertypeMap.set(subtype, supertypeSet = new Set());\n }\n\n return supertypeSet;\n };\n\n Policies.prototype.fragmentMatches = function (fragment, typename, result, variables) {\n var _this = this;\n\n if (!fragment.typeCondition) return true;\n if (!typename) return false;\n var supertype = fragment.typeCondition.name.value;\n if (typename === supertype) return true;\n\n if (this.usingPossibleTypes && this.supertypeMap.has(supertype)) {\n var typenameSupertypeSet = this.getSupertypeSet(typename, true);\n var workQueue_1 = [typenameSupertypeSet];\n\n var maybeEnqueue_1 = function maybeEnqueue_1(subtype) {\n var supertypeSet = _this.getSupertypeSet(subtype, false);\n\n if (supertypeSet && supertypeSet.size && workQueue_1.indexOf(supertypeSet) < 0) {\n workQueue_1.push(supertypeSet);\n }\n };\n\n var needToCheckFuzzySubtypes = !!(result && this.fuzzySubtypes.size);\n var checkingFuzzySubtypes = false;\n\n for (var i = 0; i < workQueue_1.length; ++i) {\n var supertypeSet = workQueue_1[i];\n\n if (supertypeSet.has(supertype)) {\n if (!typenameSupertypeSet.has(supertype)) {\n if (checkingFuzzySubtypes) {\n __DEV__ && invariant.warn(\"Inferring subtype \".concat(typename, \" of supertype \").concat(supertype));\n }\n\n typenameSupertypeSet.add(supertype);\n }\n\n return true;\n }\n\n supertypeSet.forEach(maybeEnqueue_1);\n\n if (needToCheckFuzzySubtypes && i === workQueue_1.length - 1 && selectionSetMatchesResult(fragment.selectionSet, result, variables)) {\n needToCheckFuzzySubtypes = false;\n checkingFuzzySubtypes = true;\n this.fuzzySubtypes.forEach(function (regExp, fuzzyString) {\n var match = typename.match(regExp);\n\n if (match && match[0] === typename) {\n maybeEnqueue_1(fuzzyString);\n }\n });\n }\n }\n }\n\n return false;\n };\n\n Policies.prototype.hasKeyArgs = function (typename, fieldName) {\n var policy = this.getFieldPolicy(typename, fieldName, false);\n return !!(policy && policy.keyFn);\n };\n\n Policies.prototype.getStoreFieldName = function (fieldSpec) {\n var typename = fieldSpec.typename,\n fieldName = fieldSpec.fieldName;\n var policy = this.getFieldPolicy(typename, fieldName, false);\n var storeFieldName;\n var keyFn = policy && policy.keyFn;\n\n if (keyFn && typename) {\n var context = {\n typename: typename,\n fieldName: fieldName,\n field: fieldSpec.field || null,\n variables: fieldSpec.variables\n };\n var args = argsFromFieldSpecifier(fieldSpec);\n\n while (keyFn) {\n var specifierOrString = keyFn(args, context);\n\n if (isArray(specifierOrString)) {\n keyFn = keyArgsFnFromSpecifier(specifierOrString);\n } else {\n storeFieldName = specifierOrString || fieldName;\n break;\n }\n }\n }\n\n if (storeFieldName === void 0) {\n storeFieldName = fieldSpec.field ? storeKeyNameFromField(fieldSpec.field, fieldSpec.variables) : getStoreKeyName(fieldName, argsFromFieldSpecifier(fieldSpec));\n }\n\n if (storeFieldName === false) {\n return fieldName;\n }\n\n return fieldName === fieldNameFromStoreName(storeFieldName) ? storeFieldName : fieldName + \":\" + storeFieldName;\n };\n\n Policies.prototype.readField = function (options, context) {\n var objectOrReference = options.from;\n if (!objectOrReference) return;\n var nameOrField = options.field || options.fieldName;\n if (!nameOrField) return;\n\n if (options.typename === void 0) {\n var typename = context.store.getFieldValue(objectOrReference, \"__typename\");\n if (typename) options.typename = typename;\n }\n\n var storeFieldName = this.getStoreFieldName(options);\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var existing = context.store.getFieldValue(objectOrReference, storeFieldName);\n var policy = this.getFieldPolicy(options.typename, fieldName, false);\n var read = policy && policy.read;\n\n if (read) {\n var readOptions = makeFieldFunctionOptions(this, objectOrReference, options, context, context.store.getStorage(isReference(objectOrReference) ? objectOrReference.__ref : objectOrReference, storeFieldName));\n return cacheSlot.withValue(this.cache, read, [existing, readOptions]);\n }\n\n return existing;\n };\n\n Policies.prototype.getReadFunction = function (typename, fieldName) {\n var policy = this.getFieldPolicy(typename, fieldName, false);\n return policy && policy.read;\n };\n\n Policies.prototype.getMergeFunction = function (parentTypename, fieldName, childTypename) {\n var policy = this.getFieldPolicy(parentTypename, fieldName, false);\n var merge = policy && policy.merge;\n\n if (!merge && childTypename) {\n policy = this.getTypePolicy(childTypename);\n merge = policy && policy.merge;\n }\n\n return merge;\n };\n\n Policies.prototype.runMergeFunction = function (existing, incoming, _a, context, storage) {\n var field = _a.field,\n typename = _a.typename,\n merge = _a.merge;\n\n if (merge === mergeTrueFn) {\n return makeMergeObjectsFunction(context.store)(existing, incoming);\n }\n\n if (merge === mergeFalseFn) {\n return incoming;\n }\n\n if (context.overwrite) {\n existing = void 0;\n }\n\n return merge(existing, incoming, makeFieldFunctionOptions(this, void 0, {\n typename: typename,\n fieldName: field.name.value,\n field: field,\n variables: context.variables\n }, context, storage || Object.create(null)));\n };\n\n return Policies;\n}();\n\nexport { Policies };\n\nfunction makeFieldFunctionOptions(policies, objectOrReference, fieldSpec, context, storage) {\n var storeFieldName = policies.getStoreFieldName(fieldSpec);\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var variables = fieldSpec.variables || context.variables;\n var _a = context.store,\n toReference = _a.toReference,\n canRead = _a.canRead;\n return {\n args: argsFromFieldSpecifier(fieldSpec),\n field: fieldSpec.field || null,\n fieldName: fieldName,\n storeFieldName: storeFieldName,\n variables: variables,\n isReference: isReference,\n toReference: toReference,\n storage: storage,\n cache: policies.cache,\n canRead: canRead,\n readField: function readField() {\n return policies.readField(normalizeReadFieldOptions(arguments, objectOrReference, variables), context);\n },\n mergeObjects: makeMergeObjectsFunction(context.store)\n };\n}\n\nexport function normalizeReadFieldOptions(readFieldArgs, objectOrReference, variables) {\n var fieldNameOrOptions = readFieldArgs[0],\n from = readFieldArgs[1],\n argc = readFieldArgs.length;\n var options;\n\n if (typeof fieldNameOrOptions === \"string\") {\n options = {\n fieldName: fieldNameOrOptions,\n from: argc > 1 ? from : objectOrReference\n };\n } else {\n options = __assign({}, fieldNameOrOptions);\n\n if (!hasOwn.call(options, \"from\")) {\n options.from = objectOrReference;\n }\n }\n\n if (__DEV__ && options.from === void 0) {\n __DEV__ && invariant.warn(\"Undefined 'from' passed to readField with arguments \".concat(stringifyForDisplay(Array.from(readFieldArgs))));\n }\n\n if (void 0 === options.variables) {\n options.variables = variables;\n }\n\n return options;\n}\n\nfunction makeMergeObjectsFunction(store) {\n return function mergeObjects(existing, incoming) {\n if (isArray(existing) || isArray(incoming)) {\n throw __DEV__ ? new InvariantError(\"Cannot automatically merge arrays\") : new InvariantError(4);\n }\n\n if (isNonNullObject(existing) && isNonNullObject(incoming)) {\n var eType = store.getFieldValue(existing, \"__typename\");\n var iType = store.getFieldValue(incoming, \"__typename\");\n var typesDiffer = eType && iType && eType !== iType;\n\n if (typesDiffer) {\n return incoming;\n }\n\n if (isReference(existing) && storeValueIsStoreObject(incoming)) {\n store.merge(existing.__ref, incoming);\n return existing;\n }\n\n if (storeValueIsStoreObject(existing) && isReference(incoming)) {\n store.merge(existing, incoming.__ref);\n return incoming;\n }\n\n if (storeValueIsStoreObject(existing) && storeValueIsStoreObject(incoming)) {\n return __assign(__assign({}, existing), incoming);\n }\n }\n\n return incoming;\n };\n}","import { makeUniqueId } from \"./makeUniqueId.js\";\nexport function stringifyForDisplay(value) {\n var undefId = makeUniqueId(\"stringifyForDisplay\");\n return JSON.stringify(value, function (key, value) {\n return value === void 0 ? undefId : value;\n }).split(JSON.stringify(undefId)).join(\"<undefined>\");\n}","import { __assign } from \"tslib\";\nimport { invariant, InvariantError } from \"../../utilities/globals/index.js\";\nimport { equal } from '@wry/equality';\nimport { Trie } from '@wry/trie';\nimport { Kind } from 'graphql';\nimport { getFragmentFromSelection, getDefaultValues, getOperationDefinition, getTypenameFromResult, makeReference, isField, resultKeyNameFromField, isReference, shouldInclude, cloneDeep, addTypenameToDocument, isNonEmptyArray, argumentsObjectFromField } from \"../../utilities/index.js\";\nimport { isArray, makeProcessedFieldsMerger, fieldNameFromStoreName, storeValueIsStoreObject, extractFragmentContext } from \"./helpers.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\nimport { normalizeReadFieldOptions } from \"./policies.js\";\n;\n\nfunction getContextFlavor(context, clientOnly, deferred) {\n var key = \"\".concat(clientOnly).concat(deferred);\n var flavored = context.flavors.get(key);\n\n if (!flavored) {\n context.flavors.set(key, flavored = context.clientOnly === clientOnly && context.deferred === deferred ? context : __assign(__assign({}, context), {\n clientOnly: clientOnly,\n deferred: deferred\n }));\n }\n\n return flavored;\n}\n\nvar StoreWriter = function () {\n function StoreWriter(cache, reader, fragments) {\n this.cache = cache;\n this.reader = reader;\n this.fragments = fragments;\n }\n\n StoreWriter.prototype.writeToStore = function (store, _a) {\n var _this = this;\n\n var query = _a.query,\n result = _a.result,\n dataId = _a.dataId,\n variables = _a.variables,\n overwrite = _a.overwrite;\n var operationDefinition = getOperationDefinition(query);\n var merger = makeProcessedFieldsMerger();\n variables = __assign(__assign({}, getDefaultValues(operationDefinition)), variables);\n\n var context = __assign(__assign({\n store: store,\n written: Object.create(null),\n merge: function merge(existing, incoming) {\n return merger.merge(existing, incoming);\n },\n variables: variables,\n varString: canonicalStringify(variables)\n }, extractFragmentContext(query, this.fragments)), {\n overwrite: !!overwrite,\n incomingById: new Map(),\n clientOnly: false,\n deferred: false,\n flavors: new Map()\n });\n\n var ref = this.processSelectionSet({\n result: result || Object.create(null),\n dataId: dataId,\n selectionSet: operationDefinition.selectionSet,\n mergeTree: {\n map: new Map()\n },\n context: context\n });\n\n if (!isReference(ref)) {\n throw __DEV__ ? new InvariantError(\"Could not identify object \".concat(JSON.stringify(result))) : new InvariantError(7);\n }\n\n context.incomingById.forEach(function (_a, dataId) {\n var storeObject = _a.storeObject,\n mergeTree = _a.mergeTree,\n fieldNodeSet = _a.fieldNodeSet;\n var entityRef = makeReference(dataId);\n\n if (mergeTree && mergeTree.map.size) {\n var applied = _this.applyMerges(mergeTree, entityRef, storeObject, context);\n\n if (isReference(applied)) {\n return;\n }\n\n storeObject = applied;\n }\n\n if (__DEV__ && !context.overwrite) {\n var fieldsWithSelectionSets_1 = Object.create(null);\n fieldNodeSet.forEach(function (field) {\n if (field.selectionSet) {\n fieldsWithSelectionSets_1[field.name.value] = true;\n }\n });\n\n var hasSelectionSet_1 = function hasSelectionSet_1(storeFieldName) {\n return fieldsWithSelectionSets_1[fieldNameFromStoreName(storeFieldName)] === true;\n };\n\n var hasMergeFunction_1 = function hasMergeFunction_1(storeFieldName) {\n var childTree = mergeTree && mergeTree.map.get(storeFieldName);\n return Boolean(childTree && childTree.info && childTree.info.merge);\n };\n\n Object.keys(storeObject).forEach(function (storeFieldName) {\n if (hasSelectionSet_1(storeFieldName) && !hasMergeFunction_1(storeFieldName)) {\n warnAboutDataLoss(entityRef, storeObject, storeFieldName, context.store);\n }\n });\n }\n\n store.merge(dataId, storeObject);\n });\n store.retain(ref.__ref);\n return ref;\n };\n\n StoreWriter.prototype.processSelectionSet = function (_a) {\n var _this = this;\n\n var dataId = _a.dataId,\n result = _a.result,\n selectionSet = _a.selectionSet,\n context = _a.context,\n mergeTree = _a.mergeTree;\n var policies = this.cache.policies;\n var incoming = Object.create(null);\n var typename = dataId && policies.rootTypenamesById[dataId] || getTypenameFromResult(result, selectionSet, context.fragmentMap) || dataId && context.store.get(dataId, \"__typename\");\n\n if (\"string\" === typeof typename) {\n incoming.__typename = typename;\n }\n\n var readField = function readField() {\n var options = normalizeReadFieldOptions(arguments, incoming, context.variables);\n\n if (isReference(options.from)) {\n var info = context.incomingById.get(options.from.__ref);\n\n if (info) {\n var result_1 = policies.readField(__assign(__assign({}, options), {\n from: info.storeObject\n }), context);\n\n if (result_1 !== void 0) {\n return result_1;\n }\n }\n }\n\n return policies.readField(options, context);\n };\n\n var fieldNodeSet = new Set();\n this.flattenFields(selectionSet, result, context, typename).forEach(function (context, field) {\n var _a;\n\n var resultFieldKey = resultKeyNameFromField(field);\n var value = result[resultFieldKey];\n fieldNodeSet.add(field);\n\n if (value !== void 0) {\n var storeFieldName = policies.getStoreFieldName({\n typename: typename,\n fieldName: field.name.value,\n field: field,\n variables: context.variables\n });\n var childTree = getChildMergeTree(mergeTree, storeFieldName);\n\n var incomingValue = _this.processFieldValue(value, field, field.selectionSet ? getContextFlavor(context, false, false) : context, childTree);\n\n var childTypename = void 0;\n\n if (field.selectionSet && (isReference(incomingValue) || storeValueIsStoreObject(incomingValue))) {\n childTypename = readField(\"__typename\", incomingValue);\n }\n\n var merge = policies.getMergeFunction(typename, field.name.value, childTypename);\n\n if (merge) {\n childTree.info = {\n field: field,\n typename: typename,\n merge: merge\n };\n } else {\n maybeRecycleChildMergeTree(mergeTree, storeFieldName);\n }\n\n incoming = context.merge(incoming, (_a = {}, _a[storeFieldName] = incomingValue, _a));\n } else if (__DEV__ && !context.clientOnly && !context.deferred && !addTypenameToDocument.added(field) && !policies.getReadFunction(typename, field.name.value)) {\n __DEV__ && invariant.error(\"Missing field '\".concat(resultKeyNameFromField(field), \"' while writing result \").concat(JSON.stringify(result, null, 2)).substring(0, 1000));\n }\n });\n\n try {\n var _b = policies.identify(result, {\n typename: typename,\n selectionSet: selectionSet,\n fragmentMap: context.fragmentMap,\n storeObject: incoming,\n readField: readField\n }),\n id = _b[0],\n keyObject = _b[1];\n\n dataId = dataId || id;\n\n if (keyObject) {\n incoming = context.merge(incoming, keyObject);\n }\n } catch (e) {\n if (!dataId) throw e;\n }\n\n if (\"string\" === typeof dataId) {\n var dataRef = makeReference(dataId);\n var sets = context.written[dataId] || (context.written[dataId] = []);\n if (sets.indexOf(selectionSet) >= 0) return dataRef;\n sets.push(selectionSet);\n\n if (this.reader && this.reader.isFresh(result, dataRef, selectionSet, context)) {\n return dataRef;\n }\n\n var previous_1 = context.incomingById.get(dataId);\n\n if (previous_1) {\n previous_1.storeObject = context.merge(previous_1.storeObject, incoming);\n previous_1.mergeTree = mergeMergeTrees(previous_1.mergeTree, mergeTree);\n fieldNodeSet.forEach(function (field) {\n return previous_1.fieldNodeSet.add(field);\n });\n } else {\n context.incomingById.set(dataId, {\n storeObject: incoming,\n mergeTree: mergeTreeIsEmpty(mergeTree) ? void 0 : mergeTree,\n fieldNodeSet: fieldNodeSet\n });\n }\n\n return dataRef;\n }\n\n return incoming;\n };\n\n StoreWriter.prototype.processFieldValue = function (value, field, context, mergeTree) {\n var _this = this;\n\n if (!field.selectionSet || value === null) {\n return __DEV__ ? cloneDeep(value) : value;\n }\n\n if (isArray(value)) {\n return value.map(function (item, i) {\n var value = _this.processFieldValue(item, field, context, getChildMergeTree(mergeTree, i));\n\n maybeRecycleChildMergeTree(mergeTree, i);\n return value;\n });\n }\n\n return this.processSelectionSet({\n result: value,\n selectionSet: field.selectionSet,\n context: context,\n mergeTree: mergeTree\n });\n };\n\n StoreWriter.prototype.flattenFields = function (selectionSet, result, context, typename) {\n if (typename === void 0) {\n typename = getTypenameFromResult(result, selectionSet, context.fragmentMap);\n }\n\n var fieldMap = new Map();\n var policies = this.cache.policies;\n var limitingTrie = new Trie(false);\n\n (function flatten(selectionSet, inheritedContext) {\n var visitedNode = limitingTrie.lookup(selectionSet, inheritedContext.clientOnly, inheritedContext.deferred);\n if (visitedNode.visited) return;\n visitedNode.visited = true;\n selectionSet.selections.forEach(function (selection) {\n if (!shouldInclude(selection, context.variables)) return;\n var clientOnly = inheritedContext.clientOnly,\n deferred = inheritedContext.deferred;\n\n if (!(clientOnly && deferred) && isNonEmptyArray(selection.directives)) {\n selection.directives.forEach(function (dir) {\n var name = dir.name.value;\n if (name === \"client\") clientOnly = true;\n\n if (name === \"defer\") {\n var args = argumentsObjectFromField(dir, context.variables);\n\n if (!args || args.if !== false) {\n deferred = true;\n }\n }\n });\n }\n\n if (isField(selection)) {\n var existing = fieldMap.get(selection);\n\n if (existing) {\n clientOnly = clientOnly && existing.clientOnly;\n deferred = deferred && existing.deferred;\n }\n\n fieldMap.set(selection, getContextFlavor(context, clientOnly, deferred));\n } else {\n var fragment = getFragmentFromSelection(selection, context.lookupFragment);\n\n if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) {\n throw __DEV__ ? new InvariantError(\"No fragment named \".concat(selection.name.value)) : new InvariantError(8);\n }\n\n if (fragment && policies.fragmentMatches(fragment, typename, result, context.variables)) {\n flatten(fragment.selectionSet, getContextFlavor(context, clientOnly, deferred));\n }\n }\n });\n })(selectionSet, context);\n\n return fieldMap;\n };\n\n StoreWriter.prototype.applyMerges = function (mergeTree, existing, incoming, context, getStorageArgs) {\n var _a;\n\n var _this = this;\n\n if (mergeTree.map.size && !isReference(incoming)) {\n var e_1 = !isArray(incoming) && (isReference(existing) || storeValueIsStoreObject(existing)) ? existing : void 0;\n var i_1 = incoming;\n\n if (e_1 && !getStorageArgs) {\n getStorageArgs = [isReference(e_1) ? e_1.__ref : e_1];\n }\n\n var changedFields_1;\n\n var getValue_1 = function getValue_1(from, name) {\n return isArray(from) ? typeof name === \"number\" ? from[name] : void 0 : context.store.getFieldValue(from, String(name));\n };\n\n mergeTree.map.forEach(function (childTree, storeFieldName) {\n var eVal = getValue_1(e_1, storeFieldName);\n var iVal = getValue_1(i_1, storeFieldName);\n if (void 0 === iVal) return;\n\n if (getStorageArgs) {\n getStorageArgs.push(storeFieldName);\n }\n\n var aVal = _this.applyMerges(childTree, eVal, iVal, context, getStorageArgs);\n\n if (aVal !== iVal) {\n changedFields_1 = changedFields_1 || new Map();\n changedFields_1.set(storeFieldName, aVal);\n }\n\n if (getStorageArgs) {\n invariant(getStorageArgs.pop() === storeFieldName);\n }\n });\n\n if (changedFields_1) {\n incoming = isArray(i_1) ? i_1.slice(0) : __assign({}, i_1);\n changedFields_1.forEach(function (value, name) {\n incoming[name] = value;\n });\n }\n }\n\n if (mergeTree.info) {\n return this.cache.policies.runMergeFunction(existing, incoming, mergeTree.info, context, getStorageArgs && (_a = context.store).getStorage.apply(_a, getStorageArgs));\n }\n\n return incoming;\n };\n\n return StoreWriter;\n}();\n\nexport { StoreWriter };\nvar emptyMergeTreePool = [];\n\nfunction getChildMergeTree(_a, name) {\n var map = _a.map;\n\n if (!map.has(name)) {\n map.set(name, emptyMergeTreePool.pop() || {\n map: new Map()\n });\n }\n\n return map.get(name);\n}\n\nfunction mergeMergeTrees(left, right) {\n if (left === right || !right || mergeTreeIsEmpty(right)) return left;\n if (!left || mergeTreeIsEmpty(left)) return right;\n var info = left.info && right.info ? __assign(__assign({}, left.info), right.info) : left.info || right.info;\n var needToMergeMaps = left.map.size && right.map.size;\n var map = needToMergeMaps ? new Map() : left.map.size ? left.map : right.map;\n var merged = {\n info: info,\n map: map\n };\n\n if (needToMergeMaps) {\n var remainingRightKeys_1 = new Set(right.map.keys());\n left.map.forEach(function (leftTree, key) {\n merged.map.set(key, mergeMergeTrees(leftTree, right.map.get(key)));\n remainingRightKeys_1.delete(key);\n });\n remainingRightKeys_1.forEach(function (key) {\n merged.map.set(key, mergeMergeTrees(right.map.get(key), left.map.get(key)));\n });\n }\n\n return merged;\n}\n\nfunction mergeTreeIsEmpty(tree) {\n return !tree || !(tree.info || tree.map.size);\n}\n\nfunction maybeRecycleChildMergeTree(_a, name) {\n var map = _a.map;\n var childTree = map.get(name);\n\n if (childTree && mergeTreeIsEmpty(childTree)) {\n emptyMergeTreePool.push(childTree);\n map.delete(name);\n }\n}\n\nvar warnings = new Set();\n\nfunction warnAboutDataLoss(existingRef, incomingObj, storeFieldName, store) {\n var getChild = function getChild(objOrRef) {\n var child = store.getFieldValue(objOrRef, storeFieldName);\n return typeof child === \"object\" && child;\n };\n\n var existing = getChild(existingRef);\n if (!existing) return;\n var incoming = getChild(incomingObj);\n if (!incoming) return;\n if (isReference(existing)) return;\n if (equal(existing, incoming)) return;\n\n if (Object.keys(existing).every(function (key) {\n return store.getFieldValue(incoming, key) !== void 0;\n })) {\n return;\n }\n\n var parentType = store.getFieldValue(existingRef, \"__typename\") || store.getFieldValue(incomingObj, \"__typename\");\n var fieldName = fieldNameFromStoreName(storeFieldName);\n var typeDotName = \"\".concat(parentType, \".\").concat(fieldName);\n if (warnings.has(typeDotName)) return;\n warnings.add(typeDotName);\n var childTypenames = [];\n\n if (!isArray(existing) && !isArray(incoming)) {\n [existing, incoming].forEach(function (child) {\n var typename = store.getFieldValue(child, \"__typename\");\n\n if (typeof typename === \"string\" && !childTypenames.includes(typename)) {\n childTypenames.push(typename);\n }\n });\n }\n\n __DEV__ && invariant.warn(\"Cache data may be lost when replacing the \".concat(fieldName, \" field of a \").concat(parentType, \" object.\\n\\nTo address this problem (which is not a bug in Apollo Client), \").concat(childTypenames.length ? \"either ensure all objects of type \" + childTypenames.join(\" and \") + \" have an ID or a custom merge function, or \" : \"\", \"define a custom merge function for the \").concat(typeDotName, \" field, so InMemoryCache can safely merge these objects:\\n\\n existing: \").concat(JSON.stringify(existing).slice(0, 1000), \"\\n incoming: \").concat(JSON.stringify(incoming).slice(0, 1000), \"\\n\\nFor more information about these options, please refer to the documentation:\\n\\n * Ensuring entity objects have IDs: https://go.apollo.dev/c/generating-unique-identifiers\\n * Defining custom merge functions: https://go.apollo.dev/c/merging-non-normalized-objects\\n\"));\n}","import { __assign, __extends } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport \"./fixPolyfills.js\";\nimport { wrap } from 'optimism';\nimport { equal } from '@wry/equality';\nimport { ApolloCache } from \"../core/cache.js\";\nimport { MissingFieldError } from \"../core/types/common.js\";\nimport { addTypenameToDocument, isReference } from \"../../utilities/index.js\";\nimport { StoreReader } from \"./readFromStore.js\";\nimport { StoreWriter } from \"./writeToStore.js\";\nimport { EntityStore, supportsResultCaching } from \"./entityStore.js\";\nimport { makeVar, forgetCache, recallCache } from \"./reactiveVars.js\";\nimport { Policies } from \"./policies.js\";\nimport { hasOwn, normalizeConfig, shouldCanonizeResults } from \"./helpers.js\";\nimport { canonicalStringify } from \"./object-canon.js\";\n\nvar InMemoryCache = function (_super) {\n __extends(InMemoryCache, _super);\n\n function InMemoryCache(config) {\n if (config === void 0) {\n config = {};\n }\n\n var _this = _super.call(this) || this;\n\n _this.watches = new Set();\n _this.typenameDocumentCache = new Map();\n _this.makeVar = makeVar;\n _this.txCount = 0;\n _this.config = normalizeConfig(config);\n _this.addTypename = !!_this.config.addTypename;\n _this.policies = new Policies({\n cache: _this,\n dataIdFromObject: _this.config.dataIdFromObject,\n possibleTypes: _this.config.possibleTypes,\n typePolicies: _this.config.typePolicies\n });\n\n _this.init();\n\n return _this;\n }\n\n InMemoryCache.prototype.init = function () {\n var rootStore = this.data = new EntityStore.Root({\n policies: this.policies,\n resultCaching: this.config.resultCaching\n });\n this.optimisticData = rootStore.stump;\n this.resetResultCache();\n };\n\n InMemoryCache.prototype.resetResultCache = function (resetResultIdentities) {\n var _this = this;\n\n var previousReader = this.storeReader;\n var fragments = this.config.fragments;\n this.storeWriter = new StoreWriter(this, this.storeReader = new StoreReader({\n cache: this,\n addTypename: this.addTypename,\n resultCacheMaxSize: this.config.resultCacheMaxSize,\n canonizeResults: shouldCanonizeResults(this.config),\n canon: resetResultIdentities ? void 0 : previousReader && previousReader.canon,\n fragments: fragments\n }), fragments);\n this.maybeBroadcastWatch = wrap(function (c, options) {\n return _this.broadcastWatch(c, options);\n }, {\n max: this.config.resultCacheMaxSize,\n makeCacheKey: function makeCacheKey(c) {\n var store = c.optimistic ? _this.optimisticData : _this.data;\n\n if (supportsResultCaching(store)) {\n var optimistic = c.optimistic,\n id = c.id,\n variables = c.variables;\n return store.makeCacheKey(c.query, c.callback, canonicalStringify({\n optimistic: optimistic,\n id: id,\n variables: variables\n }));\n }\n }\n });\n new Set([this.data.group, this.optimisticData.group]).forEach(function (group) {\n return group.resetCaching();\n });\n };\n\n InMemoryCache.prototype.restore = function (data) {\n this.init();\n if (data) this.data.replace(data);\n return this;\n };\n\n InMemoryCache.prototype.extract = function (optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n\n return (optimistic ? this.optimisticData : this.data).extract();\n };\n\n InMemoryCache.prototype.read = function (options) {\n var _a = options.returnPartialData,\n returnPartialData = _a === void 0 ? false : _a;\n\n try {\n return this.storeReader.diffQueryAgainstStore(__assign(__assign({}, options), {\n store: options.optimistic ? this.optimisticData : this.data,\n config: this.config,\n returnPartialData: returnPartialData\n })).result || null;\n } catch (e) {\n if (e instanceof MissingFieldError) {\n return null;\n }\n\n throw e;\n }\n };\n\n InMemoryCache.prototype.write = function (options) {\n try {\n ++this.txCount;\n return this.storeWriter.writeToStore(this.data, options);\n } finally {\n if (! --this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n\n InMemoryCache.prototype.modify = function (options) {\n if (hasOwn.call(options, \"id\") && !options.id) {\n return false;\n }\n\n var store = options.optimistic ? this.optimisticData : this.data;\n\n try {\n ++this.txCount;\n return store.modify(options.id || \"ROOT_QUERY\", options.fields);\n } finally {\n if (! --this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n\n InMemoryCache.prototype.diff = function (options) {\n return this.storeReader.diffQueryAgainstStore(__assign(__assign({}, options), {\n store: options.optimistic ? this.optimisticData : this.data,\n rootId: options.id || \"ROOT_QUERY\",\n config: this.config\n }));\n };\n\n InMemoryCache.prototype.watch = function (watch) {\n var _this = this;\n\n if (!this.watches.size) {\n recallCache(this);\n }\n\n this.watches.add(watch);\n\n if (watch.immediate) {\n this.maybeBroadcastWatch(watch);\n }\n\n return function () {\n if (_this.watches.delete(watch) && !_this.watches.size) {\n forgetCache(_this);\n }\n\n _this.maybeBroadcastWatch.forget(watch);\n };\n };\n\n InMemoryCache.prototype.gc = function (options) {\n canonicalStringify.reset();\n var ids = this.optimisticData.gc();\n\n if (options && !this.txCount) {\n if (options.resetResultCache) {\n this.resetResultCache(options.resetResultIdentities);\n } else if (options.resetResultIdentities) {\n this.storeReader.resetCanon();\n }\n }\n\n return ids;\n };\n\n InMemoryCache.prototype.retain = function (rootId, optimistic) {\n return (optimistic ? this.optimisticData : this.data).retain(rootId);\n };\n\n InMemoryCache.prototype.release = function (rootId, optimistic) {\n return (optimistic ? this.optimisticData : this.data).release(rootId);\n };\n\n InMemoryCache.prototype.identify = function (object) {\n if (isReference(object)) return object.__ref;\n\n try {\n return this.policies.identify(object)[0];\n } catch (e) {\n __DEV__ && invariant.warn(e);\n }\n };\n\n InMemoryCache.prototype.evict = function (options) {\n if (!options.id) {\n if (hasOwn.call(options, \"id\")) {\n return false;\n }\n\n options = __assign(__assign({}, options), {\n id: \"ROOT_QUERY\"\n });\n }\n\n try {\n ++this.txCount;\n return this.optimisticData.evict(options, this.data);\n } finally {\n if (! --this.txCount && options.broadcast !== false) {\n this.broadcastWatches();\n }\n }\n };\n\n InMemoryCache.prototype.reset = function (options) {\n var _this = this;\n\n this.init();\n canonicalStringify.reset();\n\n if (options && options.discardWatches) {\n this.watches.forEach(function (watch) {\n return _this.maybeBroadcastWatch.forget(watch);\n });\n this.watches.clear();\n forgetCache(this);\n } else {\n this.broadcastWatches();\n }\n\n return Promise.resolve();\n };\n\n InMemoryCache.prototype.removeOptimistic = function (idToRemove) {\n var newOptimisticData = this.optimisticData.removeLayer(idToRemove);\n\n if (newOptimisticData !== this.optimisticData) {\n this.optimisticData = newOptimisticData;\n this.broadcastWatches();\n }\n };\n\n InMemoryCache.prototype.batch = function (options) {\n var _this = this;\n\n var update = options.update,\n _a = options.optimistic,\n optimistic = _a === void 0 ? true : _a,\n removeOptimistic = options.removeOptimistic,\n _onWatchUpdated = options.onWatchUpdated;\n var updateResult;\n\n var perform = function perform(layer) {\n var _a = _this,\n data = _a.data,\n optimisticData = _a.optimisticData;\n ++_this.txCount;\n\n if (layer) {\n _this.data = _this.optimisticData = layer;\n }\n\n try {\n return updateResult = update(_this);\n } finally {\n --_this.txCount;\n _this.data = data;\n _this.optimisticData = optimisticData;\n }\n };\n\n var alreadyDirty = new Set();\n\n if (_onWatchUpdated && !this.txCount) {\n this.broadcastWatches(__assign(__assign({}, options), {\n onWatchUpdated: function onWatchUpdated(watch) {\n alreadyDirty.add(watch);\n return false;\n }\n }));\n }\n\n if (typeof optimistic === 'string') {\n this.optimisticData = this.optimisticData.addLayer(optimistic, perform);\n } else if (optimistic === false) {\n perform(this.data);\n } else {\n perform();\n }\n\n if (typeof removeOptimistic === \"string\") {\n this.optimisticData = this.optimisticData.removeLayer(removeOptimistic);\n }\n\n if (_onWatchUpdated && alreadyDirty.size) {\n this.broadcastWatches(__assign(__assign({}, options), {\n onWatchUpdated: function onWatchUpdated(watch, diff) {\n var result = _onWatchUpdated.call(this, watch, diff);\n\n if (result !== false) {\n alreadyDirty.delete(watch);\n }\n\n return result;\n }\n }));\n\n if (alreadyDirty.size) {\n alreadyDirty.forEach(function (watch) {\n return _this.maybeBroadcastWatch.dirty(watch);\n });\n }\n } else {\n this.broadcastWatches(options);\n }\n\n return updateResult;\n };\n\n InMemoryCache.prototype.performTransaction = function (update, optimisticId) {\n return this.batch({\n update: update,\n optimistic: optimisticId || optimisticId !== null\n });\n };\n\n InMemoryCache.prototype.transformDocument = function (document) {\n if (this.addTypename) {\n var result = this.typenameDocumentCache.get(document);\n\n if (!result) {\n result = addTypenameToDocument(document);\n this.typenameDocumentCache.set(document, result);\n this.typenameDocumentCache.set(result, result);\n }\n\n return result;\n }\n\n return document;\n };\n\n InMemoryCache.prototype.transformForLink = function (document) {\n var fragments = this.config.fragments;\n return fragments ? fragments.transform(document) : document;\n };\n\n InMemoryCache.prototype.broadcastWatches = function (options) {\n var _this = this;\n\n if (!this.txCount) {\n this.watches.forEach(function (c) {\n return _this.maybeBroadcastWatch(c, options);\n });\n }\n };\n\n InMemoryCache.prototype.broadcastWatch = function (c, options) {\n var lastDiff = c.lastDiff;\n var diff = this.diff(c);\n\n if (options) {\n if (c.optimistic && typeof options.optimistic === \"string\") {\n diff.fromOptimisticTransaction = true;\n }\n\n if (options.onWatchUpdated && options.onWatchUpdated.call(this, c, diff, lastDiff) === false) {\n return;\n }\n }\n\n if (!lastDiff || !equal(lastDiff.result, diff.result)) {\n c.callback(c.lastDiff = diff, lastDiff);\n }\n };\n\n return InMemoryCache;\n}(ApolloCache);\n\nexport { InMemoryCache };","import { __assign } from \"tslib\";\nimport { Observable } from \"../../utilities/index.js\";\n\nvar OperationBatcher = function () {\n function OperationBatcher(_a) {\n var batchDebounce = _a.batchDebounce,\n batchInterval = _a.batchInterval,\n batchMax = _a.batchMax,\n batchHandler = _a.batchHandler,\n batchKey = _a.batchKey;\n this.batchesByKey = new Map();\n this.batchDebounce = batchDebounce;\n this.batchInterval = batchInterval;\n this.batchMax = batchMax || 0;\n this.batchHandler = batchHandler;\n\n this.batchKey = batchKey || function () {\n return '';\n };\n }\n\n OperationBatcher.prototype.enqueueRequest = function (request) {\n var _this = this;\n\n var requestCopy = __assign(__assign({}, request), {\n next: [],\n error: [],\n complete: [],\n subscribers: new Set()\n });\n\n var key = this.batchKey(request.operation);\n\n if (!requestCopy.observable) {\n requestCopy.observable = new Observable(function (observer) {\n var batch = _this.batchesByKey.get(key);\n\n if (!batch) _this.batchesByKey.set(key, batch = new Set());\n var isFirstEnqueuedRequest = batch.size === 0;\n var isFirstSubscriber = requestCopy.subscribers.size === 0;\n requestCopy.subscribers.add(observer);\n\n if (isFirstSubscriber) {\n batch.add(requestCopy);\n }\n\n if (observer.next) {\n requestCopy.next.push(observer.next.bind(observer));\n }\n\n if (observer.error) {\n requestCopy.error.push(observer.error.bind(observer));\n }\n\n if (observer.complete) {\n requestCopy.complete.push(observer.complete.bind(observer));\n }\n\n if (isFirstEnqueuedRequest || _this.batchDebounce) {\n _this.scheduleQueueConsumption(key);\n }\n\n if (batch.size === _this.batchMax) {\n _this.consumeQueue(key);\n }\n\n return function () {\n var _a;\n\n if (requestCopy.subscribers.delete(observer) && requestCopy.subscribers.size < 1) {\n if (batch.delete(requestCopy) && batch.size < 1) {\n _this.consumeQueue(key);\n\n (_a = batch.subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();\n }\n }\n };\n });\n }\n\n return requestCopy.observable;\n };\n\n OperationBatcher.prototype.consumeQueue = function (key) {\n if (key === void 0) {\n key = '';\n }\n\n var batch = this.batchesByKey.get(key);\n this.batchesByKey.delete(key);\n\n if (!batch || !batch.size) {\n return;\n }\n\n var operations = [];\n var forwards = [];\n var observables = [];\n var nexts = [];\n var errors = [];\n var completes = [];\n batch.forEach(function (request) {\n operations.push(request.operation);\n forwards.push(request.forward);\n observables.push(request.observable);\n nexts.push(request.next);\n errors.push(request.error);\n completes.push(request.complete);\n });\n var batchedObservable = this.batchHandler(operations, forwards) || Observable.of();\n\n var onError = function onError(error) {\n errors.forEach(function (rejecters) {\n if (rejecters) {\n rejecters.forEach(function (e) {\n return e(error);\n });\n }\n });\n };\n\n batch.subscription = batchedObservable.subscribe({\n next: function next(results) {\n if (!Array.isArray(results)) {\n results = [results];\n }\n\n if (nexts.length !== results.length) {\n var error = new Error(\"server returned results with length \".concat(results.length, \", expected length of \").concat(nexts.length));\n error.result = results;\n return onError(error);\n }\n\n results.forEach(function (result, index) {\n if (nexts[index]) {\n nexts[index].forEach(function (next) {\n return next(result);\n });\n }\n });\n },\n error: onError,\n complete: function complete() {\n completes.forEach(function (complete) {\n if (complete) {\n complete.forEach(function (c) {\n return c();\n });\n }\n });\n }\n });\n return observables;\n };\n\n OperationBatcher.prototype.scheduleQueueConsumption = function (key) {\n var _this = this;\n\n clearTimeout(this.scheduledBatchTimer);\n this.scheduledBatchTimer = setTimeout(function () {\n _this.consumeQueue(key);\n }, this.batchInterval);\n };\n\n return OperationBatcher;\n}();\n\nexport { OperationBatcher };","import { __extends } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { OperationBatcher } from \"./batching.js\";\nexport { OperationBatcher } from \"./batching.js\";\n\nvar BatchLink = function (_super) {\n __extends(BatchLink, _super);\n\n function BatchLink(fetchParams) {\n var _this = _super.call(this) || this;\n\n var _a = fetchParams || {},\n batchDebounce = _a.batchDebounce,\n _b = _a.batchInterval,\n batchInterval = _b === void 0 ? 10 : _b,\n _c = _a.batchMax,\n batchMax = _c === void 0 ? 0 : _c,\n _d = _a.batchHandler,\n batchHandler = _d === void 0 ? function () {\n return null;\n } : _d,\n _e = _a.batchKey,\n batchKey = _e === void 0 ? function () {\n return '';\n } : _e;\n\n _this.batcher = new OperationBatcher({\n batchDebounce: batchDebounce,\n batchInterval: batchInterval,\n batchMax: batchMax,\n batchHandler: batchHandler,\n batchKey: batchKey\n });\n\n if (fetchParams.batchHandler.length <= 1) {\n _this.request = function (operation) {\n return _this.batcher.enqueueRequest({\n operation: operation\n });\n };\n }\n\n return _this;\n }\n\n BatchLink.prototype.request = function (operation, forward) {\n return this.batcher.enqueueRequest({\n operation: operation,\n forward: forward\n });\n };\n\n return BatchLink;\n}(ApolloLink);\n\nexport { BatchLink };","import { __assign, __extends, __rest } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { fromError } from \"../utils/index.js\";\nimport { serializeFetchParameter, selectURI, parseAndCheckHttpResponse, checkFetcher, selectHttpOptionsAndBodyInternal, defaultPrinter, fallbackHttpConfig, createSignalIfSupported } from \"../http/index.js\";\nimport { BatchLink } from \"../batch/index.js\";\n\nvar BatchHttpLink = function (_super) {\n __extends(BatchHttpLink, _super);\n\n function BatchHttpLink(fetchParams) {\n var _this = _super.call(this) || this;\n\n var _a = fetchParams || {},\n _b = _a.uri,\n uri = _b === void 0 ? '/graphql' : _b,\n fetcher = _a.fetch,\n _c = _a.print,\n print = _c === void 0 ? defaultPrinter : _c,\n includeExtensions = _a.includeExtensions,\n preserveHeaderCase = _a.preserveHeaderCase,\n batchInterval = _a.batchInterval,\n batchDebounce = _a.batchDebounce,\n batchMax = _a.batchMax,\n batchKey = _a.batchKey,\n requestOptions = __rest(_a, [\"uri\", \"fetch\", \"print\", \"includeExtensions\", \"preserveHeaderCase\", \"batchInterval\", \"batchDebounce\", \"batchMax\", \"batchKey\"]);\n\n checkFetcher(fetcher);\n\n if (!fetcher) {\n fetcher = fetch;\n }\n\n var linkConfig = {\n http: {\n includeExtensions: includeExtensions,\n preserveHeaderCase: preserveHeaderCase\n },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers\n };\n _this.batchDebounce = batchDebounce;\n _this.batchInterval = batchInterval || 10;\n _this.batchMax = batchMax || 10;\n\n var batchHandler = function batchHandler(operations) {\n var chosenURI = selectURI(operations[0], uri);\n var context = operations[0].getContext();\n var clientAwarenessHeaders = {};\n\n if (context.clientAwareness) {\n var _a = context.clientAwareness,\n name_1 = _a.name,\n version = _a.version;\n\n if (name_1) {\n clientAwarenessHeaders['apollographql-client-name'] = name_1;\n }\n\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: __assign(__assign({}, clientAwarenessHeaders), context.headers)\n };\n var optsAndBody = operations.map(function (operation) {\n return selectHttpOptionsAndBodyInternal(operation, print, fallbackHttpConfig, linkConfig, contextConfig);\n });\n var loadedBody = optsAndBody.map(function (_a) {\n var body = _a.body;\n return body;\n });\n var options = optsAndBody[0].options;\n\n if (options.method === 'GET') {\n return fromError(new Error('apollo-link-batch-http does not support GET requests'));\n }\n\n try {\n options.body = serializeFetchParameter(loadedBody, 'Payload');\n } catch (parseError) {\n return fromError(parseError);\n }\n\n var controller;\n\n if (!options.signal) {\n var _b = createSignalIfSupported(),\n _controller = _b.controller,\n signal = _b.signal;\n\n controller = _controller;\n if (controller) options.signal = signal;\n }\n\n return new Observable(function (observer) {\n fetcher(chosenURI, options).then(function (response) {\n operations.forEach(function (operation) {\n return operation.setContext({\n response: response\n });\n });\n return response;\n }).then(parseAndCheckHttpResponse(operations)).then(function (result) {\n observer.next(result);\n observer.complete();\n return result;\n }).catch(function (err) {\n if (err.name === 'AbortError') return;\n\n if (err.result && err.result.errors && err.result.data) {\n observer.next(err.result);\n }\n\n observer.error(err);\n });\n return function () {\n if (controller) controller.abort();\n };\n });\n };\n\n batchKey = batchKey || function (operation) {\n var context = operation.getContext();\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: context.headers\n };\n return selectURI(operation, uri) + JSON.stringify(contextConfig);\n };\n\n _this.batcher = new BatchLink({\n batchDebounce: _this.batchDebounce,\n batchInterval: _this.batchInterval,\n batchMax: _this.batchMax,\n batchKey: batchKey,\n batchHandler: batchHandler\n });\n return _this;\n }\n\n BatchHttpLink.prototype.request = function (operation) {\n return this.batcher.request(operation);\n };\n\n return BatchHttpLink;\n}(ApolloLink);\n\nexport { BatchHttpLink };","import { __extends } from \"tslib\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { ApolloLink } from \"../core/index.js\";\nexport function onError(errorHandler) {\n return new ApolloLink(function (operation, forward) {\n return new Observable(function (observer) {\n var sub;\n var retriedSub;\n var retriedResult;\n\n try {\n sub = forward(operation).subscribe({\n next: function next(result) {\n if (result.errors) {\n retriedResult = errorHandler({\n graphQLErrors: result.errors,\n response: result,\n operation: operation,\n forward: forward\n });\n\n if (retriedResult) {\n retriedSub = retriedResult.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer)\n });\n return;\n }\n }\n\n observer.next(result);\n },\n error: function error(networkError) {\n retriedResult = errorHandler({\n operation: operation,\n networkError: networkError,\n graphQLErrors: networkError && networkError.result && networkError.result.errors,\n forward: forward\n });\n\n if (retriedResult) {\n retriedSub = retriedResult.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer)\n });\n return;\n }\n\n observer.error(networkError);\n },\n complete: function complete() {\n if (!retriedResult) {\n observer.complete.bind(observer)();\n }\n }\n });\n } catch (e) {\n errorHandler({\n networkError: e,\n operation: operation,\n forward: forward\n });\n observer.error(e);\n }\n\n return function () {\n if (sub) sub.unsubscribe();\n if (retriedSub) sub.unsubscribe();\n };\n });\n });\n}\n\nvar ErrorLink = function (_super) {\n __extends(ErrorLink, _super);\n\n function ErrorLink(errorHandler) {\n var _this = _super.call(this) || this;\n\n _this.link = onError(errorHandler);\n return _this;\n }\n\n ErrorLink.prototype.request = function (operation, forward) {\n return this.link.request(operation, forward);\n };\n\n return ErrorLink;\n}(ApolloLink);\n\nexport { ErrorLink };","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { buildDelayFunction } from \"./delayFunction.js\";\nimport { buildRetryFunction } from \"./retryFunction.js\";\n\nvar RetryableOperation = function () {\n function RetryableOperation(operation, nextLink, delayFor, retryIf) {\n var _this = this;\n\n this.operation = operation;\n this.nextLink = nextLink;\n this.delayFor = delayFor;\n this.retryIf = retryIf;\n this.retryCount = 0;\n this.values = [];\n this.complete = false;\n this.canceled = false;\n this.observers = [];\n this.currentSubscription = null;\n\n this.onNext = function (value) {\n _this.values.push(value);\n\n for (var _i = 0, _a = _this.observers; _i < _a.length; _i++) {\n var observer = _a[_i];\n if (!observer) continue;\n observer.next(value);\n }\n };\n\n this.onComplete = function () {\n _this.complete = true;\n\n for (var _i = 0, _a = _this.observers; _i < _a.length; _i++) {\n var observer = _a[_i];\n if (!observer) continue;\n observer.complete();\n }\n };\n\n this.onError = function (error) {\n return __awaiter(_this, void 0, void 0, function () {\n var shouldRetry, _i, _a, observer;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.retryCount += 1;\n return [4, this.retryIf(this.retryCount, this.operation, error)];\n\n case 1:\n shouldRetry = _b.sent();\n\n if (shouldRetry) {\n this.scheduleRetry(this.delayFor(this.retryCount, this.operation, error));\n return [2];\n }\n\n this.error = error;\n\n for (_i = 0, _a = this.observers; _i < _a.length; _i++) {\n observer = _a[_i];\n if (!observer) continue;\n observer.error(error);\n }\n\n return [2];\n }\n });\n });\n };\n }\n\n RetryableOperation.prototype.subscribe = function (observer) {\n if (this.canceled) {\n throw new Error(\"Subscribing to a retryable link that was canceled is not supported\");\n }\n\n this.observers.push(observer);\n\n for (var _i = 0, _a = this.values; _i < _a.length; _i++) {\n var value = _a[_i];\n observer.next(value);\n }\n\n if (this.complete) {\n observer.complete();\n } else if (this.error) {\n observer.error(this.error);\n }\n };\n\n RetryableOperation.prototype.unsubscribe = function (observer) {\n var index = this.observers.indexOf(observer);\n\n if (index < 0) {\n throw new Error(\"RetryLink BUG! Attempting to unsubscribe unknown observer!\");\n }\n\n this.observers[index] = null;\n\n if (this.observers.every(function (o) {\n return o === null;\n })) {\n this.cancel();\n }\n };\n\n RetryableOperation.prototype.start = function () {\n if (this.currentSubscription) return;\n this.try();\n };\n\n RetryableOperation.prototype.cancel = function () {\n if (this.currentSubscription) {\n this.currentSubscription.unsubscribe();\n }\n\n clearTimeout(this.timerId);\n this.timerId = undefined;\n this.currentSubscription = null;\n this.canceled = true;\n };\n\n RetryableOperation.prototype.try = function () {\n this.currentSubscription = this.nextLink(this.operation).subscribe({\n next: this.onNext,\n error: this.onError,\n complete: this.onComplete\n });\n };\n\n RetryableOperation.prototype.scheduleRetry = function (delay) {\n var _this = this;\n\n if (this.timerId) {\n throw new Error(\"RetryLink BUG! Encountered overlapping retries\");\n }\n\n this.timerId = setTimeout(function () {\n _this.timerId = undefined;\n\n _this.try();\n }, delay);\n };\n\n return RetryableOperation;\n}();\n\nvar RetryLink = function (_super) {\n __extends(RetryLink, _super);\n\n function RetryLink(options) {\n var _this = _super.call(this) || this;\n\n var _a = options || {},\n attempts = _a.attempts,\n delay = _a.delay;\n\n _this.delayFor = typeof delay === 'function' ? delay : buildDelayFunction(delay);\n _this.retryIf = typeof attempts === 'function' ? attempts : buildRetryFunction(attempts);\n return _this;\n }\n\n RetryLink.prototype.request = function (operation, nextLink) {\n var retryable = new RetryableOperation(operation, nextLink, this.delayFor, this.retryIf);\n retryable.start();\n return new Observable(function (observer) {\n retryable.subscribe(observer);\n return function () {\n retryable.unsubscribe(observer);\n };\n });\n };\n\n return RetryLink;\n}(ApolloLink);\n\nexport { RetryLink };","export function buildDelayFunction(delayOptions) {\n var _a = delayOptions || {},\n _b = _a.initial,\n initial = _b === void 0 ? 300 : _b,\n _c = _a.jitter,\n jitter = _c === void 0 ? true : _c,\n _d = _a.max,\n max = _d === void 0 ? Infinity : _d;\n\n var baseDelay = jitter ? initial : initial / 2;\n return function delayFunction(count) {\n var delay = Math.min(max, baseDelay * Math.pow(2, count));\n\n if (jitter) {\n delay = Math.random() * delay;\n }\n\n return delay;\n };\n}","export function buildRetryFunction(retryOptions) {\n var _a = retryOptions || {},\n retryIf = _a.retryIf,\n _b = _a.max,\n max = _b === void 0 ? 5 : _b;\n\n return function retryFunction(count, operation, error) {\n if (count >= max) return false;\n return retryIf ? retryIf(error, operation) : !!error;\n };\n}","import { __assign, __rest as __rest_1, __spreadArray } from \"tslib\";\nimport { __rest } from \"tslib\";\nimport { mergeDeep } from \"../common/mergeDeep.js\";\nexport function concatPagination(keyArgs) {\n if (keyArgs === void 0) {\n keyArgs = false;\n }\n\n return {\n keyArgs: keyArgs,\n merge: function merge(existing, incoming) {\n return existing ? __spreadArray(__spreadArray([], existing, true), incoming, true) : incoming;\n }\n };\n}\nexport function offsetLimitPagination(keyArgs) {\n if (keyArgs === void 0) {\n keyArgs = false;\n }\n\n return {\n keyArgs: keyArgs,\n merge: function merge(existing, incoming, _a) {\n var args = _a.args;\n var merged = existing ? existing.slice(0) : [];\n\n if (incoming) {\n if (args) {\n var _b = args.offset,\n offset = _b === void 0 ? 0 : _b;\n\n for (var i = 0; i < incoming.length; ++i) {\n merged[offset + i] = incoming[i];\n }\n } else {\n merged.push.apply(merged, incoming);\n }\n }\n\n return merged;\n }\n };\n}\nexport function relayStylePagination(keyArgs) {\n if (keyArgs === void 0) {\n keyArgs = false;\n }\n\n return {\n keyArgs: keyArgs,\n read: function read(existing, _a) {\n var canRead = _a.canRead,\n readField = _a.readField;\n if (!existing) return existing;\n var edges = [];\n var firstEdgeCursor = \"\";\n var lastEdgeCursor = \"\";\n existing.edges.forEach(function (edge) {\n if (canRead(readField(\"node\", edge))) {\n edges.push(edge);\n\n if (edge.cursor) {\n firstEdgeCursor = firstEdgeCursor || edge.cursor || \"\";\n lastEdgeCursor = edge.cursor || lastEdgeCursor;\n }\n }\n });\n\n var _b = existing.pageInfo || {},\n startCursor = _b.startCursor,\n endCursor = _b.endCursor;\n\n return __assign(__assign({}, getExtras(existing)), {\n edges: edges,\n pageInfo: __assign(__assign({}, existing.pageInfo), {\n startCursor: startCursor || firstEdgeCursor,\n endCursor: endCursor || lastEdgeCursor\n })\n });\n },\n merge: function merge(existing, incoming, _a) {\n var args = _a.args,\n isReference = _a.isReference,\n readField = _a.readField;\n\n if (!existing) {\n existing = makeEmptyData();\n }\n\n if (!incoming) {\n return existing;\n }\n\n var incomingEdges = incoming.edges ? incoming.edges.map(function (edge) {\n if (isReference(edge = __assign({}, edge))) {\n edge.cursor = readField(\"cursor\", edge);\n }\n\n return edge;\n }) : [];\n\n if (incoming.pageInfo) {\n var pageInfo_1 = incoming.pageInfo;\n var startCursor = pageInfo_1.startCursor,\n endCursor = pageInfo_1.endCursor;\n var firstEdge = incomingEdges[0];\n var lastEdge = incomingEdges[incomingEdges.length - 1];\n\n if (firstEdge && startCursor) {\n firstEdge.cursor = startCursor;\n }\n\n if (lastEdge && endCursor) {\n lastEdge.cursor = endCursor;\n }\n\n var firstCursor = firstEdge && firstEdge.cursor;\n\n if (firstCursor && !startCursor) {\n incoming = mergeDeep(incoming, {\n pageInfo: {\n startCursor: firstCursor\n }\n });\n }\n\n var lastCursor = lastEdge && lastEdge.cursor;\n\n if (lastCursor && !endCursor) {\n incoming = mergeDeep(incoming, {\n pageInfo: {\n endCursor: lastCursor\n }\n });\n }\n }\n\n var prefix = existing.edges;\n var suffix = [];\n\n if (args && args.after) {\n var index = prefix.findIndex(function (edge) {\n return edge.cursor === args.after;\n });\n\n if (index >= 0) {\n prefix = prefix.slice(0, index + 1);\n }\n } else if (args && args.before) {\n var index = prefix.findIndex(function (edge) {\n return edge.cursor === args.before;\n });\n suffix = index < 0 ? prefix : prefix.slice(index);\n prefix = [];\n } else if (incoming.edges) {\n prefix = [];\n }\n\n var edges = __spreadArray(__spreadArray(__spreadArray([], prefix, true), incomingEdges, true), suffix, true);\n\n var pageInfo = __assign(__assign({}, incoming.pageInfo), existing.pageInfo);\n\n if (incoming.pageInfo) {\n var _b = incoming.pageInfo,\n hasPreviousPage = _b.hasPreviousPage,\n hasNextPage = _b.hasNextPage,\n startCursor = _b.startCursor,\n endCursor = _b.endCursor,\n extras = __rest_1(_b, [\"hasPreviousPage\", \"hasNextPage\", \"startCursor\", \"endCursor\"]);\n\n Object.assign(pageInfo, extras);\n\n if (!prefix.length) {\n if (void 0 !== hasPreviousPage) pageInfo.hasPreviousPage = hasPreviousPage;\n if (void 0 !== startCursor) pageInfo.startCursor = startCursor;\n }\n\n if (!suffix.length) {\n if (void 0 !== hasNextPage) pageInfo.hasNextPage = hasNextPage;\n if (void 0 !== endCursor) pageInfo.endCursor = endCursor;\n }\n }\n\n return __assign(__assign(__assign({}, getExtras(existing)), getExtras(incoming)), {\n edges: edges,\n pageInfo: pageInfo\n });\n }\n };\n}\n\nvar getExtras = function getExtras(obj) {\n return __rest(obj, notExtras);\n};\n\nvar notExtras = [\"edges\", \"pageInfo\"];\n\nfunction makeEmptyData() {\n return {\n edges: [],\n pageInfo: {\n hasPreviousPage: false,\n hasNextPage: true,\n startCursor: \"\",\n endCursor: \"\"\n }\n };\n}","import {\n ApolloClient,\n ApolloLink,\n InMemoryCache,\n defaultDataIdFromObject\n} from '@apollo/client'\nimport { BatchHttpLink } from '@apollo/client/link/batch-http'\nimport { onError } from '@apollo/client/link/error'\nimport { RetryLink } from '@apollo/client/link/retry'\nimport { offsetLimitPagination } from '@apollo/client/utilities'\n\nimport { typesWithId } from './types-with-ids'\n\nconst csrfMeta = document.querySelector('meta[name=csrf-token]')\nconst csrfToken = csrfMeta?.getAttribute('content')\n\nconst batchLink = new BatchHttpLink({\n batchMax: 10,\n batchInterval: 20, // Wait no more than 20ms after first batched operation\n credentials: 'same-origin',\n headers: {\n 'X-CSRF-Token': csrfToken\n }\n})\n\nconst retryLink = new RetryLink({\n delay: {\n initial: 100,\n max: 200,\n jitter: false\n },\n attempts: {\n max: 2,\n retryIf: (error) => !!error\n }\n})\n\n/**\n * Throw GraphQL errors so they are easier to detect (in development only)\n */\nconst errorLink = onError(({ graphQLErrors, networkError }) => {\n if (graphQLErrors)\n graphQLErrors.forEach(({ message, locations, path }) => {\n console.error(\n // eslint-disable-next-line i18next/no-literal-string\n `[GraphQL error]: Message: ${message}, Location: ${JSON.stringify(\n locations\n )}, Path: ${JSON.stringify(path)}`\n )\n })\n // eslint-disable-next-line i18next/no-literal-string\n if (networkError) console.error(`[Network error]: ${networkError}`)\n})\n\nlet apolloLinks: ApolloLink[] = [retryLink, batchLink]\n\nif (process.env.NODE_ENV === 'development') {\n apolloLinks = [errorLink].concat(apolloLinks)\n}\n\nconst client = new ApolloClient({\n uri: '/graphql',\n cache: new InMemoryCache({\n dataIdFromObject: (object, context) => {\n if (\n process.env.NODE_ENV === 'development' &&\n object.__typename &&\n !object.id &&\n typesWithId.includes(object.__typename)\n ) {\n console.warn(\n '%cMissing ID for %s',\n 'font-size: 2rem; background-color: red; padding: 8px; color: white',\n object.__typename,\n object\n )\n }\n return defaultDataIdFromObject(object, context)\n },\n typePolicies: {\n User: {\n fields: {\n ordersByDate: offsetLimitPagination(['to', 'order']),\n orders: {\n ...offsetLimitPagination(),\n merge(existing = [], incoming, { args }) {\n // Check if the operation has both offset and limit\n if (args?.offset !== undefined && args?.limit !== undefined) {\n // If offset is negative, add to the beginning\n if (args.offset < 0) {\n return [...incoming, ...existing]\n }\n // If offset is positive, add to the end\n return [...existing, ...incoming]\n }\n\n // For regular queries, just use the server response\n return incoming\n }\n }\n }\n },\n Meal: {\n // Disable normalization for `Meal` type by not defining a unique identifier\n // for these entities. This will prevent Apollo Client from storing them\n // separately in the global cache.\n keyFields: false\n }\n }\n }),\n link: ApolloLink.from(apolloLinks)\n})\n\nexport default client\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","import toInteger from \"../toInteger/index.js\";\nimport getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"xs\":\"375px\",\"sm\":\"600px\",\"md\":\"834px\",\"lg\":\"1280px\",\"xl\":\"1280px\",\"button\":\"Button-module__button___V0dtK\",\"secondary\":\"Button-module__secondary___3MJsS\",\"disabled\":\"Button-module__disabled___242rf\",\"primary\":\"Button-module__primary___2ZKhJ\",\"ghost\":\"Button-module__ghost___LJgLM\",\"facebook\":\"Button-module__facebook___1YMKT\",\"whatsApp\":\"Button-module__whatsApp___2AMai\",\"linkWhiteBG\":\"Button-module__linkWhiteBG___1kZTN\",\"ghostWhiteText\":\"Button-module__ghostWhiteText___2E-cO\",\"link\":\"Button-module__link___3loNB\",\"slim\":\"Button-module__slim___2k0dW\",\"regular\":\"Button-module__regular___mK5hu\",\"large\":\"Button-module__large___2JiWF\",\"fullWidth\":\"Button-module__fullWidth___3ukyT\",\"smallPadding\":\"Button-module__smallPadding___lcgMb\",\"iconLeft\":\"Button-module__iconLeft___16jDz\",\"iconRight\":\"Button-module__iconRight___gugVm\",\"iconOnly\":\"Button-module__iconOnly___3eCfP\",\"buttonText\":\"Button-module__buttonText___1EdZ1\",\"always\":\"Button-module__always___1LdPL\",\"mobileOnly\":\"Button-module__mobileOnly___10kkx\",\"desktopOnly\":\"Button-module__desktopOnly___2wZOp\"};","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n/** `Object#toString` result references. */\n\n\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n/** Built-in value references. */\n\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\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 */\n\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\n\nmodule.exports = baseGetTag;","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","export var uglifiedAlphabet = {\n a: 'α',\n b: 'ḅ',\n c: 'ͼ',\n d: 'á¸',\n e: 'ḛ',\n f: 'Ï',\n g: 'ḡ',\n h: 'ḥ',\n i: 'á¸',\n j: 'ĵ',\n k: 'ḳ',\n l: 'ḽ',\n m: 'ṃ',\n n: 'ṇ',\n o: 'ṓ',\n p: 'á¹—',\n q: 'Ê ',\n r: 'á¹›',\n s: 'ṡ',\n t: 'Å£',\n u: 'á¹µ',\n v: 'á¹½',\n w: 'áº',\n x: 'ẋ',\n y: 'áº',\n z: 'ẓ',\n A: 'À',\n B: 'β',\n C: 'Ḉ',\n D: 'Ḍ',\n E: 'Ḛ',\n F: 'Ḟ',\n G: 'Ḡ',\n H: 'Ḥ',\n I: 'Ḭ',\n J: 'Ä´',\n K: 'Ḱ',\n L: 'Ḻ',\n M: 'á¹€',\n N: 'Ṅ',\n O: 'Ṏ',\n P: 'á¹”',\n Q: 'Ǫ',\n R: 'Ṛ',\n S: 'á¹¢',\n T: 'Ṫ',\n U: 'á¹²',\n V: 'á¹¾',\n W: 'Å´',\n X: 'Ẋ',\n Y: 'Ŷ',\n Z: 'Å»'\n};\nexport var vowels = ['a', 'e', 'i', 'o', 'u', 'y', 'A', 'E', 'I', 'O', 'U', 'Y'];\nexport var stringWrapper = function stringWrapper(_ref) {\n var shouldWrap = _ref.shouldWrap,\n string = _ref.string;\n return shouldWrap ? '[' + string + ']' : string;\n};","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nimport { uglifiedAlphabet, vowels, stringWrapper } from './utils';\n\nvar Pseudo = function () {\n function Pseudo() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$languageToPseudo = _ref.languageToPseudo,\n languageToPseudo = _ref$languageToPseudo === undefined ? 'en' : _ref$languageToPseudo,\n _ref$letterMultiplier = _ref.letterMultiplier,\n letterMultiplier = _ref$letterMultiplier === undefined ? 2 : _ref$letterMultiplier,\n _ref$repeatedLetters = _ref.repeatedLetters,\n repeatedLetters = _ref$repeatedLetters === undefined ? vowels : _ref$repeatedLetters,\n _ref$uglifedLetterObj = _ref.uglifedLetterObject,\n uglifedLetterObject = _ref$uglifedLetterObj === undefined ? uglifiedAlphabet : _ref$uglifedLetterObj,\n _ref$wrapped = _ref.wrapped,\n wrapped = _ref$wrapped === undefined ? false : _ref$wrapped,\n _ref$enabled = _ref.enabled,\n enabled = _ref$enabled === undefined ? true : _ref$enabled;\n\n _classCallCheck(this, Pseudo);\n\n this.name = 'pseudo';\n this.type = 'postProcessor';\n this.options = {\n languageToPseudo: languageToPseudo,\n letterMultiplier: letterMultiplier,\n wrapped: wrapped,\n repeatedLetters: repeatedLetters,\n letters: uglifedLetterObject,\n enabled: enabled\n };\n }\n\n Pseudo.prototype.configurePseudo = function configurePseudo(options) {\n this.options = _extends({}, this.options, options);\n };\n\n Pseudo.prototype.process = function process(value, key, options, translator) {\n var _this = this;\n\n if (translator.language && this.options.languageToPseudo !== translator.language || !this.options.enabled) {\n return value;\n }\n\n var bracketCount = 0;\n var processedValue = value.split('').map(function (letter) {\n if (letter === '}') {\n bracketCount = 0;\n return letter;\n }\n\n if (letter === '{') {\n bracketCount++;\n return letter;\n }\n\n if (bracketCount === 2) return letter;\n return _this.options.repeatedLetters.indexOf(letter) !== -1 ? _this.options.letters[letter].repeat(_this.options.letterMultiplier) : _this.options.letters[letter] || letter;\n }).join('');\n return stringWrapper({\n shouldWrap: this.options.wrapped,\n string: processedValue\n });\n };\n\n return Pseudo;\n}();\n\nexport { Pseudo as default };","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","import { invariant } from \"../../utilities/globals/index.js\";\nimport { useContext } from 'react';\nimport { getApolloContext } from \"../context/index.js\";\nexport function useApolloClient(override) {\n var context = useContext(getApolloContext());\n var client = override || context.client;\n __DEV__ ? invariant(!!client, 'Could not find \"client\" in the context or passed in as an option. ' + 'Wrap the root component in an <ApolloProvider>, or pass an ApolloClient ' + 'instance in via options.') : invariant(!!client, 31);\n return client;\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","/* tslint:disable */\n/* eslint-disable */\n// @generated\n// This file was automatically generated and should not be edited.\n\n//==============================================================\n// START Enums and Input Objects\n//==============================================================\n\nexport enum Account {\n free = \"free\",\n paid = \"paid\",\n trial = \"trial\",\n}\n\nexport enum Activity {\n cuddling = \"cuddling\",\n doing_tricks = \"doing_tricks\",\n making_friends = \"making_friends\",\n walking = \"walking\",\n}\n\nexport enum Affiliate {\n ambassador = \"ambassador\",\n influencer = \"influencer\",\n not_affiliate = \"not_affiliate\",\n}\n\nexport enum AgeClassificationByUserWhenCreated {\n classified_as_adult_by_user_when_created = \"classified_as_adult_by_user_when_created\",\n classified_as_puppy_by_user_when_created = \"classified_as_puppy_by_user_when_created\",\n classified_as_senior_by_user_when_created = \"classified_as_senior_by_user_when_created\",\n unclassified_when_created = \"unclassified_when_created\",\n}\n\nexport enum ApplicableDiscountPartDiscount {\n every_nth_box = \"every_nth_box\",\n n_boxes = \"n_boxes\",\n nth_box = \"nth_box\",\n rollover = \"rollover\",\n single_use = \"single_use\",\n}\n\nexport enum ApplicableDiscountPartDiscountBasis {\n percentage = \"percentage\",\n total = \"total\",\n}\n\nexport enum ArchivedType {\n all = \"all\",\n archived = \"archived\",\n non_archived = \"non_archived\",\n}\n\nexport enum AuthenticationStrategy {\n admin = \"admin\",\n token = \"token\",\n user = \"user\",\n}\n\nexport enum AvailablePlansScopeType {\n all = \"all\",\n duration = \"duration\",\n pricing_cohort = \"pricing_cohort\",\n}\n\nexport enum BodyShape {\n chubby = \"chubby\",\n just_right = \"just_right\",\n skinny = \"skinny\",\n}\n\nexport enum BoxKind {\n all_bb = \"all_bb\",\n mix_bb = \"mix_bb\",\n}\n\nexport enum Code {\n BE = \"BE\",\n CZ = \"CZ\",\n DE = \"DE\",\n GB = \"GB\",\n IE = \"IE\",\n NI = \"NI\",\n NL = \"NL\",\n PL = \"PL\",\n}\n\nexport enum Currency {\n CZK = \"CZK\",\n EUR = \"EUR\",\n GBP = \"GBP\",\n PLN = \"PLN\",\n}\n\nexport enum CurrentFood {\n dry_food = \"dry_food\",\n home_food = \"home_food\",\n raw_food = \"raw_food\",\n wet_food = \"wet_food\",\n}\n\nexport enum CustomerIssueEntryFieldData {\n association = \"association\",\n boolean = \"boolean\",\n integer = \"integer\",\n multifield = \"multifield\",\n string = \"string\",\n}\n\nexport enum CustomerIssueEntryFieldSelectionFormat {\n multiple = \"multiple\",\n not_applicable = \"not_applicable\",\n single = \"single\",\n}\n\nexport enum CustomerIssueEntryFieldTypesAssociationAssociationType {\n Product = \"Product\",\n}\n\nexport enum CustomerIssueEntryFieldTypesAssociationDisplayType {\n dropdown = \"dropdown\",\n multiselect = \"multiselect\",\n}\n\nexport enum CustomerIssueEntryFieldTypesBooleanDisplayType {\n confirmation_box = \"confirmation_box\",\n}\n\nexport enum CustomerIssueEntryFieldTypesIntegerDisplayType {\n dropdown = \"dropdown\",\n numerical_input = \"numerical_input\",\n stepper = \"stepper\",\n}\n\nexport enum CustomerIssueEntryFieldTypesMultifieldDisplayType {\n damaged_product = \"damaged_product\",\n grouped_list = \"grouped_list\",\n multi_product_count = \"multi_product_count\",\n product_count = \"product_count\",\n unsatisfactory_items = \"unsatisfactory_items\",\n}\n\nexport enum CustomerIssueEntryFieldTypesStringDisplayType {\n checkbox = \"checkbox\",\n dropdown = \"dropdown\",\n freetext = \"freetext\",\n}\n\nexport enum CustomerIssueManagementInputFieldAssociationAssociationType {\n Product = \"Product\",\n}\n\nexport enum CustomerIssueManagementInputFieldAssociationDisplayType {\n dropdown = \"dropdown\",\n multiselect = \"multiselect\",\n}\n\nexport enum CustomerIssueManagementInputFieldBooleanDisplayType {\n confirmation_box = \"confirmation_box\",\n}\n\nexport enum CustomerIssueManagementInputFieldDataType {\n association = \"association\",\n boolean = \"boolean\",\n integer = \"integer\",\n multifield = \"multifield\",\n string = \"string\",\n}\n\nexport enum CustomerIssueManagementInputFieldIntegerDisplayType {\n dropdown = \"dropdown\",\n numerical_input = \"numerical_input\",\n stepper = \"stepper\",\n}\n\nexport enum CustomerIssueManagementInputFieldMultifieldDisplayType {\n damaged_product = \"damaged_product\",\n grouped_list = \"grouped_list\",\n multi_product_count = \"multi_product_count\",\n product_count = \"product_count\",\n unsatisfactory_items = \"unsatisfactory_items\",\n}\n\nexport enum CustomerIssueManagementInputFieldSelectionFormat {\n multiple = \"multiple\",\n not_applicable = \"not_applicable\",\n single = \"single\",\n}\n\nexport enum CustomerIssueManagementInputFieldStringDisplayType {\n checkbox = \"checkbox\",\n dropdown = \"dropdown\",\n freetext = \"freetext\",\n}\n\nexport enum CustomerIssueManagementReportable {\n Box = \"Box\",\n NonCore_Order = \"NonCore_Order\",\n}\n\nexport enum CustomerIssueManagementReporterable {\n AdminUser = \"AdminUser\",\n User = \"User\",\n}\n\nexport enum CustomerIssueManagementResolutionResolutionType {\n apply_discount = \"apply_discount\",\n help_centre_article = \"help_centre_article\",\n replace_box = \"replace_box\",\n track_order = \"track_order\",\n}\n\nexport enum CustomerIssueResolutionDetailsTypeField {\n apply_discount = \"apply_discount\",\n order_tracking_number = \"order_tracking_number\",\n replace_box = \"replace_box\",\n replacement_box_details = \"replacement_box_details\",\n track_order = \"track_order\",\n}\n\nexport enum CustomerIssueResolutionKey {\n apply_discount = \"apply_discount\",\n replace_box = \"replace_box\",\n replacement_box = \"replacement_box\",\n track_order = \"track_order\",\n}\n\nexport enum CustomerIssueResolutionResolution {\n invariable = \"invariable\",\n variable = \"variable\",\n}\n\nexport enum Descriptor {\n future = \"future\",\n next = \"next\",\n past = \"past\",\n}\n\nexport enum DiscountCodePartDiscount {\n every_nth_box = \"every_nth_box\",\n n_boxes = \"n_boxes\",\n nth_box = \"nth_box\",\n single_use = \"single_use\",\n}\n\nexport enum DiscountCodePartDiscountBasis {\n percentage = \"percentage\",\n total = \"total\",\n}\n\nexport enum Eater {\n eats_anything = \"eats_anything\",\n fussy_eater = \"fussy_eater\",\n good_eater = \"good_eater\",\n picky_eater = \"picky_eater\",\n}\n\nexport enum Exercise {\n hyper = \"hyper\",\n low = \"low\",\n normal = \"normal\",\n}\n\nexport enum FavouriteGame {\n ball_chaser = \"ball_chaser\",\n just_hanging_out = \"just_hanging_out\",\n stick_fetcher = \"stick_fetcher\",\n toy_squeaker = \"toy_squeaker\",\n tug_of_war_master = \"tug_of_war_master\",\n unknown_favourite_game = \"unknown_favourite_game\",\n}\n\nexport enum FeedingGuidelinesUsed {\n adult_only_feeding_guidelines = \"adult_only_feeding_guidelines\",\n combined_feeding_guidelines = \"combined_feeding_guidelines\",\n legacy_feeding_guidelines = \"legacy_feeding_guidelines\",\n october2020_feeding_guidelines = \"october2020_feeding_guidelines\",\n snack_feeding_guidelines = \"snack_feeding_guidelines\",\n}\n\nexport enum Food {\n dry_food = \"dry_food\",\n home_food = \"home_food\",\n raw_food = \"raw_food\",\n wet_food = \"wet_food\",\n}\n\nexport enum FooterColumn {\n column_1 = \"column_1\",\n column_2 = \"column_2\",\n column_3 = \"column_3\",\n social_icons = \"social_icons\",\n sub_footer = \"sub_footer\",\n}\n\nexport enum Frequency {\n one_off = \"one_off\",\n recurring = \"recurring\",\n}\n\nexport enum Gender {\n female = \"female\",\n male = \"male\",\n}\n\nexport enum Group {\n admin = \"admin\",\n default = \"default\",\n deprecated = \"deprecated\",\n more_food = \"more_food\",\n pouch_portioning = \"pouch_portioning\",\n}\n\nexport enum InputPaymentMethod {\n billing_agreement = \"billing_agreement\",\n credit_card = \"credit_card\",\n direct_debit = \"direct_debit\",\n merchant_initiated_payment = \"merchant_initiated_payment\",\n sepa_direct_debit = \"sepa_direct_debit\",\n}\n\nexport enum IntentType {\n payment_intent = \"payment_intent\",\n setup_intent = \"setup_intent\",\n}\n\nexport enum InvoiceStatus {\n disputed = \"disputed\",\n forgiven = \"forgiven\",\n free = \"free\",\n paid = \"paid\",\n processing = \"processing\",\n unpaid = \"unpaid\",\n}\n\nexport enum Key {\n affenpinscher = \"affenpinscher\",\n affenpoo_affenpinscher_poodle_mix = \"affenpoo_affenpinscher_poodle_mix\",\n afghan_hound = \"afghan_hound\",\n aidi = \"aidi\",\n airedale_terrier = \"airedale_terrier\",\n airedoodle_airedale_terrier_poodle_mix = \"airedoodle_airedale_terrier_poodle_mix\",\n akbash = \"akbash\",\n akita = \"akita\",\n alano_espanol = \"alano_espanol\",\n alapaha_blue_blood_bulldog = \"alapaha_blue_blood_bulldog\",\n alaskan_klee_kai = \"alaskan_klee_kai\",\n alaskan_malamute = \"alaskan_malamute\",\n alaskan_malamute_x_dutch_herder = \"alaskan_malamute_x_dutch_herder\",\n alaskan_malamute_x_northern_innuit = \"alaskan_malamute_x_northern_innuit\",\n american_akita = \"american_akita\",\n american_bulldog = \"american_bulldog\",\n american_bully = \"american_bully\",\n american_cocker_spaniel = \"american_cocker_spaniel\",\n american_cockerpoo = \"american_cockerpoo\",\n american_english_coonhound = \"american_english_coonhound\",\n american_eskimo_dog = \"american_eskimo_dog\",\n american_foxhound = \"american_foxhound\",\n american_hairless_terrier = \"american_hairless_terrier\",\n american_mastiff = \"american_mastiff\",\n american_pit_bull_terrier = \"american_pit_bull_terrier\",\n american_shepherd = \"american_shepherd\",\n american_staffordshire_terrier = \"american_staffordshire_terrier\",\n american_staghound = \"american_staghound\",\n american_water_spaniel = \"american_water_spaniel\",\n american_white_shepherd = \"american_white_shepherd\",\n american_xl_bully = \"american_xl_bully\",\n anatolian_karabash = \"anatolian_karabash\",\n anatolian_shepherd_dog = \"anatolian_shepherd_dog\",\n andalusian_podenco = \"andalusian_podenco\",\n appenzeller_sennenhund = \"appenzeller_sennenhund\",\n argentine_dogo = \"argentine_dogo\",\n ariege_pointer = \"ariege_pointer\",\n ariegeois = \"ariegeois\",\n aussiedoodle_australian_shepherd_poodle_mix = \"aussiedoodle_australian_shepherd_poodle_mix\",\n australian_bulldog = \"australian_bulldog\",\n australian_cattle_dog = \"australian_cattle_dog\",\n australian_kelpie = \"australian_kelpie\",\n australian_labradoodle = \"australian_labradoodle\",\n australian_shepherd = \"australian_shepherd\",\n australian_silky_terrier = \"australian_silky_terrier\",\n australian_stumpy_tail_cattle_dog = \"australian_stumpy_tail_cattle_dog\",\n australian_terrier = \"australian_terrier\",\n austrian_black_and_tan_hound = \"austrian_black_and_tan_hound\",\n austrian_pinscher = \"austrian_pinscher\",\n azawakh = \"azawakh\",\n barbet = \"barbet\",\n basenji = \"basenji\",\n bashar = \"bashar\",\n basset_bleu_de_gascogne = \"basset_bleu_de_gascogne\",\n basset_fauve_de_bretagne = \"basset_fauve_de_bretagne\",\n basset_hound = \"basset_hound\",\n bassetoodle_basset_hound_poodle_mix = \"bassetoodle_basset_hound_poodle_mix\",\n bassugg = \"bassugg\",\n bavarian_mountain_hound = \"bavarian_mountain_hound\",\n beagle = \"beagle\",\n beagle_harrier = \"beagle_harrier\",\n beaglier = \"beaglier\",\n bearded_collie = \"bearded_collie\",\n beardiecockerpoo_bearded_collie_cockerpoo_mix = \"beardiecockerpoo_bearded_collie_cockerpoo_mix\",\n beauceron = \"beauceron\",\n bedlington_terrier = \"bedlington_terrier\",\n belgian_malinois = \"belgian_malinois\",\n belgian_sheepdog = \"belgian_sheepdog\",\n belgian_shepherd_dog = \"belgian_shepherd_dog\",\n belgian_shepherd_laekenois = \"belgian_shepherd_laekenois\",\n belgian_shepherd_malinois = \"belgian_shepherd_malinois\",\n belgian_shepherd_tervuren = \"belgian_shepherd_tervuren\",\n belgian_tervuren = \"belgian_tervuren\",\n bergamasco = \"bergamasco\",\n berger_picard = \"berger_picard\",\n bernedoodle_bernese_mountain_dog_poodle_mix = \"bernedoodle_bernese_mountain_dog_poodle_mix\",\n bernese_mountain_dog = \"bernese_mountain_dog\",\n bichon_frise = \"bichon_frise\",\n bichpoo_bichon_frise_poodle_mix = \"bichpoo_bichon_frise_poodle_mix\",\n biewer_terrier = \"biewer_terrier\",\n black_and_tan_coonhound = \"black_and_tan_coonhound\",\n black_norwegian_elkhound = \"black_norwegian_elkhound\",\n black_russian_terrier = \"black_russian_terrier\",\n blackmouth_cur = \"blackmouth_cur\",\n bloodhound = \"bloodhound\",\n blue_lacy = \"blue_lacy\",\n blue_merle_collie = \"blue_merle_collie\",\n blue_picardy_spaniel = \"blue_picardy_spaniel\",\n bluetick_coonhound = \"bluetick_coonhound\",\n bocker_beagle_cocker_spaniel_mix = \"bocker_beagle_cocker_spaniel_mix\",\n boerboel = \"boerboel\",\n bohemian_shepherd = \"bohemian_shepherd\",\n bolognese = \"bolognese\",\n bolonka = \"bolonka\",\n bolonoodle_bolognese_poodle_mix = \"bolonoodle_bolognese_poodle_mix\",\n boomer = \"boomer\",\n borador = \"borador\",\n border_collie = \"border_collie\",\n border_terrier = \"border_terrier\",\n bordernese_bernese_mountain_dog_x_border_collie = \"bordernese_bernese_mountain_dog_x_border_collie\",\n bordoodle_border_collie_poodle_mix = \"bordoodle_border_collie_poodle_mix\",\n borzoi = \"borzoi\",\n bossipoo_boston_terrier_poodle_mix = \"bossipoo_boston_terrier_poodle_mix\",\n boston_terrier = \"boston_terrier\",\n bouvier_de_ardennes = \"bouvier_de_ardennes\",\n bouvier_des_flandres = \"bouvier_des_flandres\",\n boxador = \"boxador\",\n boxer = \"boxer\",\n boxerdoodle_boxer_poodle_mix = \"boxerdoodle_boxer_poodle_mix\",\n boykin_spaniel = \"boykin_spaniel\",\n bracco_italiano = \"bracco_italiano\",\n braque_dauvergne = \"braque_dauvergne\",\n braque_du_bourbonnais = \"braque_du_bourbonnais\",\n brazilian_terrier = \"brazilian_terrier\",\n briard = \"briard\",\n briquet_griffon_vendeen = \"briquet_griffon_vendeen\",\n brittany = \"brittany\",\n broodle_griffon_brussels_griffon_poodle = \"broodle_griffon_brussels_griffon_poodle\",\n brussels_griffon = \"brussels_griffon\",\n bukovina_sheepdog = \"bukovina_sheepdog\",\n bulgarian_shepherd_dog = \"bulgarian_shepherd_dog\",\n bull_greyhound = \"bull_greyhound\",\n bull_terrier = \"bull_terrier\",\n bulldog = \"bulldog\",\n bullmastiff = \"bullmastiff\",\n bullpei = \"bullpei\",\n cadoodle_collie_x_poodle_mix = \"cadoodle_collie_x_poodle_mix\",\n cairn_terrier = \"cairn_terrier\",\n cairnoodle_cairn_terrier_poodle_mix = \"cairnoodle_cairn_terrier_poodle_mix\",\n canaan_dog = \"canaan_dog\",\n canadian_eskimo_dog = \"canadian_eskimo_dog\",\n cane_corso = \"cane_corso\",\n cao_da_serra_de_aires = \"cao_da_serra_de_aires\",\n caravan_hound = \"caravan_hound\",\n cardigan_welsh_corgi = \"cardigan_welsh_corgi\",\n carolina_dog = \"carolina_dog\",\n carpathian_sheepdog = \"carpathian_sheepdog\",\n catahoula_bulldog = \"catahoula_bulldog\",\n catahoula_cur = \"catahoula_cur\",\n catahoula_leopard_dog = \"catahoula_leopard_dog\",\n catalan_sheepdog = \"catalan_sheepdog\",\n caucasian_ovtcharka = \"caucasian_ovtcharka\",\n cavachon = \"cavachon\",\n cavalier_king_charles_spaniel = \"cavalier_king_charles_spaniel\",\n cavapoo_cavalier_king_charles_spaniel_poodle_mix = \"cavapoo_cavalier_king_charles_spaniel_poodle_mix\",\n cavapoochon_cavalier_king_charles_bichon_frise_poodle_mix = \"cavapoochon_cavalier_king_charles_bichon_frise_poodle_mix\",\n central_asian_shepherd_dog = \"central_asian_shepherd_dog\",\n cesky_fousek = \"cesky_fousek\",\n cesky_terrier = \"cesky_terrier\",\n chart_polski = \"chart_polski\",\n cheagle = \"cheagle\",\n chesapeake_bay_retriever = \"chesapeake_bay_retriever\",\n chihuahua = \"chihuahua\",\n chinese_crested = \"chinese_crested\",\n chinese_crestepoo_chinese_crested_poodle_mix = \"chinese_crestepoo_chinese_crested_poodle_mix\",\n chinese_sharpei = \"chinese_sharpei\",\n chinook = \"chinook\",\n chipoo_chihuahua_poodle_mix = \"chipoo_chihuahua_poodle_mix\",\n chishi = \"chishi\",\n chiweenie = \"chiweenie\",\n chorkie = \"chorkie\",\n chow_chow = \"chow_chow\",\n chug_chihuahua_pug_mix = \"chug_chihuahua_pug_mix\",\n cirneco_dell_etna = \"cirneco_dell_etna\",\n clumber_spaniel = \"clumber_spaniel\",\n clumberdoodle = \"clumberdoodle\",\n cockador = \"cockador\",\n cockapoo_cocker_spaniel_poodle_mix = \"cockapoo_cocker_spaniel_poodle_mix\",\n cocker_spaniel = \"cocker_spaniel\",\n cockerchon_cocker_bichon_frise_cross = \"cockerchon_cocker_bichon_frise_cross\",\n cockerpei_cocker_spaniel_sharpei_mix = \"cockerpei_cocker_spaniel_sharpei_mix\",\n collie = \"collie\",\n collie_x_retriever = \"collie_x_retriever\",\n corgipoo_corgi_poodle_mix = \"corgipoo_corgi_poodle_mix\",\n coton_de_tulear = \"coton_de_tulear\",\n croatian_sheepdog = \"croatian_sheepdog\",\n crossbreed = \"crossbreed\",\n curlycoated_retriever = \"curlycoated_retriever\",\n czechoslovakian_shepherd = \"czechoslovakian_shepherd\",\n czechoslovakian_wolfdog = \"czechoslovakian_wolfdog\",\n dachshund = \"dachshund\",\n daisy_dog_bichon_poodle_shih_tzu_mix = \"daisy_dog_bichon_poodle_shih_tzu_mix\",\n dalmadoodle_dalmatian_poodle_mix = \"dalmadoodle_dalmatian_poodle_mix\",\n dalmatian = \"dalmatian\",\n dandie_dinmont_terrier = \"dandie_dinmont_terrier\",\n danishswedish_farmdog = \"danishswedish_farmdog\",\n deerhound = \"deerhound\",\n deutsche_bracke = \"deutsche_bracke\",\n doberman_pinscher = \"doberman_pinscher\",\n dobermann = \"dobermann\",\n dogue_de_bordeaux = \"dogue_de_bordeaux\",\n doodleman_pinscher_doberman_standard_poodle_mix = \"doodleman_pinscher_doberman_standard_poodle_mix\",\n double_doodle_goldendoodle_labradoodle_mix = \"double_doodle_goldendoodle_labradoodle_mix\",\n doxiepoo_dachshund_poodle_mix = \"doxiepoo_dachshund_poodle_mix\",\n drentse_patrijshond = \"drentse_patrijshond\",\n drever = \"drever\",\n dunker = \"dunker\",\n dutch_shepherd = \"dutch_shepherd\",\n dutch_smoushond = \"dutch_smoushond\",\n east_siberian_laika = \"east_siberian_laika\",\n easteuropean_shepherd = \"easteuropean_shepherd\",\n english_boodle_english_bulldog_poodle_mix = \"english_boodle_english_bulldog_poodle_mix\",\n english_bully_english_bull_terrier_staffordshire_bull_terrier = \"english_bully_english_bull_terrier_staffordshire_bull_terrier\",\n english_cocker_spaniel = \"english_cocker_spaniel\",\n english_coonhound = \"english_coonhound\",\n english_foxhound = \"english_foxhound\",\n english_mastiff = \"english_mastiff\",\n english_pointer = \"english_pointer\",\n english_setter = \"english_setter\",\n english_shepherd = \"english_shepherd\",\n english_springer_spaniel = \"english_springer_spaniel\",\n english_toy_spaniel = \"english_toy_spaniel\",\n english_toy_terrier = \"english_toy_terrier\",\n entlebucher_mountain_dog = \"entlebucher_mountain_dog\",\n eskapoo_american_eskimo_dog_poodle_mix = \"eskapoo_american_eskimo_dog_poodle_mix\",\n eskimo_dog = \"eskimo_dog\",\n estrela_mountain_dog = \"estrela_mountain_dog\",\n eurasier = \"eurasier\",\n field_spaniel = \"field_spaniel\",\n fila_brasileiro = \"fila_brasileiro\",\n finnish_hound = \"finnish_hound\",\n finnish_lapphund = \"finnish_lapphund\",\n finnish_spitz = \"finnish_spitz\",\n flandoodle_bouvier_des_flandres_poodle_mix = \"flandoodle_bouvier_des_flandres_poodle_mix\",\n flatcoated_retriever = \"flatcoated_retriever\",\n foodle_poodle_toy_fox_terrier_mix = \"foodle_poodle_toy_fox_terrier_mix\",\n fox_terrier_toy = \"fox_terrier_toy\",\n foxhoodle_fox_hound_poodle_mix = \"foxhoodle_fox_hound_poodle_mix\",\n francais_blanc_et_noir = \"francais_blanc_et_noir\",\n french_brittany = \"french_brittany\",\n french_bulldog = \"french_bulldog\",\n french_spaniel = \"french_spaniel\",\n frug = \"frug\",\n gerberian_shepsky_german_shepherd_x_siberian_husky = \"gerberian_shepsky_german_shepherd_x_siberian_husky\",\n german_longhaired_pointer = \"german_longhaired_pointer\",\n german_pinscher = \"german_pinscher\",\n german_shepherd = \"german_shepherd\",\n german_shepherd_dog = \"german_shepherd_dog\",\n german_sheprador = \"german_sheprador\",\n german_short_haired_pointer = \"german_short_haired_pointer\",\n german_shorthaired_pointer = \"german_shorthaired_pointer\",\n german_spitz = \"german_spitz\",\n german_wirehaired_pointer = \"german_wirehaired_pointer\",\n giant_schnauzer = \"giant_schnauzer\",\n giant_schnoodle_giant_schnauzer_standard_poodle_mix = \"giant_schnoodle_giant_schnauzer_standard_poodle_mix\",\n glen_of_imaal_terrier = \"glen_of_imaal_terrier\",\n goldador = \"goldador\",\n golden_retriever = \"golden_retriever\",\n golden_retriever_x_newfoundland = \"golden_retriever_x_newfoundland\",\n goldendoodle_golden_retriever_poodle_mix = \"goldendoodle_golden_retriever_poodle_mix\",\n gordon_setter = \"gordon_setter\",\n grand_basset_griffon_vendeen = \"grand_basset_griffon_vendeen\",\n grand_bleu_de_gascogne = \"grand_bleu_de_gascogne\",\n great_dane = \"great_dane\",\n great_danoodle_great_dane_poodle_mix = \"great_danoodle_great_dane_poodle_mix\",\n great_pyrenees = \"great_pyrenees\",\n great_swiss_mountain_dog = \"great_swiss_mountain_dog\",\n greater_swiss_mountain_dog = \"greater_swiss_mountain_dog\",\n greek_harehound = \"greek_harehound\",\n greenland_dog = \"greenland_dog\",\n greyhound = \"greyhound\",\n greyhound_x_saluki = \"greyhound_x_saluki\",\n griffon_bleu_du_gascogne = \"griffon_bleu_du_gascogne\",\n griffon_bruxellois = \"griffon_bruxellois\",\n griffon_nivernais = \"griffon_nivernais\",\n groenendael = \"groenendael\",\n hamiltonstovare = \"hamiltonstovare\",\n harrier = \"harrier\",\n havanese = \"havanese\",\n hokkaido = \"hokkaido\",\n hovawart = \"hovawart\",\n hungarian_vizsla = \"hungarian_vizsla\",\n hush_basset_cocker_spaniel_x_basset_hound = \"hush_basset_cocker_spaniel_x_basset_hound\",\n husky_x_samoyed = \"husky_x_samoyed\",\n huskyhungarian_vizsla = \"huskyhungarian_vizsla\",\n ibizan_hound = \"ibizan_hound\",\n icelandic_sheepdog = \"icelandic_sheepdog\",\n imperial_shih_tzu = \"imperial_shih_tzu\",\n irish_doodle_irish_setter_poodle_mix = \"irish_doodle_irish_setter_poodle_mix\",\n irish_red_and_white_setter = \"irish_red_and_white_setter\",\n irish_setter = \"irish_setter\",\n irish_terrier = \"irish_terrier\",\n irish_troodle_irish_terrier_poodle_mix = \"irish_troodle_irish_terrier_poodle_mix\",\n irish_water_spaniel = \"irish_water_spaniel\",\n irish_wolfhound = \"irish_wolfhound\",\n italian_greyhound = \"italian_greyhound\",\n italian_spinone = \"italian_spinone\",\n jack_highland_terrier = \"jack_highland_terrier\",\n jack_russell_terrier = \"jack_russell_terrier\",\n jackabee = \"jackabee\",\n jackapoo_jack_russell_terrier_poodle_mix = \"jackapoo_jack_russell_terrier_poodle_mix\",\n jackawawa = \"jackawawa\",\n jackchi = \"jackchi\",\n jagdterrier = \"jagdterrier\",\n jamthund_swedish_elkhound = \"jamthund_swedish_elkhound\",\n japanese_akita = \"japanese_akita\",\n japanese_chin = \"japanese_chin\",\n japanese_shiba_inu = \"japanese_shiba_inu\",\n japanese_spitz = \"japanese_spitz\",\n japanese_terrier = \"japanese_terrier\",\n jorkie_yorkshire_terrier_jack_russell_mix = \"jorkie_yorkshire_terrier_jack_russell_mix\",\n jug = \"jug\",\n karelian_bear_dog = \"karelian_bear_dog\",\n keeshond = \"keeshond\",\n kerry_blue_terrier = \"kerry_blue_terrier\",\n king_charles_spaniel = \"king_charles_spaniel\",\n kishu = \"kishu\",\n kokoni = \"kokoni\",\n komondor = \"komondor\",\n kooikerhondje = \"kooikerhondje\",\n korean_jindo = \"korean_jindo\",\n korthals_griffon = \"korthals_griffon\",\n kromfohrlander = \"kromfohrlander\",\n kuvasz = \"kuvasz\",\n kyileo = \"kyileo\",\n labradoodle_labrador_retriever_poodle_mix = \"labradoodle_labrador_retriever_poodle_mix\",\n labrador_retriever = \"labrador_retriever\",\n labrador_x_spaniel_mix = \"labrador_x_spaniel_mix\",\n labrador_x_vizsla_mix = \"labrador_x_vizsla_mix\",\n lacasapoo_cockapoo_x_lhasa_apso_mix = \"lacasapoo_cockapoo_x_lhasa_apso_mix\",\n lagotto_romagnolo = \"lagotto_romagnolo\",\n lakeland_terrier = \"lakeland_terrier\",\n lakeland_trailhound = \"lakeland_trailhound\",\n lancashire_heeler = \"lancashire_heeler\",\n landseer = \"landseer\",\n lapponian_herder = \"lapponian_herder\",\n large_munsterlander = \"large_munsterlander\",\n leonberger = \"leonberger\",\n lhasa_apso = \"lhasa_apso\",\n lhasa_apso_x_shih_tzu = \"lhasa_apso_x_shih_tzu\",\n lhasapoo_lhasa_apso_poodle_mix = \"lhasapoo_lhasa_apso_poodle_mix\",\n lhatese_malteselhasa_apso = \"lhatese_malteselhasa_apso\",\n lowchen = \"lowchen\",\n lurcher = \"lurcher\",\n lurcher_x_spaniel = \"lurcher_x_spaniel\",\n malshi = \"malshi\",\n maltese = \"maltese\",\n maltichon = \"maltichon\",\n maltipoo_maltese_poodle_mix = \"maltipoo_maltese_poodle_mix\",\n manchester_terrier = \"manchester_terrier\",\n maremma_sheepdog = \"maremma_sheepdog\",\n mastador = \"mastador\",\n mastidoodle_mastiff_poodle_mix = \"mastidoodle_mastiff_poodle_mix\",\n mastiff = \"mastiff\",\n mcnab = \"mcnab\",\n miki = \"miki\",\n mini_american_shepherd = \"mini_american_shepherd\",\n miniature_aussiedoodle_miniature_australian_shepherd_miniature_poodle_mix = \"miniature_aussiedoodle_miniature_australian_shepherd_miniature_poodle_mix\",\n miniature_bull_terrier = \"miniature_bull_terrier\",\n miniature_dachshund = \"miniature_dachshund\",\n miniature_goldendoodle_golden_retriever_toy_or_miniature_poodle_mix = \"miniature_goldendoodle_golden_retriever_toy_or_miniature_poodle_mix\",\n miniature_jack_russel_terrier = \"miniature_jack_russel_terrier\",\n miniature_labradoodle_labrador_retriever_toy_or_miniature_poodle_mix = \"miniature_labradoodle_labrador_retriever_toy_or_miniature_poodle_mix\",\n miniature_pinscher = \"miniature_pinscher\",\n miniature_poodle = \"miniature_poodle\",\n miniature_schnauzer = \"miniature_schnauzer\",\n miniature_yorkshire_terrier = \"miniature_yorkshire_terrier\",\n mongrel = \"mongrel\",\n morkie = \"morkie\",\n mudi = \"mudi\",\n neapolitan_mastiff = \"neapolitan_mastiff\",\n new_guinea_singing_dog = \"new_guinea_singing_dog\",\n new_zealand_huntaway = \"new_zealand_huntaway\",\n new_zealand_huntaway_cross = \"new_zealand_huntaway_cross\",\n newfoundland = \"newfoundland\",\n newfypoo_newfoundland_poodle_mix = \"newfypoo_newfoundland_poodle_mix\",\n norfolk_terrier = \"norfolk_terrier\",\n norrbottenspets = \"norrbottenspets\",\n northern_inuit = \"northern_inuit\",\n norwegian_buhund = \"norwegian_buhund\",\n norwegian_elkhound = \"norwegian_elkhound\",\n norwegian_lundehund = \"norwegian_lundehund\",\n norwich_terrier = \"norwich_terrier\",\n nova_scotia_duck_tolling_retriever = \"nova_scotia_duck_tolling_retriever\",\n old_english_sheepdog = \"old_english_sheepdog\",\n olde_english_bulldogge = \"olde_english_bulldogge\",\n olde_tyme_bulldog = \"olde_tyme_bulldog\",\n other = \"other\",\n otterhound = \"otterhound\",\n pakistani_mastiff = \"pakistani_mastiff\",\n paperanian_papillonpomeranian_mix = \"paperanian_papillonpomeranian_mix\",\n papillion = \"papillion\",\n papillon = \"papillon\",\n papipoo_papillon_poodle_mix = \"papipoo_papillon_poodle_mix\",\n parson_jack_russell_terrier = \"parson_jack_russell_terrier\",\n parson_russell_terrier = \"parson_russell_terrier\",\n patterdale_terrier = \"patterdale_terrier\",\n pekepoo_pekingese_poodle_mix = \"pekepoo_pekingese_poodle_mix\",\n pekingese = \"pekingese\",\n pembroke_welsh_corgi = \"pembroke_welsh_corgi\",\n perro_de_presa_canario = \"perro_de_presa_canario\",\n perro_de_presa_mallorquin = \"perro_de_presa_mallorquin\",\n peruvian_inca_orchid = \"peruvian_inca_orchid\",\n petit_basset_griffon_vendeen = \"petit_basset_griffon_vendeen\",\n petite_goldendoodle_golden_retriever_cocker_spaniel_poodle_mix = \"petite_goldendoodle_golden_retriever_cocker_spaniel_poodle_mix\",\n petite_labradoodle_labrador_retriever_cocker_spaniel_poodle_mix = \"petite_labradoodle_labrador_retriever_cocker_spaniel_poodle_mix\",\n pharaoh_hound = \"pharaoh_hound\",\n picardy_spaniel = \"picardy_spaniel\",\n pinnypoo_miniature_pinscher_poodle_mix = \"pinnypoo_miniature_pinscher_poodle_mix\",\n plott = \"plott\",\n plott_hound = \"plott_hound\",\n plummer_terrier = \"plummer_terrier\",\n podenco_canario = \"podenco_canario\",\n podenco_maneto = \"podenco_maneto\",\n pointer = \"pointer\",\n polish_hunting_dog = \"polish_hunting_dog\",\n polish_lowland_sheepdog = \"polish_lowland_sheepdog\",\n polish_tatra_sheepdog = \"polish_tatra_sheepdog\",\n pomapoo_pomeranian_poodle_mix = \"pomapoo_pomeranian_poodle_mix\",\n pomchi = \"pomchi\",\n pomeranian = \"pomeranian\",\n pomsky = \"pomsky\",\n pontaudemer_spaniel = \"pontaudemer_spaniel\",\n poochin_japanese_chin_poodle_mix = \"poochin_japanese_chin_poodle_mix\",\n poodle = \"poodle\",\n poogle_beagle_poodle_mix = \"poogle_beagle_poodle_mix\",\n poolky_poodle_silky_terrier_mix = \"poolky_poodle_silky_terrier_mix\",\n pooshi_poodle_shiba_inu_mix = \"pooshi_poodle_shiba_inu_mix\",\n pooshih = \"pooshih\",\n pootalian_italian_greyhound_poodle_mix = \"pootalian_italian_greyhound_poodle_mix\",\n pooton_coton_de_tulear_poodle_mix = \"pooton_coton_de_tulear_poodle_mix\",\n poovanese_havanese_poodle_mix = \"poovanese_havanese_poodle_mix\",\n porkie = \"porkie\",\n portuguese_podengo = \"portuguese_podengo\",\n portuguese_podengo_pequeno = \"portuguese_podengo_pequeno\",\n portuguese_pointer = \"portuguese_pointer\",\n portuguese_water_dog = \"portuguese_water_dog\",\n posavac_hound = \"posavac_hound\",\n prazsky_krysarik = \"prazsky_krysarik\",\n pudelpointer = \"pudelpointer\",\n pug = \"pug\",\n pug_x_staffordshire_bull_terrier = \"pug_x_staffordshire_bull_terrier\",\n pugalier = \"pugalier\",\n pugapoo_pug_poodle_mix = \"pugapoo_pug_poodle_mix\",\n puggle = \"puggle\",\n puggle_pug_beagle_mix = \"puggle_pug_beagle_mix\",\n pugzu = \"pugzu\",\n puli = \"puli\",\n pumi = \"pumi\",\n pyredoodle_great_pyrenees_poodle_mix = \"pyredoodle_great_pyrenees_poodle_mix\",\n pyrenean_mastiff = \"pyrenean_mastiff\",\n pyrenean_mountain_dog = \"pyrenean_mountain_dog\",\n pyrenean_shepherd = \"pyrenean_shepherd\",\n rafeiro_do_alentejo = \"rafeiro_do_alentejo\",\n rajapalyam = \"rajapalyam\",\n rat_terrier = \"rat_terrier\",\n ratonero_bodeguero_andaluz = \"ratonero_bodeguero_andaluz\",\n rattle_american_rat_terrier_poodle_mix = \"rattle_american_rat_terrier_poodle_mix\",\n redbone_coonhound = \"redbone_coonhound\",\n rhodesian_ridgeback = \"rhodesian_ridgeback\",\n romanian_mioritic_shepherd_dog = \"romanian_mioritic_shepherd_dog\",\n rottle_rottweiler_standard_poodle_mix = \"rottle_rottweiler_standard_poodle_mix\",\n rottweiler = \"rottweiler\",\n rottweiler_x_american_akita = \"rottweiler_x_american_akita\",\n rottweiler_x_mastiff = \"rottweiler_x_mastiff\",\n rough_collie = \"rough_collie\",\n russell_terrier = \"russell_terrier\",\n russian_spaniel = \"russian_spaniel\",\n russian_toy = \"russian_toy\",\n saarloos_wolfdog = \"saarloos_wolfdog\",\n saint_berdoodle_saint_bernard_poodle_mix = \"saint_berdoodle_saint_bernard_poodle_mix\",\n saint_bernard = \"saint_bernard\",\n saluki = \"saluki\",\n samoyed = \"samoyed\",\n sapsali = \"sapsali\",\n sarplaninac = \"sarplaninac\",\n schapendoes = \"schapendoes\",\n schipperke = \"schipperke\",\n schipperpoo_poodle_schipperke_mix = \"schipperpoo_poodle_schipperke_mix\",\n schnauzer = \"schnauzer\",\n schnoodle = \"schnoodle\",\n schnoodle_schnauzer_poodle_mix = \"schnoodle_schnauzer_poodle_mix\",\n scoodle_scottish_terrier_poodle_mix = \"scoodle_scottish_terrier_poodle_mix\",\n scottish_deerhound = \"scottish_deerhound\",\n scottish_terrier = \"scottish_terrier\",\n sealyham_terrier = \"sealyham_terrier\",\n segugio_italiano = \"segugio_italiano\",\n seppala_siberian_sleddog = \"seppala_siberian_sleddog\",\n serbian_defence_dog = \"serbian_defence_dog\",\n serbian_hound = \"serbian_hound\",\n shar_pei = \"shar_pei\",\n sharpoo_sharpei_poodle_mix = \"sharpoo_sharpei_poodle_mix\",\n sheepadoodle_old_english_sheepdog_standard_poodle_mix = \"sheepadoodle_old_english_sheepdog_standard_poodle_mix\",\n sheltidoodle_sheltie_poodle_mix = \"sheltidoodle_sheltie_poodle_mix\",\n shepadoodle_german_shepherd_standard_poodle_mix = \"shepadoodle_german_shepherd_standard_poodle_mix\",\n shepweiler_rottweiler_germand_shepherd_mix = \"shepweiler_rottweiler_germand_shepherd_mix\",\n shetland_sheepdog = \"shetland_sheepdog\",\n shiba_inu = \"shiba_inu\",\n shichon = \"shichon\",\n shih_tzu = \"shih_tzu\",\n shih_tzupugchihuahua = \"shih_tzupugchihuahua\",\n shih_tzy_poodle = \"shih_tzy_poodle\",\n shihpoo = \"shihpoo\",\n shihpoo_shih_tzu_poodle_mix = \"shihpoo_shih_tzu_poodle_mix\",\n shihpoo_standard = \"shihpoo_standard\",\n shikoku = \"shikoku\",\n shiloh_shepherd_dog = \"shiloh_shepherd_dog\",\n shorkie = \"shorkie\",\n siberian_husky = \"siberian_husky\",\n siberian_husky_x_norwegian_elkhound = \"siberian_husky_x_norwegian_elkhound\",\n siberpoo_siberian_husky_poodle_mix = \"siberpoo_siberian_husky_poodle_mix\",\n silken_windhound = \"silken_windhound\",\n silky_terrier = \"silky_terrier\",\n skye_terrier = \"skye_terrier\",\n skypoo_poodle_skye_terrier_mix = \"skypoo_poodle_skye_terrier_mix\",\n sloughi = \"sloughi\",\n slovakian_rough_haired_pointer = \"slovakian_rough_haired_pointer\",\n smaland_hound = \"smaland_hound\",\n small_munsterlander = \"small_munsterlander\",\n smooth_fox_terrier = \"smooth_fox_terrier\",\n smooth_haired_chihuahua = \"smooth_haired_chihuahua\",\n soft_coated_wheaten_terrier = \"soft_coated_wheaten_terrier\",\n soft_coated_wheaton_terrier = \"soft_coated_wheaton_terrier\",\n south_russian_ovcharka = \"south_russian_ovcharka\",\n spanish_galgo = \"spanish_galgo\",\n spanish_mastiff = \"spanish_mastiff\",\n spanish_podenco = \"spanish_podenco\",\n spanish_water_dog = \"spanish_water_dog\",\n spinone_italiano = \"spinone_italiano\",\n sporting_lucas_terrier = \"sporting_lucas_terrier\",\n spreagle = \"spreagle\",\n springador = \"springador\",\n springbatt = \"springbatt\",\n springerdoodle_english_springer_spaniel_poodle_mix = \"springerdoodle_english_springer_spaniel_poodle_mix\",\n sprocker = \"sprocker\",\n sprollie_springer_spaniel_x_border_collie = \"sprollie_springer_spaniel_x_border_collie\",\n sprusky_siberian_husky_x_springer_spaniel = \"sprusky_siberian_husky_x_springer_spaniel\",\n st_bernard = \"st_bernard\",\n stabijhoun = \"stabijhoun\",\n staffador = \"staffador\",\n staffordshire_bull_terrier = \"staffordshire_bull_terrier\",\n staffsky = \"staffsky\",\n staffy_x_french_bulldogamerican_bully = \"staffy_x_french_bulldogamerican_bully\",\n standard_poodle = \"standard_poodle\",\n standard_schnauzer = \"standard_schnauzer\",\n standard_schnoodle_poodle_standard_schnauzer_mix = \"standard_schnoodle_poodle_standard_schnauzer_mix\",\n sussex_spaniel = \"sussex_spaniel\",\n swedish_lapphund = \"swedish_lapphund\",\n swedish_valhund = \"swedish_valhund\",\n swedish_vallhund = \"swedish_vallhund\",\n swiss_shepherd = \"swiss_shepherd\",\n tamaskan = \"tamaskan\",\n terripoo_australian_terrier_poodle_mix = \"terripoo_australian_terrier_poodle_mix\",\n thai_bangkaew = \"thai_bangkaew\",\n thai_ridgeback = \"thai_ridgeback\",\n tibetan_mastiff = \"tibetan_mastiff\",\n tibetan_spaniel = \"tibetan_spaniel\",\n tibetan_terrier = \"tibetan_terrier\",\n tornjak = \"tornjak\",\n tosa_inu = \"tosa_inu\",\n toy_fox_terrier = \"toy_fox_terrier\",\n toy_poodle = \"toy_poodle\",\n transylvanian_hound = \"transylvanian_hound\",\n treeing_walker_coonhound = \"treeing_walker_coonhound\",\n ttoodle_poodle_tibetan_terrier_mix = \"ttoodle_poodle_tibetan_terrier_mix\",\n turkish_kangal_dog = \"turkish_kangal_dog\",\n turkish_kangol = \"turkish_kangol\",\n utonagan = \"utonagan\",\n valley_bulldog = \"valley_bulldog\",\n victorian_bulldog = \"victorian_bulldog\",\n vizsla = \"vizsla\",\n volpino_italiano = \"volpino_italiano\",\n weechon_westie_bischon_frise_mix = \"weechon_westie_bischon_frise_mix\",\n weimaraner = \"weimaraner\",\n weimardoodle_weimaraner_poodle_mix = \"weimardoodle_weimaraner_poodle_mix\",\n welsh_corgi = \"welsh_corgi\",\n welsh_sheepdog = \"welsh_sheepdog\",\n welsh_springer_spaniel = \"welsh_springer_spaniel\",\n welsh_terrier = \"welsh_terrier\",\n west_highland_schnauzer = \"west_highland_schnauzer\",\n west_highland_white_terrier = \"west_highland_white_terrier\",\n west_siberian_laika = \"west_siberian_laika\",\n westie_x_bedlington_terrier = \"westie_x_bedlington_terrier\",\n westiepoo_westie_poodle_mix = \"westiepoo_westie_poodle_mix\",\n wetterhoun = \"wetterhoun\",\n whippet = \"whippet\",\n whippet_x_italian_bloodhound = \"whippet_x_italian_bloodhound\",\n whippet_x_poodle = \"whippet_x_poodle\",\n white_swiss_shepherd_dog = \"white_swiss_shepherd_dog\",\n whoodle_soft_coated_wheaton_terrier_poodle_mix = \"whoodle_soft_coated_wheaton_terrier_poodle_mix\",\n wire_fox_terrier = \"wire_fox_terrier\",\n wire_haired_dachshund = \"wire_haired_dachshund\",\n wirehaired_hungarian_vizsla = \"wirehaired_hungarian_vizsla\",\n wirehaired_pointing_griffon = \"wirehaired_pointing_griffon\",\n wirepoo_wirehaired_fox_terrier_x_poodle_mix = \"wirepoo_wirehaired_fox_terrier_x_poodle_mix\",\n woodle_welsh_terrier_poodle_mix = \"woodle_welsh_terrier_poodle_mix\",\n working_cocker_spaniel = \"working_cocker_spaniel\",\n xoloitzcuintli = \"xoloitzcuintli\",\n yoranian = \"yoranian\",\n yorkipoo_yorkie_poodle_mix = \"yorkipoo_yorkie_poodle_mix\",\n yorkshire_terrier = \"yorkshire_terrier\",\n zuchon = \"zuchon\",\n}\n\nexport enum Language {\n cs_CZ = \"cs_CZ\",\n de_DE = \"de_DE\",\n en = \"en\",\n fr = \"fr\",\n nl = \"nl\",\n nl_BE = \"nl_BE\",\n pl = \"pl\",\n pl_PL = \"pl_PL\",\n}\n\nexport enum MarketingPreferences {\n deals_only = \"deals_only\",\n full_consent = \"full_consent\",\n no_consent = \"no_consent\",\n}\n\nexport enum MutationMessage {\n no_phone_error = \"no_phone_error\",\n}\n\nexport enum NonCoreInvoiceStatus {\n failed = \"failed\",\n forgiven = \"forgiven\",\n free = \"free\",\n paid = \"paid\",\n pending = \"pending\",\n unpaid = \"unpaid\",\n}\n\nexport enum NonPaymentReason {\n admin_gift = \"admin_gift\",\n churn_treatment = \"churn_treatment\",\n free_sample = \"free_sample\",\n raf_campaign_gift = \"raf_campaign_gift\",\n shopify_purchase = \"shopify_purchase\",\n surprise_gift = \"surprise_gift\",\n}\n\nexport enum Payment {\n billing_agreement = \"billing_agreement\",\n credit_card = \"credit_card\",\n direct_debit = \"direct_debit\",\n merchant_initiated_payment = \"merchant_initiated_payment\",\n sepa_direct_debit = \"sepa_direct_debit\",\n}\n\nexport enum PaymentMethodType {\n billing_agreement = \"billing_agreement\",\n credit_card = \"credit_card\",\n direct_debit = \"direct_debit\",\n merchant_initiated_payment = \"merchant_initiated_payment\",\n sepa_direct_debit = \"sepa_direct_debit\",\n}\n\nexport enum PaymentMethodable {\n BillingAgreement = \"BillingAgreement\",\n CreditCard = \"CreditCard\",\n DirectDebit = \"DirectDebit\",\n MerchantInitiatedPayment = \"MerchantInitiatedPayment\",\n SepaDirectDebit = \"SepaDirectDebit\",\n}\n\nexport enum PaymentResourceType {\n charge = \"charge\",\n payment_intent = \"payment_intent\",\n}\n\nexport enum Provider {\n gocardless = \"gocardless\",\n paypal = \"paypal\",\n revolut = \"revolut\",\n stripe = \"stripe\",\n}\n\nexport enum RecipeSurchargeCalculation {\n per_pouch = \"per_pouch\",\n per_serving = \"per_serving\",\n}\n\nexport enum Serving {\n half_pouch = \"half_pouch\",\n single_serve = \"single_serve\",\n standard_serving = \"standard_serving\",\n}\n\nexport enum SnackingHabit {\n eats_lots_of_snacks = \"eats_lots_of_snacks\",\n eats_no_snacks = \"eats_no_snacks\",\n eats_some_snacks = \"eats_some_snacks\",\n unknown_snacking_habits = \"unknown_snacking_habits\",\n}\n\nexport enum Status {\n allocated = \"allocated\",\n attempted_delivery = \"attempted_delivery\",\n cancelled = \"cancelled\",\n delivered = \"delivered\",\n exception = \"exception\",\n in = \"in\",\n manifested = \"manifested\",\n out = \"out\",\n printed = \"printed\",\n unallocated = \"unallocated\",\n unknown = \"unknown\",\n}\n\nexport enum SubscriptionStatus {\n active = \"active\",\n paused = \"paused\",\n suspended = \"suspended\",\n}\n\nexport enum Trait {\n clever_clogs = \"clever_clogs\",\n goofball = \"goofball\",\n shy = \"shy\",\n sweet = \"sweet\",\n}\n\nexport enum TypeOfPlan {\n all = \"all\",\n half = \"half\",\n most = \"most\",\n some = \"some\",\n}\n\nexport enum UnavailableObjectReason {\n coming_soon = \"coming_soon\",\n out_of_stock_hidden = \"out_of_stock_hidden\",\n out_of_stock_shown = \"out_of_stock_shown\",\n}\n\nexport enum VariantDelivery {\n on_demand = \"on_demand\",\n one_off = \"one_off\",\n recurring = \"recurring\",\n}\n\nexport interface ActivitiesInput {\n dogId: string;\n activities: Activity[];\n}\n\nexport interface AddressInput {\n postcode: string;\n addressLineOne: string;\n recipientName: string;\n addressLineTwo?: string | null;\n city: string;\n shippingCountryId?: number | null;\n deliveryNotes?: string | null;\n}\n\nexport interface AnswerInput {\n questionId: number;\n optionId: number;\n value: number;\n}\n\nexport interface AvatarInput {\n dogId: string;\n avatar: any;\n}\n\nexport interface CustomerIssueManagementInputInput {\n fieldId: string;\n booleanValue?: boolean | null;\n integerValue?: number | null;\n stringValue?: string | null;\n associationValue?: string | null;\n inputs?: CustomerIssueManagementInputInput[] | null;\n}\n\nexport interface CustomerIssueManagementResolutionOfferingAcceptanceDetailsInput {\n id: string;\n replaceBox?: CustomerIssueManagementResolutionOfferingAcceptanceDetailsReplaceBoxInput | null;\n}\n\nexport interface CustomerIssueManagementResolutionOfferingAcceptanceDetailsReplaceBoxInput {\n deliveryDate: any;\n deliveryAddress: AddressInput;\n}\n\nexport interface CustomerIssueManagementResolutionOfferingRejectionDetailsInput {\n id: string;\n}\n\nexport interface CustomerIssueReportEntryInputInput {\n fieldId: string;\n booleanValue?: boolean | null;\n integerValue?: number | null;\n stringValue?: string | null;\n associationValue?: string | null;\n entryFieldInputs?: CustomerIssueReportEntryInputInput[] | null;\n}\n\nexport interface CustomerIssueResolutionAcceptanceReplacementBoxDetailsInput {\n deliveryDate: any;\n deliveryAddress: AddressInput;\n}\n\nexport interface DogInput {\n name: string;\n breedId: string;\n gender: Gender;\n exercise: Exercise;\n dateOfBirth?: any | null;\n ageInMonthsWhenLastUpdated: number;\n weightInGrams: number;\n bodyShape: BodyShape;\n neutered: boolean;\n ageClassificationByUserWhenCreated: AgeClassificationByUserWhenCreated;\n feedingGuidelinesUsed: FeedingGuidelinesUsed;\n eaterType?: Eater | null;\n currentFood?: CurrentFood | null;\n snackingHabits: SnackingHabit;\n foodCategoryIds: string[];\n allergenIds?: string[] | null;\n healthIssueIds?: string[] | null;\n archiveReasonIds?: string[] | null;\n}\n\nexport interface DogUpdateInput {\n id: string;\n exercise?: Exercise | null;\n weightInGrams?: number | null;\n bodyShape?: BodyShape | null;\n neutered?: boolean | null;\n gender?: Gender | null;\n name?: string | null;\n snackingHabits?: SnackingHabit | null;\n eaterType?: Eater | null;\n breedKey?: Key | null;\n healthIssueIds?: string[] | null;\n allergenIds?: string[] | null;\n ageInMonthsWhenLastUpdated?: number | null;\n}\n\nexport interface FavouriteGameInput {\n dogId: string;\n favouriteGame: FavouriteGame;\n}\n\nexport interface MealInput {\n beef?: number | null;\n chicken?: number | null;\n turkey?: number | null;\n lamb?: number | null;\n whiteFish?: number | null;\n pork?: number | null;\n duckAndChicken?: number | null;\n venisonWithDuck?: number | null;\n game?: number | null;\n veggie?: number | null;\n plant?: number | null;\n salmon?: number | null;\n chickenGrain?: number | null;\n porkGrain?: number | null;\n plBeef?: number | null;\n plChicken?: number | null;\n plLamb?: number | null;\n plTurkey?: number | null;\n plSalmon?: number | null;\n plPork?: number | null;\n plDuckAndChicken?: number | null;\n plGame?: number | null;\n mlBeef?: number | null;\n mlChicken?: number | null;\n mlDuckAndChicken?: number | null;\n mlLamb?: number | null;\n mlPork?: number | null;\n mlSalmon?: number | null;\n}\n\nexport interface PaymentMethodInput {\n paymentMethodId: string;\n active: boolean;\n paymentMethodType: InputPaymentMethod;\n paymentProvider: Provider;\n}\n\nexport interface PendingSubscriptionInput {\n flavourIds?: string[] | null;\n planId: string;\n productVariantIds?: string[] | null;\n mealSelectionType?: string | null;\n}\n\nexport interface ProductInput {\n productId?: string | null;\n quantity?: number | null;\n productVariantId?: string | null;\n}\n\nexport interface ProductVariantInput {\n productVariantId: string;\n quantity: number;\n deliveryType: VariantDelivery;\n}\n\nexport interface SignupInfluencerInput {\n firstName: string;\n lastName: string;\n email: string;\n password: string;\n phone: string;\n dogs: string[];\n token: string;\n}\n\nexport interface SubscriptionDataInput {\n planId: string;\n targetFirstDeliveryDate: any;\n paymentMethodId?: string | null;\n paymentMethodIdentifierType: string;\n paymentProvider: Provider;\n paymentMethodType: Payment;\n mealBreakdown: MealInput;\n additionalProductIds?: string[] | null;\n gaClientId?: string | null;\n deliveryCadence: string;\n user: UserSubscriptionDataInput;\n}\n\nexport interface SubscriptionInput {\n planId: string;\n targetFirstDeliveryDate: any;\n stripeToken?: string | null;\n paymentMethodId?: string | null;\n paymentProvider: Provider;\n paymentMethodType: PaymentMethodable;\n mealBreakdown: MealInput;\n paymentIntentId?: string | null;\n productVariantInputs?: ProductVariantInput[] | null;\n}\n\nexport interface TraitsInput {\n dogId: string;\n traits: Trait[];\n}\n\nexport interface UserDetailsInput {\n email?: string | null;\n password?: string | null;\n phone?: string | null;\n firstName?: string | null;\n lastName?: string | null;\n}\n\nexport interface UserSubscriptionDataInput {\n shouldSupportSca: boolean;\n email?: string | null;\n firstName: string;\n lastName: string;\n password?: string | null;\n passwordConfirmation?: string | null;\n phone?: string | null;\n addressAttributes: AddressInput;\n}\n\n//==============================================================\n// END Enums and Input Objects\n//==============================================================\n","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@material-ui/utils/macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe iff we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n\n /* eslint-disable prefer-template */\n var url = 'https://mui.com/production-error/?code=' + code;\n\n for (var i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n\n return 'Minified Material-UI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\nexport function dedentBlockStringValue(rawString) {\n // Expand a block string's raw value into independent lines.\n var lines = rawString.split(/\\r\\n|[\\n\\r]/g); // Remove common indentation from all lines but first.\n\n var commonIndent = getBlockStringIndentation(rawString);\n\n if (commonIndent !== 0) {\n for (var i = 1; i < lines.length; i++) {\n lines[i] = lines[i].slice(commonIndent);\n }\n } // Remove leading and trailing blank lines.\n\n\n var startLine = 0;\n\n while (startLine < lines.length && isBlank(lines[startLine])) {\n ++startLine;\n }\n\n var endLine = lines.length;\n\n while (endLine > startLine && isBlank(lines[endLine - 1])) {\n --endLine;\n } // Return a string of the lines joined with U+000A.\n\n\n return lines.slice(startLine, endLine).join('\\n');\n}\n\nfunction isBlank(str) {\n for (var i = 0; i < str.length; ++i) {\n if (str[i] !== ' ' && str[i] !== '\\t') {\n return false;\n }\n }\n\n return true;\n}\n/**\n * @internal\n */\n\n\nexport function getBlockStringIndentation(value) {\n var _commonIndent;\n\n var isFirstLine = true;\n var isEmptyLine = true;\n var indent = 0;\n var commonIndent = null;\n\n for (var i = 0; i < value.length; ++i) {\n switch (value.charCodeAt(i)) {\n case 13:\n // \\r\n if (value.charCodeAt(i + 1) === 10) {\n ++i; // skip \\r\\n as one symbol\n }\n\n // falls through\n\n case 10:\n // \\n\n isFirstLine = false;\n isEmptyLine = true;\n indent = 0;\n break;\n\n case 9: // \\t\n\n case 32:\n // <space>\n ++indent;\n break;\n\n default:\n if (isEmptyLine && !isFirstLine && (commonIndent === null || indent < commonIndent)) {\n commonIndent = indent;\n }\n\n isEmptyLine = false;\n }\n }\n\n return (_commonIndent = commonIndent) !== null && _commonIndent !== void 0 ? _commonIndent : 0;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value) {\n var indentation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var preferMultipleLines = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isSingleLine = value.indexOf('\\n') === -1;\n var hasLeadingSpace = value[0] === ' ' || value[0] === '\\t';\n var hasTrailingQuote = value[value.length - 1] === '\"';\n var hasTrailingSlash = value[value.length - 1] === '\\\\';\n var printAsMultipleLines = !isSingleLine || hasTrailingQuote || hasTrailingSlash || preferMultipleLines;\n var result = ''; // Format a multi-line block quote to account for leading space.\n\n if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) {\n result += '\\n' + indentation;\n }\n\n result += indentation ? value.replace(/\\n/g, '\\n' + indentation) : value;\n\n if (printAsMultipleLines) {\n result += '\\n';\n }\n\n return '\"\"\"' + result.replace(/\"\"\"/g, '\\\\\"\"\"') + '\"\"\"';\n}","// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nexport var SYMBOL_ITERATOR = typeof Symbol === 'function' && Symbol.iterator != null ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_ASYNC_ITERATOR = typeof Symbol === 'function' && Symbol.asyncIterator != null ? Symbol.asyncIterator : '@@asyncIterator'; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_TO_STRING_TAG = typeof Symbol === 'function' && Symbol.toStringTag != null ? Symbol.toStringTag : '@@toStringTag';","var root = require('./_root');\n/** Built-in value references. */\n\n\nvar Symbol = root.Symbol;\nmodule.exports = Symbol;","import { __extends } from \"tslib\";\nvar genericMessage = \"Invariant Violation\";\nvar _a = Object.setPrototypeOf,\n setPrototypeOf = _a === void 0 ? function (obj, proto) {\n obj.__proto__ = proto;\n return obj;\n} : _a;\n\nvar InvariantError =\n/** @class */\nfunction (_super) {\n __extends(InvariantError, _super);\n\n function InvariantError(message) {\n if (message === void 0) {\n message = genericMessage;\n }\n\n var _this = _super.call(this, typeof message === \"number\" ? genericMessage + \": \" + message + \" (see https://github.com/apollographql/invariant-packages)\" : message) || this;\n\n _this.framesToPop = 1;\n _this.name = genericMessage;\n setPrototypeOf(_this, InvariantError.prototype);\n return _this;\n }\n\n return InvariantError;\n}(Error);\n\nexport { InvariantError };\nexport function invariant(condition, message) {\n if (!condition) {\n throw new InvariantError(message);\n }\n}\nvar verbosityLevels = [\"debug\", \"log\", \"warn\", \"error\", \"silent\"];\nvar verbosityLevel = verbosityLevels.indexOf(\"log\");\n\nfunction wrapConsoleMethod(name) {\n return function () {\n if (verbosityLevels.indexOf(name) >= verbosityLevel) {\n // Default to console.log if this host environment happens not to provide\n // all the console.* methods we need.\n var method = console[name] || console.log;\n return method.apply(console, arguments);\n }\n };\n}\n\n(function (invariant) {\n invariant.debug = wrapConsoleMethod(\"debug\");\n invariant.log = wrapConsoleMethod(\"log\");\n invariant.warn = wrapConsoleMethod(\"warn\");\n invariant.error = wrapConsoleMethod(\"error\");\n})(invariant || (invariant = {}));\n\nexport function setVerbosity(level) {\n var old = verbosityLevels[verbosityLevel];\n verbosityLevel = Math.max(0, verbosityLevels.indexOf(level));\n return old;\n}\nexport default invariant;","import global from \"./global.js\";\nimport { maybe } from \"./maybe.js\";\nvar __ = \"__\";\nvar GLOBAL_KEY = [__, __].join(\"DEV\");\n\nfunction getDEV() {\n try {\n return Boolean(__DEV__);\n } catch (_a) {\n Object.defineProperty(global, GLOBAL_KEY, {\n value: maybe(function () {\n return process.env.NODE_ENV;\n }) !== \"production\",\n enumerable: false,\n configurable: true,\n writable: true\n });\n return global[GLOBAL_KEY];\n }\n}\n\nexport default getDEV();","import { remove } from \"ts-invariant/process/index.js\";\nimport { Source } from 'graphql';\nexport function removeTemporaryGlobals() {\n return typeof Source === \"function\" ? remove() : remove();\n}","import { invariant, InvariantError } from \"ts-invariant\";\nimport DEV from \"./DEV.js\";\nexport { DEV };\nexport function checkDEV() {\n __DEV__ ? invariant(\"boolean\" === typeof DEV, DEV) : invariant(\"boolean\" === typeof DEV, 38);\n}\nimport { removeTemporaryGlobals } from \"./fix-graphql.js\";\nremoveTemporaryGlobals();\nexport { maybe } from \"./maybe.js\";\nexport { default as global } from \"./global.js\";\nexport { invariant, InvariantError };\ncheckDEV();","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _handlebarsRuntime = require('./handlebars.runtime');\n\nvar _handlebarsRuntime2 = _interopRequireDefault(_handlebarsRuntime); // Compiler imports\n\n\nvar _handlebarsCompilerAst = require('./handlebars/compiler/ast');\n\nvar _handlebarsCompilerAst2 = _interopRequireDefault(_handlebarsCompilerAst);\n\nvar _handlebarsCompilerBase = require('./handlebars/compiler/base');\n\nvar _handlebarsCompilerCompiler = require('./handlebars/compiler/compiler');\n\nvar _handlebarsCompilerJavascriptCompiler = require('./handlebars/compiler/javascript-compiler');\n\nvar _handlebarsCompilerJavascriptCompiler2 = _interopRequireDefault(_handlebarsCompilerJavascriptCompiler);\n\nvar _handlebarsCompilerVisitor = require('./handlebars/compiler/visitor');\n\nvar _handlebarsCompilerVisitor2 = _interopRequireDefault(_handlebarsCompilerVisitor);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\nvar _create = _handlebarsRuntime2['default'].create;\n\nfunction create() {\n var hb = _create();\n\n hb.compile = function (input, options) {\n return _handlebarsCompilerCompiler.compile(input, options, hb);\n };\n\n hb.precompile = function (input, options) {\n return _handlebarsCompilerCompiler.precompile(input, options, hb);\n };\n\n hb.AST = _handlebarsCompilerAst2['default'];\n hb.Compiler = _handlebarsCompilerCompiler.Compiler;\n hb.JavaScriptCompiler = _handlebarsCompilerJavascriptCompiler2['default'];\n hb.Parser = _handlebarsCompilerBase.parser;\n hb.parse = _handlebarsCompilerBase.parse;\n hb.parseWithoutProcessing = _handlebarsCompilerBase.parseWithoutProcessing;\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst.Visitor = _handlebarsCompilerVisitor2['default'];\ninst['default'] = inst;\nexports['default'] = inst;\nmodule.exports = exports['default'];","module.exports = __webpack_public_path__ + \"media/arrows/arrow-blue-a493334b.svg\";","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport function isPlainObject(item) {\n return item && _typeof(item) === 'object' && item.constructor === Object;\n}\nexport default function deepmerge(target, source) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n clone: true\n };\n var output = options.clone ? _extends({}, target) : target;\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(function (key) {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n\n if (isPlainObject(source[key]) && key in target) {\n output[key] = deepmerge(target[key], source[key], options);\n } else {\n output[key] = source[key];\n }\n });\n }\n\n return output;\n}","// @noflow\nimport { useCallback, useState } from 'react'\n\ntype UseBoolean = {\n value: boolean\n setValue: (value: boolean) => void\n toggle: () => void\n setTrue: () => void\n setFalse: () => void\n}\n\nconst useBoolean = (initial: boolean): UseBoolean => {\n const [value, setValue] = useState<boolean>(initial)\n\n const toggle = useCallback((): void => {\n setValue((val: boolean): boolean => !val)\n }, [])\n\n const setTrue = useCallback((): void => {\n setValue(true)\n }, [])\n\n const setFalse = useCallback((): void => {\n setValue(false)\n }, [])\n\n return {\n value,\n setValue,\n toggle,\n setTrue,\n setFalse\n }\n}\n\nexport type { UseBoolean }\n\nexport default useBoolean\n","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * The set of allowed kind values for AST nodes.\n */\nexport var Kind = Object.freeze({\n // Name\n NAME: 'Name',\n // Document\n DOCUMENT: 'Document',\n OPERATION_DEFINITION: 'OperationDefinition',\n VARIABLE_DEFINITION: 'VariableDefinition',\n SELECTION_SET: 'SelectionSet',\n FIELD: 'Field',\n ARGUMENT: 'Argument',\n // Fragments\n FRAGMENT_SPREAD: 'FragmentSpread',\n INLINE_FRAGMENT: 'InlineFragment',\n FRAGMENT_DEFINITION: 'FragmentDefinition',\n // Values\n VARIABLE: 'Variable',\n INT: 'IntValue',\n FLOAT: 'FloatValue',\n STRING: 'StringValue',\n BOOLEAN: 'BooleanValue',\n NULL: 'NullValue',\n ENUM: 'EnumValue',\n LIST: 'ListValue',\n OBJECT: 'ObjectValue',\n OBJECT_FIELD: 'ObjectField',\n // Directives\n DIRECTIVE: 'Directive',\n // Types\n NAMED_TYPE: 'NamedType',\n LIST_TYPE: 'ListType',\n NON_NULL_TYPE: 'NonNullType',\n // Type System Definitions\n SCHEMA_DEFINITION: 'SchemaDefinition',\n OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',\n // Type Definitions\n SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',\n OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',\n FIELD_DEFINITION: 'FieldDefinition',\n INPUT_VALUE_DEFINITION: 'InputValueDefinition',\n INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',\n UNION_TYPE_DEFINITION: 'UnionTypeDefinition',\n ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',\n ENUM_VALUE_DEFINITION: 'EnumValueDefinition',\n INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',\n // Directive Definitions\n DIRECTIVE_DEFINITION: 'DirectiveDefinition',\n // Type System Extensions\n SCHEMA_EXTENSION: 'SchemaExtension',\n // Type Extensions\n SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',\n OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',\n INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',\n UNION_TYPE_EXTENSION: 'UnionTypeExtension',\n ENUM_TYPE_EXTENSION: 'EnumTypeExtension',\n INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension'\n});\n/**\n * The enum type representing the possible kind values of AST nodes.\n */","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n\n\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;","// turn {x: {val: 1, stiffness: 1, damping: 2}, y: 2} generated by\n// `{x: spring(1, {stiffness: 1, damping: 2}), y: 2}` into {x: 1, y: 2}\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = stripStyle;\n\nfunction stripStyle(style) {\n var ret = {};\n\n for (var key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n\n ret[key] = typeof style[key] === 'number' ? style[key] : style[key].val;\n }\n\n return ret;\n}\n\nmodule.exports = exports['default'];","import React from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { Markup } from 'react-render-markup'\n\ntype Props = {\n text: string\n namespace: string\n}\n\nconst WonkyText = ({ text, namespace }: Props): JSX.Element => {\n const allowedHtmlElement = ['strong', 'em', 'b', 'a', 'br', 'span', 'accent'] // strips all other elements\n\n const { t } = useTranslation(namespace)\n\n // This function applies rotation to characters in given text while also preventing\n // line breaks from ocurring in the middle of a word.\n // <br /> can't be added to .yml because it will be rotated, rather than rendered - use \\n instead\n // when adding new lines in .yml\n const applyRotation = (text: string) => {\n // Split string into words\n const words = t(text).split(' ')\n\n // Rotate the characters in each word\n const rotatedWords = words.map((word) => {\n const rotatedWord = word\n .split('')\n .map((char, index) => {\n if (char === '\\n') return '<br />'\n\n const rotateAngle =\n index % 2 === 0\n ? 'transform: rotate(-5deg)'\n : 'transform: rotate(5deg)'\n const minWidth = char === ' ' ? 'min-width: 10px' : ''\n\n return `<span style=\"${rotateAngle}; display: inline-flex; ${minWidth}\">${char}</span>`\n })\n .join('')\n // Prevent line breaks occurring in the middle of a word\n // eslint-disable-next-line i18next/no-literal-string\n return `<span style=\"white-space: nowrap;\">${rotatedWord}</span>`\n })\n // Join words back into one string\n return rotatedWords.join(' ')\n }\n\n return <Markup allowed={allowedHtmlElement} markup={applyRotation(text)} />\n}\n\nexport { Props }\nexport default WonkyText\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n\n\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;","// This currentContext variable will only be used if the makeSlotClass\n// function is called, which happens only if this is the first copy of the\n// @wry/context package to be imported.\nvar currentContext = null; // This unique internal object is used to denote the absence of a value\n// for a given Slot, and is never exposed to outside code.\n\nvar MISSING_VALUE = {};\nvar idCounter = 1; // Although we can't do anything about the cost of duplicated code from\n// accidentally bundling multiple copies of the @wry/context package, we can\n// avoid creating the Slot class more than once using makeSlotClass.\n\nvar makeSlotClass = function makeSlotClass() {\n return (\n /** @class */\n function () {\n function Slot() {\n // If you have a Slot object, you can find out its slot.id, but you cannot\n // guess the slot.id of a Slot you don't have access to, thanks to the\n // randomized suffix.\n this.id = [\"slot\", idCounter++, Date.now(), Math.random().toString(36).slice(2)].join(\":\");\n }\n\n Slot.prototype.hasValue = function () {\n for (var context_1 = currentContext; context_1; context_1 = context_1.parent) {\n // We use the Slot object iself as a key to its value, which means the\n // value cannot be obtained without a reference to the Slot object.\n if (this.id in context_1.slots) {\n var value = context_1.slots[this.id];\n if (value === MISSING_VALUE) break;\n\n if (context_1 !== currentContext) {\n // Cache the value in currentContext.slots so the next lookup will\n // be faster. This caching is safe because the tree of contexts and\n // the values of the slots are logically immutable.\n currentContext.slots[this.id] = value;\n }\n\n return true;\n }\n }\n\n if (currentContext) {\n // If a value was not found for this Slot, it's never going to be found\n // no matter how many times we look it up, so we might as well cache\n // the absence of the value, too.\n currentContext.slots[this.id] = MISSING_VALUE;\n }\n\n return false;\n };\n\n Slot.prototype.getValue = function () {\n if (this.hasValue()) {\n return currentContext.slots[this.id];\n }\n };\n\n Slot.prototype.withValue = function (value, callback, // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n var _a;\n\n var slots = (_a = {\n __proto__: null\n }, _a[this.id] = value, _a);\n var parent = currentContext;\n currentContext = {\n parent: parent,\n slots: slots\n };\n\n try {\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg, args);\n } finally {\n currentContext = parent;\n }\n }; // Capture the current context and wrap a callback function so that it\n // reestablishes the captured context when called.\n\n\n Slot.bind = function (callback) {\n var context = currentContext;\n return function () {\n var saved = currentContext;\n\n try {\n currentContext = context;\n return callback.apply(this, arguments);\n } finally {\n currentContext = saved;\n }\n };\n }; // Immediately run a callback function without any captured context.\n\n\n Slot.noContext = function (callback, // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n if (currentContext) {\n var saved = currentContext;\n\n try {\n currentContext = null; // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n\n return callback.apply(thisArg, args);\n } finally {\n currentContext = saved;\n }\n } else {\n return callback.apply(thisArg, args);\n }\n };\n\n return Slot;\n }()\n );\n};\n\nfunction maybe(fn) {\n try {\n return fn();\n } catch (ignored) {}\n} // We store a single global implementation of the Slot class as a permanent\n// non-enumerable property of the globalThis object. This obfuscation does\n// nothing to prevent access to the Slot class, but at least it ensures the\n// implementation (i.e. currentContext) cannot be tampered with, and all copies\n// of the @wry/context package (hopefully just one) will share the same Slot\n// implementation. Since the first copy of the @wry/context package to be\n// imported wins, this technique imposes a steep cost for any future breaking\n// changes to the Slot class.\n\n\nvar globalKey = \"@wry/context:Slot\";\nvar host = // Prefer globalThis when available.\n// https://github.com/benjamn/wryware/issues/347\nmaybe(function () {\n return globalThis;\n}) || // Fall back to global, which works in Node.js and may be converted by some\n// bundlers to the appropriate identifier (window, self, ...) depending on the\n// bundling target. https://github.com/endojs/endo/issues/576#issuecomment-1178515224\nmaybe(function () {\n return global;\n}) || // Otherwise, use a dummy host that's local to this module. We used to fall\n// back to using the Array constructor as a namespace, but that was flagged in\n// https://github.com/benjamn/wryware/issues/347, and can be avoided.\nObject.create(null); // Whichever globalHost we're using, make TypeScript happy about the additional\n// globalKey property.\n\nvar globalHost = host;\n\nvar Slot = globalHost[globalKey] || // Earlier versions of this package stored the globalKey property on the Array\n// constructor, so we check there as well, to prevent Slot class duplication.\nArray[globalKey] || function (Slot) {\n try {\n Object.defineProperty(globalHost, globalKey, {\n value: Slot,\n enumerable: false,\n writable: false,\n // When it was possible for globalHost to be the Array constructor (a\n // legacy Slot dedup strategy), it was important for the property to be\n // configurable:true so it could be deleted. That does not seem to be as\n // important when globalHost is the global object, but I don't want to\n // cause similar problems again, and configurable:true seems safest.\n // https://github.com/endojs/endo/issues/576#issuecomment-1178274008\n configurable: true\n });\n } finally {\n return Slot;\n }\n}(makeSlotClass());\n\nvar bind = Slot.bind,\n noContext = Slot.noContext;\n\nfunction setTimeoutWithContext(callback, delay) {\n return setTimeout(bind(callback), delay);\n} // Turn any generator function into an async function (using yield instead\n// of await), with context automatically preserved across yields.\n\n\nfunction asyncFromGen(genFn) {\n return function () {\n var gen = genFn.apply(this, arguments);\n var boundNext = bind(gen.next);\n var boundThrow = bind(gen.throw);\n return new Promise(function (resolve, reject) {\n function invoke(method, argument) {\n try {\n var result = method.call(gen, argument);\n } catch (error) {\n return reject(error);\n }\n\n var next = result.done ? resolve : invokeNext;\n\n if (isPromiseLike(result.value)) {\n result.value.then(next, result.done ? reject : invokeThrow);\n } else {\n next(result.value);\n }\n }\n\n var invokeNext = function invokeNext(value) {\n return invoke(boundNext, value);\n };\n\n var invokeThrow = function invokeThrow(error) {\n return invoke(boundThrow, error);\n };\n\n invokeNext();\n });\n };\n}\n\nfunction isPromiseLike(value) {\n return value && typeof value.then === \"function\";\n} // If you use the fibers npm package to implement coroutines in Node.js,\n// you should call this function at least once to ensure context management\n// remains coherent across any yields.\n\n\nvar wrappedFibers = [];\n\nfunction wrapYieldingFiberMethods(Fiber) {\n // There can be only one implementation of Fiber per process, so this array\n // should never grow longer than one element.\n if (wrappedFibers.indexOf(Fiber) < 0) {\n var wrap = function wrap(obj, method) {\n var fn = obj[method];\n\n obj[method] = function () {\n return noContext(fn, arguments, this);\n };\n }; // These methods can yield, according to\n // https://github.com/laverdet/node-fibers/blob/ddebed9b8ae3883e57f822e2108e6943e5c8d2a8/fibers.js#L97-L100\n\n\n wrap(Fiber, \"yield\");\n wrap(Fiber.prototype, \"run\");\n wrap(Fiber.prototype, \"throwInto\");\n wrappedFibers.push(Fiber);\n }\n\n return Fiber;\n}\n\nexport { Slot, asyncFromGen, bind, noContext, setTimeoutWithContext as setTimeout, wrapYieldingFiberMethods };","var parser = null;\n\nvar getParser = function getParser() {\n if (parser === null) {\n parser = new window.DOMParser();\n }\n\n return parser;\n};\n\nvar wrapMarkup = function wrapMarkup(markup) {\n return \"<!DOCTYPE html>\\n<html><body>\".concat(markup, \"</body></html>\");\n};\n\nvar parseDom = function parseDom(markup) {\n return getParser().parseFromString(wrapMarkup(markup), 'text/html').querySelector('body').childNodes;\n};\n\nexport default parseDom;","// Convert a string from kebab-case to camelCase\nvar camelCase = function camelCase(string) {\n return string.replace(/\\-(\\w|$)/g, function (m, p1) {\n return p1.toUpperCase();\n });\n};\n\nvar convertPropertyName = function convertPropertyName(prop) {\n prop = prop.toLowerCase(); // Always return 'float' as 'cssFloat'\n\n if (prop === 'float') {\n return 'cssFloat';\n } // Skip CSS variables\n\n\n if (prop.startsWith('--')) {\n return prop;\n } // Handle `-ms-` prefix to camelCase as msPropertyName, not MsPropertyName\n\n\n if (prop.startsWith('-ms-')) {\n prop = prop.substr(1);\n }\n\n return camelCase(prop);\n};\n\nvar splitDeclarations = function splitDeclarations(cssText) {\n var declarations = [];\n var capturing;\n var i = cssText.length;\n var last = i; // Split into declarations by semi-colon (outside quotes or parentheses)\n\n while (i-- > -1) {\n // Capture unescaped quotes\n if ((cssText[i] === '\"' || cssText[i] === \"'\") && cssText[i - 1] !== '\\\\') {\n if (!capturing) {\n capturing = cssText[i];\n } else if (cssText[i] === capturing) {\n capturing = false;\n }\n } // Start capturing parentheses\n\n\n if (!capturing && cssText[i] === ')') {\n capturing = cssText[i];\n } // Stop capturing parentheses\n\n\n if (cssText[i] === '(' && capturing === ')') {\n capturing = false;\n } // Split at semi-colon\n\n\n if (i < 0 || !capturing && cssText[i] === ';') {\n declarations.unshift(cssText.slice(i + 1, last));\n last = i;\n }\n }\n\n return declarations;\n};\n\nvar splitDeclaration = function splitDeclaration(declaration) {\n var i = declaration.indexOf(':');\n return [declaration.substr(0, i).trim(), declaration.substr(i + 1).trim()];\n};\n\nvar cssToStyle = function cssToStyle(cssText) {\n return splitDeclarations(cssText).map(splitDeclaration).filter(function (_ref) {\n var name = _ref[0],\n value = _ref[1];\n return name && value;\n }).reduce(function (styles, _ref2) {\n var name = _ref2[0],\n value = _ref2[1];\n styles[convertPropertyName(name)] = value;\n return styles;\n }, {});\n};\n\nexport default cssToStyle;","import parseDom from 'dom-parse';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport getDisplayName from 'react-display-name';\nimport cssToStyle from 'css-to-style';\nimport invariant from 'tiny-invariant'; // See https://dom.spec.whatwg.org/#dom-node-nodetype\n\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3; // Mapping of standard attribute names to prop names.\n// Based off https://github.com/facebook/react/blob/feb134c30d20ef332771d71d8d1cb66d34311637/packages/react-dom/src/shared/possibleStandardNames.js\n\nvar standardProps = new Map([// HTML\n['accept-charset', 'acceptCharset'], ['accesskey', 'accessKey'], ['allowfullscreen', 'allowFullScreen'], ['autocapitalize', 'autoCapitalize'], ['autocomplete', 'autoComplete'], ['autocorrect', 'autoCorrect'], ['autofocus', 'autoFocus'], ['autoplay', 'autoPlay'], ['autosave', 'autoSave'], ['cellpadding', 'cellPadding'], ['cellspacing', 'cellSpacing'], ['charset', 'charSet'], ['class', 'className'], ['classid', 'classID'], ['classname', 'className'], ['colspan', 'colSpan'], ['contenteditable', 'contentEditable'], ['contextmenu', 'contextMenu'], ['controlslist', 'controlsList'], ['crossorigin', 'crossOrigin'], ['datetime', 'dateTime'], ['disablepictureinpicture', 'disablePictureInPicture'], ['disableremoteplayback', 'disableRemotePlayback'], ['enctype', 'encType'], ['enterkeyhint', 'enterKeyHint'], ['for', 'htmlFor'], ['formmethod', 'formMethod'], ['formaction', 'formAction'], ['formenctype', 'formEncType'], ['formnovalidate', 'formNoValidate'], ['formtarget', 'formTarget'], ['frameborder', 'frameBorder'], ['hreflang', 'hrefLang'], ['htmlfor', 'htmlFor'], ['http-equiv', 'httpEquiv'], ['inputmode', 'inputMode'], ['itemid', 'itemID'], ['itemprop', 'itemProp'], ['itemref', 'itemRef'], ['itemscope', 'itemScope'], ['itemtype', 'itemType'], ['keyparams', 'keyParams'], ['keytype', 'keyType'], ['marginwidth', 'marginWidth'], ['marginheight', 'marginHeight'], ['maxlength', 'maxLength'], ['mediagroup', 'mediaGroup'], ['minlength', 'minLength'], ['nomodule', 'noModule'], ['novalidate', 'noValidate'], ['playsinline', 'playsInline'], ['radiogroup', 'radioGroup'], ['readonly', 'readOnly'], ['referrerpolicy', 'referrerPolicy'], ['rowspan', 'rowSpan'], ['spellcheck', 'spellCheck'], ['srcdoc', 'srcDoc'], ['srclang', 'srcLang'], ['srcset', 'srcSet'], ['tabindex', 'tabIndex'], ['usemap', 'useMap'], // SVG\n['accent-height', 'accentHeight'], ['alignment-baseline', 'alignmentBaseline'], ['allowreorder', 'allowReorder'], ['arabic-form', 'arabicForm'], ['attributename', 'attributeName'], ['attributetype', 'attributeType'], ['autoreverse', 'autoReverse'], ['basefrequency', 'baseFrequency'], ['baseline-shift', 'baselineShift'], ['baseprofile', 'baseProfile'], ['calcmode', 'calcMode'], ['cap-height', 'capHeight'], ['clip-path', 'clipPath'], ['clippathunits', 'clipPathUnits'], ['clip-rule', 'clipRule'], ['color-interpolation', 'colorInterpolation'], ['color-interpolation-filters', 'colorInterpolationFilters'], ['color-profile', 'colorProfile'], ['color-rendering', 'colorRendering'], ['contentscripttype', 'contentScriptType'], ['contentstyletype', 'contentStyleType'], ['diffuseconstant', 'diffuseConstant'], ['dominantbaseline', 'dominantBaseline'], ['dominant-baseline', 'dominantBaseline'], ['edgemode', 'edgeMode'], ['enable-background', 'enableBackground'], ['externalresourcesrequired', 'externalResourcesRequired'], ['fill-opacity', 'fillOpacity'], ['fill-rule', 'fillRule'], ['filterres', 'filterRes'], ['filterunits', 'filterUnits'], ['flood-opacity', 'floodOpacity'], ['flood-color', 'floodColor'], ['fontfamily', 'fontFamily'], ['font-family', 'fontFamily'], ['font-size', 'fontSize'], ['font-size-adjust', 'fontSizeAdjust'], ['font-stretch', 'fontStretch'], ['font-style', 'fontStyle'], ['font-variant', 'fontVariant'], ['font-weight', 'fontWeight'], ['glyph-name', 'glyphName'], ['glyph-orientation-horizontal', 'glyphOrientationHorizontal'], ['glyph-orientation-vertical', 'glyphOrientationVertical'], ['glyphref', 'glyphRef'], ['gradienttransform', 'gradientTransform'], ['gradientunits', 'gradientUnits'], ['horiz-adv-x', 'horizAdvX'], ['horiz-origin-x', 'horizOriginX'], ['image-rendering', 'imageRendering'], ['kernelmatrix', 'kernelMatrix'], ['kernelunitlength', 'kernelUnitLength'], ['keypoints', 'keyPoints'], ['keysplines', 'keySplines'], ['keytimes', 'keyTimes'], ['lengthadjust', 'lengthAdjust'], ['letter-spacing', 'letterSpacing'], ['lighting-color', 'lightingColor'], ['limitingconeangle', 'limitingConeAngle'], ['marker-end', 'markerEnd'], ['markerheight', 'markerHeight'], ['marker-mid', 'markerMid'], ['marker-start', 'markerStart'], ['markerunits', 'markerUnits'], ['markerwidth', 'markerWidth'], ['maskcontentunits', 'maskContentUnits'], ['maskunits', 'maskUnits'], ['numoctaves', 'numOctaves'], ['overline-position', 'overlinePosition'], ['overline-thickness', 'overlineThickness'], ['paintorder', 'paintOrder'], ['paint-order', 'paintOrder'], ['panose-1', 'panose1'], ['pathlength', 'pathLength'], ['patterncontentunits', 'patternContentUnits'], ['patterntransform', 'patternTransform'], ['patternunits', 'patternUnits'], ['pointerevents', 'pointerEvents'], ['pointer-events', 'pointerEvents'], ['pointsatx', 'pointsAtX'], ['pointsaty', 'pointsAtY'], ['pointsatz', 'pointsAtZ'], ['preservealpha', 'preserveAlpha'], ['preserveaspectratio', 'preserveAspectRatio'], ['primitiveunits', 'primitiveUnits'], ['refx', 'refX'], ['refy', 'refY'], ['rendering-intent', 'renderingIntent'], ['repeatcount', 'repeatCount'], ['repeatdur', 'repeatDur'], ['requiredextensions', 'requiredExtensions'], ['requiredfeatures', 'requiredFeatures'], ['shape-rendering', 'shapeRendering'], ['specularconstant', 'specularConstant'], ['specularexponent', 'specularExponent'], ['spreadmethod', 'spreadMethod'], ['startoffset', 'startOffset'], ['stddeviation', 'stdDeviation'], ['stitchtiles', 'stitchTiles'], ['stop-color', 'stopColor'], ['stop-opacity', 'stopOpacity'], ['strikethrough-position', 'strikethroughPosition'], ['strikethrough-thickness', 'strikethroughThickness'], ['stroke-dasharray', 'strokeDasharray'], ['stroke-dashoffset', 'strokeDashoffset'], ['stroke-linecap', 'strokeLinecap'], ['stroke-linejoin', 'strokeLinejoin'], ['stroke-miterlimit', 'strokeMiterlimit'], ['stroke-width', 'strokeWidth'], ['stroke-opacity', 'strokeOpacity'], ['surfacescale', 'surfaceScale'], ['systemlanguage', 'systemLanguage'], ['tablevalues', 'tableValues'], ['targetx', 'targetX'], ['targety', 'targetY'], ['text-anchor', 'textAnchor'], ['text-decoration', 'textDecoration'], ['textlength', 'textLength'], ['text-rendering', 'textRendering'], ['underline-position', 'underlinePosition'], ['underline-thickness', 'underlineThickness'], ['unicode-bidi', 'unicodeBidi'], ['unicode-range', 'unicodeRange'], ['units-per-em', 'unitsPerEm'], ['v-alphabetic', 'vAlphabetic'], ['vector-effect', 'vectorEffect'], ['vert-adv-y', 'vertAdvY'], ['vert-origin-x', 'vertOriginX'], ['vert-origin-y', 'vertOriginY'], ['v-hanging', 'vHanging'], ['v-ideographic', 'vIdeographic'], ['viewbox', 'viewBox'], ['viewtarget', 'viewTarget'], ['v-mathematical', 'vMathematical'], ['word-spacing', 'wordSpacing'], ['writing-mode', 'writingMode'], ['xchannelselector', 'xChannelSelector'], ['x-height', 'xHeight'], ['xlink:actuate', 'xlinkActuate'], ['xlink:arcrole', 'xlinkArcrole'], ['xlink:href', 'xlinkHref'], ['xlink:role', 'xlinkRole'], ['xlink:show', 'xlinkShow'], ['xlink:title', 'xlinkTitle'], ['xlink:type', 'xlinkType'], ['xml:base', 'xmlBase'], ['xml:lang', 'xmlLang'], ['xml:space', 'xmlSpace'], ['xmlns:xlink', 'xmlnsXlink'], ['ychannelselector', 'yChannelSelector'], ['zoomandpan', 'zoomAndPan']]);\nvar reactProps = new Set(['children', 'dangerouslySetInnerHTML', 'key', 'ref', 'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', // deprecated\n'valueLink']);\n\nvar attrsToProps = function attrsToProps(attrs) {\n var props = {};\n\n for (var i = 0; i < attrs.length; i++) {\n var _standardProps$get;\n\n var _attrs$i = attrs[i],\n name = _attrs$i.name,\n value = _attrs$i.value; // Disallow event attributes and react props.\n\n if (name.startsWith('on') || reactProps.has(name)) {\n continue;\n } // Don't modify aria-* or data-* attributes.\n\n\n if (name.startsWith('aria-') || name.startsWith('data-')) {\n props[name] = value;\n continue;\n } // Handle style attribute.\n\n\n if (name === 'style') {\n props[name] = cssToStyle(value);\n continue;\n }\n\n props[(_standardProps$get = standardProps.get(name)) != null ? _standardProps$get : name] = value === '' ? true : value;\n }\n\n return props;\n}; // HTML elements are always in the canonical upper-case form,\n// i.e. <h1> will have a tagName of \"H1\"\n\n\nvar isHTMLTagName = /^[A-Z]/;\n\nvar nodeNameToType = function nodeNameToType(nodeName) {\n return isHTMLTagName.test(nodeName) ? nodeName.toLowerCase() : nodeName;\n};\n\nvar nodesToElements = function nodesToElements(nodeList, options) {\n var tree = [];\n\n for (var i = 0; i < nodeList.length; i++) {\n var node = nodeList[i]; // Only render element nodes and text nodes.\n\n if (node.nodeType === ELEMENT_NODE) {\n var type = nodeNameToType(node.nodeName);\n\n if ( // Never render <script> elements.\n type === 'script' || // Handle allowed option to only render elements that are allowed.\n options.allowed && (typeof options.allowed === 'function' ? !options.allowed(node) : !options.allowed.includes(type))) {\n continue;\n } // Handle replace option.\n\n\n if (options.replace) {\n var replacement = typeof options.replace === 'function' ? options.replace(node) : Object.prototype.hasOwnProperty.call(options.replace, type) ? options.replace[type] : undefined; // Don't render element if replacement is null.\n\n if (replacement === null) {\n continue;\n } // Replace element replacement—if not undefined.\n\n\n if (replacement !== undefined) {\n type = replacement;\n }\n }\n\n var props = attrsToProps(node.attributes);\n props.key = getDisplayName(type) + \"-\" + i;\n var children = nodesToElements(node.childNodes, options);\n tree.push(React.isValidElement(type) ? React.cloneElement(type, props, children) : React.createElement(type, props, children));\n } else if (node.nodeType === TEXT_NODE) {\n // Handle trim option to remove whitespace text nodes.\n if (!options.trim || node.textContent.trim() !== '') {\n tree.push(node.textContent);\n }\n }\n }\n\n return tree.length > 0 ? tree : null;\n};\n\nvar Markup = React.memo(function Markup(_ref) {\n var _ref$allowed = _ref.allowed,\n allowed = _ref$allowed === void 0 ? null : _ref$allowed,\n _ref$markup = _ref.markup,\n markup = _ref$markup === void 0 ? null : _ref$markup,\n _ref$replace = _ref.replace,\n replace = _ref$replace === void 0 ? null : _ref$replace,\n _ref$trim = _ref.trim,\n trim = _ref$trim === void 0 ? null : _ref$trim;\n return markup ? nodesToElements(parseDom(markup), {\n allowed: allowed,\n replace: replace,\n trim: trim\n }) : null;\n});\nMarkup.propTypes\n/* remove-proptypes */\n= process.env.NODE_ENV !== \"production\" ? {\n allowed: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.func]),\n markup: PropTypes.string,\n replace: PropTypes.oneOfType([PropTypes.func, PropTypes.objectOf(PropTypes.elementType)]),\n trim: PropTypes.bool\n} : {};\n\nvar renderMarkup = function renderMarkup(markup, options) {\n !(markup == null || typeof markup === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected `markup` to be a string') : invariant(false) : void 0;\n !(options == null || typeof options === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected `options` to be an object') : invariant(false) : void 0;\n !(options == null || options.allowed == null || Array.isArray(options.allowed) || typeof options.allowed === 'function') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected `options.allowed` to be an array or function') : invariant(false) : void 0;\n !(options == null || options.replace == null || typeof options.replace === 'function' || typeof options.replace === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected `options.replace` to be a function or object') : invariant(false) : void 0;\n !(options == null || options.trim == null || typeof options.trim === 'boolean') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected `options.trim` to be a boolean') : invariant(false) : void 0;\n return markup ? nodesToElements(parseDom(markup), options != null ? options : {}) : null;\n};\n\nexport { Markup, renderMarkup };","// @flow\n\nimport * as React from 'react'\nimport { Motion, spring } from 'react-motion'\nimport CloseButton from 'assets/images/icons/crosses/close.svg'\n// eslint-disable-next-line flowtype/no-flow-fix-me-comments\n// $FlowFixMe\nimport BREAKPOINTS from '@/constants/Breakpoints'\n\ntype Transition = 'left' | 'bottom' | 'scale' | 'right' | 'bottom-with-image'\n\ntype Props = {|\n modalIsOpen: boolean,\n showCloseButton: boolean,\n useCustomCloseButton?: boolean,\n customCloseButtonContent?: React.Node,\n onClose?: () => void,\n modalSize: 'small' | 'medium' | 'large',\n transitionTypes: {|desktop: Transition, mobile: Transition|},\n extraClasses: string,\n closeModal: (string) => void,\n children?: React.Node,\n withBackdrop?: boolean\n|}\n\ntype MotionStyle = {|\n ...MotionStyle,\n 'backdropOpacity'?: Array<number> | number,\n 'opacity'?: Array<number> | number,\n 'scale'?: Array<number> | number,\n 'y'?: Array<number> | number,\n 'x'?: Array<number> | number\n|}\n\ntype interpolatedStyles = {|\n 'defaultStyle': MotionStyle,\n 'style': MotionStyle\n|}\n\ntype State = {|\n className: string\n|}\n\n// eslint-disable-next-line react/require-optimization\nexport default class TransitionalModal extends React.Component<Props, State> {\n // eslint-disable-next-line react/sort-comp\n static onResizeModals = ['raf-modal']\n constructor (props: Props): void {\n super(props)\n this.state = {\n className: this.renderClassNames(),\n }\n this.checkWindowResize()\n }\n\n componentDidMount = (): void => {\n const { withBackdrop } = this.props\n if (document.body && withBackdrop !== false) document.body.classList.add('open-modal')\n if ('ontouchstart' in window) {\n document.addEventListener('touchstart', this.closeModalListener, false)\n } else {\n document.addEventListener('click', this.closeModalListener, false)\n }\n }\n\n checkWindowResize = (): void => {\n const { extraClasses } = this.props\n if (TransitionalModal.onResizeModals.includes(extraClasses)) {\n window.onresize = (): void => {\n this.setState({ className: this.renderClassNames() })\n }\n }\n }\n\n // eslint-disable-next-line react/no-arrow-function-lifecycle\n componentWillUnmount = (): void => {\n const { onClose } = this.props\n if (onClose) onClose()\n\n document.removeEventListener('click', this.closeModalListener, false)\n document.removeEventListener('touchstart', this.closeModalListener, false)\n if (document.body) document.body.classList.remove('open-modal')\n window.onresize = (): void => {} // stop listening to window resize\n }\n\n checkTransitionType = (): Transition => {\n const { transitionTypes } = this.props\n // $FlowFixMe\n const width = document.documentElement.clientWidth || document.body.clientWidth\n if (width > BREAKPOINTS.sm) return transitionTypes.desktop\n return transitionTypes.mobile\n }\n\n closeModalListener = (e: Event): void => {\n const { modalIsOpen, withBackdrop, extraClasses, closeModal } = this.props\n const { target } = e\n if (!(target instanceof window.HTMLElement)) return\n if (target.classList.contains('modal-container__backdrop') && modalIsOpen && withBackdrop !== false) {\n closeModal(extraClasses)\n }\n }\n\n modalClose = (): void => {\n const { extraClasses, closeModal } = this.props\n closeModal(extraClasses)\n }\n\n renderCloseButton = (): React.Node => {\n const { showCloseButton, useCustomCloseButton, customCloseButtonContent } = this.props\n if (!showCloseButton) {\n return null\n }\n if (useCustomCloseButton) {\n return (\n <button\n type='button'\n className='modal-container__modal__close-btn'\n onClick={this.modalClose}\n >\n { customCloseButtonContent }\n </button>\n )\n }\n return (\n <button\n type='button'\n className='modal-container__modal__close-btn'\n onClick={this.modalClose}\n >\n <img\n src={CloseButton}\n alt='A closing X icon.'\n />\n </button>\n )\n }\n\n getTransitionType = (): MotionStyle => {\n switch (this.checkTransitionType()) {\n case 'left':\n return { x: [-120, 0], y: [0, 0], scale: [1, 1], opacity: [0.8, 1], backdropOpacity: [0, 1] }\n case 'right':\n return { x: [100, 0], y: [0, 0], scale: [1, 1], opacity: [0.8, 1], backdropOpacity: [0, 1] }\n case 'bottom':\n return { x: [0, 0], y: [100, 0], scale: [1, 1], opacity: [0.8, 1], backdropOpacity: [0, 1] }\n case 'bottom-with-image':\n return { x: [0, 0], y: [130, 0], scale: [1, 1], opacity: [0.8, 1], backdropOpacity: [0, 1] }\n case 'scale':\n return { x: [-50, -50], y: [50, 50], scale: [0.5, 1], opacity: [0, 1], backdropOpacity: [0, 1] }\n default:\n return { x: [0, 0], y: [100, 0], scale: [1, 1], opacity: [0.8, 1], backdropOpacity: [0, 1] }\n }\n }\n\n interpolateStyles = (modalState: boolean): interpolatedStyles => {\n const transition = this.getTransitionType()\n let config = { stiffness: 250, damping: 25 }\n if (transition === 'left' || transition === 'right') {\n config = { stiffness: 200, damping: 30 }\n }\n\n // $FlowFixMe\n const styles = Object.keys(transition)\n const defaultStyle = {}\n const interpolated = {}\n const formatted = styles.map((item: string, index: number): Array<MotionStyle> => {\n // $FlowFixMe\n defaultStyle[`${item}`] = transition[`${item}`][0]\n // $FlowFixMe\n interpolated[`${item}`] = spring(modalState ? transition[`${item}`][1] : transition[`${item}`][0], config)\n return [defaultStyle, interpolated]\n })\n return {\n defaultStyle: formatted[styles.length - 1][0],\n style: formatted[styles.length - 1][1]\n }\n }\n\n renderClassNames = (): string => {\n const { modalSize, extraClasses } = this.props\n let modalClasses = 'modal-container__modal white-background__medium modal-container__modal'\n if (modalSize) modalClasses += `--${modalSize}`\n if (extraClasses) modalClasses += ` ${extraClasses}`\n if (this.checkTransitionType()) modalClasses += ` modal-container__modal--${this.checkTransitionType()}`\n return modalClasses\n }\n\n render (): React.Node {\n const { modalIsOpen, withBackdrop, children } = this.props\n const { className } = this.state\n const defaultStyle = this.interpolateStyles(modalIsOpen).defaultStyle\n const style = this.interpolateStyles(modalIsOpen).style\n return (\n <Motion\n defaultStyle={defaultStyle}\n style={style}\n >\n { (style: MotionStyle): React.Node => (\n <div className='modal-container'>\n {\n withBackdrop !== false &&\n <div\n className='modal-container__backdrop'\n style={{ opacity: style.backdropOpacity }}\n />\n }\n <div\n style={{\n transform: `translate3d(${Number(style.x).toString()}%, ${Number(style.y).toString()}%, 0) scale(${Number(style.scale).toString()})`,\n opacity: style.opacity\n }}\n className={className}\n >\n { this.renderCloseButton() }\n { children }\n </div>\n </div>\n ) }\n </Motion>\n )\n }\n}\n","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","function maybe(thunk) {\n try {\n return thunk();\n } catch (_) {}\n}\n\nvar safeGlobal = maybe(function () {\n return globalThis;\n}) || maybe(function () {\n return window;\n}) || maybe(function () {\n return self;\n}) || maybe(function () {\n return global;\n}) || // We don't expect the Function constructor ever to be invoked at runtime, as\n// long as at least one of globalThis, window, self, or global is defined, so\n// we are under no obligation to make it easy for static analysis tools to\n// detect syntactic usage of the Function constructor. If you think you can\n// improve your static analysis to detect this obfuscation, think again. This\n// is an arms race you cannot win, at least not in JavaScript.\nmaybe(function () {\n return maybe.constructor(\"return this\")();\n});\nvar needToRemove = false;\nexport function install() {\n if (safeGlobal && !maybe(function () {\n return process.env.NODE_ENV;\n }) && !maybe(function () {\n return process;\n })) {\n Object.defineProperty(safeGlobal, \"process\", {\n value: {\n env: {\n // This default needs to be \"production\" instead of \"development\", to\n // avoid the problem https://github.com/graphql/graphql-js/pull/2894\n // will eventually solve, once merged and released.\n NODE_ENV: \"production\"\n }\n },\n // Let anyone else change global.process as they see fit, but hide it from\n // Object.keys(global) enumeration.\n configurable: true,\n enumerable: false,\n writable: true\n });\n needToRemove = true;\n }\n} // Call install() at least once, when this module is imported.\n\ninstall();\nexport function remove() {\n if (needToRemove) {\n delete safeGlobal.process;\n needToRemove = false;\n }\n}","import * as React from 'react';\nimport { canUseSymbol } from \"../../utilities/index.js\";\nvar contextKey = canUseSymbol ? Symbol.for('__APOLLO_CONTEXT__') : '__APOLLO_CONTEXT__';\nexport function getApolloContext() {\n var context = React.createContext[contextKey];\n\n if (!context) {\n Object.defineProperty(React.createContext, contextKey, {\n value: context = React.createContext({}),\n enumerable: false,\n writable: false,\n configurable: true\n });\n context.displayName = 'ApolloContext';\n }\n\n return context;\n}\nexport { getApolloContext as resetApolloContext };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@material-ui/utils';\nimport ThemeContext from '../useTheme/ThemeContext';\nimport useTheme from '../useTheme';\nimport nested from './nested'; // To support composition of theme.\n\nfunction mergeOuterLocalTheme(outerTheme, localTheme) {\n if (typeof localTheme === 'function') {\n var mergedTheme = localTheme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n if (!mergedTheme) {\n console.error(['Material-UI: You should return an object from your theme function, i.e.', '<ThemeProvider theme={() => ({})} />'].join('\\n'));\n }\n }\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, localTheme);\n}\n/**\n * This component takes a `theme` prop.\n * It makes the `theme` available down the React tree thanks to React context.\n * This component should preferably be used at **the root of your component tree**.\n */\n\n\nfunction ThemeProvider(props) {\n var children = props.children,\n localTheme = props.theme;\n var outerTheme = useTheme();\n\n if (process.env.NODE_ENV !== 'production') {\n if (outerTheme === null && typeof localTheme === 'function') {\n console.error(['Material-UI: You are providing a theme function prop to the ThemeProvider component:', '<ThemeProvider theme={outerTheme => outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n\n var theme = React.useMemo(function () {\n var output = outerTheme === null ? localTheme : mergeOuterLocalTheme(outerTheme, localTheme);\n\n if (output != null) {\n output[nested] = outerTheme !== null;\n }\n\n return output;\n }, [localTheme, outerTheme]);\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, children);\n}\n\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node.isRequired,\n\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\n\nexport default ThemeProvider;","export default function devAssert(condition, message) {\n var booleanCondition = Boolean(condition); // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nimport inspect from \"./inspect.mjs\";\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n */\n// See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n// See: https://webpack.js.org/guides/production/\n\nexport default process.env.NODE_ENV === 'production' ? // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n// eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n return value instanceof constructor;\n} : // eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n if (value instanceof constructor) {\n return true;\n }\n\n if (_typeof(value) === 'object' && value !== null) {\n var _value$constructor;\n\n var className = constructor.prototype[Symbol.toStringTag];\n var valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value ? value[Symbol.toStringTag] : (_value$constructor = value.constructor) === null || _value$constructor === void 0 ? void 0 : _value$constructor.name;\n\n if (className === valueClassName) {\n var stringifiedValue = inspect(value);\n throw new Error(\"Cannot use \".concat(className, \" \\\"\").concat(stringifiedValue, \"\\\" from another module or realm.\\n\\nEnsure that there is only one instance of \\\"graphql\\\" in the node_modules\\ndirectory. If different versions of \\\"graphql\\\" are the dependencies of other\\nrelied on modules, use \\\"resolutions\\\" to ensure only one version is installed.\\n\\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\\n\\nDuplicate \\\"graphql\\\" modules cannot be used at the same time since different\\nversions may have different capabilities and behavior. The data from one\\nversion used in the function from another could produce confusing and\\nspurious results.\"));\n }\n }\n\n return false;\n};","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport instanceOf from \"../jsutils/instanceOf.mjs\";\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\n\nexport var Source = /*#__PURE__*/function () {\n function Source(body) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'GraphQL request';\n var locationOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n line: 1,\n column: 1\n };\n typeof body === 'string' || devAssert(0, \"Body must be a string. Received: \".concat(inspect(body), \".\"));\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 || devAssert(0, 'line in locationOffset is 1-indexed and must be positive.');\n this.locationOffset.column > 0 || devAssert(0, 'column in locationOffset is 1-indexed and must be positive.');\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n\n _createClass(Source, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Source';\n }\n }]);\n\n return Source;\n}();\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n// eslint-disable-next-line no-redeclare\n\nexport function isSource(source) {\n return instanceOf(source, Source);\n}","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n\n\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n/** `Object#toString` result references. */\n\n\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n } // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n\n\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;","// @noflow\nimport classnames from 'classnames'\nimport Handlebars from 'handlebars'\nimport { TOptions } from 'i18next'\nimport React from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { Markup } from 'react-render-markup'\n\nimport STYLES from './Text.module.sass'\n\ntype AllowedElements =\n | 'p'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'span'\n | 'div'\n | 'li'\n\n// Note: Display variants should only be 'brandBlue500' OR 'brandWhite'\ntype AllowedColours =\n | 'brandBlue100'\n | 'brandBlue200'\n | 'brandBlue300'\n | 'brandBlue400'\n | 'brandBlue500'\n | 'brandBlue600'\n | 'brandRed300'\n | 'brandRed400'\n | 'brandRed500'\n | 'brandRed600'\n | 'brandYellow100'\n | 'brandYellow300'\n | 'brandYellow600'\n | 'brandYellow700'\n | 'brandPink200'\n | 'brandPink400'\n | 'brandPink500'\n | 'brandWhite'\n | 'supportGreen300'\n | 'supportGreen400'\n | 'supportGreen500'\n | 'supportOrange300'\n | 'supportOrange400'\n | 'supportOrange500'\n | 'dangerRed300'\n | 'dangerRed500'\n | 'supportRed300'\n | 'supportRed500'\n | 'supportBlue300'\n | 'supportBlue500'\n | 'grey400'\n | 'grey600'\n | 'grey900'\n | 'shadowBlack'\n | 'cardboardBrown'\n\ntype AllowedAlignment = 'left' | 'right' | 'center'\n\ntype Props = {\n variant?: keyof typeof STYLES\n margin?: boolean\n element?: AllowedElements\n namespace?: string\n text: string | Array<string>\n translate?: boolean\n bold?: boolean\n variables?: TOptions\n colour?: AllowedColours\n align?: AllowedAlignment\n shouldScale?: boolean\n wonky?: boolean\n underline?: boolean\n hideOverflow?: boolean\n uppercase?: boolean\n strikeThrough?: boolean\n tight?: boolean\n dataTestId?: string\n}\n\ntype InjectedTextProps = {\n children: Array<string>\n type: keyof typeof STYLES\n}\n\nconst allowedHtmlElement = ['strong', 'em', 'b', 'a', 'br', 'span', 'accent'] // strips all other elements\n\n// This allows us to add specific styling to certain word(s) in a string by\n// wrapping custom <accent> wrappers around them and declaring the style 'type'\n// with a class within the Text component stylesheet. See Storybook for examples\n// under 'With Underline'\nconst AccentText = ({ children, type }: InjectedTextProps) => {\n return <span className={STYLES[type]}>{children[0]}</span>\n}\n\nconst replace = {\n accent: AccentText\n}\n\nconst Text = ({\n variant = 'textRegular16',\n element = 'p',\n namespace = '',\n margin = true,\n text,\n translate = true,\n bold = false,\n variables = {},\n colour = 'brandBlue500',\n align,\n shouldScale = true,\n wonky = false,\n underline = false,\n hideOverflow = false,\n uppercase = false,\n strikeThrough = false,\n tight = false,\n dataTestId\n}: Props): JSX.Element => {\n const { t } = useTranslation(namespace)\n const Element = element as keyof JSX.IntrinsicElements\n const translatedText = translate\n ? t(text, variables)\n : Handlebars.compile(text)(variables)\n\n const applyRotation = (text: string) => {\n return text\n .split('')\n .map((char, index) => {\n const rotateAngle = index % 2 === 0 ? '-5' : '5'\n const minWidth = char === ' ' ? 'min-width: 4px' : ''\n\n return `<span style=\"transform: rotate(${rotateAngle}deg); display: inline-flex; ${minWidth}\">${char}</span>`\n })\n .join('')\n }\n\n const textToDisplay = wonky ? applyRotation(translatedText) : translatedText\n\n const className = classnames(STYLES.wrapper, {\n [STYLES[variant]]: variant,\n [STYLES.nomargin]: !margin,\n [STYLES.bold]: bold,\n [STYLES.underline]: underline,\n [STYLES[colour]]: colour,\n [STYLES[`${align}Align` as keyof typeof STYLES]]: align,\n [STYLES.scale]: shouldScale,\n [STYLES.hideOverflow]: hideOverflow,\n [STYLES.uppercase]: uppercase,\n [STYLES.strikeThrough]: strikeThrough,\n [STYLES.tight]: tight\n })\n\n return (\n <Element data-testid={dataTestId} className={className}>\n <Markup\n allowed={allowedHtmlElement}\n markup={textToDisplay}\n replace={replace}\n />\n </Element>\n )\n}\n\nexport { Props, AllowedColours, AllowedAlignment }\nexport default Text\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nmodule.exports = isUndefined;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;\n\n(function (factory) {\n var registeredInModuleLoader;\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n registeredInModuleLoader = true;\n }\n\n if (typeof exports === 'object') {\n module.exports = factory();\n registeredInModuleLoader = true;\n }\n\n if (!registeredInModuleLoader) {\n var OldCookies = window.Cookies;\n var api = window.Cookies = factory();\n\n api.noConflict = function () {\n window.Cookies = OldCookies;\n return api;\n };\n }\n})(function () {\n function extend() {\n var i = 0;\n var result = {};\n\n for (; i < arguments.length; i++) {\n var attributes = arguments[i];\n\n for (var key in attributes) {\n result[key] = attributes[key];\n }\n }\n\n return result;\n }\n\n function decode(s) {\n return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n }\n\n function init(converter) {\n function api() {}\n\n function set(key, value, attributes) {\n if (typeof document === 'undefined') {\n return;\n }\n\n attributes = extend({\n path: '/'\n }, api.defaults, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n } // We're using \"expires\" because \"max-age\" is not supported by IE\n\n\n attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n try {\n var result = JSON.stringify(value);\n\n if (/^[\\{\\[]/.test(result)) {\n value = result;\n }\n } catch (e) {}\n\n value = converter.write ? converter.write(value, key) : encodeURIComponent(String(value)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n key = encodeURIComponent(String(key)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\\(\\)]/g, escape);\n var stringifiedAttributes = '';\n\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue;\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue;\n } // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n\n\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return document.cookie = key + '=' + value + stringifiedAttributes;\n }\n\n function get(key, json) {\n if (typeof document === 'undefined') {\n return;\n }\n\n var jar = {}; // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var i = 0;\n\n for (; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var cookie = parts.slice(1).join('=');\n\n if (!json && cookie.charAt(0) === '\"') {\n cookie = cookie.slice(1, -1);\n }\n\n try {\n var name = decode(parts[0]);\n cookie = (converter.read || converter)(cookie, name) || decode(cookie);\n\n if (json) {\n try {\n cookie = JSON.parse(cookie);\n } catch (e) {}\n }\n\n jar[name] = cookie;\n\n if (key === name) {\n break;\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar;\n }\n\n api.set = set;\n\n api.get = function (key) {\n return get(key, false\n /* read as raw */\n );\n };\n\n api.getJSON = function (key) {\n return get(key, true\n /* read as json */\n );\n };\n\n api.remove = function (key, attributes) {\n set(key, '', extend(attributes, {\n expires: -1\n }));\n };\n\n api.defaults = {};\n api.withConverter = init;\n return api;\n }\n\n return init(function () {});\n});","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n\n\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n\n return object;\n}\n\nmodule.exports = copyObject;","// @noflow\nimport { makeVar, useReactiveVar } from '@apollo/client'\nimport React, { useEffect } from 'react'\n\nimport AgeSelect from './AgeSelect'\nimport BreedSelect from './BreedSelect'\nimport WeightSelect from './WeightSelect'\n\ntype Props = {\n breedSelectRef?: React.RefObject<HTMLDivElement>\n onBreedFocusCallback?: () => void\n fullWidth?: boolean\n}\n\ntype DogDetails = {\n age: number\n weight: string | number\n interactedWithAge: boolean\n}\n\n// Retrieve any saved dog details from localStorage if user has interacted before\nconst roughCostCalculatorLocalStorage = localStorage.getItem(\n 'rough_cost_calculator'\n)\n\nconst initialState = {\n age: 2,\n weight: 'medium_2',\n interactedWithAge: false\n}\n\nconst parsedState = roughCostCalculatorLocalStorage\n ? JSON.parse(roughCostCalculatorLocalStorage)\n : initialState\n\nconst dogDetailsState = makeVar<DogDetails>(parsedState)\n\nconst baseClass = 'rough-cost-calculator__cost-calculator'\n\nconst DogDetailsForm = ({\n breedSelectRef,\n onBreedFocusCallback,\n fullWidth = false\n}: Props): JSX.Element => {\n const dogDetails = useReactiveVar(dogDetailsState)\n\n useEffect(() => {\n localStorage.setItem('rough_cost_calculator', JSON.stringify(dogDetails))\n }, [dogDetails])\n\n return (\n <>\n <BreedSelect\n breedSelectRef={breedSelectRef}\n onFocusCallback={onBreedFocusCallback}\n />\n {fullWidth ? (\n <>\n <div className={`${baseClass}__dropdown-row`}>\n <AgeSelect />\n </div>\n <div className={`${baseClass}__dropdown-row`}>\n <WeightSelect />\n </div>\n </>\n ) : (\n <div className={`${baseClass}__dropdown-row`}>\n <AgeSelect />\n <WeightSelect />\n </div>\n )}\n </>\n )\n}\nexport default DogDetailsForm\n\nexport { dogDetailsState }\n","'use strict';\n\nexports.__esModule = true;\nexports.HandlebarsEnvironment = HandlebarsEnvironment; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _utils = require('./utils');\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _helpers = require('./helpers');\n\nvar _decorators = require('./decorators');\n\nvar _logger = require('./logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nvar VERSION = '4.7.7';\nexports.VERSION = VERSION;\nvar COMPILER_REVISION = 8;\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar LAST_COMPATIBLE_COMPILER_REVISION = 7;\nexports.LAST_COMPATIBLE_COMPILER_REVISION = LAST_COMPATIBLE_COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2',\n // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '== 1.x.x',\n 5: '== 2.0.0-alpha.x',\n 6: '>= 2.0.0-beta.1',\n 7: '>= 4.0.0 <4.3.0',\n 8: '>= 4.3.0'\n};\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials, decorators) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n this.decorators = decorators || {};\n\n _helpers.registerDefaultHelpers(this);\n\n _decorators.registerDefaultDecorators(this);\n}\n\nHandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n logger: _logger2['default'],\n log: _logger2['default'].log,\n registerHelper: function registerHelper(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple helpers');\n }\n\n _utils.extend(this.helpers, name);\n } else {\n this.helpers[name] = fn;\n }\n },\n unregisterHelper: function unregisterHelper(name) {\n delete this.helpers[name];\n },\n registerPartial: function registerPartial(name, partial) {\n if (_utils.toString.call(name) === objectType) {\n _utils.extend(this.partials, name);\n } else {\n if (typeof partial === 'undefined') {\n throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n }\n\n this.partials[name] = partial;\n }\n },\n unregisterPartial: function unregisterPartial(name) {\n delete this.partials[name];\n },\n registerDecorator: function registerDecorator(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple decorators');\n }\n\n _utils.extend(this.decorators, name);\n } else {\n this.decorators[name] = fn;\n }\n },\n unregisterDecorator: function unregisterDecorator(name) {\n delete this.decorators[name];\n },\n\n /**\n * Reset the memory of illegal property accesses that have already been logged.\n * @deprecated should only be used in handlebars test-cases\n */\n resetLoggedPropertyAccesses: function resetLoggedPropertyAccesses() {\n _internalProtoAccess.resetLoggedProperties();\n }\n};\nvar log = _logger2['default'].log;\nexports.log = log;\nexports.createFrame = _utils.createFrame;\nexports.logger = _logger2['default'];","// @noflow\nimport { differenceInSeconds } from 'date-fns'\nimport * as Cookies from 'js-cookie'\nimport React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport isEqual from '@/utils/isEqual'\n\nimport CookieConsent, {\n cookieConsentBannerState,\n cookieConsentModalState\n} from '@/components/shared/CookieConsent/CookieConsent'\nimport { Variant } from '@/components/shared/CookieConsent/Modals/CookieConsentModal'\nimport {\n Component,\n Context,\n trackCookiePreferences\n} from '@/components/shared/CookieConsent/helpers'\n\nimport { Code as CountryCode } from '@/types'\n\nimport * as scroll from './scroll'\n\nenum ConsentModeValue {\n granted = 'granted',\n denied = 'denied'\n}\n\ntype CookiePreferences = {\n marketing: boolean\n analytics: boolean\n}\n\ntype BannerShown = {\n state: 'banner-shown'\n}\n\ntype Accepted = {\n state: 'accepted'\n preferences: CookiePreferences\n}\n\ntype CookieConsent = null | BannerShown | Accepted\n\ntype ConsentMode = {\n functionality_storage: ConsentModeValue\n security_storage: ConsentModeValue\n ad_storage: ConsentModeValue\n analytics_storage: ConsentModeValue\n personalization_storage: ConsentModeValue\n ad_user_data: ConsentModeValue\n ad_personalization: ConsentModeValue\n}\n\ndeclare global {\n interface Window {\n initSentry: () => void\n initSegment: (preferences: CookiePreferences) => void\n initFBPixel: () => void\n gtag: (consent: string, action: string, consentMode: ConsentMode) => void\n dataLayer: Record<string, unknown>[]\n initCookieConsent: () => void\n triggerCookieConsentModal: () => void\n }\n}\n\nconst thirdPartyCookies = {\n analyticsOnly: [\n '_ga',\n '_gid',\n '_hjid',\n '_hjIncludedInSample',\n /^amplitude_id_[0-9a-f]+$/,\n /amplitude_idundefined*/,\n 'ga_client_id'\n ],\n marketingOnly: [\n '_fbp',\n '_gat',\n '_twitter_hash',\n '_uetsid',\n 'fr',\n 'MUID',\n 'MUIDB',\n 'personalization_id'\n ],\n both: ['ajs_anonymous_id', 'ajs_group_id', 'ajs_user_id']\n}\n\nconst thirdPartyLocalStorageItems = {\n analyticsOnly: [\n '_hjid',\n /^amplitude_unsent_[0-9a-f]+$/,\n 'amplitude_unsent_identity',\n /^amplitude_unsent_identity_[0-9a-f]+$/\n ],\n marketingOnly: ['_uetsid', '_uetsid_exp', 'taboola global:user-id'],\n both: [\n 'ajs_anonymous_id',\n 'ajs_group_id',\n 'ajs_group_properties',\n 'ajs_user_id',\n 'ajs_user_traits',\n 'debug'\n ]\n}\n\nconst deleteCookies = (pattern: RegExp | string): void => {\n if (typeof pattern === 'string') {\n Cookies.remove(pattern)\n } else {\n Object.keys(Cookies.get())\n .filter((name: string): boolean => pattern.test(name))\n .forEach((name: string): void => {\n Cookies.remove(name)\n Cookies.remove(name, { path: '/', domain: window.location.host })\n Cookies.remove(name, { path: '/', domain: `.${window.location.host}` })\n })\n }\n}\n\nconst deleteLocalStorageItems = (pattern: RegExp | string): void => {\n if (typeof pattern === 'string') {\n window.localStorage.removeItem(pattern)\n } else {\n Object.keys(window.localStorage)\n .filter((name: string): boolean => pattern.test(name))\n .forEach((name: string): void => window.localStorage.removeItem(name))\n }\n}\n\nconst initMarketingCookies = () => {\n if (window.initFBPixel) {\n window.initFBPixel()\n }\n}\n\nconst removeMarketingCookies = () => {\n thirdPartyCookies.marketingOnly.forEach(deleteCookies)\n thirdPartyLocalStorageItems.marketingOnly.forEach(deleteLocalStorageItems)\n}\n\nconst initAnalyticsCookies = ({ analytics, marketing }: CookiePreferences) => {\n if (window.initSentry) {\n window.initSentry()\n }\n\n if (window.initSegment) {\n window.initSegment({ analytics, marketing })\n }\n}\n\nconst removeAnalyticsCookies = () => {\n thirdPartyCookies.analyticsOnly.forEach(deleteCookies)\n thirdPartyLocalStorageItems.analyticsOnly.forEach(deleteLocalStorageItems)\n}\n\nconst removeBothCookies = () => {\n thirdPartyCookies.both.forEach(deleteCookies)\n thirdPartyLocalStorageItems.both.forEach(deleteLocalStorageItems)\n}\n\nconst updateConsentMode = ({ analytics, marketing }: CookiePreferences) => {\n const consentMode = {\n functionality_storage: analytics\n ? ConsentModeValue.granted\n : ConsentModeValue.denied,\n security_storage: analytics\n ? ConsentModeValue.granted\n : ConsentModeValue.denied,\n ad_storage: marketing ? ConsentModeValue.granted : ConsentModeValue.denied,\n analytics_storage: analytics\n ? ConsentModeValue.granted\n : ConsentModeValue.denied,\n personalization_storage: marketing\n ? ConsentModeValue.granted\n : ConsentModeValue.denied,\n ad_user_data: marketing\n ? ConsentModeValue.granted\n : ConsentModeValue.denied,\n ad_personalization: marketing\n ? ConsentModeValue.granted\n : ConsentModeValue.denied\n }\n\n window.gtag('consent', 'update', consentMode)\n localStorage.setItem('consentMode', JSON.stringify(consentMode))\n // This event is sent so that GTM can trigger tags after a user has consented\n // It is set on a delay such that we make sure consent is properly set in GTM\n setTimeout((): void => {\n window.dataLayer.push({ event: 'consentUpdated' })\n }, 100)\n}\n\nconst cookieConsentBannerElement = document.getElementById('cookies-banner')\n\nconst cookieConsentLocalStorageItem = () =>\n window.localStorage.getItem('cookieConsent')\n\nconst initCookieConsent = (): void => {\n if (!cookieConsentBannerElement) return\n\n const shippingCountryCode = Cookies.get('user_country_code')\n\n const variant =\n shippingCountryCode === CountryCode.DE ? Variant.Strict : Variant.Default\n\n const cookieConsentLocalStorateItem = cookieConsentLocalStorageItem()\n const consent: CookieConsent | null = cookieConsentLocalStorateItem\n ? JSON.parse(cookieConsentLocalStorateItem)\n : null\n\n const consentAccepted = consent?.state === 'accepted'\n\n if (!consent) {\n window.localStorage.setItem(\n 'cookieConsent',\n JSON.stringify({\n state: 'banner-shown'\n })\n )\n }\n\n const applyPreferences = (preferences: CookiePreferences): void => {\n const previousConsentLocalStorageItem = cookieConsentLocalStorageItem()\n const previousConsent: CookieConsent | null =\n previousConsentLocalStorageItem\n ? JSON.parse(previousConsentLocalStorageItem)\n : null\n\n if (!preferences.analytics && !preferences.marketing) {\n window.analytics = {\n /* eslint-disable @typescript-eslint/no-empty-function */\n track: (): void => {},\n identify: (): void => {},\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n ready: (): void => {},\n page: (): void => {}\n /* eslint-enable @typescript-eslint/no-empty-function */\n }\n removeBothCookies()\n }\n\n // If you haven't already got a previous level of consent - set one according\n // to your preferences\n if (!previousConsent || previousConsent.state === 'banner-shown') {\n // If a new user scrolls past the threshold, Accepted preferences are automatically applied.\n // This guard prevents the preferences from being applied twice if they interact with the\n // banner and the previousConsent object in localStorage hasn't been set yet.\n if (window.localStorage.getItem('consentMode') != null) return\n\n return (\n initAnalyticsCookies(preferences),\n initMarketingCookies(),\n updateConsentMode(preferences)\n )\n }\n\n // If you do have a previous level of consent set in localStorage\n if (previousConsent) {\n // If your analytics preferences have changed from negative to positive\n if (!previousConsent.preferences.analytics && preferences.analytics) {\n initAnalyticsCookies(preferences)\n } else if (\n // If your analytics preferences have changed from positive to negative\n previousConsent.preferences.analytics &&\n !preferences.analytics\n ) {\n removeAnalyticsCookies()\n }\n\n // If your marketing preferences have changed from negative to positive\n if (!previousConsent.preferences.marketing && preferences.marketing) {\n initMarketingCookies()\n } else if (\n // If your marketing preferences have changed from positive to negative\n previousConsent.preferences.marketing &&\n !preferences.marketing\n ) {\n removeMarketingCookies()\n }\n\n // If your previous preferences are different from your current preferences\n if (!isEqual(previousConsent.preferences, preferences)) {\n updateConsentMode(preferences)\n }\n }\n }\n\n if (Variant.Default && !consent) {\n const startTime = new Date()\n scroll.checkPixelIntersection((): void => {\n const endTime = new Date()\n if (differenceInSeconds(endTime, startTime) < 5) {\n trackCookiePreferences({\n preferences: { marketing: true, analytics: true },\n variant,\n component: Component.Null,\n context: Context.Scrolled\n })\n }\n applyPreferences({ marketing: true, analytics: true })\n })\n }\n\n ReactDOM.render(\n // eslint-disable-next-line react/jsx-no-bind\n <CookieConsent variant={variant} applyPreferences={applyPreferences} />,\n cookieConsentBannerElement\n )\n\n if (!consentAccepted) {\n switch (variant) {\n case Variant.Strict:\n cookieConsentModalState({ visible: true })\n break\n default:\n cookieConsentBannerState({ visible: true })\n }\n }\n}\n\nconst triggerCookieConsentModal = (): void => {\n cookieConsentModalState({ visible: true })\n}\n\nwindow.initCookieConsent = initCookieConsent\nwindow.triggerCookieConsentModal = triggerCookieConsentModal\n\nexport { initCookieConsent, triggerCookieConsentModal }\n\nexport type { CookieConsent, CookiePreferences, Accepted }\n","// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nconst isEqual = (value: any, other: any): boolean => {\n if (value === other) {\n return true\n }\n\n if (\n value == null ||\n other == null ||\n typeof value !== 'object' ||\n typeof other !== 'object'\n ) {\n return false\n }\n\n const keysA = Object.keys(value)\n const keysB = Object.keys(other)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n for (const key of keysA) {\n if (!keysB.includes(key) || !isEqual(value[key], other[key])) {\n return false\n }\n }\n\n return true\n}\n\nexport default isEqual\n","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function trunc(value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n\n};\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","function declensionGroup(scheme, count) {\n if (count === 1) {\n return scheme.one;\n }\n\n var rem100 = count % 100; // ends with 11-20\n\n if (rem100 <= 20 && rem100 > 10) {\n return scheme.other;\n }\n\n var rem10 = rem100 % 10; // ends with 2, 3, 4\n\n if (rem10 >= 2 && rem10 <= 4) {\n return scheme.twoFour;\n }\n\n return scheme.other;\n}\n\nfunction declension(scheme, count, time) {\n time = time || 'regular';\n var group = declensionGroup(scheme, count);\n var finalText = group[time] || group;\n return finalText.replace('{{count}}', count);\n}\n\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: {\n regular: 'mniej niż sekunda',\n past: 'mniej niż sekundÄ™',\n future: 'mniej niż sekundÄ™'\n },\n twoFour: 'mniej niż {{count}} sekundy',\n other: 'mniej niż {{count}} sekund'\n },\n xSeconds: {\n one: {\n regular: 'sekunda',\n past: 'sekundÄ™',\n future: 'sekundÄ™'\n },\n twoFour: '{{count}} sekundy',\n other: '{{count}} sekund'\n },\n halfAMinute: {\n one: 'pół minuty',\n twoFour: 'pół minuty',\n other: 'pół minuty'\n },\n lessThanXMinutes: {\n one: {\n regular: 'mniej niż minuta',\n past: 'mniej niż minutÄ™',\n future: 'mniej niż minutÄ™'\n },\n twoFour: 'mniej niż {{count}} minuty',\n other: 'mniej niż {{count}} minut'\n },\n xMinutes: {\n one: {\n regular: 'minuta',\n past: 'minutÄ™',\n future: 'minutÄ™'\n },\n twoFour: '{{count}} minuty',\n other: '{{count}} minut'\n },\n aboutXHours: {\n one: {\n regular: 'okoÅ‚o godziny',\n past: 'okoÅ‚o godziny',\n future: 'okoÅ‚o godzinÄ™'\n },\n twoFour: 'okoÅ‚o {{count}} godziny',\n other: 'okoÅ‚o {{count}} godzin'\n },\n xHours: {\n one: {\n regular: 'godzina',\n past: 'godzinÄ™',\n future: 'godzinÄ™'\n },\n twoFour: '{{count}} godziny',\n other: '{{count}} godzin'\n },\n xDays: {\n one: {\n regular: 'dzieÅ„',\n past: 'dzieÅ„',\n future: '1 dzieÅ„'\n },\n twoFour: '{{count}} dni',\n other: '{{count}} dni'\n },\n aboutXWeeks: {\n one: 'okoÅ‚o tygodnia',\n twoFour: 'okoÅ‚o {{count}} tygodni',\n other: 'okoÅ‚o {{count}} tygodni'\n },\n xWeeks: {\n one: 'tydzieÅ„',\n twoFour: '{{count}} tygodnie',\n other: '{{count}} tygodni'\n },\n aboutXMonths: {\n one: 'okoÅ‚o miesiÄ…c',\n twoFour: 'okoÅ‚o {{count}} miesiÄ…ce',\n other: 'okoÅ‚o {{count}} miesiÄ™cy'\n },\n xMonths: {\n one: 'miesiÄ…c',\n twoFour: '{{count}} miesiÄ…ce',\n other: '{{count}} miesiÄ™cy'\n },\n aboutXYears: {\n one: 'okoÅ‚o rok',\n twoFour: 'okoÅ‚o {{count}} lata',\n other: 'okoÅ‚o {{count}} lat'\n },\n xYears: {\n one: 'rok',\n twoFour: '{{count}} lata',\n other: '{{count}} lat'\n },\n overXYears: {\n one: 'ponad rok',\n twoFour: 'ponad {{count}} lata',\n other: 'ponad {{count}} lat'\n },\n almostXYears: {\n one: 'prawie rok',\n twoFour: 'prawie {{count}} lata',\n other: 'prawie {{count}} lat'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var scheme = formatDistanceLocale[token];\n\n if (!options.addSuffix) {\n return declension(scheme, count);\n }\n\n if (options.comparison > 0) {\n return 'za ' + declension(scheme, count, 'future');\n } else {\n return declension(scheme, count, 'past') + ' temu';\n }\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, do MMMM y',\n long: 'do MMMM y',\n medium: 'do MMM y',\n short: 'dd.MM.y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","import isSameUTCWeek from \"../../../../_lib/isSameUTCWeek/index.js\";\nvar adjectivesLastWeek = {\n masculine: 'ostatni',\n feminine: 'ostatnia'\n};\nvar adjectivesThisWeek = {\n masculine: 'ten',\n feminine: 'ta'\n};\nvar adjectivesNextWeek = {\n masculine: 'nastÄ™pny',\n feminine: 'nastÄ™pna'\n};\nvar dayGrammaticalGender = {\n 0: 'feminine',\n 1: 'masculine',\n 2: 'masculine',\n 3: 'feminine',\n 4: 'masculine',\n 5: 'masculine',\n 6: 'feminine'\n};\n\nfunction getAdjectives(token, date, baseDate, options) {\n if (isSameUTCWeek(date, baseDate, options)) {\n return adjectivesThisWeek;\n } else if (token === 'lastWeek') {\n return adjectivesLastWeek;\n } else if (token === 'nextWeek') {\n return adjectivesNextWeek;\n } else {\n throw new Error(\"Cannot determine adjectives for token \".concat(token));\n }\n}\n\nfunction getAdjective(token, date, baseDate, options) {\n var day = date.getUTCDay();\n var adjectives = getAdjectives(token, date, baseDate, options);\n var grammaticalGender = dayGrammaticalGender[day];\n return adjectives[grammaticalGender];\n}\n\nfunction dayAndTimeWithAdjective(token, date, baseDate, options) {\n var adjective = getAdjective(token, date, baseDate, options);\n return \"'\".concat(adjective, \"' eeee 'o' p\");\n}\n\nvar formatRelativeLocale = {\n lastWeek: dayAndTimeWithAdjective,\n yesterday: \"'wczoraj o' p\",\n today: \"'dzisiaj o' p\",\n tomorrow: \"'jutro o' p\",\n nextWeek: dayAndTimeWithAdjective,\n other: 'P'\n};\nexport default function formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(token, date, baseDate, options);\n }\n\n return format;\n}","import startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function isSameUTCWeek(dirtyDateLeft, dirtyDateRight, options) {\n requiredArgs(2, arguments);\n var dateLeftStartOfWeek = startOfUTCWeek(dirtyDateLeft, options);\n var dateRightStartOfWeek = startOfUTCWeek(dirtyDateRight, options);\n return dateLeftStartOfWeek.getTime() === dateRightStartOfWeek.getTime();\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return String(number);\n}\n\nvar eraValues = {\n narrow: ['p.n.e.', 'n.e.'],\n abbreviated: ['p.n.e.', 'n.e.'],\n wide: ['przed naszÄ… erÄ…', 'naszej ery']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['I kw.', 'II kw.', 'III kw.', 'IV kw.'],\n wide: ['I kwartaÅ‚', 'II kwartaÅ‚', 'III kwartaÅ‚', 'IV kwartaÅ‚']\n};\nvar monthValues = {\n narrow: ['S', 'L', 'M', 'K', 'M', 'C', 'L', 'S', 'W', 'P', 'L', 'G'],\n abbreviated: ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', 'sie', 'wrz', 'paź', 'lis', 'gru'],\n wide: ['styczeÅ„', 'luty', 'marzec', 'kwiecieÅ„', 'maj', 'czerwiec', 'lipiec', 'sierpieÅ„', 'wrzesieÅ„', 'październik', 'listopad', 'grudzieÅ„']\n};\nvar monthFormattingValues = {\n narrow: ['s', 'l', 'm', 'k', 'm', 'c', 'l', 's', 'w', 'p', 'l', 'g'],\n abbreviated: ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', 'sie', 'wrz', 'paź', 'lis', 'gru'],\n wide: ['stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'wrzeÅ›nia', 'października', 'listopada', 'grudnia']\n};\nvar dayValues = {\n narrow: ['N', 'P', 'W', 'Åš', 'C', 'P', 'S'],\n short: ['nie', 'pon', 'wto', 'Å›ro', 'czw', 'piÄ…', 'sob'],\n abbreviated: ['niedz.', 'pon.', 'wt.', 'Å›r.', 'czw.', 'pt.', 'sob.'],\n wide: ['niedziela', 'poniedziaÅ‚ek', 'wtorek', 'Å›roda', 'czwartek', 'piÄ…tek', 'sobota']\n};\nvar dayFormattingValues = {\n narrow: ['n', 'p', 'w', 'Å›', 'c', 'p', 's'],\n short: ['nie', 'pon', 'wto', 'Å›ro', 'czw', 'piÄ…', 'sob'],\n abbreviated: ['niedz.', 'pon.', 'wt.', 'Å›r.', 'czw.', 'pt.', 'sob.'],\n wide: ['niedziela', 'poniedziaÅ‚ek', 'wtorek', 'Å›roda', 'czwartek', 'piÄ…tek', 'sobota']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'półn.',\n noon: 'poÅ‚',\n morning: 'rano',\n afternoon: 'popoÅ‚.',\n evening: 'wiecz.',\n night: 'noc'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'północ',\n noon: 'poÅ‚udnie',\n morning: 'rano',\n afternoon: 'popoÅ‚udnie',\n evening: 'wieczór',\n night: 'noc'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'północ',\n noon: 'poÅ‚udnie',\n morning: 'rano',\n afternoon: 'popoÅ‚udnie',\n evening: 'wieczór',\n night: 'noc'\n }\n};\nvar dayPeriodFormattingValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'o półn.',\n noon: 'w poÅ‚.',\n morning: 'rano',\n afternoon: 'po poÅ‚.',\n evening: 'wiecz.',\n night: 'w nocy'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o północy',\n noon: 'w poÅ‚udnie',\n morning: 'rano',\n afternoon: 'po poÅ‚udniu',\n evening: 'wieczorem',\n night: 'w nocy'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o północy',\n noon: 'w poÅ‚udnie',\n morning: 'rano',\n afternoon: 'po poÅ‚udniu',\n evening: 'wieczorem',\n night: 'w nocy'\n }\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: monthFormattingValues,\n defaultFormattingWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide',\n formattingValues: dayFormattingValues,\n defaultFormattingWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: dayPeriodFormattingValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Polish locale.\n * @language Polish\n * @iso-639-2 pol\n * @author Mateusz Derks [@ertrzyiks]{@link https://github.com/ertrzyiks}\n * @author Just RAG [@justrag]{@link https://github.com/justrag}\n * @author Mikolaj Grzyb [@mikolajgrzyb]{@link https://github.com/mikolajgrzyb}\n * @author Mateusz Tokarski [@mutisz]{@link https://github.com/mutisz}\n */\n\nvar locale = {\n code: 'pl',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(p\\.?\\s*n\\.?\\s*e\\.?\\s*|n\\.?\\s*e\\.?\\s*)/i,\n abbreviated: /^(p\\.?\\s*n\\.?\\s*e\\.?\\s*|n\\.?\\s*e\\.?\\s*)/i,\n wide: /^(przed\\s*nasz(Ä…|a)\\s*er(Ä…|a)|naszej\\s*ery)/i\n};\nvar parseEraPatterns = {\n any: [/^p/i, /^n/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^(I|II|III|IV)\\s*kw\\.?/i,\n wide: /^(I|II|III|IV)\\s*kwarta(Å‚|l)/i\n};\nvar parseQuarterPatterns = {\n narrow: [/1/i, /2/i, /3/i, /4/i],\n any: [/^I kw/i, /^II kw/i, /^III kw/i, /^IV kw/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[slmkcwpg]/i,\n abbreviated: /^(sty|lut|mar|kwi|maj|cze|lip|sie|wrz|pa(ź|z)|lis|gru)/i,\n wide: /^(stycznia|stycze(Å„|n)|lutego|luty|marca|marzec|kwietnia|kwiecie(Å„|n)|maja|maj|czerwca|czerwiec|lipca|lipiec|sierpnia|sierpie(Å„|n)|wrze(Å›|s)nia|wrzesie(Å„|n)|pa(ź|z)dziernika|pa(ź|z)dziernik|listopada|listopad|grudnia|grudzie(Å„|n))/i\n};\nvar parseMonthPatterns = {\n narrow: [/^s/i, /^l/i, /^m/i, /^k/i, /^m/i, /^c/i, /^l/i, /^s/i, /^w/i, /^p/i, /^l/i, /^g/i],\n any: [/^st/i, /^lu/i, /^mar/i, /^k/i, /^maj/i, /^c/i, /^lip/i, /^si/i, /^w/i, /^p/i, /^lis/i, /^g/i]\n};\nvar matchDayPatterns = {\n narrow: /^[npwÅ›cs]/i,\n short: /^(nie|pon|wto|(Å›|s)ro|czw|pi(Ä…|a)|sob)/i,\n abbreviated: /^(niedz|pon|wt|(Å›|s)r|czw|pt|sob)\\.?/i,\n wide: /^(niedziela|poniedzia(Å‚|l)ek|wtorek|(Å›|s)roda|czwartek|pi(Ä…|a)tek|sobota)/i\n};\nvar parseDayPatterns = {\n narrow: [/^n/i, /^p/i, /^w/i, /^Å›/i, /^c/i, /^p/i, /^s/i],\n abbreviated: [/^n/i, /^po/i, /^w/i, /^(Å›|s)r/i, /^c/i, /^pt/i, /^so/i],\n any: [/^n/i, /^po/i, /^w/i, /^(Å›|s)r/i, /^c/i, /^pi/i, /^so/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(^a$|^p$|pó(Å‚|l)n\\.?|o\\s*pó(Å‚|l)n\\.?|po(Å‚|l)\\.?|w\\s*po(Å‚|l)\\.?|po\\s*po(Å‚|l)\\.?|rano|wiecz\\.?|noc|w\\s*nocy)/i,\n any: /^(am|pm|pó(Å‚|l)noc|o\\s*pó(Å‚|l)nocy|po(Å‚|l)udnie|w\\s*po(Å‚|l)udnie|popo(Å‚|l)udnie|po\\s*po(Å‚|l)udniu|rano|wieczór|wieczorem|noc|w\\s*nocy)/i\n};\nvar parseDayPeriodPatterns = {\n narrow: {\n am: /^a$/i,\n pm: /^p$/i,\n midnight: /pó(Å‚|l)n/i,\n noon: /po(Å‚|l)/i,\n morning: /rano/i,\n afternoon: /po\\s*po(Å‚|l)/i,\n evening: /wiecz/i,\n night: /noc/i\n },\n any: {\n am: /^am/i,\n pm: /^pm/i,\n midnight: /pó(Å‚|l)n/i,\n noon: /po(Å‚|l)/i,\n morning: /rano/i,\n afternoon: /po\\s*po(Å‚|l)/i,\n evening: /wiecz/i,\n night: /noc/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'minder dan een seconde',\n other: 'minder dan {{count}} seconden'\n },\n xSeconds: {\n one: '1 seconde',\n other: '{{count}} seconden'\n },\n halfAMinute: 'een halve minuut',\n lessThanXMinutes: {\n one: 'minder dan een minuut',\n other: 'minder dan {{count}} minuten'\n },\n xMinutes: {\n one: 'een minuut',\n other: '{{count}} minuten'\n },\n aboutXHours: {\n one: 'ongeveer 1 uur',\n other: 'ongeveer {{count}} uur'\n },\n xHours: {\n one: '1 uur',\n other: '{{count}} uur'\n },\n xDays: {\n one: '1 dag',\n other: '{{count}} dagen'\n },\n aboutXWeeks: {\n one: 'ongeveer 1 week',\n other: 'ongeveer {{count}} weken'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weken'\n },\n aboutXMonths: {\n one: 'ongeveer 1 maand',\n other: 'ongeveer {{count}} maanden'\n },\n xMonths: {\n one: '1 maand',\n other: '{{count}} maanden'\n },\n aboutXYears: {\n one: 'ongeveer 1 jaar',\n other: 'ongeveer {{count}} jaar'\n },\n xYears: {\n one: '1 jaar',\n other: '{{count}} jaar'\n },\n overXYears: {\n one: 'meer dan 1 jaar',\n other: 'meer dan {{count}} jaar'\n },\n almostXYears: {\n one: 'bijna 1 jaar',\n other: 'bijna {{count}} jaar'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'over ' + result;\n } else {\n return result + ' geleden';\n }\n }\n\n return result;\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd-MM-y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'om' {{time}}\",\n long: \"{{date}} 'om' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'afgelopen' eeee 'om' p\",\n yesterday: \"'gisteren om' p\",\n today: \"'vandaag om' p\",\n tomorrow: \"'morgen om' p\",\n nextWeek: \"eeee 'om' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['v.C.', 'n.C.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['voor Christus', 'na Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['K1', 'K2', 'K3', 'K4'],\n wide: ['1e kwartaal', '2e kwartaal', '3e kwartaal', '4e kwartaal']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['jan.', 'feb.', 'mrt.', 'apr.', 'mei', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'],\n wide: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december']\n};\nvar dayValues = {\n narrow: ['Z', 'M', 'D', 'W', 'D', 'V', 'Z'],\n short: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],\n abbreviated: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],\n wide: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middaguur',\n morning: \"'s ochtends\",\n afternoon: \"'s middags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middaguur',\n morning: \"'s ochtends\",\n afternoon: \"'s middags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middaguur',\n morning: \"'s ochtends\",\n afternoon: \"'s middags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + 'e';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Dutch locale.\n * @language Dutch\n * @iso-639-2 nld\n * @author Jorik Tangelder [@jtangelder]{@link https://github.com/jtangelder}\n * @author Ruben Stolk [@rubenstolk]{@link https://github.com/rubenstolk}\n * @author Lode Vanhove [@bitcrumb]{@link https://github.com/bitcrumb}\n * @author Edo Rivai [@edorivai]{@link https://github.com/edorivai}\n * @author Niels Keurentjes [@curry684]{@link https://github.com/curry684}\n * @author Stefan Vermaas [@stefanvermaas]{@link https://github.com/stefanvermaas}\n */\n\nvar locale = {\n code: 'nl',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)e?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^([vn]\\.? ?C\\.?)/,\n abbreviated: /^([vn]\\. ?Chr\\.?)/,\n wide: /^((voor|na) Christus)/\n};\nvar parseEraPatterns = {\n any: [/^v/, /^n/]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^K[1234]/i,\n wide: /^[1234]e kwartaal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan.|feb.|mrt.|apr.|mei|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,\n wide: /^(januari|februari|maart|april|mei|juni|juli|augustus|september|oktober|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^jan/i, /^feb/i, /^m(r|a)/i, /^apr/i, /^mei/i, /^jun/i, /^jul/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i]\n};\nvar matchDayPatterns = {\n narrow: /^[zmdwv]/i,\n short: /^(zo|ma|di|wo|do|vr|za)/i,\n abbreviated: /^(zon|maa|din|woe|don|vri|zat)/i,\n wide: /^(zondag|maandag|dinsdag|woensdag|donderdag|vrijdag|zaterdag)/i\n};\nvar parseDayPatterns = {\n narrow: [/^z/i, /^m/i, /^d/i, /^w/i, /^d/i, /^v/i, /^z/i],\n any: [/^zo/i, /^ma/i, /^di/i, /^wo/i, /^do/i, /^vr/i, /^za/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(am|pm|middernacht|het middaguur|'s (ochtends|middags|avonds|nachts))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^am/i,\n pm: /^pm/i,\n midnight: /^middernacht/i,\n noon: /^het middaguur/i,\n morning: /ochtend/i,\n afternoon: /middag/i,\n evening: /avond/i,\n night: /nacht/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'minder dan een seconde',\n other: 'minder dan {{count}} seconden'\n },\n xSeconds: {\n one: '1 seconde',\n other: '{{count}} seconden'\n },\n halfAMinute: 'een halve minuut',\n lessThanXMinutes: {\n one: 'minder dan een minuut',\n other: 'minder dan {{count}} minuten'\n },\n xMinutes: {\n one: 'een minuut',\n other: '{{count}} minuten'\n },\n aboutXHours: {\n one: 'ongeveer 1 uur',\n other: 'ongeveer {{count}} uur'\n },\n xHours: {\n one: '1 uur',\n other: '{{count}} uur'\n },\n xDays: {\n one: '1 dag',\n other: '{{count}} dagen'\n },\n aboutXWeeks: {\n one: 'ongeveer 1 week',\n other: 'ongeveer {{count}} weken'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weken'\n },\n aboutXMonths: {\n one: 'ongeveer 1 maand',\n other: 'ongeveer {{count}} maanden'\n },\n xMonths: {\n one: '1 maand',\n other: '{{count}} maanden'\n },\n aboutXYears: {\n one: 'ongeveer 1 jaar',\n other: 'ongeveer {{count}} jaar'\n },\n xYears: {\n one: '1 jaar',\n other: '{{count}} jaar'\n },\n overXYears: {\n one: 'meer dan 1 jaar',\n other: 'meer dan {{count}} jaar'\n },\n almostXYears: {\n one: 'bijna 1 jaar',\n other: 'bijna {{count}} jaar'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'over ' + result;\n } else {\n return result + ' geleden';\n }\n }\n\n return result;\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd.MM.y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'om' {{time}}\",\n long: \"{{date}} 'om' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'vorige' eeee 'om' p\",\n yesterday: \"'gisteren om' p\",\n today: \"'vandaag om' p\",\n tomorrow: \"'morgen om' p\",\n nextWeek: \"eeee 'om' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['v.C.', 'n.C.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['voor Christus', 'na Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['K1', 'K2', 'K3', 'K4'],\n wide: ['1e kwartaal', '2e kwartaal', '3e kwartaal', '4e kwartaal']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['jan.', 'feb.', 'mrt.', 'apr.', 'mei', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'],\n wide: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december']\n};\nvar dayValues = {\n narrow: ['Z', 'M', 'D', 'W', 'D', 'V', 'Z'],\n short: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],\n abbreviated: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],\n wide: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middag',\n morning: \"'s ochtends\",\n afternoon: \"'s namiddags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middag',\n morning: \"'s ochtends\",\n afternoon: \"'s namiddags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'middernacht',\n noon: 'het middag',\n morning: \"'s ochtends\",\n afternoon: \"'s namiddags\",\n evening: \"'s avonds\",\n night: \"'s nachts\"\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + 'e';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Dutch locale.\n * @language Dutch\n * @iso-639-2 nld\n * @author Jorik Tangelder [@jtangelder]{@link https://github.com/jtangelder}\n * @author Ruben Stolk [@rubenstolk]{@link https://github.com/rubenstolk}\n * @author Lode Vanhove [@bitcrumb]{@link https://github.com/bitcrumb}\n * @author Alex Hoeing [@dcbn]{@link https://github.com/dcbn}\n */\n\nvar locale = {\n code: 'nl-BE',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)e?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^([vn]\\.? ?C\\.?)/,\n abbreviated: /^([vn]\\. ?Chr\\.?)/,\n wide: /^((voor|na) Christus)/\n};\nvar parseEraPatterns = {\n any: [/^v/, /^n/]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^K[1234]/i,\n wide: /^[1234]e kwartaal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan.|feb.|mrt.|apr.|mei|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,\n wide: /^(januari|februari|maart|april|mei|juni|juli|augustus|september|oktober|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^jan/i, /^feb/i, /^m(r|a)/i, /^apr/i, /^mei/i, /^jun/i, /^jul/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i]\n};\nvar matchDayPatterns = {\n narrow: /^[zmdwv]/i,\n short: /^(zo|ma|di|wo|do|vr|za)/i,\n abbreviated: /^(zon|maa|din|woe|don|vri|zat)/i,\n wide: /^(zondag|maandag|dinsdag|woensdag|donderdag|vrijdag|zaterdag)/i\n};\nvar parseDayPatterns = {\n narrow: [/^z/i, /^m/i, /^d/i, /^w/i, /^d/i, /^v/i, /^z/i],\n any: [/^zo/i, /^ma/i, /^di/i, /^wo/i, /^do/i, /^vr/i, /^za/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^(am|pm|middernacht|het middaguur|'s (ochtends|middags|avonds|nachts))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^am/i,\n pm: /^pm/i,\n midnight: /^middernacht/i,\n noon: /^het middaguur/i,\n morning: /ochtend/i,\n afternoon: /middag/i,\n evening: /avond/i,\n night: /nacht/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","var formatDistanceLocale = {\n lessThanXSeconds: {\n standalone: {\n one: 'weniger als 1 Sekunde',\n other: 'weniger als {{count}} Sekunden'\n },\n withPreposition: {\n one: 'weniger als 1 Sekunde',\n other: 'weniger als {{count}} Sekunden'\n }\n },\n xSeconds: {\n standalone: {\n one: '1 Sekunde',\n other: '{{count}} Sekunden'\n },\n withPreposition: {\n one: '1 Sekunde',\n other: '{{count}} Sekunden'\n }\n },\n halfAMinute: {\n standalone: 'halbe Minute',\n withPreposition: 'halben Minute'\n },\n lessThanXMinutes: {\n standalone: {\n one: 'weniger als 1 Minute',\n other: 'weniger als {{count}} Minuten'\n },\n withPreposition: {\n one: 'weniger als 1 Minute',\n other: 'weniger als {{count}} Minuten'\n }\n },\n xMinutes: {\n standalone: {\n one: '1 Minute',\n other: '{{count}} Minuten'\n },\n withPreposition: {\n one: '1 Minute',\n other: '{{count}} Minuten'\n }\n },\n aboutXHours: {\n standalone: {\n one: 'etwa 1 Stunde',\n other: 'etwa {{count}} Stunden'\n },\n withPreposition: {\n one: 'etwa 1 Stunde',\n other: 'etwa {{count}} Stunden'\n }\n },\n xHours: {\n standalone: {\n one: '1 Stunde',\n other: '{{count}} Stunden'\n },\n withPreposition: {\n one: '1 Stunde',\n other: '{{count}} Stunden'\n }\n },\n xDays: {\n standalone: {\n one: '1 Tag',\n other: '{{count}} Tage'\n },\n withPreposition: {\n one: '1 Tag',\n other: '{{count}} Tagen'\n }\n },\n aboutXWeeks: {\n standalone: {\n one: 'etwa 1 Woche',\n other: 'etwa {{count}} Wochen'\n },\n withPreposition: {\n one: 'etwa 1 Woche',\n other: 'etwa {{count}} Wochen'\n }\n },\n xWeeks: {\n standalone: {\n one: '1 Woche',\n other: '{{count}} Wochen'\n },\n withPreposition: {\n one: '1 Woche',\n other: '{{count}} Wochen'\n }\n },\n aboutXMonths: {\n standalone: {\n one: 'etwa 1 Monat',\n other: 'etwa {{count}} Monate'\n },\n withPreposition: {\n one: 'etwa 1 Monat',\n other: 'etwa {{count}} Monaten'\n }\n },\n xMonths: {\n standalone: {\n one: '1 Monat',\n other: '{{count}} Monate'\n },\n withPreposition: {\n one: '1 Monat',\n other: '{{count}} Monaten'\n }\n },\n aboutXYears: {\n standalone: {\n one: 'etwa 1 Jahr',\n other: 'etwa {{count}} Jahre'\n },\n withPreposition: {\n one: 'etwa 1 Jahr',\n other: 'etwa {{count}} Jahren'\n }\n },\n xYears: {\n standalone: {\n one: '1 Jahr',\n other: '{{count}} Jahre'\n },\n withPreposition: {\n one: '1 Jahr',\n other: '{{count}} Jahren'\n }\n },\n overXYears: {\n standalone: {\n one: 'mehr als 1 Jahr',\n other: 'mehr als {{count}} Jahre'\n },\n withPreposition: {\n one: 'mehr als 1 Jahr',\n other: 'mehr als {{count}} Jahren'\n }\n },\n almostXYears: {\n standalone: {\n one: 'fast 1 Jahr',\n other: 'fast {{count}} Jahre'\n },\n withPreposition: {\n one: 'fast 1 Jahr',\n other: 'fast {{count}} Jahren'\n }\n }\n};\n\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = options !== null && options !== void 0 && options.addSuffix ? formatDistanceLocale[token].withPreposition : formatDistanceLocale[token].standalone;\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', String(count));\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return 'vor ' + result;\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\"; // DIN 5008: https://de.wikipedia.org/wiki/Datumsformat#DIN_5008\n\nvar dateFormats = {\n full: 'EEEE, do MMMM y',\n // Montag, 7. Januar 2018\n long: 'do MMMM y',\n // 7. Januar 2018\n medium: 'do MMM y',\n // 7. Jan. 2018\n short: 'dd.MM.y' // 07.01.2018\n\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'um' {{time}}\",\n long: \"{{date}} 'um' {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'letzten' eeee 'um' p\",\n yesterday: \"'gestern um' p\",\n today: \"'heute um' p\",\n tomorrow: \"'morgen um' p\",\n nextWeek: \"eeee 'um' p\",\n other: 'P'\n};\n\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['v.Chr.', 'n.Chr.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['vor Christus', 'nach Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal']\n}; // Note: in German, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n wide: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']\n}; // https://st.unicode.org/cldr-apps/v#/de/Gregorian/\n\nvar formattingMonthValues = {\n narrow: monthValues.narrow,\n abbreviated: ['Jan.', 'Feb.', 'März', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', 'Sep.', 'Okt.', 'Nov.', 'Dez.'],\n wide: monthValues.wide\n};\nvar dayValues = {\n narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],\n short: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n abbreviated: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],\n wide: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']\n}; // https://www.unicode.org/cldr/charts/32/summary/de.html#1881\n\nvar dayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachm.',\n evening: 'Abend',\n night: 'Nacht'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachm.',\n evening: 'abends',\n night: 'nachts'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n }\n};\n\nvar ordinalNumber = function ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n formattingValues: formattingMonthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary German locale.\n * @language German\n * @iso-639-2 deu\n * @author Thomas Eilmsteiner [@DeMuu]{@link https://github.com/DeMuu}\n * @author Asia [@asia-t]{@link https://github.com/asia-t}\n * @author Van Vuong Ngo [@vanvuongngo]{@link https://github.com/vanvuongngo}\n * @author RomanErnst [@pex]{@link https://github.com/pex}\n * @author Philipp Keck [@Philipp91]{@link https://github.com/Philipp91}\n */\n\nvar locale = {\n code: 'de',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n abbreviated: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n wide: /^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i\n};\nvar parseEraPatterns = {\n any: [/^v/i, /^n/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](\\.)? Quartal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(j[aä]n|feb|mär[z]?|apr|mai|jun[i]?|jul[i]?|aug|sep|okt|nov|dez)\\.?/i,\n wide: /^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^j[aä]/i, /^f/i, /^mär/i, /^ap/i, /^mai/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smdmf]/i,\n short: /^(so|mo|di|mi|do|fr|sa)/i,\n abbreviated: /^(son?|mon?|die?|mit?|don?|fre?|sam?)\\.?/i,\n wide: /^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i\n};\nvar parseDayPatterns = {\n any: [/^so/i, /^mo/i, /^di/i, /^mi/i, /^do/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(vm\\.?|nm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n abbreviated: /^(vorm\\.?|nachm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n wide: /^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^v/i,\n pm: /^n/i,\n midnight: /^Mitte/i,\n noon: /^Mitta/i,\n morning: /morgens/i,\n afternoon: /nachmittags/i,\n // will never be matched. Afternoon is matched by `pm`\n evening: /abends/i,\n night: /nachts/i // will never be matched. Night is matched by `pm`\n\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, function () {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n });\n}\n\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\n\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n\n return i18n.hasLoadedNamespace(ns, {\n precheck: function precheck(i18nInstance, loadNotPending) {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\n\nvar usePrevious = function usePrevious(value, ignore) {\n var ref = useRef();\n useEffect(function () {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\n\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n var notReadyT = function notReadyT(k) {\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n var useSuspense = i18nOptions.useSuspense,\n keyPrefix = i18nOptions.keyPrefix;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n\n function getT() {\n return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\n var joinedNS = namespaces.join();\n var previousJoinedNS = usePrevious(joinedNS);\n var isMounted = useRef(true);\n useEffect(function () {\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n\n if (!ready && !useSuspense) {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n }\n\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getT);\n }\n\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return function () {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, joinedNS]);\n var isInitial = useRef(true);\n useEffect(function () {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n\n isInitial.current = false;\n }, [i18n, keyPrefix]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(function (resolve) {\n loadNamespaces(i18n, namespaces, function () {\n resolve();\n });\n });\n}","// currently used to initiate the velocity style object to 0\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = mapToZero;\n\nfunction mapToZero(obj) {\n var ret = {};\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n ret[key] = 0;\n }\n }\n\n return ret;\n}\n\nmodule.exports = exports['default'];","// stepper is used a lot. Saves allocation to return the same array wrapper.\n// This is fine and danger-free against mutations because the callsite\n// immediately destructures it and gets the numbers inside without passing the\n\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stepper;\nvar reusedTuple = [0, 0];\n\nfunction stepper(secondPerFrame, x, v, destX, k, b, precision) {\n // Spring stiffness, in kg / s^2\n // for animations, destX is really spring length (spring at rest). initial\n // position is considered as the stretched/compressed position of a spring\n var Fspring = -k * (x - destX); // Damping, in kg / s\n\n var Fdamper = -b * v; // usually we put mass here, but for animation purposes, specifying mass is a\n // bit redundant. you could simply adjust k and b accordingly\n // let a = (Fspring + Fdamper) / mass;\n\n var a = Fspring + Fdamper;\n var newV = v + a * secondPerFrame;\n var newX = x + newV * secondPerFrame;\n\n if (Math.abs(newV) < precision && Math.abs(newX - destX) < precision) {\n reusedTuple[0] = destX;\n reusedTuple[1] = 0;\n return reusedTuple;\n }\n\n reusedTuple[0] = newX;\n reusedTuple[1] = newV;\n return reusedTuple;\n}\n\nmodule.exports = exports[\"default\"]; // array reference around.","// Generated by CoffeeScript 1.7.1\n(function () {\n var getNanoSeconds, hrtime, loadTime;\n\n if (typeof performance !== \"undefined\" && performance !== null && performance.now) {\n module.exports = function () {\n return performance.now();\n };\n } else if (typeof process !== \"undefined\" && process !== null && process.hrtime) {\n module.exports = function () {\n return (getNanoSeconds() - loadTime) / 1e6;\n };\n\n hrtime = process.hrtime;\n\n getNanoSeconds = function getNanoSeconds() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n\n loadTime = getNanoSeconds();\n } else if (Date.now) {\n module.exports = function () {\n return Date.now() - loadTime;\n };\n\n loadTime = Date.now();\n } else {\n module.exports = function () {\n return new Date().getTime() - loadTime;\n };\n\n loadTime = new Date().getTime();\n }\n}).call(this);","var now = require('performance-now'),\n root = typeof window === 'undefined' ? global : window,\n vendors = ['moz', 'webkit'],\n suffix = 'AnimationFrame',\n raf = root['request' + suffix],\n caf = root['cancel' + suffix] || root['cancelRequest' + suffix];\n\nfor (var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix];\n caf = root[vendors[i] + 'Cancel' + suffix] || root[vendors[i] + 'CancelRequest' + suffix];\n} // Some versions of FF have rAF but not cAF\n\n\nif (!raf || !caf) {\n var last = 0,\n id = 0,\n queue = [],\n frameDuration = 1000 / 60;\n\n raf = function raf(callback) {\n if (queue.length === 0) {\n var _now = now(),\n next = Math.max(0, frameDuration - (_now - last));\n\n last = next + _now;\n setTimeout(function () {\n var cp = queue.slice(0); // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n\n queue.length = 0;\n\n for (var i = 0; i < cp.length; i++) {\n if (!cp[i].cancelled) {\n try {\n cp[i].callback(last);\n } catch (e) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n }\n }, Math.round(next));\n }\n\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n });\n return id;\n };\n\n caf = function caf(handle) {\n for (var i = 0; i < queue.length; i++) {\n if (queue[i].handle === handle) {\n queue[i].cancelled = true;\n }\n }\n };\n}\n\nmodule.exports = function (fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn);\n};\n\nmodule.exports.cancel = function () {\n caf.apply(root, arguments);\n};\n\nmodule.exports.polyfill = function (object) {\n if (!object) {\n object = root;\n }\n\n object.requestAnimationFrame = raf;\n object.cancelAnimationFrame = caf;\n};","// usage assumption: currentStyle values have already been rendered but it says\n// nothing of whether currentStyle is stale (see unreadPropStyle)\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = shouldStopAnimation;\n\nfunction shouldStopAnimation(currentStyle, style, currentVelocity) {\n for (var key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n\n if (currentVelocity[key] !== 0) {\n return false;\n }\n\n var styleValue = typeof style[key] === 'number' ? style[key] : style[key].val; // stepper will have already taken care of rounding precision errors, so\n // won't have such thing as 0.9999 !=== 1\n\n if (currentStyle[key] !== styleValue) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports['default'];","// extracted by mini-css-extract-plugin\nmodule.exports = {\"xs\":\"375px\",\"sm\":\"600px\",\"md\":\"834px\",\"lg\":\"1280px\",\"xl\":\"1280px\"};","// @noflow\nimport { useReactiveVar } from '@apollo/client'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport CloseIcon from 'assets/images/icons/crosses/close-icon--white.svg'\n\nimport type { CookiePreferences } from '@/components/cookie_consent/index'\nimport { Variant } from '@/components/shared/CookieConsent/Modals/CookieConsentModal'\nimport {\n Component,\n Context,\n actionToCookieConsent,\n manageCookiesClicked,\n trackCookiePreferences\n} from '@/components/shared/CookieConsent/helpers'\nimport { Action } from '@/components/shared/CookieConsent/types'\n\nimport {\n cookieConsentBannerState,\n cookieConsentModalState\n} from './CookieConsent'\n\ntype Props = {\n variant: Variant\n applyPreferences: (preferences: CookiePreferences) => void\n}\n\nconst CookieConsentBanner = ({\n variant,\n applyPreferences\n}: Props): JSX.Element => {\n const { t } = useTranslation('shared')\n const copyContext = 'cookie_consent.banner'\n const cookieConsentBanner = useReactiveVar(cookieConsentBannerState)\n\n const [isBannerVisible, setIsBannerVisible] = useState(\n cookieConsentBanner.visible\n )\n\n const closeBanner = useCallback(() => {\n setIsBannerVisible(false)\n\n setTimeout(() => {\n cookieConsentBannerState({ visible: false })\n }, 300)\n }, [])\n\n const handleOnClose = useCallback(() => {\n actionToCookieConsent({ action: Action.Accepted, applyPreferences })\n\n trackCookiePreferences({\n preferences: { marketing: true, analytics: true },\n variant,\n component: Component.Banner,\n context: Context.Close\n })\n\n closeBanner()\n }, [applyPreferences, closeBanner, variant])\n\n const handleOnManageClick = useCallback(() => {\n cookieConsentModalState({ visible: true })\n actionToCookieConsent({ action: Action.None })\n manageCookiesClicked()\n }, [])\n\n const handleOnAcceptClick = useCallback(() => {\n actionToCookieConsent({ action: Action.Accepted, applyPreferences })\n\n trackCookiePreferences({\n preferences: { marketing: true, analytics: true },\n variant,\n component: Component.Banner,\n context: Context.GotIt\n })\n\n closeBanner()\n }, [applyPreferences, closeBanner, variant])\n\n // Ensure the banner local state is kept up to date as other side effects\n // are called changing the value of cookieConsentBanner.visible\n useEffect(\n () => setIsBannerVisible(cookieConsentBanner.visible),\n [cookieConsentBanner.visible]\n )\n\n return (\n <div>\n <div\n className={`cookie-banner ${isBannerVisible ? 'transition-in' : ''}`}\n >\n <button\n className=\"cookie-banner__close\"\n type=\"button\"\n onClick={handleOnClose}\n >\n <img src={CloseIcon} alt={t(`${copyContext}.close_btn_alt`)} />\n </button>\n <h2 className=\"cookie-banner__title\">{t(`${copyContext}.title`)}</h2>\n <div className=\"cookie-banner__content\">\n <p>{t(`${copyContext}.description`)}</p>\n <div className=\"cookie-banner__buttons\">\n <button\n className=\"cookie-banner__buttons__manage-button\"\n type=\"button\"\n onClick={handleOnManageClick}\n >\n {t(`${copyContext}.manage_btn`)}\n </button>\n <button\n id=\"cookie-banner-accept-button\"\n data-testid=\"cookie-accept-button\"\n className=\"btn secondary cookie-banner__buttons__accept-button\"\n type=\"button\"\n onClick={handleOnAcceptClick}\n >\n {t(`${copyContext}.accept_btn`)}\n </button>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default CookieConsentBanner\n","// @noflow\nimport React, { ChangeEvent, useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { countryCodeToPrivacyUrl } from '@/utils/countryCodeHelper'\nimport * as Sentry from '@/utils/sentry'\n\nimport type { CookieConsent } from '@/components/cookie_consent'\nimport type { CookiePreferences } from '@/components/cookie_consent/index'\nimport {\n BaseModalProps,\n Variant\n} from '@/components/shared/CookieConsent/Modals/CookieConsentModal'\nimport {\n Component,\n Context,\n actionToCookieConsent,\n trackCookiePreferences\n} from '@/components/shared/CookieConsent/helpers'\nimport { Action } from '@/components/shared/CookieConsent/types'\n\nimport { ensureNever } from '@/typescript/utils'\n\nimport { cookieConsentBannerState } from '../CookieConsent'\n\ntype ManageProps = {\n variant: Variant\n applyPreferences: (preferences: CookiePreferences) => void\n closeBanner: (arg0: boolean) => void\n}\n\ntype ManageModalProps = BaseModalProps & {\n variant: Variant\n}\n\ntype CookieTypeKey =\n | 'required_cookies'\n | 'functional_cookies'\n | 'marketing_cookies'\n\ninterface CookieCheckboxEvent extends HTMLInputElement {\n name: CookieTypeKey\n}\n\nconst copyContext = 'cookie_consent'\n\nconst ManageModal = ({\n variant,\n shippingCountryCode,\n applyPreferences,\n setShowStrictModal,\n handleModalClose\n}: ManageModalProps): JSX.Element => {\n const { t } = useTranslation('shared')\n\n const [functionalCookies, setFunctionalCookies] = useState(false)\n const [marketingCookies, setMarketingCookies] = useState(false)\n\n const cookieType: Array<{ key: CookieTypeKey; value: boolean }> = [\n // Users are not permitted to opt out of Required Cookies so this value will\n // always be true\n { key: 'required_cookies', value: true },\n { key: 'functional_cookies', value: functionalCookies },\n { key: 'marketing_cookies', value: marketingCookies }\n ]\n\n // These are part of Required Cookies, so are always allowed by default\n const defaultAllowedFunctionalities = [\n 'save_progress',\n 'remember_dog',\n 'store_login'\n ]\n\n // Ticks all checkboxes, therefore allowing all cookies\n const handleOnAcceptAll = useCallback(() => {\n setFunctionalCookies(true)\n setMarketingCookies(true)\n actionToCookieConsent({ action: Action.Accepted, applyPreferences })\n\n trackCookiePreferences({\n preferences: { marketing: true, analytics: true },\n variant,\n component: Component.Modal,\n context: Context.AcceptAll\n })\n\n handleModalClose()\n cookieConsentBannerState({ visible: false })\n }, [applyPreferences, handleModalClose, variant])\n\n const updateLocalStateFromLocalStorage = useCallback(() => {\n const cookieConsent = localStorage.getItem('cookieConsent')\n const cookieConsentJson: CookieConsent = cookieConsent\n ? JSON.parse(cookieConsent)\n : {}\n\n if (!cookieConsentJson || cookieConsentJson.state === 'banner-shown') {\n setFunctionalCookies(false)\n setMarketingCookies(false)\n\n return\n }\n\n cookieConsentJson.preferences.analytics\n ? setFunctionalCookies(true)\n : setFunctionalCookies(false)\n\n cookieConsentJson.preferences.marketing\n ? setMarketingCookies(true)\n : setMarketingCookies(false)\n }, [])\n\n const handleOnChange = useCallback(\n (e: ChangeEvent<CookieCheckboxEvent>) => {\n switch (e.target.name) {\n case 'functional_cookies':\n setFunctionalCookies(!functionalCookies)\n break\n case 'marketing_cookies':\n setMarketingCookies(!marketingCookies)\n break\n case 'required_cookies':\n Sentry.captureException(`Unknown paymentMethodIdentifierType`)\n break\n default:\n ensureNever(e.target.name)\n }\n },\n [functionalCookies, marketingCookies]\n )\n\n const handleOnCancel = useCallback(() => {\n // Resets the local component state back to its\n // initial values\n updateLocalStateFromLocalStorage()\n\n if (variant === Variant.Strict) {\n // Switch to the Strict Modal\n setShowStrictModal(true)\n } else {\n handleModalClose()\n }\n }, [\n handleModalClose,\n setShowStrictModal,\n updateLocalStateFromLocalStorage,\n variant\n ])\n\n const handleOnSave = useCallback(() => {\n actionToCookieConsent({\n action: Action.Saved,\n preferences: {\n marketing: marketingCookies,\n analytics: functionalCookies\n },\n applyPreferences\n })\n\n trackCookiePreferences({\n preferences: {\n marketing: marketingCookies,\n analytics: functionalCookies\n },\n variant,\n component: Component.Modal,\n context: Context.SaveChanges\n })\n\n handleModalClose()\n cookieConsentBannerState({ visible: false })\n }, [\n marketingCookies,\n functionalCookies,\n applyPreferences,\n variant,\n handleModalClose\n ])\n\n useEffect(() => {\n updateLocalStateFromLocalStorage()\n }, [updateLocalStateFromLocalStorage])\n\n return (\n <>\n <div className=\"cookie-modal__info\">\n <h2>{t(`${copyContext}.modal.title`)}</h2>\n <p\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: t(`${copyContext}.modal.subtitle`, {\n privacyUrl: countryCodeToPrivacyUrl(shippingCountryCode)\n })\n }}\n />\n </div>\n <div className=\"cookie-modal__control\">\n <div className=\"cookie-modal__control__toggles\">\n {cookieType.map(({ key, value }) => {\n return (\n <label\n className={`cookie-modal__control__toggles__toggle selected ${\n key === 'required_cookies' ? 'required' : ''\n } ${key !== 'required_cookies' && value ? 'active' : ''}`}\n key={key}\n >\n <input\n type=\"checkbox\"\n onChange={handleOnChange}\n checked={value}\n name={key}\n />\n <div>\n <h3>{t(`${copyContext}.modal.${key}.heading`)}</h3>\n <p>{t(`${copyContext}.modal.${key}.description`)}</p>\n </div>\n </label>\n )\n })}\n </div>\n <div className=\"cookie-modal__control__functionality\">\n <div>\n <h3>{t(`${copyContext}.modal.functionality.heading.allowed`)}</h3>\n <ul>\n {defaultAllowedFunctionalities.map((allowedFunctionality) => {\n return (\n <li key={allowedFunctionality}>\n {t(\n `${copyContext}.modal.functionality.${allowedFunctionality}`\n )}\n </li>\n )\n })}\n {functionalCookies && (\n <li>\n {t(`${copyContext}.modal.functionality.site_consistency`)}\n </li>\n )}\n {marketingCookies && (\n <li>{t(`${copyContext}.modal.functionality.serve_ads`)}</li>\n )}\n </ul>\n </div>\n {(!functionalCookies || !marketingCookies) && (\n <div>\n <h3>\n {t(`${copyContext}.modal.functionality.heading.not_allowed`)}\n </h3>\n <ul>\n {!functionalCookies && (\n <li>\n {t(`${copyContext}.modal.functionality.site_consistency`)}\n </li>\n )}\n {!marketingCookies && (\n <li>{t(`${copyContext}.modal.functionality.serve_ads`)}</li>\n )}\n </ul>\n </div>\n )}\n </div>\n </div>\n <div className=\"btn-group\">\n <button\n className=\"btn secondary\"\n type=\"button\"\n onClick={handleOnCancel}\n >\n {t(`${copyContext}.modal.cancel_btn`)}\n </button>\n <button className=\"btn secondary\" type=\"button\" onClick={handleOnSave}>\n {t(`${copyContext}.modal.save_btn`)}\n </button>\n <button\n className=\"btn primary\"\n type=\"button\"\n onClick={handleOnAcceptAll}\n >\n {t(`${copyContext}.modal.accept_btn`)}\n </button>\n </div>\n </>\n )\n}\n\nexport default ManageModal\nexport { ManageProps }\n","// @noflow\nimport segmentTrack from '@/components/analytics/Analytics'\nimport type { CookiePreferences } from '@/components/cookie_consent/index'\nimport { Variant } from '@/components/shared/CookieConsent/Modals/CookieConsentModal'\nimport { Action } from '@/components/shared/CookieConsent/types'\nimport type { LocalStorageCookieConsent } from '@/components/shared/CookieConsent/types'\n\nconst cookieConsentLocalStorageKey = 'cookieConsent'\n\nenum Context {\n Close = 'Close',\n GotIt = 'Got It',\n AcceptAll = 'Accept All',\n SaveChanges = 'Save Changes',\n Scrolled = 'Scrolled'\n}\n\nenum Component {\n Banner = 'Banner',\n Modal = 'Modal',\n Null = 'Null'\n}\n\ntype Props = LocalStorageCookieConsent & {\n applyPreferences?: (preferences: CookiePreferences) => void\n}\n\ntype CookieAnalyticsProps = {\n preferences: CookiePreferences\n variant: Variant\n component: Component\n context: Context\n}\n\nconst actionToCookieConsent = ({\n action,\n preferences,\n applyPreferences\n}: Props): void => {\n switch (action) {\n case Action.Accepted: {\n if (applyPreferences) {\n applyPreferences({ marketing: true, analytics: true })\n }\n\n localStorage.setItem(\n cookieConsentLocalStorageKey,\n JSON.stringify({\n state: 'accepted',\n preferences: { marketing: true, analytics: true }\n })\n )\n\n break\n }\n case Action.None: {\n localStorage.setItem(cookieConsentLocalStorageKey, 'null')\n break\n }\n case Action.Cancelled: {\n break\n }\n case Action.Saved: {\n if (applyPreferences && preferences) {\n applyPreferences(preferences)\n }\n localStorage.setItem(\n cookieConsentLocalStorageKey,\n JSON.stringify({\n state: 'accepted',\n preferences\n })\n )\n break\n }\n case Action.Deny: {\n if (applyPreferences) {\n applyPreferences({ marketing: false, analytics: false })\n }\n localStorage.setItem(\n cookieConsentLocalStorageKey,\n JSON.stringify({\n state: 'accepted',\n preferences: { marketing: false, analytics: false }\n })\n )\n }\n }\n}\n\nconst trackCookiePreferences = ({\n preferences,\n variant,\n component,\n context\n}: CookieAnalyticsProps): void => {\n segmentTrack('Cookie Preferences Saved', {\n preferences,\n variant,\n component,\n context\n })\n}\n\nconst manageCookiesClicked = (): void => {\n segmentTrack('Manage Cookies Clicked')\n}\n\nexport {\n actionToCookieConsent,\n trackCookiePreferences,\n manageCookiesClicked,\n Context,\n Component\n}\n","// @noflow\nimport React, { useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { countryCodeToPrivacyUrl } from '@/utils/countryCodeHelper'\n\nimport type { CookiePreferences } from '@/components/cookie_consent/index'\nimport {\n BaseModalProps,\n Variant\n} from '@/components/shared/CookieConsent/Modals/CookieConsentModal'\nimport {\n Component,\n Context,\n actionToCookieConsent,\n manageCookiesClicked,\n trackCookiePreferences\n} from '@/components/shared/CookieConsent/helpers'\nimport { Action } from '@/components/shared/CookieConsent/types'\n\ntype StrictProps = {\n variant: Variant\n applyPreferences: (preferences: CookiePreferences) => void\n closeBanner?: never\n}\n\ntype StrictModalProps = BaseModalProps\n\nconst copyContext = 'cookie_consent'\n\nconst StrictModal = ({\n variant,\n shippingCountryCode,\n applyPreferences,\n setShowStrictModal,\n handleModalClose\n}: StrictModalProps): JSX.Element => {\n const { t } = useTranslation('shared')\n\n const handleOnDeny = useCallback(() => {\n actionToCookieConsent({ action: Action.Deny, applyPreferences })\n\n manageCookiesClicked()\n\n handleModalClose()\n }, [applyPreferences, handleModalClose])\n\n // Switches to the Manage Modal\n const handleOnManage = useCallback(() => {\n setShowStrictModal(false)\n manageCookiesClicked()\n }, [setShowStrictModal])\n\n const handleOnAcceptAll = useCallback(() => {\n actionToCookieConsent({ action: Action.Accepted, applyPreferences })\n\n trackCookiePreferences({\n preferences: { marketing: true, analytics: true },\n variant,\n component: Component.Modal,\n context: Context.AcceptAll\n })\n\n handleModalClose()\n }, [applyPreferences, handleModalClose, variant])\n\n return (\n <>\n <div className=\"cookie-modal__info\">\n <h2>{t(`${copyContext}.banner.title`)}</h2>\n <p\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: t(`${copyContext}.banner.description_strict`, {\n privacyUrl: countryCodeToPrivacyUrl(shippingCountryCode)\n })\n }}\n />\n </div>\n <div className=\"btn-group\">\n <button\n className=\"btn secondary\"\n type=\"button\"\n onClick={handleOnManage}\n >\n {t(`${copyContext}.banner.manage_btn`)}\n </button>\n <button className=\"btn secondary\" type=\"button\" onClick={handleOnDeny}>\n {t(`${copyContext}.banner.deny_btn`)}\n </button>\n <button\n id=\"cookie-banner-accept-button\"\n data-testid=\"cookie-accept-strict-button\"\n className=\"btn primary\"\n type=\"button\"\n onClick={handleOnAcceptAll}\n >\n {t(`${copyContext}.modal.accept_btn`)}\n </button>\n </div>\n </>\n )\n}\n\nexport default StrictModal\n\nexport { StrictProps }\n","// @noflow\nimport 'intersection-observer'\n\nimport * as Sentry from '@/utils/sentry'\n\nconst { IntersectionObserver } = global\n\nconst dropIntersectionPixel = (): HTMLElement | undefined => {\n const pixel = document.createElement('div')\n pixel.setAttribute('id', 'cookie-intersection-pixel')\n pixel.style.position = 'absolute'\n pixel.style.marginTop = '2000px'\n pixel.style.top = '0'\n if (!document.body) {\n Sentry.captureException('Document body not found for dropIntersectionPixel')\n return\n }\n document.body.appendChild(pixel)\n return pixel\n}\n\nconst checkPixelIntersection = (callback: () => void): void => {\n const pixel = dropIntersectionPixel()\n const observer = new IntersectionObserver(\n (\n entries: Array<IntersectionObserverEntry>,\n observer: IntersectionObserver\n ): void => {\n entries.forEach(function (entry: IntersectionObserverEntry): void {\n if (entry.isIntersecting) {\n callback()\n observer.disconnect()\n }\n })\n }\n )\n if (pixel) {\n observer.observe(pixel)\n }\n}\n\nexport { checkPixelIntersection }\n","'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequire(obj) {\n return obj && obj.__esModule ? obj['default'] : obj;\n}\n\nvar _Motion = require('./Motion');\n\nexports.Motion = _interopRequire(_Motion);\n\nvar _StaggeredMotion = require('./StaggeredMotion');\n\nexports.StaggeredMotion = _interopRequire(_StaggeredMotion);\n\nvar _TransitionMotion = require('./TransitionMotion');\n\nexports.TransitionMotion = _interopRequire(_TransitionMotion);\n\nvar _spring = require('./spring');\n\nexports.spring = _interopRequire(_spring);\n\nvar _presets = require('./presets');\n\nexports.presets = _interopRequire(_presets);\n\nvar _stripStyle = require('./stripStyle');\n\nexports.stripStyle = _interopRequire(_stripStyle); // deprecated, dummy warning function\n\nvar _reorderKeys = require('./reorderKeys');\n\nexports.reorderKeys = _interopRequire(_reorderKeys);","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","var t = t => \"object\" == typeof t && null != t && 1 === t.nodeType,\n e = (t, e) => (!e || \"hidden\" !== t) && \"visible\" !== t && \"clip\" !== t,\n n = (t, n) => {\n if (t.clientHeight < t.scrollHeight || t.clientWidth < t.scrollWidth) {\n var _o = getComputedStyle(t, null);\n\n return e(_o.overflowY, n) || e(_o.overflowX, n) || (t => {\n var e = (t => {\n if (!t.ownerDocument || !t.ownerDocument.defaultView) return null;\n\n try {\n return t.ownerDocument.defaultView.frameElement;\n } catch (t) {\n return null;\n }\n })(t);\n\n return !!e && (e.clientHeight < t.scrollHeight || e.clientWidth < t.scrollWidth);\n })(t);\n }\n\n return !1;\n},\n o = (t, e, n, o, l, r, i, s) => r < t && i > e || r > t && i < e ? 0 : r <= t && s <= n || i >= e && s >= n ? r - t - o : i > e && s < n || r < t && s > n ? i - e + l : 0,\n l = t => {\n var e = t.parentElement;\n return null == e ? t.getRootNode().host || null : e;\n},\n r = (e, r) => {\n var i, s, d, h;\n if (\"undefined\" == typeof document) return [];\n var {\n scrollMode: c,\n block: f,\n inline: u,\n boundary: a,\n skipOverflowHiddenElements: g\n } = r,\n p = \"function\" == typeof a ? a : t => t !== a;\n if (!t(e)) throw new TypeError(\"Invalid target\");\n var m = document.scrollingElement || document.documentElement,\n w = [];\n var W = e;\n\n for (; t(W) && p(W);) {\n if (W = l(W), W === m) {\n w.push(W);\n break;\n }\n\n null != W && W === document.body && n(W) && !n(document.documentElement) || null != W && n(W, g) && w.push(W);\n }\n\n var b = null != (s = null == (i = window.visualViewport) ? void 0 : i.width) ? s : innerWidth,\n H = null != (h = null == (d = window.visualViewport) ? void 0 : d.height) ? h : innerHeight,\n {\n scrollX: y,\n scrollY: M\n } = window,\n {\n height: v,\n width: E,\n top: x,\n right: C,\n bottom: I,\n left: R\n } = e.getBoundingClientRect(),\n {\n top: T,\n right: B,\n bottom: F,\n left: V\n } = (t => {\n var e = window.getComputedStyle(t);\n return {\n top: parseFloat(e.scrollMarginTop) || 0,\n right: parseFloat(e.scrollMarginRight) || 0,\n bottom: parseFloat(e.scrollMarginBottom) || 0,\n left: parseFloat(e.scrollMarginLeft) || 0\n };\n })(e);\n\n var k = \"start\" === f || \"nearest\" === f ? x - T : \"end\" === f ? I + F : x + v / 2 - T + F,\n D = \"center\" === u ? R + E / 2 - V + B : \"end\" === u ? C + B : R - V;\n var L = [];\n\n for (var _t = 0; _t < w.length; _t++) {\n var _e = w[_t],\n {\n height: _n,\n width: _l,\n top: _r,\n right: _i,\n bottom: _s,\n left: _d\n } = _e.getBoundingClientRect();\n\n if (\"if-needed\" === c && x >= 0 && R >= 0 && I <= H && C <= b && x >= _r && I <= _s && R >= _d && C <= _i) return L;\n\n var _h = getComputedStyle(_e),\n _a = parseInt(_h.borderLeftWidth, 10),\n _g = parseInt(_h.borderTopWidth, 10),\n _p = parseInt(_h.borderRightWidth, 10),\n _W = parseInt(_h.borderBottomWidth, 10);\n\n var _T = 0,\n _B = 0;\n\n var _F = \"offsetWidth\" in _e ? _e.offsetWidth - _e.clientWidth - _a - _p : 0,\n _V = \"offsetHeight\" in _e ? _e.offsetHeight - _e.clientHeight - _g - _W : 0,\n S = \"offsetWidth\" in _e ? 0 === _e.offsetWidth ? 0 : _l / _e.offsetWidth : 0,\n X = \"offsetHeight\" in _e ? 0 === _e.offsetHeight ? 0 : _n / _e.offsetHeight : 0;\n\n if (m === _e) _T = \"start\" === f ? k : \"end\" === f ? k - H : \"nearest\" === f ? o(M, M + H, H, _g, _W, M + k, M + k + v, v) : k - H / 2, _B = \"start\" === u ? D : \"center\" === u ? D - b / 2 : \"end\" === u ? D - b : o(y, y + b, b, _a, _p, y + D, y + D + E, E), _T = Math.max(0, _T + M), _B = Math.max(0, _B + y);else {\n _T = \"start\" === f ? k - _r - _g : \"end\" === f ? k - _s + _W + _V : \"nearest\" === f ? o(_r, _s, _n, _g, _W + _V, k, k + v, v) : k - (_r + _n / 2) + _V / 2, _B = \"start\" === u ? D - _d - _a : \"center\" === u ? D - (_d + _l / 2) + _F / 2 : \"end\" === u ? D - _i + _p + _F : o(_d, _i, _l, _a, _p + _F, D, D + E, E);\n var {\n scrollLeft: _t2,\n scrollTop: _h2\n } = _e;\n _T = 0 === X ? 0 : Math.max(0, Math.min(_h2 + _T / X, _e.scrollHeight - _n / X + _V)), _B = 0 === S ? 0 : Math.max(0, Math.min(_t2 + _B / S, _e.scrollWidth - _l / S + _F)), k += _h2 - _T, D += _t2 - _B;\n }\n L.push({\n el: _e,\n top: _T,\n left: _B\n });\n }\n\n return L;\n};\n\nexport { r as compute };","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) {\n if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\");\n return f;\n }\n\n var kind = contextIn.kind,\n key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n\n var _,\n done = false;\n\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n\n for (var p in contextIn) {\n context[p] = p === \"access\" ? {} : contextIn[p];\n }\n\n for (var p in contextIn.access) {\n context.access[p] = contextIn.access[p];\n }\n\n context.addInitializer = function (f) {\n if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\");\n extraInitializers.push(accept(f || null));\n };\n\n var result = (0, decorators[i])(kind === \"accessor\" ? {\n get: descriptor.get,\n set: descriptor.set\n } : descriptor[key], context);\n\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n } else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);else descriptor[key] = _;\n }\n }\n\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n}\n;\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n\n return useValue ? value : void 0;\n}\n;\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n}\n;\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", {\n configurable: true,\n value: prefix ? \"\".concat(prefix, \" \", name) : name\n });\n}\n;\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (g && (g = 0, op[0] && (_ = 0)), _) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n };\n }\n\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function awaitReturn(f) {\n return function (v) {\n return Promise.resolve(v).then(f, reject);\n };\n }\n\n function verb(n, f) {\n if (g[n]) {\n i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n\n if (f) i[n] = f(i[n]);\n }\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: false\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || typeof receiver !== \"object\" && typeof receiver !== \"function\") throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function dispose() {\n try {\n inner.call(this);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n env.stack.push({\n value: value,\n dispose: dispose,\n async: async\n });\n } else if (async) {\n env.stack.push({\n async: true\n });\n }\n\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n\n var r,\n s = 0;\n\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function (e) {\n fail(e);\n return next();\n });\n } else s |= 1;\n } catch (e) {\n fail(e);\n }\n }\n\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n\n return next();\n}\nexport default {\n __extends: __extends,\n __assign: _assign,\n __rest: __rest,\n __decorate: __decorate,\n __param: __param,\n __metadata: __metadata,\n __awaiter: __awaiter,\n __generator: __generator,\n __createBinding: __createBinding,\n __exportStar: __exportStar,\n __values: __values,\n __read: __read,\n __spread: __spread,\n __spreadArrays: __spreadArrays,\n __spreadArray: __spreadArray,\n __await: __await,\n __asyncGenerator: __asyncGenerator,\n __asyncDelegator: __asyncDelegator,\n __asyncValues: __asyncValues,\n __makeTemplateObject: __makeTemplateObject,\n __importStar: __importStar,\n __importDefault: __importDefault,\n __classPrivateFieldGet: __classPrivateFieldGet,\n __classPrivateFieldSet: __classPrivateFieldSet,\n __classPrivateFieldIn: __classPrivateFieldIn,\n __addDisposableResource: __addDisposableResource,\n __disposeResources: __disposeResources\n};","import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport React, { cloneElement, Component, useRef, useEffect, useLayoutEffect, useCallback, useReducer, useMemo } from 'react';\nimport { isForwardRef } from 'react-is';\nimport { compute } from 'compute-scroll-into-view';\nimport { __assign } from 'tslib';\nvar idCounter = 0;\n/**\n * Accepts a parameter and returns it if it's a function\n * or a noop function if it's not. This allows us to\n * accept a callback, but not worry about it if it's not\n * passed.\n * @param {Function} cb the callback\n * @return {Function} a function\n */\n\nfunction cbToCb(cb) {\n return typeof cb === 'function' ? cb : noop;\n}\n\nfunction noop() {}\n/**\n * Scroll node into view if necessary\n * @param {HTMLElement} node the element that should scroll into view\n * @param {HTMLElement} menuNode the menu element of the component\n */\n\n\nfunction scrollIntoView(node, menuNode) {\n if (!node) {\n return;\n }\n\n var actions = compute(node, {\n boundary: menuNode,\n block: 'nearest',\n scrollMode: 'if-needed'\n });\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n el.scrollTop = top;\n el.scrollLeft = left;\n });\n}\n/**\n * @param {HTMLElement} parent the parent node\n * @param {HTMLElement} child the child node\n * @param {Window} environment The window context where downshift renders.\n * @return {Boolean} whether the parent is the child or the child is in the parent\n */\n\n\nfunction isOrContainsNode(parent, child, environment) {\n var result = parent === child || child instanceof environment.Node && parent.contains && parent.contains(child);\n return result;\n}\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\n\n\nfunction debounce(fn, time) {\n var timeoutId;\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n\n function wrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n cancel();\n timeoutId = setTimeout(function () {\n timeoutId = null;\n fn.apply(void 0, args);\n }, time);\n }\n\n wrapper.cancel = cancel;\n return wrapper;\n}\n/**\n * This is intended to be used to compose event handlers.\n * They are executed in order until one of them sets\n * `event.preventDownshiftDefault = true`.\n * @param {...Function} fns the event handler functions\n * @return {Function} the event handler to add to an element\n */\n\n\nfunction callAllEventHandlers() {\n for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n fns[_key2] = arguments[_key2];\n }\n\n return function (event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return fns.some(function (fn) {\n if (fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;\n });\n };\n}\n\nfunction handleRefs() {\n for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n refs[_key4] = arguments[_key4];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n });\n };\n}\n/**\n * This generates a unique ID for an instance of Downshift\n * @return {String} the unique ID\n */\n\n\nfunction generateId() {\n return String(idCounter++);\n}\n/**\n * Resets idCounter to 0. Used for SSR.\n */\n\n\nfunction resetIdCounter() {\n // istanbul ignore next\n if ('useId' in React) {\n console.warn(\"It is not necessary to call resetIdCounter when using React 18+\");\n return;\n }\n\n idCounter = 0;\n}\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specify if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\n\n\nfunction getA11yStatusMessage(_ref2) {\n var isOpen = _ref2.isOpen,\n resultCount = _ref2.resultCount,\n previousResultCount = _ref2.previousResultCount;\n\n if (!isOpen) {\n return '';\n }\n\n if (!resultCount) {\n return 'No results are available.';\n }\n\n if (resultCount !== previousResultCount) {\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter key to select.\";\n }\n\n return '';\n}\n/**\n * Takes an argument and if it's an array, returns the first item in the array\n * otherwise returns the argument\n * @param {*} arg the maybe-array\n * @param {*} defaultValue the value if arg is falsey not defined\n * @return {*} the arg or it's first item\n */\n\n\nfunction unwrapArray(arg, defaultValue) {\n arg = Array.isArray(arg) ?\n /* istanbul ignore next (preact) */\n arg[0] : arg;\n\n if (!arg && defaultValue) {\n return defaultValue;\n } else {\n return arg;\n }\n}\n/**\n * @param {Object} element (P)react element\n * @return {Boolean} whether it's a DOM element\n */\n\n\nfunction isDOMElement(element) {\n // then we assume this is react\n return typeof element.type === 'string';\n}\n/**\n * @param {Object} element (P)react element\n * @return {Object} the props\n */\n\n\nfunction getElementProps(element) {\n return element.props;\n}\n/**\n * Throws a helpful error message for required properties. Useful\n * to be used as a default in destructuring or object params.\n * @param {String} fnName the function name\n * @param {String} propName the prop name\n */\n\n\nfunction requiredProp(fnName, propName) {\n // eslint-disable-next-line no-console\n console.error(\"The property \\\"\" + propName + \"\\\" is required in \\\"\" + fnName + \"\\\"\");\n}\n\nvar stateKeys = ['highlightedIndex', 'inputValue', 'isOpen', 'selectedItem', 'type'];\n/**\n * @param {Object} state the state object\n * @return {Object} state that is relevant to downshift\n */\n\nfunction pickState(state) {\n if (state === void 0) {\n state = {};\n }\n\n var result = {};\n stateKeys.forEach(function (k) {\n if (state.hasOwnProperty(k)) {\n result[k] = state[k];\n }\n });\n return result;\n}\n/**\n * This will perform a shallow merge of the given state object\n * with the state coming from props\n * (for the controlled component scenario)\n * This is used in state updater functions so they're referencing\n * the right state regardless of where it comes from.\n *\n * @param {Object} state The state of the component/hook.\n * @param {Object} props The props that may contain controlled values.\n * @returns {Object} The merged controlled state.\n */\n\n\nfunction getState(state, props) {\n if (!state || !props) {\n return state;\n }\n\n return Object.keys(state).reduce(function (prevState, key) {\n prevState[key] = isControlledProp(props, key) ? props[key] : state[key];\n return prevState;\n }, {});\n}\n/**\n * This determines whether a prop is a \"controlled prop\" meaning it is\n * state which is controlled by the outside of this component rather\n * than within this component.\n *\n * @param {Object} props The props that may contain controlled values.\n * @param {String} key the key to check\n * @return {Boolean} whether it is a controlled controlled prop\n */\n\n\nfunction isControlledProp(props, key) {\n return props[key] !== undefined;\n}\n/**\n * Normalizes the 'key' property of a KeyboardEvent in IE/Edge\n * @param {Object} event a keyboardEvent object\n * @return {String} keyboard key\n */\n\n\nfunction normalizeArrowKey(event) {\n var key = event.key,\n keyCode = event.keyCode;\n /* istanbul ignore next (ie) */\n\n if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {\n return \"Arrow\" + key;\n }\n\n return key;\n}\n/**\n * Simple check if the value passed is object literal\n * @param {*} obj any things\n * @return {Boolean} whether it's object literal\n */\n\n\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n/**\n * Returns the next non-disabled highlightedIndex value.\n *\n * @param {number} start The current highlightedIndex.\n * @param {number} offset The offset from the current highlightedIndex to start searching.\n * @param {unknown[]} items The items array.\n * @param {(item: unknown, index: number) => boolean} isItemDisabled Function that tells if an item is disabled or not.\n * @param {boolean?} circular If the search reaches the end, if it can search again starting from the other end.\n * @returns {number} The next highlightedIndex.\n */\n\n\nfunction getHighlightedIndex(start, offset, items, isItemDisabled, circular) {\n if (circular === void 0) {\n circular = false;\n }\n\n var count = items.length;\n\n if (count === 0) {\n return -1;\n }\n\n var itemsLastIndex = count - 1;\n\n if (typeof start !== 'number' || start < 0 || start > itemsLastIndex) {\n start = offset > 0 ? -1 : itemsLastIndex + 1;\n }\n\n var current = start + offset;\n\n if (current < 0) {\n current = circular ? itemsLastIndex : 0;\n } else if (current > itemsLastIndex) {\n current = circular ? 0 : itemsLastIndex;\n }\n\n var highlightedIndex = getNonDisabledIndex(current, offset < 0, items, isItemDisabled, circular);\n\n if (highlightedIndex === -1) {\n return start >= count ? -1 : start;\n }\n\n return highlightedIndex;\n}\n/**\n * Returns the next non-disabled highlightedIndex value.\n *\n * @param {number} start The current highlightedIndex.\n * @param {boolean} backwards If true, it will search backwards from the start.\n * @param {unknown[]} items The items array.\n * @param {(item: unknown, index: number) => boolean} isItemDisabled Function that tells if an item is disabled or not.\n * @param {boolean} circular If the search reaches the end, if it can search again starting from the other end.\n * @returns {number} The next non-disabled index.\n */\n\n\nfunction getNonDisabledIndex(start, backwards, items, isItemDisabled, circular) {\n if (circular === void 0) {\n circular = false;\n }\n\n var count = items.length;\n\n if (backwards) {\n for (var index = start; index >= 0; index--) {\n if (!isItemDisabled(items[index], index)) {\n return index;\n }\n }\n } else {\n for (var _index = start; _index < count; _index++) {\n if (!isItemDisabled(items[_index], _index)) {\n return _index;\n }\n }\n }\n\n if (circular) {\n return getNonDisabledIndex(backwards ? count - 1 : 0, backwards, items, isItemDisabled);\n }\n\n return -1;\n}\n/**\n * Checks if event target is within the downshift elements.\n *\n * @param {EventTarget} target Target to check.\n * @param {HTMLElement[]} downshiftElements The elements that form downshift (list, toggle button etc).\n * @param {Window} environment The window context where downshift renders.\n * @param {boolean} checkActiveElement Whether to also check activeElement.\n *\n * @returns {boolean} Whether or not the target is within downshift elements.\n */\n\n\nfunction targetWithinDownshift(target, downshiftElements, environment, checkActiveElement) {\n if (checkActiveElement === void 0) {\n checkActiveElement = true;\n }\n\n return environment && downshiftElements.some(function (contextNode) {\n return contextNode && (isOrContainsNode(contextNode, target, environment) || checkActiveElement && isOrContainsNode(contextNode, environment.document.activeElement, environment));\n });\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nvar validateControlledUnchanged = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged = function validateControlledUnchanged(state, prevProps, nextProps) {\n var warningDescription = \"This prop should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled Downshift element for the lifetime of the component. More info: https://github.com/downshift-js/downshift#control-props\";\n Object.keys(state).forEach(function (propKey) {\n if (prevProps[propKey] !== undefined && nextProps[propKey] === undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the controlled prop \\\"\" + propKey + \"\\\" to be uncontrolled. \" + warningDescription);\n } else if (prevProps[propKey] === undefined && nextProps[propKey] !== undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the uncontrolled prop \\\"\" + propKey + \"\\\" to be controlled. \" + warningDescription);\n }\n });\n };\n}\n\nvar cleanupStatus = debounce(function (documentProp) {\n getStatusDiv(documentProp).textContent = '';\n}, 500);\n/**\n * Get the status node or create it if it does not already exist.\n * @param {Object} documentProp document passed by the user.\n * @return {HTMLElement} the status node.\n */\n\nfunction getStatusDiv(documentProp) {\n var statusDiv = documentProp.getElementById('a11y-status-message');\n\n if (statusDiv) {\n return statusDiv;\n }\n\n statusDiv = documentProp.createElement('div');\n statusDiv.setAttribute('id', 'a11y-status-message');\n statusDiv.setAttribute('role', 'status');\n statusDiv.setAttribute('aria-live', 'polite');\n statusDiv.setAttribute('aria-relevant', 'additions text');\n Object.assign(statusDiv.style, {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px'\n });\n documentProp.body.appendChild(statusDiv);\n return statusDiv;\n}\n/**\n * @param {String} status the status message\n * @param {Object} documentProp document passed by the user.\n */\n\n\nfunction setStatus(status, documentProp) {\n if (!status || !documentProp) {\n return;\n }\n\n var div = getStatusDiv(documentProp);\n div.textContent = status;\n cleanupStatus(documentProp);\n}\n/**\n * Removes the status element from the DOM\n * @param {Document} documentProp \n */\n\n\nfunction cleanupStatusDiv(documentProp) {\n var statusDiv = documentProp == null ? void 0 : documentProp.getElementById('a11y-status-message');\n\n if (statusDiv) {\n statusDiv.remove();\n }\n}\n\nvar unknown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_unknown__' : 0;\nvar mouseUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_mouseup__' : 1;\nvar itemMouseEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_item_mouseenter__' : 2;\nvar keyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_up__' : 3;\nvar keyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_down__' : 4;\nvar keyDownEscape = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_escape__' : 5;\nvar keyDownEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_enter__' : 6;\nvar keyDownHome = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_home__' : 7;\nvar keyDownEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_end__' : 8;\nvar clickItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_item__' : 9;\nvar blurInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_input__' : 10;\nvar changeInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_change_input__' : 11;\nvar keyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_space_button__' : 12;\nvar clickButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_button__' : 13;\nvar blurButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_button__' : 14;\nvar controlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_controlled_prop_updated_selected_item__' : 15;\nvar touchEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_touchend__' : 16;\nvar stateChangeTypes$3 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n blurButton: blurButton,\n blurInput: blurInput,\n changeInput: changeInput,\n clickButton: clickButton,\n clickItem: clickItem,\n controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,\n itemMouseEnter: itemMouseEnter,\n keyDownArrowDown: keyDownArrowDown,\n keyDownArrowUp: keyDownArrowUp,\n keyDownEnd: keyDownEnd,\n keyDownEnter: keyDownEnter,\n keyDownEscape: keyDownEscape,\n keyDownHome: keyDownHome,\n keyDownSpaceButton: keyDownSpaceButton,\n mouseUp: mouseUp,\n touchEnd: touchEnd,\n unknown: unknown\n});\nvar _excluded$3 = [\"refKey\", \"ref\"],\n _excluded2$3 = [\"onClick\", \"onPress\", \"onKeyDown\", \"onKeyUp\", \"onBlur\"],\n _excluded3$2 = [\"onKeyDown\", \"onBlur\", \"onChange\", \"onInput\", \"onChangeText\"],\n _excluded4$2 = [\"refKey\", \"ref\"],\n _excluded5 = [\"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"index\", \"item\"];\n\nvar Downshift = /*#__PURE__*/function () {\n var Downshift = /*#__PURE__*/function (_Component) {\n function Downshift(_props) {\n var _this;\n\n _this = _Component.call(this, _props) || this; // fancy destructuring + defaults + aliases\n // this basically says each value of state should either be set to\n // the initial value or the default value if the initial value is not provided\n\n _this.id = _this.props.id || \"downshift-\" + generateId();\n _this.menuId = _this.props.menuId || _this.id + \"-menu\";\n _this.labelId = _this.props.labelId || _this.id + \"-label\";\n _this.inputId = _this.props.inputId || _this.id + \"-input\";\n\n _this.getItemId = _this.props.getItemId || function (index) {\n return _this.id + \"-item-\" + index;\n };\n\n _this.items = []; // itemCount can be changed asynchronously\n // from within downshift (so it can't come from a prop)\n // this is why we store it as an instance and use\n // getItemCount rather than just use items.length\n // (to support windowing + async)\n\n _this.itemCount = null;\n _this.previousResultCount = 0;\n _this.timeoutIds = [];\n /**\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n */\n\n _this.internalSetTimeout = function (fn, time) {\n var id = setTimeout(function () {\n _this.timeoutIds = _this.timeoutIds.filter(function (i) {\n return i !== id;\n });\n fn();\n }, time);\n\n _this.timeoutIds.push(id);\n };\n\n _this.setItemCount = function (count) {\n _this.itemCount = count;\n };\n\n _this.unsetItemCount = function () {\n _this.itemCount = null;\n };\n\n _this.isItemDisabled = function (_item, index) {\n var currentElementNode = _this.getItemNodeFromIndex(index);\n\n return currentElementNode && currentElementNode.hasAttribute('disabled');\n };\n\n _this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {\n if (highlightedIndex === void 0) {\n highlightedIndex = _this.props.defaultHighlightedIndex;\n }\n\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n highlightedIndex: highlightedIndex\n }, otherStateToSet));\n };\n\n _this.clearSelection = function (cb) {\n _this.internalSetState({\n selectedItem: null,\n inputValue: '',\n highlightedIndex: _this.props.defaultHighlightedIndex,\n isOpen: _this.props.defaultIsOpen\n }, cb);\n };\n\n _this.selectItem = function (item, otherStateToSet, cb) {\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n selectedItem: item,\n inputValue: _this.props.itemToString(item)\n }, otherStateToSet), cb);\n };\n\n _this.selectItemAtIndex = function (itemIndex, otherStateToSet, cb) {\n var item = _this.items[itemIndex];\n\n if (item == null) {\n return;\n }\n\n _this.selectItem(item, otherStateToSet, cb);\n };\n\n _this.selectHighlightedItem = function (otherStateToSet, cb) {\n return _this.selectItemAtIndex(_this.getState().highlightedIndex, otherStateToSet, cb);\n }; // any piece of our state can live in two places:\n // 1. Uncontrolled: it's internal (this.state)\n // We will call this.setState to update that state\n // 2. Controlled: it's external (this.props)\n // We will call this.props.onStateChange to update that state\n //\n // In addition, we'll call this.props.onChange if the\n // selectedItem is changed.\n\n\n _this.internalSetState = function (stateToSet, cb) {\n var isItemSelected, onChangeArg;\n var onStateChangeArg = {};\n var isStateToSetFunction = typeof stateToSet === 'function'; // we want to call `onInputValueChange` before the `setState` call\n // so someone controlling the `inputValue` state gets notified of\n // the input change as soon as possible. This avoids issues with\n // preserving the cursor position.\n // See https://github.com/downshift-js/downshift/issues/217 for more info.\n\n if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(stateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), stateToSet));\n }\n\n return _this.setState(function (state) {\n var _newStateToSet;\n\n state = _this.getState(state);\n var newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet; // Your own function that could modify the state that will be set.\n\n newStateToSet = _this.props.stateReducer(state, newStateToSet); // checks if an item is selected, regardless of if it's different from\n // what was selected before\n // used to determine if onSelect and onChange callbacks should be called\n\n isItemSelected = newStateToSet.hasOwnProperty('selectedItem'); // this keeps track of the object we want to call with setState\n\n var nextState = {}; // we need to call on change if the outside world is controlling any of our state\n // and we're trying to update that state. OR if the selection has changed and we're\n // trying to update the selection\n\n if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {\n onChangeArg = newStateToSet.selectedItem;\n }\n\n (_newStateToSet = newStateToSet).type || (_newStateToSet.type = unknown);\n Object.keys(newStateToSet).forEach(function (key) {\n // onStateChangeArg should only have the state that is\n // actually changing\n if (state[key] !== newStateToSet[key]) {\n onStateChangeArg[key] = newStateToSet[key];\n } // the type is useful for the onStateChangeArg\n // but we don't actually want to set it in internal state.\n // this is an undocumented feature for now... Not all internalSetState\n // calls support it and I'm not certain we want them to yet.\n // But it enables users controlling the isOpen state to know when\n // the isOpen state changes due to mouseup events which is quite handy.\n\n\n if (key === 'type') {\n return;\n }\n\n newStateToSet[key]; // if it's coming from props, then we don't care to set it internally\n\n if (!isControlledProp(_this.props, key)) {\n nextState[key] = newStateToSet[key];\n }\n }); // if stateToSet is a function, then we weren't able to call onInputValueChange\n // earlier, so we'll call it now that we know what the inputValue state will be.\n\n if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(newStateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), newStateToSet));\n }\n\n return nextState;\n }, function () {\n // call the provided callback if it's a function\n cbToCb(cb)(); // only call the onStateChange and onChange callbacks if\n // we have relevant information to pass them.\n\n var hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;\n\n if (hasMoreStateThanType) {\n _this.props.onStateChange(onStateChangeArg, _this.getStateAndHelpers());\n }\n\n if (isItemSelected) {\n _this.props.onSelect(stateToSet.selectedItem, _this.getStateAndHelpers());\n }\n\n if (onChangeArg !== undefined) {\n _this.props.onChange(onChangeArg, _this.getStateAndHelpers());\n } // this is currently undocumented and therefore subject to change\n // We'll try to not break it, but just be warned.\n\n\n _this.props.onUserAction(onStateChangeArg, _this.getStateAndHelpers());\n });\n }; //////////////////////////// ROOT\n\n\n _this.rootRef = function (node) {\n return _this._rootNode = node;\n };\n\n _this.getRootProps = function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro; // this is used in the render to know whether the user has called getRootProps.\n // It uses that to know whether to apply the props automatically\n\n\n _this.getRootProps.called = true;\n _this.getRootProps.refKey = refKey;\n _this.getRootProps.suppressRefError = suppressRefError;\n\n var _this$getState = _this.getState(),\n isOpen = _this$getState.isOpen;\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, _this.rootRef), _extends2.role = 'combobox', _extends2['aria-expanded'] = isOpen, _extends2['aria-haspopup'] = 'listbox', _extends2['aria-owns'] = isOpen ? _this.menuId : undefined, _extends2['aria-labelledby'] = _this.labelId, _extends2), rest);\n }; //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ROOT\n\n\n _this.keyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n var _this2 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? 5 : 1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowDown\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowDown\n }, function () {\n var itemCount = _this2.getItemCount();\n\n if (itemCount > 0) {\n var _this2$getState = _this2.getState(),\n highlightedIndex = _this2$getState.highlightedIndex;\n\n var nextHighlightedIndex = getHighlightedIndex(highlightedIndex, 1, {\n length: itemCount\n }, _this2.isItemDisabled, true);\n\n _this2.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowDown\n });\n }\n });\n }\n },\n ArrowUp: function ArrowUp(event) {\n var _this3 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? -5 : -1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowUp\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowUp\n }, function () {\n var itemCount = _this3.getItemCount();\n\n if (itemCount > 0) {\n var _this3$getState = _this3.getState(),\n highlightedIndex = _this3$getState.highlightedIndex;\n\n var nextHighlightedIndex = getHighlightedIndex(highlightedIndex, -1, {\n length: itemCount\n }, _this3.isItemDisabled, true);\n\n _this3.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowUp\n });\n }\n });\n }\n },\n Enter: function Enter(event) {\n if (event.which === 229) {\n return;\n }\n\n var _this$getState2 = this.getState(),\n isOpen = _this$getState2.isOpen,\n highlightedIndex = _this$getState2.highlightedIndex;\n\n if (isOpen && highlightedIndex != null) {\n event.preventDefault();\n var item = this.items[highlightedIndex];\n var itemNode = this.getItemNodeFromIndex(highlightedIndex);\n\n if (item == null || itemNode && itemNode.hasAttribute('disabled')) {\n return;\n }\n\n this.selectHighlightedItem({\n type: keyDownEnter\n });\n }\n },\n Escape: function Escape(event) {\n event.preventDefault();\n this.reset(_extends({\n type: keyDownEscape\n }, !this.state.isOpen && {\n selectedItem: null,\n inputValue: ''\n }));\n }\n }; //////////////////////////// BUTTON\n\n _this.buttonKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n ' ': function _(event) {\n event.preventDefault();\n this.toggleMenu({\n type: keyDownSpaceButton\n });\n }\n });\n _this.inputKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n Home: function Home(event) {\n var _this$getState3 = this.getState(),\n isOpen = _this$getState3.isOpen;\n\n if (!isOpen) {\n return;\n }\n\n event.preventDefault();\n var itemCount = this.getItemCount();\n\n if (itemCount <= 0 || !isOpen) {\n return;\n } // get next non-disabled starting downwards from 0 if that's disabled.\n\n\n var newHighlightedIndex = getNonDisabledIndex(0, false, {\n length: itemCount\n }, this.isItemDisabled);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownHome\n });\n },\n End: function End(event) {\n var _this$getState4 = this.getState(),\n isOpen = _this$getState4.isOpen;\n\n if (!isOpen) {\n return;\n }\n\n event.preventDefault();\n var itemCount = this.getItemCount();\n\n if (itemCount <= 0 || !isOpen) {\n return;\n } // get next non-disabled starting upwards from last index if that's disabled.\n\n\n var newHighlightedIndex = getNonDisabledIndex(itemCount - 1, true, {\n length: itemCount\n }, this.isItemDisabled);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownEnd\n });\n }\n });\n\n _this.getToggleButtonProps = function (_temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n onClick = _ref3.onClick;\n\n _ref3.onPress;\n\n var onKeyDown = _ref3.onKeyDown,\n onKeyUp = _ref3.onKeyUp,\n onBlur = _ref3.onBlur,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$3);\n\n var _this$getState5 = _this.getState(),\n isOpen = _this$getState5.isOpen;\n\n var enabledEventHandlers = {\n onClick: callAllEventHandlers(onClick, _this.buttonHandleClick),\n onKeyDown: callAllEventHandlers(onKeyDown, _this.buttonHandleKeyDown),\n onKeyUp: callAllEventHandlers(onKeyUp, _this.buttonHandleKeyUp),\n onBlur: callAllEventHandlers(onBlur, _this.buttonHandleBlur)\n };\n var eventHandlers = rest.disabled ? {} : enabledEventHandlers;\n return _extends({\n type: 'button',\n role: 'button',\n 'aria-label': isOpen ? 'close menu' : 'open menu',\n 'aria-haspopup': true,\n 'data-toggle': true\n }, eventHandlers, rest);\n };\n\n _this.buttonHandleKeyUp = function (event) {\n // Prevent click event from emitting in Firefox\n event.preventDefault();\n };\n\n _this.buttonHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (_this.buttonKeyDownHandlers[key]) {\n _this.buttonKeyDownHandlers[key].call(_this, event);\n }\n };\n\n _this.buttonHandleClick = function (event) {\n event.preventDefault(); // handle odd case for Safari and Firefox which\n // don't give the button the focus properly.\n\n /* istanbul ignore if (can't reasonably test this) */\n\n if (_this.props.environment) {\n var _this$props$environme = _this.props.environment.document,\n body = _this$props$environme.body,\n activeElement = _this$props$environme.activeElement;\n\n if (body && body === activeElement) {\n event.target.focus();\n }\n } // to simplify testing components that use downshift, we'll not wrap this in a setTimeout\n // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated\n // when building for production and should therefore have no impact on production code.\n\n\n if (process.env.NODE_ENV === 'test') {\n _this.toggleMenu({\n type: clickButton\n });\n } else {\n // Ensure that toggle of menu occurs after the potential blur event in iOS\n _this.internalSetTimeout(function () {\n return _this.toggleMenu({\n type: clickButton\n });\n });\n }\n };\n\n _this.buttonHandleBlur = function (event) {\n var blurTarget = event.target; // Save blur target for comparison with activeElement later\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element\n\n _this.internalSetTimeout(function () {\n if (_this.isMouseDown || !_this.props.environment) {\n return;\n }\n\n var activeElement = _this.props.environment.document.activeElement;\n\n if ((activeElement == null || activeElement.id !== _this.inputId) && activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)\n ) {\n _this.reset({\n type: blurButton\n });\n }\n });\n }; //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ BUTTON\n /////////////////////////////// LABEL\n\n\n _this.getLabelProps = function (props) {\n return _extends({\n htmlFor: _this.inputId,\n id: _this.labelId\n }, props);\n }; //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ LABEL\n /////////////////////////////// INPUT\n\n\n _this.getInputProps = function (_temp4) {\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n onKeyDown = _ref4.onKeyDown,\n onBlur = _ref4.onBlur,\n onChange = _ref4.onChange,\n onInput = _ref4.onInput;\n\n _ref4.onChangeText;\n\n var rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$2);\n\n var onChangeKey;\n var eventHandlers = {};\n /* istanbul ignore next (preact) */\n\n {\n onChangeKey = 'onChange';\n }\n\n var _this$getState6 = _this.getState(),\n inputValue = _this$getState6.inputValue,\n isOpen = _this$getState6.isOpen,\n highlightedIndex = _this$getState6.highlightedIndex;\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, _this.inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, _this.inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, _this.inputHandleBlur), _eventHandlers);\n }\n\n return _extends({\n 'aria-autocomplete': 'list',\n 'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : undefined,\n 'aria-controls': isOpen ? _this.menuId : undefined,\n 'aria-labelledby': rest && rest['aria-label'] ? undefined : _this.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: inputValue,\n id: _this.inputId\n }, eventHandlers, rest);\n };\n\n _this.inputHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (key && _this.inputKeyDownHandlers[key]) {\n _this.inputKeyDownHandlers[key].call(_this, event);\n }\n };\n\n _this.inputHandleChange = function (event) {\n _this.internalSetState({\n type: changeInput,\n isOpen: true,\n inputValue: event.target.value,\n highlightedIndex: _this.props.defaultHighlightedIndex\n });\n };\n\n _this.inputHandleBlur = function () {\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element\n _this.internalSetTimeout(function () {\n var _activeElement$datase;\n\n if (_this.isMouseDown || !_this.props.environment) {\n return;\n }\n\n var activeElement = _this.props.environment.document.activeElement;\n\n var downshiftButtonIsActive = (activeElement == null || (_activeElement$datase = activeElement.dataset) == null ? void 0 : _activeElement$datase.toggle) && _this._rootNode && _this._rootNode.contains(activeElement);\n\n if (!downshiftButtonIsActive) {\n _this.reset({\n type: blurInput\n });\n }\n });\n }; //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ INPUT\n /////////////////////////////// MENU\n\n\n _this.menuRef = function (node) {\n _this._menuNode = node;\n };\n\n _this.getMenuProps = function (_temp5, _temp6) {\n var _extends3;\n\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n props = _objectWithoutPropertiesLoose(_ref5, _excluded4$2);\n\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n _ref6$suppressRefErro = _ref6.suppressRefError,\n suppressRefError = _ref6$suppressRefErro === void 0 ? false : _ref6$suppressRefErro;\n\n _this.getMenuProps.called = true;\n _this.getMenuProps.refKey = refKey;\n _this.getMenuProps.suppressRefError = suppressRefError;\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, _this.menuRef), _extends3.role = 'listbox', _extends3['aria-labelledby'] = props && props['aria-label'] ? undefined : _this.labelId, _extends3.id = _this.menuId, _extends3), props);\n }; //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ MENU\n /////////////////////////////// ITEM\n\n\n _this.getItemProps = function (_temp7) {\n var _enabledEventHandlers;\n\n var _ref7 = _temp7 === void 0 ? {} : _temp7,\n onMouseMove = _ref7.onMouseMove,\n onMouseDown = _ref7.onMouseDown,\n onClick = _ref7.onClick;\n\n _ref7.onPress;\n\n var index = _ref7.index,\n _ref7$item = _ref7.item,\n item = _ref7$item === void 0 ? process.env.NODE_ENV === 'production' ?\n /* istanbul ignore next */\n undefined : requiredProp('getItemProps', 'item') : _ref7$item,\n rest = _objectWithoutPropertiesLoose(_ref7, _excluded5);\n\n if (index === undefined) {\n _this.items.push(item);\n\n index = _this.items.indexOf(item);\n } else {\n _this.items[index] = item;\n }\n\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n var enabledEventHandlers = (_enabledEventHandlers = {\n // onMouseMove is used over onMouseEnter here. onMouseMove\n // is only triggered on actual mouse movement while onMouseEnter\n // can fire on DOM changes, interrupting keyboard navigation\n onMouseMove: callAllEventHandlers(onMouseMove, function () {\n if (index === _this.getState().highlightedIndex) {\n return;\n }\n\n _this.setHighlightedIndex(index, {\n type: itemMouseEnter\n }); // We never want to manually scroll when changing state based\n // on `onMouseMove` because we will be moving the element out\n // from under the user which is currently scrolling/moving the\n // cursor\n\n\n _this.avoidScrolling = true;\n\n _this.internalSetTimeout(function () {\n return _this.avoidScrolling = false;\n }, 250);\n }),\n onMouseDown: callAllEventHandlers(onMouseDown, function (event) {\n // This prevents the activeElement from being changed\n // to the item so it can remain with the current activeElement\n // which is a more common use case.\n event.preventDefault();\n })\n }, _enabledEventHandlers[onSelectKey] = callAllEventHandlers(customClickHandler, function () {\n _this.selectItemAtIndex(index, {\n type: clickItem\n });\n }), _enabledEventHandlers); // Passing down the onMouseDown handler to prevent redirect\n // of the activeElement if clicking on disabled items\n\n var eventHandlers = rest.disabled ? {\n onMouseDown: enabledEventHandlers.onMouseDown\n } : enabledEventHandlers;\n return _extends({\n id: _this.getItemId(index),\n role: 'option',\n 'aria-selected': _this.getState().highlightedIndex === index\n }, eventHandlers, rest);\n }; //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ITEM\n\n\n _this.clearItems = function () {\n _this.items = [];\n };\n\n _this.reset = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref8) {\n var selectedItem = _ref8.selectedItem;\n return _extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n inputValue: _this.props.itemToString(selectedItem)\n }, otherStateToSet);\n }, cb);\n };\n\n _this.toggleMenu = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref9) {\n var isOpen = _ref9.isOpen;\n return _extends({\n isOpen: !isOpen\n }, isOpen && {\n highlightedIndex: _this.props.defaultHighlightedIndex\n }, otherStateToSet);\n }, function () {\n var _this$getState7 = _this.getState(),\n isOpen = _this$getState7.isOpen,\n highlightedIndex = _this$getState7.highlightedIndex;\n\n if (isOpen) {\n if (_this.getItemCount() > 0 && typeof highlightedIndex === 'number') {\n _this.setHighlightedIndex(highlightedIndex, otherStateToSet);\n }\n }\n\n cbToCb(cb)();\n });\n };\n\n _this.openMenu = function (cb) {\n _this.internalSetState({\n isOpen: true\n }, cb);\n };\n\n _this.closeMenu = function (cb) {\n _this.internalSetState({\n isOpen: false\n }, cb);\n };\n\n _this.updateStatus = debounce(function () {\n var _this$props;\n\n if (!((_this$props = _this.props) != null && (_this$props = _this$props.environment) != null && _this$props.document)) {\n return;\n }\n\n var state = _this.getState();\n\n var item = _this.items[state.highlightedIndex];\n\n var resultCount = _this.getItemCount();\n\n var status = _this.props.getA11yStatusMessage(_extends({\n itemToString: _this.props.itemToString,\n previousResultCount: _this.previousResultCount,\n resultCount: resultCount,\n highlightedItem: item\n }, state));\n\n _this.previousResultCount = resultCount;\n setStatus(status, _this.props.environment.document);\n }, 200);\n\n var _this$props2 = _this.props,\n defaultHighlightedIndex = _this$props2.defaultHighlightedIndex,\n _this$props2$initialH = _this$props2.initialHighlightedIndex,\n _highlightedIndex = _this$props2$initialH === void 0 ? defaultHighlightedIndex : _this$props2$initialH,\n defaultIsOpen = _this$props2.defaultIsOpen,\n _this$props2$initialI = _this$props2.initialIsOpen,\n _isOpen = _this$props2$initialI === void 0 ? defaultIsOpen : _this$props2$initialI,\n _this$props2$initialI2 = _this$props2.initialInputValue,\n _inputValue = _this$props2$initialI2 === void 0 ? '' : _this$props2$initialI2,\n _this$props2$initialS = _this$props2.initialSelectedItem,\n _selectedItem = _this$props2$initialS === void 0 ? null : _this$props2$initialS;\n\n var _state = _this.getState({\n highlightedIndex: _highlightedIndex,\n isOpen: _isOpen,\n inputValue: _inputValue,\n selectedItem: _selectedItem\n });\n\n if (_state.selectedItem != null && _this.props.initialInputValue === undefined) {\n _state.inputValue = _this.props.itemToString(_state.selectedItem);\n }\n\n _this.state = _state;\n return _this;\n }\n\n _inheritsLoose(Downshift, _Component);\n\n var _proto = Downshift.prototype;\n /**\n * Clear all running timeouts\n */\n\n _proto.internalClearTimeouts = function internalClearTimeouts() {\n this.timeoutIds.forEach(function (id) {\n clearTimeout(id);\n });\n this.timeoutIds = [];\n }\n /**\n * Gets the state based on internal state or props\n * If a state value is passed via props, then that\n * is the value given, otherwise it's retrieved from\n * stateToMerge\n *\n * @param {Object} stateToMerge defaults to this.state\n * @return {Object} the state\n */\n ;\n\n _proto.getState = function getState$1(stateToMerge) {\n if (stateToMerge === void 0) {\n stateToMerge = this.state;\n }\n\n return getState(stateToMerge, this.props);\n };\n\n _proto.getItemCount = function getItemCount() {\n // things read better this way. They're in priority order:\n // 1. `this.itemCount`\n // 2. `this.props.itemCount`\n // 3. `this.items.length`\n var itemCount = this.items.length;\n\n if (this.itemCount != null) {\n itemCount = this.itemCount;\n } else if (this.props.itemCount !== undefined) {\n itemCount = this.props.itemCount;\n }\n\n return itemCount;\n };\n\n _proto.getItemNodeFromIndex = function getItemNodeFromIndex(index) {\n return this.props.environment ? this.props.environment.document.getElementById(this.getItemId(index)) : null;\n };\n\n _proto.scrollHighlightedItemIntoView = function scrollHighlightedItemIntoView() {\n /* istanbul ignore else (react-native) */\n {\n var node = this.getItemNodeFromIndex(this.getState().highlightedIndex);\n this.props.scrollIntoView(node, this._menuNode);\n }\n };\n\n _proto.moveHighlightedIndex = function moveHighlightedIndex(amount, otherStateToSet) {\n var itemCount = this.getItemCount();\n\n var _this$getState8 = this.getState(),\n highlightedIndex = _this$getState8.highlightedIndex;\n\n if (itemCount > 0) {\n var nextHighlightedIndex = getHighlightedIndex(highlightedIndex, amount, {\n length: itemCount\n }, this.isItemDisabled, true);\n this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet);\n }\n };\n\n _proto.getStateAndHelpers = function getStateAndHelpers() {\n var _this$getState9 = this.getState(),\n highlightedIndex = _this$getState9.highlightedIndex,\n inputValue = _this$getState9.inputValue,\n selectedItem = _this$getState9.selectedItem,\n isOpen = _this$getState9.isOpen;\n\n var itemToString = this.props.itemToString;\n var id = this.id;\n var getRootProps = this.getRootProps,\n getToggleButtonProps = this.getToggleButtonProps,\n getLabelProps = this.getLabelProps,\n getMenuProps = this.getMenuProps,\n getInputProps = this.getInputProps,\n getItemProps = this.getItemProps,\n openMenu = this.openMenu,\n closeMenu = this.closeMenu,\n toggleMenu = this.toggleMenu,\n selectItem = this.selectItem,\n selectItemAtIndex = this.selectItemAtIndex,\n selectHighlightedItem = this.selectHighlightedItem,\n setHighlightedIndex = this.setHighlightedIndex,\n clearSelection = this.clearSelection,\n clearItems = this.clearItems,\n reset = this.reset,\n setItemCount = this.setItemCount,\n unsetItemCount = this.unsetItemCount,\n setState = this.internalSetState;\n return {\n // prop getters\n getRootProps: getRootProps,\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getItemProps: getItemProps,\n // actions\n reset: reset,\n openMenu: openMenu,\n closeMenu: closeMenu,\n toggleMenu: toggleMenu,\n selectItem: selectItem,\n selectItemAtIndex: selectItemAtIndex,\n selectHighlightedItem: selectHighlightedItem,\n setHighlightedIndex: setHighlightedIndex,\n clearSelection: clearSelection,\n clearItems: clearItems,\n setItemCount: setItemCount,\n unsetItemCount: unsetItemCount,\n setState: setState,\n // props\n itemToString: itemToString,\n // derived\n id: id,\n // state\n highlightedIndex: highlightedIndex,\n inputValue: inputValue,\n isOpen: isOpen,\n selectedItem: selectedItem\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this4 = this;\n /* istanbul ignore if (react-native) */\n\n\n if (process.env.NODE_ENV !== 'production' && !false && this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n /* istanbul ignore if (react-native or SSR) */\n\n\n if (!this.props.environment) {\n this.cleanup = function () {\n _this4.internalClearTimeouts();\n };\n } else {\n // this.isMouseDown helps us track whether the mouse is currently held down.\n // This is useful when the user clicks on an item in the list, but holds the mouse\n // down long enough for the list to disappear (because the blur event fires on the input)\n // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should\n // trigger hiding the menu.\n var onMouseDown = function onMouseDown() {\n _this4.isMouseDown = true;\n };\n\n var onMouseUp = function onMouseUp(event) {\n _this4.isMouseDown = false; // if the target element or the activeElement is within a downshift node\n // then we don't want to reset downshift\n\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this4._rootNode, _this4._menuNode], _this4.props.environment);\n\n if (!contextWithinDownshift && _this4.getState().isOpen) {\n _this4.reset({\n type: mouseUp\n }, function () {\n return _this4.props.onOuterClick(_this4.getStateAndHelpers());\n });\n }\n }; // Touching an element in iOS gives focus and hover states, but touching out of\n // the element will remove hover, and persist the focus state, resulting in the\n // blur event not being triggered.\n // this.isTouchMove helps us track whether the user is tapping or swiping on a touch screen.\n // If the user taps outside of Downshift, the component should be reset,\n // but not if the user is swiping\n\n\n var onTouchStart = function onTouchStart() {\n _this4.isTouchMove = false;\n };\n\n var onTouchMove = function onTouchMove() {\n _this4.isTouchMove = true;\n };\n\n var onTouchEnd = function onTouchEnd(event) {\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this4._rootNode, _this4._menuNode], _this4.props.environment, false);\n\n if (!_this4.isTouchMove && !contextWithinDownshift && _this4.getState().isOpen) {\n _this4.reset({\n type: touchEnd\n }, function () {\n return _this4.props.onOuterClick(_this4.getStateAndHelpers());\n });\n }\n };\n\n var environment = this.props.environment;\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n\n this.cleanup = function () {\n _this4.internalClearTimeouts();\n\n _this4.updateStatus.cancel();\n\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }\n };\n\n _proto.shouldScroll = function shouldScroll(prevState, prevProps) {\n var _ref10 = this.props.highlightedIndex === undefined ? this.getState() : this.props,\n currentHighlightedIndex = _ref10.highlightedIndex;\n\n var _ref11 = prevProps.highlightedIndex === undefined ? prevState : prevProps,\n prevHighlightedIndex = _ref11.highlightedIndex;\n\n var scrollWhenOpen = currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen;\n var scrollWhenNavigating = currentHighlightedIndex !== prevHighlightedIndex;\n return scrollWhenOpen || scrollWhenNavigating;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged(this.state, prevProps, this.props);\n /* istanbul ignore if (react-native) */\n\n if (this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n }\n\n if (isControlledProp(this.props, 'selectedItem') && this.props.selectedItemChanged(prevProps.selectedItem, this.props.selectedItem)) {\n this.internalSetState({\n type: controlledPropUpdatedSelectedItem,\n inputValue: this.props.itemToString(this.props.selectedItem)\n });\n }\n\n if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {\n this.scrollHighlightedItemIntoView();\n }\n /* istanbul ignore else (react-native) */\n\n\n {\n this.updateStatus();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cleanup(); // avoids memory leak\n };\n\n _proto.render = function render() {\n var children = unwrapArray(this.props.children, noop); // because the items are rerendered every time we call the children\n // we clear this out each render and it will be populated again as\n // getItemProps is called.\n\n this.clearItems(); // we reset this so we know whether the user calls getRootProps during\n // this render. If they do then we don't need to do anything,\n // if they don't then we need to clone the element they return and\n // apply the props for them.\n\n this.getRootProps.called = false;\n this.getRootProps.refKey = undefined;\n this.getRootProps.suppressRefError = undefined; // we do something similar for getMenuProps\n\n this.getMenuProps.called = false;\n this.getMenuProps.refKey = undefined;\n this.getMenuProps.suppressRefError = undefined; // we do something similar for getLabelProps\n\n this.getLabelProps.called = false; // and something similar for getInputProps\n\n this.getInputProps.called = false;\n var element = unwrapArray(children(this.getStateAndHelpers()));\n\n if (!element) {\n return null;\n }\n\n if (this.getRootProps.called || this.props.suppressRefError) {\n if (process.env.NODE_ENV !== 'production' && !this.getRootProps.suppressRefError && !this.props.suppressRefError) {\n validateGetRootPropsCalledCorrectly(element, this.getRootProps);\n }\n\n return element;\n } else if (isDOMElement(element)) {\n // they didn't apply the root props, but we can clone\n // this and apply the props ourselves\n return /*#__PURE__*/cloneElement(element, this.getRootProps(getElementProps(element)));\n }\n /* istanbul ignore else */\n\n\n if (process.env.NODE_ENV !== 'production') {\n // they didn't apply the root props, but they need to\n // otherwise we can't query around the autocomplete\n throw new Error('downshift: If you return a non-DOM element, you must apply the getRootProps function');\n }\n /* istanbul ignore next */\n\n\n return undefined;\n };\n\n return Downshift;\n }(Component);\n\n Downshift.defaultProps = {\n defaultHighlightedIndex: null,\n defaultIsOpen: false,\n getA11yStatusMessage: getA11yStatusMessage,\n itemToString: function itemToString(i) {\n if (i == null) {\n return '';\n }\n\n if (process.env.NODE_ENV !== 'production' && isPlainObject(i) && !i.hasOwnProperty('toString')) {\n // eslint-disable-next-line no-console\n console.warn('downshift: An object was passed to the default implementation of `itemToString`. You should probably provide your own `itemToString` implementation. Please refer to the `itemToString` API documentation.', 'The object that was passed:', i);\n }\n\n return String(i);\n },\n onStateChange: noop,\n onInputValueChange: noop,\n onUserAction: noop,\n onChange: noop,\n onSelect: noop,\n onOuterClick: noop,\n selectedItemChanged: function selectedItemChanged(prevItem, item) {\n return prevItem !== item;\n },\n environment:\n /* istanbul ignore next (ssr) */\n typeof window === 'undefined' || false ? undefined : window,\n stateReducer: function stateReducer(state, stateToSet) {\n return stateToSet;\n },\n suppressRefError: false,\n scrollIntoView: scrollIntoView\n };\n Downshift.stateChangeTypes = stateChangeTypes$3;\n return Downshift;\n}();\n\nprocess.env.NODE_ENV !== \"production\" ? Downshift.propTypes = {\n children: PropTypes.func,\n defaultHighlightedIndex: PropTypes.number,\n defaultIsOpen: PropTypes.bool,\n initialHighlightedIndex: PropTypes.number,\n initialSelectedItem: PropTypes.any,\n initialInputValue: PropTypes.string,\n initialIsOpen: PropTypes.bool,\n getA11yStatusMessage: PropTypes.func,\n itemToString: PropTypes.func,\n onChange: PropTypes.func,\n onSelect: PropTypes.func,\n onStateChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n onUserAction: PropTypes.func,\n onOuterClick: PropTypes.func,\n selectedItemChanged: PropTypes.func,\n stateReducer: PropTypes.func,\n itemCount: PropTypes.number,\n id: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func.isRequired,\n removeEventListener: PropTypes.func.isRequired,\n document: PropTypes.shape({\n createElement: PropTypes.func.isRequired,\n getElementById: PropTypes.func.isRequired,\n activeElement: PropTypes.any.isRequired,\n body: PropTypes.any.isRequired\n }).isRequired,\n Node: PropTypes.func.isRequired\n }),\n suppressRefError: PropTypes.bool,\n scrollIntoView: PropTypes.func,\n // things we keep in state for uncontrolled components\n // but can accept as props for controlled components\n\n /* eslint-disable react/no-unused-prop-types */\n selectedItem: PropTypes.any,\n isOpen: PropTypes.bool,\n inputValue: PropTypes.string,\n highlightedIndex: PropTypes.number,\n labelId: PropTypes.string,\n inputId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func\n /* eslint-enable react/no-unused-prop-types */\n\n} : void 0;\nvar Downshift$1 = Downshift;\n\nfunction validateGetMenuPropsCalledCorrectly(node, _ref12) {\n var refKey = _ref12.refKey;\n\n if (!node) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from getMenuProps was not applied correctly on your menu element.\");\n }\n}\n\nfunction validateGetRootPropsCalledCorrectly(element, _ref13) {\n var refKey = _ref13.refKey;\n var refKeySpecified = refKey !== 'ref';\n var isComposite = !isDOMElement(element);\n\n if (isComposite && !refKeySpecified && !isForwardRef(element)) {\n // eslint-disable-next-line no-console\n console.error('downshift: You returned a non-DOM element. You must specify a refKey in getRootProps');\n } else if (!isComposite && refKeySpecified) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \\\"\" + refKey + \"\\\"\");\n }\n\n if (!isForwardRef(element) && !getElementProps(element)[refKey]) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You must apply the ref prop \\\"\" + refKey + \"\\\" from getRootProps onto your root element.\");\n }\n}\n\nvar dropdownDefaultStateValues = {\n highlightedIndex: -1,\n isOpen: false,\n selectedItem: null,\n inputValue: ''\n};\n\nfunction callOnChangeProps(action, state, newState) {\n var props = action.props,\n type = action.type;\n var changes = {};\n Object.keys(state).forEach(function (key) {\n invokeOnChangeHandler(key, action, state, newState);\n\n if (newState[key] !== state[key]) {\n changes[key] = newState[key];\n }\n });\n\n if (props.onStateChange && Object.keys(changes).length) {\n props.onStateChange(_extends({\n type: type\n }, changes));\n }\n}\n\nfunction invokeOnChangeHandler(key, action, state, newState) {\n var props = action.props,\n type = action.type;\n var handler = \"on\" + capitalizeString(key) + \"Change\";\n\n if (props[handler] && newState[key] !== undefined && newState[key] !== state[key]) {\n props[handler](_extends({\n type: type\n }, newState));\n }\n}\n/**\n * Default state reducer that returns the changes.\n *\n * @param {Object} s state.\n * @param {Object} a action with changes.\n * @returns {Object} changes.\n */\n\n\nfunction stateReducer(s, a) {\n return a.changes;\n}\n/**\n * Debounced call for updating the a11y message.\n */\n\n\nvar updateA11yStatus = debounce(function (status, document) {\n setStatus(status, document);\n}, 200); // istanbul ignore next\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect; // istanbul ignore next\n\nvar useElementIds = 'useId' in React // Avoid conditional useId call\n? function useElementIds(_ref) {\n var id = _ref.id,\n labelId = _ref.labelId,\n menuId = _ref.menuId,\n getItemId = _ref.getItemId,\n toggleButtonId = _ref.toggleButtonId,\n inputId = _ref.inputId; // Avoid conditional useId call\n\n var reactId = \"downshift-\" + React.useId();\n\n if (!id) {\n id = reactId;\n }\n\n var elementIdsRef = useRef({\n labelId: labelId || id + \"-label\",\n menuId: menuId || id + \"-menu\",\n getItemId: getItemId || function (index) {\n return id + \"-item-\" + index;\n },\n toggleButtonId: toggleButtonId || id + \"-toggle-button\",\n inputId: inputId || id + \"-input\"\n });\n return elementIdsRef.current;\n} : function useElementIds(_ref2) {\n var _ref2$id = _ref2.id,\n id = _ref2$id === void 0 ? \"downshift-\" + generateId() : _ref2$id,\n labelId = _ref2.labelId,\n menuId = _ref2.menuId,\n getItemId = _ref2.getItemId,\n toggleButtonId = _ref2.toggleButtonId,\n inputId = _ref2.inputId;\n var elementIdsRef = useRef({\n labelId: labelId || id + \"-label\",\n menuId: menuId || id + \"-menu\",\n getItemId: getItemId || function (index) {\n return id + \"-item-\" + index;\n },\n toggleButtonId: toggleButtonId || id + \"-toggle-button\",\n inputId: inputId || id + \"-input\"\n });\n return elementIdsRef.current;\n};\n\nfunction getItemAndIndex(itemProp, indexProp, items, errorMessage) {\n var item, index;\n\n if (itemProp === undefined) {\n if (indexProp === undefined) {\n throw new Error(errorMessage);\n }\n\n item = items[indexProp];\n index = indexProp;\n } else {\n index = indexProp === undefined ? items.indexOf(itemProp) : indexProp;\n item = itemProp;\n }\n\n return [item, index];\n}\n\nfunction isAcceptedCharacterKey(key) {\n return /^\\S{1}$/.test(key);\n}\n\nfunction capitalizeString(string) {\n return \"\" + string.slice(0, 1).toUpperCase() + string.slice(1);\n}\n\nfunction useLatestRef(val) {\n var ref = useRef(val); // technically this is not \"concurrent mode safe\" because we're manipulating\n // the value during render (so it's not idempotent). However, the places this\n // hook is used is to support memoizing callbacks which will be called\n // *during* render, so we need the latest values *during* render.\n // If not for this, then we'd probably want to use useLayoutEffect instead.\n\n ref.current = val;\n return ref;\n}\n/**\n * Computes the controlled state using a the previous state, props,\n * two reducers, one from downshift and an optional one from the user.\n * Also calls the onChange handlers for state values that have changed.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} props The hook props, also passed to createInitialState.\n * @param {Function} createInitialState Function that returns the initial state.\n * @param {Function} isStateEqual Function that checks if a previous state is equal to the next.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\n\nfunction useEnhancedReducer(reducer, props, createInitialState, isStateEqual) {\n var prevStateRef = useRef();\n var actionRef = useRef();\n var enhancedReducer = useCallback(function (state, action) {\n actionRef.current = action;\n state = getState(state, action.props);\n var changes = reducer(state, action);\n var newState = action.props.stateReducer(state, _extends({}, action, {\n changes: changes\n }));\n return newState;\n }, [reducer]);\n\n var _useReducer = useReducer(enhancedReducer, props, createInitialState),\n state = _useReducer[0],\n dispatch = _useReducer[1];\n\n var propsRef = useLatestRef(props);\n var dispatchWithProps = useCallback(function (action) {\n return dispatch(_extends({\n props: propsRef.current\n }, action));\n }, [propsRef]);\n var action = actionRef.current;\n useEffect(function () {\n var prevState = getState(prevStateRef.current, action == null ? void 0 : action.props);\n var shouldCallOnChangeProps = action && prevStateRef.current && !isStateEqual(prevState, state);\n\n if (shouldCallOnChangeProps) {\n callOnChangeProps(action, prevState, state);\n }\n\n prevStateRef.current = state;\n }, [state, action, isStateEqual]);\n return [state, dispatchWithProps];\n}\n/**\n * Wraps the useEnhancedReducer and applies the controlled prop values before\n * returning the new state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} props The hook props, also passed to createInitialState.\n * @param {Function} createInitialState Function that returns the initial state.\n * @param {Function} isStateEqual Function that checks if a previous state is equal to the next.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\n\nfunction useControlledReducer$1(reducer, props, createInitialState, isStateEqual) {\n var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState, isStateEqual),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1];\n\n return [getState(state, props), dispatch];\n}\n\nvar defaultProps$3 = {\n itemToString: function itemToString(item) {\n return item ? String(item) : '';\n },\n itemToKey: function itemToKey(item) {\n return item;\n },\n stateReducer: stateReducer,\n scrollIntoView: scrollIntoView,\n environment:\n /* istanbul ignore next (ssr) */\n typeof window === 'undefined' || false ? undefined : window\n};\n\nfunction getDefaultValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n\n var defaultValue = props[\"default\" + capitalizeString(propKey)];\n\n if (defaultValue !== undefined) {\n return defaultValue;\n }\n\n return defaultStateValues[propKey];\n}\n\nfunction getInitialValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n\n var value = props[propKey];\n\n if (value !== undefined) {\n return value;\n }\n\n var initialValue = props[\"initial\" + capitalizeString(propKey)];\n\n if (initialValue !== undefined) {\n return initialValue;\n }\n\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\n\nfunction getInitialState$2(props) {\n var selectedItem = getInitialValue$1(props, 'selectedItem');\n var isOpen = getInitialValue$1(props, 'isOpen');\n var highlightedIndex = getInitialHighlightedIndex(props);\n var inputValue = getInitialValue$1(props, 'inputValue');\n return {\n highlightedIndex: highlightedIndex < 0 && selectedItem && isOpen ? props.items.findIndex(function (item) {\n return props.itemToKey(item) === props.itemToKey(selectedItem);\n }) : highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nfunction getHighlightedIndexOnOpen(props, state, offset) {\n var items = props.items,\n initialHighlightedIndex = props.initialHighlightedIndex,\n defaultHighlightedIndex = props.defaultHighlightedIndex,\n isItemDisabled = props.isItemDisabled,\n itemToKey = props.itemToKey;\n var selectedItem = state.selectedItem,\n highlightedIndex = state.highlightedIndex;\n\n if (items.length === 0) {\n return -1;\n } // initialHighlightedIndex will give value to highlightedIndex on initial state only.\n\n\n if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex && !isItemDisabled(items[initialHighlightedIndex], initialHighlightedIndex)) {\n return initialHighlightedIndex;\n }\n\n if (defaultHighlightedIndex !== undefined && !isItemDisabled(items[defaultHighlightedIndex], defaultHighlightedIndex)) {\n return defaultHighlightedIndex;\n }\n\n if (selectedItem) {\n return items.findIndex(function (item) {\n return itemToKey(selectedItem) === itemToKey(item);\n });\n }\n\n if (offset < 0 && !isItemDisabled(items[items.length - 1], items.length - 1)) {\n return items.length - 1;\n }\n\n if (offset > 0 && !isItemDisabled(items[0], 0)) {\n return 0;\n }\n\n return -1;\n}\n/**\n * Tracks mouse and touch events, such as mouseDown, touchMove and touchEnd.\n *\n * @param {Window} environment The environment to add the event listeners to, for instance window.\n * @param {() => void} handleBlur The function that is called if mouseDown or touchEnd occured outside the downshiftElements.\n * @param {Array<{current: HTMLElement}>} downshiftElementsRefs The refs for the elements that should not trigger a blur action from mouseDown or touchEnd.\n * @returns {{isMouseDown: boolean, isTouchMove: boolean, isTouchEnd: boolean}} The mouse and touch events information, if any of are happening.\n */\n\n\nfunction useMouseAndTouchTracker(environment, handleBlur, downshiftElementsRefs) {\n var mouseAndTouchTrackersRef = useRef({\n isMouseDown: false,\n isTouchMove: false,\n isTouchEnd: false\n });\n useEffect(function () {\n if (!environment) {\n return noop;\n }\n\n var downshiftElements = downshiftElementsRefs.map(function (ref) {\n return ref.current;\n });\n\n function onMouseDown() {\n mouseAndTouchTrackersRef.current.isTouchEnd = false; // reset this one.\n\n mouseAndTouchTrackersRef.current.isMouseDown = true;\n }\n\n function onMouseUp(event) {\n mouseAndTouchTrackersRef.current.isMouseDown = false;\n\n if (!targetWithinDownshift(event.target, downshiftElements, environment)) {\n handleBlur();\n }\n }\n\n function onTouchStart() {\n mouseAndTouchTrackersRef.current.isTouchEnd = false;\n mouseAndTouchTrackersRef.current.isTouchMove = false;\n }\n\n function onTouchMove() {\n mouseAndTouchTrackersRef.current.isTouchMove = true;\n }\n\n function onTouchEnd(event) {\n mouseAndTouchTrackersRef.current.isTouchEnd = true;\n\n if (!mouseAndTouchTrackersRef.current.isTouchMove && !targetWithinDownshift(event.target, downshiftElements, environment, false)) {\n handleBlur();\n }\n }\n\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n return function cleanup() {\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }, [downshiftElementsRefs, environment, handleBlur]);\n return mouseAndTouchTrackersRef.current;\n}\n/* istanbul ignore next */\n// eslint-disable-next-line import/no-mutable-exports\n\n\nvar useGetterPropsCalledChecker = function useGetterPropsCalledChecker() {\n return noop;\n};\n/**\n * Custom hook that checks if getter props are called correctly.\n *\n * @param {...any} propKeys Getter prop names to be handled.\n * @returns {Function} Setter function called inside getter props to set call information.\n */\n\n/* istanbul ignore next */\n\n\nif (process.env.NODE_ENV !== 'production') {\n useGetterPropsCalledChecker = function useGetterPropsCalledChecker() {\n for (var _len = arguments.length, propKeys = new Array(_len), _key = 0; _key < _len; _key++) {\n propKeys[_key] = arguments[_key];\n }\n\n var getterPropsCalledRef = useRef(propKeys.reduce(function (acc, propKey) {\n acc[propKey] = {};\n return acc;\n }, {}));\n useEffect(function () {\n Object.keys(getterPropsCalledRef.current).forEach(function (propKey) {\n var propCallInfo = getterPropsCalledRef.current[propKey];\n\n if (!Object.keys(propCallInfo).length) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You forgot to call the \" + propKey + \" getter function on your component / element.\");\n return;\n }\n\n var suppressRefError = propCallInfo.suppressRefError,\n refKey = propCallInfo.refKey,\n elementRef = propCallInfo.elementRef;\n\n if (suppressRefError) {\n return;\n }\n\n if (!(elementRef != null && elementRef.current)) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from \" + propKey + \" was not applied correctly on your element.\");\n }\n });\n }, []);\n var setGetterPropCallInfo = useCallback(function (propKey, suppressRefError, refKey, elementRef) {\n getterPropsCalledRef.current[propKey] = {\n suppressRefError: suppressRefError,\n refKey: refKey,\n elementRef: elementRef\n };\n }, []);\n return setGetterPropCallInfo;\n };\n}\n/**\n * Adds an a11y aria live status message if getA11yStatusMessage is passed.\n * @param {(options: Object) => string} getA11yStatusMessage The function that builds the status message.\n * @param {Object} options The options to be passed to getA11yStatusMessage if called.\n * @param {Array<unknown>} dependencyArray The dependency array that triggers the status message setter via useEffect.\n * @param {{document: Document}} environment The environment object containing the document.\n */\n\n\nfunction useA11yMessageStatus(getA11yStatusMessage, options, dependencyArray, environment) {\n if (environment === void 0) {\n environment = {};\n }\n\n var document = environment.document;\n var isInitialMount = useIsInitialMount(); // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n\n useEffect(function () {\n if (!getA11yStatusMessage || isInitialMount || false || !document) {\n return;\n }\n\n var status = getA11yStatusMessage(options);\n updateA11yStatus(status, document); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencyArray); // Cleanup the status message container.\n\n useEffect(function () {\n return function () {\n updateA11yStatus.cancel();\n cleanupStatusDiv(document);\n };\n }, [document]);\n}\n\nfunction useScrollIntoView(_ref3) {\n var highlightedIndex = _ref3.highlightedIndex,\n isOpen = _ref3.isOpen,\n itemRefs = _ref3.itemRefs,\n getItemNodeFromIndex = _ref3.getItemNodeFromIndex,\n menuElement = _ref3.menuElement,\n scrollIntoViewProp = _ref3.scrollIntoView; // used not to scroll on highlight by mouse.\n\n var shouldScrollRef = useRef(true); // Scroll on highlighted item if change comes from keyboard.\n\n useIsomorphicLayoutEffect(function () {\n if (highlightedIndex < 0 || !isOpen || !Object.keys(itemRefs.current).length) {\n return;\n }\n\n if (shouldScrollRef.current === false) {\n shouldScrollRef.current = true;\n } else {\n scrollIntoViewProp(getItemNodeFromIndex(highlightedIndex), menuElement);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [highlightedIndex]);\n return shouldScrollRef;\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nvar useControlPropsValidator = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n useControlPropsValidator = function useControlPropsValidator(_ref4) {\n var props = _ref4.props,\n state = _ref4.state; // used for checking when props are moving from controlled to uncontrolled.\n\n var prevPropsRef = useRef(props);\n var isInitialMount = useIsInitialMount();\n useEffect(function () {\n if (isInitialMount) {\n return;\n }\n\n validateControlledUnchanged(state, prevPropsRef.current, props);\n prevPropsRef.current = props;\n }, [state, props, isInitialMount]);\n };\n}\n/**\n * Handles selection on Enter / Alt + ArrowUp. Closes the menu and resets the highlighted index, unless there is a highlighted.\n * In that case, selects the item and resets to defaults for open state and highlighted idex.\n * @param {Object} props The useCombobox props.\n * @param {number} highlightedIndex The index from the state.\n * @param {boolean} inputValue Also return the input value for state.\n * @returns The changes for the state.\n */\n\n\nfunction getChangesOnSelection(props, highlightedIndex, inputValue) {\n var _props$items;\n\n if (inputValue === void 0) {\n inputValue = true;\n }\n\n var shouldSelect = ((_props$items = props.items) == null ? void 0 : _props$items.length) && highlightedIndex >= 0;\n return _extends({\n isOpen: false,\n highlightedIndex: -1\n }, shouldSelect && _extends({\n selectedItem: props.items[highlightedIndex],\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex')\n }, inputValue && {\n inputValue: props.itemToString(props.items[highlightedIndex])\n }));\n}\n/**\n * Check if a state is equal for dropdowns, by comparing isOpen, inputValue, highlightedIndex and selected item.\n * Used by useSelect and useCombobox.\n *\n * @param {Object} prevState\n * @param {Object} newState\n * @returns {boolean} Wheather the states are deeply equal.\n */\n\n\nfunction isDropdownsStateEqual(prevState, newState) {\n return prevState.isOpen === newState.isOpen && prevState.inputValue === newState.inputValue && prevState.highlightedIndex === newState.highlightedIndex && prevState.selectedItem === newState.selectedItem;\n}\n/**\n * Tracks if it's the first render.\n */\n\n\nfunction useIsInitialMount() {\n var isInitialMountRef = React.useRef(true);\n React.useEffect(function () {\n isInitialMountRef.current = false;\n return function () {\n isInitialMountRef.current = true;\n };\n }, []);\n return isInitialMountRef.current;\n}\n/**\n * Returns the new highlightedIndex based on the defaultHighlightedIndex prop, if it's not disabled.\n *\n * @param {Object} props Props from useCombobox or useSelect.\n * @returns {number} The highlighted index.\n */\n\n\nfunction getDefaultHighlightedIndex(props) {\n var highlightedIndex = getDefaultValue$1(props, 'highlightedIndex');\n\n if (highlightedIndex > -1 && props.isItemDisabled(props.items[highlightedIndex], highlightedIndex)) {\n return -1;\n }\n\n return highlightedIndex;\n}\n/**\n * Returns the new highlightedIndex based on the initialHighlightedIndex prop, if not disabled.\n *\n * @param {Object} props Props from useCombobox or useSelect.\n * @returns {number} The highlighted index.\n */\n\n\nfunction getInitialHighlightedIndex(props) {\n var highlightedIndex = getInitialValue$1(props, 'highlightedIndex');\n\n if (highlightedIndex > -1 && props.isItemDisabled(props.items[highlightedIndex], highlightedIndex)) {\n return -1;\n }\n\n return highlightedIndex;\n} // Shared between all exports.\n\n\nvar commonPropTypes = {\n environment: PropTypes.shape({\n addEventListener: PropTypes.func.isRequired,\n removeEventListener: PropTypes.func.isRequired,\n document: PropTypes.shape({\n createElement: PropTypes.func.isRequired,\n getElementById: PropTypes.func.isRequired,\n activeElement: PropTypes.any.isRequired,\n body: PropTypes.any.isRequired\n }).isRequired,\n Node: PropTypes.func.isRequired\n }),\n itemToString: PropTypes.func,\n itemToKey: PropTypes.func,\n stateReducer: PropTypes.func\n}; // Shared between useSelect, useCombobox, Downshift.\n\nvar commonDropdownPropTypes = _extends({}, commonPropTypes, {\n getA11yStatusMessage: PropTypes.func,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n toggleButtonId: PropTypes.string,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n scrollIntoView: PropTypes.func\n});\n\nfunction downshiftCommonReducer(state, action, stateChangeTypes) {\n var type = action.type,\n props = action.props;\n var changes;\n\n switch (type) {\n case stateChangeTypes.ItemMouseMove:\n changes = {\n highlightedIndex: action.disabled ? -1 : action.index\n };\n break;\n\n case stateChangeTypes.MenuMouseLeave:\n changes = {\n highlightedIndex: -1\n };\n break;\n\n case stateChangeTypes.ToggleButtonClick:\n case stateChangeTypes.FunctionToggleMenu:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case stateChangeTypes.FunctionOpenMenu:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case stateChangeTypes.FunctionCloseMenu:\n changes = {\n isOpen: false\n };\n break;\n\n case stateChangeTypes.FunctionSetHighlightedIndex:\n changes = {\n highlightedIndex: props.isItemDisabled(props.items[action.highlightedIndex], action.highlightedIndex) ? -1 : action.highlightedIndex\n };\n break;\n\n case stateChangeTypes.FunctionSetInputValue:\n changes = {\n inputValue: action.inputValue\n };\n break;\n\n case stateChangeTypes.FunctionReset:\n changes = {\n highlightedIndex: getDefaultHighlightedIndex(props),\n isOpen: getDefaultValue$1(props, 'isOpen'),\n selectedItem: getDefaultValue$1(props, 'selectedItem'),\n inputValue: getDefaultValue$1(props, 'inputValue')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\n\nfunction getItemIndexByCharacterKey(_a) {\n var keysSoFar = _a.keysSoFar,\n highlightedIndex = _a.highlightedIndex,\n items = _a.items,\n itemToString = _a.itemToString,\n isItemDisabled = _a.isItemDisabled;\n var lowerCasedKeysSoFar = keysSoFar.toLowerCase();\n\n for (var index = 0; index < items.length; index++) {\n // if we already have a search query in progress, we also consider the current highlighted item.\n var offsetIndex = (index + highlightedIndex + (keysSoFar.length < 2 ? 1 : 0)) % items.length;\n var item = items[offsetIndex];\n\n if (item !== undefined && itemToString(item).toLowerCase().startsWith(lowerCasedKeysSoFar) && !isItemDisabled(item, offsetIndex)) {\n return offsetIndex;\n }\n }\n\n return highlightedIndex;\n}\n\nvar propTypes$2 = __assign(__assign({}, commonDropdownPropTypes), {\n items: PropTypes.array.isRequired,\n isItemDisabled: PropTypes.func\n});\n\nvar defaultProps$2 = __assign(__assign({}, defaultProps$3), {\n isItemDisabled: function isItemDisabled() {\n return false;\n }\n}); // eslint-disable-next-line import/no-mutable-exports\n\n\nvar validatePropTypes$2 = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$2 = function validatePropTypes$2(options, caller) {\n PropTypes.checkPropTypes(propTypes$2, options, 'prop', caller.name);\n };\n}\n\nvar ToggleButtonClick$1 = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 0;\nvar ToggleButtonKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_down__' : 1;\nvar ToggleButtonKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_up__' : 2;\nvar ToggleButtonKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_character__' : 3;\nvar ToggleButtonKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_escape__' : 4;\nvar ToggleButtonKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_home__' : 5;\nvar ToggleButtonKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_end__' : 6;\nvar ToggleButtonKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_enter__' : 7;\nvar ToggleButtonKeyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_space_button__' : 8;\nvar ToggleButtonKeyDownPageUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_page_up__' : 9;\nvar ToggleButtonKeyDownPageDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_page_down__' : 10;\nvar ToggleButtonBlur = process.env.NODE_ENV !== \"production\" ? '__togglebutton_blur__' : 11;\nvar MenuMouseLeave$1 = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 12;\nvar ItemMouseMove$1 = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 13;\nvar ItemClick$1 = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 14;\nvar FunctionToggleMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 15;\nvar FunctionOpenMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 16;\nvar FunctionCloseMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 17;\nvar FunctionSetHighlightedIndex$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 18;\nvar FunctionSelectItem$1 = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 19;\nvar FunctionSetInputValue$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 20;\nvar FunctionReset$2 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 21;\nvar stateChangeTypes$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n FunctionCloseMenu: FunctionCloseMenu$1,\n FunctionOpenMenu: FunctionOpenMenu$1,\n FunctionReset: FunctionReset$2,\n FunctionSelectItem: FunctionSelectItem$1,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex$1,\n FunctionSetInputValue: FunctionSetInputValue$1,\n FunctionToggleMenu: FunctionToggleMenu$1,\n ItemClick: ItemClick$1,\n ItemMouseMove: ItemMouseMove$1,\n MenuMouseLeave: MenuMouseLeave$1,\n ToggleButtonBlur: ToggleButtonBlur,\n ToggleButtonClick: ToggleButtonClick$1,\n ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,\n ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,\n ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,\n ToggleButtonKeyDownEnd: ToggleButtonKeyDownEnd,\n ToggleButtonKeyDownEnter: ToggleButtonKeyDownEnter,\n ToggleButtonKeyDownEscape: ToggleButtonKeyDownEscape,\n ToggleButtonKeyDownHome: ToggleButtonKeyDownHome,\n ToggleButtonKeyDownPageDown: ToggleButtonKeyDownPageDown,\n ToggleButtonKeyDownPageUp: ToggleButtonKeyDownPageUp,\n ToggleButtonKeyDownSpaceButton: ToggleButtonKeyDownSpaceButton\n});\n/* eslint-disable complexity */\n\nfunction downshiftSelectReducer(state, action) {\n var _props$items;\n\n var type = action.type,\n props = action.props,\n altKey = action.altKey;\n var changes;\n\n switch (type) {\n case ItemClick$1:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultHighlightedIndex(props),\n selectedItem: props.items[action.index]\n };\n break;\n\n case ToggleButtonKeyDownCharacter:\n {\n var lowercasedKey = action.key;\n var inputValue = \"\" + state.inputValue + lowercasedKey;\n var prevHighlightedIndex = !state.isOpen && state.selectedItem ? props.items.findIndex(function (item) {\n return props.itemToKey(item) === props.itemToKey(state.selectedItem);\n }) : state.highlightedIndex;\n var highlightedIndex = getItemIndexByCharacterKey({\n keysSoFar: inputValue,\n highlightedIndex: prevHighlightedIndex,\n items: props.items,\n itemToString: props.itemToString,\n isItemDisabled: props.isItemDisabled\n });\n changes = {\n inputValue: inputValue,\n highlightedIndex: highlightedIndex,\n isOpen: true\n };\n }\n break;\n\n case ToggleButtonKeyDownArrowDown:\n {\n var _highlightedIndex = state.isOpen ? getHighlightedIndex(state.highlightedIndex, 1, props.items, props.isItemDisabled) : altKey && state.selectedItem == null ? -1 : getHighlightedIndexOnOpen(props, state, 1);\n\n changes = {\n highlightedIndex: _highlightedIndex,\n isOpen: true\n };\n }\n break;\n\n case ToggleButtonKeyDownArrowUp:\n if (state.isOpen && altKey) {\n changes = getChangesOnSelection(props, state.highlightedIndex, false);\n } else {\n var _highlightedIndex2 = state.isOpen ? getHighlightedIndex(state.highlightedIndex, -1, props.items, props.isItemDisabled) : getHighlightedIndexOnOpen(props, state, -1);\n\n changes = {\n highlightedIndex: _highlightedIndex2,\n isOpen: true\n };\n }\n\n break;\n // only triggered when menu is open.\n\n case ToggleButtonKeyDownEnter:\n case ToggleButtonKeyDownSpaceButton:\n changes = getChangesOnSelection(props, state.highlightedIndex, false);\n break;\n\n case ToggleButtonKeyDownHome:\n changes = {\n highlightedIndex: getNonDisabledIndex(0, false, props.items, props.isItemDisabled),\n isOpen: true\n };\n break;\n\n case ToggleButtonKeyDownEnd:\n changes = {\n highlightedIndex: getNonDisabledIndex(props.items.length - 1, true, props.items, props.isItemDisabled),\n isOpen: true\n };\n break;\n\n case ToggleButtonKeyDownPageUp:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, -10, props.items, props.isItemDisabled)\n };\n break;\n\n case ToggleButtonKeyDownPageDown:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, 10, props.items, props.isItemDisabled)\n };\n break;\n\n case ToggleButtonKeyDownEscape:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case ToggleButtonBlur:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, state.highlightedIndex >= 0 && ((_props$items = props.items) == null ? void 0 : _props$items.length) && {\n selectedItem: props.items[state.highlightedIndex]\n });\n break;\n\n case FunctionSelectItem$1:\n changes = {\n selectedItem: action.selectedItem\n };\n break;\n\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$2);\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\n\nvar _excluded$2 = [\"onClick\"],\n _excluded2$2 = [\"onMouseLeave\", \"refKey\", \"ref\"],\n _excluded3$1 = [\"onBlur\", \"onClick\", \"onPress\", \"onKeyDown\", \"refKey\", \"ref\"],\n _excluded4$1 = [\"item\", \"index\", \"onMouseMove\", \"onClick\", \"onMouseDown\", \"onPress\", \"refKey\", \"disabled\", \"ref\"];\nuseSelect.stateChangeTypes = stateChangeTypes$2;\n\nfunction useSelect(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes$2(userProps, useSelect); // Props defaults and destructuring.\n\n var props = _extends({}, defaultProps$2, userProps);\n\n var scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n getA11yStatusMessage = props.getA11yStatusMessage; // Initial state depending on controlled props.\n\n var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, props, getInitialState$2, isDropdownsStateEqual),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue; // Element efs.\n\n var toggleButtonRef = useRef(null);\n var menuRef = useRef(null);\n var itemRefs = useRef({}); // used to keep the inputValue clearTimeout object between renders.\n\n var clearTimeoutRef = useRef(null); // prevent id re-generation between renders.\n\n var elementIds = useElementIds(props); // utility callback to get item element.\n\n var latest = useLatestRef({\n state: state,\n props: props\n }); // Some utils.\n\n var getItemNodeFromIndex = useCallback(function (index) {\n return itemRefs.current[elementIds.getItemId(index)];\n }, [elementIds]); // Effects.\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n\n useA11yMessageStatus(getA11yStatusMessage, state, [isOpen, highlightedIndex, selectedItem, inputValue], environment); // Scroll on highlighted item if change comes from keyboard.\n\n var shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n itemRefs: itemRefs,\n scrollIntoView: scrollIntoView,\n getItemNodeFromIndex: getItemNodeFromIndex\n }); // Sets cleanup for the keysSoFar callback, debounded after 500ms.\n\n useEffect(function () {\n // init the clean function here as we need access to dispatch.\n clearTimeoutRef.current = debounce(function (outerDispatch) {\n outerDispatch({\n type: FunctionSetInputValue$1,\n inputValue: ''\n });\n }, 500); // Cancel any pending debounced calls on mount\n\n return function () {\n clearTimeoutRef.current.cancel();\n };\n }, []); // Invokes the keysSoFar callback set up above.\n\n useEffect(function () {\n if (!inputValue) {\n return;\n }\n\n clearTimeoutRef.current(dispatch);\n }, [dispatch, inputValue]);\n useControlPropsValidator({\n props: props,\n state: state\n }); // Focus the toggle button on first render if required.\n\n useEffect(function () {\n var focusOnOpen = getInitialValue$1(props, 'isOpen');\n\n if (focusOnOpen && toggleButtonRef.current) {\n toggleButtonRef.current.focus();\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, []);\n var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, useCallback(function handleBlur() {\n if (latest.current.state.isOpen) {\n dispatch({\n type: ToggleButtonBlur\n });\n }\n }, [dispatch, latest]), useMemo(function () {\n return [menuRef, toggleButtonRef];\n }, [menuRef.current, toggleButtonRef.current]));\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps'); // Reset itemRefs on close.\n\n useEffect(function () {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]); // Event handler functions.\n\n var toggleButtonKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowDown,\n altKey: event.altKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowUp,\n altKey: event.altKey\n });\n },\n Home: function Home(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownHome\n });\n },\n End: function End(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownEnd\n });\n },\n Escape: function Escape() {\n if (latest.current.state.isOpen) {\n dispatch({\n type: ToggleButtonKeyDownEscape\n });\n }\n },\n Enter: function Enter(event) {\n event.preventDefault();\n dispatch({\n type: latest.current.state.isOpen ? ToggleButtonKeyDownEnter : ToggleButtonClick$1\n });\n },\n PageUp: function PageUp(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownPageUp\n });\n }\n },\n PageDown: function PageDown(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownPageDown\n });\n }\n },\n ' ': function _(event) {\n event.preventDefault();\n var currentState = latest.current.state;\n\n if (!currentState.isOpen) {\n dispatch({\n type: ToggleButtonClick$1\n });\n return;\n }\n\n if (currentState.inputValue) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: ' '\n });\n } else {\n dispatch({\n type: ToggleButtonKeyDownSpaceButton\n });\n }\n }\n };\n }, [dispatch, latest]); // Action functions.\n\n var toggleMenu = useCallback(function () {\n dispatch({\n type: FunctionToggleMenu$1\n });\n }, [dispatch]);\n var closeMenu = useCallback(function () {\n dispatch({\n type: FunctionCloseMenu$1\n });\n }, [dispatch]);\n var openMenu = useCallback(function () {\n dispatch({\n type: FunctionOpenMenu$1\n });\n }, [dispatch]);\n var setHighlightedIndex = useCallback(function (newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex$1,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n var selectItem = useCallback(function (newSelectedItem) {\n dispatch({\n type: FunctionSelectItem$1,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset$2\n });\n }, [dispatch]);\n var setInputValue = useCallback(function (newInputValue) {\n dispatch({\n type: FunctionSetInputValue$1,\n inputValue: newInputValue\n });\n }, [dispatch]); // Getter functions.\n\n var getLabelProps = useCallback(function (_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n onClick = _ref.onClick,\n labelProps = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n var labelHandleClick = function labelHandleClick() {\n var _toggleButtonRef$curr;\n\n (_toggleButtonRef$curr = toggleButtonRef.current) == null || _toggleButtonRef$curr.focus();\n };\n\n return _extends({\n id: elementIds.labelId,\n htmlFor: elementIds.toggleButtonId,\n onClick: callAllEventHandlers(onClick, labelHandleClick)\n }, labelProps);\n }, [elementIds]);\n var getMenuProps = useCallback(function (_temp2, _temp3) {\n var _extends2;\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n onMouseLeave = _ref2.onMouseLeave,\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n ref = _ref2.ref,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$2);\n\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n _ref3$suppressRefErro = _ref3.suppressRefError,\n suppressRefError = _ref3$suppressRefErro === void 0 ? false : _ref3$suppressRefErro;\n\n var menuHandleMouseLeave = function menuHandleMouseLeave() {\n dispatch({\n type: MenuMouseLeave$1\n });\n };\n\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIds.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = rest && rest['aria-label'] ? undefined : \"\" + elementIds.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, menuHandleMouseLeave), _extends2), rest);\n }, [dispatch, setGetterPropCallInfo, elementIds]);\n var getToggleButtonProps = useCallback(function (_temp4, _temp5) {\n var _extends3;\n\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n onBlur = _ref4.onBlur,\n onClick = _ref4.onClick;\n\n _ref4.onPress;\n\n var onKeyDown = _ref4.onKeyDown,\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n ref = _ref4.ref,\n rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$1);\n\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$suppressRefErro = _ref5.suppressRefError,\n suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;\n\n var latestState = latest.current.state;\n\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick$1\n });\n };\n\n var toggleButtonHandleBlur = function toggleButtonHandleBlur() {\n if (latestState.isOpen && !mouseAndTouchTrackers.isMouseDown) {\n dispatch({\n type: ToggleButtonBlur\n });\n }\n };\n\n var toggleButtonHandleKeyDown = function toggleButtonHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && toggleButtonKeyDownHandlers[key]) {\n toggleButtonKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: key\n });\n }\n };\n\n var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends3['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends3['aria-controls'] = elementIds.menuId, _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-labelledby'] = rest && rest['aria-label'] ? undefined : \"\" + elementIds.labelId, _extends3.id = elementIds.toggleButtonId, _extends3.role = 'combobox', _extends3.tabIndex = 0, _extends3.onBlur = callAllEventHandlers(onBlur, toggleButtonHandleBlur), _extends3), rest);\n\n if (!rest.disabled) {\n /* istanbul ignore if (react-native) */\n {\n toggleProps.onClick = callAllEventHandlers(onClick, toggleButtonHandleClick);\n toggleProps.onKeyDown = callAllEventHandlers(onKeyDown, toggleButtonHandleKeyDown);\n }\n }\n\n setGetterPropCallInfo('getToggleButtonProps', suppressRefError, refKey, toggleButtonRef);\n return toggleProps;\n }, [dispatch, elementIds, latest, mouseAndTouchTrackers, setGetterPropCallInfo, toggleButtonKeyDownHandlers]);\n var getItemProps = useCallback(function (_temp6) {\n var _extends4;\n\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n itemProp = _ref6.item,\n indexProp = _ref6.index,\n onMouseMove = _ref6.onMouseMove,\n onClick = _ref6.onClick,\n onMouseDown = _ref6.onMouseDown;\n\n _ref6.onPress;\n\n var _ref6$refKey = _ref6.refKey,\n refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,\n disabledProp = _ref6.disabled,\n ref = _ref6.ref,\n rest = _objectWithoutPropertiesLoose(_ref6, _excluded4$1);\n\n if (disabledProp !== undefined) {\n console.warn('Passing \"disabled\" as an argument to getItemProps is not supported anymore. Please use the isItemDisabled prop from useSelect.');\n }\n\n var _latest$current = latest.current,\n latestState = _latest$current.state,\n latestProps = _latest$current.props;\n\n var _getItemAndIndex = getItemAndIndex(itemProp, indexProp, latestProps.items, 'Pass either item or index to getItemProps!'),\n item = _getItemAndIndex[0],\n index = _getItemAndIndex[1];\n\n var disabled = latestProps.isItemDisabled(item, index);\n\n var itemHandleMouseMove = function itemHandleMouseMove() {\n if (mouseAndTouchTrackers.isTouchEnd || index === latestState.highlightedIndex) {\n return;\n }\n\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove$1,\n index: index,\n disabled: disabled\n });\n };\n\n var itemHandleClick = function itemHandleClick() {\n dispatch({\n type: ItemClick$1,\n index: index\n });\n };\n\n var itemHandleMouseDown = function itemHandleMouseDown(e) {\n return e.preventDefault();\n }; // keep focus on the toggle after item click select.\n\n\n var itemProps = _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(index)] = itemNode;\n }\n }), _extends4['aria-disabled'] = disabled, _extends4['aria-selected'] = item === latestState.selectedItem, _extends4.id = elementIds.getItemId(index), _extends4.role = 'option', _extends4), rest);\n\n if (!disabled) {\n /* istanbul ignore next (react-native) */\n {\n itemProps.onClick = callAllEventHandlers(onClick, itemHandleClick);\n }\n }\n\n itemProps.onMouseMove = callAllEventHandlers(onMouseMove, itemHandleMouseMove);\n itemProps.onMouseDown = callAllEventHandlers(onMouseDown, itemHandleMouseDown);\n return itemProps;\n }, [latest, elementIds, mouseAndTouchTrackers, shouldScrollRef, dispatch]);\n return {\n // prop getters.\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getItemProps: getItemProps,\n // actions.\n toggleMenu: toggleMenu,\n openMenu: openMenu,\n closeMenu: closeMenu,\n setHighlightedIndex: setHighlightedIndex,\n selectItem: selectItem,\n reset: reset,\n setInputValue: setInputValue,\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nvar InputKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_down__' : 0;\nvar InputKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_up__' : 1;\nvar InputKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__input_keydown_escape__' : 2;\nvar InputKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__input_keydown_home__' : 3;\nvar InputKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__input_keydown_end__' : 4;\nvar InputKeyDownPageUp = process.env.NODE_ENV !== \"production\" ? '__input_keydown_page_up__' : 5;\nvar InputKeyDownPageDown = process.env.NODE_ENV !== \"production\" ? '__input_keydown_page_down__' : 6;\nvar InputKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__input_keydown_enter__' : 7;\nvar InputChange = process.env.NODE_ENV !== \"production\" ? '__input_change__' : 8;\nvar InputBlur = process.env.NODE_ENV !== \"production\" ? '__input_blur__' : 9;\nvar InputClick = process.env.NODE_ENV !== \"production\" ? '__input_click__' : 10;\nvar MenuMouseLeave = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 11;\nvar ItemMouseMove = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 12;\nvar ItemClick = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 13;\nvar ToggleButtonClick = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 14;\nvar FunctionToggleMenu = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 15;\nvar FunctionOpenMenu = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 16;\nvar FunctionCloseMenu = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 17;\nvar FunctionSetHighlightedIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 18;\nvar FunctionSelectItem = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 19;\nvar FunctionSetInputValue = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 20;\nvar FunctionReset$1 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 21;\nvar ControlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__controlled_prop_updated_selected_item__' : 22;\nvar stateChangeTypes$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ControlledPropUpdatedSelectedItem: ControlledPropUpdatedSelectedItem,\n FunctionCloseMenu: FunctionCloseMenu,\n FunctionOpenMenu: FunctionOpenMenu,\n FunctionReset: FunctionReset$1,\n FunctionSelectItem: FunctionSelectItem,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,\n FunctionSetInputValue: FunctionSetInputValue,\n FunctionToggleMenu: FunctionToggleMenu,\n InputBlur: InputBlur,\n InputChange: InputChange,\n InputClick: InputClick,\n InputKeyDownArrowDown: InputKeyDownArrowDown,\n InputKeyDownArrowUp: InputKeyDownArrowUp,\n InputKeyDownEnd: InputKeyDownEnd,\n InputKeyDownEnter: InputKeyDownEnter,\n InputKeyDownEscape: InputKeyDownEscape,\n InputKeyDownHome: InputKeyDownHome,\n InputKeyDownPageDown: InputKeyDownPageDown,\n InputKeyDownPageUp: InputKeyDownPageUp,\n ItemClick: ItemClick,\n ItemMouseMove: ItemMouseMove,\n MenuMouseLeave: MenuMouseLeave,\n ToggleButtonClick: ToggleButtonClick\n});\n\nfunction getInitialState$1(props) {\n var initialState = getInitialState$2(props);\n var selectedItem = initialState.selectedItem;\n var inputValue = initialState.inputValue;\n\n if (inputValue === '' && selectedItem && props.defaultInputValue === undefined && props.initialInputValue === undefined && props.inputValue === undefined) {\n inputValue = props.itemToString(selectedItem);\n }\n\n return _extends({}, initialState, {\n inputValue: inputValue\n });\n}\n\nvar propTypes$1 = _extends({}, commonDropdownPropTypes, {\n items: PropTypes.array.isRequired,\n isItemDisabled: PropTypes.func,\n inputValue: PropTypes.string,\n defaultInputValue: PropTypes.string,\n initialInputValue: PropTypes.string,\n inputId: PropTypes.string,\n onInputValueChange: PropTypes.func\n});\n/**\n * The useCombobox version of useControlledReducer, which also\n * checks if the controlled prop selectedItem changed between\n * renders. If so, it will also update inputValue with its\n * string equivalent. It uses the common useEnhancedReducer to\n * compute the rest of the state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} props The hook props, also passed to createInitialState.\n * @param {Function} createInitialState Function that returns the initial state.\n * @param {Function} isStateEqual Function that checks if a previous state is equal to the next.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\n\nfunction useControlledReducer(reducer, props, createInitialState, isStateEqual) {\n var previousSelectedItemRef = useRef();\n\n var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState, isStateEqual),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1];\n\n var isInitialMount = useIsInitialMount();\n useEffect(function () {\n if (!isControlledProp(props, 'selectedItem')) {\n return;\n }\n\n if (!isInitialMount // on first mount we already have the proper inputValue for a initial selected item.\n ) {\n var shouldCallDispatch = props.itemToKey(props.selectedItem) !== props.itemToKey(previousSelectedItemRef.current);\n\n if (shouldCallDispatch) {\n dispatch({\n type: ControlledPropUpdatedSelectedItem,\n inputValue: props.itemToString(props.selectedItem)\n });\n }\n }\n\n previousSelectedItemRef.current = state.selectedItem === previousSelectedItemRef.current ? props.selectedItem : state.selectedItem; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.selectedItem, props.selectedItem]);\n return [getState(state, props), dispatch];\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nvar validatePropTypes$1 = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$1 = function validatePropTypes(options, caller) {\n PropTypes.checkPropTypes(propTypes$1, options, 'prop', caller.name);\n };\n}\n\nvar defaultProps$1 = _extends({}, defaultProps$3, {\n isItemDisabled: function isItemDisabled() {\n return false;\n }\n});\n/* eslint-disable complexity */\n\n\nfunction downshiftUseComboboxReducer(state, action) {\n var _props$items;\n\n var type = action.type,\n props = action.props,\n altKey = action.altKey;\n var changes;\n\n switch (type) {\n case ItemClick:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultHighlightedIndex(props),\n selectedItem: props.items[action.index],\n inputValue: props.itemToString(props.items[action.index])\n };\n break;\n\n case InputKeyDownArrowDown:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, 1, props.items, props.isItemDisabled, true)\n };\n } else {\n changes = {\n highlightedIndex: altKey && state.selectedItem == null ? -1 : getHighlightedIndexOnOpen(props, state, 1),\n isOpen: props.items.length >= 0\n };\n }\n\n break;\n\n case InputKeyDownArrowUp:\n if (state.isOpen) {\n if (altKey) {\n changes = getChangesOnSelection(props, state.highlightedIndex);\n } else {\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, -1, props.items, props.isItemDisabled, true)\n };\n }\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1),\n isOpen: props.items.length >= 0\n };\n }\n\n break;\n\n case InputKeyDownEnter:\n changes = getChangesOnSelection(props, state.highlightedIndex);\n break;\n\n case InputKeyDownEscape:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, !state.isOpen && {\n selectedItem: null,\n inputValue: ''\n });\n break;\n\n case InputKeyDownPageUp:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, -10, props.items, props.isItemDisabled, true)\n };\n break;\n\n case InputKeyDownPageDown:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, 10, props.items, props.isItemDisabled, true)\n };\n break;\n\n case InputKeyDownHome:\n changes = {\n highlightedIndex: getNonDisabledIndex(0, false, props.items, props.isItemDisabled)\n };\n break;\n\n case InputKeyDownEnd:\n changes = {\n highlightedIndex: getNonDisabledIndex(props.items.length - 1, true, props.items, props.isItemDisabled)\n };\n break;\n\n case InputBlur:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, state.highlightedIndex >= 0 && ((_props$items = props.items) == null ? void 0 : _props$items.length) && action.selectItem && {\n selectedItem: props.items[state.highlightedIndex],\n inputValue: props.itemToString(props.items[state.highlightedIndex])\n });\n break;\n\n case InputChange:\n changes = {\n isOpen: true,\n highlightedIndex: getDefaultHighlightedIndex(props),\n inputValue: action.inputValue\n };\n break;\n\n case InputClick:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case FunctionSelectItem:\n changes = {\n selectedItem: action.selectedItem,\n inputValue: props.itemToString(action.selectedItem)\n };\n break;\n\n case ControlledPropUpdatedSelectedItem:\n changes = {\n inputValue: action.inputValue\n };\n break;\n\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$1);\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\n\nvar _excluded$1 = [\"onMouseLeave\", \"refKey\", \"ref\"],\n _excluded2$1 = [\"item\", \"index\", \"refKey\", \"ref\", \"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"disabled\"],\n _excluded3 = [\"onClick\", \"onPress\", \"refKey\", \"ref\"],\n _excluded4 = [\"onKeyDown\", \"onChange\", \"onInput\", \"onBlur\", \"onChangeText\", \"onClick\", \"refKey\", \"ref\"];\nuseCombobox.stateChangeTypes = stateChangeTypes$1;\n\nfunction useCombobox(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes$1(userProps, useCombobox); // Props defaults and destructuring.\n\n var props = _extends({}, defaultProps$1, userProps);\n\n var items = props.items,\n scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n getA11yStatusMessage = props.getA11yStatusMessage; // Initial state depending on controlled props.\n\n var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, props, getInitialState$1, isDropdownsStateEqual),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue; // Element refs.\n\n var menuRef = useRef(null);\n var itemRefs = useRef({});\n var inputRef = useRef(null);\n var toggleButtonRef = useRef(null);\n var isInitialMount = useIsInitialMount(); // prevent id re-generation between renders.\n\n var elementIds = useElementIds(props); // used to keep track of how many items we had on previous cycle.\n\n var previousResultCountRef = useRef(); // utility callback to get item element.\n\n var latest = useLatestRef({\n state: state,\n props: props\n });\n var getItemNodeFromIndex = useCallback(function (index) {\n return itemRefs.current[elementIds.getItemId(index)];\n }, [elementIds]); // Effects.\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n\n useA11yMessageStatus(getA11yStatusMessage, state, [isOpen, highlightedIndex, selectedItem, inputValue], environment); // Scroll on highlighted item if change comes from keyboard.\n\n var shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n itemRefs: itemRefs,\n scrollIntoView: scrollIntoView,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n useControlPropsValidator({\n props: props,\n state: state\n }); // Focus the input on first render if required.\n\n useEffect(function () {\n var focusOnOpen = getInitialValue$1(props, 'isOpen');\n\n if (focusOnOpen && inputRef.current) {\n inputRef.current.focus();\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, []);\n useEffect(function () {\n if (!isInitialMount) {\n previousResultCountRef.current = items.length;\n }\n });\n var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, useCallback(function handleBlur() {\n if (latest.current.state.isOpen) {\n dispatch({\n type: InputBlur,\n selectItem: false\n });\n }\n }, [dispatch, latest]), useMemo(function () {\n return [menuRef, toggleButtonRef, inputRef];\n }, [menuRef.current, toggleButtonRef.current, inputRef.current]));\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getMenuProps'); // Reset itemRefs on close.\n\n useEffect(function () {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]); // Reset itemRefs on close.\n\n useEffect(function () {\n var _inputRef$current;\n\n if (!isOpen || !(environment != null && environment.document) || !(inputRef != null && (_inputRef$current = inputRef.current) != null && _inputRef$current.focus)) {\n return;\n }\n\n if (environment.document.activeElement !== inputRef.current) {\n inputRef.current.focus();\n }\n }, [isOpen, environment]);\n /* Event handler functions */\n\n var inputKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowDown,\n altKey: event.altKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowUp,\n altKey: event.altKey\n });\n },\n Home: function Home(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownHome\n });\n },\n End: function End(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnd\n });\n },\n Escape: function Escape(event) {\n var latestState = latest.current.state;\n\n if (latestState.isOpen || latestState.inputValue || latestState.selectedItem || latestState.highlightedIndex > -1) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownEscape\n });\n }\n },\n Enter: function Enter(event) {\n var latestState = latest.current.state; // if closed or no highlighted index, do nothing.\n\n if (!latestState.isOpen || event.which === 229 // if IME composing, wait for next Enter keydown event.\n ) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnter\n });\n },\n PageUp: function PageUp(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownPageUp\n });\n }\n },\n PageDown: function PageDown(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownPageDown\n });\n }\n }\n };\n }, [dispatch, latest]); // Getter props.\n\n var getLabelProps = useCallback(function (labelProps) {\n return _extends({\n id: elementIds.labelId,\n htmlFor: elementIds.inputId\n }, labelProps);\n }, [elementIds]);\n var getMenuProps = useCallback(function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n onMouseLeave = _ref.onMouseLeave,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIds.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = rest && rest['aria-label'] ? undefined : \"\" + elementIds.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, function () {\n dispatch({\n type: MenuMouseLeave\n });\n }), _extends2), rest);\n }, [dispatch, setGetterPropCallInfo, elementIds]);\n var getItemProps = useCallback(function (_temp3) {\n var _extends3, _ref4;\n\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n itemProp = _ref3.item,\n indexProp = _ref3.index,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onMouseMove = _ref3.onMouseMove,\n onMouseDown = _ref3.onMouseDown,\n onClick = _ref3.onClick;\n\n _ref3.onPress;\n\n var disabledProp = _ref3.disabled,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$1);\n\n if (disabledProp !== undefined) {\n console.warn('Passing \"disabled\" as an argument to getItemProps is not supported anymore. Please use the isItemDisabled prop from useCombobox.');\n }\n\n var _latest$current = latest.current,\n latestProps = _latest$current.props,\n latestState = _latest$current.state;\n\n var _getItemAndIndex = getItemAndIndex(itemProp, indexProp, latestProps.items, 'Pass either item or index to getItemProps!'),\n item = _getItemAndIndex[0],\n index = _getItemAndIndex[1];\n\n var disabled = latestProps.isItemDisabled(item, index);\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n\n var itemHandleMouseMove = function itemHandleMouseMove() {\n if (mouseAndTouchTrackers.isTouchEnd || index === latestState.highlightedIndex) {\n return;\n }\n\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove,\n index: index,\n disabled: disabled\n });\n };\n\n var itemHandleClick = function itemHandleClick() {\n dispatch({\n type: ItemClick,\n index: index\n });\n };\n\n var itemHandleMouseDown = function itemHandleMouseDown(e) {\n return e.preventDefault();\n }; // keep focus on the input after item click select.\n\n\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(index)] = itemNode;\n }\n }), _extends3['aria-disabled'] = disabled, _extends3['aria-selected'] = index === latestState.highlightedIndex, _extends3.id = elementIds.getItemId(index), _extends3.role = 'option', _extends3), !disabled && (_ref4 = {}, _ref4[onSelectKey] = callAllEventHandlers(customClickHandler, itemHandleClick), _ref4), {\n onMouseMove: callAllEventHandlers(onMouseMove, itemHandleMouseMove),\n onMouseDown: callAllEventHandlers(onMouseDown, itemHandleMouseDown)\n }, rest);\n }, [dispatch, elementIds, latest, mouseAndTouchTrackers, shouldScrollRef]);\n var getToggleButtonProps = useCallback(function (_temp4) {\n var _extends4;\n\n var _ref5 = _temp4 === void 0 ? {} : _temp4,\n onClick = _ref5.onClick;\n\n _ref5.onPress;\n\n var _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n rest = _objectWithoutPropertiesLoose(_ref5, _excluded3);\n\n var latestState = latest.current.state;\n\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick\n });\n };\n\n return _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends4['aria-controls'] = elementIds.menuId, _extends4['aria-expanded'] = latestState.isOpen, _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && _extends({}, {\n onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)\n }), rest);\n }, [dispatch, latest, elementIds]);\n var getInputProps = useCallback(function (_temp5, _temp6) {\n var _extends5;\n\n var _ref6 = _temp5 === void 0 ? {} : _temp5,\n onKeyDown = _ref6.onKeyDown,\n onChange = _ref6.onChange,\n onInput = _ref6.onInput,\n onBlur = _ref6.onBlur;\n\n _ref6.onChangeText;\n\n var onClick = _ref6.onClick,\n _ref6$refKey = _ref6.refKey,\n refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,\n ref = _ref6.ref,\n rest = _objectWithoutPropertiesLoose(_ref6, _excluded4);\n\n var _ref7 = _temp6 === void 0 ? {} : _temp6,\n _ref7$suppressRefErro = _ref7.suppressRefError,\n suppressRefError = _ref7$suppressRefErro === void 0 ? false : _ref7$suppressRefErro;\n\n setGetterPropCallInfo('getInputProps', suppressRefError, refKey, inputRef);\n var latestState = latest.current.state;\n\n var inputHandleKeyDown = function inputHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && inputKeyDownHandlers[key]) {\n inputKeyDownHandlers[key](event);\n }\n };\n\n var inputHandleChange = function inputHandleChange(event) {\n dispatch({\n type: InputChange,\n inputValue: event.target.value\n });\n };\n\n var inputHandleBlur = function inputHandleBlur(event) {\n /* istanbul ignore else */\n if (environment != null && environment.document && latestState.isOpen && !mouseAndTouchTrackers.isMouseDown) {\n var isBlurByTabChange = event.relatedTarget === null && environment.document.activeElement !== environment.document.body;\n dispatch({\n type: InputBlur,\n selectItem: !isBlurByTabChange\n });\n }\n };\n\n var inputHandleClick = function inputHandleClick() {\n dispatch({\n type: InputClick\n });\n };\n /* istanbul ignore next (preact) */\n\n\n var onChangeKey = 'onChange';\n var eventHandlers = {};\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers.onClick = callAllEventHandlers(onClick, inputHandleClick), _eventHandlers);\n }\n\n return _extends((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {\n inputRef.current = inputNode;\n }), _extends5['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5['aria-expanded'] = latestState.isOpen, _extends5['aria-labelledby'] = rest && rest['aria-label'] ? undefined : elementIds.labelId, _extends5.autoComplete = 'off', _extends5.id = elementIds.inputId, _extends5.role = 'combobox', _extends5.value = latestState.inputValue, _extends5), eventHandlers, rest);\n }, [dispatch, elementIds, environment, inputKeyDownHandlers, latest, mouseAndTouchTrackers, setGetterPropCallInfo]); // returns\n\n var toggleMenu = useCallback(function () {\n dispatch({\n type: FunctionToggleMenu\n });\n }, [dispatch]);\n var closeMenu = useCallback(function () {\n dispatch({\n type: FunctionCloseMenu\n });\n }, [dispatch]);\n var openMenu = useCallback(function () {\n dispatch({\n type: FunctionOpenMenu\n });\n }, [dispatch]);\n var setHighlightedIndex = useCallback(function (newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n var selectItem = useCallback(function (newSelectedItem) {\n dispatch({\n type: FunctionSelectItem,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n var setInputValue = useCallback(function (newInputValue) {\n dispatch({\n type: FunctionSetInputValue,\n inputValue: newInputValue\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset$1\n });\n }, [dispatch]);\n return {\n // prop getters.\n getItemProps: getItemProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getToggleButtonProps: getToggleButtonProps,\n // actions.\n toggleMenu: toggleMenu,\n openMenu: openMenu,\n closeMenu: closeMenu,\n setHighlightedIndex: setHighlightedIndex,\n setInputValue: setInputValue,\n selectItem: selectItem,\n reset: reset,\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nvar defaultStateValues = {\n activeIndex: -1,\n selectedItems: []\n};\n/**\n * Returns the initial value for a state key in the following order:\n * 1. controlled prop, 2. initial prop, 3. default prop, 4. default\n * value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\n\nfunction getInitialValue(props, propKey) {\n return getInitialValue$1(props, propKey, defaultStateValues);\n}\n/**\n * Returns the default value for a state key in the following order:\n * 1. controlled prop, 2. default prop, 3. default value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\n\n\nfunction getDefaultValue(props, propKey) {\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\n/**\n * Gets the initial state based on the provided props. It uses initial, default\n * and controlled props related to state in order to compute the initial value.\n *\n * @param {Object} props Props passed to the hook.\n * @returns {Object} The initial state.\n */\n\n\nfunction getInitialState(props) {\n var activeIndex = getInitialValue(props, 'activeIndex');\n var selectedItems = getInitialValue(props, 'selectedItems');\n return {\n activeIndex: activeIndex,\n selectedItems: selectedItems\n };\n}\n/**\n * Returns true if dropdown keydown operation is permitted. Should not be\n * allowed on keydown with modifier keys (ctrl, alt, shift, meta), on\n * input element with text content that is either highlighted or selection\n * cursor is not at the starting position.\n *\n * @param {KeyboardEvent} event The event from keydown.\n * @returns {boolean} Whether the operation is allowed.\n */\n\n\nfunction isKeyDownOperationPermitted(event) {\n if (event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {\n return false;\n }\n\n var element = event.target;\n\n if (element instanceof HTMLInputElement && // if element is a text input\n element.value !== '' && ( // and we have text in it\n // and cursor is either not at the start or is currently highlighting text.\n element.selectionStart !== 0 || element.selectionEnd !== 0)) {\n return false;\n }\n\n return true;\n}\n/**\n * Check if a state is equal for taglist, by comparing active index and selected items.\n * Used by useSelect and useCombobox.\n *\n * @param {Object} prevState\n * @param {Object} newState\n * @returns {boolean} Wheather the states are deeply equal.\n */\n\n\nfunction isStateEqual(prevState, newState) {\n return prevState.selectedItems === newState.selectedItems && prevState.activeIndex === newState.activeIndex;\n}\n\nvar propTypes = {\n stateReducer: commonPropTypes.stateReducer,\n itemToKey: commonPropTypes.itemToKey,\n environment: commonPropTypes.environment,\n selectedItems: PropTypes.array,\n initialSelectedItems: PropTypes.array,\n defaultSelectedItems: PropTypes.array,\n getA11yStatusMessage: PropTypes.func,\n activeIndex: PropTypes.number,\n initialActiveIndex: PropTypes.number,\n defaultActiveIndex: PropTypes.number,\n onActiveIndexChange: PropTypes.func,\n onSelectedItemsChange: PropTypes.func,\n keyNavigationNext: PropTypes.string,\n keyNavigationPrevious: PropTypes.string\n};\nvar defaultProps = {\n itemToKey: defaultProps$3.itemToKey,\n stateReducer: defaultProps$3.stateReducer,\n environment: defaultProps$3.environment,\n keyNavigationNext: 'ArrowRight',\n keyNavigationPrevious: 'ArrowLeft'\n}; // eslint-disable-next-line import/no-mutable-exports\n\nvar validatePropTypes = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes = function validatePropTypes(options, caller) {\n PropTypes.checkPropTypes(propTypes, options, 'prop', caller.name);\n };\n}\n\nvar SelectedItemClick = process.env.NODE_ENV !== \"production\" ? '__selected_item_click__' : 0;\nvar SelectedItemKeyDownDelete = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_delete__' : 1;\nvar SelectedItemKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_backspace__' : 2;\nvar SelectedItemKeyDownNavigationNext = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_next__' : 3;\nvar SelectedItemKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_previous__' : 4;\nvar DropdownKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_navigation_previous__' : 5;\nvar DropdownKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_backspace__' : 6;\nvar DropdownClick = process.env.NODE_ENV !== \"production\" ? '__dropdown_click__' : 7;\nvar FunctionAddSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_add_selected_item__' : 8;\nvar FunctionRemoveSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_remove_selected_item__' : 9;\nvar FunctionSetSelectedItems = process.env.NODE_ENV !== \"production\" ? '__function_set_selected_items__' : 10;\nvar FunctionSetActiveIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_active_index__' : 11;\nvar FunctionReset = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 12;\nvar stateChangeTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DropdownClick: DropdownClick,\n DropdownKeyDownBackspace: DropdownKeyDownBackspace,\n DropdownKeyDownNavigationPrevious: DropdownKeyDownNavigationPrevious,\n FunctionAddSelectedItem: FunctionAddSelectedItem,\n FunctionRemoveSelectedItem: FunctionRemoveSelectedItem,\n FunctionReset: FunctionReset,\n FunctionSetActiveIndex: FunctionSetActiveIndex,\n FunctionSetSelectedItems: FunctionSetSelectedItems,\n SelectedItemClick: SelectedItemClick,\n SelectedItemKeyDownBackspace: SelectedItemKeyDownBackspace,\n SelectedItemKeyDownDelete: SelectedItemKeyDownDelete,\n SelectedItemKeyDownNavigationNext: SelectedItemKeyDownNavigationNext,\n SelectedItemKeyDownNavigationPrevious: SelectedItemKeyDownNavigationPrevious\n});\n/* eslint-disable complexity */\n\nfunction downshiftMultipleSelectionReducer(state, action) {\n var type = action.type,\n index = action.index,\n props = action.props,\n selectedItem = action.selectedItem;\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems;\n var changes;\n\n switch (type) {\n case SelectedItemClick:\n changes = {\n activeIndex: index\n };\n break;\n\n case SelectedItemKeyDownNavigationPrevious:\n changes = {\n activeIndex: activeIndex - 1 < 0 ? 0 : activeIndex - 1\n };\n break;\n\n case SelectedItemKeyDownNavigationNext:\n changes = {\n activeIndex: activeIndex + 1 >= selectedItems.length ? -1 : activeIndex + 1\n };\n break;\n\n case SelectedItemKeyDownBackspace:\n case SelectedItemKeyDownDelete:\n {\n if (activeIndex < 0) {\n break;\n }\n\n var newActiveIndex = activeIndex;\n\n if (selectedItems.length === 1) {\n newActiveIndex = -1;\n } else if (activeIndex === selectedItems.length - 1) {\n newActiveIndex = selectedItems.length - 2;\n }\n\n changes = _extends({\n selectedItems: [].concat(selectedItems.slice(0, activeIndex), selectedItems.slice(activeIndex + 1))\n }, {\n activeIndex: newActiveIndex\n });\n break;\n }\n\n case DropdownKeyDownNavigationPrevious:\n changes = {\n activeIndex: selectedItems.length - 1\n };\n break;\n\n case DropdownKeyDownBackspace:\n changes = {\n selectedItems: selectedItems.slice(0, selectedItems.length - 1)\n };\n break;\n\n case FunctionAddSelectedItem:\n changes = {\n selectedItems: [].concat(selectedItems, [selectedItem])\n };\n break;\n\n case DropdownClick:\n changes = {\n activeIndex: -1\n };\n break;\n\n case FunctionRemoveSelectedItem:\n {\n var _newActiveIndex = activeIndex;\n var selectedItemIndex = selectedItems.findIndex(function (item) {\n return props.itemToKey(item) === props.itemToKey(selectedItem);\n });\n\n if (selectedItemIndex < 0) {\n break;\n }\n\n if (selectedItems.length === 1) {\n _newActiveIndex = -1;\n } else if (selectedItemIndex === selectedItems.length - 1) {\n _newActiveIndex = selectedItems.length - 2;\n }\n\n changes = {\n selectedItems: [].concat(selectedItems.slice(0, selectedItemIndex), selectedItems.slice(selectedItemIndex + 1)),\n activeIndex: _newActiveIndex\n };\n break;\n }\n\n case FunctionSetSelectedItems:\n {\n var newSelectedItems = action.selectedItems;\n changes = {\n selectedItems: newSelectedItems\n };\n break;\n }\n\n case FunctionSetActiveIndex:\n {\n var _newActiveIndex2 = action.activeIndex;\n changes = {\n activeIndex: _newActiveIndex2\n };\n break;\n }\n\n case FunctionReset:\n changes = {\n activeIndex: getDefaultValue(props, 'activeIndex'),\n selectedItems: getDefaultValue(props, 'selectedItems')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, changes);\n}\n\nvar _excluded = [\"refKey\", \"ref\", \"onClick\", \"onKeyDown\", \"selectedItem\", \"index\"],\n _excluded2 = [\"refKey\", \"ref\", \"onKeyDown\", \"onClick\", \"preventKeyAction\"];\nuseMultipleSelection.stateChangeTypes = stateChangeTypes;\n\nfunction useMultipleSelection(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes(userProps, useMultipleSelection); // Props defaults and destructuring.\n\n var props = _extends({}, defaultProps, userProps);\n\n var getA11yStatusMessage = props.getA11yStatusMessage,\n environment = props.environment,\n keyNavigationNext = props.keyNavigationNext,\n keyNavigationPrevious = props.keyNavigationPrevious; // Reducer init.\n\n var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, props, getInitialState, isStateEqual),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems; // Refs.\n\n var isInitialMount = useIsInitialMount();\n var dropdownRef = useRef(null);\n var selectedItemRefs = useRef();\n selectedItemRefs.current = [];\n var latest = useLatestRef({\n state: state,\n props: props\n }); // Effects.\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n\n useA11yMessageStatus(getA11yStatusMessage, state, [activeIndex, selectedItems], environment); // Sets focus on active item.\n\n useEffect(function () {\n if (isInitialMount) {\n return;\n }\n\n if (activeIndex === -1 && dropdownRef.current) {\n dropdownRef.current.focus();\n } else if (selectedItemRefs.current[activeIndex]) {\n selectedItemRefs.current[activeIndex].focus();\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [activeIndex]);\n useControlPropsValidator({\n props: props,\n state: state\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getDropdownProps'); // Event handler functions.\n\n var selectedItemKeyDownHandlers = useMemo(function () {\n var _ref;\n\n return _ref = {}, _ref[keyNavigationPrevious] = function () {\n dispatch({\n type: SelectedItemKeyDownNavigationPrevious\n });\n }, _ref[keyNavigationNext] = function () {\n dispatch({\n type: SelectedItemKeyDownNavigationNext\n });\n }, _ref.Delete = function Delete() {\n dispatch({\n type: SelectedItemKeyDownDelete\n });\n }, _ref.Backspace = function Backspace() {\n dispatch({\n type: SelectedItemKeyDownBackspace\n });\n }, _ref;\n }, [dispatch, keyNavigationNext, keyNavigationPrevious]);\n var dropdownKeyDownHandlers = useMemo(function () {\n var _ref2;\n\n return _ref2 = {}, _ref2[keyNavigationPrevious] = function (event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownNavigationPrevious\n });\n }\n }, _ref2.Backspace = function Backspace(event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownBackspace\n });\n }\n }, _ref2;\n }, [dispatch, keyNavigationPrevious]); // Getter props.\n\n var getSelectedItemProps = useCallback(function (_temp) {\n var _extends2;\n\n var _ref3 = _temp === void 0 ? {} : _temp,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onClick = _ref3.onClick,\n onKeyDown = _ref3.onKeyDown,\n selectedItemProp = _ref3.selectedItem,\n indexProp = _ref3.index,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var latestState = latest.current.state;\n\n var _getItemAndIndex = getItemAndIndex(selectedItemProp, indexProp, latestState.selectedItems, 'Pass either item or index to getSelectedItemProps!'),\n index = _getItemAndIndex[1];\n\n var isFocusable = index > -1 && index === latestState.activeIndex;\n\n var selectedItemHandleClick = function selectedItemHandleClick() {\n dispatch({\n type: SelectedItemClick,\n index: index\n });\n };\n\n var selectedItemHandleKeyDown = function selectedItemHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && selectedItemKeyDownHandlers[key]) {\n selectedItemKeyDownHandlers[key](event);\n }\n };\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (selectedItemNode) {\n if (selectedItemNode) {\n selectedItemRefs.current.push(selectedItemNode);\n }\n }), _extends2.tabIndex = isFocusable ? 0 : -1, _extends2.onClick = callAllEventHandlers(onClick, selectedItemHandleClick), _extends2.onKeyDown = callAllEventHandlers(onKeyDown, selectedItemHandleKeyDown), _extends2), rest);\n }, [dispatch, latest, selectedItemKeyDownHandlers]);\n var getDropdownProps = useCallback(function (_temp2, _temp3) {\n var _extends3;\n\n var _ref4 = _temp2 === void 0 ? {} : _temp2,\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n ref = _ref4.ref,\n onKeyDown = _ref4.onKeyDown,\n onClick = _ref4.onClick,\n _ref4$preventKeyActio = _ref4.preventKeyAction,\n preventKeyAction = _ref4$preventKeyActio === void 0 ? false : _ref4$preventKeyActio,\n rest = _objectWithoutPropertiesLoose(_ref4, _excluded2);\n\n var _ref5 = _temp3 === void 0 ? {} : _temp3,\n _ref5$suppressRefErro = _ref5.suppressRefError,\n suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;\n\n setGetterPropCallInfo('getDropdownProps', suppressRefError, refKey, dropdownRef);\n\n var dropdownHandleKeyDown = function dropdownHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && dropdownKeyDownHandlers[key]) {\n dropdownKeyDownHandlers[key](event);\n }\n };\n\n var dropdownHandleClick = function dropdownHandleClick() {\n dispatch({\n type: DropdownClick\n });\n };\n\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (dropdownNode) {\n if (dropdownNode) {\n dropdownRef.current = dropdownNode;\n }\n }), _extends3), !preventKeyAction && {\n onKeyDown: callAllEventHandlers(onKeyDown, dropdownHandleKeyDown),\n onClick: callAllEventHandlers(onClick, dropdownHandleClick)\n }, rest);\n }, [dispatch, dropdownKeyDownHandlers, setGetterPropCallInfo]); // returns\n\n var addSelectedItem = useCallback(function (selectedItem) {\n dispatch({\n type: FunctionAddSelectedItem,\n selectedItem: selectedItem\n });\n }, [dispatch]);\n var removeSelectedItem = useCallback(function (selectedItem) {\n dispatch({\n type: FunctionRemoveSelectedItem,\n selectedItem: selectedItem\n });\n }, [dispatch]);\n var setSelectedItems = useCallback(function (newSelectedItems) {\n dispatch({\n type: FunctionSetSelectedItems,\n selectedItems: newSelectedItems\n });\n }, [dispatch]);\n var setActiveIndex = useCallback(function (newActiveIndex) {\n dispatch({\n type: FunctionSetActiveIndex,\n activeIndex: newActiveIndex\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset\n });\n }, [dispatch]);\n return {\n getSelectedItemProps: getSelectedItemProps,\n getDropdownProps: getDropdownProps,\n addSelectedItem: addSelectedItem,\n removeSelectedItem: removeSelectedItem,\n setSelectedItems: setSelectedItems,\n setActiveIndex: setActiveIndex,\n reset: reset,\n selectedItems: selectedItems,\n activeIndex: activeIndex\n };\n}\n\nexport { Downshift$1 as default, resetIdCounter, useCombobox, useMultipleSelection, useSelect };","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n\n\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar stringTag = '[object String]';\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n\nfunction isString(value) {\n return typeof value == 'string' || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag;\n}\n\nmodule.exports = isString;","module.exports = __webpack_public_path__ + \"media/crosses/close-icon--white-d5df7380.svg\";","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'moins d’une seconde',\n other: 'moins de {{count}} secondes'\n },\n xSeconds: {\n one: '1 seconde',\n other: '{{count}} secondes'\n },\n halfAMinute: '30 secondes',\n lessThanXMinutes: {\n one: 'moins d’une minute',\n other: 'moins de {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'environ 1 heure',\n other: 'environ {{count}} heures'\n },\n xHours: {\n one: '1 heure',\n other: '{{count}} heures'\n },\n xDays: {\n one: '1 jour',\n other: '{{count}} jours'\n },\n aboutXWeeks: {\n one: 'environ 1 semaine',\n other: 'environ {{count}} semaines'\n },\n xWeeks: {\n one: '1 semaine',\n other: '{{count}} semaines'\n },\n aboutXMonths: {\n one: 'environ 1 mois',\n other: 'environ {{count}} mois'\n },\n xMonths: {\n one: '1 mois',\n other: '{{count}} mois'\n },\n aboutXYears: {\n one: 'environ 1 an',\n other: 'environ {{count}} ans'\n },\n xYears: {\n one: '1 an',\n other: '{{count}} ans'\n },\n overXYears: {\n one: 'plus d’un an',\n other: 'plus de {{count}} ans'\n },\n almostXYears: {\n one: 'presqu’un an',\n other: 'presque {{count}} ans'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'dans ' + result;\n } else {\n return 'il y a ' + result;\n }\n }\n\n return result;\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'à ' {{time}}\",\n long: \"{{date}} 'à ' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"eeee 'dernier à ' p\",\n yesterday: \"'hier à ' p\",\n today: \"'aujourd’hui à ' p\",\n tomorrow: \"'demain à ' p'\",\n nextWeek: \"eeee 'prochain à ' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['av. J.-C', 'ap. J.-C'],\n abbreviated: ['av. J.-C', 'ap. J.-C'],\n wide: ['avant Jésus-Christ', 'après Jésus-Christ']\n};\nvar quarterValues = {\n narrow: ['T1', 'T2', 'T3', 'T4'],\n abbreviated: ['1er trim.', '2ème trim.', '3ème trim.', '4ème trim.'],\n wide: ['1er trimestre', '2ème trimestre', '3ème trimestre', '4ème trimestre']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],\n wide: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']\n};\nvar dayValues = {\n narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],\n short: ['di', 'lu', 'ma', 'me', 'je', 've', 'sa'],\n abbreviated: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],\n wide: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'mat.',\n afternoon: 'ap.m.',\n evening: 'soir',\n night: 'mat.'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'matin',\n afternoon: 'après-midi',\n evening: 'soir',\n night: 'matin'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'du matin',\n afternoon: 'de l’après-midi',\n evening: 'du soir',\n night: 'du matin'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, dirtyOptions) {\n var number = Number(dirtyNumber);\n var options = dirtyOptions || {};\n var unit = String(options.unit);\n var suffix;\n\n if (number === 0) {\n return number;\n }\n\n if (unit === 'year' || unit === 'hour' || unit === 'week') {\n if (number === 1) {\n suffix = 'ère';\n } else {\n suffix = 'ème';\n }\n } else {\n if (number === 1) {\n suffix = 'er';\n } else {\n suffix = 'ème';\n }\n }\n\n return number + suffix;\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary French locale.\n * @language French\n * @iso-639-2 fra\n * @author Jean Dupouy [@izeau]{@link https://github.com/izeau}\n * @author François B [@fbonzon]{@link https://github.com/fbonzon}\n */\n\nvar locale = {\n code: 'fr',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(ième|ère|ème|er|e)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(av\\.J\\.C|ap\\.J\\.C|ap\\.J\\.-C)/i,\n abbreviated: /^(av\\.J\\.-C|av\\.J-C|apr\\.J\\.-C|apr\\.J-C|ap\\.J-C)/i,\n wide: /^(avant Jésus-Christ|après Jésus-Christ)/i\n};\nvar parseEraPatterns = {\n any: [/^av/i, /^ap/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^t[1234]/i,\n wide: /^[1234](er|ème|e)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\\.?/i,\n wide: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^av/i, /^ma/i, /^juin/i, /^juil/i, /^ao/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[lmjvsd]/i,\n short: /^(di|lu|ma|me|je|ve|sa)/i,\n abbreviated: /^(dim|lun|mar|mer|jeu|ven|sam)\\.?/i,\n wide: /^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n any: [/^di/i, /^lu/i, /^ma/i, /^me/i, /^je/i, /^ve/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|minuit|midi|mat\\.?|ap\\.?m\\.?|soir|nuit)/i,\n any: /^([ap]\\.?\\s?m\\.?|du matin|de l'après[-\\s]midi|du soir|de la nuit)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^min/i,\n noon: /^mid/i,\n morning: /mat/i,\n afternoon: /ap/i,\n evening: /soir/i,\n night: /nuit/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","// @noflow\n\n/* eslint-disable i18next/no-literal-string */\nimport React, { useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { AnalyticsProps, trackEvent } from '@/services/segment'\n\nimport useBoolean from '@/hooks/useBoolean'\n\nimport Text, {\n AllowedColours,\n Props as TextProps\n} from '@/components/shared/elements/Text/Text'\n\nimport STYLES from './Button.module.sass'\n\nimport { ButtonSkeleton, Props as ButtonSkeletonProps } from './ButtonSkeleton'\n\ntype Variant =\n | 'primary'\n | 'secondary'\n | 'ghost'\n | 'facebook'\n | 'whatsApp'\n | 'linkWhiteBG'\n | 'ghostWhiteText'\n | 'link'\n\ntype Size = 'large' | 'regular' | 'slim'\ntype Icon = {\n component: JSX.Element | undefined\n position: 'left' | 'right'\n}\ntype DisplayText = 'always' | 'never' | 'mobileOnly' | 'desktopOnly'\n\ntype Event =\n | React.MouseEvent<HTMLButtonElement>\n | React.KeyboardEvent<HTMLButtonElement>\n\ntype Skeleton = {\n isLoading: boolean\n} & ButtonSkeletonProps\n\ntype ButtonProps = {\n id?: string\n dataTestId?: string\n typography?: TextProps\n variant?: Variant\n size?: Size\n disabled?: boolean\n displayText?: DisplayText\n icon?: Icon | null | undefined\n skeleton?: Skeleton\n onClick?: (e: Event) => void\n disabledOnClick?: (e: Event) => void\n fullWidth?: boolean\n smallPadding?: boolean\n}\n\ntype Props = ButtonProps &\n AnalyticsProps & { ref?: React.RefObject<HTMLElement> }\n\nconst LARGE_BUTTON_SIZE = 60\nconst REGULAR_BUTTON_SIZE = 40\nconst SLIM_BUTTON_SIZE = 30\n\n/**\n * Button component\n *\n * Use this component to render a button.\n *\n * This component has two states of analytics:\n * Analytics enabled (defaults to `true`)\n * - `identifier` is required - identifier of the button using the\n * `app_place.component_identifier` format\n * - `trackDisabledPresses` is optional - boolean that appends `.disabled` to the `identifier`\n * - `screenIdentifier` is optional - identifier of the screen where the button is located\n *\n * Analytics disabled (defaults to `false`)\n * - `disableAnalytics` is required to be `true` - disables analytics\n * - `identifier`, `trackDisabledPresses` and `screenIdentifier` are not valid in this case\n *\n * @example\n ```\n import { Button } from 'components/shared/elements/Button/Button'\n\n <Button\n identifier=\"example_screen.update_action\"\n trackDisabledPresses\n variant=\"primary\"\n size=\"regular\"\n typography={{\n text: 'translation.path.text',\n namespace: 'example-namespace',\n }}\n onClick={handeOnClick}\n disabled={isDisabled}\n disabledOnClick={handleDisabledOnClick}\n />\n ```\n *\n * @param {TextProps} [typography] - text of the button\n * @param {'primary' | 'secondary' | 'ghost'} [variant='primary'] - variant of the button\n * @param {'large' | 'regular' | 'slim'} [size='regular'] - size of the button\n * @param {boolean} [disabled=false] - is disabled flag\n * @param {'always' | 'never' | 'mobileOnly' | 'desktopOnly'} [displayText='always'] - display text flag\n * @param {Icon} [icon=null] - icon of the button\n * @param {Skeleton} [skeleton] - skeleton\n * @param {boolean} [fulllWidth=false] - fulllWidth flag\n * @param {Function} onClick - on click event\n * @param {Function} [disabledOnClick] - on click event when disabled\n * @param {boolean} [disableAnalytics=false] - disables analytics\n * @param {string} identifier - identifier of the button using the `app_place.component_identifier` format\n * @param {boolean} [trackDisabledPresses=false] - boolean that appends `.disabled` to the `identifier`\n * @param {string} [screenIdentifier=null] - identifier of the screen where the button is located\n * @param {string} [smallPadding=false] - Deprecated: smaller padding flag\n * @category Components\n * @subcategory Atoms\n * @returns {JSX.Element} - button component\n */\nconst Button = ({\n id,\n dataTestId,\n typography: typographyProps,\n variant = 'primary',\n size = 'regular',\n disabled = false,\n displayText = 'always',\n icon = null,\n skeleton,\n fullWidth = false,\n onClick,\n disabledOnClick,\n disableAnalytics = false,\n identifier,\n trackDisabledPresses = false,\n screenIdentifier = null,\n smallPadding = false\n}: Props): JSX.Element => {\n const typography = {\n translate: true,\n ...(typographyProps as TextProps)\n }\n const { t } = useTranslation(typography?.namespace)\n\n const {\n value: pressed,\n setTrue: setPressed,\n setFalse: setUnpressed\n } = useBoolean(false)\n\n const variantToTextColor = ((): AllowedColours => {\n switch (variant) {\n case 'primary': {\n return 'brandWhite'\n }\n case 'secondary':\n case 'ghost': {\n return disabled ? 'brandRed300' : 'brandRed400'\n }\n default: {\n return 'brandWhite'\n }\n }\n })()\n\n const sizeToButtonHeight = ((): number => {\n switch (size) {\n case 'large': {\n return LARGE_BUTTON_SIZE\n }\n case 'regular': {\n return REGULAR_BUTTON_SIZE\n }\n case 'slim': {\n return SLIM_BUTTON_SIZE\n }\n default: {\n return REGULAR_BUTTON_SIZE\n }\n }\n })()\n\n const iconPositionToClass = ((): string => {\n if (!icon) {\n return ''\n }\n\n const { position } = icon\n\n // Formats the position string by capitalizing the first letter.\n const formattedPosition =\n position.charAt(0).toUpperCase() + position.slice(1)\n\n return STYLES[`icon${formattedPosition}` as 'iconLeft' | 'iconRight']\n })()\n\n // Handlers\n const handleTrackEvent = useCallback(\n (componentIdentifier: string): void => {\n trackEvent('Component Clicked', {\n component_identifier: componentIdentifier,\n ...(screenIdentifier ? { screen_identifier: screenIdentifier } : {})\n })\n },\n [screenIdentifier]\n )\n\n const handleOnClick = useCallback(\n (event: Event): void => {\n if (!pressed) {\n if (disabled) {\n disabledOnClick && disabledOnClick(event)\n\n /**\n * If the button is disabled, we still can track the event.\n * Analytics has to be enabled (defaults to `true`) and the `trackDisabledPresses` has\n * to be provided (defaults to `null`).\n */\n if (!disableAnalytics && trackDisabledPresses) {\n handleTrackEvent(`${identifier}.disabled`)\n }\n } else if (onClick) {\n onClick(event)\n\n // If the button and analytics are enabled, we track the event.\n if (!disableAnalytics && identifier) {\n handleTrackEvent(identifier)\n }\n }\n }\n },\n [\n pressed,\n disabled,\n disabledOnClick,\n onClick,\n disableAnalytics,\n identifier,\n trackDisabledPresses,\n handleTrackEvent\n ]\n )\n\n // Animation handlers\n const handleOnPressed = useCallback(() => {\n if (!disabled || disabledOnClick) {\n setPressed()\n }\n }, [setPressed, disabled, disabledOnClick])\n\n const handleOnUnpressed = useCallback(() => {\n if (!disabled || disabledOnClick) {\n setUnpressed()\n }\n }, [setUnpressed, disabled, disabledOnClick])\n\n // Keyboard handlers\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'Enter' && !pressed) {\n handleOnPressed()\n handleOnClick(event)\n }\n },\n [handleOnPressed, pressed, handleOnClick]\n )\n\n const handleKeyUp = useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'Enter') {\n handleOnUnpressed()\n }\n },\n [handleOnUnpressed]\n )\n\n if (skeleton?.isLoading) {\n return <ButtonSkeleton height={sizeToButtonHeight} {...skeleton} />\n }\n\n return (\n <button\n id={id}\n className={`${STYLES.button} ${STYLES[variant]} ${\n STYLES[size]\n } ${iconPositionToClass} ${disabled ? STYLES.disabled : ''} ${\n fullWidth ? STYLES.fullWidth : ''\n } ${smallPadding ? STYLES.smallPadding : ''}`}\n type=\"button\"\n aria-label={\n typography?.translate\n ? t(typography?.text)\n : (typography?.text as string)\n }\n aria-disabled={disabled}\n onClick={handleOnClick}\n onMouseDown={handleOnPressed}\n onMouseUp={handleOnUnpressed}\n onMouseLeave={handleOnUnpressed}\n onTouchStart={handleOnPressed}\n onTouchEnd={handleOnUnpressed}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n data-testid={dataTestId}\n >\n {icon && (\n <div\n className={`${iconPositionToClass} ${\n displayText === 'never' ? STYLES.iconOnly : ''\n }`}\n aria-label={\n typography?.translate\n ? `${t(typography?.text)} icon`\n : `${typography?.text} icon`\n }\n >\n {icon.component}\n </div>\n )}\n\n {displayText !== 'never' && typography && (\n <div className={`${STYLES.buttonText} ${STYLES[displayText]}`}>\n <Text\n {...typography}\n dataTestId={`${dataTestId}-text`}\n text={typography.text}\n variant={size === 'slim' ? 'textMono16' : 'textMono18'}\n colour={variantToTextColor}\n margin={false}\n shouldScale={false}\n element=\"span\"\n />\n </div>\n )}\n </button>\n )\n}\n\nexport type { Props, Event }\n\nexport { Button }\n","export var NetworkStatus;\n\n(function (NetworkStatus) {\n NetworkStatus[NetworkStatus[\"loading\"] = 1] = \"loading\";\n NetworkStatus[NetworkStatus[\"setVariables\"] = 2] = \"setVariables\";\n NetworkStatus[NetworkStatus[\"fetchMore\"] = 3] = \"fetchMore\";\n NetworkStatus[NetworkStatus[\"refetch\"] = 4] = \"refetch\";\n NetworkStatus[NetworkStatus[\"poll\"] = 6] = \"poll\";\n NetworkStatus[NetworkStatus[\"ready\"] = 7] = \"ready\";\n NetworkStatus[NetworkStatus[\"error\"] = 8] = \"error\";\n})(NetworkStatus || (NetworkStatus = {}));\n\nexport function isNetworkRequestInFlight(networkStatus) {\n return networkStatus ? networkStatus < 7 : false;\n}","// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nconst debounce = (func: (...args: any[]) => void, wait: number) => {\n let timeout: ReturnType<typeof setTimeout> | null\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function executedFunction(...args: any[]) {\n const later = () => {\n timeout = null\n func(...args)\n }\n\n if (timeout) {\n clearTimeout(timeout)\n }\n\n timeout = setTimeout(later, wait)\n }\n}\n\nexport default debounce\n","// @noflow\nimport { useLazyQuery } from '@apollo/client'\nimport { useCombobox } from 'downshift'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport debounce from '@/utils/debounce'\nimport * as Sentry from '@/utils/sentry'\n\nimport withApollo from '@/components/apollo/withApollo'\n\nimport { HOME_BREED_SELECTOR_QUERY } from '../../queries/homeBreedSelectorQuery'\n\nimport type {\n HomeBreedSelectorQuery_breeds as Breed,\n HomeBreedSelectorQuery,\n HomeBreedSelectorQueryVariables\n} from '../../queries/__generated__/HomeBreedSelectorQuery'\n\nimport { BreedSelectorVariant } from '../../BreedSelector'\nimport ExpandableIconButton from '../ExpandableIconButton/ExpandableIconButton'\n\ntype Props = {\n loadingPlaceholder: string\n placeholder: string\n initialValue?: Breed\n customRef?: React.RefObject<HTMLInputElement>\n embeddedCTA?: boolean\n onClickCTA?: () => void\n variant?: BreedSelectorVariant\n size?: number\n events: {\n onBreedSelection: (breed: Breed) => void\n onListOpen: () => void\n onFocus: () => void\n onInputEmpty: () => void\n }\n}\n\nconst BreedAutocomplete = ({\n loadingPlaceholder,\n placeholder,\n events,\n initialValue,\n customRef,\n onClickCTA,\n embeddedCTA = false,\n variant = BreedSelectorVariant.Generic,\n size\n}: Props): JSX.Element | null => {\n const { onListOpen, onBreedSelection, onInputEmpty } = events\n\n const namespace = 'paid_traffic'\n const [breeds, setBreeds] = useState<Breed[]>([])\n const [toggleIconButton, setToggleIconButton] = useState(false)\n\n const { t } = useTranslation(namespace)\n const [findBreeds, { loading, data, error }] = useLazyQuery<\n HomeBreedSelectorQuery,\n HomeBreedSelectorQueryVariables\n >(HOME_BREED_SELECTOR_QUERY)\n\n const debouncedFindBreeds = useMemo(\n () =>\n debounce((inputValue) => {\n findBreeds(inputValue)\n }, 500),\n [findBreeds]\n )\n\n const mixedBreed: Breed = useMemo(() => {\n return {\n __typename: 'Breed',\n id: '260',\n key: 'mixed_breed',\n name: t('breeds.mixed_breed.name', { ns: 'models' }),\n popular: false\n }\n }, [t])\n\n const otherBreed: Breed = useMemo(() => {\n return {\n __typename: 'Breed',\n id: '260',\n key: 'other',\n name: t('breeds.other.name', { ns: 'models' }),\n popular: false\n }\n }, [t])\n\n const {\n isOpen,\n getMenuProps,\n getInputProps,\n getItemProps,\n closeMenu,\n highlightedIndex,\n inputValue\n } = useCombobox({\n initialSelectedItem: initialValue,\n items: breeds,\n itemToString: (breed) => (breed ? breed.name : ''),\n onSelectedItemChange: ({ selectedItem }) => {\n if (selectedItem) {\n onBreedSelection(selectedItem)\n }\n },\n onInputValueChange: ({ inputValue, type }) => {\n if (!inputValue) {\n setToggleIconButton(false)\n closeMenu()\n onInputEmpty()\n return\n }\n setToggleIconButton(true)\n\n // If the user clicks on an item, don't make a request\n if (type !== useCombobox.stateChangeTypes.ItemClick) {\n debouncedFindBreeds({ variables: { name: inputValue } })\n }\n\n // If we can't match a breed, ensure the user always sees a\n // 'Mixed breed' and 'Other' option\n if (data?.breeds && data.breeds.length > 0) {\n setBreeds([...data.breeds])\n } else {\n setBreeds([mixedBreed, otherBreed])\n }\n },\n stateReducer: (state, actionAndChanges) => {\n const { type: actionAndChangesType, changes } = actionAndChanges\n switch (actionAndChangesType) {\n case useCombobox.stateChangeTypes.InputBlur:\n setToggleIconButton(false)\n return {\n ...changes,\n selectedItem: null\n }\n default:\n return changes\n }\n }\n })\n\n const onInputFocus = useCallback(() => {\n events.onFocus && events.onFocus()\n if (!inputValue) {\n debouncedFindBreeds({\n variables: { popular: variant !== BreedSelectorVariant.Homepage }\n })\n }\n setToggleIconButton(true)\n }, [debouncedFindBreeds, events, variant, inputValue])\n\n const showResults = isOpen && !loading && breeds.length > 0\n\n React.useEffect(() => {\n if (!loading && data) {\n if (data.breeds.length > 0) {\n setBreeds(data.breeds)\n } else {\n setBreeds([mixedBreed, otherBreed])\n }\n }\n }, [data, loading, mixedBreed, otherBreed])\n\n React.useEffect(() => {\n if (showResults) {\n onListOpen()\n }\n }, [showResults, onListOpen])\n\n if (error) {\n Sentry.captureException(`Error in BREED_SELECTOR_QUERY`, {\n extra: { error: error }\n })\n return null\n }\n\n return (\n <div className=\"breed-autocomplete__container\">\n <div\n className={`breed-autocomplete__breed-selector-wrapper ${\n showResults ? 'expanded' : ''\n } ${\n variant === BreedSelectorVariant.Homepage\n ? 'breed-autocomplete__breed-selector-wrapper--homepage'\n : ''\n }`}\n >\n <input\n className=\"breed-autocomplete__input-field text-regular-28\"\n {...getInputProps({\n placeholder: loading ? loadingPlaceholder : placeholder,\n onFocus: onInputFocus,\n ref: customRef,\n size: size\n })}\n />\n {onClickCTA &&\n embeddedCTA &&\n variant !== BreedSelectorVariant.Homepage && (\n <div className=\"breed-autocomplete__build-box-button-wrapper\">\n <ExpandableIconButton\n toggleIconButton={toggleIconButton}\n text={'breed_autocomplete.feedback.cta_build_your_box_v2'}\n namespace={namespace}\n onClick={onClickCTA}\n />\n </div>\n )}\n </div>\n <div\n className={`breed-autocomplete__results-list-wrapper ${\n !showResults ? 'hidden' : ''\n } ${\n variant === BreedSelectorVariant.Homepage\n ? 'breed-autocomplete__results-list-wrapper--homepage'\n : ''\n }`}\n >\n <ul\n className={`breed-autocomplete__results-list-wrapper__results-list ${\n !showResults ? 'hidden' : ''\n }`}\n aria-label=\"Breed list\"\n {...getMenuProps()}\n >\n {showResults &&\n breeds.map((breed, index) => (\n <li\n className={`${\n highlightedIndex === index\n ? 'breed-autocomplete__highlighted'\n : ''\n }`}\n key={breed.key}\n {...getItemProps({\n item: breed,\n index\n })}\n >\n {breed.name}\n </li>\n ))}\n </ul>\n </div>\n {!showResults &&\n variant === BreedSelectorVariant.Homepage &&\n onClickCTA && (\n <button\n className=\"btn primary full-width\"\n type=\"button\"\n onClick={onClickCTA}\n >\n {t('hero_section.button_html')}\n </button>\n )}\n </div>\n )\n}\n\nexport default withApollo(BreedAutocomplete)\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","module.exports = __webpack_public_path__ + \"media/flags/gb-flag-12c61058.svg\";","var _a = Object.prototype,\n toString = _a.toString,\n hasOwnProperty = _a.hasOwnProperty;\nvar fnToStr = Function.prototype.toString;\nvar previousComparisons = new Map();\n/**\r\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\r\n */\n\nfunction equal(a, b) {\n try {\n return check(a, b);\n } finally {\n previousComparisons.clear();\n }\n}\n\nfunction check(a, b) {\n // If the two values are strictly equal, our job is easy.\n if (a === b) {\n return true;\n } // Object.prototype.toString returns a representation of the runtime type of\n // the given value that is considerably more precise than typeof.\n\n\n var aTag = toString.call(a);\n var bTag = toString.call(b); // If the runtime types of a and b are different, they could maybe be equal\n // under some interpretation of equality, but for simplicity and performance\n // we just return false instead.\n\n if (aTag !== bTag) {\n return false;\n }\n\n switch (aTag) {\n case '[object Array]':\n // Arrays are a lot like other objects, but we can cheaply compare their\n // lengths as a short-cut before comparing their elements.\n if (a.length !== b.length) return false;\n // Fall through to object case...\n\n case '[object Object]':\n {\n if (previouslyCompared(a, b)) return true;\n var aKeys = definedKeys(a);\n var bKeys = definedKeys(b); // If `a` and `b` have a different number of enumerable keys, they\n // must be different.\n\n var keyCount = aKeys.length;\n if (keyCount !== bKeys.length) return false; // Now make sure they have the same keys.\n\n for (var k = 0; k < keyCount; ++k) {\n if (!hasOwnProperty.call(b, aKeys[k])) {\n return false;\n }\n } // Finally, check deep equality of all child properties.\n\n\n for (var k = 0; k < keyCount; ++k) {\n var key = aKeys[k];\n\n if (!check(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n case '[object Error]':\n return a.name === b.name && a.message === b.message;\n\n case '[object Number]':\n // Handle NaN, which is !== itself.\n if (a !== a) return b !== b;\n // Fall through to shared +a === +b case...\n\n case '[object Boolean]':\n case '[object Date]':\n return +a === +b;\n\n case '[object RegExp]':\n case '[object String]':\n return a == \"\" + b;\n\n case '[object Map]':\n case '[object Set]':\n {\n if (a.size !== b.size) return false;\n if (previouslyCompared(a, b)) return true;\n var aIterator = a.entries();\n var isMap = aTag === '[object Map]';\n\n while (true) {\n var info = aIterator.next();\n if (info.done) break; // If a instanceof Set, aValue === aKey.\n\n var _a = info.value,\n aKey = _a[0],\n aValue = _a[1]; // So this works the same way for both Set and Map.\n\n if (!b.has(aKey)) {\n return false;\n } // However, we care about deep equality of values only when dealing\n // with Map structures.\n\n\n if (isMap && !check(aValue, b.get(aKey))) {\n return false;\n }\n }\n\n return true;\n }\n\n case '[object Uint16Array]':\n case '[object Uint8Array]': // Buffer, in Node.js.\n\n case '[object Uint32Array]':\n case '[object Int32Array]':\n case '[object Int8Array]':\n case '[object Int16Array]':\n case '[object ArrayBuffer]':\n // DataView doesn't need these conversions, but the equality check is\n // otherwise the same.\n a = new Uint8Array(a);\n b = new Uint8Array(b);\n // Fall through...\n\n case '[object DataView]':\n {\n var len = a.byteLength;\n\n if (len === b.byteLength) {\n while (len-- && a[len] === b[len]) {// Keep looping as long as the bytes are equal.\n }\n }\n\n return len === -1;\n }\n\n case '[object AsyncFunction]':\n case '[object GeneratorFunction]':\n case '[object AsyncGeneratorFunction]':\n case '[object Function]':\n {\n var aCode = fnToStr.call(a);\n\n if (aCode !== fnToStr.call(b)) {\n return false;\n } // We consider non-native functions equal if they have the same code\n // (native functions require === because their code is censored).\n // Note that this behavior is not entirely sound, since !== function\n // objects with the same code can behave differently depending on\n // their closure scope. However, any function can behave differently\n // depending on the values of its input arguments (including this)\n // and its calling context (including its closure scope), even\n // though the function object is === to itself; and it is entirely\n // possible for functions that are not === to behave exactly the\n // same under all conceivable circumstances. Because none of these\n // factors are statically decidable in JavaScript, JS function\n // equality is not well-defined. This ambiguity allows us to\n // consider the best possible heuristic among various imperfect\n // options, and equating non-native functions that have the same\n // code has enormous practical benefits, such as when comparing\n // functions that are repeatedly passed as fresh function\n // expressions within objects that are otherwise deeply equal. Since\n // any function created from the same syntactic expression (in the\n // same code location) will always stringify to the same code\n // according to fnToStr.call, we can reasonably expect these\n // repeatedly passed function expressions to have the same code, and\n // thus behave \"the same\" (with all the caveats mentioned above),\n // even though the runtime function objects are !== to one another.\n\n\n return !endsWith(aCode, nativeCodeSuffix);\n }\n } // Otherwise the values are not equal.\n\n\n return false;\n}\n\nfunction definedKeys(obj) {\n // Remember that the second argument to Array.prototype.filter will be\n // used as `this` within the callback function.\n return Object.keys(obj).filter(isDefinedKey, obj);\n}\n\nfunction isDefinedKey(key) {\n return this[key] !== void 0;\n}\n\nvar nativeCodeSuffix = \"{ [native code] }\";\n\nfunction endsWith(full, suffix) {\n var fromIndex = full.length - suffix.length;\n return fromIndex >= 0 && full.indexOf(suffix, fromIndex) === fromIndex;\n}\n\nfunction previouslyCompared(a, b) {\n // Though cyclic references can make an object graph appear infinite from the\n // perspective of a depth-first traversal, the graph still contains a finite\n // number of distinct object references. We use the previousComparisons cache\n // to avoid comparing the same pair of object references more than once, which\n // guarantees termination (even if we end up comparing every object in one\n // graph to every object in the other graph, which is extremely unlikely),\n // while still allowing weird isomorphic structures (like rings with different\n // lengths) a chance to pass the equality test.\n var bSet = previousComparisons.get(a);\n\n if (bSet) {\n // Return true here because we can be sure false will be returned somewhere\n // else if the objects are not equivalent.\n if (bSet.has(b)) return true;\n } else {\n previousComparisons.set(a, bSet = new Set());\n }\n\n bSet.add(b);\n return false;\n}\n\nexport { equal as default, equal };","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || value !== value && other !== other;\n}\n\nmodule.exports = eq;","export function compact() {\n var objects = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n objects[_i] = arguments[_i];\n }\n\n var result = Object.create(null);\n objects.forEach(function (obj) {\n if (!obj) return;\n Object.keys(obj).forEach(function (key) {\n var value = obj[key];\n\n if (value !== void 0) {\n result[key] = value;\n }\n });\n });\n return result;\n}","export function isNonEmptyArray(value) {\n return Array.isArray(value) && value.length > 0;\n}","// @noflow\nimport * as React from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { countryCodeToDefaultCurrencySymbol } from '@/utils/countryCodeHelper'\n\nimport segmentTrack from '@/components/analytics/Analytics'\n\nimport type { ShippingCountry } from '@/shared_types/rails_models/shipping_countries'\n\nimport LocalisationModal from './LocalisationModal/localisationModal'\nimport {\n getCountryCode,\n getCountryFlag,\n getCountryName,\n getLanguage,\n getLanguageShortName\n} from './localisationHelpers'\n\nconst baseClass = 'localisation-widget'\n\nconst triggerLocalisationAnalytics = (widgetLocation: string): void => {\n const eventName = 'Localisation Modal Opened'\n const properties = {\n widget_location: widgetLocation\n }\n segmentTrack(eventName, properties)\n}\n\nconst LocalisationDisplay = ({\n activeShippingCountries,\n widgetLocation\n}: {\n activeShippingCountries: Array<ShippingCountry>\n widgetLocation: string\n}): React.ReactElement<'div'> => {\n const { t } = useTranslation(['shipping_countries', 'languages'])\n\n const [modalIsOpen, setModalIsOpen] = React.useState(false)\n const [modalIsMounted, setModalIsMounted] = React.useState(false)\n\n const toggleModal = React.useCallback((): void => {\n setModalIsOpen(!modalIsOpen)\n setTimeout(\n (): void => {\n setModalIsMounted(!modalIsMounted)\n triggerLocalisationAnalytics(widgetLocation)\n },\n modalIsOpen ? 300 : 0\n )\n }, [\n modalIsOpen,\n setModalIsOpen,\n setModalIsMounted,\n modalIsMounted,\n widgetLocation\n ])\n\n const currentCountryCode = getCountryCode()\n const currentLanguage = getLanguage(\n currentCountryCode,\n activeShippingCountries\n )\n\n return (\n <React.Fragment>\n <button\n data-testid=\"geo-ip-widget\"\n className={baseClass}\n type=\"button\"\n onClick={toggleModal}\n >\n <img\n src={getCountryFlag(currentCountryCode) || ''}\n className={`${baseClass}__country-flag`}\n alt={`The flag of ${getCountryName({\n activeShippingCountries,\n countryCode: currentCountryCode,\n t\n })}`}\n height=\"20\"\n width=\"20\"\n loading=\"lazy\"\n />\n <span\n className={`${baseClass}__selected-country__name text-regular-18`}\n >\n {getCountryName({\n activeShippingCountries,\n countryCode: currentCountryCode,\n t\n }) || ''}\n </span>\n <span\n data-testid={`${baseClass}-selected-language`}\n className={`${baseClass}__selected-language text-regular-18`}\n >\n {getLanguageShortName({ language: currentLanguage, t }) || ''}\n </span>\n <span className={`${baseClass}__selected-currency text-regular-18`}>\n {countryCodeToDefaultCurrencySymbol(currentCountryCode)}\n </span>\n </button>\n {modalIsMounted && (\n <LocalisationModal\n currentLanguage={currentLanguage}\n currentCountryCode={currentCountryCode}\n activeShippingCountries={activeShippingCountries}\n closeModal={toggleModal}\n isOpen={modalIsOpen}\n widgetLocation={widgetLocation}\n />\n )}\n </React.Fragment>\n )\n}\n\nexport default LocalisationDisplay\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n\n return result;\n}\n\nmodule.exports = arrayMap;","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","export const isDevelopment = (): boolean =>\n window.location.hostname === 'localhost' ||\n window.location.hostname.includes('herokuapp') ||\n window.location.hostname.includes('127.0.0.1') || // For CI\n window.location.hostname.includes('ngrok-free.app') // For Ngrok\n","// @flow\n\nimport i18n from 'i18next'\n\nconst percentageValue = (value: number | string): string => {\n return i18n.t('shared:percentage', { value })\n}\n\nexport { percentageValue }\n","// @flow\n\ntype AnalyticsBackend = ((event: string, properties: {}) => void)\nexport type InteractionEventProperties = {|\n context: string,\n object: string,\n action: string\n|}\n\nexport default function segmentTrack (\n eventName: string,\n properties: {} = {}): void {\n try {\n window.analytics.track(eventName, properties)\n } catch (error) {\n console.error(error)\n }\n}\n\nexport class Analytics {\n static track (\n event: string,\n properties: {} = {},\n analyticsBackend: AnalyticsBackend = segmentTrack): void {\n try {\n analyticsBackend(event, properties)\n } catch (error) {\n console.error(error)\n }\n }\n\n static trackInteraction (\n event: string,\n interactionEventProperties: InteractionEventProperties,\n extraProperties: {} = {},\n analyticsBackend: AnalyticsBackend = segmentTrack): void {\n const properties = {\n ...interactionEventProperties,\n ...extraProperties\n }\n try {\n analyticsBackend(event, properties)\n } catch (error) {\n console.error(error)\n }\n }\n}\n","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: {\n regular: 'ménÄ› než sekunda',\n past: 'pÅ™ed ménÄ› než sekundou',\n future: 'za ménÄ› než sekundu'\n },\n few: {\n regular: 'ménÄ› než {{count}} sekundy',\n past: 'pÅ™ed ménÄ› než {{count}} sekundami',\n future: 'za ménÄ› než {{count}} sekundy'\n },\n many: {\n regular: 'ménÄ› než {{count}} sekund',\n past: 'pÅ™ed ménÄ› než {{count}} sekundami',\n future: 'za ménÄ› než {{count}} sekund'\n }\n },\n xSeconds: {\n one: {\n regular: 'sekunda',\n past: 'pÅ™ed sekundou',\n future: 'za sekundu'\n },\n few: {\n regular: '{{count}} sekundy',\n past: 'pÅ™ed {{count}} sekundami',\n future: 'za {{count}} sekundy'\n },\n many: {\n regular: '{{count}} sekund',\n past: 'pÅ™ed {{count}} sekundami',\n future: 'za {{count}} sekund'\n }\n },\n halfAMinute: {\n other: {\n regular: 'půl minuty',\n past: 'pÅ™ed půl minutou',\n future: 'za půl minuty'\n }\n },\n lessThanXMinutes: {\n one: {\n regular: 'ménÄ› než minuta',\n past: 'pÅ™ed ménÄ› než minutou',\n future: 'za ménÄ› než minutu'\n },\n few: {\n regular: 'ménÄ› než {{count}} minuty',\n past: 'pÅ™ed ménÄ› než {{count}} minutami',\n future: 'za ménÄ› než {{count}} minuty'\n },\n many: {\n regular: 'ménÄ› než {{count}} minut',\n past: 'pÅ™ed ménÄ› než {{count}} minutami',\n future: 'za ménÄ› než {{count}} minut'\n }\n },\n xMinutes: {\n one: {\n regular: 'minuta',\n past: 'pÅ™ed minutou',\n future: 'za minutu'\n },\n few: {\n regular: '{{count}} minuty',\n past: 'pÅ™ed {{count}} minutami',\n future: 'za {{count}} minuty'\n },\n many: {\n regular: '{{count}} minut',\n past: 'pÅ™ed {{count}} minutami',\n future: 'za {{count}} minut'\n }\n },\n aboutXHours: {\n one: {\n regular: 'pÅ™ibližnÄ› hodina',\n past: 'pÅ™ibližnÄ› pÅ™ed hodinou',\n future: 'pÅ™ibližnÄ› za hodinu'\n },\n few: {\n regular: 'pÅ™ibližnÄ› {{count}} hodiny',\n past: 'pÅ™ibližnÄ› pÅ™ed {{count}} hodinami',\n future: 'pÅ™ibližnÄ› za {{count}} hodiny'\n },\n many: {\n regular: 'pÅ™ibližnÄ› {{count}} hodin',\n past: 'pÅ™ibližnÄ› pÅ™ed {{count}} hodinami',\n future: 'pÅ™ibližnÄ› za {{count}} hodin'\n }\n },\n xHours: {\n one: {\n regular: 'hodina',\n past: 'pÅ™ed hodinou',\n future: 'za hodinu'\n },\n few: {\n regular: '{{count}} hodiny',\n past: 'pÅ™ed {{count}} hodinami',\n future: 'za {{count}} hodiny'\n },\n many: {\n regular: '{{count}} hodin',\n past: 'pÅ™ed {{count}} hodinami',\n future: 'za {{count}} hodin'\n }\n },\n xDays: {\n one: {\n regular: 'den',\n past: 'pÅ™ed dnem',\n future: 'za den'\n },\n few: {\n regular: '{{count}} dny',\n past: 'pÅ™ed {{count}} dny',\n future: 'za {{count}} dny'\n },\n many: {\n regular: '{{count}} dnÃ',\n past: 'pÅ™ed {{count}} dny',\n future: 'za {{count}} dnÃ'\n }\n },\n aboutXWeeks: {\n one: {\n regular: 'pÅ™ibližnÄ› týden',\n past: 'pÅ™ibližnÄ› pÅ™ed týdnem',\n future: 'pÅ™ibližnÄ› za týden'\n },\n few: {\n regular: 'pÅ™ibližnÄ› {{count}} týdny',\n past: 'pÅ™ibližnÄ› pÅ™ed {{count}} týdny',\n future: 'pÅ™ibližnÄ› za {{count}} týdny'\n },\n many: {\n regular: 'pÅ™ibližnÄ› {{count}} týdnů',\n past: 'pÅ™ibližnÄ› pÅ™ed {{count}} týdny',\n future: 'pÅ™ibližnÄ› za {{count}} týdnů'\n }\n },\n xWeeks: {\n one: {\n regular: 'týden',\n past: 'pÅ™ed týdnem',\n future: 'za týden'\n },\n few: {\n regular: '{{count}} týdny',\n past: 'pÅ™ed {{count}} týdny',\n future: 'za {{count}} týdny'\n },\n many: {\n regular: '{{count}} týdnů',\n past: 'pÅ™ed {{count}} týdny',\n future: 'za {{count}} týdnů'\n }\n },\n aboutXMonths: {\n one: {\n regular: 'pÅ™ibližnÄ› mÄ›sÃc',\n past: 'pÅ™ibližnÄ› pÅ™ed mÄ›sÃcem',\n future: 'pÅ™ibližnÄ› za mÄ›sÃc'\n },\n few: {\n regular: 'pÅ™ibližnÄ› {{count}} mÄ›sÃce',\n past: 'pÅ™ibližnÄ› pÅ™ed {{count}} mÄ›sÃci',\n future: 'pÅ™ibližnÄ› za {{count}} mÄ›sÃce'\n },\n many: {\n regular: 'pÅ™ibližnÄ› {{count}} mÄ›sÃců',\n past: 'pÅ™ibližnÄ› pÅ™ed {{count}} mÄ›sÃci',\n future: 'pÅ™ibližnÄ› za {{count}} mÄ›sÃců'\n }\n },\n xMonths: {\n one: {\n regular: 'mÄ›sÃc',\n past: 'pÅ™ed mÄ›sÃcem',\n future: 'za mÄ›sÃc'\n },\n few: {\n regular: '{{count}} mÄ›sÃce',\n past: 'pÅ™ed {{count}} mÄ›sÃci',\n future: 'za {{count}} mÄ›sÃce'\n },\n many: {\n regular: '{{count}} mÄ›sÃců',\n past: 'pÅ™ed {{count}} mÄ›sÃci',\n future: 'za {{count}} mÄ›sÃců'\n }\n },\n aboutXYears: {\n one: {\n regular: 'pÅ™ibližnÄ› rok',\n past: 'pÅ™ibližnÄ› pÅ™ed rokem',\n future: 'pÅ™ibližnÄ› za rok'\n },\n few: {\n regular: 'pÅ™ibližnÄ› {{count}} roky',\n past: 'pÅ™ibližnÄ› pÅ™ed {{count}} roky',\n future: 'pÅ™ibližnÄ› za {{count}} roky'\n },\n many: {\n regular: 'pÅ™ibližnÄ› {{count}} roků',\n past: 'pÅ™ibližnÄ› pÅ™ed {{count}} roky',\n future: 'pÅ™ibližnÄ› za {{count}} roků'\n }\n },\n xYears: {\n one: {\n regular: 'rok',\n past: 'pÅ™ed rokem',\n future: 'za rok'\n },\n few: {\n regular: '{{count}} roky',\n past: 'pÅ™ed {{count}} roky',\n future: 'za {{count}} roky'\n },\n many: {\n regular: '{{count}} roků',\n past: 'pÅ™ed {{count}} roky',\n future: 'za {{count}} roků'\n }\n },\n overXYears: {\n one: {\n regular: 'vÃce než rok',\n past: 'pÅ™ed vÃce než rokem',\n future: 'za vÃce než rok'\n },\n few: {\n regular: 'vÃce než {{count}} roky',\n past: 'pÅ™ed vÃce než {{count}} roky',\n future: 'za vÃce než {{count}} roky'\n },\n many: {\n regular: 'vÃce než {{count}} roků',\n past: 'pÅ™ed vÃce než {{count}} roky',\n future: 'za vÃce než {{count}} roků'\n }\n },\n almostXYears: {\n one: {\n regular: 'skoro rok',\n past: 'skoro pÅ™ed rokem',\n future: 'skoro za rok'\n },\n few: {\n regular: 'skoro {{count}} roky',\n past: 'skoro pÅ™ed {{count}} roky',\n future: 'skoro za {{count}} roky'\n },\n many: {\n regular: 'skoro {{count}} roků',\n past: 'skoro pÅ™ed {{count}} roky',\n future: 'skoro za {{count}} roků'\n }\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var scheme = formatDistanceLocale[token]; // cs pluralization\n\n var pluralToken;\n\n if (typeof scheme.other === 'object') {\n pluralToken = 'other';\n } else if (count === 1) {\n pluralToken = 'one';\n } else if (count > 1 && count < 5 || count === 0) {\n pluralToken = 'few';\n } else {\n pluralToken = 'many';\n } // times\n\n\n var suffixExist = options.addSuffix === true;\n var comparison = options.comparison;\n var timeToken;\n\n if (suffixExist && comparison === -1) {\n timeToken = 'past';\n } else if (suffixExist && comparison === 1) {\n timeToken = 'future';\n } else {\n timeToken = 'regular';\n }\n\n return scheme[pluralToken][timeToken].replace('{{count}}', count);\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, d. MMMM yyyy',\n long: 'd. MMMM yyyy',\n medium: 'd. M. yyyy',\n short: 'dd.MM.yyyy'\n};\nvar timeFormats = {\n full: 'H:mm:ss zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'v' {{time}}\",\n long: \"{{date}} 'v' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var accusativeWeekdays = ['nedÄ›li', 'pondÄ›lÃ', 'úterý', 'stÅ™edu', 'Ätvrtek', 'pátek', 'sobotu'];\nvar formatRelativeLocale = {\n lastWeek: \"'poslednÃ' eeee 've' p\",\n yesterday: \"'vÄera v' p\",\n today: \"'dnes v' p\",\n tomorrow: \"'zÃtra v' p\",\n nextWeek: function nextWeek(date, _baseDate, _options) {\n var day = date.getUTCDay();\n return \"'v \" + accusativeWeekdays[day] + \" o' p\";\n },\n other: 'P'\n};\nexport default function formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n\n return format;\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['pÅ™. n. l.', 'n. l.'],\n abbreviated: ['pÅ™. n. l.', 'n. l.'],\n wide: ['pÅ™ed naÅ¡Ãm letopoÄtem', 'naÅ¡eho letopoÄtu']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['1. ÄtvrtletÃ', '2. ÄtvrtletÃ', '3. ÄtvrtletÃ', '4. ÄtvrtletÃ'],\n wide: ['1. ÄtvrtletÃ', '2. ÄtvrtletÃ', '3. ÄtvrtletÃ', '4. ÄtvrtletÃ']\n};\nvar monthValues = {\n narrow: ['L', 'Ú', 'B', 'D', 'K', 'ÄŒ', 'ÄŒ', 'S', 'Z', 'Ř', 'L', 'P'],\n abbreviated: ['led', 'úno', 'bÅ™e', 'dub', 'kvÄ›', 'Ävn', 'Ävc', 'srp', 'zář', 'Å™Ãj', 'lis', 'pro'],\n wide: ['leden', 'únor', 'bÅ™ezen', 'duben', 'kvÄ›ten', 'Äerven', 'Äervenec', 'srpen', 'zářÃ', 'Å™Ãjen', 'listopad', 'prosinec']\n};\nvar formattingMonthValues = {\n narrow: ['L', 'Ú', 'B', 'D', 'K', 'ÄŒ', 'ÄŒ', 'S', 'Z', 'Ř', 'L', 'P'],\n abbreviated: ['led', 'úno', 'bÅ™e', 'dub', 'kvÄ›', 'Ävn', 'Ävc', 'srp', 'zář', 'Å™Ãj', 'lis', 'pro'],\n wide: ['ledna', 'února', 'bÅ™ezna', 'dubna', 'kvÄ›tna', 'Äervna', 'Äervence', 'srpna', 'zářÃ', 'Å™Ãjna', 'listopadu', 'prosince']\n};\nvar dayValues = {\n narrow: ['ne', 'po', 'út', 'st', 'Ät', 'pá', 'so'],\n short: ['ne', 'po', 'út', 'st', 'Ät', 'pá', 'so'],\n abbreviated: ['ned', 'pon', 'úte', 'stÅ™', 'Ätv', 'pát', 'sob'],\n wide: ['nedÄ›le', 'pondÄ›lÃ', 'úterý', 'stÅ™eda', 'Ätvrtek', 'pátek', 'sobota']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'dop.',\n pm: 'odp.',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'veÄer',\n night: 'noc'\n },\n abbreviated: {\n am: 'dop.',\n pm: 'odp.',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'veÄer',\n night: 'noc'\n },\n wide: {\n am: 'dopoledne',\n pm: 'odpoledne',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'veÄer',\n night: 'noc'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'dop.',\n pm: 'odp.',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'veÄer',\n night: 'noc'\n },\n abbreviated: {\n am: 'dop.',\n pm: 'odp.',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'veÄer',\n night: 'noc'\n },\n wide: {\n am: 'dopoledne',\n pm: 'odpoledne',\n midnight: 'půlnoc',\n noon: 'poledne',\n morning: 'ráno',\n afternoon: 'odpoledne',\n evening: 'veÄer',\n night: 'noc'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Czech locale.\n * @language Czech\n * @iso-639-2 ces\n * @author David Rus [@davidrus]{@link https://github.com/davidrus}\n * @author Pavel Hrách [@SilenY]{@link https://github.com/SilenY}\n * @author Jozef BÃroÅ¡ [@JozefBiros]{@link https://github.com/JozefBiros}\n */\n\nvar locale = {\n code: 'cs',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(p[Å™r]ed Kr\\.|pred n\\. l\\.|po Kr\\.|n\\. l\\.)/i,\n abbreviated: /^(pe[Å™r]ed Kr\\.|pe[Å™r]ed n\\. l\\.|po Kr\\.|n\\. l\\.)/i,\n wide: /^(p[Å™r]ed Kristem|pred na[Å¡s][Ãi]m letopo[Äc]tem|po Kristu|na[Å¡s]eho letopo[Äc]tu)/i\n};\nvar parseEraPatterns = {\n any: [/^p[Å™r]/i, /^(po|n)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]\\. [Äc]tvrtlet[Ãi]/i,\n wide: /^[1234]\\. [Äc]tvrtlet[Ãi]/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[lúubdkÄcszÅ™rlp]/i,\n abbreviated: /^(led|[úu]no|b[Å™r]e|dub|kv[Ä›e]|[Äc]vn|[Äc]vc|srp|z[áa][Å™r]|[Å™r][Ãi]j|lis|pro)/i,\n wide: /^(leden|ledna|[úu]nora?|b[Å™r]ezen|b[Å™r]ezna|duben|dubna|kv[Ä›e]ten|kv[Ä›e]tna|[Äc]erven(ec|ce)?|[Äc]ervna|srpen|srpna|z[áa][Å™r][Ãi]|[Å™r][Ãi]jen|[Å™r][Ãi]jna|listopad(a|u)?|prosinec|prosince)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^l/i, /^[úu]/i, /^b/i, /^d/i, /^k/i, /^[Äc]/i, /^[Äc]/i, /^s/i, /^z/i, /^[Å™r]/i, /^l/i, /^p/i],\n any: [/^led/i, /^[úu]n/i, /^b[Å™r]e/i, /^dub/i, /^kv[Ä›e]/i, /^[Äc]vn|[Äc]erven(?!\\w)|[Äc]ervna/i, /^[Äc]vc|[Äc]erven(ec|ce)/i, /^srp/i, /^z[áa][Å™r]/i, /^[Å™r][Ãi]j/i, /^lis/i, /^pro/i]\n};\nvar matchDayPatterns = {\n narrow: /^[npuúsÄps]/i,\n short: /^(ne|po|[úu]t|st|[Äc]t|p[áa]|so)/i,\n abbreviated: /^(ne|po|[úu]t|st|[Äc]t|p[áa]|so)/i,\n wide: /^(ned[Ä›e]le|pond[Ä›e]l[Ãi]|[úu]ter[ýy]|st[Å™r]eda|[Äc]tvrtek|p[áa]tek|sobota)/i\n};\nvar parseDayPatterns = {\n narrow: [/^n/i, /^p/i, /^[úu]/i, /^s/i, /^[Äc]/i, /^p/i, /^s/i],\n any: [/^ne/i, /^po/i, /^ut/i, /^st/i, /^[Äc]t/i, /^p/i, /^so/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^dopoledne|dop\\.?|odpoledne|odp\\.?|půlnoc|poledne|r[áa]no|odpoledne|ve[Äc]er|(v )?noci/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^dop/i,\n pm: /^odp/i,\n midnight: /^p[ůu]lnoc/i,\n noon: /^poledne/i,\n morning: /r[áa]no/i,\n afternoon: /odpoledne/i,\n evening: /ve[Äc]er/i,\n night: /noc/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n return value === proto;\n}\n\nmodule.exports = isPrototype;","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function (value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultHelpers = registerDefaultHelpers;\nexports.moveHelperToHooks = moveHelperToHooks; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _helpersBlockHelperMissing = require('./helpers/block-helper-missing');\n\nvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\nvar _helpersEach = require('./helpers/each');\n\nvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\nvar _helpersHelperMissing = require('./helpers/helper-missing');\n\nvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\nvar _helpersIf = require('./helpers/if');\n\nvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\nvar _helpersLog = require('./helpers/log');\n\nvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\nvar _helpersLookup = require('./helpers/lookup');\n\nvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\nvar _helpersWith = require('./helpers/with');\n\nvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\nfunction registerDefaultHelpers(instance) {\n _helpersBlockHelperMissing2['default'](instance);\n\n _helpersEach2['default'](instance);\n\n _helpersHelperMissing2['default'](instance);\n\n _helpersIf2['default'](instance);\n\n _helpersLog2['default'](instance);\n\n _helpersLookup2['default'](instance);\n\n _helpersWith2['default'](instance);\n}\n\nfunction moveHelperToHooks(instance, helperName, keepHelper) {\n if (instance.helpers[helperName]) {\n instance.hooks[helperName] = instance.helpers[helperName];\n\n if (!keepHelper) {\n delete instance.helpers[helperName];\n }\n }\n}","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('./utils');\n\nvar logger = {\n methodMap: ['debug', 'info', 'warn', 'error'],\n level: 'info',\n // Maps a given level value to the `methodMap` indexes above.\n lookupLevel: function lookupLevel(level) {\n if (typeof level === 'string') {\n var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\n\n if (levelMap >= 0) {\n level = levelMap;\n } else {\n level = parseInt(level, 10);\n }\n }\n\n return level;\n },\n // Can be overridden in the host environment\n log: function log(level) {\n level = logger.lookupLevel(level);\n\n if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\n var method = logger.methodMap[level]; // eslint-disable-next-line no-console\n\n if (!console[method]) {\n method = 'log';\n }\n\n for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n message[_key - 1] = arguments[_key];\n }\n\n console[method].apply(console, message); // eslint-disable-line no-console\n }\n }\n};\nexports['default'] = logger;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.createProtoAccessControl = createProtoAccessControl;\nexports.resultIsAllowed = resultIsAllowed;\nexports.resetLoggedProperties = resetLoggedProperties; // istanbul ignore next\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj['default'] = obj;\n return newObj;\n }\n}\n\nvar _createNewLookupObject = require('./create-new-lookup-object');\n\nvar _logger = require('../logger');\n\nvar logger = _interopRequireWildcard(_logger);\n\nvar loggedProperties = Object.create(null);\n\nfunction createProtoAccessControl(runtimeOptions) {\n var defaultMethodWhiteList = Object.create(null);\n defaultMethodWhiteList['constructor'] = false;\n defaultMethodWhiteList['__defineGetter__'] = false;\n defaultMethodWhiteList['__defineSetter__'] = false;\n defaultMethodWhiteList['__lookupGetter__'] = false;\n var defaultPropertyWhiteList = Object.create(null); // eslint-disable-next-line no-proto\n\n defaultPropertyWhiteList['__proto__'] = false;\n return {\n properties: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultPropertyWhiteList, runtimeOptions.allowedProtoProperties),\n defaultValue: runtimeOptions.allowProtoPropertiesByDefault\n },\n methods: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultMethodWhiteList, runtimeOptions.allowedProtoMethods),\n defaultValue: runtimeOptions.allowProtoMethodsByDefault\n }\n };\n}\n\nfunction resultIsAllowed(result, protoAccessControl, propertyName) {\n if (typeof result === 'function') {\n return checkWhiteList(protoAccessControl.methods, propertyName);\n } else {\n return checkWhiteList(protoAccessControl.properties, propertyName);\n }\n}\n\nfunction checkWhiteList(protoAccessControlForType, propertyName) {\n if (protoAccessControlForType.whitelist[propertyName] !== undefined) {\n return protoAccessControlForType.whitelist[propertyName] === true;\n }\n\n if (protoAccessControlForType.defaultValue !== undefined) {\n return protoAccessControlForType.defaultValue;\n }\n\n logUnexpecedPropertyAccessOnce(propertyName);\n return false;\n}\n\nfunction logUnexpecedPropertyAccessOnce(propertyName) {\n if (loggedProperties[propertyName] !== true) {\n loggedProperties[propertyName] = true;\n logger.log('error', 'Handlebars: Access has been denied to resolve the property \"' + propertyName + '\" because it is not an \"own property\" of its parent.\\n' + 'You can add a runtime option to disable the check or this warning:\\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details');\n }\n}\n\nfunction resetLoggedProperties() {\n Object.keys(loggedProperties).forEach(function (propertyName) {\n delete loggedProperties[propertyName];\n });\n}","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (Handlebars) {\n /* istanbul ignore next */\n var root = typeof global !== 'undefined' ? global : window,\n $Handlebars = root.Handlebars;\n /* istanbul ignore next */\n\n Handlebars.noConflict = function () {\n if (root.Handlebars === Handlebars) {\n root.Handlebars = $Handlebars;\n }\n\n return Handlebars;\n };\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nvar AST = {\n // Public API used to evaluate derived attributes regarding AST nodes\n helpers: {\n // a mustache is definitely a helper if:\n // * it is an eligible helper, and\n // * it has at least one parameter or hash segment\n helperExpression: function helperExpression(node) {\n return node.type === 'SubExpression' || (node.type === 'MustacheStatement' || node.type === 'BlockStatement') && !!(node.params && node.params.length || node.hash);\n },\n scopedId: function scopedId(path) {\n return /^\\.|this\\b/.test(path.original);\n },\n // an ID is simple if it only has one part, and that part is not\n // `..` or `this`.\n simpleId: function simpleId(path) {\n return path.parts.length === 1 && !AST.helpers.scopedId(path) && !path.depth;\n }\n }\n}; // Must be exported as an object rather than the root of the module as the jison lexer\n// must modify the object to operate properly.\n\nexports['default'] = AST;\nmodule.exports = exports['default'];","// @noflow\nimport BREAKPOINTS from '@/components/theme/breakpoints.sass'\n\ndeclare type Breakpoints = {\n xs: number\n sm: number\n md: number\n lg: number\n xl: number\n}\n\nexport default ((): Breakpoints =>\n Object.fromEntries(\n Object.entries(BREAKPOINTS).map(([key, value]) => [\n key,\n parseInt(value.replace('px', ''))\n ])\n ) as Breakpoints)()\n","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nfunction Visitor() {\n this.parents = [];\n}\n\nVisitor.prototype = {\n constructor: Visitor,\n mutating: false,\n // Visits a given value. If mutating, will replace the value if necessary.\n acceptKey: function acceptKey(node, name) {\n var value = this.accept(node[name]);\n\n if (this.mutating) {\n // Hacky sanity check: This may have a few false positives for type for the helper\n // methods but will generally do the right thing without a lot of overhead.\n if (value && !Visitor.prototype[value.type]) {\n throw new _exception2['default']('Unexpected node type \"' + value.type + '\" found when accepting ' + name + ' on ' + node.type);\n }\n\n node[name] = value;\n }\n },\n // Performs an accept operation with added sanity check to ensure\n // required keys are not removed.\n acceptRequired: function acceptRequired(node, name) {\n this.acceptKey(node, name);\n\n if (!node[name]) {\n throw new _exception2['default'](node.type + ' requires ' + name);\n }\n },\n // Traverses a given array. If mutating, empty respnses will be removed\n // for child elements.\n acceptArray: function acceptArray(array) {\n for (var i = 0, l = array.length; i < l; i++) {\n this.acceptKey(array, i);\n\n if (!array[i]) {\n array.splice(i, 1);\n i--;\n l--;\n }\n }\n },\n accept: function accept(object) {\n if (!object) {\n return;\n }\n /* istanbul ignore next: Sanity code */\n\n\n if (!this[object.type]) {\n throw new _exception2['default']('Unknown type: ' + object.type, object);\n }\n\n if (this.current) {\n this.parents.unshift(this.current);\n }\n\n this.current = object;\n var ret = this[object.type](object);\n this.current = this.parents.shift();\n\n if (!this.mutating || ret) {\n return ret;\n } else if (ret !== false) {\n return object;\n }\n },\n Program: function Program(program) {\n this.acceptArray(program.body);\n },\n MustacheStatement: visitSubExpression,\n Decorator: visitSubExpression,\n BlockStatement: visitBlock,\n DecoratorBlock: visitBlock,\n PartialStatement: visitPartial,\n PartialBlockStatement: function PartialBlockStatement(partial) {\n visitPartial.call(this, partial);\n this.acceptKey(partial, 'program');\n },\n ContentStatement: function ContentStatement()\n /* content */\n {},\n CommentStatement: function CommentStatement()\n /* comment */\n {},\n SubExpression: visitSubExpression,\n PathExpression: function PathExpression()\n /* path */\n {},\n StringLiteral: function StringLiteral()\n /* string */\n {},\n NumberLiteral: function NumberLiteral()\n /* number */\n {},\n BooleanLiteral: function BooleanLiteral()\n /* bool */\n {},\n UndefinedLiteral: function UndefinedLiteral()\n /* literal */\n {},\n NullLiteral: function NullLiteral()\n /* literal */\n {},\n Hash: function Hash(hash) {\n this.acceptArray(hash.pairs);\n },\n HashPair: function HashPair(pair) {\n this.acceptRequired(pair, 'value');\n }\n};\n\nfunction visitSubExpression(mustache) {\n this.acceptRequired(mustache, 'path');\n this.acceptArray(mustache.params);\n this.acceptKey(mustache, 'hash');\n}\n\nfunction visitBlock(block) {\n visitSubExpression.call(this, block);\n this.acceptKey(block, 'program');\n this.acceptKey(block, 'inverse');\n}\n\nfunction visitPartial(partial) {\n this.acceptRequired(partial, 'name');\n this.acceptArray(partial.params);\n this.acceptKey(partial, 'hash');\n}\n\nexports['default'] = Visitor;\nmodule.exports = exports['default'];","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function () {\n 'use strict'; // Exit early if we're not running in a browser.\n\n if (typeof window !== 'object') {\n return;\n } // Exit early if all IntersectionObserver and IntersectionObserverEntry\n // features are natively supported.\n\n\n if ('IntersectionObserver' in window && 'IntersectionObserverEntry' in window && 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype, 'isIntersecting', {\n get: function get() {\n return this.intersectionRatio > 0;\n }\n });\n }\n\n return;\n }\n /**\n * Returns the embedding frame element, if any.\n * @param {!Document} doc\n * @return {!Element}\n */\n\n\n function getFrameElement(doc) {\n try {\n return doc.defaultView && doc.defaultView.frameElement || null;\n } catch (e) {\n // Ignore the error.\n return null;\n }\n }\n /**\n * A local reference to the root document.\n */\n\n\n var document = function (startDoc) {\n var doc = startDoc;\n var frame = getFrameElement(doc);\n\n while (frame) {\n doc = frame.ownerDocument;\n frame = getFrameElement(doc);\n }\n\n return doc;\n }(window.document);\n /**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\n\n\n var registry = [];\n /**\n * The signal updater for cross-origin intersection. When not null, it means\n * that the polyfill is configured to work in a cross-origin mode.\n * @type {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\n\n var crossOriginUpdater = null;\n /**\n * The current cross-origin intersection. Only used in the cross-origin mode.\n * @type {DOMRect|ClientRect}\n */\n\n var crossOriginRect = null;\n /**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\n\n function IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = ensureDOMRect(entry.rootBounds);\n this.boundingClientRect = ensureDOMRect(entry.boundingClientRect);\n this.intersectionRect = ensureDOMRect(entry.intersectionRect || getEmptyRect());\n this.isIntersecting = !!entry.intersectionRect; // Calculates the intersection ratio.\n\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height; // Sets intersection ratio.\n\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n }\n /**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\n\n\n function IntersectionObserver(callback, opt_options) {\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1 && options.root.nodeType != 9) {\n throw new Error('root must be a Document or Element');\n } // Binds and throttles `this._checkForIntersections`.\n\n\n this._checkForIntersections = throttle(this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT); // Private properties.\n\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin); // Public properties.\n\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function (margin) {\n return margin.value + margin.unit;\n }).join(' ');\n /** @private @const {!Array<!Document>} */\n\n this._monitoringDocuments = [];\n /** @private @const {!Array<function()>} */\n\n this._monitoringUnsubscribes = [];\n }\n /**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\n\n\n IntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n /**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\n\n IntersectionObserver.prototype.POLL_INTERVAL = null;\n /**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\n\n IntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n /**\n * Sets up the polyfill in the cross-origin mode. The result is the\n * updater function that accepts two arguments: `boundingClientRect` and\n * `intersectionRect` - just as these fields would be available to the\n * parent via `IntersectionObserverEntry`. This function should be called\n * each time the iframe receives intersection information from the parent\n * window, e.g. via messaging.\n * @return {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\n\n IntersectionObserver._setupCrossOriginUpdater = function () {\n if (!crossOriginUpdater) {\n /**\n * @param {DOMRect|ClientRect} boundingClientRect\n * @param {DOMRect|ClientRect} intersectionRect\n */\n crossOriginUpdater = function crossOriginUpdater(boundingClientRect, intersectionRect) {\n if (!boundingClientRect || !intersectionRect) {\n crossOriginRect = getEmptyRect();\n } else {\n crossOriginRect = convertFromParentRect(boundingClientRect, intersectionRect);\n }\n\n registry.forEach(function (observer) {\n observer._checkForIntersections();\n });\n };\n }\n\n return crossOriginUpdater;\n };\n /**\n * Resets the cross-origin mode.\n */\n\n\n IntersectionObserver._resetCrossOriginUpdater = function () {\n crossOriginUpdater = null;\n crossOriginRect = null;\n };\n /**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\n\n\n IntersectionObserver.prototype.observe = function (target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function (item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n\n this._observationTargets.push({\n element: target,\n entry: null\n });\n\n this._monitorIntersections(target.ownerDocument);\n\n this._checkForIntersections();\n };\n /**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\n\n\n IntersectionObserver.prototype.unobserve = function (target) {\n this._observationTargets = this._observationTargets.filter(function (item) {\n return item.element != target;\n });\n\n this._unmonitorIntersections(target.ownerDocument);\n\n if (this._observationTargets.length == 0) {\n this._unregisterInstance();\n }\n };\n /**\n * Stops observing all target elements for intersection changes.\n */\n\n\n IntersectionObserver.prototype.disconnect = function () {\n this._observationTargets = [];\n\n this._unmonitorAllIntersections();\n\n this._unregisterInstance();\n };\n /**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\n\n\n IntersectionObserver.prototype.takeRecords = function () {\n var records = this._queuedEntries.slice();\n\n this._queuedEntries = [];\n return records;\n };\n /**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\n\n\n IntersectionObserver.prototype._initThresholds = function (opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n return threshold.sort().filter(function (t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n\n return t !== a[i - 1];\n });\n };\n /**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array<Object>} An array of margin objects with the keys\n * value and unit.\n */\n\n\n IntersectionObserver.prototype._parseRootMargin = function (opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function (margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n\n return {\n value: parseFloat(parts[1]),\n unit: parts[2]\n };\n }); // Handles shorthand.\n\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n return margins;\n };\n /**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @param {!Document} doc\n * @private\n */\n\n\n IntersectionObserver.prototype._monitorIntersections = function (doc) {\n var win = doc.defaultView;\n\n if (!win) {\n // Already destroyed.\n return;\n }\n\n if (this._monitoringDocuments.indexOf(doc) != -1) {\n // Already monitoring.\n return;\n } // Private state for monitoring.\n\n\n var callback = this._checkForIntersections;\n var monitoringInterval = null;\n var domObserver = null; // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n\n if (this.POLL_INTERVAL) {\n monitoringInterval = win.setInterval(callback, this.POLL_INTERVAL);\n } else {\n addEvent(win, 'resize', callback, true);\n addEvent(doc, 'scroll', callback, true);\n\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in win) {\n domObserver = new win.MutationObserver(callback);\n domObserver.observe(doc, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n\n this._monitoringDocuments.push(doc);\n\n this._monitoringUnsubscribes.push(function () {\n // Get the window object again. When a friendly iframe is destroyed, it\n // will be null.\n var win = doc.defaultView;\n\n if (win) {\n if (monitoringInterval) {\n win.clearInterval(monitoringInterval);\n }\n\n removeEvent(win, 'resize', callback, true);\n }\n\n removeEvent(doc, 'scroll', callback, true);\n\n if (domObserver) {\n domObserver.disconnect();\n }\n }); // Also monitor the parent.\n\n\n var rootDoc = this.root && (this.root.ownerDocument || this.root) || document;\n\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n\n if (frame) {\n this._monitorIntersections(frame.ownerDocument);\n }\n }\n };\n /**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\n\n\n IntersectionObserver.prototype._unmonitorIntersections = function (doc) {\n var index = this._monitoringDocuments.indexOf(doc);\n\n if (index == -1) {\n return;\n }\n\n var rootDoc = this.root && (this.root.ownerDocument || this.root) || document; // Check if any dependent targets are still remaining.\n\n var hasDependentTargets = this._observationTargets.some(function (item) {\n var itemDoc = item.element.ownerDocument; // Target is in this context.\n\n if (itemDoc == doc) {\n return true;\n } // Target is nested in this context.\n\n\n while (itemDoc && itemDoc != rootDoc) {\n var frame = getFrameElement(itemDoc);\n itemDoc = frame && frame.ownerDocument;\n\n if (itemDoc == doc) {\n return true;\n }\n }\n\n return false;\n });\n\n if (hasDependentTargets) {\n return;\n } // Unsubscribe.\n\n\n var unsubscribe = this._monitoringUnsubscribes[index];\n\n this._monitoringDocuments.splice(index, 1);\n\n this._monitoringUnsubscribes.splice(index, 1);\n\n unsubscribe(); // Also unmonitor the parent.\n\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n\n if (frame) {\n this._unmonitorIntersections(frame.ownerDocument);\n }\n }\n };\n /**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\n\n\n IntersectionObserver.prototype._unmonitorAllIntersections = function () {\n var unsubscribes = this._monitoringUnsubscribes.slice(0);\n\n this._monitoringDocuments.length = 0;\n this._monitoringUnsubscribes.length = 0;\n\n for (var i = 0; i < unsubscribes.length; i++) {\n unsubscribes[i]();\n }\n };\n /**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\n\n\n IntersectionObserver.prototype._checkForIntersections = function () {\n if (!this.root && crossOriginUpdater && !crossOriginRect) {\n // Cross origin monitoring, but no initial data available yet.\n return;\n }\n\n var rootIsInDom = this._rootIsInDom();\n\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function (item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n\n var rootContainsTarget = this._rootContainsTarget(target);\n\n var oldEntry = item.entry;\n\n var intersectionRect = rootIsInDom && rootContainsTarget && this._computeTargetAndRootIntersection(target, targetRect, rootRect);\n\n var rootBounds = null;\n\n if (!this._rootContainsTarget(target)) {\n rootBounds = getEmptyRect();\n } else if (!crossOriginUpdater || this.root) {\n rootBounds = rootRect;\n }\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootBounds,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n };\n /**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} targetRect The bounding rect of the target.\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\n\n\n IntersectionObserver.prototype._computeTargetAndRootIntersection = function (target, targetRect, rootRect) {\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot && parent) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ? window.getComputedStyle(parent) : {}; // If the parent isn't displayed, an intersection can't happen.\n\n if (parentComputedStyle.display == 'none') return null;\n\n if (parent == this.root || parent.nodeType ==\n /* DOCUMENT */\n 9) {\n atRoot = true;\n\n if (parent == this.root || parent == document) {\n if (crossOriginUpdater && !this.root) {\n if (!crossOriginRect || crossOriginRect.width == 0 && crossOriginRect.height == 0) {\n // A 0-size cross-origin intersection means no-intersection.\n parent = null;\n parentRect = null;\n intersectionRect = null;\n } else {\n parentRect = crossOriginRect;\n }\n } else {\n parentRect = rootRect;\n }\n } else {\n // Check if there's a frame that can be navigated to.\n var frame = getParentNode(parent);\n var frameRect = frame && getBoundingClientRect(frame);\n\n var frameIntersect = frame && this._computeTargetAndRootIntersection(frame, frameRect, rootRect);\n\n if (frameRect && frameIntersect) {\n parent = frame;\n parentRect = convertFromParentRect(frameRect, frameIntersect);\n } else {\n parent = null;\n intersectionRect = null;\n }\n }\n } else {\n // If the element has a non-visible overflow, and it's not the <body>\n // or <html> element, update the intersection rect.\n // Note: <body> and <html> cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n var doc = parent.ownerDocument;\n\n if (parent != doc.body && parent != doc.documentElement && parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n } // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n\n\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n }\n\n if (!intersectionRect) break;\n parent = parent && getParentNode(parent);\n }\n\n return intersectionRect;\n };\n /**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {ClientRect} The expanded root rect.\n * @private\n */\n\n\n IntersectionObserver.prototype._getRootRect = function () {\n var rootRect;\n\n if (this.root && !isDoc(this.root)) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use <html>/<body> instead of window since scroll bars affect size.\n var doc = isDoc(this.root) ? this.root : document;\n var html = doc.documentElement;\n var body = doc.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n\n return this._expandRectByRootMargin(rootRect);\n };\n /**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {DOMRect|ClientRect} rect The rect object to expand.\n * @return {ClientRect} The expanded rect.\n * @private\n */\n\n\n IntersectionObserver.prototype._expandRectByRootMargin = function (rect) {\n var margins = this._rootMarginValues.map(function (margin, i) {\n return margin.unit == 'px' ? margin.value : margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n return newRect;\n };\n /**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\n\n\n IntersectionObserver.prototype._hasCrossedThreshold = function (oldEntry, newEntry) {\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ? oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ? newEntry.intersectionRatio || 0 : -1; // Ignore unchanged ratios\n\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i]; // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n\n if (threshold == oldRatio || threshold == newRatio || threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n };\n /**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\n\n\n IntersectionObserver.prototype._rootIsInDom = function () {\n return !this.root || containsDeep(document, this.root);\n };\n /**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\n\n\n IntersectionObserver.prototype._rootContainsTarget = function (target) {\n var rootDoc = this.root && (this.root.ownerDocument || this.root) || document;\n return containsDeep(rootDoc, target) && (!this.root || rootDoc == target.ownerDocument);\n };\n /**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\n\n\n IntersectionObserver.prototype._registerInstance = function () {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n };\n /**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\n\n\n IntersectionObserver.prototype._unregisterInstance = function () {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n };\n /**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\n\n\n function now() {\n return window.performance && performance.now && performance.now();\n }\n /**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\n\n\n function throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function () {\n fn();\n timer = null;\n }, timeout);\n }\n };\n }\n /**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\n\n\n function addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n } else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n }\n /**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\n\n\n function removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n } else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n }\n /**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object|?ClientRect} The intersection rect or undefined if no\n * intersection is found.\n */\n\n\n function computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n return width >= 0 && height >= 0 && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n } || null;\n }\n /**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {DOMRect|ClientRect} The (possibly shimmed) rect of the element.\n */\n\n\n function getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {// Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect(); // Older IE\n\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n\n return rect;\n }\n /**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {ClientRect} The empty rect.\n */\n\n\n function getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n }\n /**\n * Ensure that the result has all of the necessary fields of the DOMRect.\n * Specifically this ensures that `x` and `y` fields are set.\n *\n * @param {?DOMRect|?ClientRect} rect\n * @return {?DOMRect}\n */\n\n\n function ensureDOMRect(rect) {\n // A `DOMRect` object has `x` and `y` fields.\n if (!rect || 'x' in rect) {\n return rect;\n } // A IE's `ClientRect` type does not have `x` and `y`. The same is the case\n // for internally calculated Rect objects. For the purposes of\n // `IntersectionObserver`, it's sufficient to simply mirror `left` and `top`\n // for these fields.\n\n\n return {\n top: rect.top,\n y: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n right: rect.right,\n width: rect.width,\n height: rect.height\n };\n }\n /**\n * Inverts the intersection and bounding rect from the parent (frame) BCR to\n * the local BCR space.\n * @param {DOMRect|ClientRect} parentBoundingRect The parent's bound client rect.\n * @param {DOMRect|ClientRect} parentIntersectionRect The parent's own intersection rect.\n * @return {ClientRect} The local root bounding rect for the parent's children.\n */\n\n\n function convertFromParentRect(parentBoundingRect, parentIntersectionRect) {\n var top = parentIntersectionRect.top - parentBoundingRect.top;\n var left = parentIntersectionRect.left - parentBoundingRect.left;\n return {\n top: top,\n left: left,\n height: parentIntersectionRect.height,\n width: parentIntersectionRect.width,\n bottom: top + parentIntersectionRect.height,\n right: left + parentIntersectionRect.width\n };\n }\n /**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\n\n\n function containsDeep(parent, child) {\n var node = child;\n\n while (node) {\n if (node == parent) return true;\n node = getParentNode(node);\n }\n\n return false;\n }\n /**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\n\n\n function getParentNode(node) {\n var parent = node.parentNode;\n\n if (node.nodeType ==\n /* DOCUMENT */\n 9 && node != document) {\n // If this node is a document node, look for the embedding frame.\n return getFrameElement(node);\n } // If the parent has element that is assigned through shadow root slot\n\n\n if (parent && parent.assignedSlot) {\n parent = parent.assignedSlot.parentNode;\n }\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n\n return parent;\n }\n /**\n * Returns true if `node` is a Document.\n * @param {!Node} node\n * @returns {boolean}\n */\n\n\n function isDoc(node) {\n return node && node.nodeType === 9;\n } // Exposes the constructors globally.\n\n\n window.IntersectionObserver = IntersectionObserver;\n window.IntersectionObserverEntry = IntersectionObserverEntry;\n})();","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getDisplayName;\n\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","var baseToString = require('./_baseToString');\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n\n\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar symbolTag = '[object Symbol]';\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\nfunction isSymbol(value) {\n return typeof value == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;\n}\n\nmodule.exports = isSymbol;","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n} // Add methods to `ListCache`.\n\n\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\nmodule.exports = ListCache;","var eq = require('./eq');\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n\n\nfunction assocIndexOf(array, key) {\n var length = array.length;\n\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n\n return -1;\n}\n\nmodule.exports = assocIndexOf;","var getNative = require('./_getNative');\n/* Built-in method references that are verified to be native. */\n\n\nvar nativeCreate = getNative(Object, 'create');\nmodule.exports = nativeCreate;","var isKeyable = require('./_isKeyable');\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n\n\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\n}\n\nmodule.exports = getMapData;","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n\n\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;","// @noflow\nimport React from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport Image from '../../../Image/Image'\nimport { BreedSelectorVariant } from '../../BreedSelector'\n\ntype PopularBreed = {\n key: string\n number: number\n slug: string\n isPopular: true\n}\n\ntype NonPopularBreed = {\n key: string\n isPopular: false\n}\n\ntype Props = {\n selectedBreed: NonPopularBreed | PopularBreed\n namespace: string\n isPreWizardGuest: boolean\n variant: BreedSelectorVariant\n}\n\nconst BreedCard = ({\n selectedBreed,\n namespace,\n isPreWizardGuest,\n variant = BreedSelectorVariant.Generic\n}: Props): JSX.Element => {\n const { t } = useTranslation(namespace)\n\n return (\n <div\n id=\"matchedBreedCard\"\n className={`breed-card__animation-wrapper breed-card__wrapper`}\n >\n <div\n className={`breed-card__card ${\n variant === BreedSelectorVariant.Homepage\n ? 'breed-card__card--homepage'\n : ''\n }`}\n >\n {selectedBreed.isPopular ? (\n <div className=\"breed-card__matched-breed\">\n <div className=\"breed-card__matched-breed__image\">\n <Image\n alt=\"\"\n slug={selectedBreed.slug}\n image={{\n width: 90,\n height: 90,\n resizeMode: 'resize_to_fill'\n }}\n />\n </div>\n <div>\n <div className=\"breed-card__banner\">\n <p\n className=\"text-regular-16\"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: t(\n `breed_autocomplete.feedback.popular_breed_html${\n isPreWizardGuest ? '_pre_wizard_guest' : ''\n }`,\n {\n number: selectedBreed.number,\n sanitisedNamePlural: t(\n `models:breeds.${selectedBreed.key}.sanitised_name_plural`\n )\n }\n )\n }}\n />\n </div>\n </div>\n </div>\n ) : // Not most popular breed\n selectedBreed.key !== 'dalmatian' ? (\n <div className=\"breed-card__banner\">\n <p className=\"text-regular-16\">\n {t(\n selectedBreed.key === 'other'\n ? `breed_autocomplete.feedback.other_breed${\n isPreWizardGuest ? '_pre_wizard_guest' : ''\n }`\n : `breed_autocomplete.feedback.generic_breed${\n isPreWizardGuest ? '_pre_wizard_guest' : ''\n }`\n )}\n </p>\n </div>\n ) : (\n <p\n className=\"text-regular-16\"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: t(`breed_autocomplete.feedback.dalmatian_atomic`, {\n href: 'https://help.butternutbox.com/en/articles/119-dalmatians-and-butternut%20target= '\n })\n }}\n />\n )}\n </div>\n </div>\n )\n}\n\nexport default BreedCard\nexport type { PopularBreed, NonPopularBreed }\n","// @flow\n\nimport * as Sentry from '@/utils/sentry'\n\nimport type { Gender } from '../shared_types/rails_models/dogs'\nimport type { Language } from '@/packs/localisation'\n\ntype PossessivePronoun =\n | 'their'\n | 'her'\n | 'his'\n | 'hun'\n | 'haar'\n | 'zijn'\n | 'jego'\n | 'jej'\n | 'ich'\n | 'leur'\n | 'son'\n | 'sa'\n | 'ihre'\n | 'seine'\n | 'jejich'\n | 'jeho'\n | 'jejÃ'\n\ntype PronounContext =\n | 'female'\n | 'male'\n | 'plural'\n\ntype ToLocalisedSentenceParams = {|\n arr: Array<string>,\n lng?: string,\n oxfordComma?: boolean\n |}\n\n// Due to GraphQL Naming Rules, we're unable to use kebab-case to distinguish\n// languages with regional variation, i.e. nl vs nl-BE. However, i18next also\n// expects the use of kebab-case in order to make use of its built in features,\n// such as pluralisation which is heavily used across the codebase. As a\n// compromise, we store Flemish as nl_BE in the backend to satisfy GraphQL and\n// utilise nl-BE with i18next (see initialisation of i18n in localisation.ts).\n// This case handling here will ensure that any functions that may receive either\n// forms will be able to manage the logic by then returning `nl_BE`\n// Further reading:\n// https://graphql-rules.com/rules/naming\n// https://www.i18next.com/how-to/faq#how-should-the-language-codes-be-formatted\n\nconst lngStringToLngType = (lng: string): Language => {\n switch (lng) {\n case 'en': {\n return 'en'\n }\n case 'nl': {\n return 'nl'\n }\n case 'nl-BE':\n case 'nl_BE': {\n return 'nl_BE'\n }\n case 'pl': {\n return 'pl'\n }\n case 'pl-PL':\n case 'pl_PL': {\n return 'pl_PL'\n }\n case 'fr' : {\n return 'fr'\n }\n case 'de-DE':\n case 'de_DE': {\n return 'de_DE'\n }\n case 'cs-CZ':\n case 'cs_CZ': {\n return 'cs_CZ'\n }\n default: {\n Sentry.captureException(`Cannot run lngStringToLngType for ${lng}`)\n return 'en'\n }\n }\n}\n\nconst pronounContext = (genders: Array<Gender>, lng: string): PronounContext => {\n if (genders.length === 0) {\n Sentry.captureException('Invalid array to pronounContext - empty')\n return 'female'\n }\n // Because different language grammars treat groups of mixed gender differently,\n // we want to provide this context. For example, in English and Dutch, singular\n // pronouns are gender sensitive (he/she) and plural pronouns are not (they).\n // In languages like Spanish and French however, there are two forms of the plural\n // pronoun they (ellos/ellas) so we would need gender context in the plural form.\n const language = lngStringToLngType(lng)\n switch (language) {\n case 'en':\n case 'nl':\n case 'nl_BE':\n case 'pl':\n case 'pl_PL':\n case 'fr':\n case 'de_DE':\n case 'cs_CZ':\n if (genders.length > 1) {\n return 'plural'\n }\n return genders[0]\n default: {\n Sentry.captureException(`language ${lng} is not supported.`)\n return genders[0]\n }\n }\n}\n\nconst toLocalisedSentence = (params: ToLocalisedSentenceParams): string => {\n const { arr, lng } = params\n const oxfordComma = params.oxfordComma === undefined ? false : params.oxfordComma\n const language = lng ? lngStringToLngType(lng) : 'en'\n if (arr.length === 0) {\n Sentry.captureException('Invalid array to toSentence - empty')\n return ''\n }\n if (arr.length === 1) {\n return arr[0]\n } else if (arr.length === 2) {\n switch (language) {\n case 'en':\n return arr.join(' and ')\n case 'nl':\n case 'nl_BE':\n return arr.join(' en ')\n case 'pl':\n case 'pl_PL':\n return arr.join(' i ')\n case 'fr':\n return arr.join(' et ')\n case 'de_DE':\n return arr.join(' und ')\n case 'cs_CZ':\n return arr.join(' a ')\n default: {\n Sentry.captureException(`language ${language} is not supported.`)\n return arr.join(' and ')\n }\n }\n } else {\n const lastName = arr[arr.length - 1]\n const allButLastName = arr.slice(0, -1)\n switch (language) {\n case 'en':\n // eslint-disable-next-line i18next/no-literal-string\n return `${allButLastName.join(', ')}${oxfordComma ? ',' : ''} and ${lastName}`\n case 'nl':\n case 'nl_BE':\n // eslint-disable-next-line i18next/no-literal-string\n return `${allButLastName.join(', ')}${oxfordComma ? ',' : ''} en ${lastName}`\n case 'pl':\n case 'pl_PL':\n // eslint-disable-next-line i18next/no-literal-string\n return `${allButLastName.join(', ')}${oxfordComma ? ',' : ''} i ${lastName}`\n case 'fr':\n // eslint-disable-next-line i18next/no-literal-string\n return `${allButLastName.join(', ')}${oxfordComma ? ',' : ''} et ${lastName}`\n case 'de_DE':\n // eslint-disable-next-line i18next/no-literal-string\n return `${allButLastName.join(', ')}${oxfordComma ? ',' : ''} und ${lastName}`\n default: {\n Sentry.captureException(`language ${language} is not supported.`)\n // eslint-disable-next-line i18next/no-literal-string\n return `${allButLastName.join(', ')}${oxfordComma ? ',' : ''} and ${lastName}`\n }\n }\n }\n}\n\nconst possessive = (s: string, lng: Language = 'en'): string => {\n const language = lngStringToLngType(lng)\n if (s.length === 0) {\n Sentry.captureException('Invalid string to possessive - empty')\n return ''\n }\n switch (language) {\n case 'en': {\n // eslint-disable-next-line i18next/no-literal-string\n const suffix = s.endsWith('s') ? `'` : `'s`\n return `${s}${suffix}`\n }\n case 'nl':\n case 'nl_BE':\n case 'pl':\n case 'pl_PL':\n for (const i of 'aeiou') {\n // Note that this is not an exact rule since there are exceptions in Dutch. If a name\n // ends with a mute schwa (e), there would be no apostrophe. Identifying the vowel sound\n // would be almost impossible so we fall back to this more general rule.\n if (s.endsWith(i)) {\n // eslint-disable-next-line i18next/no-literal-string\n return `${s}'s`\n }\n }\n if (s.endsWith('s')) {\n return `${s}'`\n }\n // eslint-disable-next-line i18next/no-literal-string\n return `${s}s`\n case 'de_DE':\n // Only use an apostrophe then s when the name ends in s, ss, ß, tz, z, x\n if (/(s|ss|ß|tz|z|x)$/i.test(s)) {\n // eslint-disable-next-line i18next/no-literal-string\n return `${s}'s`\n }\n \n // In all other cases, just use s\n // eslint-disable-next-line i18next/no-literal-string\n return `${s}s`\n case 'fr':\n case 'cs_CZ':\n // These languages do not use apostrophes to indicate possession so we return just the possessor\n return `${s}`\n default:\n Sentry.captureException(`language ${lng} is not supported.`)\n return `${s}`\n }\n}\n\nconst possessivePronoun = (genders: Array<Gender>, language: Language = 'en'): PossessivePronoun => {\n /**\n * DEPRECATED\n *\n * This helper function should not be used. Provide pronoun context\n * (see pronounContext) into the localisation yml file insted\n */\n if (genders.length === 0) { throw new Error('Invalid array to possessivePronoun - empty') }\n if (genders.length > 1) {\n switch (language) {\n case 'nl':\n case 'nl_BE': {\n return 'hun'\n }\n case 'pl':\n case 'pl_PL': {\n return 'ich'\n }\n case 'fr': {\n return 'leur'\n }\n case 'de_DE': {\n return 'ihre'\n }\n case 'cs_CZ': {\n return 'jejich'\n }\n default: {\n return 'their'\n }\n }\n }\n switch (genders[0]) {\n case 'male': {\n switch (language) {\n case 'nl':\n case 'nl_BE': {\n return 'zijn'\n }\n case 'pl':\n case 'pl_PL': {\n return 'jego'\n }\n case 'fr': {\n return 'son'\n }\n case 'de_DE': {\n return 'seine'\n }\n case 'cs_CZ': {\n return 'jeho'\n }\n default: {\n return 'his'\n }\n }\n }\n case 'female': {\n switch (language) {\n case 'nl':\n case 'nl_BE': {\n return 'haar'\n }\n case 'pl':\n case 'pl_PL': {\n return 'jej'\n }\n case 'fr': {\n return 'sa'\n }\n case 'de_DE': {\n return 'ihre'\n }\n case 'cs_CZ': {\n return 'jejÃ'\n }\n default: {\n return 'her'\n }\n }\n }\n default: {\n (genders[0]: empty) // eslint-disable-line no-unused-expressions\n throw new Error(`possessivePronoun not implemented for ${genders[0]}`)\n }\n }\n}\n\nconst capitaliseFirstLetter = (word: string): string => {\n if (word.length === 0) {\n Sentry.captureException('Invalid string to capitaliseFirstLetter - empty')\n return ''\n }\n return `${word[0].toUpperCase()}${word.slice(1)}`\n}\n\n\n\nexport {\n toLocalisedSentence,\n possessive,\n possessivePronoun,\n capitaliseFirstLetter,\n pronounContext,\n lngStringToLngType\n}\n\nexport type {\n PossessivePronoun,\n PronounContext,\n ToLocalisedSentenceParams\n}\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = {\n noWobble: {\n stiffness: 170,\n damping: 26\n },\n // the default, if nothing provided\n gentle: {\n stiffness: 120,\n damping: 14\n },\n wobbly: {\n stiffness: 180,\n damping: 12\n },\n stiff: {\n stiffness: 210,\n damping: 20\n }\n};\nmodule.exports = exports[\"default\"];","import invariant from \"./invariant.mjs\";\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\n/**\n * The `defineInspect()` function defines `inspect()` prototype method as alias of `toJSON`\n */\n\nexport default function defineInspect(classObject) {\n var fn = classObject.prototype.toJSON;\n typeof fn === 'function' || invariant(0);\n classObject.prototype.inspect = fn; // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\n if (nodejsCustomInspectSymbol) {\n classObject.prototype[nodejsCustomInspectSymbol] = fn;\n }\n}","export default function invariant(condition, message) {\n var booleanCondition = Boolean(condition); // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n\n if (!booleanCondition) {\n throw new Error(message != null ? message : 'Unexpected invariant triggered.');\n }\n}","import defineInspect from \"../jsutils/defineInspect.mjs\";\n/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\n\nexport var Location = /*#__PURE__*/function () {\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The Token at which this Node begins.\n */\n\n /**\n * The Token at which this Node ends.\n */\n\n /**\n * The Source document the AST represents.\n */\n function Location(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n }\n\n var _proto = Location.prototype;\n\n _proto.toJSON = function toJSON() {\n return {\n start: this.start,\n end: this.end\n };\n };\n\n return Location;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(Location);\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport var Token = /*#__PURE__*/function () {\n /**\n * The kind of Token.\n */\n\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The 1-indexed line number on which this Token appears.\n */\n\n /**\n * The 1-indexed column number at which this Token begins.\n */\n\n /**\n * For non-punctuation tokens, represents the interpreted value of the token.\n */\n\n /**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. <SOF> is always the first node and <EOF>\n * the last.\n */\n function Token(kind, start, end, line, column, prev, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column;\n this.value = value;\n this.prev = prev;\n this.next = null;\n }\n\n var _proto2 = Token.prototype;\n\n _proto2.toJSON = function toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column\n };\n };\n\n return Token;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(Token);\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n return maybeNode != null && typeof maybeNode.kind === 'string';\n}\n/**\n * The list of all possible AST node types.\n */","module.exports = __webpack_public_path__ + \"media/crosses/close-4c7df5e0.svg\";","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","// @noflow\nimport type { Language } from '@/packs/localisation'\nimport type { Locale as DateLocale } from 'date-fns'\nimport { cs, de, enGB, fr, nl, nlBE, pl } from 'date-fns/locale'\n\nimport { lngStringToLngType } from '@/utils/StringHelper'\n\nimport type {\n Code as CountryCode,\n Currency,\n CurrencySymbol\n} from '@/shared_types/rails_models/shipping_countries'\nimport { ensureNever } from '@/typescript/utils'\n\ntype Locale =\n | 'en-GB'\n | 'en-NI'\n | 'en-IE'\n | 'en-NL'\n | 'nl-NL'\n | 'nl-GB'\n | 'nl-IE'\n | 'nl-NI'\n | 'nl-BE'\n | 'pl-PL'\n | 'fr-BE'\n | 'de-DE'\n | 'cs-CZ'\n\ntype LocaleCurrency = {\n locale: Locale\n currency: Currency\n currencySymbol: CurrencySymbol\n}\n\nconst countryCodeToDefaultCurrency = (countryCode: CountryCode): Currency => {\n switch (countryCode) {\n case 'GB': {\n return 'GBP'\n }\n case 'NI': {\n return 'GBP'\n }\n case 'IE':\n case 'NL':\n case 'BE':\n case 'DE': {\n return 'EUR'\n }\n case 'PL': {\n return 'PLN'\n }\n case 'CZ': {\n return 'CZK'\n }\n default: {\n ensureNever(countryCode)\n throw new Error(\n `countryCodeToDefaultCurrency is not implemented for this countryCode, countryCode is: ${countryCode}`\n )\n }\n }\n}\n\nconst countryCodeToDefaultCurrencySymbol = (\n countryCode: CountryCode\n): CurrencySymbol => {\n switch (countryCode) {\n case 'GB': {\n return '£'\n }\n case 'NI': {\n return '£'\n }\n case 'IE':\n case 'NL':\n case 'BE':\n case 'DE': {\n return '€'\n }\n case 'PL': {\n return 'zÅ‚'\n }\n case 'CZ': {\n return 'KÄ'\n }\n default: {\n ensureNever(countryCode)\n throw new Error(\n `countryCodeToDefaultCurrencySymbol is not implemented for this countryCode, countryCode is: ${countryCode}`\n )\n }\n }\n}\n\nconst countryCodeToLocale = (\n countryCode: CountryCode,\n language: Language\n): Locale => {\n const sanitisedLanguageCode = lngStringToLngType(language)\n switch (sanitisedLanguageCode) {\n case 'nl_BE':\n return 'nl-BE'\n case 'pl_PL':\n return 'pl-PL'\n case 'de_DE':\n return 'de-DE'\n case 'cs_CZ':\n return 'cs-CZ'\n default:\n return `${language}-${countryCode}` as Locale\n }\n}\n\nconst countryCodeToLocaleCurrency = (\n shippingCountryCode: CountryCode,\n language: Language\n): LocaleCurrency => {\n const defaultCurrency = countryCodeToDefaultCurrency(shippingCountryCode)\n const defaultCurrencySymbol =\n countryCodeToDefaultCurrencySymbol(shippingCountryCode)\n\n const countryCode = shippingCountryCode\n\n if (!language)\n throw new Error(\n `countryCodeToLocaleCurrency is not implemented for this language, language is: ${language}`\n )\n\n const locale = countryCodeToLocale(countryCode, language)\n\n return {\n currency: defaultCurrency,\n currencySymbol: defaultCurrencySymbol,\n locale\n }\n}\n\nconst languageToSanitisedLocale = (\n shippingCountryCode: CountryCode,\n language: Language\n): string => {\n switch (language) {\n case 'nl_BE':\n return 'nl-BE'\n case 'pl_PL':\n return 'pl-PL'\n case 'de_DE':\n return 'de-DE'\n case 'cs_CZ':\n return 'cs-CZ'\n default:\n return `${language}-${shippingCountryCode}`\n }\n}\n\nconst localeToDateLocale = (\n shippingCountryCode: CountryCode,\n language: Language\n): DateLocale => {\n const sanitisedLanguageCode = lngStringToLngType(language)\n const locale = languageToSanitisedLocale(\n shippingCountryCode,\n sanitisedLanguageCode\n )\n switch (locale) {\n case 'en-GB':\n case 'en-NI':\n case 'en-IE':\n case 'en-NL':\n return enGB\n case 'nl-NL':\n case 'nl-GB':\n case 'nl-IE':\n case 'nl-NI':\n return nl\n case 'nl-BE':\n return nlBE\n case 'pl-PL':\n return pl\n case 'fr':\n case 'fr-BE':\n return fr\n case 'de':\n case 'de-DE':\n return de\n case 'cs-CZ':\n return cs\n default:\n return enGB\n }\n}\n\nconst countryCodeToPrivacyUrl = (countryCode: CountryCode): string => {\n switch (countryCode) {\n case 'GB':\n case 'NI':\n case 'IE':\n return '/privacy-policy-gb'\n case 'NL':\n return '/privacy-policy-nl'\n case 'BE':\n return '/privacy-policy-be'\n case 'PL':\n return '/privacy-policy-pl'\n case 'DE':\n return '/privacy-policy-de'\n case 'CZ':\n return '/privacy-policy-cz'\n default:\n return '/privacy-policy-gb'\n }\n}\n\nconst countrySpecificInstagramLink = (countryCode: CountryCode): string => {\n switch (countryCode) {\n case 'NL': {\n return 'https://www.instagram.com/butternutbox.nl/'\n }\n case 'BE': {\n return 'https://www.instagram.com/butternutbox.be/'\n }\n case 'PL':\n case 'CZ': {\n return 'https://www.instagram.com/psibufet/'\n }\n case 'DE': {\n return 'https://www.instagram.com/butternutbox.de/'\n }\n case 'GB':\n case 'IE':\n case 'NI': {\n return 'https://www.instagram.com/butternutbox'\n }\n default: {\n throw new Error(\n `countrySpecificInstagramLink is not implemented for ${countryCode}`\n )\n }\n }\n}\n\nconst countrySpecificFacebookLink = (countryCode: CountryCode): string => {\n switch (countryCode) {\n case 'IE': {\n return 'https://www.facebook.com/ButternutBox.ie/'\n }\n case 'NL': {\n return 'https://www.facebook.com/ButternutBox.nl/'\n }\n case 'BE': {\n return 'https://www.facebook.com/ButternutBox.be/'\n }\n case 'PL':\n case 'CZ': {\n return 'https://www.facebook.com/psibufet/'\n }\n case 'DE': {\n return 'https://www.facebook.com/profile.php?id=61556277572237'\n }\n case 'GB':\n case 'NI': {\n return 'https://www.facebook.com/ButternutBox/'\n }\n default: {\n throw new Error(\n `countrySpecificFacebookLink is not implemented for ${countryCode}`\n )\n }\n }\n}\n\nconst countrySpecificTikTokLink = (countryCode: CountryCode): string => {\n switch (countryCode) {\n case 'PL':\n case 'CZ': {\n return 'https://www.tiktok.com/@psibufet'\n }\n default: {\n return 'https://www.tiktok.com/@butternutbox'\n }\n }\n}\n\nexport type { Locale, LocaleCurrency }\nexport {\n countryCodeToLocaleCurrency,\n countryCodeToDefaultCurrencySymbol,\n countryCodeToDefaultCurrency,\n localeToDateLocale,\n countryCodeToPrivacyUrl,\n countrySpecificInstagramLink,\n countrySpecificFacebookLink,\n countrySpecificTikTokLink,\n countryCodeToLocale\n}\n","import { useEffect, useState } from 'react';\nexport function useReactiveVar(rv) {\n var value = rv();\n var setValue = useState(value)[1];\n useEffect(function () {\n var probablySameValue = rv();\n\n if (value !== probablySameValue) {\n setValue(probablySameValue);\n } else {\n return rv.onNextChange(setValue);\n }\n }, [value]);\n return value;\n}","// @flow\n\nimport type { Locale } from './countryCodeHelper'\n\ntype Currency =\n | 'GBP'\n | 'EUR'\n | 'PLN'\n | 'CZK'\n\ntype Options = {|\n currency: Currency,\n locale: Locale\n|}\n\n// Default currency and locale\nconst DEFAULT_CURRENCY: Currency = 'GBP'\nconst DEFAULT_LOCALE: Locale = 'en-GB'\n\nconst DEFAULT_OPTIONS: Options = {\n currency: DEFAULT_CURRENCY,\n locale: DEFAULT_LOCALE\n}\n\n/**\n * See the reference guide for `toLocaleString`:\n * developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString\n *\n * eg: formatCurrencyWithDecimal(100) // £1.00\n */\nconst formatCurrencyWithDecimal = (\n n: number,\n { locale, currency }: Options = DEFAULT_OPTIONS\n): string => {\n return (n / 100).toLocaleString(\n locale,\n {\n style: 'currency',\n currency,\n maximumFractionDigits: 2\n }\n )\n}\n\n/**\n * See the reference guide for `toLocaleString`:\n * developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString\n *\n * eg: formatCurrencyWithoutDecimal(100) // £1\n */\nconst formatCurrencyWithoutDecimal = (\n n: number,\n { locale, currency }: Options = DEFAULT_OPTIONS\n): string => {\n return (n / 100).toLocaleString(\n locale,\n {\n style: 'currency',\n currency,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n }\n )\n}\n\n\nexport {\n formatCurrencyWithDecimal,\n formatCurrencyWithoutDecimal,\n}\n","// @noflow\nimport initI18n from '@/packs/localisation'\nimport type { Language } from '@/packs/localisation'\nimport React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport { DiscountBasis } from '@/utils/butternutbox/discountCodes'\nimport { initGoogleClickIdentifierSession } from '@/utils/googleClickIdentifierSession'\nimport { playVideosOnScroll } from '@/utils/playVideosOnScroll'\nimport * as Sentry from '@/utils/sentry'\n\nimport useWindowSize from '@/hooks/useWindowSize'\n\n// Components\nimport segmentTrack from '@/components/analytics/Analytics'\nimport { initCookieConsent } from '@/components/cookie_consent'\nimport BreedSelector from '@/components/shared/elements/BreedSelector'\nimport { BreedSelectorVariant } from '@/components/shared/elements/BreedSelector/BreedSelector'\nimport RafCampaignModal from '@/components/shared/elements/RafCampaignModal'\nimport { RafCampaignModalData } from '@/components/shared/elements/RafCampaignModal/RafCampaignModal'\nimport RafModal from '@/components/shared/elements/RafModal'\nimport { RafModalData } from '@/components/shared/elements/RafModal/RafModal'\nimport FullSectionRoughCostCalculator from '@/components/shared/elements/RoughCostCalculator/FullSectionRoughCostCalculator'\nimport WonkyTitleText from '@/components/shared/elements/WonkyTitleText/WonkyTitleText'\nimport initGeoIpWidget from '@/components/shared/geo_ip_widget/initGeoIpWidget'\nimport { BREAKPOINTS } from '@/components/templates/Base'\n\nimport type { Code as CountryCode } from '@/shared_types/rails_models/shipping_countries'\n\ntype ReferralLinkType =\n | 'ClientReferralLink'\n | 'AmbassadorReferralLink'\n | 'InfluencerReferralLink'\n\nconst dataContainer = document.querySelector('#home-content-tag') as HTMLElement\nif (!dataContainer)\n Sentry.captureException('Could not find #home-content-tag', {\n tags: {\n product: Sentry.Product.HomePage\n }\n })\n\nconst { dataset } = dataContainer\nconst {\n language,\n isPrewizardGuest,\n discountBasis,\n discountFirstPartValue,\n shippingCountryCode,\n shouldSeeNewHeroImage,\n shouldSeeStickyCta\n} = dataset\n\nconst preferredLanguage = (language as Language) || 'en'\n\nconst initLanguage = (): void => {\n initI18n(preferredLanguage)\n}\n\nconst initBreedSelector = (): void => {\n const breedSelectorElement =\n document.getElementsByClassName('breed-selector')[0]\n\n if (!breedSelectorElement) return\n\n const ctaDestination =\n isPrewizardGuest === 'true' ? '/wizard/new' : '/plans/recipes'\n\n const BreedSelectorComponent = () => {\n const { windowWidth } = useWindowSize()\n\n return (\n <BreedSelector\n isPreWizardGuest={isPrewizardGuest === 'true'}\n ctaDestination={ctaDestination}\n variant={BreedSelectorVariant.Homepage}\n scrollToOnFocus={\n windowWidth <= BREAKPOINTS.lg ? { topOffset: 60 } : false\n }\n screenIdentifier=\"homepage\"\n />\n )\n }\n\n ReactDOM.render(<BreedSelectorComponent />, breedSelectorElement)\n}\n\nconst initRafModal = (): void => {\n const rafModalElement = document.getElementById('raf-modal')\n if (!rafModalElement) return\n\n const referralLinkType = rafModalElement.dataset\n .referralLinkType as ReferralLinkType\n const { referrerRafCampaignName } = rafModalElement.dataset\n\n const validReferralLinkTypes: ReferralLinkType[] = [\n 'ClientReferralLink',\n 'AmbassadorReferralLink'\n ]\n\n // Check if the referral link is a client referral link and\n // if the referrer is part of the IFD 2024 RAF campaign\n if (\n referralLinkType === 'ClientReferralLink' &&\n referrerRafCampaignName &&\n referrerRafCampaignName === 'ifd-2024'\n ) {\n // Display RAF campaign modal\n const RafCampaignModalComponent = () => {\n return (\n <RafCampaignModal\n rafCampaignModalData={rafModalElement.dataset as RafCampaignModalData}\n />\n )\n }\n\n ReactDOM.render(<RafCampaignModalComponent />, rafModalElement)\n } else {\n // Otherwise display the standard RAF modal\n // Check if the supplied referralLinkType is one we can display the RAF modal for\n if (validReferralLinkTypes.every((link) => link !== referralLinkType))\n return\n const RafModalComponent = () => {\n return <RafModal rafModalData={rafModalElement.dataset as RafModalData} />\n }\n ReactDOM.render(<RafModalComponent />, rafModalElement)\n }\n}\n\nconst initWonkyTitleText = (elementClassName: string, titleText: string) => {\n const wonkyTextElements = document.getElementsByClassName(elementClassName)\n\n const wonkyTextElementArray = [...wonkyTextElements]\n\n if (!wonkyTextElements) return null\n\n wonkyTextElementArray.forEach((element) => {\n ReactDOM.render(\n <WonkyTitleText namespace=\"home_page\" text={titleText} />,\n element\n )\n })\n}\n\nconst initRoughCostCalculator = () => {\n const roughCostCalculatorElement = document.getElementById(\n 'rough-cost-calculator'\n ) as HTMLElement\n\n // We return null for users who aren't shown the calculator\n if (!roughCostCalculatorElement) return null\n\n ReactDOM.render(\n <FullSectionRoughCostCalculator\n preferredLanguage={preferredLanguage}\n screenIdentifier=\"homepage\"\n discountBasis={discountBasis as DiscountBasis}\n discountValue={parseInt(discountFirstPartValue || '') || 0}\n shippingCountryCode={shippingCountryCode as CountryCode}\n showImage\n />,\n roughCostCalculatorElement\n )\n}\n\nconst draggableCarousel = (elementId: string) => {\n const element = document.getElementById(elementId)\n if (!element) return\n\n let pos = { top: 0, left: 0, x: 0, y: 0 }\n\n const mouseMoveHandler = function (e: MouseEvent) {\n element.scrollLeft = pos.left - (e.clientX - pos.x)\n }\n\n const mouseUpHandler = () => {\n document.removeEventListener('mousemove', mouseMoveHandler)\n document.removeEventListener('mouseup', mouseUpHandler)\n\n element.style.cursor = 'grab'\n element.style.removeProperty('user-select')\n }\n\n const mouseDownHandler = (e: MouseEvent) => {\n element.style.cursor = 'grabbing'\n element.style.userSelect = 'none'\n\n pos = {\n left: element.scrollLeft,\n top: element.scrollTop,\n x: e.clientX,\n y: e.clientY\n }\n\n document.addEventListener('mousemove', mouseMoveHandler)\n document.addEventListener('mouseup', mouseUpHandler)\n }\n\n element.addEventListener('mousedown', mouseDownHandler)\n}\n\nconst initStickyCTA = (): void => {\n const stickyCTA = document.getElementById('sticky-cta-wrapper')\n\n if (!stickyCTA) {\n return\n }\n\n const handleIntersect = (\n entries: Array<IntersectionObserverEntry>,\n observer: IntersectionObserver\n ): void => {\n entries.forEach((entry: IntersectionObserverEntry): void => {\n if (entry.isIntersecting) {\n stickyCTA.classList.add('transition-in')\n observer.unobserve(entry.target)\n }\n })\n }\n\n const observer = new IntersectionObserver(handleIntersect)\n const freshFoodSection = document.getElementsByClassName(\n 'fresh-section__food'\n )[0] as HTMLElement\n\n if (!freshFoodSection)\n throw new Error('Could not find fresh food section on Homepage')\n observer.observe(freshFoodSection)\n}\n\nconst trackSectionViewed = ({\n elementId,\n eventName,\n properties\n}: {\n elementId: string\n eventName: string\n properties?: Record<string, unknown>\n}) => {\n const element = document.getElementById(elementId)\n\n // If the user cannot see the element, don't track it\n if (!element) return null\n\n let hasTracked = false\n\n const observer = new IntersectionObserver(([entry]) => {\n if (entry.isIntersecting && !hasTracked) {\n segmentTrack(eventName, properties)\n hasTracked = true\n observer.disconnect()\n }\n })\n\n return observer.observe(element)\n}\n\ndocument.addEventListener('DOMContentLoaded', (): void => {\n initLanguage()\n\n initWonkyTitleText(\n 'wonky-title-text',\n shouldSeeNewHeroImage === 'true'\n ? 'hero_section.title_v2'\n : 'hero_section.title'\n )\n initWonkyTitleText(\n 'wonky-title-text-mobile',\n shouldSeeNewHeroImage === 'true'\n ? 'hero_section.title_v2'\n : 'hero_section.title_mobile'\n )\n initWonkyTitleText(\n 'wonky-title-text-returning-guest',\n 'hero_section.title_returning_guest'\n )\n initRoughCostCalculator()\n initGoogleClickIdentifierSession()\n initGeoIpWidget({\n desktopNav: true,\n mobileSidebar: true,\n contentTagElementId: 'home-content-tag'\n })\n playVideosOnScroll()\n initBreedSelector()\n initCookieConsent()\n initRafModal()\n draggableCarousel('ingredient-carousel')\n if (shouldSeeStickyCta === 'true') {\n initStickyCTA()\n }\n\n trackSectionViewed({\n elementId: 'fresh-section',\n eventName: 'Fresh ingredients section shown',\n properties: {\n path: window.location.pathname\n }\n })\n trackSectionViewed({\n elementId: 'how-it-works',\n eventName: 'How to get started section shown',\n properties: {\n path: window.location.pathname\n }\n })\n trackSectionViewed({\n elementId: 'unboxing-video',\n eventName: 'Unboxing video shown',\n properties: {\n path: window.location.pathname\n }\n })\n trackSectionViewed({\n elementId: 'inside-first-box',\n eventName: 'Welcome Box section shown',\n properties: {\n path: window.location.pathname\n }\n })\n trackSectionViewed({\n elementId: 'instagram-section',\n eventName: 'Butternutter social media section shown',\n properties: {\n path: window.location.pathname\n }\n })\n trackSectionViewed({\n elementId: 'rough-cost-calculator',\n eventName: 'Homepage Rough Cost Calculator Shown',\n properties: {\n path: window.location.pathname\n }\n })\n trackSectionViewed({\n elementId: 'frequently-asked-questions',\n eventName: 'FAQ section shown',\n properties: {\n path: window.location.pathname\n }\n })\n})\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\nmodule.exports = freeGlobal;","// @flow\n\nimport { useState, useEffect } from 'react'\n\ntype WindowSize = {|\n windowWidth: number,\n windowHeight: number\n|}\n\n/**\n * A window size custom hook that can spy window resize changes.\n *\n * Destructuring showed in the example below is optional, you can\n * use returning value in form of an object or optinally pick only width or\n * height.\n *\n * Don't forget that hooks can only be called inside of the body of a\n * function component.\n *\n * Example usage\n * import useWindowSize from '@/hooks/useWindowSize'\n *\n * And inside of the body of a function component\n * const { windowWidth, windowHeight } = useWindowSize()\n */\n\nconst useWindowSize = (): WindowSize => {\n const isClient = typeof window === 'object'\n\n const getSize = (): WindowSize => ({\n windowWidth: window.innerWidth,\n windowHeight: window.innerHeight\n })\n\n const [windowSize, setWindowSize] = useState(getSize())\n\n useEffect((): (() => void) | void => {\n const handleResize = (): void => {\n setWindowSize(getSize())\n }\n\n window.addEventListener('resize', handleResize)\n\n if (isClient) {\n return (): void => window.removeEventListener('resize', handleResize)\n }\n }, [isClient])\n\n return {\n windowWidth: windowSize.windowWidth,\n windowHeight: windowSize.windowHeight\n }\n}\n\nexport default useWindowSize\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/** Built-in value references. */\n\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n\nvar isArguments = baseIsArguments(function () {\n return arguments;\n}()) ? baseIsArguments : function (value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n};\nmodule.exports = isArguments;","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n/** Detect free variable `exports`. */\n\n\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n/** Detect free variable `module`. */\n\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n/** Detect the popular CommonJS extension `module.exports`. */\n\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n/** Built-in value references. */\n\nvar Buffer = moduleExports ? root.Buffer : undefined;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n\nvar isBuffer = nativeIsBuffer || stubFalse;\nmodule.exports = isBuffer;","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n/** `Object#toString` result references. */\n\n\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\nvar dataViewTag = '[object DataView]';\n/** Used to detect maps, sets, and weakmaps. */\n\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n\nvar getTag = baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n\nif (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag(new Map()) != mapTag || Promise && getTag(Promise.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {\n getTag = function getTag(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString:\n return dataViewTag;\n\n case mapCtorString:\n return mapTag;\n\n case promiseCtorString:\n return promiseTag;\n\n case setCtorString:\n return setTag;\n\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n\n return result;\n };\n}\n\nmodule.exports = getTag;","module.exports = __webpack_public_path__ + \"media/flags/be-flag-33027a5e.svg\";","module.exports = __webpack_public_path__ + \"media/flags/cz-flag-4c9a5a77.svg\";","module.exports = __webpack_public_path__ + \"media/flags/de-flag-f37644fb.svg\";","module.exports = __webpack_public_path__ + \"media/flags/ie-flag-f783ccf1.svg\";","module.exports = __webpack_public_path__ + \"media/flags/nl-flag-ccab9388.svg\";","module.exports = __webpack_public_path__ + \"media/flags/pl-flag-9bf4f774.svg\";","import { __assign } from \"tslib\";\nimport { compact } from \"./compact.js\";\nexport function mergeOptions(defaults, options) {\n return compact(defaults, options, options.variables && {\n variables: __assign(__assign({}, defaults && defaults.variables), options.variables)\n });\n}","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n/** Used as references for various `Number` constants. */\n\n\nvar INFINITY = 1 / 0;\n/** Used to convert symbols to primitives and strings. */\n\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n}\n\nmodule.exports = baseToString;","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n/** Used to compose unicode capture groups. */\n\nvar rsZWJ = '\\\\u200d';\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;","// @noflow\nimport type { Language as LanguageType } from '@/packs/localisation'\nimport { useMutation, useQuery } from '@apollo/client'\nimport Cookies from 'js-cookie'\nimport React from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport segmentTrack from '@/components/analytics/Analytics'\nimport withApollo from '@/components/apollo/withApollo'\nimport TransitionalModal from '@/components/shared/TransitionalModal'\nimport LanguageWidget from '@/components/shared/geo_ip_widget/LanguageWidget'\nimport RegionWidget from '@/components/shared/geo_ip_widget/RegionWidget'\n\nimport SAVE_LANGUAGE_MUTATION from './queries/saveLanguage'\nimport USER_TYPE_QUERY from './queries/userQuery'\n\nimport type {\n SaveLanguageUpdate,\n SaveLanguageUpdateVariables\n} from './queries/__generated__/SaveLanguageUpdate'\nimport type { UserQuery } from './queries/__generated__/UserQuery'\nimport type {\n Code as CountryCode,\n ShippingCountry\n} from '@/shared_types/rails_models/shipping_countries'\nimport { Language } from '@/types'\n\nimport { getLanguageName } from '../localisationHelpers'\n\nconst languageCookiesKey = 'user_language'\nconst countryCodeCookiesKey = 'user_country_code'\n\ntype AnalyticsProps = {\n widgetLocation: string\n currentLanguage?: LanguageType\n newLanguage?: LanguageType\n currentCountryCode?: CountryCode\n newCountryCode?: CountryCode\n}\n\nconst triggerLocalisationWidgetAnalytics = ({\n widgetLocation,\n currentLanguage,\n newLanguage,\n currentCountryCode,\n newCountryCode\n}: {\n widgetLocation: string\n currentLanguage?: LanguageType\n newLanguage?: LanguageType\n currentCountryCode?: CountryCode\n newCountryCode?: CountryCode\n}): void => {\n const eventName = 'Localisation Preferences Updated'\n const properties: AnalyticsProps = {\n widgetLocation\n }\n if (currentLanguage) {\n properties.currentLanguage = currentLanguage\n properties.newLanguage = newLanguage\n }\n if (currentCountryCode) {\n properties.currentCountryCode = currentCountryCode\n properties.newCountryCode = newCountryCode\n }\n segmentTrack(eventName, properties)\n}\n\nconst saveLanguageAndCountry = ({\n newCountryCode,\n currentCountryCode,\n newLanguage,\n currentLanguage,\n widgetLocation\n}: {\n widgetLocation: string\n currentLanguage: LanguageType\n newLanguage: LanguageType\n currentCountryCode: CountryCode\n newCountryCode: CountryCode\n}): void => {\n let languageUpdated = false\n let countryUpdated = false\n const cookieOptions =\n window.location.hostname === 'localhost'\n ? undefined\n : { domain: window.location.hostname }\n if (newLanguage !== currentLanguage) {\n Cookies.set(languageCookiesKey, newLanguage, cookieOptions)\n languageUpdated = true\n }\n if (newCountryCode !== currentCountryCode) {\n Cookies.set(countryCodeCookiesKey, newCountryCode, cookieOptions)\n countryUpdated = true\n }\n if (languageUpdated || countryUpdated) {\n if (languageUpdated && countryUpdated) {\n triggerLocalisationWidgetAnalytics({\n currentLanguage,\n newLanguage,\n currentCountryCode,\n newCountryCode,\n widgetLocation\n })\n } else if (languageUpdated) {\n triggerLocalisationWidgetAnalytics({\n currentLanguage,\n newLanguage,\n widgetLocation\n })\n } else if (countryUpdated) {\n triggerLocalisationWidgetAnalytics({\n currentCountryCode,\n newCountryCode,\n widgetLocation\n })\n }\n window.location.reload()\n }\n}\n\nconst LocalisationModal = ({\n currentCountryCode,\n currentLanguage,\n activeShippingCountries,\n closeModal,\n isOpen,\n widgetLocation\n}: {\n currentCountryCode: CountryCode\n currentLanguage: LanguageType\n activeShippingCountries: Array<ShippingCountry>\n closeModal: () => void\n isOpen: boolean\n widgetLocation: string\n}): React.ReactElement | null => {\n const [temporaryLanguage, setTemporaryLanguage] =\n React.useState(currentLanguage)\n const [temporaryShippingCountry, setTemporaryShippingCountry] =\n React.useState(currentCountryCode)\n const [countryOptionsAreVisible, setCountryOptionsAreVisible] =\n React.useState(false)\n const [languageOptionsAreVisible, setLanguageOptionsAreVisible] =\n React.useState(false)\n const { loading, data, error } = useQuery<UserQuery>(USER_TYPE_QUERY)\n const [saveLanguage] = useMutation<\n SaveLanguageUpdate,\n SaveLanguageUpdateVariables\n >(SAVE_LANGUAGE_MUTATION, {\n onCompleted() {\n window.location.reload()\n }\n })\n\n const saveLanguagePostWizard = React.useCallback(\n ({\n newLanguage,\n currentLanguage,\n widgetLocation\n }: {\n newLanguage: LanguageType\n currentLanguage: LanguageType\n widgetLocation: string\n }) => {\n if (newLanguage !== currentLanguage) {\n const cookieOptions =\n window.location.hostname === 'localhost'\n ? undefined\n : { domain: window.location.hostname }\n Cookies.set(languageCookiesKey, newLanguage, cookieOptions)\n\n triggerLocalisationWidgetAnalytics({\n currentLanguage,\n newLanguage,\n widgetLocation\n })\n\n switch (newLanguage) {\n case 'pl_PL': {\n return saveLanguage({\n variables: {\n language: Language.pl_PL\n }\n })\n }\n case 'pl': {\n return saveLanguage({\n variables: {\n language: Language.pl\n }\n })\n }\n case 'nl_BE': {\n return saveLanguage({\n variables: {\n language: Language.nl_BE\n }\n })\n }\n case 'nl': {\n return saveLanguage({\n variables: {\n language: Language.nl\n }\n })\n }\n case 'en': {\n return saveLanguage({\n variables: {\n language: Language.en\n }\n })\n }\n case 'de_DE': {\n return saveLanguage({\n variables: {\n language: Language.de_DE\n }\n })\n }\n case 'cs_CZ': {\n return saveLanguage({\n variables: {\n language: Language.cs_CZ\n }\n })\n }\n }\n }\n },\n [saveLanguage]\n )\n\n const closeDropdowns = React.useCallback((e) => {\n // Clicking anywhere in the modal other than the two widgets will close the dropdowns\n if (\n !e.target.classList.contains('region-widget__selected-country') &&\n !e.target.classList.contains('language-widget__selected-language')\n ) {\n setCountryOptionsAreVisible(false)\n setLanguageOptionsAreVisible(false)\n }\n }, [])\n\n const sanitisePolishLanguage = React.useCallback(\n (temporaryShippingCountry, currentCountryCode, language: LanguageType) => {\n if (temporaryShippingCountry === 'PL') {\n switch (language) {\n case 'pl_PL':\n case 'pl':\n return Language.pl_PL\n default:\n return language\n }\n } else if (\n temporaryShippingCountry !== 'PL' &&\n currentCountryCode === 'PL'\n ) {\n switch (language) {\n case 'pl_PL':\n case 'pl':\n return Language.pl\n default:\n return language\n }\n } else {\n return language\n }\n },\n []\n )\n\n const handleSavePreWizard = React.useCallback((): void => {\n const newLanguage = sanitisePolishLanguage(\n temporaryShippingCountry,\n currentCountryCode,\n temporaryLanguage\n )\n saveLanguageAndCountry({\n currentLanguage,\n currentCountryCode,\n newLanguage,\n newCountryCode: temporaryShippingCountry,\n widgetLocation\n })\n }, [\n sanitisePolishLanguage,\n temporaryShippingCountry,\n currentCountryCode,\n temporaryLanguage,\n currentLanguage,\n widgetLocation\n ])\n\n const handleSavePostWizard = React.useCallback((): void => {\n const newLanguage = sanitisePolishLanguage(\n temporaryShippingCountry,\n currentCountryCode,\n temporaryLanguage\n )\n saveLanguagePostWizard({ currentLanguage, newLanguage, widgetLocation })\n }, [\n sanitisePolishLanguage,\n temporaryShippingCountry,\n currentCountryCode,\n temporaryLanguage,\n saveLanguagePostWizard,\n currentLanguage,\n widgetLocation\n ])\n\n const shouldShowLanguageDropdown = (): boolean => {\n const languages = activeShippingCountries.map(\n (country: ShippingCountry) => {\n return country.defaultLanguage\n }\n )\n const languageOptions = [...new Set(languages)]\n return languageOptions.length > 1\n }\n\n const { t } = useTranslation('localisation_modal')\n\n if (loading || !data) return null\n\n if (error)\n throw new Error(`Error when GUEST_QUERY executes: ${error.message}`)\n\n const isPreWizardGuest = (): boolean => {\n return data.currentUser?.__typename === 'PreWizardGuest'\n }\n\n const languages = activeShippingCountries\n .filter((country) => temporaryShippingCountry === country.code)\n .flatMap((country) => country.availableLanguages)\n\n return (\n <TransitionalModal\n closeModal={closeModal}\n extraClasses=\"localisation-modal\"\n modalIsOpen={isOpen}\n modalSize=\"large\"\n showCloseButton\n transitionTypes={{ desktop: 'scale', mobile: 'bottom' }}\n >\n <div\n role=\"button\"\n tabIndex={0}\n onKeyDown={closeDropdowns}\n className=\"localisation-modal__content\"\n onClick={closeDropdowns}\n >\n <h2 className=\"display-24\">{t('title')}</h2>\n {isPreWizardGuest() && (\n <React.Fragment>\n <h3\n className=\"widget-title text-regular-16\"\n key=\"region-widget-title\"\n >\n {t('widget_region_title')}\n </h3>\n <RegionWidget\n key=\"region-widget\"\n setTemporaryShippingCountry={setTemporaryShippingCountry}\n temporaryShippingCountry={temporaryShippingCountry}\n activeShippingCountries={activeShippingCountries}\n setCountryOptionsAreVisible={setCountryOptionsAreVisible}\n countryOptionsAreVisible={countryOptionsAreVisible}\n />\n </React.Fragment>\n )}\n <h3 className=\"widget-title text-regular-16\">\n {t('widget_language_title')}\n </h3>\n {shouldShowLanguageDropdown() ? (\n <LanguageWidget\n setTemporaryLanguage={setTemporaryLanguage}\n temporaryLanguage={temporaryLanguage}\n setLanguageOptionsAreVisible={setLanguageOptionsAreVisible}\n languageOptionsAreVisible={languageOptionsAreVisible}\n availableLanguages={languages}\n />\n ) : (\n <p className=\"localisation-modal__current-language text-regular-18\">\n {getLanguageName({ language: temporaryLanguage, t }) || ''}\n </p>\n )}\n <div className=\"localisation-modal__btn-group\">\n <button\n type=\"button\"\n className=\"btn secondary cancel\"\n onClick={closeModal}\n >\n {t('cancel')}\n </button>\n <button\n type=\"button\"\n className=\"btn primary save\"\n onClick={\n isPreWizardGuest() ? handleSavePreWizard : handleSavePostWizard\n }\n >\n {t('save')}\n </button>\n </div>\n </div>\n </TransitionalModal>\n )\n}\n\nexport default withApollo(LocalisationModal)\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\n\n\nexport default function isObjectLike(value) {\n return _typeof(value) == 'object' && value !== null;\n}","/**\n * Represents a location in a Source.\n */\n\n/**\n * Takes a Source and a UTF-8 character offset, and returns the corresponding\n * line and column as a SourceLocation.\n */\nexport function getLocation(source, position) {\n var lineRegexp = /\\r\\n|[\\n\\r]/g;\n var line = 1;\n var column = position + 1;\n var match;\n\n while ((match = lineRegexp.exec(source.body)) && match.index < position) {\n line += 1;\n column = position + 1 - (match.index + match[0].length);\n }\n\n return {\n line: line,\n column: column\n };\n}","import { getLocation } from \"./location.mjs\";\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printLocation(location) {\n return printSourceLocation(location.source, getLocation(location.source, location.start));\n}\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printSourceLocation(source, sourceLocation) {\n var firstLineColumnOffset = source.locationOffset.column - 1;\n var body = whitespace(firstLineColumnOffset) + source.body;\n var lineIndex = sourceLocation.line - 1;\n var lineOffset = source.locationOffset.line - 1;\n var lineNum = sourceLocation.line + lineOffset;\n var columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;\n var columnNum = sourceLocation.column + columnOffset;\n var locationStr = \"\".concat(source.name, \":\").concat(lineNum, \":\").concat(columnNum, \"\\n\");\n var lines = body.split(/\\r\\n|[\\n\\r]/g);\n var locationLine = lines[lineIndex]; // Special case for minified documents\n\n if (locationLine.length > 120) {\n var subLineIndex = Math.floor(columnNum / 80);\n var subLineColumnNum = columnNum % 80;\n var subLines = [];\n\n for (var i = 0; i < locationLine.length; i += 80) {\n subLines.push(locationLine.slice(i, i + 80));\n }\n\n return locationStr + printPrefixedLines([[\"\".concat(lineNum), subLines[0]]].concat(subLines.slice(1, subLineIndex + 1).map(function (subLine) {\n return ['', subLine];\n }), [[' ', whitespace(subLineColumnNum - 1) + '^'], ['', subLines[subLineIndex + 1]]]));\n }\n\n return locationStr + printPrefixedLines([// Lines specified like this: [\"prefix\", \"string\"],\n [\"\".concat(lineNum - 1), lines[lineIndex - 1]], [\"\".concat(lineNum), locationLine], ['', whitespace(columnNum - 1) + '^'], [\"\".concat(lineNum + 1), lines[lineIndex + 1]]]);\n}\n\nfunction printPrefixedLines(lines) {\n var existingLines = lines.filter(function (_ref) {\n var _ = _ref[0],\n line = _ref[1];\n return line !== undefined;\n });\n var padLen = Math.max.apply(Math, existingLines.map(function (_ref2) {\n var prefix = _ref2[0];\n return prefix.length;\n }));\n return existingLines.map(function (_ref3) {\n var prefix = _ref3[0],\n line = _ref3[1];\n return leftPad(padLen, prefix) + (line ? ' | ' + line : ' |');\n }).join('\\n');\n}\n\nfunction whitespace(len) {\n return Array(len + 1).join(' ');\n}\n\nfunction leftPad(len, str) {\n return whitespace(len - str.length) + str;\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport { getLocation } from \"../language/location.mjs\";\nimport { printLocation, printSourceLocation } from \"../language/printLocation.mjs\";\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\n\nexport var GraphQLError = /*#__PURE__*/function (_Error) {\n _inherits(GraphQLError, _Error);\n\n var _super = _createSuper(GraphQLError);\n /**\n * An array of { line, column } locations within the source GraphQL document\n * which correspond to this error.\n *\n * Errors during validation often contain multiple locations, for example to\n * point out two things with the same name. Errors during execution include a\n * single location, the field which produced the error.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array describing the JSON-path into the execution response which\n * corresponds to this error. Only included for errors during execution.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array of GraphQL AST Nodes corresponding to this error.\n */\n\n /**\n * The source GraphQL document for the first location of this error.\n *\n * Note that if this Error represents more than one node, the source may not\n * represent nodes after the first node.\n */\n\n /**\n * An array of character offsets within the source GraphQL document\n * which correspond to this error.\n */\n\n /**\n * The original error thrown from a field resolver during execution.\n */\n\n /**\n * Extension fields to add to the formatted error.\n */\n\n\n function GraphQLError(message, nodes, source, positions, path, originalError, extensions) {\n var _nodeLocations, _nodeLocations2, _nodeLocations3;\n\n var _this;\n\n _classCallCheck(this, GraphQLError);\n\n _this = _super.call(this, message);\n _this.name = 'GraphQLError';\n _this.originalError = originalError !== null && originalError !== void 0 ? originalError : undefined; // Compute list of blame nodes.\n\n _this.nodes = undefinedIfEmpty(Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined);\n var nodeLocations = [];\n\n for (var _i2 = 0, _ref3 = (_this$nodes = _this.nodes) !== null && _this$nodes !== void 0 ? _this$nodes : []; _i2 < _ref3.length; _i2++) {\n var _this$nodes;\n\n var _ref4 = _ref3[_i2];\n var loc = _ref4.loc;\n\n if (loc != null) {\n nodeLocations.push(loc);\n }\n }\n\n nodeLocations = undefinedIfEmpty(nodeLocations); // Compute locations in the source for the given nodes/positions.\n\n _this.source = source !== null && source !== void 0 ? source : (_nodeLocations = nodeLocations) === null || _nodeLocations === void 0 ? void 0 : _nodeLocations[0].source;\n _this.positions = positions !== null && positions !== void 0 ? positions : (_nodeLocations2 = nodeLocations) === null || _nodeLocations2 === void 0 ? void 0 : _nodeLocations2.map(function (loc) {\n return loc.start;\n });\n _this.locations = positions && source ? positions.map(function (pos) {\n return getLocation(source, pos);\n }) : (_nodeLocations3 = nodeLocations) === null || _nodeLocations3 === void 0 ? void 0 : _nodeLocations3.map(function (loc) {\n return getLocation(loc.source, loc.start);\n });\n _this.path = path !== null && path !== void 0 ? path : undefined;\n var originalExtensions = originalError === null || originalError === void 0 ? void 0 : originalError.extensions;\n\n if (extensions == null && isObjectLike(originalExtensions)) {\n _this.extensions = _objectSpread({}, originalExtensions);\n } else {\n _this.extensions = extensions !== null && extensions !== void 0 ? extensions : {};\n } // By being enumerable, JSON.stringify will include bellow properties in the resulting output.\n // This ensures that the simplest possible GraphQL service adheres to the spec.\n\n\n Object.defineProperties(_assertThisInitialized(_this), {\n message: {\n enumerable: true\n },\n locations: {\n enumerable: _this.locations != null\n },\n path: {\n enumerable: _this.path != null\n },\n extensions: {\n enumerable: _this.extensions != null && Object.keys(_this.extensions).length > 0\n },\n name: {\n enumerable: false\n },\n nodes: {\n enumerable: false\n },\n source: {\n enumerable: false\n },\n positions: {\n enumerable: false\n },\n originalError: {\n enumerable: false\n }\n }); // Include (non-enumerable) stack trace.\n\n if (originalError !== null && originalError !== void 0 && originalError.stack) {\n Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true\n });\n return _possibleConstructorReturn(_this);\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(_assertThisInitialized(_this), GraphQLError);\n } else {\n Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true\n });\n }\n\n return _this;\n }\n\n _createClass(GraphQLError, [{\n key: \"toString\",\n value: function toString() {\n return printError(this);\n } // FIXME: workaround to not break chai comparisons, should be remove in v16\n // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n }, {\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Object';\n }\n }]);\n\n return GraphQLError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nfunction undefinedIfEmpty(array) {\n return array === undefined || array.length === 0 ? undefined : array;\n}\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n */\n\n\nexport function printError(error) {\n var output = error.message;\n\n if (error.nodes) {\n for (var _i4 = 0, _error$nodes2 = error.nodes; _i4 < _error$nodes2.length; _i4++) {\n var node = _error$nodes2[_i4];\n\n if (node.loc) {\n output += '\\n\\n' + printLocation(node.loc);\n }\n }\n } else if (error.source && error.locations) {\n for (var _i6 = 0, _error$locations2 = error.locations; _i6 < _error$locations2.length; _i6++) {\n var location = _error$locations2[_i6];\n output += '\\n\\n' + printSourceLocation(error.source, location);\n }\n }\n\n return output;\n}","import { GraphQLError } from \"./GraphQLError.mjs\";\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n return new GraphQLError(\"Syntax Error: \".concat(description), undefined, source, [position]);\n}","/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nexport var TokenKind = Object.freeze({\n SOF: '<SOF>',\n EOF: '<EOF>',\n BANG: '!',\n DOLLAR: '$',\n AMP: '&',\n PAREN_L: '(',\n PAREN_R: ')',\n SPREAD: '...',\n COLON: ':',\n EQUALS: '=',\n AT: '@',\n BRACKET_L: '[',\n BRACKET_R: ']',\n BRACE_L: '{',\n PIPE: '|',\n BRACE_R: '}',\n NAME: 'Name',\n INT: 'Int',\n FLOAT: 'Float',\n STRING: 'String',\n BLOCK_STRING: 'BlockString',\n COMMENT: 'Comment'\n});\n/**\n * The enum type representing the token kinds values.\n */","/**\n * The set of allowed directive location values.\n */\nexport var DirectiveLocation = Object.freeze({\n // Request Definitions\n QUERY: 'QUERY',\n MUTATION: 'MUTATION',\n SUBSCRIPTION: 'SUBSCRIPTION',\n FIELD: 'FIELD',\n FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION',\n FRAGMENT_SPREAD: 'FRAGMENT_SPREAD',\n INLINE_FRAGMENT: 'INLINE_FRAGMENT',\n VARIABLE_DEFINITION: 'VARIABLE_DEFINITION',\n // Type System Definitions\n SCHEMA: 'SCHEMA',\n SCALAR: 'SCALAR',\n OBJECT: 'OBJECT',\n FIELD_DEFINITION: 'FIELD_DEFINITION',\n ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION',\n INTERFACE: 'INTERFACE',\n UNION: 'UNION',\n ENUM: 'ENUM',\n ENUM_VALUE: 'ENUM_VALUE',\n INPUT_OBJECT: 'INPUT_OBJECT',\n INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION'\n});\n/**\n * The enum type representing the directive location values.\n */","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Token } from \"./ast.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { dedentBlockStringValue } from \"./blockString.mjs\";\n/**\n * Given a Source object, creates a Lexer for that source.\n * A Lexer is a stateful stream generator in that every time\n * it is advanced, it returns the next token in the Source. Assuming the\n * source lexes, the final Token emitted by the lexer will be of kind\n * EOF, after which the lexer will repeatedly return the same EOF token\n * whenever called.\n */\n\nexport var Lexer = /*#__PURE__*/function () {\n /**\n * The previously focused non-ignored token.\n */\n\n /**\n * The currently focused non-ignored token.\n */\n\n /**\n * The (1-indexed) line containing the current token.\n */\n\n /**\n * The character offset at which the current line begins.\n */\n function Lexer(source) {\n var startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0, null);\n this.source = source;\n this.lastToken = startOfFileToken;\n this.token = startOfFileToken;\n this.line = 1;\n this.lineStart = 0;\n }\n /**\n * Advances the token stream to the next non-ignored token.\n */\n\n\n var _proto = Lexer.prototype;\n\n _proto.advance = function advance() {\n this.lastToken = this.token;\n var token = this.token = this.lookahead();\n return token;\n }\n /**\n * Looks ahead and returns the next non-ignored token, but does not change\n * the state of Lexer.\n */\n ;\n\n _proto.lookahead = function lookahead() {\n var token = this.token;\n\n if (token.kind !== TokenKind.EOF) {\n do {\n var _token$next; // Note: next is only mutable during parsing, so we cast to allow this.\n\n\n token = (_token$next = token.next) !== null && _token$next !== void 0 ? _token$next : token.next = readToken(this, token);\n } while (token.kind === TokenKind.COMMENT);\n }\n\n return token;\n };\n\n return Lexer;\n}();\n/**\n * @internal\n */\n\nexport function isPunctuatorTokenKind(kind) {\n return kind === TokenKind.BANG || kind === TokenKind.DOLLAR || kind === TokenKind.AMP || kind === TokenKind.PAREN_L || kind === TokenKind.PAREN_R || kind === TokenKind.SPREAD || kind === TokenKind.COLON || kind === TokenKind.EQUALS || kind === TokenKind.AT || kind === TokenKind.BRACKET_L || kind === TokenKind.BRACKET_R || kind === TokenKind.BRACE_L || kind === TokenKind.PIPE || kind === TokenKind.BRACE_R;\n}\n\nfunction printCharCode(code) {\n return (// NaN/undefined represents access beyond the end of the file.\n isNaN(code) ? TokenKind.EOF : // Trust JSON for ASCII.\n code < 0x007f ? JSON.stringify(String.fromCharCode(code)) : // Otherwise print the escaped form.\n \"\\\"\\\\u\".concat(('00' + code.toString(16).toUpperCase()).slice(-4), \"\\\"\")\n );\n}\n/**\n * Gets the next token from the source starting at the given position.\n *\n * This skips over whitespace until it finds the next lexable token, then lexes\n * punctuators immediately or calls the appropriate helper function for more\n * complicated tokens.\n */\n\n\nfunction readToken(lexer, prev) {\n var source = lexer.source;\n var body = source.body;\n var bodyLength = body.length;\n var pos = prev.end;\n\n while (pos < bodyLength) {\n var code = body.charCodeAt(pos);\n var _line = lexer.line;\n\n var _col = 1 + pos - lexer.lineStart; // SourceCharacter\n\n\n switch (code) {\n case 0xfeff: // <BOM>\n\n case 9: // \\t\n\n case 32: // <space>\n\n case 44:\n // ,\n ++pos;\n continue;\n\n case 10:\n // \\n\n ++pos;\n ++lexer.line;\n lexer.lineStart = pos;\n continue;\n\n case 13:\n // \\r\n if (body.charCodeAt(pos + 1) === 10) {\n pos += 2;\n } else {\n ++pos;\n }\n\n ++lexer.line;\n lexer.lineStart = pos;\n continue;\n\n case 33:\n // !\n return new Token(TokenKind.BANG, pos, pos + 1, _line, _col, prev);\n\n case 35:\n // #\n return readComment(source, pos, _line, _col, prev);\n\n case 36:\n // $\n return new Token(TokenKind.DOLLAR, pos, pos + 1, _line, _col, prev);\n\n case 38:\n // &\n return new Token(TokenKind.AMP, pos, pos + 1, _line, _col, prev);\n\n case 40:\n // (\n return new Token(TokenKind.PAREN_L, pos, pos + 1, _line, _col, prev);\n\n case 41:\n // )\n return new Token(TokenKind.PAREN_R, pos, pos + 1, _line, _col, prev);\n\n case 46:\n // .\n if (body.charCodeAt(pos + 1) === 46 && body.charCodeAt(pos + 2) === 46) {\n return new Token(TokenKind.SPREAD, pos, pos + 3, _line, _col, prev);\n }\n\n break;\n\n case 58:\n // :\n return new Token(TokenKind.COLON, pos, pos + 1, _line, _col, prev);\n\n case 61:\n // =\n return new Token(TokenKind.EQUALS, pos, pos + 1, _line, _col, prev);\n\n case 64:\n // @\n return new Token(TokenKind.AT, pos, pos + 1, _line, _col, prev);\n\n case 91:\n // [\n return new Token(TokenKind.BRACKET_L, pos, pos + 1, _line, _col, prev);\n\n case 93:\n // ]\n return new Token(TokenKind.BRACKET_R, pos, pos + 1, _line, _col, prev);\n\n case 123:\n // {\n return new Token(TokenKind.BRACE_L, pos, pos + 1, _line, _col, prev);\n\n case 124:\n // |\n return new Token(TokenKind.PIPE, pos, pos + 1, _line, _col, prev);\n\n case 125:\n // }\n return new Token(TokenKind.BRACE_R, pos, pos + 1, _line, _col, prev);\n\n case 34:\n // \"\n if (body.charCodeAt(pos + 1) === 34 && body.charCodeAt(pos + 2) === 34) {\n return readBlockString(source, pos, _line, _col, prev, lexer);\n }\n\n return readString(source, pos, _line, _col, prev);\n\n case 45: // -\n\n case 48: // 0\n\n case 49: // 1\n\n case 50: // 2\n\n case 51: // 3\n\n case 52: // 4\n\n case 53: // 5\n\n case 54: // 6\n\n case 55: // 7\n\n case 56: // 8\n\n case 57:\n // 9\n return readNumber(source, pos, code, _line, _col, prev);\n\n case 65: // A\n\n case 66: // B\n\n case 67: // C\n\n case 68: // D\n\n case 69: // E\n\n case 70: // F\n\n case 71: // G\n\n case 72: // H\n\n case 73: // I\n\n case 74: // J\n\n case 75: // K\n\n case 76: // L\n\n case 77: // M\n\n case 78: // N\n\n case 79: // O\n\n case 80: // P\n\n case 81: // Q\n\n case 82: // R\n\n case 83: // S\n\n case 84: // T\n\n case 85: // U\n\n case 86: // V\n\n case 87: // W\n\n case 88: // X\n\n case 89: // Y\n\n case 90: // Z\n\n case 95: // _\n\n case 97: // a\n\n case 98: // b\n\n case 99: // c\n\n case 100: // d\n\n case 101: // e\n\n case 102: // f\n\n case 103: // g\n\n case 104: // h\n\n case 105: // i\n\n case 106: // j\n\n case 107: // k\n\n case 108: // l\n\n case 109: // m\n\n case 110: // n\n\n case 111: // o\n\n case 112: // p\n\n case 113: // q\n\n case 114: // r\n\n case 115: // s\n\n case 116: // t\n\n case 117: // u\n\n case 118: // v\n\n case 119: // w\n\n case 120: // x\n\n case 121: // y\n\n case 122:\n // z\n return readName(source, pos, _line, _col, prev);\n }\n\n throw syntaxError(source, pos, unexpectedCharacterMessage(code));\n }\n\n var line = lexer.line;\n var col = 1 + pos - lexer.lineStart;\n return new Token(TokenKind.EOF, bodyLength, bodyLength, line, col, prev);\n}\n/**\n * Report a message that an unexpected character was encountered.\n */\n\n\nfunction unexpectedCharacterMessage(code) {\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n return \"Cannot contain the invalid character \".concat(printCharCode(code), \".\");\n }\n\n if (code === 39) {\n // '\n return 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?';\n }\n\n return \"Cannot parse the unexpected character \".concat(printCharCode(code), \".\");\n}\n/**\n * Reads a comment token from the source file.\n *\n * #[\\u0009\\u0020-\\uFFFF]*\n */\n\n\nfunction readComment(source, start, line, col, prev) {\n var body = source.body;\n var code;\n var position = start;\n\n do {\n code = body.charCodeAt(++position);\n } while (!isNaN(code) && ( // SourceCharacter but not LineTerminator\n code > 0x001f || code === 0x0009));\n\n return new Token(TokenKind.COMMENT, start, position, line, col, prev, body.slice(start + 1, position));\n}\n/**\n * Reads a number token from the source file, either a float\n * or an int depending on whether a decimal point appears.\n *\n * Int: -?(0|[1-9][0-9]*)\n * Float: -?(0|[1-9][0-9]*)(\\.[0-9]+)?((E|e)(+|-)?[0-9]+)?\n */\n\n\nfunction readNumber(source, start, firstCode, line, col, prev) {\n var body = source.body;\n var code = firstCode;\n var position = start;\n var isFloat = false;\n\n if (code === 45) {\n // -\n code = body.charCodeAt(++position);\n }\n\n if (code === 48) {\n // 0\n code = body.charCodeAt(++position);\n\n if (code >= 48 && code <= 57) {\n throw syntaxError(source, position, \"Invalid number, unexpected digit after 0: \".concat(printCharCode(code), \".\"));\n }\n } else {\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 46) {\n // .\n isFloat = true;\n code = body.charCodeAt(++position);\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 69 || code === 101) {\n // E e\n isFloat = true;\n code = body.charCodeAt(++position);\n\n if (code === 43 || code === 45) {\n // + -\n code = body.charCodeAt(++position);\n }\n\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n } // Numbers cannot be followed by . or NameStart\n\n\n if (code === 46 || isNameStart(code)) {\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n }\n\n return new Token(isFloat ? TokenKind.FLOAT : TokenKind.INT, start, position, line, col, prev, body.slice(start, position));\n}\n/**\n * Returns the new position in the source after reading digits.\n */\n\n\nfunction readDigits(source, start, firstCode) {\n var body = source.body;\n var position = start;\n var code = firstCode;\n\n if (code >= 48 && code <= 57) {\n // 0 - 9\n do {\n code = body.charCodeAt(++position);\n } while (code >= 48 && code <= 57); // 0 - 9\n\n\n return position;\n }\n\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n}\n/**\n * Reads a string token from the source file.\n *\n * \"([^\"\\\\\\u000A\\u000D]|(\\\\(u[0-9a-fA-F]{4}|[\"\\\\/bfnrt])))*\"\n */\n\n\nfunction readString(source, start, line, col, prev) {\n var body = source.body;\n var position = start + 1;\n var chunkStart = position;\n var code = 0;\n var value = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position)) && // not LineTerminator\n code !== 0x000a && code !== 0x000d) {\n // Closing Quote (\")\n if (code === 34) {\n value += body.slice(chunkStart, position);\n return new Token(TokenKind.STRING, start, position + 1, line, col, prev, value);\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n ++position;\n\n if (code === 92) {\n // \\\n value += body.slice(chunkStart, position - 1);\n code = body.charCodeAt(position);\n\n switch (code) {\n case 34:\n value += '\"';\n break;\n\n case 47:\n value += '/';\n break;\n\n case 92:\n value += '\\\\';\n break;\n\n case 98:\n value += '\\b';\n break;\n\n case 102:\n value += '\\f';\n break;\n\n case 110:\n value += '\\n';\n break;\n\n case 114:\n value += '\\r';\n break;\n\n case 116:\n value += '\\t';\n break;\n\n case 117:\n {\n // uXXXX\n var charCode = uniCharCode(body.charCodeAt(position + 1), body.charCodeAt(position + 2), body.charCodeAt(position + 3), body.charCodeAt(position + 4));\n\n if (charCode < 0) {\n var invalidSequence = body.slice(position + 1, position + 5);\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\u\".concat(invalidSequence, \".\"));\n }\n\n value += String.fromCharCode(charCode);\n position += 4;\n break;\n }\n\n default:\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\\".concat(String.fromCharCode(code), \".\"));\n }\n\n ++position;\n chunkStart = position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Reads a block string token from the source file.\n *\n * \"\"\"(\"?\"?(\\\\\"\"\"|\\\\(?!=\"\"\")|[^\"\\\\]))*\"\"\"\n */\n\n\nfunction readBlockString(source, start, line, col, prev, lexer) {\n var body = source.body;\n var position = start + 3;\n var chunkStart = position;\n var code = 0;\n var rawValue = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position))) {\n // Closing Triple-Quote (\"\"\")\n if (code === 34 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34) {\n rawValue += body.slice(chunkStart, position);\n return new Token(TokenKind.BLOCK_STRING, start, position + 3, line, col, prev, dedentBlockStringValue(rawValue));\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n if (code === 10) {\n // new line\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n } else if (code === 13) {\n // carriage return\n if (body.charCodeAt(position + 1) === 10) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n } else if ( // Escape Triple-Quote (\\\"\"\")\n code === 92 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34 && body.charCodeAt(position + 3) === 34) {\n rawValue += body.slice(chunkStart, position) + '\"\"\"';\n position += 4;\n chunkStart = position;\n } else {\n ++position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Converts four hexadecimal chars to the integer that the\n * string represents. For example, uniCharCode('0','0','0','f')\n * will return 15, and uniCharCode('0','0','f','f') returns 255.\n *\n * Returns a negative number on error, if a char was invalid.\n *\n * This is implemented by noting that char2hex() returns -1 on error,\n * which means the result of ORing the char2hex() will also be negative.\n */\n\n\nfunction uniCharCode(a, b, c, d) {\n return char2hex(a) << 12 | char2hex(b) << 8 | char2hex(c) << 4 | char2hex(d);\n}\n/**\n * Converts a hex character to its integer value.\n * '0' becomes 0, '9' becomes 9\n * 'A' becomes 10, 'F' becomes 15\n * 'a' becomes 10, 'f' becomes 15\n *\n * Returns -1 on error.\n */\n\n\nfunction char2hex(a) {\n return a >= 48 && a <= 57 ? a - 48 // 0-9\n : a >= 65 && a <= 70 ? a - 55 // A-F\n : a >= 97 && a <= 102 ? a - 87 // a-f\n : -1;\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * [_A-Za-z][_0-9A-Za-z]*\n */\n\n\nfunction readName(source, start, line, col, prev) {\n var body = source.body;\n var bodyLength = body.length;\n var position = start + 1;\n var code = 0;\n\n while (position !== bodyLength && !isNaN(code = body.charCodeAt(position)) && (code === 95 || // _\n code >= 48 && code <= 57 || // 0-9\n code >= 65 && code <= 90 || // A-Z\n code >= 97 && code <= 122) // a-z\n ) {\n ++position;\n }\n\n return new Token(TokenKind.NAME, start, position, line, col, prev, body.slice(start, position));\n} // _ A-Z a-z\n\n\nfunction isNameStart(code) {\n return code === 95 || code >= 65 && code <= 90 || code >= 97 && code <= 122;\n}","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Kind } from \"./kinds.mjs\";\nimport { Location } from \"./ast.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { Source, isSource } from \"./source.mjs\";\nimport { DirectiveLocation } from \"./directiveLocation.mjs\";\nimport { Lexer, isPunctuatorTokenKind } from \"./lexer.mjs\";\n/**\n * Configuration options to control parser behavior\n */\n\n/**\n * Given a GraphQL source, parses it into a Document.\n * Throws GraphQLError if a syntax error is encountered.\n */\n\nexport function parse(source, options) {\n var parser = new Parser(source, options);\n return parser.parseDocument();\n}\n/**\n * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for\n * that value.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Values directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: valueFromAST().\n */\n\nexport function parseValue(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var value = parser.parseValueLiteral(false);\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for\n * that type.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Types directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: typeFromAST().\n */\n\nexport function parseType(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var type = parser.parseTypeReference();\n parser.expectToken(TokenKind.EOF);\n return type;\n}\n/**\n * This class is exported only to assist people in implementing their own parsers\n * without duplicating too much code and should be used only as last resort for cases\n * such as experimental syntax or if certain features could not be contributed upstream.\n *\n * It is still part of the internal API and is versioned, so any changes to it are never\n * considered breaking changes. If you still need to support multiple versions of the\n * library, please use the `versionInfo` variable for version detection.\n *\n * @internal\n */\n\nexport var Parser = /*#__PURE__*/function () {\n function Parser(source, options) {\n var sourceObj = isSource(source) ? source : new Source(source);\n this._lexer = new Lexer(sourceObj);\n this._options = options;\n }\n /**\n * Converts a name lex token into a name parse node.\n */\n\n\n var _proto = Parser.prototype;\n\n _proto.parseName = function parseName() {\n var token = this.expectToken(TokenKind.NAME);\n return {\n kind: Kind.NAME,\n value: token.value,\n loc: this.loc(token)\n };\n } // Implements the parsing rules in the Document section.\n\n /**\n * Document : Definition+\n */\n ;\n\n _proto.parseDocument = function parseDocument() {\n var start = this._lexer.token;\n return {\n kind: Kind.DOCUMENT,\n definitions: this.many(TokenKind.SOF, this.parseDefinition, TokenKind.EOF),\n loc: this.loc(start)\n };\n }\n /**\n * Definition :\n * - ExecutableDefinition\n * - TypeSystemDefinition\n * - TypeSystemExtension\n *\n * ExecutableDefinition :\n * - OperationDefinition\n * - FragmentDefinition\n */\n ;\n\n _proto.parseDefinition = function parseDefinition() {\n if (this.peek(TokenKind.NAME)) {\n switch (this._lexer.token.value) {\n case 'query':\n case 'mutation':\n case 'subscription':\n return this.parseOperationDefinition();\n\n case 'fragment':\n return this.parseFragmentDefinition();\n\n case 'schema':\n case 'scalar':\n case 'type':\n case 'interface':\n case 'union':\n case 'enum':\n case 'input':\n case 'directive':\n return this.parseTypeSystemDefinition();\n\n case 'extend':\n return this.parseTypeSystemExtension();\n }\n } else if (this.peek(TokenKind.BRACE_L)) {\n return this.parseOperationDefinition();\n } else if (this.peekDescription()) {\n return this.parseTypeSystemDefinition();\n }\n\n throw this.unexpected();\n } // Implements the parsing rules in the Operations section.\n\n /**\n * OperationDefinition :\n * - SelectionSet\n * - OperationType Name? VariableDefinitions? Directives? SelectionSet\n */\n ;\n\n _proto.parseOperationDefinition = function parseOperationDefinition() {\n var start = this._lexer.token;\n\n if (this.peek(TokenKind.BRACE_L)) {\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: 'query',\n name: undefined,\n variableDefinitions: [],\n directives: [],\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n var operation = this.parseOperationType();\n var name;\n\n if (this.peek(TokenKind.NAME)) {\n name = this.parseName();\n }\n\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: operation,\n name: name,\n variableDefinitions: this.parseVariableDefinitions(),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * OperationType : one of query mutation subscription\n */\n ;\n\n _proto.parseOperationType = function parseOperationType() {\n var operationToken = this.expectToken(TokenKind.NAME);\n\n switch (operationToken.value) {\n case 'query':\n return 'query';\n\n case 'mutation':\n return 'mutation';\n\n case 'subscription':\n return 'subscription';\n }\n\n throw this.unexpected(operationToken);\n }\n /**\n * VariableDefinitions : ( VariableDefinition+ )\n */\n ;\n\n _proto.parseVariableDefinitions = function parseVariableDefinitions() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseVariableDefinition, TokenKind.PAREN_R);\n }\n /**\n * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseVariableDefinition = function parseVariableDefinition() {\n var start = this._lexer.token;\n return {\n kind: Kind.VARIABLE_DEFINITION,\n variable: this.parseVariable(),\n type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),\n defaultValue: this.expectOptionalToken(TokenKind.EQUALS) ? this.parseValueLiteral(true) : undefined,\n directives: this.parseDirectives(true),\n loc: this.loc(start)\n };\n }\n /**\n * Variable : $ Name\n */\n ;\n\n _proto.parseVariable = function parseVariable() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.DOLLAR);\n return {\n kind: Kind.VARIABLE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n }\n /**\n * SelectionSet : { Selection+ }\n */\n ;\n\n _proto.parseSelectionSet = function parseSelectionSet() {\n var start = this._lexer.token;\n return {\n kind: Kind.SELECTION_SET,\n selections: this.many(TokenKind.BRACE_L, this.parseSelection, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * Selection :\n * - Field\n * - FragmentSpread\n * - InlineFragment\n */\n ;\n\n _proto.parseSelection = function parseSelection() {\n return this.peek(TokenKind.SPREAD) ? this.parseFragment() : this.parseField();\n }\n /**\n * Field : Alias? Name Arguments? Directives? SelectionSet?\n *\n * Alias : Name :\n */\n ;\n\n _proto.parseField = function parseField() {\n var start = this._lexer.token;\n var nameOrAlias = this.parseName();\n var alias;\n var name;\n\n if (this.expectOptionalToken(TokenKind.COLON)) {\n alias = nameOrAlias;\n name = this.parseName();\n } else {\n name = nameOrAlias;\n }\n\n return {\n kind: Kind.FIELD,\n alias: alias,\n name: name,\n arguments: this.parseArguments(false),\n directives: this.parseDirectives(false),\n selectionSet: this.peek(TokenKind.BRACE_L) ? this.parseSelectionSet() : undefined,\n loc: this.loc(start)\n };\n }\n /**\n * Arguments[Const] : ( Argument[?Const]+ )\n */\n ;\n\n _proto.parseArguments = function parseArguments(isConst) {\n var item = isConst ? this.parseConstArgument : this.parseArgument;\n return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);\n }\n /**\n * Argument[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseArgument = function parseArgument() {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.ARGUMENT,\n name: name,\n value: this.parseValueLiteral(false),\n loc: this.loc(start)\n };\n };\n\n _proto.parseConstArgument = function parseConstArgument() {\n var start = this._lexer.token;\n return {\n kind: Kind.ARGUMENT,\n name: this.parseName(),\n value: (this.expectToken(TokenKind.COLON), this.parseValueLiteral(true)),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Fragments section.\n\n /**\n * Corresponds to both FragmentSpread and InlineFragment in the spec.\n *\n * FragmentSpread : ... FragmentName Directives?\n *\n * InlineFragment : ... TypeCondition? Directives? SelectionSet\n */\n ;\n\n _proto.parseFragment = function parseFragment() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.SPREAD);\n var hasTypeCondition = this.expectOptionalKeyword('on');\n\n if (!hasTypeCondition && this.peek(TokenKind.NAME)) {\n return {\n kind: Kind.FRAGMENT_SPREAD,\n name: this.parseFragmentName(),\n directives: this.parseDirectives(false),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentDefinition :\n * - fragment FragmentName on TypeCondition Directives? SelectionSet\n *\n * TypeCondition : NamedType\n */\n ;\n\n _proto.parseFragmentDefinition = function parseFragmentDefinition() {\n var _this$_options;\n\n var start = this._lexer.token;\n this.expectKeyword('fragment'); // Experimental support for defining variables within fragments changes\n // the grammar of FragmentDefinition:\n // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet\n\n if (((_this$_options = this._options) === null || _this$_options === void 0 ? void 0 : _this$_options.experimentalFragmentVariables) === true) {\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n variableDefinitions: this.parseVariableDefinitions(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentName : Name but not `on`\n */\n ;\n\n _proto.parseFragmentName = function parseFragmentName() {\n if (this._lexer.token.value === 'on') {\n throw this.unexpected();\n }\n\n return this.parseName();\n } // Implements the parsing rules in the Values section.\n\n /**\n * Value[Const] :\n * - [~Const] Variable\n * - IntValue\n * - FloatValue\n * - StringValue\n * - BooleanValue\n * - NullValue\n * - EnumValue\n * - ListValue[?Const]\n * - ObjectValue[?Const]\n *\n * BooleanValue : one of `true` `false`\n *\n * NullValue : `null`\n *\n * EnumValue : Name but not `true`, `false` or `null`\n */\n ;\n\n _proto.parseValueLiteral = function parseValueLiteral(isConst) {\n var token = this._lexer.token;\n\n switch (token.kind) {\n case TokenKind.BRACKET_L:\n return this.parseList(isConst);\n\n case TokenKind.BRACE_L:\n return this.parseObject(isConst);\n\n case TokenKind.INT:\n this._lexer.advance();\n\n return {\n kind: Kind.INT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.FLOAT:\n this._lexer.advance();\n\n return {\n kind: Kind.FLOAT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.STRING:\n case TokenKind.BLOCK_STRING:\n return this.parseStringLiteral();\n\n case TokenKind.NAME:\n this._lexer.advance();\n\n switch (token.value) {\n case 'true':\n return {\n kind: Kind.BOOLEAN,\n value: true,\n loc: this.loc(token)\n };\n\n case 'false':\n return {\n kind: Kind.BOOLEAN,\n value: false,\n loc: this.loc(token)\n };\n\n case 'null':\n return {\n kind: Kind.NULL,\n loc: this.loc(token)\n };\n\n default:\n return {\n kind: Kind.ENUM,\n value: token.value,\n loc: this.loc(token)\n };\n }\n\n case TokenKind.DOLLAR:\n if (!isConst) {\n return this.parseVariable();\n }\n\n break;\n }\n\n throw this.unexpected();\n };\n\n _proto.parseStringLiteral = function parseStringLiteral() {\n var token = this._lexer.token;\n\n this._lexer.advance();\n\n return {\n kind: Kind.STRING,\n value: token.value,\n block: token.kind === TokenKind.BLOCK_STRING,\n loc: this.loc(token)\n };\n }\n /**\n * ListValue[Const] :\n * - [ ]\n * - [ Value[?Const]+ ]\n */\n ;\n\n _proto.parseList = function parseList(isConst) {\n var _this = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this.parseValueLiteral(isConst);\n };\n\n return {\n kind: Kind.LIST,\n values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectValue[Const] :\n * - { }\n * - { ObjectField[?Const]+ }\n */\n ;\n\n _proto.parseObject = function parseObject(isConst) {\n var _this2 = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this2.parseObjectField(isConst);\n };\n\n return {\n kind: Kind.OBJECT,\n fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectField[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseObjectField = function parseObjectField(isConst) {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.OBJECT_FIELD,\n name: name,\n value: this.parseValueLiteral(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Directives section.\n\n /**\n * Directives[Const] : Directive[?Const]+\n */\n ;\n\n _proto.parseDirectives = function parseDirectives(isConst) {\n var directives = [];\n\n while (this.peek(TokenKind.AT)) {\n directives.push(this.parseDirective(isConst));\n }\n\n return directives;\n }\n /**\n * Directive[Const] : @ Name Arguments[?Const]?\n */\n ;\n\n _proto.parseDirective = function parseDirective(isConst) {\n var start = this._lexer.token;\n this.expectToken(TokenKind.AT);\n return {\n kind: Kind.DIRECTIVE,\n name: this.parseName(),\n arguments: this.parseArguments(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Types section.\n\n /**\n * Type :\n * - NamedType\n * - ListType\n * - NonNullType\n */\n ;\n\n _proto.parseTypeReference = function parseTypeReference() {\n var start = this._lexer.token;\n var type;\n\n if (this.expectOptionalToken(TokenKind.BRACKET_L)) {\n type = this.parseTypeReference();\n this.expectToken(TokenKind.BRACKET_R);\n type = {\n kind: Kind.LIST_TYPE,\n type: type,\n loc: this.loc(start)\n };\n } else {\n type = this.parseNamedType();\n }\n\n if (this.expectOptionalToken(TokenKind.BANG)) {\n return {\n kind: Kind.NON_NULL_TYPE,\n type: type,\n loc: this.loc(start)\n };\n }\n\n return type;\n }\n /**\n * NamedType : Name\n */\n ;\n\n _proto.parseNamedType = function parseNamedType() {\n var start = this._lexer.token;\n return {\n kind: Kind.NAMED_TYPE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Type Definition section.\n\n /**\n * TypeSystemDefinition :\n * - SchemaDefinition\n * - TypeDefinition\n * - DirectiveDefinition\n *\n * TypeDefinition :\n * - ScalarTypeDefinition\n * - ObjectTypeDefinition\n * - InterfaceTypeDefinition\n * - UnionTypeDefinition\n * - EnumTypeDefinition\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemDefinition = function parseTypeSystemDefinition() {\n // Many definitions begin with a description and require a lookahead.\n var keywordToken = this.peekDescription() ? this._lexer.lookahead() : this._lexer.token;\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaDefinition();\n\n case 'scalar':\n return this.parseScalarTypeDefinition();\n\n case 'type':\n return this.parseObjectTypeDefinition();\n\n case 'interface':\n return this.parseInterfaceTypeDefinition();\n\n case 'union':\n return this.parseUnionTypeDefinition();\n\n case 'enum':\n return this.parseEnumTypeDefinition();\n\n case 'input':\n return this.parseInputObjectTypeDefinition();\n\n case 'directive':\n return this.parseDirectiveDefinition();\n }\n }\n\n throw this.unexpected(keywordToken);\n };\n\n _proto.peekDescription = function peekDescription() {\n return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);\n }\n /**\n * Description : StringValue\n */\n ;\n\n _proto.parseDescription = function parseDescription() {\n if (this.peekDescription()) {\n return this.parseStringLiteral();\n }\n }\n /**\n * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }\n */\n ;\n\n _proto.parseSchemaDefinition = function parseSchemaDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.many(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n return {\n kind: Kind.SCHEMA_DEFINITION,\n description: description,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * OperationTypeDefinition : OperationType : NamedType\n */\n ;\n\n _proto.parseOperationTypeDefinition = function parseOperationTypeDefinition() {\n var start = this._lexer.token;\n var operation = this.parseOperationType();\n this.expectToken(TokenKind.COLON);\n var type = this.parseNamedType();\n return {\n kind: Kind.OPERATION_TYPE_DEFINITION,\n operation: operation,\n type: type,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeDefinition : Description? scalar Name Directives[Const]?\n */\n ;\n\n _proto.parseScalarTypeDefinition = function parseScalarTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeDefinition :\n * Description?\n * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseObjectTypeDefinition = function parseObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * ImplementsInterfaces :\n * - implements `&`? NamedType\n * - ImplementsInterfaces & NamedType\n */\n ;\n\n _proto.parseImplementsInterfaces = function parseImplementsInterfaces() {\n var _this$_options2;\n\n if (!this.expectOptionalKeyword('implements')) {\n return [];\n }\n\n if (((_this$_options2 = this._options) === null || _this$_options2 === void 0 ? void 0 : _this$_options2.allowLegacySDLImplementsInterfaces) === true) {\n var types = []; // Optional leading ampersand\n\n this.expectOptionalToken(TokenKind.AMP);\n\n do {\n types.push(this.parseNamedType());\n } while (this.expectOptionalToken(TokenKind.AMP) || this.peek(TokenKind.NAME));\n\n return types;\n }\n\n return this.delimitedMany(TokenKind.AMP, this.parseNamedType);\n }\n /**\n * FieldsDefinition : { FieldDefinition+ }\n */\n ;\n\n _proto.parseFieldsDefinition = function parseFieldsDefinition() {\n var _this$_options3; // Legacy support for the SDL?\n\n\n if (((_this$_options3 = this._options) === null || _this$_options3 === void 0 ? void 0 : _this$_options3.allowLegacySDLEmptyFields) === true && this.peek(TokenKind.BRACE_L) && this._lexer.lookahead().kind === TokenKind.BRACE_R) {\n this._lexer.advance();\n\n this._lexer.advance();\n\n return [];\n }\n\n return this.optionalMany(TokenKind.BRACE_L, this.parseFieldDefinition, TokenKind.BRACE_R);\n }\n /**\n * FieldDefinition :\n * - Description? Name ArgumentsDefinition? : Type Directives[Const]?\n */\n ;\n\n _proto.parseFieldDefinition = function parseFieldDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.FIELD_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n type: type,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ArgumentsDefinition : ( InputValueDefinition+ )\n */\n ;\n\n _proto.parseArgumentDefs = function parseArgumentDefs() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseInputValueDef, TokenKind.PAREN_R);\n }\n /**\n * InputValueDefinition :\n * - Description? Name : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseInputValueDef = function parseInputValueDef() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var defaultValue;\n\n if (this.expectOptionalToken(TokenKind.EQUALS)) {\n defaultValue = this.parseValueLiteral(true);\n }\n\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description: description,\n name: name,\n type: type,\n defaultValue: defaultValue,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeDefinition :\n * - Description? interface Name Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseInterfaceTypeDefinition = function parseInterfaceTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('interface');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeDefinition :\n * - Description? union Name Directives[Const]? UnionMemberTypes?\n */\n ;\n\n _proto.parseUnionTypeDefinition = function parseUnionTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n return {\n kind: Kind.UNION_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * UnionMemberTypes :\n * - = `|`? NamedType\n * - UnionMemberTypes | NamedType\n */\n ;\n\n _proto.parseUnionMemberTypes = function parseUnionMemberTypes() {\n return this.expectOptionalToken(TokenKind.EQUALS) ? this.delimitedMany(TokenKind.PIPE, this.parseNamedType) : [];\n }\n /**\n * EnumTypeDefinition :\n * - Description? enum Name Directives[Const]? EnumValuesDefinition?\n */\n ;\n\n _proto.parseEnumTypeDefinition = function parseEnumTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n return {\n kind: Kind.ENUM_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * EnumValuesDefinition : { EnumValueDefinition+ }\n */\n ;\n\n _proto.parseEnumValuesDefinition = function parseEnumValuesDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseEnumValueDefinition, TokenKind.BRACE_R);\n }\n /**\n * EnumValueDefinition : Description? EnumValue Directives[Const]?\n *\n * EnumValue : Name\n */\n ;\n\n _proto.parseEnumValueDefinition = function parseEnumValueDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.ENUM_VALUE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeDefinition :\n * - Description? input Name Directives[Const]? InputFieldsDefinition?\n */\n ;\n\n _proto.parseInputObjectTypeDefinition = function parseInputObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n return {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InputFieldsDefinition : { InputValueDefinition+ }\n */\n ;\n\n _proto.parseInputFieldsDefinition = function parseInputFieldsDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseInputValueDef, TokenKind.BRACE_R);\n }\n /**\n * TypeSystemExtension :\n * - SchemaExtension\n * - TypeExtension\n *\n * TypeExtension :\n * - ScalarTypeExtension\n * - ObjectTypeExtension\n * - InterfaceTypeExtension\n * - UnionTypeExtension\n * - EnumTypeExtension\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemExtension = function parseTypeSystemExtension() {\n var keywordToken = this._lexer.lookahead();\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaExtension();\n\n case 'scalar':\n return this.parseScalarTypeExtension();\n\n case 'type':\n return this.parseObjectTypeExtension();\n\n case 'interface':\n return this.parseInterfaceTypeExtension();\n\n case 'union':\n return this.parseUnionTypeExtension();\n\n case 'enum':\n return this.parseEnumTypeExtension();\n\n case 'input':\n return this.parseInputObjectTypeExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n }\n /**\n * SchemaExtension :\n * - extend schema Directives[Const]? { OperationTypeDefinition+ }\n * - extend schema Directives[Const]\n */\n ;\n\n _proto.parseSchemaExtension = function parseSchemaExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.optionalMany(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n\n if (directives.length === 0 && operationTypes.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCHEMA_EXTENSION,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeExtension :\n * - extend scalar Name Directives[Const]\n */\n ;\n\n _proto.parseScalarTypeExtension = function parseScalarTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n\n if (directives.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCALAR_TYPE_EXTENSION,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeExtension :\n * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend type Name ImplementsInterfaces? Directives[Const]\n * - extend type Name ImplementsInterfaces\n */\n ;\n\n _proto.parseObjectTypeExtension = function parseObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.OBJECT_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeExtension :\n * - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend interface Name ImplementsInterfaces? Directives[Const]\n * - extend interface Name ImplementsInterfaces\n */\n ;\n\n _proto.parseInterfaceTypeExtension = function parseInterfaceTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('interface');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeExtension :\n * - extend union Name Directives[Const]? UnionMemberTypes\n * - extend union Name Directives[Const]\n */\n ;\n\n _proto.parseUnionTypeExtension = function parseUnionTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n\n if (directives.length === 0 && types.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.UNION_TYPE_EXTENSION,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * EnumTypeExtension :\n * - extend enum Name Directives[Const]? EnumValuesDefinition\n * - extend enum Name Directives[Const]\n */\n ;\n\n _proto.parseEnumTypeExtension = function parseEnumTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n\n if (directives.length === 0 && values.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.ENUM_TYPE_EXTENSION,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeExtension :\n * - extend input Name Directives[Const]? InputFieldsDefinition\n * - extend input Name Directives[Const]\n */\n ;\n\n _proto.parseInputObjectTypeExtension = function parseInputObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n\n if (directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveDefinition :\n * - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations\n */\n ;\n\n _proto.parseDirectiveDefinition = function parseDirectiveDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('directive');\n this.expectToken(TokenKind.AT);\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n var repeatable = this.expectOptionalKeyword('repeatable');\n this.expectKeyword('on');\n var locations = this.parseDirectiveLocations();\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n repeatable: repeatable,\n locations: locations,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveLocations :\n * - `|`? DirectiveLocation\n * - DirectiveLocations | DirectiveLocation\n */\n ;\n\n _proto.parseDirectiveLocations = function parseDirectiveLocations() {\n return this.delimitedMany(TokenKind.PIPE, this.parseDirectiveLocation);\n }\n /*\n * DirectiveLocation :\n * - ExecutableDirectiveLocation\n * - TypeSystemDirectiveLocation\n *\n * ExecutableDirectiveLocation : one of\n * `QUERY`\n * `MUTATION`\n * `SUBSCRIPTION`\n * `FIELD`\n * `FRAGMENT_DEFINITION`\n * `FRAGMENT_SPREAD`\n * `INLINE_FRAGMENT`\n *\n * TypeSystemDirectiveLocation : one of\n * `SCHEMA`\n * `SCALAR`\n * `OBJECT`\n * `FIELD_DEFINITION`\n * `ARGUMENT_DEFINITION`\n * `INTERFACE`\n * `UNION`\n * `ENUM`\n * `ENUM_VALUE`\n * `INPUT_OBJECT`\n * `INPUT_FIELD_DEFINITION`\n */\n ;\n\n _proto.parseDirectiveLocation = function parseDirectiveLocation() {\n var start = this._lexer.token;\n var name = this.parseName();\n\n if (DirectiveLocation[name.value] !== undefined) {\n return name;\n }\n\n throw this.unexpected(start);\n } // Core parsing utility functions\n\n /**\n * Returns a location object, used to identify the place in the source that created a given parsed object.\n */\n ;\n\n _proto.loc = function loc(startToken) {\n var _this$_options4;\n\n if (((_this$_options4 = this._options) === null || _this$_options4 === void 0 ? void 0 : _this$_options4.noLocation) !== true) {\n return new Location(startToken, this._lexer.lastToken, this._lexer.source);\n }\n }\n /**\n * Determines if the next token is of a given kind\n */\n ;\n\n _proto.peek = function peek(kind) {\n return this._lexer.token.kind === kind;\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectToken = function expectToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n throw syntaxError(this._lexer.source, token.start, \"Expected \".concat(getTokenKindDesc(kind), \", found \").concat(getTokenDesc(token), \".\"));\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and return undefined.\n */\n ;\n\n _proto.expectOptionalToken = function expectOptionalToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n return undefined;\n }\n /**\n * If the next token is a given keyword, advance the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectKeyword = function expectKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n } else {\n throw syntaxError(this._lexer.source, token.start, \"Expected \\\"\".concat(value, \"\\\", found \").concat(getTokenDesc(token), \".\"));\n }\n }\n /**\n * If the next token is a given keyword, return \"true\" after advancing the lexer.\n * Otherwise, do not change the parser state and return \"false\".\n */\n ;\n\n _proto.expectOptionalKeyword = function expectOptionalKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n\n return true;\n }\n\n return false;\n }\n /**\n * Helper function for creating an error when an unexpected lexed token is encountered.\n */\n ;\n\n _proto.unexpected = function unexpected(atToken) {\n var token = atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;\n return syntaxError(this._lexer.source, token.start, \"Unexpected \".concat(getTokenDesc(token), \".\"));\n }\n /**\n * Returns a possibly empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.any = function any(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n while (!this.expectOptionalToken(closeKind)) {\n nodes.push(parseFn.call(this));\n }\n\n return nodes;\n }\n /**\n * Returns a list of parse nodes, determined by the parseFn.\n * It can be empty only if open token is missing otherwise it will always return non-empty list\n * that begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.optionalMany = function optionalMany(openKind, parseFn, closeKind) {\n if (this.expectOptionalToken(openKind)) {\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n\n return [];\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.many = function many(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.\n * Advances the parser to the next lex token after last item in the list.\n */\n ;\n\n _proto.delimitedMany = function delimitedMany(delimiterKind, parseFn) {\n this.expectOptionalToken(delimiterKind);\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (this.expectOptionalToken(delimiterKind));\n\n return nodes;\n };\n\n return Parser;\n}();\n/**\n * A helper function to describe a token as a string for debugging.\n */\n\nfunction getTokenDesc(token) {\n var value = token.value;\n return getTokenKindDesc(token.kind) + (value != null ? \" \\\"\".concat(value, \"\\\"\") : '');\n}\n/**\n * A helper function to describe a token kind as a string for debugging.\n */\n\n\nfunction getTokenKindDesc(kind) {\n return isPunctuatorTokenKind(kind) ? \"\\\"\".concat(kind, \"\\\"\") : kind;\n}","import { __assign } from \"tslib\";\nimport { parse } from 'graphql';\nvar docCache = new Map();\nvar fragmentSourceMap = new Map();\nvar printFragmentWarnings = true;\nvar experimentalFragmentVariables = false;\n\nfunction normalize(string) {\n return string.replace(/[\\s,]+/g, ' ').trim();\n}\n\nfunction cacheKeyFromLoc(loc) {\n return normalize(loc.source.body.substring(loc.start, loc.end));\n}\n\nfunction processFragments(ast) {\n var seenKeys = new Set();\n var definitions = [];\n ast.definitions.forEach(function (fragmentDefinition) {\n if (fragmentDefinition.kind === 'FragmentDefinition') {\n var fragmentName = fragmentDefinition.name.value;\n var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc);\n var sourceKeySet = fragmentSourceMap.get(fragmentName);\n\n if (sourceKeySet && !sourceKeySet.has(sourceKey)) {\n if (printFragmentWarnings) {\n console.warn(\"Warning: fragment with name \" + fragmentName + \" already exists.\\n\" + \"graphql-tag enforces all fragment names across your application to be unique; read more about\\n\" + \"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names\");\n }\n } else if (!sourceKeySet) {\n fragmentSourceMap.set(fragmentName, sourceKeySet = new Set());\n }\n\n sourceKeySet.add(sourceKey);\n\n if (!seenKeys.has(sourceKey)) {\n seenKeys.add(sourceKey);\n definitions.push(fragmentDefinition);\n }\n } else {\n definitions.push(fragmentDefinition);\n }\n });\n return __assign(__assign({}, ast), {\n definitions: definitions\n });\n}\n\nfunction stripLoc(doc) {\n var workSet = new Set(doc.definitions);\n workSet.forEach(function (node) {\n if (node.loc) delete node.loc;\n Object.keys(node).forEach(function (key) {\n var value = node[key];\n\n if (value && typeof value === 'object') {\n workSet.add(value);\n }\n });\n });\n var loc = doc.loc;\n\n if (loc) {\n delete loc.startToken;\n delete loc.endToken;\n }\n\n return doc;\n}\n\nfunction parseDocument(source) {\n var cacheKey = normalize(source);\n\n if (!docCache.has(cacheKey)) {\n var parsed = parse(source, {\n experimentalFragmentVariables: experimentalFragmentVariables,\n allowLegacyFragmentVariables: experimentalFragmentVariables\n });\n\n if (!parsed || parsed.kind !== 'Document') {\n throw new Error('Not a valid GraphQL document.');\n }\n\n docCache.set(cacheKey, stripLoc(processFragments(parsed)));\n }\n\n return docCache.get(cacheKey);\n}\n\nexport function gql(literals) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n if (typeof literals === 'string') {\n literals = [literals];\n }\n\n var result = literals[0];\n args.forEach(function (arg, i) {\n if (arg && arg.kind === 'Document') {\n result += arg.loc.source.body;\n } else {\n result += arg;\n }\n\n result += literals[i + 1];\n });\n return parseDocument(result);\n}\nexport function resetCaches() {\n docCache.clear();\n fragmentSourceMap.clear();\n}\nexport function disableFragmentWarnings() {\n printFragmentWarnings = false;\n}\nexport function enableExperimentalFragmentVariables() {\n experimentalFragmentVariables = true;\n}\nexport function disableExperimentalFragmentVariables() {\n experimentalFragmentVariables = false;\n}\nvar extras = {\n gql: gql,\n resetCaches: resetCaches,\n disableFragmentWarnings: disableFragmentWarnings,\n enableExperimentalFragmentVariables: enableExperimentalFragmentVariables,\n disableExperimentalFragmentVariables: disableExperimentalFragmentVariables\n};\n\n(function (gql_1) {\n gql_1.gql = extras.gql, gql_1.resetCaches = extras.resetCaches, gql_1.disableFragmentWarnings = extras.disableFragmentWarnings, gql_1.enableExperimentalFragmentVariables = extras.enableExperimentalFragmentVariables, gql_1.disableExperimentalFragmentVariables = extras.disableExperimentalFragmentVariables;\n})(gql || (gql = {}));\n\ngql[\"default\"] = gql;\nexport default gql;","// @noflow\nimport type { Language } from '@/packs/localisation'\nimport * as React from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport BlueArrow from 'assets/images/icons/arrows/arrow-blue.svg'\n\nimport { getLanguageName } from './localisationHelpers'\n\ntype Props = {\n setTemporaryLanguage: React.Dispatch<React.SetStateAction<Language>>\n temporaryLanguage: Language\n languageOptionsAreVisible: boolean\n setLanguageOptionsAreVisible: React.Dispatch<React.SetStateAction<boolean>>\n availableLanguages: Array<Language>\n}\n\ntype LanguageOptionsProps = {\n language: Language\n languageOptionsAreVisible: boolean\n setLanguageOptionsAreVisible: React.Dispatch<React.SetStateAction<boolean>>\n setTemporaryLanguage: React.Dispatch<React.SetStateAction<Language>>\n disabled: boolean\n}\nconst baseClass = 'language-widget'\n\nconst LanguageOption = ({\n language,\n languageOptionsAreVisible,\n setLanguageOptionsAreVisible,\n setTemporaryLanguage,\n disabled\n}: LanguageOptionsProps): React.ReactElement<'div'> => {\n const { t } = useTranslation(['shipping_countries', 'currency'])\n\n const setNewLanguage = React.useCallback(() => {\n setLanguageOptionsAreVisible(!languageOptionsAreVisible)\n setTemporaryLanguage(language)\n }, [\n setLanguageOptionsAreVisible,\n languageOptionsAreVisible,\n setTemporaryLanguage,\n language\n ])\n\n return (\n <button\n id={language}\n className={`${baseClass}__language-option`}\n onClick={setNewLanguage}\n type=\"button\"\n disabled={disabled}\n >\n <span className={`${baseClass}__language-name text-regular-18`}>\n {getLanguageName({ language, t }) || ''}\n </span>\n </button>\n )\n}\n\nconst LanguageWidget = ({\n setTemporaryLanguage,\n temporaryLanguage,\n languageOptionsAreVisible,\n setLanguageOptionsAreVisible,\n availableLanguages\n}: Props): React.ReactElement<'div'> => {\n const { t } = useTranslation('shipping_countries')\n\n const languageOptions = availableLanguages.filter(\n (language) => language !== temporaryLanguage\n )\n\n const handleKeyDown = React.useCallback(\n (e) => {\n if (e.key !== 'Tab') {\n setLanguageOptionsAreVisible(!languageOptionsAreVisible)\n }\n },\n [setLanguageOptionsAreVisible, languageOptionsAreVisible]\n )\n\n const handleClick = React.useCallback(() => {\n setLanguageOptionsAreVisible(!languageOptionsAreVisible)\n }, [setLanguageOptionsAreVisible, languageOptionsAreVisible])\n\n return (\n <div className={baseClass}>\n <div\n className={`${baseClass}__selected-language text-regular-18`}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex={0}\n >\n <span\n className={`${baseClass}__selected-language__name text-regular-18`}\n >\n {getLanguageName({ language: temporaryLanguage, t }) || ''}\n </span>\n <div className={`${baseClass}__selected-language__arrow-wrapper`}>\n <img\n src={BlueArrow}\n className={`${baseClass}__selected-language__arrow${\n languageOptionsAreVisible ? '--up' : '--down'\n }`}\n alt={`A blue arrow pointing ${\n languageOptionsAreVisible ? 'up' : 'down'\n }`}\n height=\"16\"\n width=\"19\"\n />\n </div>\n </div>\n {languageOptionsAreVisible && (\n <div className={`${baseClass}__language-options`}>\n {languageOptions\n .sort((languageA, languageB) => {\n const languageAName = getLanguageName({ language: languageA, t })\n const languageBName = getLanguageName({ language: languageB, t })\n\n return languageAName && languageBName\n ? languageAName.localeCompare(languageBName)\n : 0\n })\n .map((language) => (\n <LanguageOption\n key={language}\n language={language}\n languageOptionsAreVisible={languageOptionsAreVisible}\n setLanguageOptionsAreVisible={setLanguageOptionsAreVisible}\n setTemporaryLanguage={setTemporaryLanguage}\n disabled={false}\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n\nexport default LanguageWidget\n","// @noflow\nimport * as React from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { countryCodeToDefaultCurrencySymbol } from '@/utils/countryCodeHelper'\nimport { isDevelopment } from '@/utils/isDevelopment'\n\nimport BlueArrow from 'assets/images/icons/arrows/arrow-blue.svg'\n\nimport type {\n Code as CountryCode,\n ShippingCountry\n} from '@/shared_types/rails_models/shipping_countries'\n\nimport { getCountryFlag, getCountryName } from './localisationHelpers'\n\nconst baseClass = 'region-widget'\n\nconst CountryOption = ({\n countryCode,\n countryOptionsAreVisible,\n setCountryOptionsAreVisible,\n activeShippingCountries,\n setTemporaryShippingCountry,\n domain\n}: {\n countryCode: CountryCode\n countryOptionsAreVisible: boolean\n setCountryOptionsAreVisible: React.Dispatch<React.SetStateAction<boolean>>\n activeShippingCountries: Array<ShippingCountry>\n setTemporaryShippingCountry: React.Dispatch<React.SetStateAction<CountryCode>>\n domain: string\n}): React.ReactElement<'div'> => {\n const { t } = useTranslation(['shipping_countries', 'currency'])\n const setCountryLocation = React.useCallback(() => {\n setTemporaryShippingCountry(countryCode)\n setCountryOptionsAreVisible(!countryOptionsAreVisible)\n\n const currentDomain = window.location.hostname\n\n if (!isDevelopment() && currentDomain !== domain) {\n // eslint-disable-next-line i18next/no-literal-string\n window.location.href = `https://${domain}`\n }\n }, [\n countryCode,\n setTemporaryShippingCountry,\n countryOptionsAreVisible,\n setCountryOptionsAreVisible,\n domain\n ])\n\n const handleKeyDown = React.useCallback(\n (e) => {\n if (e.key !== 'Tab') {\n setCountryLocation()\n }\n },\n [setCountryLocation]\n )\n\n return (\n <div\n id={countryCode}\n data-testid={`country-option-${countryCode}`}\n className={`${baseClass}__country-option`}\n onClick={setCountryLocation}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex={0}\n >\n <img\n src={getCountryFlag(countryCode) || ''}\n className={`${baseClass}__country-flag`}\n alt={`The flag of ${getCountryName({\n activeShippingCountries,\n countryCode,\n t\n })}`}\n height=\"25\"\n width=\"43\"\n />\n <span className={`${baseClass}__country-name text-regular-18`}>\n {getCountryName({ activeShippingCountries, countryCode, t }) || ''}\n </span>\n <span className={`${baseClass}__selected-currency text-regular-18`}>\n {countryCodeToDefaultCurrencySymbol(countryCode)}\n </span>\n </div>\n )\n}\n\nconst RegionWidget = ({\n activeShippingCountries,\n setTemporaryShippingCountry,\n temporaryShippingCountry,\n setCountryOptionsAreVisible,\n countryOptionsAreVisible\n}: {\n activeShippingCountries: Array<ShippingCountry>\n setTemporaryShippingCountry: React.Dispatch<React.SetStateAction<CountryCode>>\n temporaryShippingCountry: CountryCode\n setCountryOptionsAreVisible: React.Dispatch<React.SetStateAction<boolean>>\n countryOptionsAreVisible: boolean\n}): React.ReactElement<'div'> => {\n const { t } = useTranslation('shipping_countries')\n const countryOptions = activeShippingCountries.filter(\n (country: ShippingCountry) => country.code !== temporaryShippingCountry\n )\n\n const handleKeyDown = React.useCallback(\n (e) => {\n if (e.key !== 'Tab') {\n setCountryOptionsAreVisible(!countryOptionsAreVisible)\n }\n },\n [setCountryOptionsAreVisible, countryOptionsAreVisible]\n )\n\n const handleClick = React.useCallback(() => {\n setCountryOptionsAreVisible(!countryOptionsAreVisible)\n }, [setCountryOptionsAreVisible, countryOptionsAreVisible])\n\n return (\n <div className={baseClass}>\n <div\n data-testid=\"region-widget\"\n className={`${baseClass}__selected-country text-regular-18`}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex={0}\n >\n <img\n src={getCountryFlag(temporaryShippingCountry) || ''}\n className={`${baseClass}__country-flag`}\n alt={`The flag of ${getCountryName({\n activeShippingCountries,\n countryCode: temporaryShippingCountry,\n t\n })}`}\n height=\"25\"\n width=\"43\"\n />\n <span\n className={`${baseClass}__selected-country__name text-regular-18`}\n >\n {getCountryName({\n activeShippingCountries,\n countryCode: temporaryShippingCountry,\n t\n }) || ''}\n </span>\n <span className={`${baseClass}__selected-currency text-regular-18`}>\n {countryCodeToDefaultCurrencySymbol(temporaryShippingCountry)}\n </span>\n <div className={`${baseClass}__selected-country__arrow-wrapper`}>\n <img\n src={BlueArrow}\n className={`${baseClass}__selected-country__arrow${\n countryOptionsAreVisible ? '--up' : '--down'\n }`}\n alt={`A blue arrow pointing ${\n countryOptionsAreVisible ? 'up' : 'down'\n }`}\n height=\"16\"\n width=\"19\"\n />\n </div>\n </div>\n {countryOptionsAreVisible && (\n <div className={`${baseClass}__country-options`}>\n {countryOptions.map(\n ({ code, domain }: ShippingCountry): React.ReactElement => (\n <CountryOption\n key={code}\n countryCode={code}\n countryOptionsAreVisible={countryOptionsAreVisible}\n setCountryOptionsAreVisible={setCountryOptionsAreVisible}\n activeShippingCountries={activeShippingCountries}\n setTemporaryShippingCountry={setTemporaryShippingCountry}\n domain={domain}\n />\n )\n )}\n </div>\n )}\n </div>\n )\n}\n\nexport default RegionWidget\n","import { gql } from '@apollo/client'\n\nconst SAVE_LANGUAGE_MUTATION = gql`\n mutation SaveLanguageUpdate($language: Language!) {\n languageUpdate(language: $language) {\n __typename\n ... on User {\n id\n }\n ... on Guest {\n id\n }\n }\n }\n`\n\nexport default SAVE_LANGUAGE_MUTATION\n","import { gql } from '@apollo/client'\n\nconst USER_TYPE_QUERY = gql`\n query UserQuery {\n currentUser {\n __typename\n ... on User {\n preferredLanguage\n }\n ... on Guest {\n preferredLanguage\n }\n }\n }\n`\n\nexport default USER_TYPE_QUERY\n","// @noflow\nimport type {\n Error as GraphQLError,\n GraphQLErrorInstance\n} from '@/redux/graphql_queries/errorTypes'\n\nimport type { ShippingCountry } from '@/shared_types/rails_models/shipping_countries'\nimport type { CSRFToken } from '@/shared_types/tokens'\n\ntype DecodedGraphQLResponse = {\n data?: {\n shippingCountries: Array<ShippingCountry>\n }\n errors?: Array<GraphQLErrorInstance>\n}\n\ntype Success = {\n type: 'Success'\n data: Array<ShippingCountry>\n}\n\ntype RequestResult = Success | GraphQLError\n\nconst fetchSupportedShippingCountriesRequest = async ({\n csrfToken\n}: {\n csrfToken: CSRFToken\n}): Promise<RequestResult> => {\n const endpoint = '/graphql'\n const headers = {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': csrfToken\n }\n const method = 'POST'\n const credentials = 'same-origin'\n // eslint-disable-next-line i18next/no-literal-string\n const graphQLQuery = `\n query SupportedShippingCountriesData {\n shippingCountries {\n id,\n name,\n code,\n currency,\n active,\n scaEnforced,\n defaultLanguage,\n domain,\n availableLanguages\n }\n }\n `\n const body = JSON.stringify({\n query: graphQLQuery\n })\n\n const response = await fetch(endpoint, { headers, method, credentials, body })\n if (!response.ok) {\n return response.text().then((message: string): RequestResult => {\n return {\n type: 'ServerError',\n status: response.status,\n message\n }\n })\n }\n return response\n .json()\n .then(({ data, errors }: DecodedGraphQLResponse): RequestResult => {\n if (data) {\n const { shippingCountries } = data\n const activeShippingCountries = shippingCountries.filter(\n (country: ShippingCountry) => country.active === true\n )\n\n return {\n type: 'Success',\n data: activeShippingCountries\n }\n } else if (errors) {\n return {\n type: 'GraphQLError',\n errors\n }\n } else {\n return {\n type: 'UnknownError',\n error: 'Unknown Error'\n }\n }\n })\n}\n\nconst fetchActiveShippingCountries = async ({\n csrfToken\n}: {\n csrfToken: CSRFToken\n}): Promise<Array<ShippingCountry>> => {\n const supportedShippingCountries =\n await fetchSupportedShippingCountriesRequest({ csrfToken }).then(\n (requestResult: RequestResult) => {\n switch (requestResult.type) {\n case 'ServerError': {\n throw new Error(\n `Server Error: status=${requestResult.status}, message=${requestResult.message}`\n )\n }\n case 'GraphQLError': {\n throw new Error(\n requestResult.errors\n .map(({ message }: { message: string }): string => message)\n .join(', ')\n )\n }\n case 'UnknownError': {\n throw new Error(`Unknown Error: ${requestResult.error}`)\n }\n case 'Success': {\n return requestResult.data\n }\n }\n }\n )\n return supportedShippingCountries\n}\n\nexport default fetchActiveShippingCountries\n","// @noflow\nimport fetchActiveShippingCountries from '@/helpers/fetchActiveShippingCountries'\nimport i18next from 'i18next'\nimport * as React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport LocalisationDisplay from '@/components/shared/geo_ip_widget/localisationDisplay'\n\nconst initGeoIpWidget = async ({\n desktopNav,\n mobileSidebar,\n contentTagElementId,\n csrfToken\n}: {\n desktopNav: boolean\n mobileSidebar: boolean\n contentTagElementId?: string\n csrfToken?: string\n}): Promise<void> => {\n let token = ''\n\n if (csrfToken) {\n token = csrfToken\n } else {\n if (contentTagElementId) {\n const contentTagElement = document.getElementById(contentTagElementId)\n if (!contentTagElement)\n throw new Error(\n `Could not find contentTagElementId: ${contentTagElementId}`\n )\n\n const { csrfToken } = contentTagElement.dataset\n if (!csrfToken)\n throw new Error(\n `Could not find csrfToken for contentTagElement ${contentTagElement}`\n )\n token = csrfToken\n } else throw new Error('Could not find csrfToken or contentTagElementId')\n }\n\n const activeShippingCountries = await fetchActiveShippingCountries({\n csrfToken: token\n })\n\n const initGeoIpWidgetDesktopNav = (): void => {\n const geoIpWidgetElement = document.querySelector(\n '.desktop-nav-localisation-widget'\n )\n if (!geoIpWidgetElement)\n throw new Error('Could not find geoIpWidgetElement in desktop navigation')\n\n ReactDOM.render(\n <LocalisationDisplay\n activeShippingCountries={activeShippingCountries}\n widgetLocation=\"Desktop Nav\"\n />,\n geoIpWidgetElement\n )\n }\n\n const initGeoIpWidgetMobileSidebar = (): void => {\n const geoIpWidgetElement = document.querySelector(\n '.mobile-sidebar-localisation-widget-wrapper'\n )\n if (!geoIpWidgetElement)\n throw new Error('Could not find geoIpWidgetElement in mobile sidebar')\n\n const copyContext = 'navigation:geo_ip_widget'\n\n ReactDOM.render(\n <React.Fragment>\n <hr className=\"slide-out-nav__content__divider\" />\n <div className=\"mobile-sidebar-localisation-widget-wrapper\">\n <p className=\"text-regular-18\">\n {i18next.t(`${copyContext}.your_location`)}\n </p>\n <LocalisationDisplay\n activeShippingCountries={activeShippingCountries}\n widgetLocation=\"Mobile Sidebar\"\n />\n </div>\n </React.Fragment>,\n geoIpWidgetElement\n )\n }\n\n const geoLocationCheckElement = document.querySelector(\n '.desktop-nav-localisation-widget'\n )\n if (!geoLocationCheckElement)\n throw new Error('Could not find geoLocationCheckElement')\n\n if (desktopNav) {\n initGeoIpWidgetDesktopNav()\n }\n if (mobileSidebar) {\n initGeoIpWidgetMobileSidebar()\n }\n}\n\nexport default initGeoIpWidget\n","import React, { createContext, createRef, PureComponent, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { Transformation as Transformation$1, Util, Cloudinary } from 'cloudinary-core';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar camelCase$1 = Util.camelCase,\n withCamelCaseKeys = Util.withCamelCaseKeys,\n isEmpty = Util.isEmpty; // props passed to cloudinary-core but should not be rendered as dom attributes\n\nvar CLOUDINARY_REACT_PROPS = ['accessibility', 'breakpoints', 'dataSrc', 'placeholder', 'publicId', 'signature'];\n/**\n * Convert common video file extensions to mime types\n * Most other common video file extensions have an identical mime type so do not need conversion.\n */\n\nvar VIDEO_MIME_TYPES = {\n flv: 'x-flv',\n '3gp': '3gpp',\n mov: 'quicktime',\n mpg: 'mpeg',\n avi: 'x-msvideo',\n wmv: 'x-ms-wmv',\n ogv: 'ogg'\n};\n/**\n * Convert common audio file extensions to mime types\n * Most other common audio file extensions have an identical mime type so do not need conversion.\n */\n\nvar AUDIO_MIME_TYPES = {\n m4a: 'mp4',\n wav: 'vnd.wav',\n m3u: 'x-mpegurl',\n mp3: 'mpeg',\n ogv: 'ogg',\n aif: 'x-aiff',\n aifc: 'x-aiff',\n aiff: 'x-aiff'\n}; // props passed to cloudinary-core for dom elements attributes generation\n// Map Cloudinary props from array to object for efficient lookup\n\nvar CLOUDINARY_PROPS = [].concat(Transformation$1.PARAM_NAMES, CLOUDINARY_REACT_PROPS).map(Util.camelCase).reduce(function (accumulator, cloudinaryPropName) {\n accumulator[cloudinaryPropName] = true;\n return accumulator;\n}, {});\n/**\n * Return object without null/undefined entries\n * @param {*} obj\n */\n\nvar nonEmpty = function nonEmpty(obj) {\n return Object.entries(obj).reduce(function (a, _ref) {\n var _extends2;\n\n var k = _ref[0],\n v = _ref[1];\n return v == null ? a : _extends({}, a, (_extends2 = {}, _extends2[k] = v, _extends2));\n }, {});\n};\n/**\n * Generated a configured Cloudinary object.\n * @param extendedProps React props combined with custom Cloudinary configuration options\n * @return {Cloudinary} configured using extendedProps\n */\n\n\nvar getConfiguredCloudinary = function getConfiguredCloudinary(extendedProps) {\n // eslint-disable-next-line camelcase\n var _nonEmpty = nonEmpty(extendedProps),\n ops = _objectWithoutPropertiesLoose(_nonEmpty, [\"public_id\"]); // Remove null/undefined props\n\n\n var options = Util.withSnakeCaseKeys(ops);\n return Cloudinary[\"new\"](options);\n};\n\nvar getTag = function getTag(props, tagType) {\n var publicId = props.publicId,\n ops = _objectWithoutPropertiesLoose(props, [\"publicId\"]); // Remove null/undefined props\n\n\n var cld = getConfiguredCloudinary(ops);\n return cld[tagType + \"Tag\"](publicId, Util.withSnakeCaseKeys(ops));\n};\n/**\n * Get a new <img> tag initialized with given props\n * @param {*} props\n */\n\n\nvar getImageTag = function getImageTag(props) {\n return getTag(props, 'image');\n};\n/**\n * Cloudinary underlying JS library will handle responsive behavior\n * @param {HTMLImageElement} img\n * @param {object} options\n * @Return callback that when called, will remove the listener created by Cloudinary.responsive\n */\n\n\nvar makeElementResponsive = function makeElementResponsive(img, options) {\n var snakeCaseOptions = Util.withSnakeCaseKeys(options);\n var cld = getConfiguredCloudinary(snakeCaseOptions); // Initialize cloudinary with new props\n\n cld.cloudinary_update(img, snakeCaseOptions);\n return cld.responsive(snakeCaseOptions, false);\n};\n/**\n * Extracts cloudinaryProps and nonCloudinaryProps from given props\n *\n * @param props\n * @returns {{children: *, cloudinaryReactProps: {}, cloudinaryProps: {}, nonCloudinaryProps: {}}}\n */\n\n\nvar extractCloudinaryProps = function extractCloudinaryProps(_ref2) {\n var children = _ref2.children,\n props = _objectWithoutPropertiesLoose(_ref2, [\"children\"]);\n\n var result = {\n children: children,\n cloudinaryProps: {},\n nonCloudinaryProps: {},\n cloudinaryReactProps: {}\n };\n Object.keys(props).forEach(function (key) {\n var camelKey = Util.camelCase(key);\n var value = props[key]; // if valid and defined add to cloudinaryProps\n\n if (CLOUDINARY_PROPS[camelKey]) {\n if (props[key] !== undefined && props[key] !== null) {\n result.cloudinaryProps[camelKey] = value;\n }\n } else if (camelKey === 'includeOwnBody') {\n // cloudinary-react specific prop\n result.cloudinaryReactProps[camelKey] = value;\n } else {\n // not valid so add to nonCloudinaryProps\n result.nonCloudinaryProps[key] = value;\n }\n });\n return result;\n};\n/**\n * Check if given component is a Cloudinary Component with given displayName\n * @param component the component to check\n * @param displayName of wanted component\n * @return {boolean}\n */\n\n\nvar isCloudinaryComponent = function isCloudinaryComponent(component, displayName) {\n return !!( /*#__PURE__*/React.isValidElement(component) && component.type && component.type.displayName === displayName);\n};\n/**\n * Combine properties of all options to create an option Object that can be passed to Cloudinary methods.<br>\n * `undefined` and `null` values are filtered out.\n * @protected\n * @returns {Object}\n * @param options one or more options objects\n */\n\n\nvar normalizeOptions = function normalizeOptions() {\n return [].slice.call(arguments).reduce(function (left, right) {\n Object.keys(right || {}).forEach(function (key) {\n var value = right[key];\n\n if (value !== null && value !== undefined) {\n left[key] = value;\n }\n });\n return left;\n }, {});\n};\n\nvar getChildPlaceholder = function getChildPlaceholder(children) {\n var result = null;\n\n if (children) {\n result = React.Children.toArray(children).find(function (child) {\n return isCloudinaryComponent(child, 'CloudinaryPlaceholder');\n });\n }\n\n return result;\n};\n\nvar getChildTransformations = function getChildTransformations(children) {\n var result = children ? React.Children.toArray(children).filter(function (child) {\n return isCloudinaryComponent(child, 'CloudinaryTransformation');\n }).map(function (child) {\n var options = normalizeOptions(child.props, child.context);\n var childOptions = getChildTransformations(child.props.children);\n\n if (childOptions) {\n options.transformation = childOptions;\n }\n\n return options;\n }) : [];\n return result.length ? result : null;\n};\n/**\n * Return a new object containing keys and values where keys are in the keys list\n * @param {object} source Object to copy values from\n * @param {string[]} [keys=[]] a list of keys\n * @returns {object} an object with copied values\n */\n\n\nvar only = function only(source, keys) {\n if (keys === void 0) {\n keys = [];\n }\n\n if (!source) {\n return source;\n }\n\n return keys.reduce(function (tr, key) {\n if (key in source) {\n tr[key] = source[key];\n }\n\n return tr;\n }, {});\n};\n/**\n * Create a React type definition object. All items are PropTypes.string or [string] or object or [object].\n * @param {Array} configParams a list of parameter names\n * @returns {Object}\n * @private\n */\n\n\nvar typesFrom = function typesFrom(configParams) {\n configParams = configParams || [];\n var types = {};\n\n for (var i = 0; i < configParams.length; i++) {\n var key = configParams[i];\n types[camelCase$1(key)] = PropTypes.any;\n }\n\n return types;\n};\n/**\n * Returns an object with all the transformation parameters based on the context and properties of this element\n * and any children.\n * @param extendedProps\n * @returns {object} a hash of transformation and configuration parameters\n * @protected\n */\n\n\nvar getTransformation = function getTransformation(extendedProps) {\n var children = extendedProps.children,\n accessibility = extendedProps.accessibility,\n placeholder = extendedProps.placeholder,\n rest = _objectWithoutPropertiesLoose(extendedProps, [\"children\", \"accessibility\", \"placeholder\"]);\n\n var ownTransformation = only(withCamelCaseKeys(rest), Transformation$1.methods) || {};\n var childrenOptions = getChildTransformations(children);\n\n if (!isEmpty(childrenOptions)) {\n ownTransformation.transformation = childrenOptions;\n } // Append placeholder and accessibility if exists\n\n\n var advancedTransformations = {\n accessibility: accessibility,\n placeholder: placeholder\n };\n Object.keys(advancedTransformations).filter(function (k) {\n return advancedTransformations[k];\n }).forEach(function (k) {\n ownTransformation[k] = advancedTransformations[k];\n });\n return ownTransformation;\n};\n\nvar CloudinaryContextType = /*#__PURE__*/createContext();\nvar camelCase = Util.camelCase;\n/**\n * A base component for Cloudinary components.\n * @protected\n */\n\nvar CloudinaryComponent = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(CloudinaryComponent, _PureComponent);\n\n function CloudinaryComponent(_props, _context) {\n var _this;\n\n _this = _PureComponent.call(this, _props, _context) || this;\n\n _this.getContext = function () {\n return _this.context || {};\n };\n\n _this.onIntersect = function () {\n // eslint-disable-next-line react/no-unused-state\n _this.setState({\n isInView: true\n });\n };\n\n _this.getExtendedProps = function (props, context) {\n if (props === void 0) {\n props = _this.props;\n }\n\n if (context === void 0) {\n context = _this.getContext();\n }\n\n return normalizeOptions(context, props);\n };\n\n _this.attachRef = function (element) {\n var innerRef = _this.props.innerRef;\n _this.element.current = element;\n\n if (innerRef) {\n if (innerRef instanceof Function) {\n innerRef(element);\n } else {\n innerRef.current = element;\n }\n }\n };\n\n _this.element = /*#__PURE__*/createRef();\n return _this;\n }\n\n var _proto = CloudinaryComponent.prototype;\n\n _proto.render = function render() {\n return null;\n };\n\n return CloudinaryComponent;\n}(PureComponent);\n\nCloudinaryComponent.defaultProps = {\n innerRef: null,\n publicId: null\n};\nCloudinaryComponent.propTypes = _extends({}, typesFrom(Transformation$1.PARAM_NAMES.map(camelCase)), {\n innerRef: PropTypes.any,\n publicId: PropTypes.string\n});\nCloudinaryComponent.contextType = CloudinaryContextType;\n/**\n * Provides a container for Cloudinary components. Any option set in CloudinaryContext will be passed to the children.\n *\n * @example\n *<CloudinaryContext cloudName=\"mycloud\" dpr=\"auto\">\n * <!-- other tags -->\n * <Image publicId={id}/>\n *</CloudinaryContext>\n *\n */\n\nvar CloudinaryContext = /*#__PURE__*/function (_CloudinaryComponent) {\n _inheritsLoose(CloudinaryContext, _CloudinaryComponent);\n\n function CloudinaryContext() {\n return _CloudinaryComponent.apply(this, arguments) || this;\n }\n\n var _proto = CloudinaryContext.prototype;\n\n _proto.render = function render() {\n var props = _extends({}, this.getContext(), this.props);\n\n var _extractCloudinaryPro = extractCloudinaryProps(props),\n children = _extractCloudinaryPro.children,\n cloudinaryProps = _extractCloudinaryPro.cloudinaryProps,\n nonCloudinaryProps = _extractCloudinaryPro.nonCloudinaryProps,\n cloudinaryReactProps = _extractCloudinaryPro.cloudinaryReactProps;\n\n return /*#__PURE__*/React.createElement(CloudinaryContextType.Provider, {\n value: cloudinaryProps\n }, cloudinaryReactProps.includeOwnBody ? children : /*#__PURE__*/React.createElement(\"div\", nonCloudinaryProps, children));\n };\n\n return CloudinaryContext;\n}(CloudinaryComponent);\n\nCloudinaryContext.propTypes = _extends({}, CloudinaryComponent.propTypes, {\n includeOwnBody: PropTypes.bool\n});\nCloudinaryContext.defaultProps = {\n includeOwnBody: false\n};\nvar RESPONSIVE_OVERRIDE_WARNING = \"\\nWarning: passing a number value for width cancels the 'responsive' prop's effect on the image transformation.\\nThe 'responsive' prop affects the image transformation only when width === 'auto'.\\nPassing 'width=\\\"auto\\\" responsive' will affect the actual image width that is fetched from Cloudinary.\\nThe 'responsive' prop causes the Image component to request an image which width is equal to the width of it's container.\\nWhen passing 'width=\\\"auto\\\" responsive', you can set the <img> element width by passing a 'style' prop\".trim();\n/**\n * A component representing a Cloudinary served image\n */\n\nvar Image = /*#__PURE__*/function (_CloudinaryComponent) {\n _inheritsLoose(Image, _CloudinaryComponent);\n\n function Image(props, context) {\n var _this;\n\n _this = _CloudinaryComponent.call(this, props, context) || this;\n\n _this.isResponsive = function () {\n var _this$getExtendedProp = _this.getExtendedProps(),\n responsive = _this$getExtendedProp.responsive,\n width = _this$getExtendedProp.width;\n\n if (responsive && width !== 'auto') {\n console.warn(RESPONSIVE_OVERRIDE_WARNING);\n }\n\n return responsive && _this.element && _this.element.current;\n };\n\n _this.getOptions = function () {\n var extendedProps = _this.getExtendedProps();\n\n var _extendedProps$getTra = _extends({}, extendedProps, getTransformation(extendedProps)),\n options = _objectWithoutPropertiesLoose(_extendedProps$getTra, [\"children\", \"innerRef\"]);\n\n if (!_this.shouldLazyLoad()) {\n delete options.loading;\n }\n\n return options;\n };\n\n _this.getAttributes = function (additionalOptions) {\n if (additionalOptions === void 0) {\n additionalOptions = {};\n }\n\n var _additionalOptions = additionalOptions,\n placeholder = _additionalOptions.placeholder;\n var options = extractCloudinaryProps(_extends({}, _this.getOptions(), additionalOptions));\n var cloudinaryProps = options.cloudinaryProps,\n nonCloudinaryProps = options.nonCloudinaryProps,\n cloudinaryReactProps = options.cloudinaryReactProps;\n var imageTag = getImageTag(_extends({}, cloudinaryProps, cloudinaryReactProps));\n var cloudinaryAttributes = Util.withCamelCaseKeys(imageTag.attributes()); // React requires camelCase instead of snake_case attributes\n\n var attributes = _extends({}, cloudinaryAttributes, nonCloudinaryProps); // We want to keep 'data-src' if it exists\n\n\n if (attributes.dataSrc) {\n attributes['data-src'] = attributes.dataSrc;\n } // Set placeholder Id\n\n\n if (placeholder && attributes.id) {\n attributes.id += '-cld-placeholder';\n } // Set data-src if lazy loading and not in view\n\n\n if (_this.shouldLazyLoad()) {\n attributes['data-src'] = attributes.dataSrc || attributes.src;\n delete attributes.src;\n } // Remove unneeded attributes,\n\n\n CLOUDINARY_REACT_PROPS.forEach(function (attr) {\n delete attributes[attr];\n });\n return attributes;\n };\n\n _this.update = function () {\n // Handle lazy loading\n if (_this.shouldLazyLoad()) {\n // Will set this.state.isInView = true when in view\n Util.detectIntersection(_this.element.current, _this.onIntersect);\n } else if (_this.isResponsive()) {\n var options = _this.getOptions();\n\n var placeholder = _this.getPlaceholderType(); // Make placeholder responsive\n\n\n if (placeholder) {\n var removePlaceholderListener = makeElementResponsive(_this.placeholderElement.current, _extends({}, options, {\n placeholder: placeholder\n }));\n\n _this.listenerRemovers.push(removePlaceholderListener);\n } // Make original image responsive\n\n\n var removeImgListener = makeElementResponsive(_this.element.current, options);\n\n _this.listenerRemovers.push(removeImgListener);\n }\n };\n\n _this.shouldLazyLoad = function () {\n var _this$getExtendedProp2 = _this.getExtendedProps(),\n loading = _this$getExtendedProp2.loading;\n\n var isInView = _this.state.isInView;\n return !isInView && (loading === 'lazy' || loading === 'auto');\n };\n\n _this.handleImageLoaded = function () {\n var onLoad = _this.props.onLoad;\n\n _this.setState({\n isLoaded: true\n }, function () {\n if (onLoad) {\n onLoad();\n }\n });\n };\n\n _this.renderPlaceholder = function (placeholder, attributes) {\n attributes.style = _extends({}, attributes.style || {}, {\n opacity: 0,\n position: 'absolute'\n });\n attributes.onLoad = _this.handleImageLoaded;\n var placeholderWrapperStyle = {\n display: 'inline'\n };\n\n var placeholderAttributes = _this.getAttributes({\n placeholder: placeholder\n });\n\n return /*#__PURE__*/React.createElement(Fragment, null, _this.renderImage(attributes), /*#__PURE__*/React.createElement(\"div\", {\n style: placeholderWrapperStyle\n }, /*#__PURE__*/React.createElement(\"img\", _extends({\n ref: _this.placeholderElement\n }, placeholderAttributes))));\n };\n\n _this.renderImage = function (attributes) {\n return /*#__PURE__*/React.createElement(\"img\", _extends({\n ref: _this.attachRef\n }, attributes));\n };\n\n _this.getPlaceholderType = function () {\n var _this$getExtendedProp3 = _this.getExtendedProps(),\n children = _this$getExtendedProp3.children;\n\n var placeholder = getChildPlaceholder(children);\n return placeholder ? placeholder.props.type : null;\n };\n\n _this.placeholderElement = /*#__PURE__*/createRef();\n _this.state = {\n isLoaded: false\n };\n _this.listenerRemovers = [];\n return _this;\n }\n /**\n * @return true when this image element should be made responsive, false otherwise.\n */\n\n\n var _proto = Image.prototype;\n /**\n * Invoked immediately after a component is mounted (inserted into the tree)\n */\n\n _proto.componentDidMount = function componentDidMount() {\n this.update();\n }\n /**\n * Invoked immediately after updating occurs. This method is not called for the initial render.\n */\n ;\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.update();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.listenerRemovers.forEach(function (removeListener) {\n return removeListener();\n });\n }\n /**\n * Updates this Image's isLoaded state,\n * And fires props.onLoad if exists.\n */\n ;\n\n _proto.render = function render() {\n var isLoaded = this.state.isLoaded;\n var attributes = this.getAttributes();\n var placeholder = this.getPlaceholderType(); // If image wasn't loaded and there's a child placeholder then we render it.\n\n if (!isLoaded && placeholder) {\n return this.renderPlaceholder(placeholder, attributes);\n }\n\n return this.renderImage(attributes);\n };\n\n return Image;\n}(CloudinaryComponent);\n\nImage.defaultProps = {};\nImage.propTypes = CloudinaryComponent.propTypes;\nImage.propTypes.responsive = PropTypes.bool;\nImage.propTypes.loading = PropTypes.string;\nImage.propTypes.accessibility = PropTypes.string;\n/**\n * Define a transformation that is applied to the parent tag.\n */\n\nvar Transformation = /*#__PURE__*/function (_CloudinaryComponent) {\n _inheritsLoose(Transformation, _CloudinaryComponent);\n\n function Transformation() {\n return _CloudinaryComponent.apply(this, arguments) || this;\n }\n\n var _proto = Transformation.prototype;\n\n _proto.render = function render() {\n return null;\n };\n\n return Transformation;\n}(CloudinaryComponent);\n\nTransformation.propTypes = CloudinaryComponent.propTypes;\nTransformation.defaultProps = {};\nTransformation.exposesProps = true;\nTransformation.displayName = 'CloudinaryTransformation';\n/**\n * A component representing a Cloudinary served video\n */\n\nvar Video = /*#__PURE__*/function (_CloudinaryComponent) {\n _inheritsLoose(Video, _CloudinaryComponent);\n\n function Video() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _CloudinaryComponent.call.apply(_CloudinaryComponent, [this].concat(args)) || this;\n _this.mimeType = 'video';\n _this.mimeSubTypes = VIDEO_MIME_TYPES;\n\n _this.getMergedProps = function () {\n return _extends({}, _this.getContext(), _this.props);\n };\n\n _this.generateVideoUrl = function (cld, publicId, childTransformations, sourceTransformations, sourceType) {\n var urlOptions = Util.withSnakeCaseKeys(Util.defaults({}, sourceTransformations, childTransformations, {\n resource_type: 'video',\n format: sourceType\n }));\n return cld.url(publicId, urlOptions);\n };\n\n _this.generateUsingSourceTypes = function (cld, publicId, childTransformations, sourceTransformations, sourceTypes) {\n return sourceTypes.map(function (sourceType) {\n return _this.toSourceTag(cld, publicId, childTransformations, sourceTransformations[sourceType] || {}, sourceType, _this.buildMimeType(sourceType));\n });\n };\n\n _this.generateUsingSources = function (cld, publicId, childTransformations, sources) {\n return sources.map(function (_ref) {\n var _ref$transformations = _ref.transformations,\n transformations = _ref$transformations === void 0 ? {} : _ref$transformations,\n type = _ref.type,\n codecs = _ref.codecs;\n return _this.toSourceTag(cld, publicId, childTransformations, transformations, type, _this.buildMimeType(type, codecs));\n });\n };\n\n _this.toSourceTag = function (cld, publicId, childTransformations, transformations, sourceType, mimeType) {\n var src = _this.generateVideoUrl(cld, publicId, childTransformations, transformations, sourceType);\n\n return /*#__PURE__*/React.createElement(\"source\", {\n key: src + mimeType,\n src: src,\n type: mimeType\n });\n };\n\n _this.buildMimeType = function (type, codecs) {\n var mimeType = _this.mimeType + \"/\" + (_this.mimeSubTypes[type] || type);\n\n if (!Util.isEmpty(codecs)) {\n mimeType += \"; codecs=\" + (Util.isArray(codecs) ? codecs.join(', ') : codecs);\n }\n\n return mimeType;\n };\n\n _this.getVideoTagProps = function () {\n var _this$getMergedProps = _this.getMergedProps(),\n publicId = _this$getMergedProps.publicId,\n children = _this$getMergedProps.children,\n sourceTypes = _this$getMergedProps.sourceTypes,\n _this$getMergedProps$ = _this$getMergedProps.sourceTransformation,\n sourceTransformation = _this$getMergedProps$ === void 0 ? {} : _this$getMergedProps$,\n sources = _this$getMergedProps.sources,\n options = _objectWithoutPropertiesLoose(_this$getMergedProps, [\"innerRef\", \"publicId\", \"fallback\", \"children\", \"sourceTypes\", \"sourceTransformation\", \"sources\"]);\n\n options = normalizeOptions(options, {});\n\n var _extractCloudinaryPro = extractCloudinaryProps(options),\n cloudinaryProps = _extractCloudinaryPro.cloudinaryProps,\n cloudinaryReactProps = _extractCloudinaryPro.cloudinaryReactProps,\n nonCloudinaryProps = _extractCloudinaryPro.nonCloudinaryProps;\n\n options = _extends({}, cloudinaryProps, cloudinaryReactProps); // const snakeCaseOptions = toSnakeCaseKeys(options);\n\n var snakeCaseOptions = Util.withSnakeCaseKeys(options);\n var cld = Cloudinary[\"new\"](snakeCaseOptions); // Use cloudinary-core to generate this video tag's attributes\n\n var tagAttributes = cld.videoTag(publicId, options).attributes();\n tagAttributes = _extends({}, Util.withCamelCaseKeys(tagAttributes), nonCloudinaryProps); // Aggregate child transformations, used for generating <source> tags for this video element\n\n var childTransformations = getTransformation(_extends({}, options, {\n children: children\n }));\n var sourceElements = null;\n\n if (Util.isArray(sources) && !Util.isEmpty(sources)) {\n sourceElements = _this.generateUsingSources(cld, publicId, childTransformations, sources);\n } else if (Util.isArray(sourceTypes)) {\n // We have multiple sourceTypes, so we generate <source> tags.\n sourceElements = _this.generateUsingSourceTypes(cld, publicId, childTransformations, sourceTransformation, sourceTypes);\n } else {\n // We have a single source type so we generate the src attribute of this video element.\n tagAttributes.src = _this.generateVideoUrl(cld, publicId, childTransformations, sourceTransformation[sourceTypes] || {}, sourceTypes);\n }\n\n return {\n sources: sourceElements,\n tagAttributes: tagAttributes\n };\n };\n\n _this.reloadVideo = function () {\n if (_this.element && _this.element.current) {\n _this.element.current.load();\n }\n };\n\n return _this;\n }\n\n var _proto = Video.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n // Load video on props change\n this.reloadVideo();\n }\n /**\n * Render a video element\n */\n ;\n\n _proto.render = function render() {\n var _this$props = this.props,\n fallback = _this$props.fallback,\n children = _this$props.children;\n\n var _this$getVideoTagProp = this.getVideoTagProps(),\n tagAttributes = _this$getVideoTagProp.tagAttributes,\n sources = _this$getVideoTagProp.sources;\n\n return /*#__PURE__*/React.createElement(\"video\", _extends({\n ref: this.attachRef\n }, tagAttributes), sources, fallback, children);\n };\n\n return Video;\n}(CloudinaryComponent);\n\nVideo.propTypes = {\n publicId: PropTypes.string,\n sources: PropTypes.arrayOf(PropTypes.shape({\n type: PropTypes.string,\n codecs: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n transformations: PropTypes.object\n }))\n};\nVideo.defaultProps = {\n sourceTypes: Cloudinary.DEFAULT_VIDEO_PARAMS.source_types\n};\n/**\n * A component representing a Cloudinary served audio\n * This component extends the Video component and replaces it's render function.\n * Audio files are uploaded to Cloudinary as a video asset type.\n * An <audio> tag with a video source, will play the audio only.\n */\n\nvar Audio = /*#__PURE__*/function (_Video) {\n _inheritsLoose(Audio, _Video);\n\n function Audio() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Video.call.apply(_Video, [this].concat(args)) || this;\n _this.mimeType = 'audio';\n _this.mimeSubTypes = AUDIO_MIME_TYPES;\n return _this;\n }\n\n var _proto = Audio.prototype;\n /**\n * Render an audio element\n */\n\n _proto.render = function render() {\n var _this$props = this.props,\n innerRef = _this$props.innerRef,\n fallback = _this$props.fallback,\n children = _this$props.children;\n\n var _this$getVideoTagProp = this.getVideoTagProps(),\n tagAttributes = _this$getVideoTagProp.tagAttributes,\n sources = _this$getVideoTagProp.sources; // We generated video attributes, lets delete the unneeded poster\n\n\n delete tagAttributes.poster;\n return /*#__PURE__*/React.createElement(\"audio\", _extends({\n ref: innerRef\n }, tagAttributes), sources, fallback, children);\n };\n\n return Audio;\n}(Video);\n\nAudio.propTypes = {\n publicId: PropTypes.string\n};\nAudio.defaultProps = {\n sourceTypes: ['aac', 'mp3', 'ogg']\n}; // eslint-disable-next-line no-unused-vars\n\n/**\n * Placeholder used by parent Image component, renders nothing on it's own.\n * @param type - type of placeholder 'blur'|'pixelate'|'predominant-color'|'vectorize',\n * @return {null}\n * @constructor\n */\n// eslint-disable-next-line no-unused-vars\n\nvar Placeholder = function Placeholder(_ref) {\n return null;\n};\n\nPlaceholder.propTypes = {\n type: PropTypes.string\n};\nPlaceholder.defaultProps = {\n type: 'blur'\n};\nPlaceholder.displayName = 'CloudinaryPlaceholder';\nexport { Audio, CloudinaryContext, Image, Placeholder, Transformation, Video };","var defineProperty = require('./_defineProperty');\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n\n\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;","var freeGlobal = require('./_freeGlobal');\n/** Detect free variable `exports`. */\n\n\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n/** Detect free variable `module`. */\n\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n/** Detect the popular CommonJS extension `module.exports`. */\n\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n/** Detect free variable `process` from Node.js. */\n\nvar freeProcess = moduleExports && freeGlobal.process;\n/** Used to access faster Node.js helpers. */\n\nvar nodeUtil = function () {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n } // Legacy `process.binding('util')` for Node.js < 10.\n\n\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}();\n\nmodule.exports = nodeUtil;","var getNative = require('./_getNative'),\n root = require('./_root');\n/* Built-in method references that are verified to be native. */\n\n\nvar Map = getNative(root, 'Map');\nmodule.exports = Map;","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Built-in value references. */\n\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n\nvar getSymbols = !nativeGetSymbols ? stubArray : function (object) {\n if (object == null) {\n return [];\n }\n\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function (symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\nmodule.exports = getSymbols;","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n\n return array;\n}\n\nmodule.exports = arrayPush;","var overArg = require('./_overArg');\n/** Built-in value references. */\n\n\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\nmodule.exports = getPrototype;","var Uint8Array = require('./_Uint8Array');\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n\n\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar objectTag = '[object Object]';\n/** Used for built-in method references. */\n\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n/** Used to resolve the decompiled source of functions. */\n\nvar funcToString = funcProto.toString;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/** Used to infer the `Object` constructor. */\n\nvar objectCtorString = funcToString.call(Object);\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 */\n\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n\n var proto = getPrototype(value);\n\n if (proto === null) {\n return true;\n }\n\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;","/* eslint-disable quotes */\n/* eslint-disable prettier/prettier */\nexport const typesWithId = [\"ActionCard\",\"Address\",\"AdminUser\",\"Allergen\",\"Appointment\",\"AppointmentProduct\",\"AppointmentReason\",\"AuthenticationSetup\",\"Banner\",\"Basket\",\"BasketProduct\",\"BillingAgreement\",\"BoostedBox\",\"Box\",\"Breed\",\"CardAuthenticationSetup\",\"CarrierService\",\"Consignment\",\"ContactInformation\",\"CreditCardPaymentMethod\",\"CustomerIssueCategory\",\"CustomerIssueEntryField\",\"CustomerIssueEntryFieldAssociation\",\"CustomerIssueEntryFieldBoolean\",\"CustomerIssueEntryFieldInteger\",\"CustomerIssueEntryFieldMultifield\",\"CustomerIssueEntryFieldString\",\"CustomerIssueManagementCategory\",\"CustomerIssueManagementCategoryReason\",\"CustomerIssueManagementInputFieldAssociation\",\"CustomerIssueManagementInputFieldBoolean\",\"CustomerIssueManagementInputFieldInteger\",\"CustomerIssueManagementInputFieldMultifield\",\"CustomerIssueManagementInputFieldString\",\"CustomerIssueManagementReason\",\"CustomerIssueManagementResolutionOffering\",\"CustomerIssueReason\",\"CustomerReview\",\"DeliveryArea\",\"DirectSalesEvent\",\"DirectSalesRepresentative\",\"DirectSalesTeam\",\"DiscountCode\",\"Dog\",\"DogProfile\",\"Field\",\"FoodBrand\",\"FoodBrandRange\",\"FoodBrandRangeVariety\",\"FoodCategory\",\"GocardlessUserParam\",\"Guest\",\"HealthIssue\",\"Invoice\",\"MarketingMethod\",\"MarketingPurpose\",\"Membership\",\"MerchantInitiatedPayment\",\"NewFlavour\",\"NewInvoice\",\"NonCoreInvoice\",\"NonCoreOrder\",\"NonCoreOrderProduct\",\"Notification\",\"OrderProduct\",\"Pause\",\"PendingSubscription\",\"PendingSubscriptionFlavour\",\"PendingSubscriptionOrderPricingExtras\",\"PetCareProfessional\",\"Plan\",\"PricingCurve\",\"Product\",\"ProductBenefit\",\"ProductCollection\",\"ProductGroup\",\"ProductLabel\",\"ProductSticker\",\"ProductVariant\",\"RecurringOrderProduct\",\"Reportable\",\"SelectedMarketingMethodPurpose\",\"SepaDirectDebit\",\"ShippingCountry\",\"Subscription\",\"SupportedMarketingMethodPurpose\",\"User\"];\n","import { dep } from \"optimism\";\nimport { Slot } from \"@wry/context\";\nexport var cacheSlot = new Slot();\nvar cacheInfoMap = new WeakMap();\n\nfunction getCacheInfo(cache) {\n var info = cacheInfoMap.get(cache);\n\n if (!info) {\n cacheInfoMap.set(cache, info = {\n vars: new Set(),\n dep: dep()\n });\n }\n\n return info;\n}\n\nexport function forgetCache(cache) {\n getCacheInfo(cache).vars.forEach(function (rv) {\n return rv.forgetCache(cache);\n });\n}\nexport function recallCache(cache) {\n getCacheInfo(cache).vars.forEach(function (rv) {\n return rv.attachCache(cache);\n });\n}\nexport function makeVar(value) {\n var caches = new Set();\n var listeners = new Set();\n\n var rv = function rv(newValue) {\n if (arguments.length > 0) {\n if (value !== newValue) {\n value = newValue;\n caches.forEach(function (cache) {\n getCacheInfo(cache).dep.dirty(rv);\n broadcast(cache);\n });\n var oldListeners = Array.from(listeners);\n listeners.clear();\n oldListeners.forEach(function (listener) {\n return listener(value);\n });\n }\n } else {\n var cache = cacheSlot.getValue();\n\n if (cache) {\n attach(cache);\n getCacheInfo(cache).dep(rv);\n }\n }\n\n return value;\n };\n\n rv.onNextChange = function (listener) {\n listeners.add(listener);\n return function () {\n listeners.delete(listener);\n };\n };\n\n var attach = rv.attachCache = function (cache) {\n caches.add(cache);\n getCacheInfo(cache).vars.add(rv);\n return rv;\n };\n\n rv.forgetCache = function (cache) {\n return caches.delete(cache);\n };\n\n return rv;\n}\n\nfunction broadcast(cache) {\n if (cache.broadcastWatches) {\n cache.broadcastWatches();\n }\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n/** Used to detect unsigned integer values. */\n\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","var baseSlice = require('./_baseSlice');\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n\n\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return !start && end >= length ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n\n\nfunction stringToArray(string) {\n return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;","var trimmedEndIndex = require('./_trimmedEndIndex');\n/** Used to match leading whitespace. */\n\n\nvar reTrimStart = /^\\s+/;\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n\nfunction baseTrim(string) {\n return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') : string;\n}\n\nmodule.exports = baseTrim;","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","var Symbol = require('./_Symbol');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar nativeObjectToString = objectProto.toString;\n/** Built-in value references. */\n\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\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 */\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\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n\n return result;\n}\n\nmodule.exports = getRawTag;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar nativeObjectToString = objectProto.toString;\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 */\n\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n} // istanbul ignore next\n\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj['default'] = obj;\n return newObj;\n }\n}\n\nvar _handlebarsBase = require('./handlebars/base');\n\nvar base = _interopRequireWildcard(_handlebarsBase); // Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\n\n\nvar _handlebarsSafeString = require('./handlebars/safe-string');\n\nvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\nvar _handlebarsException = require('./handlebars/exception');\n\nvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\nvar _handlebarsUtils = require('./handlebars/utils');\n\nvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\nvar _handlebarsRuntime = require('./handlebars/runtime');\n\nvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict); // For compatibility and usage outside of module systems, make the Handlebars object a namespace\n\n\nfunction create() {\n var hb = new base.HandlebarsEnvironment();\n Utils.extend(hb, base);\n hb.SafeString = _handlebarsSafeString2['default'];\n hb.Exception = _handlebarsException2['default'];\n hb.Utils = Utils;\n hb.escapeExpression = Utils.escapeExpression;\n hb.VM = runtime;\n\n hb.template = function (spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst['default'] = inst;\nexports['default'] = inst;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('blockHelperMissing', function (context, options) {\n var inverse = options.inverse,\n fn = options.fn;\n\n if (context === true) {\n return fn(this);\n } else if (context === false || context == null) {\n return inverse(this);\n } else if (_utils.isArray(context)) {\n if (context.length > 0) {\n if (options.ids) {\n options.ids = [options.name];\n }\n\n return instance.helpers.each(context, options);\n } else {\n return inverse(this);\n }\n } else {\n if (options.data && options.ids) {\n var data = _utils.createFrame(options.data);\n\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\n options = {\n data: data\n };\n }\n\n return fn(context, options);\n }\n });\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('each', function (context, options) {\n if (!options) {\n throw new _exception2['default']('Must pass iterator to #each');\n }\n\n var fn = options.fn,\n inverse = options.inverse,\n i = 0,\n ret = '',\n data = undefined,\n contextPath = undefined;\n\n if (options.data && options.ids) {\n contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n if (options.data) {\n data = _utils.createFrame(options.data);\n }\n\n function execIteration(field, index, last) {\n if (data) {\n data.key = field;\n data.index = index;\n data.first = index === 0;\n data.last = !!last;\n\n if (contextPath) {\n data.contextPath = contextPath + field;\n }\n }\n\n ret = ret + fn(context[field], {\n data: data,\n blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n });\n }\n\n if (context && typeof context === 'object') {\n if (_utils.isArray(context)) {\n for (var j = context.length; i < j; i++) {\n if (i in context) {\n execIteration(i, i, i === context.length - 1);\n }\n }\n } else if (global.Symbol && context[global.Symbol.iterator]) {\n var newContext = [];\n var iterator = context[global.Symbol.iterator]();\n\n for (var it = iterator.next(); !it.done; it = iterator.next()) {\n newContext.push(it.value);\n }\n\n context = newContext;\n\n for (var j = context.length; i < j; i++) {\n execIteration(i, i, i === context.length - 1);\n }\n } else {\n (function () {\n var priorKey = undefined;\n Object.keys(context).forEach(function (key) {\n // We're running the iterations one step out of sync so we can detect\n // the last iteration without have to scan the object twice and create\n // an itermediate keys array.\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1);\n }\n\n priorKey = key;\n i++;\n });\n\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1, true);\n }\n })();\n }\n }\n\n if (i === 0) {\n ret = inverse(this);\n }\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('helperMissing', function ()\n /* [args, ]options */\n {\n if (arguments.length === 1) {\n // A missing field in a {{foo}} construct.\n return undefined;\n } else {\n // Someone is actually trying to call something, blow up.\n throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n }\n });\n};\n\nmodule.exports = exports['default'];","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('if', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#if requires exactly one argument');\n }\n\n if (_utils.isFunction(conditional)) {\n conditional = conditional.call(this);\n } // Default behavior is to render the positive path if the value is truthy and not empty.\n // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n\n\n if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\n return options.inverse(this);\n } else {\n return options.fn(this);\n }\n });\n instance.registerHelper('unless', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#unless requires exactly one argument');\n }\n\n return instance.helpers['if'].call(this, conditional, {\n fn: options.inverse,\n inverse: options.fn,\n hash: options.hash\n });\n });\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('log', function ()\n /* message, options */\n {\n var args = [undefined],\n options = arguments[arguments.length - 1];\n\n for (var i = 0; i < arguments.length - 1; i++) {\n args.push(arguments[i]);\n }\n\n var level = 1;\n\n if (options.hash.level != null) {\n level = options.hash.level;\n } else if (options.data && options.data.level != null) {\n level = options.data.level;\n }\n\n args[0] = level;\n instance.log.apply(instance, args);\n });\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('lookup', function (obj, field, options) {\n if (!obj) {\n // Note for 5.0: Change to \"obj == null\" in 5.0\n return obj;\n }\n\n return options.lookupProperty(obj, field);\n });\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('with', function (context, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#with requires exactly one argument');\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n var fn = options.fn;\n\n if (!_utils.isEmpty(context)) {\n var data = options.data;\n\n if (options.data && options.ids) {\n data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n }\n\n return fn(context, {\n data: data,\n blockParams: _utils.blockParams([context], [data && data.contextPath])\n });\n } else {\n return options.inverse(this);\n }\n });\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultDecorators = registerDefaultDecorators; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _decoratorsInline = require('./decorators/inline');\n\nvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\nfunction registerDefaultDecorators(instance) {\n _decoratorsInline2['default'](instance);\n}","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerDecorator('inline', function (fn, props, container, options) {\n var ret = fn;\n\n if (!props.partials) {\n props.partials = {};\n\n ret = function ret(context, options) {\n // Create a new partials stack frame prior to exec.\n var original = container.partials;\n container.partials = _utils.extend({}, original, props.partials);\n var ret = fn(context, options);\n container.partials = original;\n return ret;\n };\n }\n\n props.partials[options.args[0]] = options.fn;\n return ret;\n });\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.createNewLookupObject = createNewLookupObject;\n\nvar _utils = require('../utils');\n/**\n * Create a new object with \"null\"-prototype to avoid truthy results on prototype properties.\n * The resulting object can be used with \"object[property]\" to check if a property exists\n * @param {...object} sources a varargs parameter of source objects that will be merged\n * @returns {object}\n */\n\n\nfunction createNewLookupObject() {\n for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n return _utils.extend.apply(undefined, [Object.create(null)].concat(sources));\n}","// Build out our basic SafeString type\n'use strict';\n\nexports.__esModule = true;\n\nfunction SafeString(string) {\n this.string = string;\n}\n\nSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\n return '' + this.string;\n};\n\nexports['default'] = SafeString;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.checkRevision = checkRevision;\nexports.template = template;\nexports.wrapProgram = wrapProgram;\nexports.resolvePartial = resolvePartial;\nexports.invokePartial = invokePartial;\nexports.noop = noop; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n} // istanbul ignore next\n\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj['default'] = obj;\n return newObj;\n }\n}\n\nvar _utils = require('./utils');\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _base = require('./base');\n\nvar _helpers = require('./helpers');\n\nvar _internalWrapHelper = require('./internal/wrapHelper');\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = _base.COMPILER_REVISION;\n\n if (compilerRevision >= _base.LAST_COMPATIBLE_COMPILER_REVISION && compilerRevision <= _base.COMPILER_REVISION) {\n return;\n }\n\n if (compilerRevision < _base.LAST_COMPATIBLE_COMPILER_REVISION) {\n var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n }\n}\n\nfunction template(templateSpec, env) {\n /* istanbul ignore next */\n if (!env) {\n throw new _exception2['default']('No environment passed to template');\n }\n\n if (!templateSpec || !templateSpec.main) {\n throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n }\n\n templateSpec.main.decorator = templateSpec.main_d; // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as pseudo-supported APIs.\n\n env.VM.checkRevision(templateSpec.compiler); // backwards compatibility for precompiled templates with compiler-version 7 (<4.3.0)\n\n var templateWasPrecompiledWithCompilerV7 = templateSpec.compiler && templateSpec.compiler[0] === 7;\n\n function invokePartialWrapper(partial, context, options) {\n if (options.hash) {\n context = Utils.extend({}, context, options.hash);\n\n if (options.ids) {\n options.ids[0] = true;\n }\n }\n\n partial = env.VM.resolvePartial.call(this, partial, context, options);\n var extendedOptions = Utils.extend({}, options, {\n hooks: this.hooks,\n protoAccessControl: this.protoAccessControl\n });\n var result = env.VM.invokePartial.call(this, partial, context, extendedOptions);\n\n if (result == null && env.compile) {\n options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n result = options.partials[options.name](context, extendedOptions);\n }\n\n if (result != null) {\n if (options.indent) {\n var lines = result.split('\\n');\n\n for (var i = 0, l = lines.length; i < l; i++) {\n if (!lines[i] && i + 1 === l) {\n break;\n }\n\n lines[i] = options.indent + lines[i];\n }\n\n result = lines.join('\\n');\n }\n\n return result;\n } else {\n throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n }\n } // Just add water\n\n\n var container = {\n strict: function strict(obj, name, loc) {\n if (!obj || !(name in obj)) {\n throw new _exception2['default']('\"' + name + '\" not defined in ' + obj, {\n loc: loc\n });\n }\n\n return container.lookupProperty(obj, name);\n },\n lookupProperty: function lookupProperty(parent, propertyName) {\n var result = parent[propertyName];\n\n if (result == null) {\n return result;\n }\n\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return result;\n }\n\n if (_internalProtoAccess.resultIsAllowed(result, container.protoAccessControl, propertyName)) {\n return result;\n }\n\n return undefined;\n },\n lookup: function lookup(depths, name) {\n var len = depths.length;\n\n for (var i = 0; i < len; i++) {\n var result = depths[i] && container.lookupProperty(depths[i], name);\n\n if (result != null) {\n return depths[i][name];\n }\n }\n },\n lambda: function lambda(current, context) {\n return typeof current === 'function' ? current.call(context) : current;\n },\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n fn: function fn(i) {\n var ret = templateSpec[i];\n ret.decorator = templateSpec[i + '_d'];\n return ret;\n },\n programs: [],\n program: function program(i, data, declaredBlockParams, blockParams, depths) {\n var programWrapper = this.programs[i],\n fn = this.fn(i);\n\n if (data || depths || blockParams || declaredBlockParams) {\n programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n }\n\n return programWrapper;\n },\n data: function data(value, depth) {\n while (value && depth--) {\n value = value._parent;\n }\n\n return value;\n },\n mergeIfNeeded: function mergeIfNeeded(param, common) {\n var obj = param || common;\n\n if (param && common && param !== common) {\n obj = Utils.extend({}, common, param);\n }\n\n return obj;\n },\n // An empty object to use as replacement for null-contexts\n nullContext: Object.seal({}),\n noop: env.VM.noop,\n compilerInfo: templateSpec.compiler\n };\n\n function ret(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n var data = options.data;\n\n ret._setup(options);\n\n if (!options.partial && templateSpec.useData) {\n data = initData(context, data);\n }\n\n var depths = undefined,\n blockParams = templateSpec.useBlockParams ? [] : undefined;\n\n if (templateSpec.useDepths) {\n if (options.depths) {\n depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n } else {\n depths = [context];\n }\n }\n\n function main(context\n /*, options*/\n ) {\n return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n }\n\n main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n return main(context, options);\n }\n\n ret.isTop = true;\n\n ret._setup = function (options) {\n if (!options.partial) {\n var mergedHelpers = Utils.extend({}, env.helpers, options.helpers);\n wrapHelpersToPassLookupProperty(mergedHelpers, container);\n container.helpers = mergedHelpers;\n\n if (templateSpec.usePartial) {\n // Use mergeIfNeeded here to prevent compiling global partials multiple times\n container.partials = container.mergeIfNeeded(options.partials, env.partials);\n }\n\n if (templateSpec.usePartial || templateSpec.useDecorators) {\n container.decorators = Utils.extend({}, env.decorators, options.decorators);\n }\n\n container.hooks = {};\n container.protoAccessControl = _internalProtoAccess.createProtoAccessControl(options);\n var keepHelperInHelpers = options.allowCallsToHelperMissing || templateWasPrecompiledWithCompilerV7;\n\n _helpers.moveHelperToHooks(container, 'helperMissing', keepHelperInHelpers);\n\n _helpers.moveHelperToHooks(container, 'blockHelperMissing', keepHelperInHelpers);\n } else {\n container.protoAccessControl = options.protoAccessControl; // internal option\n\n container.helpers = options.helpers;\n container.partials = options.partials;\n container.decorators = options.decorators;\n container.hooks = options.hooks;\n }\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (templateSpec.useBlockParams && !blockParams) {\n throw new _exception2['default']('must pass block params');\n }\n\n if (templateSpec.useDepths && !depths) {\n throw new _exception2['default']('must pass parent depths');\n }\n\n return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n };\n\n return ret;\n}\n\nfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n function prog(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n var currentDepths = depths;\n\n if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n currentDepths = [context].concat(depths);\n }\n\n return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n }\n\n prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n prog.program = i;\n prog.depth = depths ? depths.length : 0;\n prog.blockParams = declaredBlockParams || 0;\n return prog;\n}\n/**\n * This is currently part of the official API, therefore implementation details should not be changed.\n */\n\n\nfunction resolvePartial(partial, context, options) {\n if (!partial) {\n if (options.name === '@partial-block') {\n partial = options.data['partial-block'];\n } else {\n partial = options.partials[options.name];\n }\n } else if (!partial.call && !options.name) {\n // This is a dynamic partial that returned a string\n options.name = partial;\n partial = options.partials[partial];\n }\n\n return partial;\n}\n\nfunction invokePartial(partial, context, options) {\n // Use the current closure context to save the partial-block if this partial\n var currentPartialBlock = options.data && options.data['partial-block'];\n options.partial = true;\n\n if (options.ids) {\n options.data.contextPath = options.ids[0] || options.data.contextPath;\n }\n\n var partialBlock = undefined;\n\n if (options.fn && options.fn !== noop) {\n (function () {\n options.data = _base.createFrame(options.data); // Wrapper function to get access to currentPartialBlock from the closure\n\n var fn = options.fn;\n\n partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; // Restore the partial-block from the closure for the execution of the block\n // i.e. the part inside the block of the partial call.\n\n options.data = _base.createFrame(options.data);\n options.data['partial-block'] = currentPartialBlock;\n return fn(context, options);\n };\n\n if (fn.partials) {\n options.partials = Utils.extend({}, options.partials, fn.partials);\n }\n })();\n }\n\n if (partial === undefined && partialBlock) {\n partial = partialBlock;\n }\n\n if (partial === undefined) {\n throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n } else if (partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nfunction noop() {\n return '';\n}\n\nfunction initData(context, data) {\n if (!data || !('root' in data)) {\n data = data ? _base.createFrame(data) : {};\n data.root = context;\n }\n\n return data;\n}\n\nfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n if (fn.decorator) {\n var props = {};\n prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n Utils.extend(prog, props);\n }\n\n return prog;\n}\n\nfunction wrapHelpersToPassLookupProperty(mergedHelpers, container) {\n Object.keys(mergedHelpers).forEach(function (helperName) {\n var helper = mergedHelpers[helperName];\n mergedHelpers[helperName] = passLookupPropertyOption(helper, container);\n });\n}\n\nfunction passLookupPropertyOption(helper, container) {\n var lookupProperty = container.lookupProperty;\n return _internalWrapHelper.wrapHelper(helper, function (options) {\n return Utils.extend({\n lookupProperty: lookupProperty\n }, options);\n });\n}","'use strict';\n\nexports.__esModule = true;\nexports.wrapHelper = wrapHelper;\n\nfunction wrapHelper(helper, transformOptionsFn) {\n if (typeof helper !== 'function') {\n // This should not happen, but apparently it does in https://github.com/wycats/handlebars.js/issues/1639\n // We try to make the wrapper least-invasive by not wrapping it, if the helper is not a function.\n return helper;\n }\n\n var wrapper = function wrapper()\n /* dynamic arguments */\n {\n var options = arguments[arguments.length - 1];\n arguments[arguments.length - 1] = transformOptionsFn(options);\n return helper.apply(this, arguments);\n };\n\n return wrapper;\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}","'use strict';\n\nexports.__esModule = true;\nexports.parseWithoutProcessing = parseWithoutProcessing;\nexports.parse = parse; // istanbul ignore next\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj['default'] = obj;\n return newObj;\n }\n} // istanbul ignore next\n\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _parser = require('./parser');\n\nvar _parser2 = _interopRequireDefault(_parser);\n\nvar _whitespaceControl = require('./whitespace-control');\n\nvar _whitespaceControl2 = _interopRequireDefault(_whitespaceControl);\n\nvar _helpers = require('./helpers');\n\nvar Helpers = _interopRequireWildcard(_helpers);\n\nvar _utils = require('../utils');\n\nexports.parser = _parser2['default'];\nvar yy = {};\n\n_utils.extend(yy, Helpers);\n\nfunction parseWithoutProcessing(input, options) {\n // Just return if an already-compiled AST was passed in.\n if (input.type === 'Program') {\n return input;\n }\n\n _parser2['default'].yy = yy; // Altering the shared object here, but this is ok as parser is a sync operation\n\n yy.locInfo = function (locInfo) {\n return new yy.SourceLocation(options && options.srcName, locInfo);\n };\n\n var ast = _parser2['default'].parse(input);\n\n return ast;\n}\n\nfunction parse(input, options) {\n var ast = parseWithoutProcessing(input, options);\n var strip = new _whitespaceControl2['default'](options);\n return strip.accept(ast);\n}","// File ignored in coverage tests via setting in .istanbul.yml\n\n/* Jison generated parser */\n\"use strict\";\n\nexports.__esModule = true;\n\nvar handlebars = function () {\n var parser = {\n trace: function trace() {},\n yy: {},\n symbols_: {\n \"error\": 2,\n \"root\": 3,\n \"program\": 4,\n \"EOF\": 5,\n \"program_repetition0\": 6,\n \"statement\": 7,\n \"mustache\": 8,\n \"block\": 9,\n \"rawBlock\": 10,\n \"partial\": 11,\n \"partialBlock\": 12,\n \"content\": 13,\n \"COMMENT\": 14,\n \"CONTENT\": 15,\n \"openRawBlock\": 16,\n \"rawBlock_repetition0\": 17,\n \"END_RAW_BLOCK\": 18,\n \"OPEN_RAW_BLOCK\": 19,\n \"helperName\": 20,\n \"openRawBlock_repetition0\": 21,\n \"openRawBlock_option0\": 22,\n \"CLOSE_RAW_BLOCK\": 23,\n \"openBlock\": 24,\n \"block_option0\": 25,\n \"closeBlock\": 26,\n \"openInverse\": 27,\n \"block_option1\": 28,\n \"OPEN_BLOCK\": 29,\n \"openBlock_repetition0\": 30,\n \"openBlock_option0\": 31,\n \"openBlock_option1\": 32,\n \"CLOSE\": 33,\n \"OPEN_INVERSE\": 34,\n \"openInverse_repetition0\": 35,\n \"openInverse_option0\": 36,\n \"openInverse_option1\": 37,\n \"openInverseChain\": 38,\n \"OPEN_INVERSE_CHAIN\": 39,\n \"openInverseChain_repetition0\": 40,\n \"openInverseChain_option0\": 41,\n \"openInverseChain_option1\": 42,\n \"inverseAndProgram\": 43,\n \"INVERSE\": 44,\n \"inverseChain\": 45,\n \"inverseChain_option0\": 46,\n \"OPEN_ENDBLOCK\": 47,\n \"OPEN\": 48,\n \"mustache_repetition0\": 49,\n \"mustache_option0\": 50,\n \"OPEN_UNESCAPED\": 51,\n \"mustache_repetition1\": 52,\n \"mustache_option1\": 53,\n \"CLOSE_UNESCAPED\": 54,\n \"OPEN_PARTIAL\": 55,\n \"partialName\": 56,\n \"partial_repetition0\": 57,\n \"partial_option0\": 58,\n \"openPartialBlock\": 59,\n \"OPEN_PARTIAL_BLOCK\": 60,\n \"openPartialBlock_repetition0\": 61,\n \"openPartialBlock_option0\": 62,\n \"param\": 63,\n \"sexpr\": 64,\n \"OPEN_SEXPR\": 65,\n \"sexpr_repetition0\": 66,\n \"sexpr_option0\": 67,\n \"CLOSE_SEXPR\": 68,\n \"hash\": 69,\n \"hash_repetition_plus0\": 70,\n \"hashSegment\": 71,\n \"ID\": 72,\n \"EQUALS\": 73,\n \"blockParams\": 74,\n \"OPEN_BLOCK_PARAMS\": 75,\n \"blockParams_repetition_plus0\": 76,\n \"CLOSE_BLOCK_PARAMS\": 77,\n \"path\": 78,\n \"dataName\": 79,\n \"STRING\": 80,\n \"NUMBER\": 81,\n \"BOOLEAN\": 82,\n \"UNDEFINED\": 83,\n \"NULL\": 84,\n \"DATA\": 85,\n \"pathSegments\": 86,\n \"SEP\": 87,\n \"$accept\": 0,\n \"$end\": 1\n },\n terminals_: {\n 2: \"error\",\n 5: \"EOF\",\n 14: \"COMMENT\",\n 15: \"CONTENT\",\n 18: \"END_RAW_BLOCK\",\n 19: \"OPEN_RAW_BLOCK\",\n 23: \"CLOSE_RAW_BLOCK\",\n 29: \"OPEN_BLOCK\",\n 33: \"CLOSE\",\n 34: \"OPEN_INVERSE\",\n 39: \"OPEN_INVERSE_CHAIN\",\n 44: \"INVERSE\",\n 47: \"OPEN_ENDBLOCK\",\n 48: \"OPEN\",\n 51: \"OPEN_UNESCAPED\",\n 54: \"CLOSE_UNESCAPED\",\n 55: \"OPEN_PARTIAL\",\n 60: \"OPEN_PARTIAL_BLOCK\",\n 65: \"OPEN_SEXPR\",\n 68: \"CLOSE_SEXPR\",\n 72: \"ID\",\n 73: \"EQUALS\",\n 75: \"OPEN_BLOCK_PARAMS\",\n 77: \"CLOSE_BLOCK_PARAMS\",\n 80: \"STRING\",\n 81: \"NUMBER\",\n 82: \"BOOLEAN\",\n 83: \"UNDEFINED\",\n 84: \"NULL\",\n 85: \"DATA\",\n 87: \"SEP\"\n },\n productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [13, 1], [10, 3], [16, 5], [9, 4], [9, 4], [24, 6], [27, 6], [38, 6], [43, 2], [45, 3], [45, 1], [26, 3], [8, 5], [8, 5], [11, 5], [12, 3], [59, 5], [63, 1], [63, 1], [64, 5], [69, 1], [71, 3], [74, 3], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [56, 1], [56, 1], [79, 2], [78, 1], [86, 3], [86, 1], [6, 0], [6, 2], [17, 0], [17, 2], [21, 0], [21, 2], [22, 0], [22, 1], [25, 0], [25, 1], [28, 0], [28, 1], [30, 0], [30, 2], [31, 0], [31, 1], [32, 0], [32, 1], [35, 0], [35, 2], [36, 0], [36, 1], [37, 0], [37, 1], [40, 0], [40, 2], [41, 0], [41, 1], [42, 0], [42, 1], [46, 0], [46, 1], [49, 0], [49, 2], [50, 0], [50, 1], [52, 0], [52, 2], [53, 0], [53, 1], [57, 0], [57, 2], [58, 0], [58, 1], [61, 0], [61, 2], [62, 0], [62, 1], [66, 0], [66, 2], [67, 0], [67, 1], [70, 1], [70, 2], [76, 1], [76, 2]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n break;\n\n case 2:\n this.$ = yy.prepareProgram($$[$0]);\n break;\n\n case 3:\n this.$ = $$[$0];\n break;\n\n case 4:\n this.$ = $$[$0];\n break;\n\n case 5:\n this.$ = $$[$0];\n break;\n\n case 6:\n this.$ = $$[$0];\n break;\n\n case 7:\n this.$ = $$[$0];\n break;\n\n case 8:\n this.$ = $$[$0];\n break;\n\n case 9:\n this.$ = {\n type: 'CommentStatement',\n value: yy.stripComment($$[$0]),\n strip: yy.stripFlags($$[$0], $$[$0]),\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 10:\n this.$ = {\n type: 'ContentStatement',\n original: $$[$0],\n value: $$[$0],\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 11:\n this.$ = yy.prepareRawBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$);\n break;\n\n case 12:\n this.$ = {\n path: $$[$0 - 3],\n params: $$[$0 - 2],\n hash: $$[$0 - 1]\n };\n break;\n\n case 13:\n this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], false, this._$);\n break;\n\n case 14:\n this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], true, this._$);\n break;\n\n case 15:\n this.$ = {\n open: $$[$0 - 5],\n path: $$[$0 - 4],\n params: $$[$0 - 3],\n hash: $$[$0 - 2],\n blockParams: $$[$0 - 1],\n strip: yy.stripFlags($$[$0 - 5], $$[$0])\n };\n break;\n\n case 16:\n this.$ = {\n path: $$[$0 - 4],\n params: $$[$0 - 3],\n hash: $$[$0 - 2],\n blockParams: $$[$0 - 1],\n strip: yy.stripFlags($$[$0 - 5], $$[$0])\n };\n break;\n\n case 17:\n this.$ = {\n path: $$[$0 - 4],\n params: $$[$0 - 3],\n hash: $$[$0 - 2],\n blockParams: $$[$0 - 1],\n strip: yy.stripFlags($$[$0 - 5], $$[$0])\n };\n break;\n\n case 18:\n this.$ = {\n strip: yy.stripFlags($$[$0 - 1], $$[$0 - 1]),\n program: $$[$0]\n };\n break;\n\n case 19:\n var inverse = yy.prepareBlock($$[$0 - 2], $$[$0 - 1], $$[$0], $$[$0], false, this._$),\n program = yy.prepareProgram([inverse], $$[$0 - 1].loc);\n program.chained = true;\n this.$ = {\n strip: $$[$0 - 2].strip,\n program: program,\n chain: true\n };\n break;\n\n case 20:\n this.$ = $$[$0];\n break;\n\n case 21:\n this.$ = {\n path: $$[$0 - 1],\n strip: yy.stripFlags($$[$0 - 2], $$[$0])\n };\n break;\n\n case 22:\n this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);\n break;\n\n case 23:\n this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);\n break;\n\n case 24:\n this.$ = {\n type: 'PartialStatement',\n name: $$[$0 - 3],\n params: $$[$0 - 2],\n hash: $$[$0 - 1],\n indent: '',\n strip: yy.stripFlags($$[$0 - 4], $$[$0]),\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 25:\n this.$ = yy.preparePartialBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$);\n break;\n\n case 26:\n this.$ = {\n path: $$[$0 - 3],\n params: $$[$0 - 2],\n hash: $$[$0 - 1],\n strip: yy.stripFlags($$[$0 - 4], $$[$0])\n };\n break;\n\n case 27:\n this.$ = $$[$0];\n break;\n\n case 28:\n this.$ = $$[$0];\n break;\n\n case 29:\n this.$ = {\n type: 'SubExpression',\n path: $$[$0 - 3],\n params: $$[$0 - 2],\n hash: $$[$0 - 1],\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 30:\n this.$ = {\n type: 'Hash',\n pairs: $$[$0],\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 31:\n this.$ = {\n type: 'HashPair',\n key: yy.id($$[$0 - 2]),\n value: $$[$0],\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 32:\n this.$ = yy.id($$[$0 - 1]);\n break;\n\n case 33:\n this.$ = $$[$0];\n break;\n\n case 34:\n this.$ = $$[$0];\n break;\n\n case 35:\n this.$ = {\n type: 'StringLiteral',\n value: $$[$0],\n original: $$[$0],\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 36:\n this.$ = {\n type: 'NumberLiteral',\n value: Number($$[$0]),\n original: Number($$[$0]),\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 37:\n this.$ = {\n type: 'BooleanLiteral',\n value: $$[$0] === 'true',\n original: $$[$0] === 'true',\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 38:\n this.$ = {\n type: 'UndefinedLiteral',\n original: undefined,\n value: undefined,\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 39:\n this.$ = {\n type: 'NullLiteral',\n original: null,\n value: null,\n loc: yy.locInfo(this._$)\n };\n break;\n\n case 40:\n this.$ = $$[$0];\n break;\n\n case 41:\n this.$ = $$[$0];\n break;\n\n case 42:\n this.$ = yy.preparePath(true, $$[$0], this._$);\n break;\n\n case 43:\n this.$ = yy.preparePath(false, $$[$0], this._$);\n break;\n\n case 44:\n $$[$0 - 2].push({\n part: yy.id($$[$0]),\n original: $$[$0],\n separator: $$[$0 - 1]\n });\n this.$ = $$[$0 - 2];\n break;\n\n case 45:\n this.$ = [{\n part: yy.id($$[$0]),\n original: $$[$0]\n }];\n break;\n\n case 46:\n this.$ = [];\n break;\n\n case 47:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 48:\n this.$ = [];\n break;\n\n case 49:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 50:\n this.$ = [];\n break;\n\n case 51:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 58:\n this.$ = [];\n break;\n\n case 59:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 64:\n this.$ = [];\n break;\n\n case 65:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 70:\n this.$ = [];\n break;\n\n case 71:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 78:\n this.$ = [];\n break;\n\n case 79:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 82:\n this.$ = [];\n break;\n\n case 83:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 86:\n this.$ = [];\n break;\n\n case 87:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 90:\n this.$ = [];\n break;\n\n case 91:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 94:\n this.$ = [];\n break;\n\n case 95:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 98:\n this.$ = [$$[$0]];\n break;\n\n case 99:\n $$[$0 - 1].push($$[$0]);\n break;\n\n case 100:\n this.$ = [$$[$0]];\n break;\n\n case 101:\n $$[$0 - 1].push($$[$0]);\n break;\n }\n },\n table: [{\n 3: 1,\n 4: 2,\n 5: [2, 46],\n 6: 3,\n 14: [2, 46],\n 15: [2, 46],\n 19: [2, 46],\n 29: [2, 46],\n 34: [2, 46],\n 48: [2, 46],\n 51: [2, 46],\n 55: [2, 46],\n 60: [2, 46]\n }, {\n 1: [3]\n }, {\n 5: [1, 4]\n }, {\n 5: [2, 2],\n 7: 5,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 14: [1, 12],\n 15: [1, 20],\n 16: 17,\n 19: [1, 23],\n 24: 15,\n 27: 16,\n 29: [1, 21],\n 34: [1, 22],\n 39: [2, 2],\n 44: [2, 2],\n 47: [2, 2],\n 48: [1, 13],\n 51: [1, 14],\n 55: [1, 18],\n 59: 19,\n 60: [1, 24]\n }, {\n 1: [2, 1]\n }, {\n 5: [2, 47],\n 14: [2, 47],\n 15: [2, 47],\n 19: [2, 47],\n 29: [2, 47],\n 34: [2, 47],\n 39: [2, 47],\n 44: [2, 47],\n 47: [2, 47],\n 48: [2, 47],\n 51: [2, 47],\n 55: [2, 47],\n 60: [2, 47]\n }, {\n 5: [2, 3],\n 14: [2, 3],\n 15: [2, 3],\n 19: [2, 3],\n 29: [2, 3],\n 34: [2, 3],\n 39: [2, 3],\n 44: [2, 3],\n 47: [2, 3],\n 48: [2, 3],\n 51: [2, 3],\n 55: [2, 3],\n 60: [2, 3]\n }, {\n 5: [2, 4],\n 14: [2, 4],\n 15: [2, 4],\n 19: [2, 4],\n 29: [2, 4],\n 34: [2, 4],\n 39: [2, 4],\n 44: [2, 4],\n 47: [2, 4],\n 48: [2, 4],\n 51: [2, 4],\n 55: [2, 4],\n 60: [2, 4]\n }, {\n 5: [2, 5],\n 14: [2, 5],\n 15: [2, 5],\n 19: [2, 5],\n 29: [2, 5],\n 34: [2, 5],\n 39: [2, 5],\n 44: [2, 5],\n 47: [2, 5],\n 48: [2, 5],\n 51: [2, 5],\n 55: [2, 5],\n 60: [2, 5]\n }, {\n 5: [2, 6],\n 14: [2, 6],\n 15: [2, 6],\n 19: [2, 6],\n 29: [2, 6],\n 34: [2, 6],\n 39: [2, 6],\n 44: [2, 6],\n 47: [2, 6],\n 48: [2, 6],\n 51: [2, 6],\n 55: [2, 6],\n 60: [2, 6]\n }, {\n 5: [2, 7],\n 14: [2, 7],\n 15: [2, 7],\n 19: [2, 7],\n 29: [2, 7],\n 34: [2, 7],\n 39: [2, 7],\n 44: [2, 7],\n 47: [2, 7],\n 48: [2, 7],\n 51: [2, 7],\n 55: [2, 7],\n 60: [2, 7]\n }, {\n 5: [2, 8],\n 14: [2, 8],\n 15: [2, 8],\n 19: [2, 8],\n 29: [2, 8],\n 34: [2, 8],\n 39: [2, 8],\n 44: [2, 8],\n 47: [2, 8],\n 48: [2, 8],\n 51: [2, 8],\n 55: [2, 8],\n 60: [2, 8]\n }, {\n 5: [2, 9],\n 14: [2, 9],\n 15: [2, 9],\n 19: [2, 9],\n 29: [2, 9],\n 34: [2, 9],\n 39: [2, 9],\n 44: [2, 9],\n 47: [2, 9],\n 48: [2, 9],\n 51: [2, 9],\n 55: [2, 9],\n 60: [2, 9]\n }, {\n 20: 25,\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 20: 36,\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 4: 37,\n 6: 3,\n 14: [2, 46],\n 15: [2, 46],\n 19: [2, 46],\n 29: [2, 46],\n 34: [2, 46],\n 39: [2, 46],\n 44: [2, 46],\n 47: [2, 46],\n 48: [2, 46],\n 51: [2, 46],\n 55: [2, 46],\n 60: [2, 46]\n }, {\n 4: 38,\n 6: 3,\n 14: [2, 46],\n 15: [2, 46],\n 19: [2, 46],\n 29: [2, 46],\n 34: [2, 46],\n 44: [2, 46],\n 47: [2, 46],\n 48: [2, 46],\n 51: [2, 46],\n 55: [2, 46],\n 60: [2, 46]\n }, {\n 15: [2, 48],\n 17: 39,\n 18: [2, 48]\n }, {\n 20: 41,\n 56: 40,\n 64: 42,\n 65: [1, 43],\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 4: 44,\n 6: 3,\n 14: [2, 46],\n 15: [2, 46],\n 19: [2, 46],\n 29: [2, 46],\n 34: [2, 46],\n 47: [2, 46],\n 48: [2, 46],\n 51: [2, 46],\n 55: [2, 46],\n 60: [2, 46]\n }, {\n 5: [2, 10],\n 14: [2, 10],\n 15: [2, 10],\n 18: [2, 10],\n 19: [2, 10],\n 29: [2, 10],\n 34: [2, 10],\n 39: [2, 10],\n 44: [2, 10],\n 47: [2, 10],\n 48: [2, 10],\n 51: [2, 10],\n 55: [2, 10],\n 60: [2, 10]\n }, {\n 20: 45,\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 20: 46,\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 20: 47,\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 20: 41,\n 56: 48,\n 64: 42,\n 65: [1, 43],\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 33: [2, 78],\n 49: 49,\n 65: [2, 78],\n 72: [2, 78],\n 80: [2, 78],\n 81: [2, 78],\n 82: [2, 78],\n 83: [2, 78],\n 84: [2, 78],\n 85: [2, 78]\n }, {\n 23: [2, 33],\n 33: [2, 33],\n 54: [2, 33],\n 65: [2, 33],\n 68: [2, 33],\n 72: [2, 33],\n 75: [2, 33],\n 80: [2, 33],\n 81: [2, 33],\n 82: [2, 33],\n 83: [2, 33],\n 84: [2, 33],\n 85: [2, 33]\n }, {\n 23: [2, 34],\n 33: [2, 34],\n 54: [2, 34],\n 65: [2, 34],\n 68: [2, 34],\n 72: [2, 34],\n 75: [2, 34],\n 80: [2, 34],\n 81: [2, 34],\n 82: [2, 34],\n 83: [2, 34],\n 84: [2, 34],\n 85: [2, 34]\n }, {\n 23: [2, 35],\n 33: [2, 35],\n 54: [2, 35],\n 65: [2, 35],\n 68: [2, 35],\n 72: [2, 35],\n 75: [2, 35],\n 80: [2, 35],\n 81: [2, 35],\n 82: [2, 35],\n 83: [2, 35],\n 84: [2, 35],\n 85: [2, 35]\n }, {\n 23: [2, 36],\n 33: [2, 36],\n 54: [2, 36],\n 65: [2, 36],\n 68: [2, 36],\n 72: [2, 36],\n 75: [2, 36],\n 80: [2, 36],\n 81: [2, 36],\n 82: [2, 36],\n 83: [2, 36],\n 84: [2, 36],\n 85: [2, 36]\n }, {\n 23: [2, 37],\n 33: [2, 37],\n 54: [2, 37],\n 65: [2, 37],\n 68: [2, 37],\n 72: [2, 37],\n 75: [2, 37],\n 80: [2, 37],\n 81: [2, 37],\n 82: [2, 37],\n 83: [2, 37],\n 84: [2, 37],\n 85: [2, 37]\n }, {\n 23: [2, 38],\n 33: [2, 38],\n 54: [2, 38],\n 65: [2, 38],\n 68: [2, 38],\n 72: [2, 38],\n 75: [2, 38],\n 80: [2, 38],\n 81: [2, 38],\n 82: [2, 38],\n 83: [2, 38],\n 84: [2, 38],\n 85: [2, 38]\n }, {\n 23: [2, 39],\n 33: [2, 39],\n 54: [2, 39],\n 65: [2, 39],\n 68: [2, 39],\n 72: [2, 39],\n 75: [2, 39],\n 80: [2, 39],\n 81: [2, 39],\n 82: [2, 39],\n 83: [2, 39],\n 84: [2, 39],\n 85: [2, 39]\n }, {\n 23: [2, 43],\n 33: [2, 43],\n 54: [2, 43],\n 65: [2, 43],\n 68: [2, 43],\n 72: [2, 43],\n 75: [2, 43],\n 80: [2, 43],\n 81: [2, 43],\n 82: [2, 43],\n 83: [2, 43],\n 84: [2, 43],\n 85: [2, 43],\n 87: [1, 50]\n }, {\n 72: [1, 35],\n 86: 51\n }, {\n 23: [2, 45],\n 33: [2, 45],\n 54: [2, 45],\n 65: [2, 45],\n 68: [2, 45],\n 72: [2, 45],\n 75: [2, 45],\n 80: [2, 45],\n 81: [2, 45],\n 82: [2, 45],\n 83: [2, 45],\n 84: [2, 45],\n 85: [2, 45],\n 87: [2, 45]\n }, {\n 52: 52,\n 54: [2, 82],\n 65: [2, 82],\n 72: [2, 82],\n 80: [2, 82],\n 81: [2, 82],\n 82: [2, 82],\n 83: [2, 82],\n 84: [2, 82],\n 85: [2, 82]\n }, {\n 25: 53,\n 38: 55,\n 39: [1, 57],\n 43: 56,\n 44: [1, 58],\n 45: 54,\n 47: [2, 54]\n }, {\n 28: 59,\n 43: 60,\n 44: [1, 58],\n 47: [2, 56]\n }, {\n 13: 62,\n 15: [1, 20],\n 18: [1, 61]\n }, {\n 33: [2, 86],\n 57: 63,\n 65: [2, 86],\n 72: [2, 86],\n 80: [2, 86],\n 81: [2, 86],\n 82: [2, 86],\n 83: [2, 86],\n 84: [2, 86],\n 85: [2, 86]\n }, {\n 33: [2, 40],\n 65: [2, 40],\n 72: [2, 40],\n 80: [2, 40],\n 81: [2, 40],\n 82: [2, 40],\n 83: [2, 40],\n 84: [2, 40],\n 85: [2, 40]\n }, {\n 33: [2, 41],\n 65: [2, 41],\n 72: [2, 41],\n 80: [2, 41],\n 81: [2, 41],\n 82: [2, 41],\n 83: [2, 41],\n 84: [2, 41],\n 85: [2, 41]\n }, {\n 20: 64,\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 26: 65,\n 47: [1, 66]\n }, {\n 30: 67,\n 33: [2, 58],\n 65: [2, 58],\n 72: [2, 58],\n 75: [2, 58],\n 80: [2, 58],\n 81: [2, 58],\n 82: [2, 58],\n 83: [2, 58],\n 84: [2, 58],\n 85: [2, 58]\n }, {\n 33: [2, 64],\n 35: 68,\n 65: [2, 64],\n 72: [2, 64],\n 75: [2, 64],\n 80: [2, 64],\n 81: [2, 64],\n 82: [2, 64],\n 83: [2, 64],\n 84: [2, 64],\n 85: [2, 64]\n }, {\n 21: 69,\n 23: [2, 50],\n 65: [2, 50],\n 72: [2, 50],\n 80: [2, 50],\n 81: [2, 50],\n 82: [2, 50],\n 83: [2, 50],\n 84: [2, 50],\n 85: [2, 50]\n }, {\n 33: [2, 90],\n 61: 70,\n 65: [2, 90],\n 72: [2, 90],\n 80: [2, 90],\n 81: [2, 90],\n 82: [2, 90],\n 83: [2, 90],\n 84: [2, 90],\n 85: [2, 90]\n }, {\n 20: 74,\n 33: [2, 80],\n 50: 71,\n 63: 72,\n 64: 75,\n 65: [1, 43],\n 69: 73,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 72: [1, 79]\n }, {\n 23: [2, 42],\n 33: [2, 42],\n 54: [2, 42],\n 65: [2, 42],\n 68: [2, 42],\n 72: [2, 42],\n 75: [2, 42],\n 80: [2, 42],\n 81: [2, 42],\n 82: [2, 42],\n 83: [2, 42],\n 84: [2, 42],\n 85: [2, 42],\n 87: [1, 50]\n }, {\n 20: 74,\n 53: 80,\n 54: [2, 84],\n 63: 81,\n 64: 75,\n 65: [1, 43],\n 69: 82,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 26: 83,\n 47: [1, 66]\n }, {\n 47: [2, 55]\n }, {\n 4: 84,\n 6: 3,\n 14: [2, 46],\n 15: [2, 46],\n 19: [2, 46],\n 29: [2, 46],\n 34: [2, 46],\n 39: [2, 46],\n 44: [2, 46],\n 47: [2, 46],\n 48: [2, 46],\n 51: [2, 46],\n 55: [2, 46],\n 60: [2, 46]\n }, {\n 47: [2, 20]\n }, {\n 20: 85,\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 4: 86,\n 6: 3,\n 14: [2, 46],\n 15: [2, 46],\n 19: [2, 46],\n 29: [2, 46],\n 34: [2, 46],\n 47: [2, 46],\n 48: [2, 46],\n 51: [2, 46],\n 55: [2, 46],\n 60: [2, 46]\n }, {\n 26: 87,\n 47: [1, 66]\n }, {\n 47: [2, 57]\n }, {\n 5: [2, 11],\n 14: [2, 11],\n 15: [2, 11],\n 19: [2, 11],\n 29: [2, 11],\n 34: [2, 11],\n 39: [2, 11],\n 44: [2, 11],\n 47: [2, 11],\n 48: [2, 11],\n 51: [2, 11],\n 55: [2, 11],\n 60: [2, 11]\n }, {\n 15: [2, 49],\n 18: [2, 49]\n }, {\n 20: 74,\n 33: [2, 88],\n 58: 88,\n 63: 89,\n 64: 75,\n 65: [1, 43],\n 69: 90,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 65: [2, 94],\n 66: 91,\n 68: [2, 94],\n 72: [2, 94],\n 80: [2, 94],\n 81: [2, 94],\n 82: [2, 94],\n 83: [2, 94],\n 84: [2, 94],\n 85: [2, 94]\n }, {\n 5: [2, 25],\n 14: [2, 25],\n 15: [2, 25],\n 19: [2, 25],\n 29: [2, 25],\n 34: [2, 25],\n 39: [2, 25],\n 44: [2, 25],\n 47: [2, 25],\n 48: [2, 25],\n 51: [2, 25],\n 55: [2, 25],\n 60: [2, 25]\n }, {\n 20: 92,\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 20: 74,\n 31: 93,\n 33: [2, 60],\n 63: 94,\n 64: 75,\n 65: [1, 43],\n 69: 95,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 75: [2, 60],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 20: 74,\n 33: [2, 66],\n 36: 96,\n 63: 97,\n 64: 75,\n 65: [1, 43],\n 69: 98,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 75: [2, 66],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 20: 74,\n 22: 99,\n 23: [2, 52],\n 63: 100,\n 64: 75,\n 65: [1, 43],\n 69: 101,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 20: 74,\n 33: [2, 92],\n 62: 102,\n 63: 103,\n 64: 75,\n 65: [1, 43],\n 69: 104,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 33: [1, 105]\n }, {\n 33: [2, 79],\n 65: [2, 79],\n 72: [2, 79],\n 80: [2, 79],\n 81: [2, 79],\n 82: [2, 79],\n 83: [2, 79],\n 84: [2, 79],\n 85: [2, 79]\n }, {\n 33: [2, 81]\n }, {\n 23: [2, 27],\n 33: [2, 27],\n 54: [2, 27],\n 65: [2, 27],\n 68: [2, 27],\n 72: [2, 27],\n 75: [2, 27],\n 80: [2, 27],\n 81: [2, 27],\n 82: [2, 27],\n 83: [2, 27],\n 84: [2, 27],\n 85: [2, 27]\n }, {\n 23: [2, 28],\n 33: [2, 28],\n 54: [2, 28],\n 65: [2, 28],\n 68: [2, 28],\n 72: [2, 28],\n 75: [2, 28],\n 80: [2, 28],\n 81: [2, 28],\n 82: [2, 28],\n 83: [2, 28],\n 84: [2, 28],\n 85: [2, 28]\n }, {\n 23: [2, 30],\n 33: [2, 30],\n 54: [2, 30],\n 68: [2, 30],\n 71: 106,\n 72: [1, 107],\n 75: [2, 30]\n }, {\n 23: [2, 98],\n 33: [2, 98],\n 54: [2, 98],\n 68: [2, 98],\n 72: [2, 98],\n 75: [2, 98]\n }, {\n 23: [2, 45],\n 33: [2, 45],\n 54: [2, 45],\n 65: [2, 45],\n 68: [2, 45],\n 72: [2, 45],\n 73: [1, 108],\n 75: [2, 45],\n 80: [2, 45],\n 81: [2, 45],\n 82: [2, 45],\n 83: [2, 45],\n 84: [2, 45],\n 85: [2, 45],\n 87: [2, 45]\n }, {\n 23: [2, 44],\n 33: [2, 44],\n 54: [2, 44],\n 65: [2, 44],\n 68: [2, 44],\n 72: [2, 44],\n 75: [2, 44],\n 80: [2, 44],\n 81: [2, 44],\n 82: [2, 44],\n 83: [2, 44],\n 84: [2, 44],\n 85: [2, 44],\n 87: [2, 44]\n }, {\n 54: [1, 109]\n }, {\n 54: [2, 83],\n 65: [2, 83],\n 72: [2, 83],\n 80: [2, 83],\n 81: [2, 83],\n 82: [2, 83],\n 83: [2, 83],\n 84: [2, 83],\n 85: [2, 83]\n }, {\n 54: [2, 85]\n }, {\n 5: [2, 13],\n 14: [2, 13],\n 15: [2, 13],\n 19: [2, 13],\n 29: [2, 13],\n 34: [2, 13],\n 39: [2, 13],\n 44: [2, 13],\n 47: [2, 13],\n 48: [2, 13],\n 51: [2, 13],\n 55: [2, 13],\n 60: [2, 13]\n }, {\n 38: 55,\n 39: [1, 57],\n 43: 56,\n 44: [1, 58],\n 45: 111,\n 46: 110,\n 47: [2, 76]\n }, {\n 33: [2, 70],\n 40: 112,\n 65: [2, 70],\n 72: [2, 70],\n 75: [2, 70],\n 80: [2, 70],\n 81: [2, 70],\n 82: [2, 70],\n 83: [2, 70],\n 84: [2, 70],\n 85: [2, 70]\n }, {\n 47: [2, 18]\n }, {\n 5: [2, 14],\n 14: [2, 14],\n 15: [2, 14],\n 19: [2, 14],\n 29: [2, 14],\n 34: [2, 14],\n 39: [2, 14],\n 44: [2, 14],\n 47: [2, 14],\n 48: [2, 14],\n 51: [2, 14],\n 55: [2, 14],\n 60: [2, 14]\n }, {\n 33: [1, 113]\n }, {\n 33: [2, 87],\n 65: [2, 87],\n 72: [2, 87],\n 80: [2, 87],\n 81: [2, 87],\n 82: [2, 87],\n 83: [2, 87],\n 84: [2, 87],\n 85: [2, 87]\n }, {\n 33: [2, 89]\n }, {\n 20: 74,\n 63: 115,\n 64: 75,\n 65: [1, 43],\n 67: 114,\n 68: [2, 96],\n 69: 116,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 33: [1, 117]\n }, {\n 32: 118,\n 33: [2, 62],\n 74: 119,\n 75: [1, 120]\n }, {\n 33: [2, 59],\n 65: [2, 59],\n 72: [2, 59],\n 75: [2, 59],\n 80: [2, 59],\n 81: [2, 59],\n 82: [2, 59],\n 83: [2, 59],\n 84: [2, 59],\n 85: [2, 59]\n }, {\n 33: [2, 61],\n 75: [2, 61]\n }, {\n 33: [2, 68],\n 37: 121,\n 74: 122,\n 75: [1, 120]\n }, {\n 33: [2, 65],\n 65: [2, 65],\n 72: [2, 65],\n 75: [2, 65],\n 80: [2, 65],\n 81: [2, 65],\n 82: [2, 65],\n 83: [2, 65],\n 84: [2, 65],\n 85: [2, 65]\n }, {\n 33: [2, 67],\n 75: [2, 67]\n }, {\n 23: [1, 123]\n }, {\n 23: [2, 51],\n 65: [2, 51],\n 72: [2, 51],\n 80: [2, 51],\n 81: [2, 51],\n 82: [2, 51],\n 83: [2, 51],\n 84: [2, 51],\n 85: [2, 51]\n }, {\n 23: [2, 53]\n }, {\n 33: [1, 124]\n }, {\n 33: [2, 91],\n 65: [2, 91],\n 72: [2, 91],\n 80: [2, 91],\n 81: [2, 91],\n 82: [2, 91],\n 83: [2, 91],\n 84: [2, 91],\n 85: [2, 91]\n }, {\n 33: [2, 93]\n }, {\n 5: [2, 22],\n 14: [2, 22],\n 15: [2, 22],\n 19: [2, 22],\n 29: [2, 22],\n 34: [2, 22],\n 39: [2, 22],\n 44: [2, 22],\n 47: [2, 22],\n 48: [2, 22],\n 51: [2, 22],\n 55: [2, 22],\n 60: [2, 22]\n }, {\n 23: [2, 99],\n 33: [2, 99],\n 54: [2, 99],\n 68: [2, 99],\n 72: [2, 99],\n 75: [2, 99]\n }, {\n 73: [1, 108]\n }, {\n 20: 74,\n 63: 125,\n 64: 75,\n 65: [1, 43],\n 72: [1, 35],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 5: [2, 23],\n 14: [2, 23],\n 15: [2, 23],\n 19: [2, 23],\n 29: [2, 23],\n 34: [2, 23],\n 39: [2, 23],\n 44: [2, 23],\n 47: [2, 23],\n 48: [2, 23],\n 51: [2, 23],\n 55: [2, 23],\n 60: [2, 23]\n }, {\n 47: [2, 19]\n }, {\n 47: [2, 77]\n }, {\n 20: 74,\n 33: [2, 72],\n 41: 126,\n 63: 127,\n 64: 75,\n 65: [1, 43],\n 69: 128,\n 70: 76,\n 71: 77,\n 72: [1, 78],\n 75: [2, 72],\n 78: 26,\n 79: 27,\n 80: [1, 28],\n 81: [1, 29],\n 82: [1, 30],\n 83: [1, 31],\n 84: [1, 32],\n 85: [1, 34],\n 86: 33\n }, {\n 5: [2, 24],\n 14: [2, 24],\n 15: [2, 24],\n 19: [2, 24],\n 29: [2, 24],\n 34: [2, 24],\n 39: [2, 24],\n 44: [2, 24],\n 47: [2, 24],\n 48: [2, 24],\n 51: [2, 24],\n 55: [2, 24],\n 60: [2, 24]\n }, {\n 68: [1, 129]\n }, {\n 65: [2, 95],\n 68: [2, 95],\n 72: [2, 95],\n 80: [2, 95],\n 81: [2, 95],\n 82: [2, 95],\n 83: [2, 95],\n 84: [2, 95],\n 85: [2, 95]\n }, {\n 68: [2, 97]\n }, {\n 5: [2, 21],\n 14: [2, 21],\n 15: [2, 21],\n 19: [2, 21],\n 29: [2, 21],\n 34: [2, 21],\n 39: [2, 21],\n 44: [2, 21],\n 47: [2, 21],\n 48: [2, 21],\n 51: [2, 21],\n 55: [2, 21],\n 60: [2, 21]\n }, {\n 33: [1, 130]\n }, {\n 33: [2, 63]\n }, {\n 72: [1, 132],\n 76: 131\n }, {\n 33: [1, 133]\n }, {\n 33: [2, 69]\n }, {\n 15: [2, 12],\n 18: [2, 12]\n }, {\n 14: [2, 26],\n 15: [2, 26],\n 19: [2, 26],\n 29: [2, 26],\n 34: [2, 26],\n 47: [2, 26],\n 48: [2, 26],\n 51: [2, 26],\n 55: [2, 26],\n 60: [2, 26]\n }, {\n 23: [2, 31],\n 33: [2, 31],\n 54: [2, 31],\n 68: [2, 31],\n 72: [2, 31],\n 75: [2, 31]\n }, {\n 33: [2, 74],\n 42: 134,\n 74: 135,\n 75: [1, 120]\n }, {\n 33: [2, 71],\n 65: [2, 71],\n 72: [2, 71],\n 75: [2, 71],\n 80: [2, 71],\n 81: [2, 71],\n 82: [2, 71],\n 83: [2, 71],\n 84: [2, 71],\n 85: [2, 71]\n }, {\n 33: [2, 73],\n 75: [2, 73]\n }, {\n 23: [2, 29],\n 33: [2, 29],\n 54: [2, 29],\n 65: [2, 29],\n 68: [2, 29],\n 72: [2, 29],\n 75: [2, 29],\n 80: [2, 29],\n 81: [2, 29],\n 82: [2, 29],\n 83: [2, 29],\n 84: [2, 29],\n 85: [2, 29]\n }, {\n 14: [2, 15],\n 15: [2, 15],\n 19: [2, 15],\n 29: [2, 15],\n 34: [2, 15],\n 39: [2, 15],\n 44: [2, 15],\n 47: [2, 15],\n 48: [2, 15],\n 51: [2, 15],\n 55: [2, 15],\n 60: [2, 15]\n }, {\n 72: [1, 137],\n 77: [1, 136]\n }, {\n 72: [2, 100],\n 77: [2, 100]\n }, {\n 14: [2, 16],\n 15: [2, 16],\n 19: [2, 16],\n 29: [2, 16],\n 34: [2, 16],\n 44: [2, 16],\n 47: [2, 16],\n 48: [2, 16],\n 51: [2, 16],\n 55: [2, 16],\n 60: [2, 16]\n }, {\n 33: [1, 138]\n }, {\n 33: [2, 75]\n }, {\n 33: [2, 32]\n }, {\n 72: [2, 101],\n 77: [2, 101]\n }, {\n 14: [2, 17],\n 15: [2, 17],\n 19: [2, 17],\n 29: [2, 17],\n 34: [2, 17],\n 39: [2, 17],\n 44: [2, 17],\n 47: [2, 17],\n 48: [2, 17],\n 51: [2, 17],\n 55: [2, 17],\n 60: [2, 17]\n }],\n defaultActions: {\n 4: [2, 1],\n 54: [2, 55],\n 56: [2, 20],\n 60: [2, 57],\n 73: [2, 81],\n 82: [2, 85],\n 86: [2, 18],\n 90: [2, 89],\n 101: [2, 53],\n 104: [2, 93],\n 110: [2, 19],\n 111: [2, 77],\n 116: [2, 97],\n 119: [2, 63],\n 122: [2, 69],\n 135: [2, 75],\n 136: [2, 32]\n },\n parseError: function parseError(str, hash) {\n throw new Error(str);\n },\n parse: function parse(input) {\n var self = this,\n stack = [0],\n vstack = [null],\n lstack = [],\n table = this.table,\n yytext = \"\",\n yylineno = 0,\n yyleng = 0,\n recovering = 0,\n TERROR = 2,\n EOF = 1;\n this.lexer.setInput(input);\n this.lexer.yy = this.yy;\n this.yy.lexer = this.lexer;\n this.yy.parser = this;\n if (typeof this.lexer.yylloc == \"undefined\") this.lexer.yylloc = {};\n var yyloc = this.lexer.yylloc;\n lstack.push(yyloc);\n var ranges = this.lexer.options && this.lexer.options.ranges;\n if (typeof this.yy.parseError === \"function\") this.parseError = this.yy.parseError;\n\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n\n function lex() {\n var token;\n token = self.lexer.lex() || 1;\n\n if (typeof token !== \"number\") {\n token = self.symbols_[token] || token;\n }\n\n return token;\n }\n\n var symbol,\n preErrorSymbol,\n state,\n action,\n a,\n r,\n yyval = {},\n p,\n len,\n newState,\n expected;\n\n while (true) {\n state = stack[stack.length - 1];\n\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n\n action = table[state] && table[state][symbol];\n }\n\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n\n if (!recovering) {\n expected = [];\n\n for (p in table[state]) {\n if (this.terminals_[p] && p > 2) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n\n if (this.lexer.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + this.lexer.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == 1 ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n\n this.parseError(errStr, {\n text: this.lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: this.lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n }\n\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(this.lexer.yytext);\n lstack.push(this.lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n\n if (!preErrorSymbol) {\n yyleng = this.lexer.yyleng;\n yytext = this.lexer.yytext;\n yylineno = this.lexer.yylineno;\n yyloc = this.lexer.yylloc;\n if (recovering > 0) recovering--;\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n\n break;\n\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n\n if (ranges) {\n yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];\n }\n\n r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);\n\n if (typeof r !== \"undefined\") {\n return r;\n }\n\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n\n case 3:\n return true;\n }\n }\n\n return true;\n }\n };\n /* Jison generated lexer */\n\n var lexer = function () {\n var lexer = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n setInput: function setInput(input) {\n this._input = input;\n this._more = this._less = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) this.yylloc.range = [0, 0];\n this.offset = 0;\n return this;\n },\n input: function input() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n\n if (this.options.ranges) this.yylloc.range[1]++;\n this._input = this._input.slice(1);\n return ch;\n },\n unput: function unput(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len - 1); //this.yyleng -= len;\n\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) this.yylineno -= lines.length - 1;\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n\n return this;\n },\n more: function more() {\n this._more = true;\n return this;\n },\n less: function less(n) {\n this.unput(this.match.slice(n));\n },\n pastInput: function pastInput() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\\n/g, \"\");\n },\n upcomingInput: function upcomingInput() {\n var next = this.match;\n\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n\n return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n showPosition: function showPosition() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n next: function next() {\n if (this.done) {\n return this.EOF;\n }\n\n if (!this._input) this.done = true;\n var token, match, tempMatch, index, col, lines;\n\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n\n var rules = this._currentRules();\n\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (!this.options.flex) break;\n }\n }\n\n if (match) {\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) this.yylineno += lines.length;\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n\n this._more = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, rules[index], this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) this.done = false;\n if (token) return token;else return;\n }\n\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n lex: function lex() {\n var r = this.next();\n\n if (typeof r !== 'undefined') {\n return r;\n } else {\n return this.lex();\n }\n },\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n popState: function popState() {\n return this.conditionStack.pop();\n },\n _currentRules: function _currentRules() {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n },\n topState: function topState() {\n return this.conditionStack[this.conditionStack.length - 2];\n },\n pushState: function begin(condition) {\n this.begin(condition);\n }\n };\n lexer.options = {};\n\n lexer.performAction = function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n function strip(start, end) {\n return yy_.yytext = yy_.yytext.substring(start, yy_.yyleng - end + start);\n }\n\n var YYSTATE = YY_START;\n\n switch ($avoiding_name_collisions) {\n case 0:\n if (yy_.yytext.slice(-2) === \"\\\\\\\\\") {\n strip(0, 1);\n this.begin(\"mu\");\n } else if (yy_.yytext.slice(-1) === \"\\\\\") {\n strip(0, 1);\n this.begin(\"emu\");\n } else {\n this.begin(\"mu\");\n }\n\n if (yy_.yytext) return 15;\n break;\n\n case 1:\n return 15;\n break;\n\n case 2:\n this.popState();\n return 15;\n break;\n\n case 3:\n this.begin('raw');\n return 15;\n break;\n\n case 4:\n this.popState(); // Should be using `this.topState()` below, but it currently\n // returns the second top instead of the first top. Opened an\n // issue about it at https://github.com/zaach/jison/issues/291\n\n if (this.conditionStack[this.conditionStack.length - 1] === 'raw') {\n return 15;\n } else {\n strip(5, 9);\n return 'END_RAW_BLOCK';\n }\n\n break;\n\n case 5:\n return 15;\n break;\n\n case 6:\n this.popState();\n return 14;\n break;\n\n case 7:\n return 65;\n break;\n\n case 8:\n return 68;\n break;\n\n case 9:\n return 19;\n break;\n\n case 10:\n this.popState();\n this.begin('raw');\n return 23;\n break;\n\n case 11:\n return 55;\n break;\n\n case 12:\n return 60;\n break;\n\n case 13:\n return 29;\n break;\n\n case 14:\n return 47;\n break;\n\n case 15:\n this.popState();\n return 44;\n break;\n\n case 16:\n this.popState();\n return 44;\n break;\n\n case 17:\n return 34;\n break;\n\n case 18:\n return 39;\n break;\n\n case 19:\n return 51;\n break;\n\n case 20:\n return 48;\n break;\n\n case 21:\n this.unput(yy_.yytext);\n this.popState();\n this.begin('com');\n break;\n\n case 22:\n this.popState();\n return 14;\n break;\n\n case 23:\n return 48;\n break;\n\n case 24:\n return 73;\n break;\n\n case 25:\n return 72;\n break;\n\n case 26:\n return 72;\n break;\n\n case 27:\n return 87;\n break;\n\n case 28:\n // ignore whitespace\n break;\n\n case 29:\n this.popState();\n return 54;\n break;\n\n case 30:\n this.popState();\n return 33;\n break;\n\n case 31:\n yy_.yytext = strip(1, 2).replace(/\\\\\"/g, '\"');\n return 80;\n break;\n\n case 32:\n yy_.yytext = strip(1, 2).replace(/\\\\'/g, \"'\");\n return 80;\n break;\n\n case 33:\n return 85;\n break;\n\n case 34:\n return 82;\n break;\n\n case 35:\n return 82;\n break;\n\n case 36:\n return 83;\n break;\n\n case 37:\n return 84;\n break;\n\n case 38:\n return 81;\n break;\n\n case 39:\n return 75;\n break;\n\n case 40:\n return 77;\n break;\n\n case 41:\n return 72;\n break;\n\n case 42:\n yy_.yytext = yy_.yytext.replace(/\\\\([\\\\\\]])/g, '$1');\n return 72;\n break;\n\n case 43:\n return 'INVALID';\n break;\n\n case 44:\n return 5;\n break;\n }\n };\n\n lexer.rules = [/^(?:[^\\x00]*?(?=(\\{\\{)))/, /^(?:[^\\x00]+)/, /^(?:[^\\x00]{2,}?(?=(\\{\\{|\\\\\\{\\{|\\\\\\\\\\{\\{|$)))/, /^(?:\\{\\{\\{\\{(?=[^\\/]))/, /^(?:\\{\\{\\{\\{\\/[^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=[=}\\s\\/.])\\}\\}\\}\\})/, /^(?:[^\\x00]+?(?=(\\{\\{\\{\\{)))/, /^(?:[\\s\\S]*?--(~)?\\}\\})/, /^(?:\\()/, /^(?:\\))/, /^(?:\\{\\{\\{\\{)/, /^(?:\\}\\}\\}\\})/, /^(?:\\{\\{(~)?>)/, /^(?:\\{\\{(~)?#>)/, /^(?:\\{\\{(~)?#\\*?)/, /^(?:\\{\\{(~)?\\/)/, /^(?:\\{\\{(~)?\\^\\s*(~)?\\}\\})/, /^(?:\\{\\{(~)?\\s*else\\s*(~)?\\}\\})/, /^(?:\\{\\{(~)?\\^)/, /^(?:\\{\\{(~)?\\s*else\\b)/, /^(?:\\{\\{(~)?\\{)/, /^(?:\\{\\{(~)?&)/, /^(?:\\{\\{(~)?!--)/, /^(?:\\{\\{(~)?![\\s\\S]*?\\}\\})/, /^(?:\\{\\{(~)?\\*?)/, /^(?:=)/, /^(?:\\.\\.)/, /^(?:\\.(?=([=~}\\s\\/.)|])))/, /^(?:[\\/.])/, /^(?:\\s+)/, /^(?:\\}(~)?\\}\\})/, /^(?:(~)?\\}\\})/, /^(?:\"(\\\\[\"]|[^\"])*\")/, /^(?:'(\\\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\\s)])))/, /^(?:false(?=([~}\\s)])))/, /^(?:undefined(?=([~}\\s)])))/, /^(?:null(?=([~}\\s)])))/, /^(?:-?[0-9]+(?:\\.[0-9]+)?(?=([~}\\s)])))/, /^(?:as\\s+\\|)/, /^(?:\\|)/, /^(?:([^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=([=~}\\s\\/.)|]))))/, /^(?:\\[(\\\\\\]|[^\\]])*\\])/, /^(?:.)/, /^(?:$)/];\n lexer.conditions = {\n \"mu\": {\n \"rules\": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44],\n \"inclusive\": false\n },\n \"emu\": {\n \"rules\": [2],\n \"inclusive\": false\n },\n \"com\": {\n \"rules\": [6],\n \"inclusive\": false\n },\n \"raw\": {\n \"rules\": [3, 4, 5],\n \"inclusive\": false\n },\n \"INITIAL\": {\n \"rules\": [0, 1, 44],\n \"inclusive\": true\n }\n };\n return lexer;\n }();\n\n parser.lexer = lexer;\n\n function Parser() {\n this.yy = {};\n }\n\n Parser.prototype = parser;\n parser.Parser = Parser;\n return new Parser();\n}();\n\nexports[\"default\"] = handlebars;\nmodule.exports = exports[\"default\"];","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _visitor = require('./visitor');\n\nvar _visitor2 = _interopRequireDefault(_visitor);\n\nfunction WhitespaceControl() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n this.options = options;\n}\n\nWhitespaceControl.prototype = new _visitor2['default']();\n\nWhitespaceControl.prototype.Program = function (program) {\n var doStandalone = !this.options.ignoreStandalone;\n var isRoot = !this.isRootSeen;\n this.isRootSeen = true;\n var body = program.body;\n\n for (var i = 0, l = body.length; i < l; i++) {\n var current = body[i],\n strip = this.accept(current);\n\n if (!strip) {\n continue;\n }\n\n var _isPrevWhitespace = isPrevWhitespace(body, i, isRoot),\n _isNextWhitespace = isNextWhitespace(body, i, isRoot),\n openStandalone = strip.openStandalone && _isPrevWhitespace,\n closeStandalone = strip.closeStandalone && _isNextWhitespace,\n inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace;\n\n if (strip.close) {\n omitRight(body, i, true);\n }\n\n if (strip.open) {\n omitLeft(body, i, true);\n }\n\n if (doStandalone && inlineStandalone) {\n omitRight(body, i);\n\n if (omitLeft(body, i)) {\n // If we are on a standalone node, save the indent info for partials\n if (current.type === 'PartialStatement') {\n // Pull out the whitespace from the final line\n current.indent = /([ \\t]+$)/.exec(body[i - 1].original)[1];\n }\n }\n }\n\n if (doStandalone && openStandalone) {\n omitRight((current.program || current.inverse).body); // Strip out the previous content node if it's whitespace only\n\n omitLeft(body, i);\n }\n\n if (doStandalone && closeStandalone) {\n // Always strip the next node\n omitRight(body, i);\n omitLeft((current.inverse || current.program).body);\n }\n }\n\n return program;\n};\n\nWhitespaceControl.prototype.BlockStatement = WhitespaceControl.prototype.DecoratorBlock = WhitespaceControl.prototype.PartialBlockStatement = function (block) {\n this.accept(block.program);\n this.accept(block.inverse); // Find the inverse program that is involed with whitespace stripping.\n\n var program = block.program || block.inverse,\n inverse = block.program && block.inverse,\n firstInverse = inverse,\n lastInverse = inverse;\n\n if (inverse && inverse.chained) {\n firstInverse = inverse.body[0].program; // Walk the inverse chain to find the last inverse that is actually in the chain.\n\n while (lastInverse.chained) {\n lastInverse = lastInverse.body[lastInverse.body.length - 1].program;\n }\n }\n\n var strip = {\n open: block.openStrip.open,\n close: block.closeStrip.close,\n // Determine the standalone candiacy. Basically flag our content as being possibly standalone\n // so our parent can determine if we actually are standalone\n openStandalone: isNextWhitespace(program.body),\n closeStandalone: isPrevWhitespace((firstInverse || program).body)\n };\n\n if (block.openStrip.close) {\n omitRight(program.body, null, true);\n }\n\n if (inverse) {\n var inverseStrip = block.inverseStrip;\n\n if (inverseStrip.open) {\n omitLeft(program.body, null, true);\n }\n\n if (inverseStrip.close) {\n omitRight(firstInverse.body, null, true);\n }\n\n if (block.closeStrip.open) {\n omitLeft(lastInverse.body, null, true);\n } // Find standalone else statments\n\n\n if (!this.options.ignoreStandalone && isPrevWhitespace(program.body) && isNextWhitespace(firstInverse.body)) {\n omitLeft(program.body);\n omitRight(firstInverse.body);\n }\n } else if (block.closeStrip.open) {\n omitLeft(program.body, null, true);\n }\n\n return strip;\n};\n\nWhitespaceControl.prototype.Decorator = WhitespaceControl.prototype.MustacheStatement = function (mustache) {\n return mustache.strip;\n};\n\nWhitespaceControl.prototype.PartialStatement = WhitespaceControl.prototype.CommentStatement = function (node) {\n /* istanbul ignore next */\n var strip = node.strip || {};\n return {\n inlineStandalone: true,\n open: strip.open,\n close: strip.close\n };\n};\n\nfunction isPrevWhitespace(body, i, isRoot) {\n if (i === undefined) {\n i = body.length;\n } // Nodes that end with newlines are considered whitespace (but are special\n // cased for strip operations)\n\n\n var prev = body[i - 1],\n sibling = body[i - 2];\n\n if (!prev) {\n return isRoot;\n }\n\n if (prev.type === 'ContentStatement') {\n return (sibling || !isRoot ? /\\r?\\n\\s*?$/ : /(^|\\r?\\n)\\s*?$/).test(prev.original);\n }\n}\n\nfunction isNextWhitespace(body, i, isRoot) {\n if (i === undefined) {\n i = -1;\n }\n\n var next = body[i + 1],\n sibling = body[i + 2];\n\n if (!next) {\n return isRoot;\n }\n\n if (next.type === 'ContentStatement') {\n return (sibling || !isRoot ? /^\\s*?\\r?\\n/ : /^\\s*?(\\r?\\n|$)/).test(next.original);\n }\n} // Marks the node to the right of the position as omitted.\n// I.e. {{foo}}' ' will mark the ' ' node as omitted.\n//\n// If i is undefined, then the first child will be marked as such.\n//\n// If mulitple is truthy then all whitespace will be stripped out until non-whitespace\n// content is met.\n\n\nfunction omitRight(body, i, multiple) {\n var current = body[i == null ? 0 : i + 1];\n\n if (!current || current.type !== 'ContentStatement' || !multiple && current.rightStripped) {\n return;\n }\n\n var original = current.value;\n current.value = current.value.replace(multiple ? /^\\s+/ : /^[ \\t]*\\r?\\n?/, '');\n current.rightStripped = current.value !== original;\n} // Marks the node to the left of the position as omitted.\n// I.e. ' '{{foo}} will mark the ' ' node as omitted.\n//\n// If i is undefined then the last child will be marked as such.\n//\n// If mulitple is truthy then all whitespace will be stripped out until non-whitespace\n// content is met.\n\n\nfunction omitLeft(body, i, multiple) {\n var current = body[i == null ? body.length - 1 : i - 1];\n\n if (!current || current.type !== 'ContentStatement' || !multiple && current.leftStripped) {\n return;\n } // We omit the last node if it's whitespace only and not preceded by a non-content node.\n\n\n var original = current.value;\n current.value = current.value.replace(multiple ? /\\s+$/ : /[ \\t]+$/, '');\n current.leftStripped = current.value !== original;\n return current.leftStripped;\n}\n\nexports['default'] = WhitespaceControl;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.SourceLocation = SourceLocation;\nexports.id = id;\nexports.stripFlags = stripFlags;\nexports.stripComment = stripComment;\nexports.preparePath = preparePath;\nexports.prepareMustache = prepareMustache;\nexports.prepareRawBlock = prepareRawBlock;\nexports.prepareBlock = prepareBlock;\nexports.prepareProgram = prepareProgram;\nexports.preparePartialBlock = preparePartialBlock; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nfunction validateClose(open, close) {\n close = close.path ? close.path.original : close;\n\n if (open.path.original !== close) {\n var errorNode = {\n loc: open.path.loc\n };\n throw new _exception2['default'](open.path.original + \" doesn't match \" + close, errorNode);\n }\n}\n\nfunction SourceLocation(source, locInfo) {\n this.source = source;\n this.start = {\n line: locInfo.first_line,\n column: locInfo.first_column\n };\n this.end = {\n line: locInfo.last_line,\n column: locInfo.last_column\n };\n}\n\nfunction id(token) {\n if (/^\\[.*\\]$/.test(token)) {\n return token.substring(1, token.length - 1);\n } else {\n return token;\n }\n}\n\nfunction stripFlags(open, close) {\n return {\n open: open.charAt(2) === '~',\n close: close.charAt(close.length - 3) === '~'\n };\n}\n\nfunction stripComment(comment) {\n return comment.replace(/^\\{\\{~?!-?-?/, '').replace(/-?-?~?\\}\\}$/, '');\n}\n\nfunction preparePath(data, parts, loc) {\n loc = this.locInfo(loc);\n var original = data ? '@' : '',\n dig = [],\n depth = 0;\n\n for (var i = 0, l = parts.length; i < l; i++) {\n var part = parts[i].part,\n // If we have [] syntax then we do not treat path references as operators,\n // i.e. foo.[this] resolves to approximately context.foo['this']\n isLiteral = parts[i].original !== part;\n original += (parts[i].separator || '') + part;\n\n if (!isLiteral && (part === '..' || part === '.' || part === 'this')) {\n if (dig.length > 0) {\n throw new _exception2['default']('Invalid path: ' + original, {\n loc: loc\n });\n } else if (part === '..') {\n depth++;\n }\n } else {\n dig.push(part);\n }\n }\n\n return {\n type: 'PathExpression',\n data: data,\n depth: depth,\n parts: dig,\n original: original,\n loc: loc\n };\n}\n\nfunction prepareMustache(path, params, hash, open, strip, locInfo) {\n // Must use charAt to support IE pre-10\n var escapeFlag = open.charAt(3) || open.charAt(2),\n escaped = escapeFlag !== '{' && escapeFlag !== '&';\n var decorator = /\\*/.test(open);\n return {\n type: decorator ? 'Decorator' : 'MustacheStatement',\n path: path,\n params: params,\n hash: hash,\n escaped: escaped,\n strip: strip,\n loc: this.locInfo(locInfo)\n };\n}\n\nfunction prepareRawBlock(openRawBlock, contents, close, locInfo) {\n validateClose(openRawBlock, close);\n locInfo = this.locInfo(locInfo);\n var program = {\n type: 'Program',\n body: contents,\n strip: {},\n loc: locInfo\n };\n return {\n type: 'BlockStatement',\n path: openRawBlock.path,\n params: openRawBlock.params,\n hash: openRawBlock.hash,\n program: program,\n openStrip: {},\n inverseStrip: {},\n closeStrip: {},\n loc: locInfo\n };\n}\n\nfunction prepareBlock(openBlock, program, inverseAndProgram, close, inverted, locInfo) {\n if (close && close.path) {\n validateClose(openBlock, close);\n }\n\n var decorator = /\\*/.test(openBlock.open);\n program.blockParams = openBlock.blockParams;\n var inverse = undefined,\n inverseStrip = undefined;\n\n if (inverseAndProgram) {\n if (decorator) {\n throw new _exception2['default']('Unexpected inverse block on decorator', inverseAndProgram);\n }\n\n if (inverseAndProgram.chain) {\n inverseAndProgram.program.body[0].closeStrip = close.strip;\n }\n\n inverseStrip = inverseAndProgram.strip;\n inverse = inverseAndProgram.program;\n }\n\n if (inverted) {\n inverted = inverse;\n inverse = program;\n program = inverted;\n }\n\n return {\n type: decorator ? 'DecoratorBlock' : 'BlockStatement',\n path: openBlock.path,\n params: openBlock.params,\n hash: openBlock.hash,\n program: program,\n inverse: inverse,\n openStrip: openBlock.strip,\n inverseStrip: inverseStrip,\n closeStrip: close && close.strip,\n loc: this.locInfo(locInfo)\n };\n}\n\nfunction prepareProgram(statements, loc) {\n if (!loc && statements.length) {\n var firstLoc = statements[0].loc,\n lastLoc = statements[statements.length - 1].loc;\n /* istanbul ignore else */\n\n if (firstLoc && lastLoc) {\n loc = {\n source: firstLoc.source,\n start: {\n line: firstLoc.start.line,\n column: firstLoc.start.column\n },\n end: {\n line: lastLoc.end.line,\n column: lastLoc.end.column\n }\n };\n }\n }\n\n return {\n type: 'Program',\n body: statements,\n strip: {},\n loc: loc\n };\n}\n\nfunction preparePartialBlock(open, program, close, locInfo) {\n validateClose(open, close);\n return {\n type: 'PartialBlockStatement',\n name: open.path,\n params: open.params,\n hash: open.hash,\n program: program,\n openStrip: open.strip,\n closeStrip: close && close.strip,\n loc: this.locInfo(locInfo)\n };\n}","/* eslint-disable new-cap */\n'use strict';\n\nexports.__esModule = true;\nexports.Compiler = Compiler;\nexports.precompile = precompile;\nexports.compile = compile; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _utils = require('../utils');\n\nvar _ast = require('./ast');\n\nvar _ast2 = _interopRequireDefault(_ast);\n\nvar slice = [].slice;\n\nfunction Compiler() {} // the foundHelper register will disambiguate helper lookup from finding a\n// function in a context. This is necessary for mustache compatibility, which\n// requires that context functions in blocks are evaluated by blockHelperMissing,\n// and then proceed as if the resulting value was provided to blockHelperMissing.\n\n\nCompiler.prototype = {\n compiler: Compiler,\n equals: function equals(other) {\n var len = this.opcodes.length;\n\n if (other.opcodes.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var opcode = this.opcodes[i],\n otherOpcode = other.opcodes[i];\n\n if (opcode.opcode !== otherOpcode.opcode || !argEquals(opcode.args, otherOpcode.args)) {\n return false;\n }\n } // We know that length is the same between the two arrays because they are directly tied\n // to the opcode behavior above.\n\n\n len = this.children.length;\n\n for (var i = 0; i < len; i++) {\n if (!this.children[i].equals(other.children[i])) {\n return false;\n }\n }\n\n return true;\n },\n guid: 0,\n compile: function compile(program, options) {\n this.sourceNode = [];\n this.opcodes = [];\n this.children = [];\n this.options = options;\n this.stringParams = options.stringParams;\n this.trackIds = options.trackIds;\n options.blockParams = options.blockParams || [];\n options.knownHelpers = _utils.extend(Object.create(null), {\n helperMissing: true,\n blockHelperMissing: true,\n each: true,\n 'if': true,\n unless: true,\n 'with': true,\n log: true,\n lookup: true\n }, options.knownHelpers);\n return this.accept(program);\n },\n compileProgram: function compileProgram(program) {\n var childCompiler = new this.compiler(),\n // eslint-disable-line new-cap\n result = childCompiler.compile(program, this.options),\n guid = this.guid++;\n this.usePartial = this.usePartial || result.usePartial;\n this.children[guid] = result;\n this.useDepths = this.useDepths || result.useDepths;\n return guid;\n },\n accept: function accept(node) {\n /* istanbul ignore next: Sanity code */\n if (!this[node.type]) {\n throw new _exception2['default']('Unknown type: ' + node.type, node);\n }\n\n this.sourceNode.unshift(node);\n var ret = this[node.type](node);\n this.sourceNode.shift();\n return ret;\n },\n Program: function Program(program) {\n this.options.blockParams.unshift(program.blockParams);\n var body = program.body,\n bodyLength = body.length;\n\n for (var i = 0; i < bodyLength; i++) {\n this.accept(body[i]);\n }\n\n this.options.blockParams.shift();\n this.isSimple = bodyLength === 1;\n this.blockParams = program.blockParams ? program.blockParams.length : 0;\n return this;\n },\n BlockStatement: function BlockStatement(block) {\n transformLiteralToPath(block);\n var program = block.program,\n inverse = block.inverse;\n program = program && this.compileProgram(program);\n inverse = inverse && this.compileProgram(inverse);\n var type = this.classifySexpr(block);\n\n if (type === 'helper') {\n this.helperSexpr(block, program, inverse);\n } else if (type === 'simple') {\n this.simpleSexpr(block); // now that the simple mustache is resolved, we need to\n // evaluate it by executing `blockHelperMissing`\n\n this.opcode('pushProgram', program);\n this.opcode('pushProgram', inverse);\n this.opcode('emptyHash');\n this.opcode('blockValue', block.path.original);\n } else {\n this.ambiguousSexpr(block, program, inverse); // now that the simple mustache is resolved, we need to\n // evaluate it by executing `blockHelperMissing`\n\n this.opcode('pushProgram', program);\n this.opcode('pushProgram', inverse);\n this.opcode('emptyHash');\n this.opcode('ambiguousBlockValue');\n }\n\n this.opcode('append');\n },\n DecoratorBlock: function DecoratorBlock(decorator) {\n var program = decorator.program && this.compileProgram(decorator.program);\n var params = this.setupFullMustacheParams(decorator, program, undefined),\n path = decorator.path;\n this.useDecorators = true;\n this.opcode('registerDecorator', params.length, path.original);\n },\n PartialStatement: function PartialStatement(partial) {\n this.usePartial = true;\n var program = partial.program;\n\n if (program) {\n program = this.compileProgram(partial.program);\n }\n\n var params = partial.params;\n\n if (params.length > 1) {\n throw new _exception2['default']('Unsupported number of partial arguments: ' + params.length, partial);\n } else if (!params.length) {\n if (this.options.explicitPartialContext) {\n this.opcode('pushLiteral', 'undefined');\n } else {\n params.push({\n type: 'PathExpression',\n parts: [],\n depth: 0\n });\n }\n }\n\n var partialName = partial.name.original,\n isDynamic = partial.name.type === 'SubExpression';\n\n if (isDynamic) {\n this.accept(partial.name);\n }\n\n this.setupFullMustacheParams(partial, program, undefined, true);\n var indent = partial.indent || '';\n\n if (this.options.preventIndent && indent) {\n this.opcode('appendContent', indent);\n indent = '';\n }\n\n this.opcode('invokePartial', isDynamic, partialName, indent);\n this.opcode('append');\n },\n PartialBlockStatement: function PartialBlockStatement(partialBlock) {\n this.PartialStatement(partialBlock);\n },\n MustacheStatement: function MustacheStatement(mustache) {\n this.SubExpression(mustache);\n\n if (mustache.escaped && !this.options.noEscape) {\n this.opcode('appendEscaped');\n } else {\n this.opcode('append');\n }\n },\n Decorator: function Decorator(decorator) {\n this.DecoratorBlock(decorator);\n },\n ContentStatement: function ContentStatement(content) {\n if (content.value) {\n this.opcode('appendContent', content.value);\n }\n },\n CommentStatement: function CommentStatement() {},\n SubExpression: function SubExpression(sexpr) {\n transformLiteralToPath(sexpr);\n var type = this.classifySexpr(sexpr);\n\n if (type === 'simple') {\n this.simpleSexpr(sexpr);\n } else if (type === 'helper') {\n this.helperSexpr(sexpr);\n } else {\n this.ambiguousSexpr(sexpr);\n }\n },\n ambiguousSexpr: function ambiguousSexpr(sexpr, program, inverse) {\n var path = sexpr.path,\n name = path.parts[0],\n isBlock = program != null || inverse != null;\n this.opcode('getContext', path.depth);\n this.opcode('pushProgram', program);\n this.opcode('pushProgram', inverse);\n path.strict = true;\n this.accept(path);\n this.opcode('invokeAmbiguous', name, isBlock);\n },\n simpleSexpr: function simpleSexpr(sexpr) {\n var path = sexpr.path;\n path.strict = true;\n this.accept(path);\n this.opcode('resolvePossibleLambda');\n },\n helperSexpr: function helperSexpr(sexpr, program, inverse) {\n var params = this.setupFullMustacheParams(sexpr, program, inverse),\n path = sexpr.path,\n name = path.parts[0];\n\n if (this.options.knownHelpers[name]) {\n this.opcode('invokeKnownHelper', params.length, name);\n } else if (this.options.knownHelpersOnly) {\n throw new _exception2['default']('You specified knownHelpersOnly, but used the unknown helper ' + name, sexpr);\n } else {\n path.strict = true;\n path.falsy = true;\n this.accept(path);\n this.opcode('invokeHelper', params.length, path.original, _ast2['default'].helpers.simpleId(path));\n }\n },\n PathExpression: function PathExpression(path) {\n this.addDepth(path.depth);\n this.opcode('getContext', path.depth);\n\n var name = path.parts[0],\n scoped = _ast2['default'].helpers.scopedId(path),\n blockParamId = !path.depth && !scoped && this.blockParamIndex(name);\n\n if (blockParamId) {\n this.opcode('lookupBlockParam', blockParamId, path.parts);\n } else if (!name) {\n // Context reference, i.e. `{{foo .}}` or `{{foo ..}}`\n this.opcode('pushContext');\n } else if (path.data) {\n this.options.data = true;\n this.opcode('lookupData', path.depth, path.parts, path.strict);\n } else {\n this.opcode('lookupOnContext', path.parts, path.falsy, path.strict, scoped);\n }\n },\n StringLiteral: function StringLiteral(string) {\n this.opcode('pushString', string.value);\n },\n NumberLiteral: function NumberLiteral(number) {\n this.opcode('pushLiteral', number.value);\n },\n BooleanLiteral: function BooleanLiteral(bool) {\n this.opcode('pushLiteral', bool.value);\n },\n UndefinedLiteral: function UndefinedLiteral() {\n this.opcode('pushLiteral', 'undefined');\n },\n NullLiteral: function NullLiteral() {\n this.opcode('pushLiteral', 'null');\n },\n Hash: function Hash(hash) {\n var pairs = hash.pairs,\n i = 0,\n l = pairs.length;\n this.opcode('pushHash');\n\n for (; i < l; i++) {\n this.pushParam(pairs[i].value);\n }\n\n while (i--) {\n this.opcode('assignToHash', pairs[i].key);\n }\n\n this.opcode('popHash');\n },\n // HELPERS\n opcode: function opcode(name) {\n this.opcodes.push({\n opcode: name,\n args: slice.call(arguments, 1),\n loc: this.sourceNode[0].loc\n });\n },\n addDepth: function addDepth(depth) {\n if (!depth) {\n return;\n }\n\n this.useDepths = true;\n },\n classifySexpr: function classifySexpr(sexpr) {\n var isSimple = _ast2['default'].helpers.simpleId(sexpr.path);\n\n var isBlockParam = isSimple && !!this.blockParamIndex(sexpr.path.parts[0]); // a mustache is an eligible helper if:\n // * its id is simple (a single part, not `this` or `..`)\n\n var isHelper = !isBlockParam && _ast2['default'].helpers.helperExpression(sexpr); // if a mustache is an eligible helper but not a definite\n // helper, it is ambiguous, and will be resolved in a later\n // pass or at runtime.\n\n\n var isEligible = !isBlockParam && (isHelper || isSimple); // if ambiguous, we can possibly resolve the ambiguity now\n // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc.\n\n if (isEligible && !isHelper) {\n var _name = sexpr.path.parts[0],\n options = this.options;\n\n if (options.knownHelpers[_name]) {\n isHelper = true;\n } else if (options.knownHelpersOnly) {\n isEligible = false;\n }\n }\n\n if (isHelper) {\n return 'helper';\n } else if (isEligible) {\n return 'ambiguous';\n } else {\n return 'simple';\n }\n },\n pushParams: function pushParams(params) {\n for (var i = 0, l = params.length; i < l; i++) {\n this.pushParam(params[i]);\n }\n },\n pushParam: function pushParam(val) {\n var value = val.value != null ? val.value : val.original || '';\n\n if (this.stringParams) {\n if (value.replace) {\n value = value.replace(/^(\\.?\\.\\/)*/g, '').replace(/\\//g, '.');\n }\n\n if (val.depth) {\n this.addDepth(val.depth);\n }\n\n this.opcode('getContext', val.depth || 0);\n this.opcode('pushStringParam', value, val.type);\n\n if (val.type === 'SubExpression') {\n // SubExpressions get evaluated and passed in\n // in string params mode.\n this.accept(val);\n }\n } else {\n if (this.trackIds) {\n var blockParamIndex = undefined;\n\n if (val.parts && !_ast2['default'].helpers.scopedId(val) && !val.depth) {\n blockParamIndex = this.blockParamIndex(val.parts[0]);\n }\n\n if (blockParamIndex) {\n var blockParamChild = val.parts.slice(1).join('.');\n this.opcode('pushId', 'BlockParam', blockParamIndex, blockParamChild);\n } else {\n value = val.original || value;\n\n if (value.replace) {\n value = value.replace(/^this(?:\\.|$)/, '').replace(/^\\.\\//, '').replace(/^\\.$/, '');\n }\n\n this.opcode('pushId', val.type, value);\n }\n }\n\n this.accept(val);\n }\n },\n setupFullMustacheParams: function setupFullMustacheParams(sexpr, program, inverse, omitEmpty) {\n var params = sexpr.params;\n this.pushParams(params);\n this.opcode('pushProgram', program);\n this.opcode('pushProgram', inverse);\n\n if (sexpr.hash) {\n this.accept(sexpr.hash);\n } else {\n this.opcode('emptyHash', omitEmpty);\n }\n\n return params;\n },\n blockParamIndex: function blockParamIndex(name) {\n for (var depth = 0, len = this.options.blockParams.length; depth < len; depth++) {\n var blockParams = this.options.blockParams[depth],\n param = blockParams && _utils.indexOf(blockParams, name);\n\n if (blockParams && param >= 0) {\n return [depth, param];\n }\n }\n }\n};\n\nfunction precompile(input, options, env) {\n if (input == null || typeof input !== 'string' && input.type !== 'Program') {\n throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.precompile. You passed ' + input);\n }\n\n options = options || {};\n\n if (!('data' in options)) {\n options.data = true;\n }\n\n if (options.compat) {\n options.useDepths = true;\n }\n\n var ast = env.parse(input, options),\n environment = new env.Compiler().compile(ast, options);\n return new env.JavaScriptCompiler().compile(environment, options);\n}\n\nfunction compile(input, options, env) {\n if (options === undefined) options = {};\n\n if (input == null || typeof input !== 'string' && input.type !== 'Program') {\n throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input);\n }\n\n options = _utils.extend({}, options);\n\n if (!('data' in options)) {\n options.data = true;\n }\n\n if (options.compat) {\n options.useDepths = true;\n }\n\n var compiled = undefined;\n\n function compileInput() {\n var ast = env.parse(input, options),\n environment = new env.Compiler().compile(ast, options),\n templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true);\n return env.template(templateSpec);\n } // Template is only compiled on first use and cached after that point.\n\n\n function ret(context, execOptions) {\n if (!compiled) {\n compiled = compileInput();\n }\n\n return compiled.call(this, context, execOptions);\n }\n\n ret._setup = function (setupOptions) {\n if (!compiled) {\n compiled = compileInput();\n }\n\n return compiled._setup(setupOptions);\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (!compiled) {\n compiled = compileInput();\n }\n\n return compiled._child(i, data, blockParams, depths);\n };\n\n return ret;\n}\n\nfunction argEquals(a, b) {\n if (a === b) {\n return true;\n }\n\n if (_utils.isArray(a) && _utils.isArray(b) && a.length === b.length) {\n for (var i = 0; i < a.length; i++) {\n if (!argEquals(a[i], b[i])) {\n return false;\n }\n }\n\n return true;\n }\n}\n\nfunction transformLiteralToPath(sexpr) {\n if (!sexpr.path.parts) {\n var literal = sexpr.path; // Casting to string here to make false and 0 literal values play nicely with the rest\n // of the system.\n\n sexpr.path = {\n type: 'PathExpression',\n data: false,\n depth: 0,\n parts: [literal.original + ''],\n original: literal.original + '',\n loc: literal.loc\n };\n }\n}","'use strict';\n\nexports.__esModule = true; // istanbul ignore next\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _base = require('../base');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _utils = require('../utils');\n\nvar _codeGen = require('./code-gen');\n\nvar _codeGen2 = _interopRequireDefault(_codeGen);\n\nfunction Literal(value) {\n this.value = value;\n}\n\nfunction JavaScriptCompiler() {}\n\nJavaScriptCompiler.prototype = {\n // PUBLIC API: You can override these methods in a subclass to provide\n // alternative compiled forms for name lookup and buffering semantics\n nameLookup: function nameLookup(parent, name\n /*, type */\n ) {\n return this.internalNameLookup(parent, name);\n },\n depthedLookup: function depthedLookup(name) {\n return [this.aliasable('container.lookup'), '(depths, ', JSON.stringify(name), ')'];\n },\n compilerInfo: function compilerInfo() {\n var revision = _base.COMPILER_REVISION,\n versions = _base.REVISION_CHANGES[revision];\n return [revision, versions];\n },\n appendToBuffer: function appendToBuffer(source, location, explicit) {\n // Force a source as this simplifies the merge logic.\n if (!_utils.isArray(source)) {\n source = [source];\n }\n\n source = this.source.wrap(source, location);\n\n if (this.environment.isSimple) {\n return ['return ', source, ';'];\n } else if (explicit) {\n // This is a case where the buffer operation occurs as a child of another\n // construct, generally braces. We have to explicitly output these buffer\n // operations to ensure that the emitted code goes in the correct location.\n return ['buffer += ', source, ';'];\n } else {\n source.appendToBuffer = true;\n return source;\n }\n },\n initializeBuffer: function initializeBuffer() {\n return this.quotedString('');\n },\n // END PUBLIC API\n internalNameLookup: function internalNameLookup(parent, name) {\n this.lookupPropertyFunctionIsUsed = true;\n return ['lookupProperty(', parent, ',', JSON.stringify(name), ')'];\n },\n lookupPropertyFunctionIsUsed: false,\n compile: function compile(environment, options, context, asObject) {\n this.environment = environment;\n this.options = options;\n this.stringParams = this.options.stringParams;\n this.trackIds = this.options.trackIds;\n this.precompile = !asObject;\n this.name = this.environment.name;\n this.isChild = !!context;\n this.context = context || {\n decorators: [],\n programs: [],\n environments: []\n };\n this.preamble();\n this.stackSlot = 0;\n this.stackVars = [];\n this.aliases = {};\n this.registers = {\n list: []\n };\n this.hashes = [];\n this.compileStack = [];\n this.inlineStack = [];\n this.blockParams = [];\n this.compileChildren(environment, options);\n this.useDepths = this.useDepths || environment.useDepths || environment.useDecorators || this.options.compat;\n this.useBlockParams = this.useBlockParams || environment.useBlockParams;\n var opcodes = environment.opcodes,\n opcode = undefined,\n firstLoc = undefined,\n i = undefined,\n l = undefined;\n\n for (i = 0, l = opcodes.length; i < l; i++) {\n opcode = opcodes[i];\n this.source.currentLocation = opcode.loc;\n firstLoc = firstLoc || opcode.loc;\n this[opcode.opcode].apply(this, opcode.args);\n } // Flush any trailing content that might be pending.\n\n\n this.source.currentLocation = firstLoc;\n this.pushSource('');\n /* istanbul ignore next */\n\n if (this.stackSlot || this.inlineStack.length || this.compileStack.length) {\n throw new _exception2['default']('Compile completed with content left on stack');\n }\n\n if (!this.decorators.isEmpty()) {\n this.useDecorators = true;\n this.decorators.prepend(['var decorators = container.decorators, ', this.lookupPropertyFunctionVarDeclaration(), ';\\n']);\n this.decorators.push('return fn;');\n\n if (asObject) {\n this.decorators = Function.apply(this, ['fn', 'props', 'container', 'depth0', 'data', 'blockParams', 'depths', this.decorators.merge()]);\n } else {\n this.decorators.prepend('function(fn, props, container, depth0, data, blockParams, depths) {\\n');\n this.decorators.push('}\\n');\n this.decorators = this.decorators.merge();\n }\n } else {\n this.decorators = undefined;\n }\n\n var fn = this.createFunctionContext(asObject);\n\n if (!this.isChild) {\n var ret = {\n compiler: this.compilerInfo(),\n main: fn\n };\n\n if (this.decorators) {\n ret.main_d = this.decorators; // eslint-disable-line camelcase\n\n ret.useDecorators = true;\n }\n\n var _context = this.context;\n var programs = _context.programs;\n var decorators = _context.decorators;\n\n for (i = 0, l = programs.length; i < l; i++) {\n if (programs[i]) {\n ret[i] = programs[i];\n\n if (decorators[i]) {\n ret[i + '_d'] = decorators[i];\n ret.useDecorators = true;\n }\n }\n }\n\n if (this.environment.usePartial) {\n ret.usePartial = true;\n }\n\n if (this.options.data) {\n ret.useData = true;\n }\n\n if (this.useDepths) {\n ret.useDepths = true;\n }\n\n if (this.useBlockParams) {\n ret.useBlockParams = true;\n }\n\n if (this.options.compat) {\n ret.compat = true;\n }\n\n if (!asObject) {\n ret.compiler = JSON.stringify(ret.compiler);\n this.source.currentLocation = {\n start: {\n line: 1,\n column: 0\n }\n };\n ret = this.objectLiteral(ret);\n\n if (options.srcName) {\n ret = ret.toStringWithSourceMap({\n file: options.destName\n });\n ret.map = ret.map && ret.map.toString();\n } else {\n ret = ret.toString();\n }\n } else {\n ret.compilerOptions = this.options;\n }\n\n return ret;\n } else {\n return fn;\n }\n },\n preamble: function preamble() {\n // track the last context pushed into place to allow skipping the\n // getContext opcode when it would be a noop\n this.lastContext = 0;\n this.source = new _codeGen2['default'](this.options.srcName);\n this.decorators = new _codeGen2['default'](this.options.srcName);\n },\n createFunctionContext: function createFunctionContext(asObject) {\n // istanbul ignore next\n var _this = this;\n\n var varDeclarations = '';\n var locals = this.stackVars.concat(this.registers.list);\n\n if (locals.length > 0) {\n varDeclarations += ', ' + locals.join(', ');\n } // Generate minimizer alias mappings\n //\n // When using true SourceNodes, this will update all references to the given alias\n // as the source nodes are reused in situ. For the non-source node compilation mode,\n // aliases will not be used, but this case is already being run on the client and\n // we aren't concern about minimizing the template size.\n\n\n var aliasCount = 0;\n Object.keys(this.aliases).forEach(function (alias) {\n var node = _this.aliases[alias];\n\n if (node.children && node.referenceCount > 1) {\n varDeclarations += ', alias' + ++aliasCount + '=' + alias;\n node.children[0] = 'alias' + aliasCount;\n }\n });\n\n if (this.lookupPropertyFunctionIsUsed) {\n varDeclarations += ', ' + this.lookupPropertyFunctionVarDeclaration();\n }\n\n var params = ['container', 'depth0', 'helpers', 'partials', 'data'];\n\n if (this.useBlockParams || this.useDepths) {\n params.push('blockParams');\n }\n\n if (this.useDepths) {\n params.push('depths');\n } // Perform a second pass over the output to merge content when possible\n\n\n var source = this.mergeSource(varDeclarations);\n\n if (asObject) {\n params.push(source);\n return Function.apply(this, params);\n } else {\n return this.source.wrap(['function(', params.join(','), ') {\\n ', source, '}']);\n }\n },\n mergeSource: function mergeSource(varDeclarations) {\n var isSimple = this.environment.isSimple,\n appendOnly = !this.forceBuffer,\n appendFirst = undefined,\n sourceSeen = undefined,\n bufferStart = undefined,\n bufferEnd = undefined;\n this.source.each(function (line) {\n if (line.appendToBuffer) {\n if (bufferStart) {\n line.prepend(' + ');\n } else {\n bufferStart = line;\n }\n\n bufferEnd = line;\n } else {\n if (bufferStart) {\n if (!sourceSeen) {\n appendFirst = true;\n } else {\n bufferStart.prepend('buffer += ');\n }\n\n bufferEnd.add(';');\n bufferStart = bufferEnd = undefined;\n }\n\n sourceSeen = true;\n\n if (!isSimple) {\n appendOnly = false;\n }\n }\n });\n\n if (appendOnly) {\n if (bufferStart) {\n bufferStart.prepend('return ');\n bufferEnd.add(';');\n } else if (!sourceSeen) {\n this.source.push('return \"\";');\n }\n } else {\n varDeclarations += ', buffer = ' + (appendFirst ? '' : this.initializeBuffer());\n\n if (bufferStart) {\n bufferStart.prepend('return buffer + ');\n bufferEnd.add(';');\n } else {\n this.source.push('return buffer;');\n }\n }\n\n if (varDeclarations) {\n this.source.prepend('var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\\n'));\n }\n\n return this.source.merge();\n },\n lookupPropertyFunctionVarDeclaration: function lookupPropertyFunctionVarDeclaration() {\n return '\\n lookupProperty = container.lookupProperty || function(parent, propertyName) {\\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\\n return parent[propertyName];\\n }\\n return undefined\\n }\\n '.trim();\n },\n // [blockValue]\n //\n // On stack, before: hash, inverse, program, value\n // On stack, after: return value of blockHelperMissing\n //\n // The purpose of this opcode is to take a block of the form\n // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and\n // replace it on the stack with the result of properly\n // invoking blockHelperMissing.\n blockValue: function blockValue(name) {\n var blockHelperMissing = this.aliasable('container.hooks.blockHelperMissing'),\n params = [this.contextName(0)];\n this.setupHelperArgs(name, 0, params);\n var blockName = this.popStack();\n params.splice(1, 0, blockName);\n this.push(this.source.functionCall(blockHelperMissing, 'call', params));\n },\n // [ambiguousBlockValue]\n //\n // On stack, before: hash, inverse, program, value\n // Compiler value, before: lastHelper=value of last found helper, if any\n // On stack, after, if no lastHelper: same as [blockValue]\n // On stack, after, if lastHelper: value\n ambiguousBlockValue: function ambiguousBlockValue() {\n // We're being a bit cheeky and reusing the options value from the prior exec\n var blockHelperMissing = this.aliasable('container.hooks.blockHelperMissing'),\n params = [this.contextName(0)];\n this.setupHelperArgs('', 0, params, true);\n this.flushInline();\n var current = this.topStack();\n params.splice(1, 0, current);\n this.pushSource(['if (!', this.lastHelper, ') { ', current, ' = ', this.source.functionCall(blockHelperMissing, 'call', params), '}']);\n },\n // [appendContent]\n //\n // On stack, before: ...\n // On stack, after: ...\n //\n // Appends the string value of `content` to the current buffer\n appendContent: function appendContent(content) {\n if (this.pendingContent) {\n content = this.pendingContent + content;\n } else {\n this.pendingLocation = this.source.currentLocation;\n }\n\n this.pendingContent = content;\n },\n // [append]\n //\n // On stack, before: value, ...\n // On stack, after: ...\n //\n // Coerces `value` to a String and appends it to the current buffer.\n //\n // If `value` is truthy, or 0, it is coerced into a string and appended\n // Otherwise, the empty string is appended\n append: function append() {\n if (this.isInline()) {\n this.replaceStack(function (current) {\n return [' != null ? ', current, ' : \"\"'];\n });\n this.pushSource(this.appendToBuffer(this.popStack()));\n } else {\n var local = this.popStack();\n this.pushSource(['if (', local, ' != null) { ', this.appendToBuffer(local, undefined, true), ' }']);\n\n if (this.environment.isSimple) {\n this.pushSource(['else { ', this.appendToBuffer(\"''\", undefined, true), ' }']);\n }\n }\n },\n // [appendEscaped]\n //\n // On stack, before: value, ...\n // On stack, after: ...\n //\n // Escape `value` and append it to the buffer\n appendEscaped: function appendEscaped() {\n this.pushSource(this.appendToBuffer([this.aliasable('container.escapeExpression'), '(', this.popStack(), ')']));\n },\n // [getContext]\n //\n // On stack, before: ...\n // On stack, after: ...\n // Compiler value, after: lastContext=depth\n //\n // Set the value of the `lastContext` compiler value to the depth\n getContext: function getContext(depth) {\n this.lastContext = depth;\n },\n // [pushContext]\n //\n // On stack, before: ...\n // On stack, after: currentContext, ...\n //\n // Pushes the value of the current context onto the stack.\n pushContext: function pushContext() {\n this.pushStackLiteral(this.contextName(this.lastContext));\n },\n // [lookupOnContext]\n //\n // On stack, before: ...\n // On stack, after: currentContext[name], ...\n //\n // Looks up the value of `name` on the current context and pushes\n // it onto the stack.\n lookupOnContext: function lookupOnContext(parts, falsy, strict, scoped) {\n var i = 0;\n\n if (!scoped && this.options.compat && !this.lastContext) {\n // The depthed query is expected to handle the undefined logic for the root level that\n // is implemented below, so we evaluate that directly in compat mode\n this.push(this.depthedLookup(parts[i++]));\n } else {\n this.pushContext();\n }\n\n this.resolvePath('context', parts, i, falsy, strict);\n },\n // [lookupBlockParam]\n //\n // On stack, before: ...\n // On stack, after: blockParam[name], ...\n //\n // Looks up the value of `parts` on the given block param and pushes\n // it onto the stack.\n lookupBlockParam: function lookupBlockParam(blockParamId, parts) {\n this.useBlockParams = true;\n this.push(['blockParams[', blockParamId[0], '][', blockParamId[1], ']']);\n this.resolvePath('context', parts, 1);\n },\n // [lookupData]\n //\n // On stack, before: ...\n // On stack, after: data, ...\n //\n // Push the data lookup operator\n lookupData: function lookupData(depth, parts, strict) {\n if (!depth) {\n this.pushStackLiteral('data');\n } else {\n this.pushStackLiteral('container.data(data, ' + depth + ')');\n }\n\n this.resolvePath('data', parts, 0, true, strict);\n },\n resolvePath: function resolvePath(type, parts, i, falsy, strict) {\n // istanbul ignore next\n var _this2 = this;\n\n if (this.options.strict || this.options.assumeObjects) {\n this.push(strictLookup(this.options.strict && strict, this, parts, type));\n return;\n }\n\n var len = parts.length;\n\n for (; i < len; i++) {\n /* eslint-disable no-loop-func */\n this.replaceStack(function (current) {\n var lookup = _this2.nameLookup(current, parts[i], type); // We want to ensure that zero and false are handled properly if the context (falsy flag)\n // needs to have the special handling for these values.\n\n\n if (!falsy) {\n return [' != null ? ', lookup, ' : ', current];\n } else {\n // Otherwise we can use generic falsy handling\n return [' && ', lookup];\n }\n });\n /* eslint-enable no-loop-func */\n }\n },\n // [resolvePossibleLambda]\n //\n // On stack, before: value, ...\n // On stack, after: resolved value, ...\n //\n // If the `value` is a lambda, replace it on the stack by\n // the return value of the lambda\n resolvePossibleLambda: function resolvePossibleLambda() {\n this.push([this.aliasable('container.lambda'), '(', this.popStack(), ', ', this.contextName(0), ')']);\n },\n // [pushStringParam]\n //\n // On stack, before: ...\n // On stack, after: string, currentContext, ...\n //\n // This opcode is designed for use in string mode, which\n // provides the string value of a parameter along with its\n // depth rather than resolving it immediately.\n pushStringParam: function pushStringParam(string, type) {\n this.pushContext();\n this.pushString(type); // If it's a subexpression, the string result\n // will be pushed after this opcode.\n\n if (type !== 'SubExpression') {\n if (typeof string === 'string') {\n this.pushString(string);\n } else {\n this.pushStackLiteral(string);\n }\n }\n },\n emptyHash: function emptyHash(omitEmpty) {\n if (this.trackIds) {\n this.push('{}'); // hashIds\n }\n\n if (this.stringParams) {\n this.push('{}'); // hashContexts\n\n this.push('{}'); // hashTypes\n }\n\n this.pushStackLiteral(omitEmpty ? 'undefined' : '{}');\n },\n pushHash: function pushHash() {\n if (this.hash) {\n this.hashes.push(this.hash);\n }\n\n this.hash = {\n values: {},\n types: [],\n contexts: [],\n ids: []\n };\n },\n popHash: function popHash() {\n var hash = this.hash;\n this.hash = this.hashes.pop();\n\n if (this.trackIds) {\n this.push(this.objectLiteral(hash.ids));\n }\n\n if (this.stringParams) {\n this.push(this.objectLiteral(hash.contexts));\n this.push(this.objectLiteral(hash.types));\n }\n\n this.push(this.objectLiteral(hash.values));\n },\n // [pushString]\n //\n // On stack, before: ...\n // On stack, after: quotedString(string), ...\n //\n // Push a quoted version of `string` onto the stack\n pushString: function pushString(string) {\n this.pushStackLiteral(this.quotedString(string));\n },\n // [pushLiteral]\n //\n // On stack, before: ...\n // On stack, after: value, ...\n //\n // Pushes a value onto the stack. This operation prevents\n // the compiler from creating a temporary variable to hold\n // it.\n pushLiteral: function pushLiteral(value) {\n this.pushStackLiteral(value);\n },\n // [pushProgram]\n //\n // On stack, before: ...\n // On stack, after: program(guid), ...\n //\n // Push a program expression onto the stack. This takes\n // a compile-time guid and converts it into a runtime-accessible\n // expression.\n pushProgram: function pushProgram(guid) {\n if (guid != null) {\n this.pushStackLiteral(this.programExpression(guid));\n } else {\n this.pushStackLiteral(null);\n }\n },\n // [registerDecorator]\n //\n // On stack, before: hash, program, params..., ...\n // On stack, after: ...\n //\n // Pops off the decorator's parameters, invokes the decorator,\n // and inserts the decorator into the decorators list.\n registerDecorator: function registerDecorator(paramSize, name) {\n var foundDecorator = this.nameLookup('decorators', name, 'decorator'),\n options = this.setupHelperArgs(name, paramSize);\n this.decorators.push(['fn = ', this.decorators.functionCall(foundDecorator, '', ['fn', 'props', 'container', options]), ' || fn;']);\n },\n // [invokeHelper]\n //\n // On stack, before: hash, inverse, program, params..., ...\n // On stack, after: result of helper invocation\n //\n // Pops off the helper's parameters, invokes the helper,\n // and pushes the helper's return value onto the stack.\n //\n // If the helper is not found, `helperMissing` is called.\n invokeHelper: function invokeHelper(paramSize, name, isSimple) {\n var nonHelper = this.popStack(),\n helper = this.setupHelper(paramSize, name);\n var possibleFunctionCalls = [];\n\n if (isSimple) {\n // direct call to helper\n possibleFunctionCalls.push(helper.name);\n } // call a function from the input object\n\n\n possibleFunctionCalls.push(nonHelper);\n\n if (!this.options.strict) {\n possibleFunctionCalls.push(this.aliasable('container.hooks.helperMissing'));\n }\n\n var functionLookupCode = ['(', this.itemsSeparatedBy(possibleFunctionCalls, '||'), ')'];\n var functionCall = this.source.functionCall(functionLookupCode, 'call', helper.callParams);\n this.push(functionCall);\n },\n itemsSeparatedBy: function itemsSeparatedBy(items, separator) {\n var result = [];\n result.push(items[0]);\n\n for (var i = 1; i < items.length; i++) {\n result.push(separator, items[i]);\n }\n\n return result;\n },\n // [invokeKnownHelper]\n //\n // On stack, before: hash, inverse, program, params..., ...\n // On stack, after: result of helper invocation\n //\n // This operation is used when the helper is known to exist,\n // so a `helperMissing` fallback is not required.\n invokeKnownHelper: function invokeKnownHelper(paramSize, name) {\n var helper = this.setupHelper(paramSize, name);\n this.push(this.source.functionCall(helper.name, 'call', helper.callParams));\n },\n // [invokeAmbiguous]\n //\n // On stack, before: hash, inverse, program, params..., ...\n // On stack, after: result of disambiguation\n //\n // This operation is used when an expression like `{{foo}}`\n // is provided, but we don't know at compile-time whether it\n // is a helper or a path.\n //\n // This operation emits more code than the other options,\n // and can be avoided by passing the `knownHelpers` and\n // `knownHelpersOnly` flags at compile-time.\n invokeAmbiguous: function invokeAmbiguous(name, helperCall) {\n this.useRegister('helper');\n var nonHelper = this.popStack();\n this.emptyHash();\n var helper = this.setupHelper(0, name, helperCall);\n var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');\n var lookup = ['(', '(helper = ', helperName, ' || ', nonHelper, ')'];\n\n if (!this.options.strict) {\n lookup[0] = '(helper = ';\n lookup.push(' != null ? helper : ', this.aliasable('container.hooks.helperMissing'));\n }\n\n this.push(['(', lookup, helper.paramsInit ? ['),(', helper.paramsInit] : [], '),', '(typeof helper === ', this.aliasable('\"function\"'), ' ? ', this.source.functionCall('helper', 'call', helper.callParams), ' : helper))']);\n },\n // [invokePartial]\n //\n // On stack, before: context, ...\n // On stack after: result of partial invocation\n //\n // This operation pops off a context, invokes a partial with that context,\n // and pushes the result of the invocation back.\n invokePartial: function invokePartial(isDynamic, name, indent) {\n var params = [],\n options = this.setupParams(name, 1, params);\n\n if (isDynamic) {\n name = this.popStack();\n delete options.name;\n }\n\n if (indent) {\n options.indent = JSON.stringify(indent);\n }\n\n options.helpers = 'helpers';\n options.partials = 'partials';\n options.decorators = 'container.decorators';\n\n if (!isDynamic) {\n params.unshift(this.nameLookup('partials', name, 'partial'));\n } else {\n params.unshift(name);\n }\n\n if (this.options.compat) {\n options.depths = 'depths';\n }\n\n options = this.objectLiteral(options);\n params.push(options);\n this.push(this.source.functionCall('container.invokePartial', '', params));\n },\n // [assignToHash]\n //\n // On stack, before: value, ..., hash, ...\n // On stack, after: ..., hash, ...\n //\n // Pops a value off the stack and assigns it to the current hash\n assignToHash: function assignToHash(key) {\n var value = this.popStack(),\n context = undefined,\n type = undefined,\n id = undefined;\n\n if (this.trackIds) {\n id = this.popStack();\n }\n\n if (this.stringParams) {\n type = this.popStack();\n context = this.popStack();\n }\n\n var hash = this.hash;\n\n if (context) {\n hash.contexts[key] = context;\n }\n\n if (type) {\n hash.types[key] = type;\n }\n\n if (id) {\n hash.ids[key] = id;\n }\n\n hash.values[key] = value;\n },\n pushId: function pushId(type, name, child) {\n if (type === 'BlockParam') {\n this.pushStackLiteral('blockParams[' + name[0] + '].path[' + name[1] + ']' + (child ? ' + ' + JSON.stringify('.' + child) : ''));\n } else if (type === 'PathExpression') {\n this.pushString(name);\n } else if (type === 'SubExpression') {\n this.pushStackLiteral('true');\n } else {\n this.pushStackLiteral('null');\n }\n },\n // HELPERS\n compiler: JavaScriptCompiler,\n compileChildren: function compileChildren(environment, options) {\n var children = environment.children,\n child = undefined,\n compiler = undefined;\n\n for (var i = 0, l = children.length; i < l; i++) {\n child = children[i];\n compiler = new this.compiler(); // eslint-disable-line new-cap\n\n var existing = this.matchExistingProgram(child);\n\n if (existing == null) {\n this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children\n\n var index = this.context.programs.length;\n child.index = index;\n child.name = 'program' + index;\n this.context.programs[index] = compiler.compile(child, options, this.context, !this.precompile);\n this.context.decorators[index] = compiler.decorators;\n this.context.environments[index] = child;\n this.useDepths = this.useDepths || compiler.useDepths;\n this.useBlockParams = this.useBlockParams || compiler.useBlockParams;\n child.useDepths = this.useDepths;\n child.useBlockParams = this.useBlockParams;\n } else {\n child.index = existing.index;\n child.name = 'program' + existing.index;\n this.useDepths = this.useDepths || existing.useDepths;\n this.useBlockParams = this.useBlockParams || existing.useBlockParams;\n }\n }\n },\n matchExistingProgram: function matchExistingProgram(child) {\n for (var i = 0, len = this.context.environments.length; i < len; i++) {\n var environment = this.context.environments[i];\n\n if (environment && environment.equals(child)) {\n return environment;\n }\n }\n },\n programExpression: function programExpression(guid) {\n var child = this.environment.children[guid],\n programParams = [child.index, 'data', child.blockParams];\n\n if (this.useBlockParams || this.useDepths) {\n programParams.push('blockParams');\n }\n\n if (this.useDepths) {\n programParams.push('depths');\n }\n\n return 'container.program(' + programParams.join(', ') + ')';\n },\n useRegister: function useRegister(name) {\n if (!this.registers[name]) {\n this.registers[name] = true;\n this.registers.list.push(name);\n }\n },\n push: function push(expr) {\n if (!(expr instanceof Literal)) {\n expr = this.source.wrap(expr);\n }\n\n this.inlineStack.push(expr);\n return expr;\n },\n pushStackLiteral: function pushStackLiteral(item) {\n this.push(new Literal(item));\n },\n pushSource: function pushSource(source) {\n if (this.pendingContent) {\n this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent), this.pendingLocation));\n this.pendingContent = undefined;\n }\n\n if (source) {\n this.source.push(source);\n }\n },\n replaceStack: function replaceStack(callback) {\n var prefix = ['('],\n stack = undefined,\n createdStack = undefined,\n usedLiteral = undefined;\n /* istanbul ignore next */\n\n if (!this.isInline()) {\n throw new _exception2['default']('replaceStack on non-inline');\n } // We want to merge the inline statement into the replacement statement via ','\n\n\n var top = this.popStack(true);\n\n if (top instanceof Literal) {\n // Literals do not need to be inlined\n stack = [top.value];\n prefix = ['(', stack];\n usedLiteral = true;\n } else {\n // Get or create the current stack name for use by the inline\n createdStack = true;\n\n var _name = this.incrStack();\n\n prefix = ['((', this.push(_name), ' = ', top, ')'];\n stack = this.topStack();\n }\n\n var item = callback.call(this, stack);\n\n if (!usedLiteral) {\n this.popStack();\n }\n\n if (createdStack) {\n this.stackSlot--;\n }\n\n this.push(prefix.concat(item, ')'));\n },\n incrStack: function incrStack() {\n this.stackSlot++;\n\n if (this.stackSlot > this.stackVars.length) {\n this.stackVars.push('stack' + this.stackSlot);\n }\n\n return this.topStackName();\n },\n topStackName: function topStackName() {\n return 'stack' + this.stackSlot;\n },\n flushInline: function flushInline() {\n var inlineStack = this.inlineStack;\n this.inlineStack = [];\n\n for (var i = 0, len = inlineStack.length; i < len; i++) {\n var entry = inlineStack[i];\n /* istanbul ignore if */\n\n if (entry instanceof Literal) {\n this.compileStack.push(entry);\n } else {\n var stack = this.incrStack();\n this.pushSource([stack, ' = ', entry, ';']);\n this.compileStack.push(stack);\n }\n }\n },\n isInline: function isInline() {\n return this.inlineStack.length;\n },\n popStack: function popStack(wrapped) {\n var inline = this.isInline(),\n item = (inline ? this.inlineStack : this.compileStack).pop();\n\n if (!wrapped && item instanceof Literal) {\n return item.value;\n } else {\n if (!inline) {\n /* istanbul ignore next */\n if (!this.stackSlot) {\n throw new _exception2['default']('Invalid stack pop');\n }\n\n this.stackSlot--;\n }\n\n return item;\n }\n },\n topStack: function topStack() {\n var stack = this.isInline() ? this.inlineStack : this.compileStack,\n item = stack[stack.length - 1];\n /* istanbul ignore if */\n\n if (item instanceof Literal) {\n return item.value;\n } else {\n return item;\n }\n },\n contextName: function contextName(context) {\n if (this.useDepths && context) {\n return 'depths[' + context + ']';\n } else {\n return 'depth' + context;\n }\n },\n quotedString: function quotedString(str) {\n return this.source.quotedString(str);\n },\n objectLiteral: function objectLiteral(obj) {\n return this.source.objectLiteral(obj);\n },\n aliasable: function aliasable(name) {\n var ret = this.aliases[name];\n\n if (ret) {\n ret.referenceCount++;\n return ret;\n }\n\n ret = this.aliases[name] = this.source.wrap(name);\n ret.aliasable = true;\n ret.referenceCount = 1;\n return ret;\n },\n setupHelper: function setupHelper(paramSize, name, blockHelper) {\n var params = [],\n paramsInit = this.setupHelperArgs(name, paramSize, params, blockHelper);\n var foundHelper = this.nameLookup('helpers', name, 'helper'),\n callContext = this.aliasable(this.contextName(0) + ' != null ? ' + this.contextName(0) + ' : (container.nullContext || {})');\n return {\n params: params,\n paramsInit: paramsInit,\n name: foundHelper,\n callParams: [callContext].concat(params)\n };\n },\n setupParams: function setupParams(helper, paramSize, params) {\n var options = {},\n contexts = [],\n types = [],\n ids = [],\n objectArgs = !params,\n param = undefined;\n\n if (objectArgs) {\n params = [];\n }\n\n options.name = this.quotedString(helper);\n options.hash = this.popStack();\n\n if (this.trackIds) {\n options.hashIds = this.popStack();\n }\n\n if (this.stringParams) {\n options.hashTypes = this.popStack();\n options.hashContexts = this.popStack();\n }\n\n var inverse = this.popStack(),\n program = this.popStack(); // Avoid setting fn and inverse if neither are set. This allows\n // helpers to do a check for `if (options.fn)`\n\n if (program || inverse) {\n options.fn = program || 'container.noop';\n options.inverse = inverse || 'container.noop';\n } // The parameters go on to the stack in order (making sure that they are evaluated in order)\n // so we need to pop them off the stack in reverse order\n\n\n var i = paramSize;\n\n while (i--) {\n param = this.popStack();\n params[i] = param;\n\n if (this.trackIds) {\n ids[i] = this.popStack();\n }\n\n if (this.stringParams) {\n types[i] = this.popStack();\n contexts[i] = this.popStack();\n }\n }\n\n if (objectArgs) {\n options.args = this.source.generateArray(params);\n }\n\n if (this.trackIds) {\n options.ids = this.source.generateArray(ids);\n }\n\n if (this.stringParams) {\n options.types = this.source.generateArray(types);\n options.contexts = this.source.generateArray(contexts);\n }\n\n if (this.options.data) {\n options.data = 'data';\n }\n\n if (this.useBlockParams) {\n options.blockParams = 'blockParams';\n }\n\n return options;\n },\n setupHelperArgs: function setupHelperArgs(helper, paramSize, params, useRegister) {\n var options = this.setupParams(helper, paramSize, params);\n options.loc = JSON.stringify(this.source.currentLocation);\n options = this.objectLiteral(options);\n\n if (useRegister) {\n this.useRegister('options');\n params.push('options');\n return ['options=', options];\n } else if (params) {\n params.push(options);\n return '';\n } else {\n return options;\n }\n }\n};\n\n(function () {\n var reservedWords = ('break else new var' + ' case finally return void' + ' catch for switch while' + ' continue function this with' + ' default if throw' + ' delete in try' + ' do instanceof typeof' + ' abstract enum int short' + ' boolean export interface static' + ' byte extends long super' + ' char final native synchronized' + ' class float package throws' + ' const goto private transient' + ' debugger implements protected volatile' + ' double import public let yield await' + ' null true false').split(' ');\n var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};\n\n for (var i = 0, l = reservedWords.length; i < l; i++) {\n compilerWords[reservedWords[i]] = true;\n }\n})();\n/**\n * @deprecated May be removed in the next major version\n */\n\n\nJavaScriptCompiler.isValidJavaScriptVariableName = function (name) {\n return !JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name);\n};\n\nfunction strictLookup(requireTerminal, compiler, parts, type) {\n var stack = compiler.popStack(),\n i = 0,\n len = parts.length;\n\n if (requireTerminal) {\n len--;\n }\n\n for (; i < len; i++) {\n stack = compiler.nameLookup(stack, parts[i], type);\n }\n\n if (requireTerminal) {\n return [compiler.aliasable('container.strict'), '(', stack, ', ', compiler.quotedString(parts[i]), ', ', JSON.stringify(compiler.source.currentLocation), ' )'];\n } else {\n return stack;\n }\n}\n\nexports['default'] = JavaScriptCompiler;\nmodule.exports = exports['default'];","/* global define */\n'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nvar SourceNode = undefined;\n\ntry {\n /* istanbul ignore next */\n if (typeof define !== 'function' || !define.amd) {\n // We don't support this in AMD environments. For these environments, we asusme that\n // they are running on the browser and thus have no need for the source-map library.\n var SourceMap = require('source-map');\n\n SourceNode = SourceMap.SourceNode;\n }\n} catch (err) {}\n/* NOP */\n\n/* istanbul ignore if: tested but not covered in istanbul due to dist build */\n\n\nif (!SourceNode) {\n SourceNode = function SourceNode(line, column, srcFile, chunks) {\n this.src = '';\n\n if (chunks) {\n this.add(chunks);\n }\n };\n /* istanbul ignore next */\n\n\n SourceNode.prototype = {\n add: function add(chunks) {\n if (_utils.isArray(chunks)) {\n chunks = chunks.join('');\n }\n\n this.src += chunks;\n },\n prepend: function prepend(chunks) {\n if (_utils.isArray(chunks)) {\n chunks = chunks.join('');\n }\n\n this.src = chunks + this.src;\n },\n toStringWithSourceMap: function toStringWithSourceMap() {\n return {\n code: this.toString()\n };\n },\n toString: function toString() {\n return this.src;\n }\n };\n}\n\nfunction castChunk(chunk, codeGen, loc) {\n if (_utils.isArray(chunk)) {\n var ret = [];\n\n for (var i = 0, len = chunk.length; i < len; i++) {\n ret.push(codeGen.wrap(chunk[i], loc));\n }\n\n return ret;\n } else if (typeof chunk === 'boolean' || typeof chunk === 'number') {\n // Handle primitives that the SourceNode will throw up on\n return chunk + '';\n }\n\n return chunk;\n}\n\nfunction CodeGen(srcFile) {\n this.srcFile = srcFile;\n this.source = [];\n}\n\nCodeGen.prototype = {\n isEmpty: function isEmpty() {\n return !this.source.length;\n },\n prepend: function prepend(source, loc) {\n this.source.unshift(this.wrap(source, loc));\n },\n push: function push(source, loc) {\n this.source.push(this.wrap(source, loc));\n },\n merge: function merge() {\n var source = this.empty();\n this.each(function (line) {\n source.add([' ', line, '\\n']);\n });\n return source;\n },\n each: function each(iter) {\n for (var i = 0, len = this.source.length; i < len; i++) {\n iter(this.source[i]);\n }\n },\n empty: function empty() {\n var loc = this.currentLocation || {\n start: {}\n };\n return new SourceNode(loc.start.line, loc.start.column, this.srcFile);\n },\n wrap: function wrap(chunk) {\n var loc = arguments.length <= 1 || arguments[1] === undefined ? this.currentLocation || {\n start: {}\n } : arguments[1];\n\n if (chunk instanceof SourceNode) {\n return chunk;\n }\n\n chunk = castChunk(chunk, this, loc);\n return new SourceNode(loc.start.line, loc.start.column, this.srcFile, chunk);\n },\n functionCall: function functionCall(fn, type, params) {\n params = this.generateList(params);\n return this.wrap([fn, type ? '.' + type + '(' : '(', params, ')']);\n },\n quotedString: function quotedString(str) {\n return '\"' + (str + '').replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\u2028/g, '\\\\u2028') // Per Ecma-262 7.3 + 7.8.4\n .replace(/\\u2029/g, '\\\\u2029') + '\"';\n },\n objectLiteral: function objectLiteral(obj) {\n // istanbul ignore next\n var _this = this;\n\n var pairs = [];\n Object.keys(obj).forEach(function (key) {\n var value = castChunk(obj[key], _this);\n\n if (value !== 'undefined') {\n pairs.push([_this.quotedString(key), ':', value]);\n }\n });\n var ret = this.generateList(pairs);\n ret.prepend('{');\n ret.add('}');\n return ret;\n },\n generateList: function generateList(entries) {\n var ret = this.empty();\n\n for (var i = 0, len = entries.length; i < len; i++) {\n if (i) {\n ret.add(',');\n }\n\n ret.add(castChunk(entries[i], this));\n }\n\n return ret;\n },\n generateArray: function generateArray(entries) {\n var ret = this.generateList(entries);\n ret.prepend('[');\n ret.add(']');\n return ret;\n }\n};\nexports['default'] = CodeGen;\nmodule.exports = exports['default'];","import React from 'react';\nvar ThemeContext = React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\n\nexport default ThemeContext;","const ensureNever = (x: never): never => x\n\nconst notEmpty = <T>(value: T | null | undefined): value is T => {\n return value !== null && value !== undefined\n}\nexport { ensureNever, notEmpty }\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : length + start;\n }\n\n end = end > length ? length : end;\n\n if (end < 0) {\n end += length;\n }\n\n length = start > end ? 0 : end - start >>> 0;\n start >>>= 0;\n var result = Array(length);\n\n while (++index < length) {\n result[index] = array[index + start];\n }\n\n return result;\n}\n\nmodule.exports = baseSlice;","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n/* Node.js helper references. */\n\n\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\nmodule.exports = isTypedArray;","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n} // Add methods to `Stack`.\n\n\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\nmodule.exports = Stack;","// @noflow\nimport type { BreedSelectorQuery_breeds as Breed } from '@/components/elements/molecules/BreedAutocomplete/queries/__generated__/BreedSelectorQuery'\n\ntype PopularBreeds = {\n [key: Breed['key']]: {\n number: number\n slug: string\n }\n}\n\nconst popularBreeds: PopularBreeds = {\n basset_hound: {\n number: 350,\n slug: 'breed_card_basset_hound'\n },\n beagle: {\n number: 2202,\n slug: 'breed_card_beagle'\n },\n border_collie: {\n number: 4652,\n slug: 'breed_card_border_collie'\n },\n boxer: {\n number: 1403,\n slug: 'breed_card_boxer'\n },\n bulldog: {\n number: 1290,\n slug: 'breed_card_bulldog'\n },\n cavalier_king_charles_spaniel: {\n number: 3499,\n slug: 'breed_card_cavalier_king_charles_spaniel'\n },\n cavapoo_cavalier_king_charles_spaniel_poodle_mix: {\n number: 9855,\n slug: 'breed_card_cavapoo'\n },\n chihuahua: {\n number: 6196,\n slug: 'breed_card_chihuahua'\n },\n cockapoo_cocker_spaniel_poodle_mix: {\n number: 24256,\n slug: 'breed_card_cockapoo'\n },\n cocker_spaniel: {\n number: 11283,\n slug: 'breed_card_cocker_spaniel'\n },\n dachshund: {\n number: 4753,\n slug: 'breed_card_dachshund'\n },\n dobermann: {\n number: 267,\n slug: 'breed_card_dobermann'\n },\n french_bulldog: {\n number: 11418,\n slug: 'breed_card_frenchie'\n },\n german_shepherd: {\n number: 1910,\n slug: 'breed_card_german_shepherd'\n },\n golden_retriever: {\n number: 5297,\n slug: 'breed_card_golden_retriever'\n },\n goldendoodle_golden_retriever_poodle_mix: {\n number: 1793,\n slug: 'breed_card_goldendoodle'\n },\n jack_russell_terrier: {\n number: 7449,\n slug: 'breed_card_jack_russell'\n },\n labradoodle_labrador_retriever_poodle_mix: {\n number: 3838,\n slug: 'breed_card_labradoodle'\n },\n labrador_retriever: {\n number: 10537,\n slug: 'breed_card_labrador'\n },\n maltese: {\n number: 4124,\n slug: 'breed_card_maltese'\n },\n maltipoo_maltese_poodle_mix: {\n number: 2600,\n slug: 'breed_card_maltipoo'\n },\n mini_american_shepherd: {\n number: 59,\n slug: 'breed_card_mini_american_shepherd'\n },\n miniature_dachshund: {\n number: 7285,\n slug: 'breed_card_miniature_dachshund'\n },\n pembroke_welsh_corgi: {\n number: 497,\n slug: 'breed_card_corgi'\n },\n pomeranian: {\n number: 2946,\n slug: 'breed_card_pomeranian'\n },\n pug: { number: 3138, slug: 'breed_card_pug' },\n shih_tzu: {\n number: 6523,\n slug: 'breed_card_shih_tzu'\n },\n sprocker: {\n number: 1918,\n slug: 'breed_card_sprocker'\n },\n staffordshire_bull_terrier: {\n number: 4188,\n slug: 'breed_card_staffordshire_bull_terrier'\n },\n tibetan_terrier: {\n number: 895,\n slug: 'breed_card_tibetan_terrier'\n },\n vizsla: {\n number: 441,\n slug: 'breed_card_vizsla'\n },\n west_highland_white_terrier: {\n number: 2366,\n slug: 'breed_card_west_highland_white_terrier'\n },\n whippet: {\n number: 2789,\n slug: 'breed_card_whippet'\n }\n}\n\nexport default popularBreeds\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n\n function classNames() {\n var classes = '';\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n classes = appendClass(classes, parseValue(arg));\n }\n }\n\n return classes;\n }\n\n function parseValue(arg) {\n if (typeof arg === 'string' || typeof arg === 'number') {\n return arg;\n }\n\n if (typeof arg !== 'object') {\n return '';\n }\n\n if (Array.isArray(arg)) {\n return classNames.apply(null, arg);\n }\n\n if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n return arg.toString();\n }\n\n var classes = '';\n\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes = appendClass(classes, key);\n }\n }\n\n return classes;\n }\n\n function appendClass(value, newClass) {\n if (!newClass) {\n return value;\n }\n\n if (value) {\n return value + ' ' + newClass;\n }\n\n return value + newClass;\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n/** Used to compose unicode capture groups. */\n\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n/** Used to compose unicode regexes. */\n\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60;\n\nvar Motion = function (_React$Component) {\n _inherits(Motion, _React$Component);\n\n _createClass(Motion, null, [{\n key: 'propTypes',\n value: {\n // TOOD: warn against putting a config in here\n defaultStyle: _propTypes2['default'].objectOf(_propTypes2['default'].number),\n style: _propTypes2['default'].objectOf(_propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].object])).isRequired,\n children: _propTypes2['default'].func.isRequired,\n onRest: _propTypes2['default'].func\n },\n enumerable: true\n }]);\n\n function Motion(props) {\n var _this = this;\n\n _classCallCheck(this, Motion);\n\n _React$Component.call(this, props);\n\n this.wasAnimating = false;\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyle = null;\n\n this.clearUnreadPropStyle = function (destStyle) {\n var dirty = false;\n var _state = _this.state;\n var currentStyle = _state.currentStyle;\n var currentVelocity = _state.currentVelocity;\n var lastIdealStyle = _state.lastIdealStyle;\n var lastIdealVelocity = _state.lastIdealVelocity;\n\n for (var key in destStyle) {\n if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {\n continue;\n }\n\n var styleValue = destStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n currentStyle = _extends({}, currentStyle);\n currentVelocity = _extends({}, currentVelocity);\n lastIdealStyle = _extends({}, lastIdealStyle);\n lastIdealVelocity = _extends({}, lastIdealVelocity);\n }\n\n currentStyle[key] = styleValue;\n currentVelocity[key] = 0;\n lastIdealStyle[key] = styleValue;\n lastIdealVelocity[key] = 0;\n }\n }\n\n if (dirty) {\n _this.setState({\n currentStyle: currentStyle,\n currentVelocity: currentVelocity,\n lastIdealStyle: lastIdealStyle,\n lastIdealVelocity: lastIdealVelocity\n });\n }\n };\n\n this.startAnimationIfNecessary = function () {\n // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n _this.animationID = _raf2['default'](function (timestamp) {\n // check if we need to animate in the first place\n var propsStyle = _this.props.style;\n\n if (_shouldStopAnimation2['default'](_this.state.currentStyle, propsStyle, _this.state.currentVelocity)) {\n if (_this.wasAnimating && _this.props.onRest) {\n _this.props.onRest();\n } // no need to cancel animationID here; shouldn't have any in flight\n\n\n _this.animationID = null;\n _this.wasAnimating = false;\n _this.accumulatedTime = 0;\n return;\n }\n\n _this.wasAnimating = true;\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n\n for (var key in propsStyle) {\n if (!Object.prototype.hasOwnProperty.call(propsStyle, key)) {\n continue;\n }\n\n var styleValue = propsStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = _this.state.lastIdealStyle[key];\n var newLastIdealVelocityValue = _this.state.lastIdealVelocity[key];\n\n for (var i = 0; i < framesToCatchUp; i++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyle: newCurrentStyle,\n currentVelocity: newCurrentVelocity,\n lastIdealStyle: newLastIdealStyle,\n lastIdealVelocity: newLastIdealVelocity\n });\n\n _this.unreadPropStyle = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n Motion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyle = _props.defaultStyle;\n var style = _props.style;\n\n var currentStyle = defaultStyle || _stripStyle2['default'](style);\n\n var currentVelocity = _mapToZero2['default'](currentStyle);\n\n return {\n currentStyle: currentStyle,\n currentVelocity: currentVelocity,\n lastIdealStyle: currentStyle,\n lastIdealVelocity: currentVelocity\n };\n }; // it's possible that currentStyle's value is stale: if props is immediately\n // changed from 0 to 400 to spring(0) again, the async currentStyle is still\n // at 0 (didn't have time to tick and interpolate even once). If we naively\n // compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n // In reality currentStyle should be 400\n\n\n Motion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n Motion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyle != null) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyle);\n }\n\n this.unreadPropStyle = props.style;\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n Motion.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n Motion.prototype.render = function render() {\n var renderedChildren = this.props.children(this.state.currentStyle);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return Motion;\n}(_react2['default'].Component);\n\nexports['default'] = Motion;\nmodule.exports = exports['default']; // after checking for unreadPropStyle != null, we manually go set the\n// non-interpolating values (those that are a number, without a spring\n// config)","// Generated by CoffeeScript 1.12.2\n(function () {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if (typeof performance !== \"undefined\" && performance !== null && performance.now) {\n module.exports = function () {\n return performance.now();\n };\n } else if (typeof process !== \"undefined\" && process !== null && process.hrtime) {\n module.exports = function () {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n\n hrtime = process.hrtime;\n\n getNanoSeconds = function getNanoSeconds() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function () {\n return Date.now() - loadTime;\n };\n\n loadTime = Date.now();\n } else {\n module.exports = function () {\n return new Date().getTime() - loadTime;\n };\n\n loadTime = new Date().getTime();\n }\n}).call(this);","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60;\n\nfunction shouldStopAnimationAll(currentStyles, styles, currentVelocities) {\n for (var i = 0; i < currentStyles.length; i++) {\n if (!_shouldStopAnimation2['default'](currentStyles[i], styles[i], currentVelocities[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nvar StaggeredMotion = function (_React$Component) {\n _inherits(StaggeredMotion, _React$Component);\n\n _createClass(StaggeredMotion, null, [{\n key: 'propTypes',\n value: {\n // TOOD: warn against putting a config in here\n defaultStyles: _propTypes2['default'].arrayOf(_propTypes2['default'].objectOf(_propTypes2['default'].number)),\n styles: _propTypes2['default'].func.isRequired,\n children: _propTypes2['default'].func.isRequired\n },\n enumerable: true\n }]);\n\n function StaggeredMotion(props) {\n var _this = this;\n\n _classCallCheck(this, StaggeredMotion);\n\n _React$Component.call(this, props);\n\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyles = null;\n\n this.clearUnreadPropStyle = function (unreadPropStyles) {\n var _state = _this.state;\n var currentStyles = _state.currentStyles;\n var currentVelocities = _state.currentVelocities;\n var lastIdealStyles = _state.lastIdealStyles;\n var lastIdealVelocities = _state.lastIdealVelocities;\n var someDirty = false;\n\n for (var i = 0; i < unreadPropStyles.length; i++) {\n var unreadPropStyle = unreadPropStyles[i];\n var dirty = false;\n\n for (var key in unreadPropStyle) {\n if (!Object.prototype.hasOwnProperty.call(unreadPropStyle, key)) {\n continue;\n }\n\n var styleValue = unreadPropStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n someDirty = true;\n currentStyles[i] = _extends({}, currentStyles[i]);\n currentVelocities[i] = _extends({}, currentVelocities[i]);\n lastIdealStyles[i] = _extends({}, lastIdealStyles[i]);\n lastIdealVelocities[i] = _extends({}, lastIdealVelocities[i]);\n }\n\n currentStyles[i][key] = styleValue;\n currentVelocities[i][key] = 0;\n lastIdealStyles[i][key] = styleValue;\n lastIdealVelocities[i][key] = 0;\n }\n }\n }\n\n if (someDirty) {\n _this.setState({\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities\n });\n }\n };\n\n this.startAnimationIfNecessary = function () {\n // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n _this.animationID = _raf2['default'](function (timestamp) {\n var destStyles = _this.props.styles(_this.state.lastIdealStyles); // check if we need to animate in the first place\n\n\n if (shouldStopAnimationAll(_this.state.currentStyles, destStyles, _this.state.currentVelocities)) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n _this.accumulatedTime = 0;\n return;\n }\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n var newLastIdealStyles = [];\n var newLastIdealVelocities = [];\n var newCurrentStyles = [];\n var newCurrentVelocities = [];\n\n for (var i = 0; i < destStyles.length; i++) {\n var destStyle = destStyles[i];\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n\n for (var key in destStyle) {\n if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {\n continue;\n }\n\n var styleValue = destStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = _this.state.lastIdealStyles[i][key];\n var newLastIdealVelocityValue = _this.state.lastIdealVelocities[i][key];\n\n for (var j = 0; j < framesToCatchUp; j++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n newCurrentStyles[i] = newCurrentStyle;\n newCurrentVelocities[i] = newCurrentVelocity;\n newLastIdealStyles[i] = newLastIdealStyle;\n newLastIdealVelocities[i] = newLastIdealVelocity;\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyles: newCurrentStyles,\n currentVelocities: newCurrentVelocities,\n lastIdealStyles: newLastIdealStyles,\n lastIdealVelocities: newLastIdealVelocities\n });\n\n _this.unreadPropStyles = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n StaggeredMotion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyles = _props.defaultStyles;\n var styles = _props.styles;\n var currentStyles = defaultStyles || styles().map(_stripStyle2['default']);\n var currentVelocities = currentStyles.map(function (currentStyle) {\n return _mapToZero2['default'](currentStyle);\n });\n return {\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: currentStyles,\n lastIdealVelocities: currentVelocities\n };\n };\n\n StaggeredMotion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n StaggeredMotion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyles != null) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyles);\n }\n\n this.unreadPropStyles = props.styles(this.state.lastIdealStyles);\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n StaggeredMotion.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n StaggeredMotion.prototype.render = function render() {\n var renderedChildren = this.props.children(this.state.currentStyles);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return StaggeredMotion;\n}(_react2['default'].Component);\n\nexports['default'] = StaggeredMotion;\nmodule.exports = exports['default']; // it's possible that currentStyle's value is stale: if props is immediately\n// changed from 0 to 400 to spring(0) again, the async currentStyle is still\n// at 0 (didn't have time to tick and interpolate even once). If we naively\n// compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n// In reality currentStyle should be 400\n// after checking for unreadPropStyles != null, we manually go set the\n// non-interpolating values (those that are a number, without a spring\n// config)","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _mapToZero = require('./mapToZero');\n\nvar _mapToZero2 = _interopRequireDefault(_mapToZero);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar _stepper3 = require('./stepper');\n\nvar _stepper4 = _interopRequireDefault(_stepper3);\n\nvar _mergeDiff = require('./mergeDiff');\n\nvar _mergeDiff2 = _interopRequireDefault(_mergeDiff);\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _shouldStopAnimation = require('./shouldStopAnimation');\n\nvar _shouldStopAnimation2 = _interopRequireDefault(_shouldStopAnimation);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar msPerFrame = 1000 / 60; // the children function & (potential) styles function asks as param an\n// Array<TransitionPlainStyle>, where each TransitionPlainStyle is of the format\n// {key: string, data?: any, style: PlainStyle}. However, the way we keep\n// internal states doesn't contain such a data structure (check the state and\n// TransitionMotionState). So when children function and others ask for such\n// data we need to generate them on the fly by combining mergedPropsStyles and\n// currentStyles/lastIdealStyles\n\nfunction rehydrateStyles(mergedPropsStyles, unreadPropStyles, plainStyles) {\n // Copy the value to a `const` so that Flow understands that the const won't\n // change and will be non-nullable in the callback below.\n var cUnreadPropStyles = unreadPropStyles;\n\n if (cUnreadPropStyles == null) {\n return mergedPropsStyles.map(function (mergedPropsStyle, i) {\n return {\n key: mergedPropsStyle.key,\n data: mergedPropsStyle.data,\n style: plainStyles[i]\n };\n });\n }\n\n return mergedPropsStyles.map(function (mergedPropsStyle, i) {\n for (var j = 0; j < cUnreadPropStyles.length; j++) {\n if (cUnreadPropStyles[j].key === mergedPropsStyle.key) {\n return {\n key: cUnreadPropStyles[j].key,\n data: cUnreadPropStyles[j].data,\n style: plainStyles[i]\n };\n }\n }\n\n return {\n key: mergedPropsStyle.key,\n data: mergedPropsStyle.data,\n style: plainStyles[i]\n };\n });\n}\n\nfunction shouldStopAnimationAll(currentStyles, destStyles, currentVelocities, mergedPropsStyles) {\n if (mergedPropsStyles.length !== destStyles.length) {\n return false;\n }\n\n for (var i = 0; i < mergedPropsStyles.length; i++) {\n if (mergedPropsStyles[i].key !== destStyles[i].key) {\n return false;\n }\n } // we have the invariant that mergedPropsStyles and\n // currentStyles/currentVelocities/last* are synced in terms of cells, see\n // mergeAndSync comment for more info\n\n\n for (var i = 0; i < mergedPropsStyles.length; i++) {\n if (!_shouldStopAnimation2['default'](currentStyles[i], destStyles[i].style, currentVelocities[i])) {\n return false;\n }\n }\n\n return true;\n} // core key merging logic\n// things to do: say previously merged style is {a, b}, dest style (prop) is {b,\n// c}, previous current (interpolating) style is {a, b}\n// **invariant**: current[i] corresponds to merged[i] in terms of key\n// steps:\n// turn merged style into {a?, b, c}\n// add c, value of c is destStyles.c\n// maybe remove a, aka call willLeave(a), then merged is either {b, c} or {a, b, c}\n// turn current (interpolating) style from {a, b} into {a?, b, c}\n// maybe remove a\n// certainly add c, value of c is willEnter(c)\n// loop over merged and construct new current\n// dest doesn't change, that's owner's\n\n\nfunction mergeAndSync(willEnter, willLeave, didLeave, oldMergedPropsStyles, destStyles, oldCurrentStyles, oldCurrentVelocities, oldLastIdealStyles, oldLastIdealVelocities) {\n var newMergedPropsStyles = _mergeDiff2['default'](oldMergedPropsStyles, destStyles, function (oldIndex, oldMergedPropsStyle) {\n var leavingStyle = willLeave(oldMergedPropsStyle);\n\n if (leavingStyle == null) {\n didLeave({\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data\n });\n return null;\n }\n\n if (_shouldStopAnimation2['default'](oldCurrentStyles[oldIndex], leavingStyle, oldCurrentVelocities[oldIndex])) {\n didLeave({\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data\n });\n return null;\n }\n\n return {\n key: oldMergedPropsStyle.key,\n data: oldMergedPropsStyle.data,\n style: leavingStyle\n };\n });\n\n var newCurrentStyles = [];\n var newCurrentVelocities = [];\n var newLastIdealStyles = [];\n var newLastIdealVelocities = [];\n\n for (var i = 0; i < newMergedPropsStyles.length; i++) {\n var newMergedPropsStyleCell = newMergedPropsStyles[i];\n var foundOldIndex = null;\n\n for (var j = 0; j < oldMergedPropsStyles.length; j++) {\n if (oldMergedPropsStyles[j].key === newMergedPropsStyleCell.key) {\n foundOldIndex = j;\n break;\n }\n } // TODO: key search code\n\n\n if (foundOldIndex == null) {\n var plainStyle = willEnter(newMergedPropsStyleCell);\n newCurrentStyles[i] = plainStyle;\n newLastIdealStyles[i] = plainStyle;\n\n var velocity = _mapToZero2['default'](newMergedPropsStyleCell.style);\n\n newCurrentVelocities[i] = velocity;\n newLastIdealVelocities[i] = velocity;\n } else {\n newCurrentStyles[i] = oldCurrentStyles[foundOldIndex];\n newLastIdealStyles[i] = oldLastIdealStyles[foundOldIndex];\n newCurrentVelocities[i] = oldCurrentVelocities[foundOldIndex];\n newLastIdealVelocities[i] = oldLastIdealVelocities[foundOldIndex];\n }\n }\n\n return [newMergedPropsStyles, newCurrentStyles, newCurrentVelocities, newLastIdealStyles, newLastIdealVelocities];\n}\n\nvar TransitionMotion = function (_React$Component) {\n _inherits(TransitionMotion, _React$Component);\n\n _createClass(TransitionMotion, null, [{\n key: 'propTypes',\n value: {\n defaultStyles: _propTypes2['default'].arrayOf(_propTypes2['default'].shape({\n key: _propTypes2['default'].string.isRequired,\n data: _propTypes2['default'].any,\n style: _propTypes2['default'].objectOf(_propTypes2['default'].number).isRequired\n })),\n styles: _propTypes2['default'].oneOfType([_propTypes2['default'].func, _propTypes2['default'].arrayOf(_propTypes2['default'].shape({\n key: _propTypes2['default'].string.isRequired,\n data: _propTypes2['default'].any,\n style: _propTypes2['default'].objectOf(_propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].object])).isRequired\n }))]).isRequired,\n children: _propTypes2['default'].func.isRequired,\n willEnter: _propTypes2['default'].func,\n willLeave: _propTypes2['default'].func,\n didLeave: _propTypes2['default'].func\n },\n enumerable: true\n }, {\n key: 'defaultProps',\n value: {\n willEnter: function willEnter(styleThatEntered) {\n return _stripStyle2['default'](styleThatEntered.style);\n },\n // recall: returning null makes the current unmounting TransitionStyle\n // disappear immediately\n willLeave: function willLeave() {\n return null;\n },\n didLeave: function didLeave() {}\n },\n enumerable: true\n }]);\n\n function TransitionMotion(props) {\n var _this = this;\n\n _classCallCheck(this, TransitionMotion);\n\n _React$Component.call(this, props);\n\n this.unmounting = false;\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyles = null;\n\n this.clearUnreadPropStyle = function (unreadPropStyles) {\n var _mergeAndSync = mergeAndSync(_this.props.willEnter, _this.props.willLeave, _this.props.didLeave, _this.state.mergedPropsStyles, unreadPropStyles, _this.state.currentStyles, _this.state.currentVelocities, _this.state.lastIdealStyles, _this.state.lastIdealVelocities);\n\n var mergedPropsStyles = _mergeAndSync[0];\n var currentStyles = _mergeAndSync[1];\n var currentVelocities = _mergeAndSync[2];\n var lastIdealStyles = _mergeAndSync[3];\n var lastIdealVelocities = _mergeAndSync[4];\n\n for (var i = 0; i < unreadPropStyles.length; i++) {\n var unreadPropStyle = unreadPropStyles[i].style;\n var dirty = false;\n\n for (var key in unreadPropStyle) {\n if (!Object.prototype.hasOwnProperty.call(unreadPropStyle, key)) {\n continue;\n }\n\n var styleValue = unreadPropStyle[key];\n\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n currentStyles[i] = _extends({}, currentStyles[i]);\n currentVelocities[i] = _extends({}, currentVelocities[i]);\n lastIdealStyles[i] = _extends({}, lastIdealStyles[i]);\n lastIdealVelocities[i] = _extends({}, lastIdealVelocities[i]);\n mergedPropsStyles[i] = {\n key: mergedPropsStyles[i].key,\n data: mergedPropsStyles[i].data,\n style: _extends({}, mergedPropsStyles[i].style)\n };\n }\n\n currentStyles[i][key] = styleValue;\n currentVelocities[i][key] = 0;\n lastIdealStyles[i][key] = styleValue;\n lastIdealVelocities[i][key] = 0;\n mergedPropsStyles[i].style[key] = styleValue;\n }\n }\n } // unlike the other 2 components, we can't detect staleness and optionally\n // opt out of setState here. each style object's data might contain new\n // stuff we're not/cannot compare\n\n\n _this.setState({\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n mergedPropsStyles: mergedPropsStyles,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities\n });\n };\n\n this.startAnimationIfNecessary = function () {\n if (_this.unmounting) {\n return;\n } // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n\n\n _this.animationID = _raf2['default'](function (timestamp) {\n // https://github.com/chenglou/react-motion/pull/420\n // > if execution passes the conditional if (this.unmounting), then\n // executes async defaultRaf and after that component unmounts and after\n // that the callback of defaultRaf is called, then setState will be called\n // on unmounted component.\n if (_this.unmounting) {\n return;\n }\n\n var propStyles = _this.props.styles;\n var destStyles = typeof propStyles === 'function' ? propStyles(rehydrateStyles(_this.state.mergedPropsStyles, _this.unreadPropStyles, _this.state.lastIdealStyles)) : propStyles; // check if we need to animate in the first place\n\n if (shouldStopAnimationAll(_this.state.currentStyles, destStyles, _this.state.currentVelocities, _this.state.mergedPropsStyles)) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n _this.accumulatedTime = 0;\n return;\n }\n\n var currentTime = timestamp || _performanceNow2['default']();\n\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta; // more than 10 frames? prolly switched browser tab. Restart\n\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n\n _this.startAnimationIfNecessary();\n\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n\n var _mergeAndSync2 = mergeAndSync(_this.props.willEnter, _this.props.willLeave, _this.props.didLeave, _this.state.mergedPropsStyles, destStyles, _this.state.currentStyles, _this.state.currentVelocities, _this.state.lastIdealStyles, _this.state.lastIdealVelocities);\n\n var newMergedPropsStyles = _mergeAndSync2[0];\n var newCurrentStyles = _mergeAndSync2[1];\n var newCurrentVelocities = _mergeAndSync2[2];\n var newLastIdealStyles = _mergeAndSync2[3];\n var newLastIdealVelocities = _mergeAndSync2[4];\n\n for (var i = 0; i < newMergedPropsStyles.length; i++) {\n var newMergedPropsStyle = newMergedPropsStyles[i].style;\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n\n for (var key in newMergedPropsStyle) {\n if (!Object.prototype.hasOwnProperty.call(newMergedPropsStyle, key)) {\n continue;\n }\n\n var styleValue = newMergedPropsStyle[key];\n\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = newLastIdealStyles[i][key];\n var newLastIdealVelocityValue = newLastIdealVelocities[i][key];\n\n for (var j = 0; j < framesToCatchUp; j++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n newLastIdealStyles[i] = newLastIdealStyle;\n newLastIdealVelocities[i] = newLastIdealVelocity;\n newCurrentStyles[i] = newCurrentStyle;\n newCurrentVelocities[i] = newCurrentVelocity;\n }\n\n _this.animationID = null; // the amount we're looped over above\n\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyles: newCurrentStyles,\n currentVelocities: newCurrentVelocities,\n lastIdealStyles: newLastIdealStyles,\n lastIdealVelocities: newLastIdealVelocities,\n mergedPropsStyles: newMergedPropsStyles\n });\n\n _this.unreadPropStyles = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n TransitionMotion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyles = _props.defaultStyles;\n var styles = _props.styles;\n var willEnter = _props.willEnter;\n var willLeave = _props.willLeave;\n var didLeave = _props.didLeave;\n var destStyles = typeof styles === 'function' ? styles(defaultStyles) : styles; // this is special. for the first time around, we don't have a comparison\n // between last (no last) and current merged props. we'll compute last so:\n // say default is {a, b} and styles (dest style) is {b, c}, we'll\n // fabricate last as {a, b}\n\n var oldMergedPropsStyles = undefined;\n\n if (defaultStyles == null) {\n oldMergedPropsStyles = destStyles;\n } else {\n oldMergedPropsStyles = defaultStyles.map(function (defaultStyleCell) {\n // TODO: key search code\n for (var i = 0; i < destStyles.length; i++) {\n if (destStyles[i].key === defaultStyleCell.key) {\n return destStyles[i];\n }\n }\n\n return defaultStyleCell;\n });\n }\n\n var oldCurrentStyles = defaultStyles == null ? destStyles.map(function (s) {\n return _stripStyle2['default'](s.style);\n }) : defaultStyles.map(function (s) {\n return _stripStyle2['default'](s.style);\n });\n var oldCurrentVelocities = defaultStyles == null ? destStyles.map(function (s) {\n return _mapToZero2['default'](s.style);\n }) : defaultStyles.map(function (s) {\n return _mapToZero2['default'](s.style);\n });\n\n var _mergeAndSync3 = mergeAndSync( // Because this is an old-style createReactClass component, Flow doesn't\n // understand that the willEnter and willLeave props have default values\n // and will always be present.\n willEnter, willLeave, didLeave, oldMergedPropsStyles, destStyles, oldCurrentStyles, oldCurrentVelocities, oldCurrentStyles, // oldLastIdealStyles really\n oldCurrentVelocities);\n\n var mergedPropsStyles = _mergeAndSync3[0];\n var currentStyles = _mergeAndSync3[1];\n var currentVelocities = _mergeAndSync3[2];\n var lastIdealStyles = _mergeAndSync3[3];\n var lastIdealVelocities = _mergeAndSync3[4]; // oldLastIdealVelocities really\n\n return {\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities,\n mergedPropsStyles: mergedPropsStyles\n };\n }; // after checking for unreadPropStyles != null, we manually go set the\n // non-interpolating values (those that are a number, without a spring\n // config)\n\n\n TransitionMotion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n TransitionMotion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyles) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyles);\n }\n\n var styles = props.styles;\n\n if (typeof styles === 'function') {\n this.unreadPropStyles = styles(rehydrateStyles(this.state.mergedPropsStyles, this.unreadPropStyles, this.state.lastIdealStyles));\n } else {\n this.unreadPropStyles = styles;\n }\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n TransitionMotion.prototype.componentWillUnmount = function componentWillUnmount() {\n this.unmounting = true;\n\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n\n this.animationID = null;\n }\n };\n\n TransitionMotion.prototype.render = function render() {\n var hydratedStyles = rehydrateStyles(this.state.mergedPropsStyles, this.unreadPropStyles, this.state.currentStyles);\n var renderedChildren = this.props.children(hydratedStyles);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return TransitionMotion;\n}(_react2['default'].Component);\n\nexports['default'] = TransitionMotion;\nmodule.exports = exports['default']; // list of styles, each containing interpolating values. Part of what's passed\n// to children function. Notice that this is\n// Array<ActualInterpolatingStyleObject>, without the wrapper that is {key: ...,\n// data: ... style: ActualInterpolatingStyleObject}. Only mergedPropsStyles\n// contains the key & data info (so that we only have a single source of truth\n// for these, and to save space). Check the comment for `rehydrateStyles` to\n// see how we regenerate the entirety of what's passed to children function\n// the array that keeps track of currently rendered stuff! Including stuff\n// that you've unmounted but that's still animating. This is where it lives\n// it's possible that currentStyle's value is stale: if props is immediately\n// changed from 0 to 400 to spring(0) again, the async currentStyle is still\n// at 0 (didn't have time to tick and interpolate even once). If we naively\n// compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n// In reality currentStyle should be 400","// core keys merging algorithm. If previous render's keys are [a, b], and the\n// next render's [c, b, d], what's the final merged keys and ordering?\n// - c and a must both be before b\n// - b before d\n// - ordering between a and c ambiguous\n// this reduces to merging two partially ordered lists (e.g. lists where not\n// every item has a definite ordering, like comparing a and c above). For the\n// ambiguous ordering we deterministically choose to place the next render's\n// item after the previous'; so c after a\n// this is called a topological sorting. Except the existing algorithms don't\n// work well with js bc of the amount of allocation, and isn't optimized for our\n// current use-case bc the runtime is linear in terms of edges (see wiki for\n// meaning), which is huge when two lists have many common elements\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = mergeDiff;\n\nfunction mergeDiff(prev, next, onRemove) {\n // bookkeeping for easier access of a key's index below. This is 2 allocations +\n // potentially triggering chrome hash map mode for objs (so it might be faster\n var prevKeyIndex = {};\n\n for (var i = 0; i < prev.length; i++) {\n prevKeyIndex[prev[i].key] = i;\n }\n\n var nextKeyIndex = {};\n\n for (var i = 0; i < next.length; i++) {\n nextKeyIndex[next[i].key] = i;\n } // first, an overly elaborate way of merging prev and next, eliminating\n // duplicates (in terms of keys). If there's dupe, keep the item in next).\n // This way of writing it saves allocations\n\n\n var ret = [];\n\n for (var i = 0; i < next.length; i++) {\n ret[i] = next[i];\n }\n\n for (var i = 0; i < prev.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(nextKeyIndex, prev[i].key)) {\n // this is called my TM's `mergeAndSync`, which calls willLeave. We don't\n // merge in keys that the user desires to kill\n var fill = onRemove(i, prev[i]);\n\n if (fill != null) {\n ret.push(fill);\n }\n }\n } // now all the items all present. Core sorting logic to have the right order\n\n\n return ret.sort(function (a, b) {\n var nextOrderA = nextKeyIndex[a.key];\n var nextOrderB = nextKeyIndex[b.key];\n var prevOrderA = prevKeyIndex[a.key];\n var prevOrderB = prevKeyIndex[b.key];\n\n if (nextOrderA != null && nextOrderB != null) {\n // both keys in next\n return nextKeyIndex[a.key] - nextKeyIndex[b.key];\n } else if (prevOrderA != null && prevOrderB != null) {\n // both keys in prev\n return prevKeyIndex[a.key] - prevKeyIndex[b.key];\n } else if (nextOrderA != null) {\n // key a in next, key b in prev\n // how to determine the order between a and b? We find a \"pivot\" (term\n // abuse), a key present in both prev and next, that is sandwiched between\n // a and b. In the context of our above example, if we're comparing a and\n // d, b's (the only) pivot\n for (var i = 0; i < next.length; i++) {\n var pivot = next[i].key;\n\n if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n continue;\n }\n\n if (nextOrderA < nextKeyIndex[pivot] && prevOrderB > prevKeyIndex[pivot]) {\n return -1;\n } else if (nextOrderA > nextKeyIndex[pivot] && prevOrderB < prevKeyIndex[pivot]) {\n return 1;\n }\n } // pluggable. default to: next bigger than prev\n\n\n return 1;\n } // prevOrderA, nextOrderB\n\n\n for (var i = 0; i < next.length; i++) {\n var pivot = next[i].key;\n\n if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n continue;\n }\n\n if (nextOrderB < nextKeyIndex[pivot] && prevOrderA > prevKeyIndex[pivot]) {\n return 1;\n } else if (nextOrderB > nextKeyIndex[pivot] && prevOrderA < prevKeyIndex[pivot]) {\n return -1;\n }\n } // pluggable. default to: next bigger than prev\n\n\n return -1;\n });\n}\n\nmodule.exports = exports['default']; // to loop through and find a key's index each time), but I no longer care","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nexports['default'] = spring;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n 'default': obj\n };\n}\n\nvar _presets = require('./presets');\n\nvar _presets2 = _interopRequireDefault(_presets);\n\nvar defaultConfig = _extends({}, _presets2['default'].noWobble, {\n precision: 0.01\n});\n\nfunction spring(val, config) {\n return _extends({}, defaultConfig, config, {\n val: val\n });\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = reorderKeys;\nvar hasWarned = false;\n\nfunction reorderKeys() {\n if (process.env.NODE_ENV === 'development') {\n if (!hasWarned) {\n hasWarned = true;\n console.error('`reorderKeys` has been removed, since it is no longer needed for TransitionMotion\\'s new styles array API.');\n }\n }\n}\n\nmodule.exports = exports['default'];","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n\n\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n} // Add methods to `MapCache`.\n\n\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\nmodule.exports = MapCache;","/* eslint-disable jsx-a11y/label-has-for */\n// @noflow\nimport { UseSelectGetItemPropsOptions, useSelect } from 'downshift'\nimport React, { useCallback } from 'react'\n\nimport BREAKPOINTS from '@/constants/Breakpoints'\n\nimport useWindowSize from '@/hooks/useWindowSize'\n\nimport Image from '@/components/shared/elements/Image/Image'\n\ntype Option = {\n value: string | number\n label: string\n id: string\n}\n\ntype OptionProps = {\n option: Option\n value?: Option | null\n optionAccessibilityAttributes: (\n options: UseSelectGetItemPropsOptions<Option>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) => any // have to use any here due to the modules typing\n}\n\ntype Props = {\n initialValue?: Option | null\n label: string\n options: Array<Option>\n disabled?: boolean\n onChange: (value: Option) => void\n}\n\nconst OptionComponent = ({\n option,\n value,\n optionAccessibilityAttributes\n}: OptionProps): JSX.Element => {\n const baseClass = 'selector__option'\n\n return (\n <div\n className={`\n ${baseClass}__list-item\n ${value?.value === option.value && 'selected'}\n `}\n role=\"button\"\n tabIndex={0}\n {...optionAccessibilityAttributes({\n item: option\n })}\n >\n <p className=\"text-regular-18 no-scale\">{option.label}</p>\n </div>\n )\n}\n\nconst Select = ({\n initialValue,\n label,\n options,\n disabled = false,\n onChange\n}: Props): JSX.Element => {\n const baseClass = 'selector'\n const { windowWidth } = useWindowSize()\n const menuRef = React.useRef<HTMLDivElement>(null)\n\n const itemToString = useCallback((item: Option | null) => {\n return item ? item.label : ''\n }, [])\n\n const {\n isOpen,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps\n } = useSelect({\n initialSelectedItem: initialValue,\n items: options,\n itemToString,\n onSelectedItemChange: (data) => {\n if (!data.selectedItem) return\n onChange(data.selectedItem)\n }\n })\n\n return (\n <div className={`${baseClass}__container`}>\n <label className=\"text-regular-18 no-scale\" {...getLabelProps()}>\n {label}\n </label>\n <div\n className={`${baseClass}__header ${disabled ? 'disabled' : ''} ${\n isOpen ? 'open' : ''\n }`}\n {...getToggleButtonProps()}\n role=\"combobox\"\n tabIndex={0}\n aria-controls={`${baseClass}__listbox`}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n >\n <p className=\"text-regular-18 no-scale\">{selectedItem?.label}</p>\n <span className={`${baseClass}__chevron-icon ${isOpen ? 'open' : ''}`}>\n <Image\n alt=\"\"\n slug=\"chevron-blue-500\"\n image={{\n width: windowWidth < BREAKPOINTS.lg ? 24 : 40,\n height: windowWidth < BREAKPOINTS.lg ? 24 : 40\n }}\n />\n </span>\n </div>\n <div\n className={`${baseClass}__list-container ${!isOpen ? 'hidden' : ''}`}\n {...getMenuProps({ ref: menuRef })}\n >\n <ul className={`${baseClass}__list`}>\n {isOpen &&\n options.map((option) => (\n <OptionComponent\n key={option.value}\n option={option}\n value={selectedItem}\n optionAccessibilityAttributes={getItemProps}\n />\n ))}\n </ul>\n </div>\n </div>\n )\n}\n\nexport type { Props, Option }\nexport default Select\n","// @noflow\nimport type { CookiePreferences } from '@/components/cookie_consent/index'\n\nenum Action {\n Accepted = 'accepted',\n None = 'none',\n Cancelled = 'cancelled',\n Saved = 'saved',\n Deny = 'deny'\n}\n\ntype LocalStorageCookieConsent = {\n action: Action\n preferences?: CookiePreferences\n}\n\nexport { Action }\nexport type { LocalStorageCookieConsent }\n","// @noflow\nimport { makeVar } from '@apollo/client'\nimport React, { Fragment } from 'react'\n\nimport type { CookiePreferences } from '@/components/cookie_consent/index'\nimport CookieConsentBanner from '@/components/shared/CookieConsent/CookieConsentBanner'\nimport CookieConsentModal, {\n Variant\n} from '@/components/shared/CookieConsent/Modals/CookieConsentModal'\n\ntype Props = {\n variant: Variant\n applyPreferences: (preferences: CookiePreferences) => void\n}\n\nconst cookieConsentBannerState = makeVar({\n visible: false\n})\n\nconst cookieConsentModalState = makeVar({\n visible: false\n})\n\nconst CookieConsent = ({\n variant,\n applyPreferences\n}: Props): JSX.Element | null => (\n <Fragment>\n <CookieConsentModal variant={variant} applyPreferences={applyPreferences} />\n <CookieConsentBanner\n variant={variant}\n applyPreferences={applyPreferences}\n />\n </Fragment>\n)\n\nexport default CookieConsent\nexport { cookieConsentBannerState, cookieConsentModalState }\n","var getNative = require('./_getNative');\n\nvar defineProperty = function () {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}();\n\nmodule.exports = defineProperty;","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n/** Used to resolve the decompiled source of functions. */\n\nvar funcToString = funcProto.toString;\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n\n try {\n return func + '';\n } catch (e) {}\n }\n\n return '';\n}\n\nmodule.exports = toSource;","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n\n\nfunction createAssigner(assigner) {\n return baseRest(function (object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n customizer = assigner.length > 3 && typeof customizer == 'function' ? (length--, customizer) : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n\n object = Object(object);\n\n while (++index < length) {\n var source = sources[index];\n\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n\n return object;\n });\n}\n\nmodule.exports = createAssigner;","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties.\n isIndex(key, length)))) {\n result.push(key);\n }\n }\n\n return result;\n}\n\nmodule.exports = arrayLikeKeys;","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;","var root = require('./_root');\n/** Detect free variable `exports`. */\n\n\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n/** Detect free variable `module`. */\n\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n/** Detect the popular CommonJS extension `module.exports`. */\n\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n/** Built-in value references. */\n\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;","// @noflow\nimport type { Language } from '@/packs/localisation'\nimport Cookies from 'js-cookie'\n\nimport * as Sentry from '@/utils/sentry'\n\nimport BelgiumFlag from 'assets/images/icons/flags/be-flag.svg'\nimport CzechiaFlag from 'assets/images/icons/flags/cz-flag.svg'\nimport GermanyFlag from 'assets/images/icons/flags/de-flag.svg'\nimport GreatBritainFlag from 'assets/images/icons/flags/gb-flag.svg'\nimport IrelandFlag from 'assets/images/icons/flags/ie-flag.svg'\nimport NetherlandsFlag from 'assets/images/icons/flags/nl-flag.svg'\nimport PolandFlag from 'assets/images/icons/flags/pl-flag.svg'\n\nimport type {\n Code as CountryCode,\n ShippingCountry\n} from '@/shared_types/rails_models/shipping_countries'\n\nconst countryCodeCookiesKey = 'user_country_code'\nconst languageCookiesKey = 'user_language'\n\nconst getCountryCode = (): CountryCode => {\n try {\n const countryCode = Cookies.get(countryCodeCookiesKey) as CountryCode | null\n if (countryCode) {\n return countryCode\n } else return 'GB'\n } catch (_) {\n return 'GB'\n }\n}\n\nconst getLanguage = (\n countryCode: CountryCode,\n activeShippingCountries: Array<ShippingCountry>\n): Language => {\n try {\n const language = Cookies.get(languageCookiesKey) as Language | null\n if (language) {\n return language\n } else {\n const country = activeShippingCountries.find(\n (country: ShippingCountry): boolean => country.code === countryCode\n )\n if (!country) {\n Sentry.captureException(\n `Could not find countryCode: ${countryCode} in activeShippingCountries`\n )\n return 'en'\n }\n return country.defaultLanguage\n }\n } catch (_) {\n return 'en'\n }\n}\n\nconst getCountryFlag = (countryCode: CountryCode): string | void => {\n switch (countryCode) {\n case 'GB': {\n return GreatBritainFlag\n }\n case 'IE': {\n return IrelandFlag\n }\n case 'NI': {\n return GreatBritainFlag\n }\n case 'NL': {\n return NetherlandsFlag\n }\n case 'BE': {\n return BelgiumFlag\n }\n case 'PL': {\n return PolandFlag\n }\n case 'DE': {\n return GermanyFlag\n }\n case 'CZ': {\n return CzechiaFlag\n }\n default: {\n return Sentry.captureException(\n `getCountryFlag is not implemented for ${countryCode}`\n )\n }\n }\n}\n\nconst getCountryName = ({\n activeShippingCountries,\n countryCode,\n t\n}: {\n activeShippingCountries: Array<ShippingCountry>\n countryCode: CountryCode\n t: (arg0: string) => string\n}): string | void => {\n const country = activeShippingCountries.find(\n (country: ShippingCountry): boolean => country.code === countryCode\n )\n\n if (!country) {\n return Sentry.captureException(`Country ${country} not found`)\n }\n return t(`shipping_countries:${country.code}.presentable_name`)\n}\n\nconst getLanguageShortName = ({\n language,\n t\n}: {\n language: Language\n t: (arg0: string) => string\n}): string | void => {\n if (!language) {\n return Sentry.captureException(`Language ${language} not found`)\n }\n return t(`languages:${language}.short_name`)\n}\n\nconst getLanguageName = ({\n language,\n t\n}: {\n language: Language\n t: (arg0: string) => string\n}): string | void => {\n if (!language) {\n return Sentry.captureException(`Language ${language} not found`)\n }\n return t(`languages:${language}.presentable_name`)\n}\n\nexport {\n getCountryFlag,\n getLanguageName,\n getLanguageShortName,\n getCountryCode,\n getLanguage,\n getCountryName\n}\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n array || (array = Array(length));\n\n while (++index < length) {\n array[index] = source[index];\n }\n\n return array;\n}\n\nmodule.exports = copyArray;","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n\n return result;\n}\n\nmodule.exports = arrayFilter;","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\n\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function (object) {\n var result = [];\n\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n\n return result;\n};\nmodule.exports = getSymbolsIn;","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n\n\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n\n\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n\n\nfunction initCloneObject(object) {\n return typeof object.constructor == 'function' && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};\n}\n\nmodule.exports = initCloneObject;","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n\n\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n\n\nfunction assignMergeValue(object, key, value) {\n if (value !== undefined && !eq(object[key], value) || value === undefined && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;","/**\n * cloudinary-core.js\n * Cloudinary's JavaScript library - Version 2.12.0\n * Copyright Cloudinary\n * see https://github.com/cloudinary/cloudinary_js\n *\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"lodash/assign\"), require(\"lodash/cloneDeep\"), require(\"lodash/compact\"), require(\"lodash/difference\"), require(\"lodash/functions\"), require(\"lodash/identity\"), require(\"lodash/includes\"), require(\"lodash/isArray\"), require(\"lodash/isElement\"), require(\"lodash/isFunction\"), require(\"lodash/isPlainObject\"), require(\"lodash/isString\"), require(\"lodash/merge\"), require(\"lodash/trim\"));else if (typeof define === 'function' && define.amd) define([\"lodash/assign\", \"lodash/cloneDeep\", \"lodash/compact\", \"lodash/difference\", \"lodash/functions\", \"lodash/identity\", \"lodash/includes\", \"lodash/isArray\", \"lodash/isElement\", \"lodash/isFunction\", \"lodash/isPlainObject\", \"lodash/isString\", \"lodash/merge\", \"lodash/trim\"], factory);else if (typeof exports === 'object') exports[\"cloudinary\"] = factory(require(\"lodash/assign\"), require(\"lodash/cloneDeep\"), require(\"lodash/compact\"), require(\"lodash/difference\"), require(\"lodash/functions\"), require(\"lodash/identity\"), require(\"lodash/includes\"), require(\"lodash/isArray\"), require(\"lodash/isElement\"), require(\"lodash/isFunction\"), require(\"lodash/isPlainObject\"), require(\"lodash/isString\"), require(\"lodash/merge\"), require(\"lodash/trim\"));else root[\"cloudinary\"] = factory(root[\"_\"][\"assign\"], root[\"_\"][\"cloneDeep\"], root[\"_\"][\"compact\"], root[\"_\"][\"difference\"], root[\"_\"][\"functions\"], root[\"_\"][\"identity\"], root[\"_\"][\"includes\"], root[\"_\"][\"isArray\"], root[\"_\"][\"isElement\"], root[\"_\"][\"isFunction\"], root[\"_\"][\"isPlainObject\"], root[\"_\"][\"isString\"], root[\"_\"][\"merge\"], root[\"_\"][\"trim\"]);\n})(this, function (__WEBPACK_EXTERNAL_MODULE_lodash_assign__, __WEBPACK_EXTERNAL_MODULE_lodash_cloneDeep__, __WEBPACK_EXTERNAL_MODULE_lodash_compact__, __WEBPACK_EXTERNAL_MODULE_lodash_difference__, __WEBPACK_EXTERNAL_MODULE_lodash_functions__, __WEBPACK_EXTERNAL_MODULE_lodash_identity__, __WEBPACK_EXTERNAL_MODULE_lodash_includes__, __WEBPACK_EXTERNAL_MODULE_lodash_isArray__, __WEBPACK_EXTERNAL_MODULE_lodash_isElement__, __WEBPACK_EXTERNAL_MODULE_lodash_isFunction__, __WEBPACK_EXTERNAL_MODULE_lodash_isPlainObject__, __WEBPACK_EXTERNAL_MODULE_lodash_isString__, __WEBPACK_EXTERNAL_MODULE_lodash_merge__, __WEBPACK_EXTERNAL_MODULE_lodash_trim__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) {\n __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n }\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = \"./src/namespace/cloudinary-core.js\");\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./src/namespace/cloudinary-core.js\":\n /***/\n function srcNamespaceCloudinaryCoreJs(module, __webpack_exports__, __webpack_require__) {\n \"use strict\"; // ESM COMPAT FLAG\n\n __webpack_require__.r(__webpack_exports__); // EXPORTS\n\n\n __webpack_require__.d(__webpack_exports__, \"ClientHintsMetaTag\", function () {\n return (\n /* reexport */\n clienthintsmetatag\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"Cloudinary\", function () {\n return (\n /* reexport */\n cloudinary\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"Condition\", function () {\n return (\n /* reexport */\n condition\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"Configuration\", function () {\n return (\n /* reexport */\n src_configuration\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"crc32\", function () {\n return (\n /* reexport */\n src_crc32\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"Expression\", function () {\n return (\n /* reexport */\n expression\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"FetchLayer\", function () {\n return (\n /* reexport */\n fetchlayer\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"HtmlTag\", function () {\n return (\n /* reexport */\n htmltag\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"ImageTag\", function () {\n return (\n /* reexport */\n imagetag\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"Layer\", function () {\n return (\n /* reexport */\n layer_layer\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"PictureTag\", function () {\n return (\n /* reexport */\n picturetag\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"SubtitlesLayer\", function () {\n return (\n /* reexport */\n subtitleslayer\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"TextLayer\", function () {\n return (\n /* reexport */\n textlayer\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"Transformation\", function () {\n return (\n /* reexport */\n src_transformation\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"utf8_encode\", function () {\n return (\n /* reexport */\n src_utf8_encode\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"Util\", function () {\n return (\n /* reexport */\n lodash_namespaceObject\n );\n });\n\n __webpack_require__.d(__webpack_exports__, \"VideoTag\", function () {\n return (\n /* reexport */\n videotag\n );\n }); // NAMESPACE OBJECT: ./src/constants.js\n\n\n var constants_namespaceObject = {};\n\n __webpack_require__.r(constants_namespaceObject);\n\n __webpack_require__.d(constants_namespaceObject, \"VERSION\", function () {\n return VERSION;\n });\n\n __webpack_require__.d(constants_namespaceObject, \"CF_SHARED_CDN\", function () {\n return CF_SHARED_CDN;\n });\n\n __webpack_require__.d(constants_namespaceObject, \"OLD_AKAMAI_SHARED_CDN\", function () {\n return OLD_AKAMAI_SHARED_CDN;\n });\n\n __webpack_require__.d(constants_namespaceObject, \"AKAMAI_SHARED_CDN\", function () {\n return AKAMAI_SHARED_CDN;\n });\n\n __webpack_require__.d(constants_namespaceObject, \"SHARED_CDN\", function () {\n return SHARED_CDN;\n });\n\n __webpack_require__.d(constants_namespaceObject, \"DEFAULT_TIMEOUT_MS\", function () {\n return DEFAULT_TIMEOUT_MS;\n });\n\n __webpack_require__.d(constants_namespaceObject, \"DEFAULT_POSTER_OPTIONS\", function () {\n return DEFAULT_POSTER_OPTIONS;\n });\n\n __webpack_require__.d(constants_namespaceObject, \"DEFAULT_VIDEO_SOURCE_TYPES\", function () {\n return DEFAULT_VIDEO_SOURCE_TYPES;\n });\n\n __webpack_require__.d(constants_namespaceObject, \"SEO_TYPES\", function () {\n return SEO_TYPES;\n });\n\n __webpack_require__.d(constants_namespaceObject, \"DEFAULT_IMAGE_PARAMS\", function () {\n return DEFAULT_IMAGE_PARAMS;\n });\n\n __webpack_require__.d(constants_namespaceObject, \"DEFAULT_VIDEO_PARAMS\", function () {\n return DEFAULT_VIDEO_PARAMS;\n });\n\n __webpack_require__.d(constants_namespaceObject, \"DEFAULT_VIDEO_SOURCES\", function () {\n return DEFAULT_VIDEO_SOURCES;\n });\n\n __webpack_require__.d(constants_namespaceObject, \"DEFAULT_EXTERNAL_LIBRARIES\", function () {\n return DEFAULT_EXTERNAL_LIBRARIES;\n });\n\n __webpack_require__.d(constants_namespaceObject, \"PLACEHOLDER_IMAGE_MODES\", function () {\n return PLACEHOLDER_IMAGE_MODES;\n });\n\n __webpack_require__.d(constants_namespaceObject, \"ACCESSIBILITY_MODES\", function () {\n return ACCESSIBILITY_MODES;\n });\n\n __webpack_require__.d(constants_namespaceObject, \"URL_KEYS\", function () {\n return URL_KEYS;\n }); // NAMESPACE OBJECT: ./src/util/lodash.js\n\n\n var lodash_namespaceObject = {};\n\n __webpack_require__.r(lodash_namespaceObject);\n\n __webpack_require__.d(lodash_namespaceObject, \"getSDKAnalyticsSignature\", function () {\n return getSDKAnalyticsSignature;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"getAnalyticsOptions\", function () {\n return getAnalyticsOptions;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"assign\", function () {\n return assign_root_assign_default.a;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"cloneDeep\", function () {\n return cloneDeep_root_cloneDeep_default.a;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"compact\", function () {\n return compact_root_compact_default.a;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"difference\", function () {\n return difference_root_difference_default.a;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"functions\", function () {\n return functions_root_functions_default.a;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"identity\", function () {\n return identity_root_identity_default.a;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"includes\", function () {\n return includes_root_includes_default.a;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"isArray\", function () {\n return isArray_root_isArray_default.a;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"isPlainObject\", function () {\n return isPlainObject_root_isPlainObject_default.a;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"isString\", function () {\n return isString_root_isString_default.a;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"merge\", function () {\n return merge_root_merge_default.a;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"contains\", function () {\n return includes_root_includes_default.a;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"isIntersectionObserverSupported\", function () {\n return isIntersectionObserverSupported;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"isNativeLazyLoadSupported\", function () {\n return isNativeLazyLoadSupported;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"detectIntersection\", function () {\n return detectIntersection;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"omit\", function () {\n return omit;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"allStrings\", function () {\n return baseutil_allStrings;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"without\", function () {\n return without;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"isNumberLike\", function () {\n return isNumberLike;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"smartEscape\", function () {\n return smartEscape;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"defaults\", function () {\n return defaults;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"objectProto\", function () {\n return objectProto;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"objToString\", function () {\n return objToString;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"isObject\", function () {\n return isObject;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"funcTag\", function () {\n return funcTag;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"reWords\", function () {\n return reWords;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"camelCase\", function () {\n return camelCase;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"snakeCase\", function () {\n return snakeCase;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"convertKeys\", function () {\n return convertKeys;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"withCamelCaseKeys\", function () {\n return withCamelCaseKeys;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"withSnakeCaseKeys\", function () {\n return withSnakeCaseKeys;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"base64Encode\", function () {\n return base64Encode;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"base64EncodeURL\", function () {\n return base64EncodeURL;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"extractUrlParams\", function () {\n return extractUrlParams;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"patchFetchFormat\", function () {\n return patchFetchFormat;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"optionConsume\", function () {\n return optionConsume;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"isEmpty\", function () {\n return isEmpty;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"isElement\", function () {\n return isElement_root_isElement_default.a;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"isFunction\", function () {\n return isFunction_root_isFunction_default.a;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"trim\", function () {\n return trim_root_trim_default.a;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"getData\", function () {\n return lodash_getData;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"setData\", function () {\n return lodash_setData;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"getAttribute\", function () {\n return lodash_getAttribute;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"setAttribute\", function () {\n return lodash_setAttribute;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"removeAttribute\", function () {\n return lodash_removeAttribute;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"setAttributes\", function () {\n return setAttributes;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"hasClass\", function () {\n return lodash_hasClass;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"addClass\", function () {\n return lodash_addClass;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"getStyles\", function () {\n return getStyles;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"cssExpand\", function () {\n return cssExpand;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"domStyle\", function () {\n return domStyle;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"curCSS\", function () {\n return curCSS;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"cssValue\", function () {\n return cssValue;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"augmentWidthOrHeight\", function () {\n return augmentWidthOrHeight;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"getWidthOrHeight\", function () {\n return getWidthOrHeight;\n });\n\n __webpack_require__.d(lodash_namespaceObject, \"width\", function () {\n return lodash_width;\n }); // CONCATENATED MODULE: ./src/utf8_encode.js\n\n /**\n * UTF8 encoder\n * @private\n */\n\n\n var utf8_encode;\n /* harmony default export */\n\n var src_utf8_encode = utf8_encode = function utf8_encode(argString) {\n var c1, enc, end, n, start, string, stringl, utftext; // http://kevin.vanzonneveld.net\n // + original by: Webtoolkit.info (http://www.webtoolkit.info/)\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + improved by: sowberry\n // + tweaked by: Jack\n // + bugfixed by: Onno Marsman\n // + improved by: Yves Sucaet\n // + bugfixed by: Onno Marsman\n // + bugfixed by: Ulrich\n // + bugfixed by: Rafal Kukawski\n // + improved by: kirilloid\n // * example 1: utf8_encode('Kevin van Zonneveld');\n // * returns 1: 'Kevin van Zonneveld'\n\n if (argString === null || typeof argString === 'undefined') {\n return '';\n }\n\n string = argString + ''; // .replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\");\n\n utftext = '';\n start = void 0;\n end = void 0;\n stringl = 0;\n start = end = 0;\n stringl = string.length;\n n = 0;\n\n while (n < stringl) {\n c1 = string.charCodeAt(n);\n enc = null;\n\n if (c1 < 128) {\n end++;\n } else if (c1 > 127 && c1 < 2048) {\n enc = String.fromCharCode(c1 >> 6 | 192, c1 & 63 | 128);\n } else {\n enc = String.fromCharCode(c1 >> 12 | 224, c1 >> 6 & 63 | 128, c1 & 63 | 128);\n }\n\n if (enc !== null) {\n if (end > start) {\n utftext += string.slice(start, end);\n }\n\n utftext += enc;\n start = end = n + 1;\n }\n\n n++;\n }\n\n if (end > start) {\n utftext += string.slice(start, stringl);\n }\n\n return utftext;\n }; // CONCATENATED MODULE: ./src/crc32.js\n\n /**\n * CRC32 calculator\n * Depends on 'utf8_encode'\n * @private\n * @param {string} str - The string to calculate the CRC32 for.\n * @return {number}\n */\n\n\n function crc32(str) {\n var crc, i, iTop, table, x, y; // http://kevin.vanzonneveld.net\n // + original by: Webtoolkit.info (http://www.webtoolkit.info/)\n // + improved by: T0bsn\n // + improved by: http://stackoverflow.com/questions/2647935/javascript-crc32-function-and-php-crc32-not-matching\n // - depends on: utf8_encode\n // * example 1: crc32('Kevin van Zonneveld');\n // * returns 1: 1249991249\n\n str = src_utf8_encode(str);\n table = '00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D';\n crc = 0;\n x = 0;\n y = 0;\n crc = crc ^ -1;\n i = 0;\n iTop = str.length;\n\n while (i < iTop) {\n y = (crc ^ str.charCodeAt(i)) & 0xFF;\n x = '0x' + table.substr(y * 9, 8);\n crc = crc >>> 8 ^ x;\n i++;\n }\n\n crc = crc ^ -1; //convert to unsigned 32-bit int if needed\n\n if (crc < 0) {\n crc += 4294967296;\n }\n\n return crc;\n }\n /* harmony default export */\n\n\n var src_crc32 = crc32; // CONCATENATED MODULE: ./src/sdkAnalytics/stringPad.js\n\n function stringPad(value, targetLength, padString) {\n targetLength = targetLength >> 0; //truncate if number or convert non-number to 0;\n\n padString = String(typeof padString !== 'undefined' ? padString : ' ');\n\n if (value.length > targetLength) {\n return String(value);\n } else {\n targetLength = targetLength - value.length;\n\n if (targetLength > padString.length) {\n padString += repeatStringNumTimes(padString, targetLength / padString.length);\n }\n\n return padString.slice(0, targetLength) + String(value);\n }\n }\n\n function repeatStringNumTimes(string, times) {\n var repeatedString = \"\";\n\n while (times > 0) {\n repeatedString += string;\n times--;\n }\n\n return repeatedString;\n } // CONCATENATED MODULE: ./src/sdkAnalytics/base64Map.js\n\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n var base64Map_num = 0;\n var map = {};\n\n _toConsumableArray(chars).forEach(function (_char) {\n var key = base64Map_num.toString(2);\n key = stringPad(key, 6, '0');\n map[key] = _char;\n base64Map_num++;\n });\n /**\n * Map of six-bit binary codes to Base64 characters\n */\n\n /* harmony default export */\n\n\n var base64Map = map; // CONCATENATED MODULE: ./src/sdkAnalytics/reverseVersion.js\n\n /**\n * @description A semVer like string, x.y.z or x.y is allowed\n * Reverses the version positions, x.y.z turns to z.y.x\n * Pads each segment with '0' so they have length of 2\n * Example: 1.2.3 -> 03.02.01\n * @param {string} semVer Input can be either x.y.z or x.y\n * @return {string} in the form of zz.yy.xx (\n */\n\n function reverseVersion(semVer) {\n if (semVer.split('.').length < 2) {\n throw new Error('invalid semVer, must have at least two segments');\n } // Split by '.', reverse, create new array with padded values and concat it together\n\n\n return semVer.split('.').reverse().map(function (segment) {\n return stringPad(segment, 2, '0');\n }).join('.');\n } // CONCATENATED MODULE: ./src/sdkAnalytics/encodeVersion.js\n\n /**\n * @description Encodes a semVer-like version string\n * @param {string} semVer Input can be either x.y.z or x.y\n * @return {string} A string built from 3 characters of the base64 table that encode the semVer\n */\n\n\n function encodeVersion(semVer) {\n var strResult = ''; // support x.y or x.y.z by using 'parts' as a variable\n\n var parts = semVer.split('.').length;\n var paddedStringLength = parts * 6; // we pad to either 12 or 18 characters\n // reverse (but don't mirror) the version. 1.5.15 -> 15.5.1\n // Pad to two spaces, 15.5.1 -> 15.05.01\n\n var paddedReversedSemver = reverseVersion(semVer); // turn 15.05.01 to a string '150501' then to a number 150501\n\n var num = parseInt(paddedReversedSemver.split('.').join('')); // Represent as binary, add left padding to 12 or 18 characters.\n // 150,501 -> 100100101111100101\n\n var paddedBinary = num.toString(2);\n paddedBinary = stringPad(paddedBinary, paddedStringLength, '0'); // Stop in case an invalid version number was provided\n // paddedBinary must be built from sections of 6 bits\n\n if (paddedBinary.length % 6 !== 0) {\n throw 'Version must be smaller than 43.21.26)';\n } // turn every 6 bits into a character using the base64Map\n\n\n paddedBinary.match(/.{1,6}/g).forEach(function (bitString) {\n // console.log(bitString);\n strResult += base64Map[bitString];\n });\n return strResult;\n } // CONCATENATED MODULE: ./src/sdkAnalytics/getSDKAnalyticsSignature.js\n\n /**\n * @description Gets the SDK signature by encoding the SDK version and tech version\n * @param {{\n * [techVersion]:string,\n * [sdkSemver]: string,\n * [sdkCode]: string,\n * [feature]: string\n * }} analyticsOptions\n * @return {string} sdkAnalyticsSignature\n */\n\n\n function getSDKAnalyticsSignature() {\n var analyticsOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n try {\n var twoPartVersion = removePatchFromSemver(analyticsOptions.techVersion);\n var encodedSDKVersion = encodeVersion(analyticsOptions.sdkSemver);\n var encodedTechVersion = encodeVersion(twoPartVersion);\n var featureCode = analyticsOptions.feature;\n var SDKCode = analyticsOptions.sdkCode;\n var algoVersion = 'A'; // The algo version is determined here, it should not be an argument\n\n return \"\".concat(algoVersion).concat(SDKCode).concat(encodedSDKVersion).concat(encodedTechVersion).concat(featureCode);\n } catch (e) {\n // Either SDK or Node versions were unparsable\n return 'E';\n }\n }\n /**\n * @description Removes patch version from the semver if it exists\n * Turns x.y.z OR x.y into x.y\n * @param {'x.y.z' || 'x.y' || string} semVerStr\n */\n\n\n function removePatchFromSemver(semVerStr) {\n var parts = semVerStr.split('.');\n return \"\".concat(parts[0], \".\").concat(parts[1]);\n } // CONCATENATED MODULE: ./src/sdkAnalytics/getAnalyticsOptions.js\n\n /**\n * @description Gets the analyticsOptions from options- should include sdkSemver, techVersion, sdkCode, and feature\n * @param options\n * @returns {{sdkSemver: (string), sdkCode, feature: string, techVersion: (string)} || {}}\n */\n\n\n function getAnalyticsOptions(options) {\n var analyticsOptions = {\n sdkSemver: options.sdkSemver,\n techVersion: options.techVersion,\n sdkCode: options.sdkCode,\n feature: '0'\n };\n\n if (options.urlAnalytics) {\n if (options.accessibility) {\n analyticsOptions.feature = 'D';\n }\n\n if (options.loading === 'lazy') {\n analyticsOptions.feature = 'C';\n }\n\n if (options.responsive) {\n analyticsOptions.feature = 'A';\n }\n\n if (options.placeholder) {\n analyticsOptions.feature = 'B';\n }\n\n return analyticsOptions;\n } else {\n return {};\n }\n } // EXTERNAL MODULE: external {\"commonjs\":\"lodash/assign\",\"commonjs2\":\"lodash/assign\",\"amd\":\"lodash/assign\",\"root\":[\"_\",\"assign\"]}\n\n\n var assign_root_assign_ = __webpack_require__(\"lodash/assign\");\n\n var assign_root_assign_default = /*#__PURE__*/__webpack_require__.n(assign_root_assign_); // EXTERNAL MODULE: external {\"commonjs\":\"lodash/cloneDeep\",\"commonjs2\":\"lodash/cloneDeep\",\"amd\":\"lodash/cloneDeep\",\"root\":[\"_\",\"cloneDeep\"]}\n\n\n var cloneDeep_root_cloneDeep_ = __webpack_require__(\"lodash/cloneDeep\");\n\n var cloneDeep_root_cloneDeep_default = /*#__PURE__*/__webpack_require__.n(cloneDeep_root_cloneDeep_); // EXTERNAL MODULE: external {\"commonjs\":\"lodash/compact\",\"commonjs2\":\"lodash/compact\",\"amd\":\"lodash/compact\",\"root\":[\"_\",\"compact\"]}\n\n\n var compact_root_compact_ = __webpack_require__(\"lodash/compact\");\n\n var compact_root_compact_default = /*#__PURE__*/__webpack_require__.n(compact_root_compact_); // EXTERNAL MODULE: external {\"commonjs\":\"lodash/difference\",\"commonjs2\":\"lodash/difference\",\"amd\":\"lodash/difference\",\"root\":[\"_\",\"difference\"]}\n\n\n var difference_root_difference_ = __webpack_require__(\"lodash/difference\");\n\n var difference_root_difference_default = /*#__PURE__*/__webpack_require__.n(difference_root_difference_); // EXTERNAL MODULE: external {\"commonjs\":\"lodash/functions\",\"commonjs2\":\"lodash/functions\",\"amd\":\"lodash/functions\",\"root\":[\"_\",\"functions\"]}\n\n\n var functions_root_functions_ = __webpack_require__(\"lodash/functions\");\n\n var functions_root_functions_default = /*#__PURE__*/__webpack_require__.n(functions_root_functions_); // EXTERNAL MODULE: external {\"commonjs\":\"lodash/identity\",\"commonjs2\":\"lodash/identity\",\"amd\":\"lodash/identity\",\"root\":[\"_\",\"identity\"]}\n\n\n var identity_root_identity_ = __webpack_require__(\"lodash/identity\");\n\n var identity_root_identity_default = /*#__PURE__*/__webpack_require__.n(identity_root_identity_); // EXTERNAL MODULE: external {\"commonjs\":\"lodash/includes\",\"commonjs2\":\"lodash/includes\",\"amd\":\"lodash/includes\",\"root\":[\"_\",\"includes\"]}\n\n\n var includes_root_includes_ = __webpack_require__(\"lodash/includes\");\n\n var includes_root_includes_default = /*#__PURE__*/__webpack_require__.n(includes_root_includes_); // EXTERNAL MODULE: external {\"commonjs\":\"lodash/isArray\",\"commonjs2\":\"lodash/isArray\",\"amd\":\"lodash/isArray\",\"root\":[\"_\",\"isArray\"]}\n\n\n var isArray_root_isArray_ = __webpack_require__(\"lodash/isArray\");\n\n var isArray_root_isArray_default = /*#__PURE__*/__webpack_require__.n(isArray_root_isArray_); // EXTERNAL MODULE: external {\"commonjs\":\"lodash/isPlainObject\",\"commonjs2\":\"lodash/isPlainObject\",\"amd\":\"lodash/isPlainObject\",\"root\":[\"_\",\"isPlainObject\"]}\n\n\n var isPlainObject_root_isPlainObject_ = __webpack_require__(\"lodash/isPlainObject\");\n\n var isPlainObject_root_isPlainObject_default = /*#__PURE__*/__webpack_require__.n(isPlainObject_root_isPlainObject_); // EXTERNAL MODULE: external {\"commonjs\":\"lodash/isString\",\"commonjs2\":\"lodash/isString\",\"amd\":\"lodash/isString\",\"root\":[\"_\",\"isString\"]}\n\n\n var isString_root_isString_ = __webpack_require__(\"lodash/isString\");\n\n var isString_root_isString_default = /*#__PURE__*/__webpack_require__.n(isString_root_isString_); // EXTERNAL MODULE: external {\"commonjs\":\"lodash/merge\",\"commonjs2\":\"lodash/merge\",\"amd\":\"lodash/merge\",\"root\":[\"_\",\"merge\"]}\n\n\n var merge_root_merge_ = __webpack_require__(\"lodash/merge\");\n\n var merge_root_merge_default = /*#__PURE__*/__webpack_require__.n(merge_root_merge_); // EXTERNAL MODULE: external {\"commonjs\":\"lodash/isElement\",\"commonjs2\":\"lodash/isElement\",\"amd\":\"lodash/isElement\",\"root\":[\"_\",\"isElement\"]}\n\n\n var isElement_root_isElement_ = __webpack_require__(\"lodash/isElement\");\n\n var isElement_root_isElement_default = /*#__PURE__*/__webpack_require__.n(isElement_root_isElement_); // EXTERNAL MODULE: external {\"commonjs\":\"lodash/isFunction\",\"commonjs2\":\"lodash/isFunction\",\"amd\":\"lodash/isFunction\",\"root\":[\"_\",\"isFunction\"]}\n\n\n var isFunction_root_isFunction_ = __webpack_require__(\"lodash/isFunction\");\n\n var isFunction_root_isFunction_default = /*#__PURE__*/__webpack_require__.n(isFunction_root_isFunction_); // EXTERNAL MODULE: external {\"commonjs\":\"lodash/trim\",\"commonjs2\":\"lodash/trim\",\"amd\":\"lodash/trim\",\"root\":[\"_\",\"trim\"]}\n\n\n var trim_root_trim_ = __webpack_require__(\"lodash/trim\");\n\n var trim_root_trim_default = /*#__PURE__*/__webpack_require__.n(trim_root_trim_); // CONCATENATED MODULE: ./src/util/lazyLoad.js\n\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n /*\n * Includes utility methods for lazy loading media\n */\n\n /**\n * Check if IntersectionObserver is supported\n * @return {boolean} true if window.IntersectionObserver is defined\n */\n\n\n function isIntersectionObserverSupported() {\n // Check that 'IntersectionObserver' property is defined on window\n return (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && window.IntersectionObserver;\n }\n /**\n * Check if native lazy loading is supported\n * @return {boolean} true if 'loading' property is defined for HTMLImageElement\n */\n\n\n function isNativeLazyLoadSupported() {\n return (typeof HTMLImageElement === \"undefined\" ? \"undefined\" : _typeof(HTMLImageElement)) === \"object\" && HTMLImageElement.prototype.loading;\n }\n /**\n * Calls onIntersect() when intersection is detected, or when\n * no native lazy loading or when IntersectionObserver isn't supported.\n * @param {Element} el - the element to observe\n * @param {function} onIntersect - called when the given element is in view\n */\n\n\n function detectIntersection(el, onIntersect) {\n try {\n if (isNativeLazyLoadSupported() || !isIntersectionObserverSupported()) {\n // Return if there's no need or possibility to detect intersection\n onIntersect();\n return;\n } // Detect intersection with given element using IntersectionObserver\n\n\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (entry.isIntersecting) {\n onIntersect();\n observer.unobserve(entry.target);\n }\n });\n }, {\n threshold: [0, 0.01]\n });\n observer.observe(el);\n } catch (e) {\n onIntersect();\n }\n } // CONCATENATED MODULE: ./src/constants.js\n\n\n var VERSION = \"2.5.0\";\n var CF_SHARED_CDN = \"d3jpl91pxevbkh.cloudfront.net\";\n var OLD_AKAMAI_SHARED_CDN = \"cloudinary-a.akamaihd.net\";\n var AKAMAI_SHARED_CDN = \"res.cloudinary.com\";\n var SHARED_CDN = AKAMAI_SHARED_CDN;\n var DEFAULT_TIMEOUT_MS = 10000;\n var DEFAULT_POSTER_OPTIONS = {\n format: 'jpg',\n resource_type: 'video'\n };\n var DEFAULT_VIDEO_SOURCE_TYPES = ['webm', 'mp4', 'ogv'];\n var SEO_TYPES = {\n \"image/upload\": \"images\",\n \"image/private\": \"private_images\",\n \"image/authenticated\": \"authenticated_images\",\n \"raw/upload\": \"files\",\n \"video/upload\": \"videos\"\n };\n /**\n * @const {Object} Cloudinary.DEFAULT_IMAGE_PARAMS\n * Defaults values for image parameters.\n *\n * (Previously defined using option_consume() )\n */\n\n var DEFAULT_IMAGE_PARAMS = {\n resource_type: \"image\",\n transformation: [],\n type: 'upload'\n };\n /**\n * Defaults values for video parameters.\n * @const {Object} Cloudinary.DEFAULT_VIDEO_PARAMS\n * (Previously defined using option_consume() )\n */\n\n var DEFAULT_VIDEO_PARAMS = {\n fallback_content: '',\n resource_type: \"video\",\n source_transformation: {},\n source_types: DEFAULT_VIDEO_SOURCE_TYPES,\n transformation: [],\n type: 'upload'\n };\n /**\n * Recommended sources for video tag\n * @const {Object} Cloudinary.DEFAULT_VIDEO_SOURCES\n */\n\n var DEFAULT_VIDEO_SOURCES = [{\n type: \"mp4\",\n codecs: \"hev1\",\n transformations: {\n video_codec: \"h265\"\n }\n }, {\n type: \"webm\",\n codecs: \"vp9\",\n transformations: {\n video_codec: \"vp9\"\n }\n }, {\n type: \"mp4\",\n transformations: {\n video_codec: \"auto\"\n }\n }, {\n type: \"webm\",\n transformations: {\n video_codec: \"auto\"\n }\n }];\n var DEFAULT_EXTERNAL_LIBRARIES = {\n seeThru: 'https://unpkg.com/seethru@4/dist/seeThru.min.js'\n };\n /**\n * Predefined placeholder transformations\n * @const {Object} Cloudinary.PLACEHOLDER_IMAGE_MODES\n */\n\n var PLACEHOLDER_IMAGE_MODES = {\n 'blur': [{\n effect: 'blur:2000',\n quality: 1,\n fetch_format: 'auto'\n }],\n // Default\n 'pixelate': [{\n effect: 'pixelate',\n quality: 1,\n fetch_format: 'auto'\n }],\n // Generates a pixel size image which color is the predominant color of the original image.\n 'predominant-color-pixel': [{\n width: 'iw_div_2',\n aspect_ratio: 1,\n crop: 'pad',\n background: 'auto'\n }, {\n crop: 'crop',\n width: 1,\n height: 1,\n gravity: 'north_east'\n }, {\n fetch_format: 'auto',\n quality: 'auto'\n }],\n // Generates an image which color is the predominant color of the original image.\n 'predominant-color': [{\n variables: [['$currWidth', 'w'], ['$currHeight', 'h']]\n }, {\n width: 'iw_div_2',\n aspect_ratio: 1,\n crop: 'pad',\n background: 'auto'\n }, {\n crop: 'crop',\n width: 10,\n height: 10,\n gravity: 'north_east'\n }, {\n width: '$currWidth',\n height: '$currHeight',\n crop: 'fill'\n }, {\n fetch_format: 'auto',\n quality: 'auto'\n }],\n 'vectorize': [{\n effect: 'vectorize:3:0.1',\n fetch_format: 'svg'\n }]\n };\n /**\n * Predefined accessibility transformations\n * @const {Object} Cloudinary.ACCESSIBILITY_MODES\n */\n\n var ACCESSIBILITY_MODES = {\n darkmode: 'tint:75:black',\n brightmode: 'tint:50:white',\n monochrome: 'grayscale',\n colorblind: 'assist_colorblind'\n };\n /**\n * A list of keys used by the url() function.\n * @private\n */\n\n var URL_KEYS = ['accessibility', 'api_secret', 'auth_token', 'cdn_subdomain', 'cloud_name', 'cname', 'format', 'placeholder', 'private_cdn', 'resource_type', 'secure', 'secure_cdn_subdomain', 'secure_distribution', 'shorten', 'sign_url', 'signature', 'ssl_detected', 'type', 'url_suffix', 'use_root_path', 'version'];\n /**\n * The resource storage type\n * @typedef type\n * @enum {string}\n * @property {string} 'upload' A resource uploaded directly to Cloudinary\n * @property {string} 'fetch' A resource fetched by Cloudinary from a 3rd party storage\n * @property {string} 'private'\n * @property {string} 'authenticated'\n * @property {string} 'sprite'\n * @property {string} 'facebook'\n * @property {string} 'twitter'\n * @property {string} 'youtube'\n * @property {string} 'vimeo'\n *\n */\n\n /**\n * The resource type\n * @typedef resourceType\n * @enum {string}\n * @property {string} 'image' An image file\n * @property {string} 'video' A video file\n * @property {string} 'raw' A raw file\n */\n // CONCATENATED MODULE: ./src/util/baseutil.js\n\n function baseutil_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n baseutil_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n baseutil_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return baseutil_typeof(obj);\n }\n /*\n * Includes common utility methods and shims\n */\n\n\n function omit(obj, keys) {\n obj = obj || {};\n var srcKeys = Object.keys(obj).filter(function (key) {\n return !includes_root_includes_default()(keys, key);\n });\n var filtered = {};\n srcKeys.forEach(function (key) {\n return filtered[key] = obj[key];\n });\n return filtered;\n }\n /**\n * Return true if all items in list are strings\n * @function Util.allString\n * @param {Array} list - an array of items\n */\n\n\n var baseutil_allStrings = function allStrings(list) {\n return list.length && list.every(isString_root_isString_default.a);\n };\n /**\n * Creates a new array without the given item.\n * @function Util.without\n * @param {Array} array - original array\n * @param {*} item - the item to exclude from the new array\n * @return {Array} a new array made of the original array's items except for `item`\n */\n\n\n var without = function without(array, item) {\n return array.filter(function (v) {\n return v !== item;\n });\n };\n /**\n * Return true is value is a number or a string representation of a number.\n * @function Util.isNumberLike\n * @param {*} value\n * @returns {boolean} true if value is a number\n * @example\n * Util.isNumber(0) // true\n * Util.isNumber(\"1.3\") // true\n * Util.isNumber(\"\") // false\n * Util.isNumber(undefined) // false\n */\n\n\n var isNumberLike = function isNumberLike(value) {\n return value != null && !isNaN(parseFloat(value));\n };\n /**\n * Escape all characters matching unsafe in the given string\n * @function Util.smartEscape\n * @param {string} string - source string to escape\n * @param {RegExp} unsafe - characters that must be escaped\n * @return {string} escaped string\n */\n\n\n var smartEscape = function smartEscape(string) {\n var unsafe = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : /([^a-zA-Z0-9_.\\-\\/:]+)/g;\n return string.replace(unsafe, function (match) {\n return match.split(\"\").map(function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n }).join(\"\");\n });\n };\n /**\n * Assign values from sources if they are not defined in the destination.\n * Once a value is set it does not change\n * @function Util.defaults\n * @param {Object} destination - the object to assign defaults to\n * @param {...Object} source - the source object(s) to assign defaults from\n * @return {Object} destination after it was modified\n */\n\n\n var defaults = function defaults(destination) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n return sources.reduce(function (dest, source) {\n var key, value;\n\n for (key in source) {\n value = source[key];\n\n if (dest[key] === void 0) {\n dest[key] = value;\n }\n }\n\n return dest;\n }, destination);\n };\n /*********** lodash functions */\n\n\n var objectProto = Object.prototype;\n /**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\n\n var objToString = objectProto.toString;\n /**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n #isObject({});\n * // => true\n *\n #isObject([1, 2, 3]);\n * // => true\n *\n #isObject(1);\n * // => false\n */\n\n var isObject = function isObject(value) {\n var type; // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\n type = baseutil_typeof(value);\n return !!value && (type === 'object' || type === 'function');\n };\n\n var funcTag = '[object Function]';\n /**\n * Checks if `value` is classified as a `Function` object.\n * @function Util.isFunction\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * function Foo(){};\n * isFunction(Foo);\n * // => true\n *\n * isFunction(/abc/);\n * // => false\n */\n\n var isFunction = function isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 which returns 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) === funcTag;\n };\n /*********** lodash functions */\n\n /** Used to match words to create compound words. */\n\n\n var reWords = function () {\n var lower, upper;\n upper = '[A-Z]';\n lower = '[a-z]+';\n return RegExp(upper + '+(?=' + upper + lower + ')|' + upper + '?' + lower + '|' + upper + '+|[0-9]+', 'g');\n }();\n /**\n * Convert string to camelCase\n * @function Util.camelCase\n * @param {string} source - the string to convert\n * @return {string} in camelCase format\n */\n\n\n var camelCase = function camelCase(source) {\n var words = source.match(reWords);\n words = words.map(function (word) {\n return word.charAt(0).toLocaleUpperCase() + word.slice(1).toLocaleLowerCase();\n });\n words[0] = words[0].toLocaleLowerCase();\n return words.join('');\n };\n /**\n * Convert string to snake_case\n * @function Util.snakeCase\n * @param {string} source - the string to convert\n * @return {string} in snake_case format\n */\n\n\n var snakeCase = function snakeCase(source) {\n var words = source.match(reWords);\n words = words.map(function (word) {\n return word.toLocaleLowerCase();\n });\n return words.join('_');\n };\n /**\n * Creates a new object from source, with the keys transformed using the converter.\n * @param {object} source\n * @param {function|null} converter\n * @returns {object}\n */\n\n\n var convertKeys = function convertKeys(source, converter) {\n var result, value;\n result = {};\n\n for (var key in source) {\n value = source[key];\n\n if (converter) {\n key = converter(key);\n }\n\n if (!isEmpty(key)) {\n result[key] = value;\n }\n }\n\n return result;\n };\n /**\n * Create a copy of the source object with all keys in camelCase\n * @function Util.withCamelCaseKeys\n * @param {Object} value - the object to copy\n * @return {Object} a new object\n */\n\n\n var withCamelCaseKeys = function withCamelCaseKeys(source) {\n return convertKeys(source, camelCase);\n };\n /**\n * Create a copy of the source object with all keys in snake_case\n * @function Util.withSnakeCaseKeys\n * @param {Object} value - the object to copy\n * @return {Object} a new object\n */\n\n\n var withSnakeCaseKeys = function withSnakeCaseKeys(source) {\n return convertKeys(source, snakeCase);\n }; // Browser\n // Node.js\n\n\n var base64Encode = typeof btoa !== 'undefined' && isFunction(btoa) ? btoa : typeof Buffer !== 'undefined' && isFunction(Buffer) ? function (input) {\n if (!(input instanceof Buffer)) {\n input = new Buffer.from(String(input), 'binary');\n }\n\n return input.toString('base64');\n } : function (input) {\n throw new Error(\"No base64 encoding function found\");\n };\n /**\n * Returns the Base64-decoded version of url.<br>\n * This method delegates to `btoa` if present. Otherwise it tries `Buffer`.\n * @function Util.base64EncodeURL\n * @param {string} url - the url to encode. the value is URIdecoded and then re-encoded before converting to base64 representation\n * @return {string} the base64 representation of the URL\n */\n\n var base64EncodeURL = function base64EncodeURL(url) {\n try {\n url = decodeURI(url);\n } finally {\n url = encodeURI(url);\n }\n\n return base64Encode(url);\n };\n /**\n * Create a new object with only URL parameters\n * @param {object} options The source object\n * @return {Object} An object containing only URL parameters\n */\n\n\n function extractUrlParams(options) {\n return URL_KEYS.reduce(function (obj, key) {\n if (options[key] != null) {\n obj[key] = options[key];\n }\n\n return obj;\n }, {});\n }\n /**\n * Handle the format parameter for fetch urls\n * @private\n * @param options url and transformation options. This argument may be changed by the function!\n */\n\n\n function patchFetchFormat(options) {\n if (options == null) {\n options = {};\n }\n\n if (options.type === \"fetch\") {\n if (options.fetch_format == null) {\n options.fetch_format = optionConsume(options, \"format\");\n }\n }\n }\n /**\n * Deletes `option_name` from `options` and return the value if present.\n * If `options` doesn't contain `option_name` the default value is returned.\n * @param {Object} options a collection\n * @param {String} option_name the name (key) of the desired value\n * @param {*} [default_value] the value to return is option_name is missing\n */\n\n\n function optionConsume(options, option_name, default_value) {\n var result = options[option_name];\n delete options[option_name];\n\n if (result != null) {\n return result;\n } else {\n return default_value;\n }\n }\n /**\n * Returns true if value is empty:\n * <ul>\n * <li>value is null or undefined</li>\n * <li>value is an array or string of length 0</li>\n * <li>value is an object with no keys</li>\n * </ul>\n * @function Util.isEmpty\n * @param value\n * @returns {boolean} true if value is empty\n */\n\n\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n\n if (typeof value.length == \"number\") {\n return value.length === 0;\n }\n\n if (typeof value.size == \"number\") {\n return value.size === 0;\n }\n\n if (baseutil_typeof(value) == \"object\") {\n for (var key in value) {\n if (value.hasOwnProperty(key)) {\n return false;\n }\n }\n\n return true;\n }\n\n return true;\n } // CONCATENATED MODULE: ./src/util/lodash.js\n\n\n var nodeContains;\n /*\n * Includes utility methods and lodash / jQuery shims\n */\n\n /**\n * Get data from the DOM element.\n *\n * This method will use jQuery's `data()` method if it is available, otherwise it will get the `data-` attribute\n * @param {Element} element - the element to get the data from\n * @param {string} name - the name of the data item\n * @returns the value associated with the `name`\n * @function Util.getData\n */\n\n var lodash_getData = function getData(element, name) {\n switch (false) {\n case !(element == null):\n return void 0;\n\n case !isFunction_root_isFunction_default()(element.getAttribute):\n return element.getAttribute(\"data-\".concat(name));\n\n case !isFunction_root_isFunction_default()(element.getAttr):\n return element.getAttr(\"data-\".concat(name));\n\n case !isFunction_root_isFunction_default()(element.data):\n return element.data(name);\n\n case !(isFunction_root_isFunction_default()(typeof jQuery !== \"undefined\" && jQuery.fn && jQuery.fn.data) && isElement_root_isElement_default()(element)):\n return jQuery(element).data(name);\n }\n };\n /**\n * Set data in the DOM element.\n *\n * This method will use jQuery's `data()` method if it is available, otherwise it will set the `data-` attribute\n * @function Util.setData\n * @param {Element} element - the element to set the data in\n * @param {string} name - the name of the data item\n * @param {*} value - the value to be set\n *\n */\n\n\n var lodash_setData = function setData(element, name, value) {\n switch (false) {\n case !(element == null):\n return void 0;\n\n case !isFunction_root_isFunction_default()(element.setAttribute):\n return element.setAttribute(\"data-\".concat(name), value);\n\n case !isFunction_root_isFunction_default()(element.setAttr):\n return element.setAttr(\"data-\".concat(name), value);\n\n case !isFunction_root_isFunction_default()(element.data):\n return element.data(name, value);\n\n case !(isFunction_root_isFunction_default()(typeof jQuery !== \"undefined\" && jQuery.fn && jQuery.fn.data) && isElement_root_isElement_default()(element)):\n return jQuery(element).data(name, value);\n }\n };\n /**\n * Get attribute from the DOM element.\n *\n * @function Util.getAttribute\n * @param {Element} element - the element to set the attribute for\n * @param {string} name - the name of the attribute\n * @returns {*} the value of the attribute\n *\n */\n\n\n var lodash_getAttribute = function getAttribute(element, name) {\n switch (false) {\n case !(element == null):\n return void 0;\n\n case !isFunction_root_isFunction_default()(element.getAttribute):\n return element.getAttribute(name);\n\n case !isFunction_root_isFunction_default()(element.attr):\n return element.attr(name);\n\n case !isFunction_root_isFunction_default()(element.getAttr):\n return element.getAttr(name);\n }\n };\n /**\n * Set attribute in the DOM element.\n *\n * @function Util.setAttribute\n * @param {Element} element - the element to set the attribute for\n * @param {string} name - the name of the attribute\n * @param {*} value - the value to be set\n */\n\n\n var lodash_setAttribute = function setAttribute(element, name, value) {\n switch (false) {\n case !(element == null):\n return void 0;\n\n case !isFunction_root_isFunction_default()(element.setAttribute):\n return element.setAttribute(name, value);\n\n case !isFunction_root_isFunction_default()(element.attr):\n return element.attr(name, value);\n\n case !isFunction_root_isFunction_default()(element.setAttr):\n return element.setAttr(name, value);\n }\n };\n /**\n * Remove an attribute in the DOM element.\n *\n * @function Util.removeAttribute\n * @param {Element} element - the element to set the attribute for\n * @param {string} name - the name of the attribute\n */\n\n\n var lodash_removeAttribute = function removeAttribute(element, name) {\n switch (false) {\n case !(element == null):\n return void 0;\n\n case !isFunction_root_isFunction_default()(element.removeAttribute):\n return element.removeAttribute(name);\n\n default:\n return lodash_setAttribute(element, void 0);\n }\n };\n /**\n * Set a group of attributes to the element\n * @function Util.setAttributes\n * @param {Element} element - the element to set the attributes for\n * @param {Object} attributes - a hash of attribute names and values\n */\n\n\n var setAttributes = function setAttributes(element, attributes) {\n var name, results, value;\n results = [];\n\n for (name in attributes) {\n value = attributes[name];\n\n if (value != null) {\n results.push(lodash_setAttribute(element, name, value));\n } else {\n results.push(lodash_removeAttribute(element, name));\n }\n }\n\n return results;\n };\n /**\n * Checks if element has a css class\n * @function Util.hasClass\n * @param {Element} element - the element to check\n * @param {string} name - the class name\n @returns {boolean} true if the element has the class\n */\n\n\n var lodash_hasClass = function hasClass(element, name) {\n if (isElement_root_isElement_default()(element)) {\n return element.className.match(new RegExp(\"\\\\b\".concat(name, \"\\\\b\")));\n }\n };\n /**\n * Add class to the element\n * @function Util.addClass\n * @param {Element} element - the element\n * @param {string} name - the class name to add\n */\n\n\n var lodash_addClass = function addClass(element, name) {\n if (!element.className.match(new RegExp(\"\\\\b\".concat(name, \"\\\\b\")))) {\n return element.className = trim_root_trim_default()(\"\".concat(element.className, \" \").concat(name));\n }\n }; // The following code is taken from jQuery\n\n\n var getStyles = function getStyles(elem) {\n // Support: IE<=11+, Firefox<=30+ (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n if (elem.ownerDocument.defaultView.opener) {\n return elem.ownerDocument.defaultView.getComputedStyle(elem, null);\n }\n\n return window.getComputedStyle(elem, null);\n };\n\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n\n nodeContains = function nodeContains(a, b) {\n var adown, bup;\n adown = a.nodeType === 9 ? a.documentElement : a;\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && adown.contains(bup));\n }; // Truncated version of jQuery.style(elem, name)\n\n\n var domStyle = function domStyle(elem, name) {\n if (!(!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style)) {\n return elem.style[name];\n }\n };\n\n var curCSS = function curCSS(elem, name, computed) {\n var maxWidth, minWidth, ret, rmargin, style, width;\n rmargin = /^margin/;\n width = void 0;\n minWidth = void 0;\n maxWidth = void 0;\n ret = void 0;\n style = elem.style;\n computed = computed || getStyles(elem);\n\n if (computed) {\n // Support: IE9\n // getPropertyValue is only needed for .css('filter') (#12537)\n ret = computed.getPropertyValue(name) || computed[name];\n }\n\n if (computed) {\n if (ret === \"\" && !nodeContains(elem.ownerDocument, elem)) {\n ret = domStyle(elem, name);\n } // Support: iOS < 6\n // A tribute to the \"awesome hack by Dean Edwards\"\n // iOS < 6 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels\n // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values\n\n\n if (rnumnonpx.test(ret) && rmargin.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n } // Support: IE\n // IE returns zIndex value as an integer.\n\n\n if (ret !== undefined) {\n return ret + \"\";\n } else {\n return ret;\n }\n };\n\n var cssValue = function cssValue(elem, name, convert, styles) {\n var val;\n val = curCSS(elem, name, styles);\n\n if (convert) {\n return parseFloat(val);\n } else {\n return val;\n }\n };\n\n var augmentWidthOrHeight = function augmentWidthOrHeight(elem, name, extra, isBorderBox, styles) {\n var i, len, side, sides, val; // If we already have the right measurement, avoid augmentation\n // Otherwise initialize for horizontal or vertical properties\n\n if (extra === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n } else {\n sides = name === \"width\" ? [\"Right\", \"Left\"] : [\"Top\", \"Bottom\"];\n val = 0;\n\n for (i = 0, len = sides.length; i < len; i++) {\n side = sides[i];\n\n if (extra === \"margin\") {\n // Both box models exclude margin, so add it if we want it\n val += cssValue(elem, extra + side, true, styles);\n }\n\n if (isBorderBox) {\n if (extra === \"content\") {\n // border-box includes padding, so remove it if we want content\n val -= cssValue(elem, \"padding\".concat(side), true, styles);\n }\n\n if (extra !== \"margin\") {\n // At this point, extra isn't border nor margin, so remove border\n val -= cssValue(elem, \"border\".concat(side, \"Width\"), true, styles);\n }\n } else {\n // At this point, extra isn't content, so add padding\n val += cssValue(elem, \"padding\".concat(side), true, styles);\n\n if (extra !== \"padding\") {\n // At this point, extra isn't content nor padding, so add border\n val += cssValue(elem, \"border\".concat(side, \"Width\"), true, styles);\n }\n }\n }\n\n return val;\n }\n };\n\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\n var getWidthOrHeight = function getWidthOrHeight(elem, name, extra) {\n var isBorderBox, styles, val, valueIsBorderBox; // Start with offset property, which is equivalent to the border-box value\n\n valueIsBorderBox = true;\n val = name === \"width\" ? elem.offsetWidth : elem.offsetHeight;\n styles = getStyles(elem);\n isBorderBox = cssValue(elem, \"boxSizing\", false, styles) === \"border-box\"; // Some non-html elements return undefined for offsetWidth, so check for null/undefined\n // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\n // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\n\n if (val <= 0 || val == null) {\n // Fall back to computed then uncomputed css if necessary\n val = curCSS(elem, name, styles);\n\n if (val < 0 || val == null) {\n val = elem.style[name];\n }\n\n if (rnumnonpx.test(val)) {\n // Computed unit is not pixels. Stop here and return.\n return val;\n } // Check for style in case a browser which returns unreliable values\n // for getComputedStyle silently falls back to the reliable elem.style\n // valueIsBorderBox = isBorderBox and (support.boxSizingReliable() or val is elem.style[name])\n\n\n valueIsBorderBox = isBorderBox && val === elem.style[name]; // Normalize \"\", auto, and prepare for extra\n\n val = parseFloat(val) || 0;\n } // Use the active box-sizing model to add/subtract irrelevant styles\n\n\n return val + augmentWidthOrHeight(elem, name, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles);\n };\n\n var lodash_width = function width(element) {\n return getWidthOrHeight(element, \"width\", \"content\");\n };\n /**\n * @class Util\n */\n\n /**\n * Returns true if item is a string\n * @function Util.isString\n * @param item\n * @returns {boolean} true if item is a string\n */\n\n /**\n * Returns true if item is empty:\n * <ul>\n * <li>item is null or undefined</li>\n * <li>item is an array or string of length 0</li>\n * <li>item is an object with no keys</li>\n * </ul>\n * @function Util.isEmpty\n * @param item\n * @returns {boolean} true if item is empty\n */\n\n /**\n * Assign source properties to destination.\n * If the property is an object it is assigned as a whole, overriding the destination object.\n * @function Util.assign\n * @param {Object} destination - the object to assign to\n */\n\n /**\n * Recursively assign source properties to destination\n * @function Util.merge\n * @param {Object} destination - the object to assign to\n * @param {...Object} [sources] The source objects.\n */\n\n /**\n * Create a new copy of the given object, including all internal objects.\n * @function Util.cloneDeep\n * @param {Object} value - the object to clone\n * @return {Object} a new deep copy of the object\n */\n\n /**\n * Creates a new array from the parameter with \"falsey\" values removed\n * @function Util.compact\n * @param {Array} array - the array to remove values from\n * @return {Array} a new array without falsey values\n */\n\n /**\n * Check if a given item is included in the given array\n * @function Util.contains\n * @param {Array} array - the array to search in\n * @param {*} item - the item to search for\n * @return {boolean} true if the item is included in the array\n */\n\n /**\n * Returns values in the given array that are not included in the other array\n * @function Util.difference\n * @param {Array} arr - the array to select from\n * @param {Array} values - values to filter from arr\n * @return {Array} the filtered values\n */\n\n /**\n * Returns a list of all the function names in obj\n * @function Util.functions\n * @param {Object} object - the object to inspect\n * @return {Array} a list of functions of object\n */\n\n /**\n * Returns the provided value. This functions is used as a default predicate function.\n * @function Util.identity\n * @param {*} value\n * @return {*} the provided value\n */\n\n /**\n * Remove leading or trailing spaces from text\n * @function Util.trim\n * @param {string} text\n * @return {string} the `text` without leading or trailing spaces\n */\n // CONCATENATED MODULE: ./src/expression.js\n\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n /**\n * Represents a transformation expression.\n * @param {string} expressionStr - An expression in string format.\n * @class Expression\n * Normally this class is not instantiated directly\n */\n\n\n var Expression = /*#__PURE__*/function () {\n function Expression(expressionStr) {\n _classCallCheck(this, Expression);\n /**\n * @protected\n * @inner Expression-expressions\n */\n\n\n this.expressions = [];\n\n if (expressionStr != null) {\n this.expressions.push(Expression.normalize(expressionStr));\n }\n }\n /**\n * Convenience constructor method\n * @function Expression.new\n */\n\n\n _createClass(Expression, [{\n key: \"serialize\",\n value:\n /**\n * Serialize the expression\n * @return {string} the expression as a string\n */\n function serialize() {\n return Expression.normalize(this.expressions.join(\"_\"));\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return this.serialize();\n }\n /**\n * Get the parent transformation of this expression\n * @return Transformation\n */\n\n }, {\n key: \"getParent\",\n value: function getParent() {\n return this.parent;\n }\n /**\n * Set the parent transformation of this expression\n * @param {Transformation} the parent transformation\n * @return {Expression} this expression\n */\n\n }, {\n key: \"setParent\",\n value: function setParent(parent) {\n this.parent = parent;\n return this;\n }\n /**\n * Add a expression\n * @function Expression#predicate\n * @internal\n */\n\n }, {\n key: \"predicate\",\n value: function predicate(name, operator, value) {\n if (Expression.OPERATORS[operator] != null) {\n operator = Expression.OPERATORS[operator];\n }\n\n this.expressions.push(\"\".concat(name, \"_\").concat(operator, \"_\").concat(value));\n return this;\n }\n /**\n * @function Expression#and\n */\n\n }, {\n key: \"and\",\n value: function and() {\n this.expressions.push(\"and\");\n return this;\n }\n /**\n * @function Expression#or\n */\n\n }, {\n key: \"or\",\n value: function or() {\n this.expressions.push(\"or\");\n return this;\n }\n /**\n * Conclude expression\n * @function Expression#then\n * @return {Transformation} the transformation this expression is defined for\n */\n\n }, {\n key: \"then\",\n value: function then() {\n return this.getParent()[\"if\"](this.toString());\n }\n /**\n * @function Expression#height\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Expression} this expression\n */\n\n }, {\n key: \"height\",\n value: function height(operator, value) {\n return this.predicate(\"h\", operator, value);\n }\n /**\n * @function Expression#width\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Expression} this expression\n */\n\n }, {\n key: \"width\",\n value: function width(operator, value) {\n return this.predicate(\"w\", operator, value);\n }\n /**\n * @function Expression#aspectRatio\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Expression} this expression\n */\n\n }, {\n key: \"aspectRatio\",\n value: function aspectRatio(operator, value) {\n return this.predicate(\"ar\", operator, value);\n }\n /**\n * @function Expression#pages\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Expression} this expression\n */\n\n }, {\n key: \"pageCount\",\n value: function pageCount(operator, value) {\n return this.predicate(\"pc\", operator, value);\n }\n /**\n * @function Expression#faces\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Expression} this expression\n */\n\n }, {\n key: \"faceCount\",\n value: function faceCount(operator, value) {\n return this.predicate(\"fc\", operator, value);\n }\n }, {\n key: \"value\",\n value: function value(_value) {\n this.expressions.push(_value);\n return this;\n }\n /**\n */\n\n }], [{\n key: \"new\",\n value: function _new(expressionStr) {\n return new this(expressionStr);\n }\n /**\n * Normalize a string expression\n * @function Cloudinary#normalize\n * @param {string} expression a expression, e.g. \"w gt 100\", \"width_gt_100\", \"width > 100\"\n * @return {string} the normalized form of the value expression, e.g. \"w_gt_100\"\n */\n\n }, {\n key: \"normalize\",\n value: function normalize(expression) {\n if (expression == null) {\n return expression;\n }\n\n expression = String(expression);\n var operators = \"\\\\|\\\\||>=|<=|&&|!=|>|=|<|/|-|\\\\+|\\\\*|\\\\^\"; // operators\n\n var operatorsPattern = \"((\" + operators + \")(?=[ _]))\";\n var operatorsReplaceRE = new RegExp(operatorsPattern, \"g\");\n expression = expression.replace(operatorsReplaceRE, function (match) {\n return Expression.OPERATORS[match];\n }); // predefined variables\n // The :${v} part is to prevent normalization of vars with a preceding colon (such as :duration),\n // It won't be found in PREDEFINED_VARS and so won't be normalized.\n // It is done like this because ie11 does not support regex lookbehind\n\n var predefinedVarsPattern = \"(\" + Object.keys(Expression.PREDEFINED_VARS).map(function (v) {\n return \":\".concat(v, \"|\").concat(v);\n }).join(\"|\") + \")\";\n var userVariablePattern = '(\\\\$_*[^_ ]+)';\n var variablesReplaceRE = new RegExp(\"\".concat(userVariablePattern, \"|\").concat(predefinedVarsPattern), \"g\");\n expression = expression.replace(variablesReplaceRE, function (match) {\n return Expression.PREDEFINED_VARS[match] || match;\n });\n return expression.replace(/[ _]+/g, '_');\n }\n }, {\n key: \"variable\",\n value: function variable(name, value) {\n return new this(name).value(value);\n }\n /**\n * @returns Expression a new expression with the predefined variable \"width\"\n * @function Expression.width\n */\n\n }, {\n key: \"width\",\n value: function width() {\n return new this(\"width\");\n }\n /**\n * @returns Expression a new expression with the predefined variable \"height\"\n * @function Expression.height\n */\n\n }, {\n key: \"height\",\n value: function height() {\n return new this(\"height\");\n }\n /**\n * @returns Expression a new expression with the predefined variable \"initialWidth\"\n * @function Expression.initialWidth\n */\n\n }, {\n key: \"initialWidth\",\n value: function initialWidth() {\n return new this(\"initialWidth\");\n }\n /**\n * @returns Expression a new expression with the predefined variable \"initialHeight\"\n * @function Expression.initialHeight\n */\n\n }, {\n key: \"initialHeight\",\n value: function initialHeight() {\n return new this(\"initialHeight\");\n }\n /**\n * @returns Expression a new expression with the predefined variable \"aspectRatio\"\n * @function Expression.aspectRatio\n */\n\n }, {\n key: \"aspectRatio\",\n value: function aspectRatio() {\n return new this(\"aspectRatio\");\n }\n /**\n * @returns Expression a new expression with the predefined variable \"initialAspectRatio\"\n * @function Expression.initialAspectRatio\n */\n\n }, {\n key: \"initialAspectRatio\",\n value: function initialAspectRatio() {\n return new this(\"initialAspectRatio\");\n }\n /**\n * @returns Expression a new expression with the predefined variable \"pageCount\"\n * @function Expression.pageCount\n */\n\n }, {\n key: \"pageCount\",\n value: function pageCount() {\n return new this(\"pageCount\");\n }\n /**\n * @returns Expression new expression with the predefined variable \"faceCount\"\n * @function Expression.faceCount\n */\n\n }, {\n key: \"faceCount\",\n value: function faceCount() {\n return new this(\"faceCount\");\n }\n /**\n * @returns Expression a new expression with the predefined variable \"currentPage\"\n * @function Expression.currentPage\n */\n\n }, {\n key: \"currentPage\",\n value: function currentPage() {\n return new this(\"currentPage\");\n }\n /**\n * @returns Expression a new expression with the predefined variable \"tags\"\n * @function Expression.tags\n */\n\n }, {\n key: \"tags\",\n value: function tags() {\n return new this(\"tags\");\n }\n /**\n * @returns Expression a new expression with the predefined variable \"pageX\"\n * @function Expression.pageX\n */\n\n }, {\n key: \"pageX\",\n value: function pageX() {\n return new this(\"pageX\");\n }\n /**\n * @returns Expression a new expression with the predefined variable \"pageY\"\n * @function Expression.pageY\n */\n\n }, {\n key: \"pageY\",\n value: function pageY() {\n return new this(\"pageY\");\n }\n }]);\n\n return Expression;\n }();\n /**\n * @internal\n */\n\n\n Expression.OPERATORS = {\n \"=\": 'eq',\n \"!=\": 'ne',\n \"<\": 'lt',\n \">\": 'gt',\n \"<=\": 'lte',\n \">=\": 'gte',\n \"&&\": 'and',\n \"||\": 'or',\n \"*\": \"mul\",\n \"/\": \"div\",\n \"+\": \"add\",\n \"-\": \"sub\",\n \"^\": \"pow\"\n };\n /**\n * @internal\n */\n\n Expression.PREDEFINED_VARS = {\n \"aspect_ratio\": \"ar\",\n \"aspectRatio\": \"ar\",\n \"current_page\": \"cp\",\n \"currentPage\": \"cp\",\n \"duration\": \"du\",\n \"face_count\": \"fc\",\n \"faceCount\": \"fc\",\n \"height\": \"h\",\n \"initial_aspect_ratio\": \"iar\",\n \"initial_duration\": \"idu\",\n \"initial_height\": \"ih\",\n \"initial_width\": \"iw\",\n \"initialAspectRatio\": \"iar\",\n \"initialDuration\": \"idu\",\n \"initialHeight\": \"ih\",\n \"initialWidth\": \"iw\",\n \"page_count\": \"pc\",\n \"page_x\": \"px\",\n \"page_y\": \"py\",\n \"pageCount\": \"pc\",\n \"pageX\": \"px\",\n \"pageY\": \"py\",\n \"tags\": \"tags\",\n \"width\": \"w\"\n };\n /**\n * @internal\n */\n\n Expression.BOUNDRY = \"[ _]+\";\n /* harmony default export */\n\n var expression = Expression; // CONCATENATED MODULE: ./src/condition.js\n\n function condition_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n condition_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n condition_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return condition_typeof(obj);\n }\n\n function condition_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function condition_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function condition_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) condition_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) condition_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (condition_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n /**\n * Represents a transformation condition.\n * @param {string} conditionStr - a condition in string format\n * @class Condition\n * @example\n * // normally this class is not instantiated directly\n * var tr = cloudinary.Transformation.new()\n * .if().width( \">\", 1000).and().aspectRatio(\"<\", \"3:4\").then()\n * .width(1000)\n * .crop(\"scale\")\n * .else()\n * .width(500)\n * .crop(\"scale\")\n *\n * var tr = cloudinary.Transformation.new()\n * .if(\"w > 1000 and aspectRatio < 3:4\")\n * .width(1000)\n * .crop(\"scale\")\n * .else()\n * .width(500)\n * .crop(\"scale\")\n *\n */\n\n\n var Condition = /*#__PURE__*/function (_Expression) {\n _inherits(Condition, _Expression);\n\n var _super = _createSuper(Condition);\n\n function Condition(conditionStr) {\n condition_classCallCheck(this, Condition);\n return _super.call(this, conditionStr);\n }\n /**\n * @function Condition#height\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n\n\n condition_createClass(Condition, [{\n key: \"height\",\n value: function height(operator, value) {\n return this.predicate(\"h\", operator, value);\n }\n /**\n * @function Condition#width\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n\n }, {\n key: \"width\",\n value: function width(operator, value) {\n return this.predicate(\"w\", operator, value);\n }\n /**\n * @function Condition#aspectRatio\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n\n }, {\n key: \"aspectRatio\",\n value: function aspectRatio(operator, value) {\n return this.predicate(\"ar\", operator, value);\n }\n /**\n * @function Condition#pages\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n\n }, {\n key: \"pageCount\",\n value: function pageCount(operator, value) {\n return this.predicate(\"pc\", operator, value);\n }\n /**\n * @function Condition#faces\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n\n }, {\n key: \"faceCount\",\n value: function faceCount(operator, value) {\n return this.predicate(\"fc\", operator, value);\n }\n /**\n * @function Condition#duration\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n\n }, {\n key: \"duration\",\n value: function duration(operator, value) {\n return this.predicate(\"du\", operator, value);\n }\n /**\n * @function Condition#initialDuration\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n\n }, {\n key: \"initialDuration\",\n value: function initialDuration(operator, value) {\n return this.predicate(\"idu\", operator, value);\n }\n }]);\n return Condition;\n }(expression);\n /* harmony default export */\n\n\n var condition = Condition; // CONCATENATED MODULE: ./src/configuration.js\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || configuration_unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function configuration_unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return configuration_arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return configuration_arrayLikeToArray(o, minLen);\n }\n\n function configuration_arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function configuration_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function configuration_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function configuration_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) configuration_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) configuration_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n /**\n * Class for defining account configuration options.\n * Depends on 'utils'\n */\n\n /**\n * Class for defining account configuration options.\n * @constructor Configuration\n * @param {Object} options - The account configuration parameters to set.\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_new\">Available configuration options</a>\n */\n\n\n var configuration_Configuration = /*#__PURE__*/function () {\n function Configuration(options) {\n configuration_classCallCheck(this, Configuration);\n this.configuration = options == null ? {} : cloneDeep_root_cloneDeep_default()(options);\n defaults(this.configuration, DEFAULT_CONFIGURATION_PARAMS);\n }\n /**\n * Initializes the configuration. This method is a convenience method that invokes both\n * {@link Configuration#fromEnvironment|fromEnvironment()} (Node.js environment only)\n * and {@link Configuration#fromDocument|fromDocument()}.\n * It first tries to retrieve the configuration from the environment variable.\n * If not available, it tries from the document meta tags.\n * @function Configuration#init\n * @return {Configuration} returns `this` for chaining\n * @see fromDocument\n * @see fromEnvironment\n */\n\n\n configuration_createClass(Configuration, [{\n key: \"init\",\n value: function init() {\n this.fromEnvironment();\n this.fromDocument();\n return this;\n }\n /**\n * Set a new configuration item\n * @function Configuration#set\n * @param {string} name - the name of the item to set\n * @param {*} value - the value to be set\n * @return {Configuration}\n *\n */\n\n }, {\n key: \"set\",\n value: function set(name, value) {\n this.configuration[name] = value;\n return this;\n }\n /**\n * Get the value of a configuration item\n * @function Configuration#get\n * @param {string} name - the name of the item to set\n * @return {*} the configuration item\n */\n\n }, {\n key: \"get\",\n value: function get(name) {\n return this.configuration[name];\n }\n }, {\n key: \"merge\",\n value: function merge(config) {\n assign_root_assign_default()(this.configuration, cloneDeep_root_cloneDeep_default()(config));\n return this;\n }\n /**\n * Initialize Cloudinary from HTML meta tags.\n * @function Configuration#fromDocument\n * @return {Configuration}\n * @example <meta name=\"cloudinary_cloud_name\" content=\"mycloud\">\n *\n */\n\n }, {\n key: \"fromDocument\",\n value: function fromDocument() {\n var el, i, len, meta_elements;\n meta_elements = typeof document !== \"undefined\" && document !== null ? document.querySelectorAll('meta[name^=\"cloudinary_\"]') : void 0;\n\n if (meta_elements) {\n for (i = 0, len = meta_elements.length; i < len; i++) {\n el = meta_elements[i];\n this.configuration[el.getAttribute('name').replace('cloudinary_', '')] = el.getAttribute('content');\n }\n }\n\n return this;\n }\n /**\n * Initialize Cloudinary from the `CLOUDINARY_URL` environment variable.\n *\n * This function will only run under Node.js environment.\n * @function Configuration#fromEnvironment\n * @requires Node.js\n */\n\n }, {\n key: \"fromEnvironment\",\n value: function fromEnvironment() {\n var _this = this;\n\n var cloudinary_url, query, uri, uriRegex;\n\n if (typeof process !== \"undefined\" && process !== null && process.env && process.env.CLOUDINARY_URL) {\n cloudinary_url = process.env.CLOUDINARY_URL;\n uriRegex = /cloudinary:\\/\\/(?:(\\w+)(?:\\:([\\w-]+))?@)?([\\w\\.-]+)(?:\\/([^?]*))?(?:\\?(.+))?/;\n uri = uriRegex.exec(cloudinary_url);\n\n if (uri) {\n if (uri[3] != null) {\n this.configuration['cloud_name'] = uri[3];\n }\n\n if (uri[1] != null) {\n this.configuration['api_key'] = uri[1];\n }\n\n if (uri[2] != null) {\n this.configuration['api_secret'] = uri[2];\n }\n\n if (uri[4] != null) {\n this.configuration['private_cdn'] = uri[4] != null;\n }\n\n if (uri[4] != null) {\n this.configuration['secure_distribution'] = uri[4];\n }\n\n query = uri[5];\n\n if (query != null) {\n query.split('&').forEach(function (value) {\n var _value$split = value.split('='),\n _value$split2 = _slicedToArray(_value$split, 2),\n k = _value$split2[0],\n v = _value$split2[1];\n\n if (v == null) {\n v = true;\n }\n\n _this.configuration[k] = v;\n });\n }\n }\n }\n\n return this;\n }\n /**\n * Create or modify the Cloudinary client configuration\n *\n * Warning: `config()` returns the actual internal configuration object. modifying it will change the configuration.\n *\n * This is a backward compatibility method. For new code, use get(), merge() etc.\n * @function Configuration#config\n * @param {hash|string|boolean} new_config\n * @param {string} new_value\n * @returns {*} configuration, or value\n *\n * @see {@link fromEnvironment} for initialization using environment variables\n * @see {@link fromDocument} for initialization using HTML meta tags\n */\n\n }, {\n key: \"config\",\n value: function config(new_config, new_value) {\n switch (false) {\n case new_value === void 0:\n this.set(new_config, new_value);\n return this.configuration;\n\n case !isString_root_isString_default()(new_config):\n return this.get(new_config);\n\n case !isPlainObject_root_isPlainObject_default()(new_config):\n this.merge(new_config);\n return this.configuration;\n\n default:\n // Backward compatibility - return the internal object\n return this.configuration;\n }\n }\n /**\n * Returns a copy of the configuration parameters\n * @function Configuration#toOptions\n * @returns {Object} a key:value collection of the configuration parameters\n */\n\n }, {\n key: \"toOptions\",\n value: function toOptions() {\n return cloneDeep_root_cloneDeep_default()(this.configuration);\n }\n }]);\n return Configuration;\n }();\n\n var DEFAULT_CONFIGURATION_PARAMS = {\n responsive_class: 'cld-responsive',\n responsive_use_breakpoints: true,\n round_dpr: true,\n secure: (typeof window !== \"undefined\" && window !== null ? window.location ? window.location.protocol : void 0 : void 0) === 'https:'\n };\n configuration_Configuration.CONFIG_PARAMS = [\"api_key\", \"api_secret\", \"callback\", \"cdn_subdomain\", \"cloud_name\", \"cname\", \"private_cdn\", \"protocol\", \"resource_type\", \"responsive\", \"responsive_class\", \"responsive_use_breakpoints\", \"responsive_width\", \"round_dpr\", \"secure\", \"secure_cdn_subdomain\", \"secure_distribution\", \"shorten\", \"type\", \"upload_preset\", \"url_suffix\", \"use_root_path\", \"version\", \"externalLibraries\", \"max_timeout_ms\"];\n /* harmony default export */\n\n var src_configuration = configuration_Configuration; // CONCATENATED MODULE: ./src/layer/layer.js\n\n function layer_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function layer_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function layer_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) layer_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) layer_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n var layer_Layer = /*#__PURE__*/function () {\n /**\n * Layer\n * @constructor Layer\n * @param {Object} options - layer parameters\n */\n function Layer(options) {\n var _this = this;\n\n layer_classCallCheck(this, Layer);\n this.options = {};\n\n if (options != null) {\n [\"resourceType\", \"type\", \"publicId\", \"format\"].forEach(function (key) {\n var ref;\n return _this.options[key] = (ref = options[key]) != null ? ref : options[snakeCase(key)];\n });\n }\n }\n\n layer_createClass(Layer, [{\n key: \"resourceType\",\n value: function resourceType(value) {\n this.options.resourceType = value;\n return this;\n }\n }, {\n key: \"type\",\n value: function type(value) {\n this.options.type = value;\n return this;\n }\n }, {\n key: \"publicId\",\n value: function publicId(value) {\n this.options.publicId = value;\n return this;\n }\n /**\n * Get the public ID, formatted for layer parameter\n * @function Layer#getPublicId\n * @return {String} public ID\n */\n\n }, {\n key: \"getPublicId\",\n value: function getPublicId() {\n var ref;\n return (ref = this.options.publicId) != null ? ref.replace(/\\//g, \":\") : void 0;\n }\n /**\n * Get the public ID, with format if present\n * @function Layer#getFullPublicId\n * @return {String} public ID\n */\n\n }, {\n key: \"getFullPublicId\",\n value: function getFullPublicId() {\n if (this.options.format != null) {\n return this.getPublicId() + \".\" + this.options.format;\n } else {\n return this.getPublicId();\n }\n }\n }, {\n key: \"format\",\n value: function format(value) {\n this.options.format = value;\n return this;\n }\n /**\n * generate the string representation of the layer\n * @function Layer#toString\n */\n\n }, {\n key: \"toString\",\n value: function toString() {\n var components;\n components = [];\n\n if (this.options.publicId == null) {\n throw \"Must supply publicId\";\n }\n\n if (!(this.options.resourceType === \"image\")) {\n components.push(this.options.resourceType);\n }\n\n if (!(this.options.type === \"upload\")) {\n components.push(this.options.type);\n }\n\n components.push(this.getFullPublicId());\n return compact_root_compact_default()(components).join(\":\");\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this.options);\n }\n }]);\n return Layer;\n }();\n /* harmony default export */\n\n\n var layer_layer = layer_Layer; // CONCATENATED MODULE: ./src/layer/textlayer.js\n\n function textlayer_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n textlayer_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n textlayer_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return textlayer_typeof(obj);\n }\n\n function textlayer_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function textlayer_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function textlayer_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) textlayer_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) textlayer_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function textlayer_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) textlayer_setPrototypeOf(subClass, superClass);\n }\n\n function textlayer_setPrototypeOf(o, p) {\n textlayer_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return textlayer_setPrototypeOf(o, p);\n }\n\n function textlayer_createSuper(Derived) {\n var hasNativeReflectConstruct = textlayer_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = textlayer_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = textlayer_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return textlayer_possibleConstructorReturn(this, result);\n };\n }\n\n function textlayer_possibleConstructorReturn(self, call) {\n if (call && (textlayer_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return textlayer_assertThisInitialized(self);\n }\n\n function textlayer_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function textlayer_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function textlayer_getPrototypeOf(o) {\n textlayer_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return textlayer_getPrototypeOf(o);\n }\n\n var textlayer_TextLayer = /*#__PURE__*/function (_Layer) {\n textlayer_inherits(TextLayer, _Layer);\n\n var _super = textlayer_createSuper(TextLayer);\n /**\n * @constructor TextLayer\n * @param {Object} options - layer parameters\n */\n\n\n function TextLayer(options) {\n var _this;\n\n textlayer_classCallCheck(this, TextLayer);\n var keys;\n _this = _super.call(this, options);\n keys = [\"resourceType\", \"resourceType\", \"fontFamily\", \"fontSize\", \"fontWeight\", \"fontStyle\", \"textDecoration\", \"textAlign\", \"stroke\", \"letterSpacing\", \"lineSpacing\", \"fontHinting\", \"fontAntialiasing\", \"text\", \"textStyle\"];\n\n if (options != null) {\n keys.forEach(function (key) {\n var ref;\n return _this.options[key] = (ref = options[key]) != null ? ref : options[snakeCase(key)];\n });\n }\n\n _this.options.resourceType = \"text\";\n return _this;\n }\n\n textlayer_createClass(TextLayer, [{\n key: \"resourceType\",\n value: function resourceType(_resourceType) {\n throw \"Cannot modify resourceType for text layers\";\n }\n }, {\n key: \"type\",\n value: function type(_type) {\n throw \"Cannot modify type for text layers\";\n }\n }, {\n key: \"format\",\n value: function format(_format) {\n throw \"Cannot modify format for text layers\";\n }\n }, {\n key: \"fontFamily\",\n value: function fontFamily(_fontFamily) {\n this.options.fontFamily = _fontFamily;\n return this;\n }\n }, {\n key: \"fontSize\",\n value: function fontSize(_fontSize) {\n this.options.fontSize = _fontSize;\n return this;\n }\n }, {\n key: \"fontWeight\",\n value: function fontWeight(_fontWeight) {\n this.options.fontWeight = _fontWeight;\n return this;\n }\n }, {\n key: \"fontStyle\",\n value: function fontStyle(_fontStyle) {\n this.options.fontStyle = _fontStyle;\n return this;\n }\n }, {\n key: \"textDecoration\",\n value: function textDecoration(_textDecoration) {\n this.options.textDecoration = _textDecoration;\n return this;\n }\n }, {\n key: \"textAlign\",\n value: function textAlign(_textAlign) {\n this.options.textAlign = _textAlign;\n return this;\n }\n }, {\n key: \"stroke\",\n value: function stroke(_stroke) {\n this.options.stroke = _stroke;\n return this;\n }\n }, {\n key: \"letterSpacing\",\n value: function letterSpacing(_letterSpacing) {\n this.options.letterSpacing = _letterSpacing;\n return this;\n }\n }, {\n key: \"lineSpacing\",\n value: function lineSpacing(_lineSpacing) {\n this.options.lineSpacing = _lineSpacing;\n return this;\n }\n }, {\n key: \"fontHinting\",\n value: function fontHinting(_fontHinting) {\n this.options.fontHinting = _fontHinting;\n return this;\n }\n }, {\n key: \"fontAntialiasing\",\n value: function fontAntialiasing(_fontAntialiasing) {\n this.options.fontAntialiasing = _fontAntialiasing;\n return this;\n }\n }, {\n key: \"text\",\n value: function text(_text) {\n this.options.text = _text;\n return this;\n }\n }, {\n key: \"textStyle\",\n value: function textStyle(_textStyle) {\n this.options.textStyle = _textStyle;\n return this;\n }\n /**\n * generate the string representation of the layer\n * @function TextLayer#toString\n * @return {String}\n */\n\n }, {\n key: \"toString\",\n value: function toString() {\n var components, hasPublicId, hasStyle, publicId, re, res, start, style, text, textSource;\n style = this.textStyleIdentifier();\n\n if (this.options.publicId != null) {\n publicId = this.getFullPublicId();\n }\n\n if (this.options.text != null) {\n hasPublicId = !isEmpty(publicId);\n hasStyle = !isEmpty(style);\n\n if (hasPublicId && hasStyle || !hasPublicId && !hasStyle) {\n throw \"Must supply either style parameters or a public_id when providing text parameter in a text overlay/underlay, but not both!\";\n }\n\n re = /\\$\\([a-zA-Z]\\w*\\)/g;\n start = 0; // textSource = text.replace(new RegExp(\"[,/]\", 'g'), (c)-> \"%#{c.charCodeAt(0).toString(16).toUpperCase()}\")\n\n textSource = smartEscape(this.options.text, /[,\\/]/g);\n text = \"\";\n\n while (res = re.exec(textSource)) {\n text += smartEscape(textSource.slice(start, res.index));\n text += res[0];\n start = res.index + res[0].length;\n }\n\n text += smartEscape(textSource.slice(start));\n }\n\n components = [this.options.resourceType, style, publicId, text];\n return compact_root_compact_default()(components).join(\":\");\n }\n }, {\n key: \"textStyleIdentifier\",\n value: function textStyleIdentifier() {\n // Note: if a text-style argument is provided as a whole, it overrides everything else, no mix and match.\n if (!isEmpty(this.options.textStyle)) {\n return this.options.textStyle;\n }\n\n var components;\n components = [];\n\n if (this.options.fontWeight !== \"normal\") {\n components.push(this.options.fontWeight);\n }\n\n if (this.options.fontStyle !== \"normal\") {\n components.push(this.options.fontStyle);\n }\n\n if (this.options.textDecoration !== \"none\") {\n components.push(this.options.textDecoration);\n }\n\n components.push(this.options.textAlign);\n\n if (this.options.stroke !== \"none\") {\n components.push(this.options.stroke);\n }\n\n if (!(isEmpty(this.options.letterSpacing) && !isNumberLike(this.options.letterSpacing))) {\n components.push(\"letter_spacing_\" + this.options.letterSpacing);\n }\n\n if (!(isEmpty(this.options.lineSpacing) && !isNumberLike(this.options.lineSpacing))) {\n components.push(\"line_spacing_\" + this.options.lineSpacing);\n }\n\n if (!isEmpty(this.options.fontAntialiasing)) {\n components.push(\"antialias_\" + this.options.fontAntialiasing);\n }\n\n if (!isEmpty(this.options.fontHinting)) {\n components.push(\"hinting_\" + this.options.fontHinting);\n }\n\n if (!isEmpty(compact_root_compact_default()(components))) {\n if (isEmpty(this.options.fontFamily)) {\n throw \"Must supply fontFamily. \".concat(components);\n }\n\n if (isEmpty(this.options.fontSize) && !isNumberLike(this.options.fontSize)) {\n throw \"Must supply fontSize.\";\n }\n }\n\n components.unshift(this.options.fontFamily, this.options.fontSize);\n components = compact_root_compact_default()(components).join(\"_\");\n return components;\n }\n }]);\n return TextLayer;\n }(layer_layer);\n\n ;\n /* harmony default export */\n\n var textlayer = textlayer_TextLayer; // CONCATENATED MODULE: ./src/layer/subtitleslayer.js\n\n function subtitleslayer_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n subtitleslayer_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n subtitleslayer_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return subtitleslayer_typeof(obj);\n }\n\n function subtitleslayer_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function subtitleslayer_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) subtitleslayer_setPrototypeOf(subClass, superClass);\n }\n\n function subtitleslayer_setPrototypeOf(o, p) {\n subtitleslayer_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return subtitleslayer_setPrototypeOf(o, p);\n }\n\n function subtitleslayer_createSuper(Derived) {\n var hasNativeReflectConstruct = subtitleslayer_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = subtitleslayer_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = subtitleslayer_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return subtitleslayer_possibleConstructorReturn(this, result);\n };\n }\n\n function subtitleslayer_possibleConstructorReturn(self, call) {\n if (call && (subtitleslayer_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return subtitleslayer_assertThisInitialized(self);\n }\n\n function subtitleslayer_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function subtitleslayer_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function subtitleslayer_getPrototypeOf(o) {\n subtitleslayer_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return subtitleslayer_getPrototypeOf(o);\n }\n\n var SubtitlesLayer = /*#__PURE__*/function (_TextLayer) {\n subtitleslayer_inherits(SubtitlesLayer, _TextLayer);\n\n var _super = subtitleslayer_createSuper(SubtitlesLayer);\n /**\n * Represent a subtitles layer\n * @constructor SubtitlesLayer\n * @param {Object} options - layer parameters\n */\n\n\n function SubtitlesLayer(options) {\n var _this;\n\n subtitleslayer_classCallCheck(this, SubtitlesLayer);\n _this = _super.call(this, options);\n _this.options.resourceType = \"subtitles\";\n return _this;\n }\n\n return SubtitlesLayer;\n }(textlayer);\n /* harmony default export */\n\n\n var subtitleslayer = SubtitlesLayer; // CONCATENATED MODULE: ./src/layer/fetchlayer.js\n\n function fetchlayer_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n fetchlayer_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n fetchlayer_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return fetchlayer_typeof(obj);\n }\n\n function fetchlayer_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function fetchlayer_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function fetchlayer_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) fetchlayer_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) fetchlayer_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function fetchlayer_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) fetchlayer_setPrototypeOf(subClass, superClass);\n }\n\n function fetchlayer_setPrototypeOf(o, p) {\n fetchlayer_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return fetchlayer_setPrototypeOf(o, p);\n }\n\n function fetchlayer_createSuper(Derived) {\n var hasNativeReflectConstruct = fetchlayer_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = fetchlayer_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = fetchlayer_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return fetchlayer_possibleConstructorReturn(this, result);\n };\n }\n\n function fetchlayer_possibleConstructorReturn(self, call) {\n if (call && (fetchlayer_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return fetchlayer_assertThisInitialized(self);\n }\n\n function fetchlayer_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function fetchlayer_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function fetchlayer_getPrototypeOf(o) {\n fetchlayer_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return fetchlayer_getPrototypeOf(o);\n }\n\n var fetchlayer_FetchLayer = /*#__PURE__*/function (_Layer) {\n fetchlayer_inherits(FetchLayer, _Layer);\n\n var _super = fetchlayer_createSuper(FetchLayer);\n /**\n * @class FetchLayer\n * @classdesc Creates an image layer using a remote URL.\n * @param {Object|string} options - layer parameters or a url\n * @param {string} options.url the url of the image to fetch\n */\n\n\n function FetchLayer(options) {\n var _this;\n\n fetchlayer_classCallCheck(this, FetchLayer);\n _this = _super.call(this, options);\n\n if (isString_root_isString_default()(options)) {\n _this.options.url = options;\n } else if (options != null ? options.url : void 0) {\n _this.options.url = options.url;\n }\n\n return _this;\n }\n\n fetchlayer_createClass(FetchLayer, [{\n key: \"url\",\n value: function url(_url) {\n this.options.url = _url;\n return this;\n }\n /**\n * generate the string representation of the layer\n * @function FetchLayer#toString\n * @return {String}\n */\n\n }, {\n key: \"toString\",\n value: function toString() {\n return \"fetch:\".concat(base64EncodeURL(this.options.url));\n }\n }]);\n return FetchLayer;\n }(layer_layer);\n /* harmony default export */\n\n\n var fetchlayer = fetchlayer_FetchLayer; // CONCATENATED MODULE: ./src/parameters.js\n\n function parameters_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n parameters_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n parameters_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return parameters_typeof(obj);\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = parameters_getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function parameters_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) parameters_setPrototypeOf(subClass, superClass);\n }\n\n function parameters_setPrototypeOf(o, p) {\n parameters_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return parameters_setPrototypeOf(o, p);\n }\n\n function parameters_createSuper(Derived) {\n var hasNativeReflectConstruct = parameters_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = parameters_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = parameters_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return parameters_possibleConstructorReturn(this, result);\n };\n }\n\n function parameters_possibleConstructorReturn(self, call) {\n if (call && (parameters_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return parameters_assertThisInitialized(self);\n }\n\n function parameters_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function parameters_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function parameters_getPrototypeOf(o) {\n parameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return parameters_getPrototypeOf(o);\n }\n\n function parameters_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function parameters_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function parameters_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) parameters_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) parameters_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n /**\n * Transformation parameters\n * Depends on 'util', 'transformation'\n */\n\n\n var parameters_Param = /*#__PURE__*/function () {\n /**\n * Represents a single parameter.\n * @class Param\n * @param {string} name - The name of the parameter in snake_case\n * @param {string} shortName - The name of the serialized form of the parameter.\n * If a value is not provided, the parameter will not be serialized.\n * @param {function} [process=Util.identity ] - Manipulate origValue when value is called\n * @ignore\n */\n function Param(name, shortName) {\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : identity_root_identity_default.a;\n parameters_classCallCheck(this, Param);\n /**\n * The name of the parameter in snake_case\n * @member {string} Param#name\n */\n\n this.name = name;\n /**\n * The name of the serialized form of the parameter\n * @member {string} Param#shortName\n */\n\n this.shortName = shortName;\n /**\n * Manipulate origValue when value is called\n * @member {function} Param#process\n */\n\n this.process = process;\n }\n /**\n * Set a (unprocessed) value for this parameter\n * @function Param#set\n * @param {*} origValue - the value of the parameter\n * @return {Param} self for chaining\n */\n\n\n parameters_createClass(Param, [{\n key: \"set\",\n value: function set(origValue) {\n this.origValue = origValue;\n return this;\n }\n /**\n * Generate the serialized form of the parameter\n * @function Param#serialize\n * @return {string} the serialized form of the parameter\n */\n\n }, {\n key: \"serialize\",\n value: function serialize() {\n var val, valid;\n val = this.value();\n valid = isArray_root_isArray_default()(val) || isPlainObject_root_isPlainObject_default()(val) || isString_root_isString_default()(val) ? !isEmpty(val) : val != null;\n\n if (this.shortName != null && valid) {\n return \"\".concat(this.shortName, \"_\").concat(val);\n } else {\n return '';\n }\n }\n /**\n * Return the processed value of the parameter\n * @function Param#value\n */\n\n }, {\n key: \"value\",\n value: function value() {\n return this.process(this.origValue);\n }\n }], [{\n key: \"norm_color\",\n value: function norm_color(value) {\n return value != null ? value.replace(/^#/, 'rgb:') : void 0;\n }\n }, {\n key: \"build_array\",\n value: function build_array(arg) {\n if (arg == null) {\n return [];\n } else if (isArray_root_isArray_default()(arg)) {\n return arg;\n } else {\n return [arg];\n }\n }\n /**\n * Covert value to video codec string.\n *\n * If the parameter is an object,\n * @param {(string|Object)} param - the video codec as either a String or a Hash\n * @return {string} the video codec string in the format codec:profile:level\n * @example\n * vc_[ :profile : [level]]\n * or\n { codec: 'h264', profile: 'basic', level: '3.1' }\n * @ignore\n */\n\n }, {\n key: \"process_video_params\",\n value: function process_video_params(param) {\n var video;\n\n switch (param.constructor) {\n case Object:\n video = \"\";\n\n if ('codec' in param) {\n video = param.codec;\n\n if ('profile' in param) {\n video += \":\" + param.profile;\n\n if ('level' in param) {\n video += \":\" + param.level;\n }\n }\n }\n\n return video;\n\n case String:\n return param;\n\n default:\n return null;\n }\n }\n }]);\n return Param;\n }();\n\n var parameters_ArrayParam = /*#__PURE__*/function (_Param) {\n parameters_inherits(ArrayParam, _Param);\n\n var _super = parameters_createSuper(ArrayParam);\n /**\n * A parameter that represents an array.\n * @param {string} name - The name of the parameter in snake_case.\n * @param {string} shortName - The name of the serialized form of the parameter\n * If a value is not provided, the parameter will not be serialized.\n * @param {string} [sep='.'] - The separator to use when joining the array elements together\n * @param {function} [process=Util.identity ] - Manipulate origValue when value is called\n * @class ArrayParam\n * @extends Param\n * @ignore\n */\n\n\n function ArrayParam(name, shortName) {\n var _this;\n\n var sep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n var process = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;\n parameters_classCallCheck(this, ArrayParam);\n _this = _super.call(this, name, shortName, process);\n _this.sep = sep;\n return _this;\n }\n\n parameters_createClass(ArrayParam, [{\n key: \"serialize\",\n value: function serialize() {\n if (this.shortName != null) {\n var arrayValue = this.value();\n\n if (isEmpty(arrayValue)) {\n return '';\n } else if (isString_root_isString_default()(arrayValue)) {\n return \"\".concat(this.shortName, \"_\").concat(arrayValue);\n } else {\n var flat = arrayValue.map(function (t) {\n return isFunction_root_isFunction_default()(t.serialize) ? t.serialize() : t;\n }).join(this.sep);\n return \"\".concat(this.shortName, \"_\").concat(flat);\n }\n } else {\n return '';\n }\n }\n }, {\n key: \"value\",\n value: function value() {\n var _this2 = this;\n\n if (isArray_root_isArray_default()(this.origValue)) {\n return this.origValue.map(function (v) {\n return _this2.process(v);\n });\n } else {\n return this.process(this.origValue);\n }\n }\n }, {\n key: \"set\",\n value: function set(origValue) {\n if (origValue == null || isArray_root_isArray_default()(origValue)) {\n return _get(parameters_getPrototypeOf(ArrayParam.prototype), \"set\", this).call(this, origValue);\n } else {\n return _get(parameters_getPrototypeOf(ArrayParam.prototype), \"set\", this).call(this, [origValue]);\n }\n }\n }]);\n return ArrayParam;\n }(parameters_Param);\n\n var parameters_TransformationParam = /*#__PURE__*/function (_Param2) {\n parameters_inherits(TransformationParam, _Param2);\n\n var _super2 = parameters_createSuper(TransformationParam);\n /**\n * A parameter that represents a transformation\n * @param {string} name - The name of the parameter in snake_case\n * @param {string} [shortName='t'] - The name of the serialized form of the parameter\n * @param {string} [sep='.'] - The separator to use when joining the array elements together\n * @param {function} [process=Util.identity ] - Manipulate origValue when value is called\n * @class TransformationParam\n * @extends Param\n * @ignore\n */\n\n\n function TransformationParam(name) {\n var _this3;\n\n var shortName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"t\";\n var sep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n var process = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;\n parameters_classCallCheck(this, TransformationParam);\n _this3 = _super2.call(this, name, shortName, process);\n _this3.sep = sep;\n return _this3;\n }\n /**\n * Generate string representations of the transformation.\n * @returns {*} Returns either the transformation as a string, or an array of string representations.\n */\n\n\n parameters_createClass(TransformationParam, [{\n key: \"serialize\",\n value: function serialize() {\n var _this4 = this;\n\n var result = '';\n var val = this.value();\n\n if (isEmpty(val)) {\n return result;\n } // val is an array of strings so join them\n\n\n if (baseutil_allStrings(val)) {\n var joined = val.join(this.sep); // creates t1.t2.t3 in case multiple named transformations were configured\n\n if (!isEmpty(joined)) {\n // in case options.transformation was not set with an empty string (val != ['']);\n result = \"\".concat(this.shortName, \"_\").concat(joined);\n }\n } else {\n // Convert val to an array of strings\n result = val.map(function (t) {\n if (isString_root_isString_default()(t) && !isEmpty(t)) {\n return \"\".concat(_this4.shortName, \"_\").concat(t);\n }\n\n if (isFunction_root_isFunction_default()(t.serialize)) {\n return t.serialize();\n }\n\n if (isPlainObject_root_isPlainObject_default()(t) && !isEmpty(t)) {\n return new src_transformation(t).serialize();\n }\n\n return undefined;\n }).filter(function (t) {\n return t;\n });\n }\n\n return result;\n }\n }, {\n key: \"set\",\n value: function set(origValue1) {\n this.origValue = origValue1;\n\n if (isArray_root_isArray_default()(this.origValue)) {\n return _get(parameters_getPrototypeOf(TransformationParam.prototype), \"set\", this).call(this, this.origValue);\n } else {\n return _get(parameters_getPrototypeOf(TransformationParam.prototype), \"set\", this).call(this, [this.origValue]);\n }\n }\n }]);\n return TransformationParam;\n }(parameters_Param);\n\n var number_pattern = \"([0-9]*)\\\\.([0-9]+)|([0-9]+)\";\n var offset_any_pattern = \"(\" + number_pattern + \")([%pP])?\";\n\n var RangeParam = /*#__PURE__*/function (_Param3) {\n parameters_inherits(RangeParam, _Param3);\n\n var _super3 = parameters_createSuper(RangeParam);\n /**\n * A parameter that represents a range\n * @param {string} name - The name of the parameter in snake_case\n * @param {string} shortName - The name of the serialized form of the parameter\n * If a value is not provided, the parameter will not be serialized.\n * @param {function} [process=norm_range_value ] - Manipulate origValue when value is called\n * @class RangeParam\n * @extends Param\n * @ignore\n */\n\n\n function RangeParam(name, shortName) {\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : RangeParam.norm_range_value;\n parameters_classCallCheck(this, RangeParam);\n return _super3.call(this, name, shortName, process);\n }\n\n parameters_createClass(RangeParam, null, [{\n key: \"norm_range_value\",\n value: function norm_range_value(value) {\n var offset = String(value).match(new RegExp('^' + offset_any_pattern + '$'));\n\n if (offset) {\n var modifier = offset[5] != null ? 'p' : '';\n value = (offset[1] || offset[4]) + modifier;\n }\n\n return value;\n }\n }]);\n return RangeParam;\n }(parameters_Param);\n\n var parameters_RawParam = /*#__PURE__*/function (_Param4) {\n parameters_inherits(RawParam, _Param4);\n\n var _super4 = parameters_createSuper(RawParam);\n\n function RawParam(name, shortName) {\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : identity_root_identity_default.a;\n parameters_classCallCheck(this, RawParam);\n return _super4.call(this, name, shortName, process);\n }\n\n parameters_createClass(RawParam, [{\n key: \"serialize\",\n value: function serialize() {\n return this.value();\n }\n }]);\n return RawParam;\n }(parameters_Param);\n\n var parameters_LayerParam = /*#__PURE__*/function (_Param5) {\n parameters_inherits(LayerParam, _Param5);\n\n var _super5 = parameters_createSuper(LayerParam);\n\n function LayerParam() {\n parameters_classCallCheck(this, LayerParam);\n return _super5.apply(this, arguments);\n }\n\n parameters_createClass(LayerParam, [{\n key: \"value\",\n value: // Parse layer options\n // @return [string] layer transformation string\n // @private\n function value() {\n if (this.origValue == null) {\n return '';\n }\n\n var result;\n\n if (this.origValue instanceof layer_layer) {\n result = this.origValue;\n } else if (isPlainObject_root_isPlainObject_default()(this.origValue)) {\n var layerOptions = withCamelCaseKeys(this.origValue);\n\n if (layerOptions.resourceType === \"text\" || layerOptions.text != null) {\n result = new textlayer(layerOptions);\n } else if (layerOptions.resourceType === \"subtitles\") {\n result = new subtitleslayer(layerOptions);\n } else if (layerOptions.resourceType === \"fetch\" || layerOptions.url != null) {\n result = new fetchlayer(layerOptions);\n } else {\n result = new layer_layer(layerOptions);\n }\n } else if (isString_root_isString_default()(this.origValue)) {\n if (/^fetch:.+/.test(this.origValue)) {\n result = new fetchlayer(this.origValue.substr(6));\n } else {\n result = this.origValue;\n }\n } else {\n result = '';\n }\n\n return result.toString();\n }\n }], [{\n key: \"textStyle\",\n value: function textStyle(layer) {\n return new textlayer(layer).textStyleIdentifier();\n }\n }]);\n return LayerParam;\n }(parameters_Param);\n\n var parameters_ExpressionParam = /*#__PURE__*/function (_Param6) {\n parameters_inherits(ExpressionParam, _Param6);\n\n var _super6 = parameters_createSuper(ExpressionParam);\n\n function ExpressionParam() {\n parameters_classCallCheck(this, ExpressionParam);\n return _super6.apply(this, arguments);\n }\n\n parameters_createClass(ExpressionParam, [{\n key: \"serialize\",\n value: function serialize() {\n return expression.normalize(_get(parameters_getPrototypeOf(ExpressionParam.prototype), \"serialize\", this).call(this));\n }\n }]);\n return ExpressionParam;\n }(parameters_Param); // CONCATENATED MODULE: ./src/transformation.js\n\n\n function transformation_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n transformation_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n transformation_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return transformation_typeof(obj);\n }\n\n function transformation_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) transformation_setPrototypeOf(subClass, superClass);\n }\n\n function transformation_setPrototypeOf(o, p) {\n transformation_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return transformation_setPrototypeOf(o, p);\n }\n\n function transformation_createSuper(Derived) {\n var hasNativeReflectConstruct = transformation_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = transformation_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = transformation_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return transformation_possibleConstructorReturn(this, result);\n };\n }\n\n function transformation_possibleConstructorReturn(self, call) {\n if (call && (transformation_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return transformation_assertThisInitialized(self);\n }\n\n function transformation_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function transformation_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function transformation_getPrototypeOf(o) {\n transformation_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return transformation_getPrototypeOf(o);\n }\n\n function transformation_slicedToArray(arr, i) {\n return transformation_arrayWithHoles(arr) || transformation_iterableToArrayLimit(arr, i) || transformation_unsupportedIterableToArray(arr, i) || transformation_nonIterableRest();\n }\n\n function transformation_nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function transformation_unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return transformation_arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return transformation_arrayLikeToArray(o, minLen);\n }\n\n function transformation_arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function transformation_iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function transformation_arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function transformation_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function transformation_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function transformation_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) transformation_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) transformation_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n /**\n * Assign key, value to target, when value is not null.<br>\n * This function mutates the target!\n * @param {object} target the object to assign the values to\n * @param {object} sources one or more objects to get values from\n * @returns {object} the target after the assignment\n */\n\n\n function assignNotNull(target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n sources.forEach(function (source) {\n Object.keys(source).forEach(function (key) {\n if (source[key] != null) {\n target[key] = source[key];\n }\n });\n });\n return target;\n }\n /**\n * TransformationBase\n * Depends on 'configuration', 'parameters','util'\n * @internal\n */\n\n\n var transformation_TransformationBase = /*#__PURE__*/function () {\n /**\n * The base class for transformations.\n * Members of this class are documented as belonging to the {@link Transformation} class for convenience.\n * @class TransformationBase\n */\n function TransformationBase(options) {\n transformation_classCallCheck(this, TransformationBase);\n /** @private */\n\n /** @private */\n\n var parent, trans;\n parent = void 0;\n trans = {};\n /**\n * Return an options object that can be used to create an identical Transformation\n * @function Transformation#toOptions\n * @return {Object} Returns a plain object representing this transformation\n */\n\n this.toOptions = function (withChain) {\n var opt = {};\n\n if (withChain == null) {\n withChain = true;\n }\n\n Object.keys(trans).forEach(function (key) {\n return opt[key] = trans[key].origValue;\n });\n assignNotNull(opt, this.otherOptions);\n\n if (withChain && !isEmpty(this.chained)) {\n var list = this.chained.map(function (tr) {\n return tr.toOptions();\n });\n list.push(opt);\n opt = {};\n assignNotNull(opt, this.otherOptions);\n opt.transformation = list;\n }\n\n return opt;\n };\n /**\n * Set a parent for this object for chaining purposes.\n *\n * @function Transformation#setParent\n * @param {Object} object - the parent to be assigned to\n * @returns {Transformation} Returns this instance for chaining purposes.\n */\n\n\n this.setParent = function (object) {\n parent = object;\n\n if (object != null) {\n this.fromOptions(typeof object.toOptions === \"function\" ? object.toOptions() : void 0);\n }\n\n return this;\n };\n /**\n * Returns the parent of this object in the chain\n * @function Transformation#getParent\n * @protected\n * @return {Object} Returns the parent of this object if there is any\n */\n\n\n this.getParent = function () {\n return parent;\n }; // Helper methods to create parameter methods\n // These methods are defined here because they access `trans` which is\n // a private member of `TransformationBase`\n\n /** @protected */\n\n\n this.param = function (value, name, abbr, defaultValue, process) {\n if (process == null) {\n if (isFunction_root_isFunction_default()(defaultValue)) {\n process = defaultValue;\n } else {\n process = identity_root_identity_default.a;\n }\n }\n\n trans[name] = new parameters_Param(name, abbr, process).set(value);\n return this;\n };\n /** @protected */\n\n\n this.rawParam = function (value, name, abbr, defaultValue, process) {\n process = lastArgCallback(arguments);\n trans[name] = new parameters_RawParam(name, abbr, process).set(value);\n return this;\n };\n /** @protected */\n\n\n this.rangeParam = function (value, name, abbr, defaultValue, process) {\n process = lastArgCallback(arguments);\n trans[name] = new RangeParam(name, abbr, process).set(value);\n return this;\n };\n /** @protected */\n\n\n this.arrayParam = function (value, name, abbr) {\n var sep = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : \":\";\n var defaultValue = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : undefined;\n process = lastArgCallback(arguments);\n trans[name] = new parameters_ArrayParam(name, abbr, sep, process).set(value);\n return this;\n };\n /** @protected */\n\n\n this.transformationParam = function (value, name, abbr) {\n var sep = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : \".\";\n var defaultValue = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : undefined;\n process = lastArgCallback(arguments);\n trans[name] = new parameters_TransformationParam(name, abbr, sep, process).set(value);\n return this;\n };\n\n this.layerParam = function (value, name, abbr) {\n trans[name] = new parameters_LayerParam(name, abbr).set(value);\n return this;\n }; // End Helper methods\n\n /**\n * Get the value associated with the given name.\n * @function Transformation#getValue\n * @param {string} name - the name of the parameter\n * @return {*} the processed value associated with the given name\n * @description Use {@link get}.origValue for the value originally provided for the parameter\n */\n\n\n this.getValue = function (name) {\n var value = trans[name] && trans[name].value();\n return value != null ? value : this.otherOptions[name];\n };\n /**\n * Get the parameter object for the given parameter name\n * @function Transformation#get\n * @param {string} name the name of the transformation parameter\n * @returns {Param} the param object for the given name, or undefined\n */\n\n\n this.get = function (name) {\n return trans[name];\n };\n /**\n * Remove a transformation option from the transformation.\n * @function Transformation#remove\n * @param {string} name - the name of the option to remove\n * @return {*} Returns the option that was removed or null if no option by that name was found. The type of the\n * returned value depends on the value.\n */\n\n\n this.remove = function (name) {\n var temp;\n\n switch (false) {\n case trans[name] == null:\n temp = trans[name];\n delete trans[name];\n return temp.origValue;\n\n case this.otherOptions[name] == null:\n temp = this.otherOptions[name];\n delete this.otherOptions[name];\n return temp;\n\n default:\n return null;\n }\n };\n /**\n * Return an array of all the keys (option names) in the transformation.\n * @return {Array<string>} the keys in snakeCase format\n */\n\n\n this.keys = function () {\n var key;\n return function () {\n var results;\n results = [];\n\n for (key in trans) {\n if (key != null) {\n results.push(key.match(VAR_NAME_RE) ? key : snakeCase(key));\n }\n }\n\n return results;\n }().sort();\n };\n /**\n * Returns a plain object representation of the transformation. Values are processed.\n * @function Transformation#toPlainObject\n * @return {Object} the transformation options as plain object\n */\n\n\n this.toPlainObject = function () {\n var hash, key, list;\n hash = {};\n\n for (key in trans) {\n hash[key] = trans[key].value();\n\n if (isPlainObject_root_isPlainObject_default()(hash[key])) {\n hash[key] = cloneDeep_root_cloneDeep_default()(hash[key]);\n }\n }\n\n if (!isEmpty(this.chained)) {\n list = this.chained.map(function (tr) {\n return tr.toPlainObject();\n });\n list.push(hash);\n hash = {\n transformation: list\n };\n }\n\n return hash;\n };\n /**\n * Complete the current transformation and chain to a new one.\n * In the URL, transformations are chained together by slashes.\n * @function Transformation#chain\n * @return {Transformation} Returns this transformation for chaining\n * @example\n * var tr = cloudinary.Transformation.new();\n * tr.width(10).crop('fit').chain().angle(15).serialize()\n * // produces \"c_fit,w_10/a_15\"\n */\n\n\n this.chain = function () {\n var names, tr;\n names = Object.getOwnPropertyNames(trans);\n\n if (names.length !== 0) {\n tr = new this.constructor(this.toOptions(false));\n this.resetTransformations();\n this.chained.push(tr);\n }\n\n return this;\n };\n\n this.resetTransformations = function () {\n trans = {};\n return this;\n };\n\n this.otherOptions = {};\n this.chained = [];\n this.fromOptions(options);\n }\n /**\n * Merge the provided options with own's options\n * @param {Object} [options={}] key-value list of options\n * @returns {Transformation} Returns this instance for chaining\n */\n\n\n transformation_createClass(TransformationBase, [{\n key: \"fromOptions\",\n value: function fromOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (options instanceof TransformationBase) {\n this.fromTransformation(options);\n } else {\n if (isString_root_isString_default()(options) || isArray_root_isArray_default()(options)) {\n options = {\n transformation: options\n };\n }\n\n options = cloneDeep_root_cloneDeep_default()(options, function (value) {\n if (value instanceof TransformationBase || value instanceof Layer) {\n return new value.clone();\n }\n }); // Handling of \"if\" statements precedes other options as it creates a chained transformation\n\n if (options[\"if\"]) {\n this.set(\"if\", options[\"if\"]);\n delete options[\"if\"];\n }\n\n for (var key in options) {\n var opt = options[key];\n\n if (opt != null) {\n if (key.match(VAR_NAME_RE)) {\n if (key !== '$attr') {\n this.set('variable', key, opt);\n }\n } else {\n this.set(key, opt);\n }\n }\n }\n }\n\n return this;\n }\n }, {\n key: \"fromTransformation\",\n value: function fromTransformation(other) {\n var _this = this;\n\n if (other instanceof TransformationBase) {\n other.keys().forEach(function (key) {\n return _this.set(key, other.get(key).origValue);\n });\n }\n\n return this;\n }\n /**\n * Set a parameter.\n * The parameter name `key` is converted to\n * @param {string} key - the name of the parameter\n * @param {*} values - the value of the parameter\n * @returns {Transformation} Returns this instance for chaining\n */\n\n }, {\n key: \"set\",\n value: function set(key) {\n var camelKey;\n camelKey = camelCase(key);\n\n for (var _len2 = arguments.length, values = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n values[_key2 - 1] = arguments[_key2];\n }\n\n if (includes_root_includes_default()(transformation_Transformation.methods, camelKey)) {\n this[camelKey].apply(this, values);\n } else {\n this.otherOptions[key] = values[0];\n }\n\n return this;\n }\n }, {\n key: \"hasLayer\",\n value: function hasLayer() {\n return this.getValue(\"overlay\") || this.getValue(\"underlay\");\n }\n /**\n * Generate a string representation of the transformation.\n * @function Transformation#serialize\n * @return {string} Returns the transformation as a string\n */\n\n }, {\n key: \"serialize\",\n value: function serialize() {\n var ifParam, j, len, paramList, ref, ref1, ref2, ref3, ref4, resultArray, t, transformationList, transformationString, transformations, value, variables, vars;\n resultArray = this.chained.map(function (tr) {\n return tr.serialize();\n });\n paramList = this.keys();\n transformations = (ref = this.get(\"transformation\")) != null ? ref.serialize() : void 0;\n ifParam = (ref1 = this.get(\"if\")) != null ? ref1.serialize() : void 0;\n variables = processVar((ref2 = this.get(\"variables\")) != null ? ref2.value() : void 0);\n paramList = difference_root_difference_default()(paramList, [\"transformation\", \"if\", \"variables\"]);\n vars = [];\n transformationList = [];\n\n for (j = 0, len = paramList.length; j < len; j++) {\n t = paramList[j];\n\n if (t.match(VAR_NAME_RE)) {\n vars.push(t + \"_\" + expression.normalize((ref3 = this.get(t)) != null ? ref3.value() : void 0));\n } else {\n transformationList.push((ref4 = this.get(t)) != null ? ref4.serialize() : void 0);\n }\n }\n\n switch (false) {\n case !isString_root_isString_default()(transformations):\n transformationList.push(transformations);\n break;\n\n case !isArray_root_isArray_default()(transformations):\n resultArray = resultArray.concat(transformations);\n }\n\n transformationList = function () {\n var k, len1, results;\n results = [];\n\n for (k = 0, len1 = transformationList.length; k < len1; k++) {\n value = transformationList[k];\n\n if (isArray_root_isArray_default()(value) && !isEmpty(value) || !isArray_root_isArray_default()(value) && value) {\n results.push(value);\n }\n }\n\n return results;\n }();\n\n transformationList = vars.sort().concat(variables).concat(transformationList.sort());\n\n if (ifParam === \"if_end\") {\n transformationList.push(ifParam);\n } else if (!isEmpty(ifParam)) {\n transformationList.unshift(ifParam);\n }\n\n transformationString = compact_root_compact_default()(transformationList).join(this.param_separator);\n\n if (!isEmpty(transformationString)) {\n resultArray.push(transformationString);\n }\n\n return compact_root_compact_default()(resultArray).join(this.trans_separator);\n }\n /**\n * Provide a list of all the valid transformation option names\n * @function Transformation#listNames\n * @private\n * @return {Array<string>} a array of all the valid option names\n */\n\n }, {\n key: \"toHtmlAttributes\",\n value:\n /**\n * Returns the attributes for an HTML tag.\n * @function Cloudinary.toHtmlAttributes\n * @return PlainObject\n */\n function toHtmlAttributes() {\n var _this2 = this;\n\n var attrName, height, options, ref2, ref3, value, width;\n options = {};\n var snakeCaseKey;\n Object.keys(this.otherOptions).forEach(function (key) {\n value = _this2.otherOptions[key];\n snakeCaseKey = snakeCase(key);\n\n if (!includes_root_includes_default()(transformation_Transformation.PARAM_NAMES, snakeCaseKey) && !includes_root_includes_default()(URL_KEYS, snakeCaseKey)) {\n attrName = /^html_/.test(key) ? key.slice(5) : key;\n options[attrName] = value;\n }\n }); // convert all \"html_key\" to \"key\" with the same value\n\n this.keys().forEach(function (key) {\n if (/^html_/.test(key)) {\n options[camelCase(key.slice(5))] = _this2.getValue(key);\n }\n });\n\n if (!(this.hasLayer() || this.getValue(\"angle\") || includes_root_includes_default()([\"fit\", \"limit\", \"lfill\"], this.getValue(\"crop\")))) {\n width = (ref2 = this.get(\"width\")) != null ? ref2.origValue : void 0;\n height = (ref3 = this.get(\"height\")) != null ? ref3.origValue : void 0;\n\n if (parseFloat(width) >= 1.0) {\n if (options.width == null) {\n options.width = width;\n }\n }\n\n if (parseFloat(height) >= 1.0) {\n if (options.height == null) {\n options.height = height;\n }\n }\n }\n\n return options;\n }\n }, {\n key: \"toHtml\",\n value:\n /**\n * Delegate to the parent (up the call chain) to produce HTML\n * @function Transformation#toHtml\n * @return {string} HTML representation of the parent if possible.\n * @example\n * tag = cloudinary.ImageTag.new(\"sample\", {cloud_name: \"demo\"})\n * // ImageTag {name: \"img\", publicId: \"sample\"}\n * tag.toHtml()\n * // <img src=\"http://res.cloudinary.com/demo/image/upload/sample\">\n * tag.transformation().crop(\"fit\").width(300).toHtml()\n * // <img src=\"http://res.cloudinary.com/demo/image/upload/c_fit,w_300/sample\">\n */\n function toHtml() {\n var ref;\n return (ref = this.getParent()) != null ? typeof ref.toHtml === \"function\" ? ref.toHtml() : void 0 : void 0;\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return this.serialize();\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new this.constructor(this.toOptions(true));\n }\n }], [{\n key: \"listNames\",\n value: function listNames() {\n return transformation_Transformation.methods;\n }\n }, {\n key: \"isValidParamName\",\n value: function isValidParamName(name) {\n return transformation_Transformation.methods.indexOf(camelCase(name)) >= 0;\n }\n }]);\n return TransformationBase;\n }();\n\n var VAR_NAME_RE = /^\\$[a-zA-Z0-9]+$/;\n transformation_TransformationBase.prototype.trans_separator = '/';\n transformation_TransformationBase.prototype.param_separator = ',';\n\n function lastArgCallback(args) {\n var callback;\n callback = args != null ? args[args.length - 1] : void 0;\n\n if (isFunction_root_isFunction_default()(callback)) {\n return callback;\n } else {\n return void 0;\n }\n }\n\n function processVar(varArray) {\n var j, len, name, results, v;\n\n if (isArray_root_isArray_default()(varArray)) {\n results = [];\n\n for (j = 0, len = varArray.length; j < len; j++) {\n var _varArray$j = transformation_slicedToArray(varArray[j], 2);\n\n name = _varArray$j[0];\n v = _varArray$j[1];\n results.push(\"\".concat(name, \"_\").concat(expression.normalize(v)));\n }\n\n return results;\n } else {\n return varArray;\n }\n }\n\n function processCustomFunction(_ref) {\n var function_type = _ref.function_type,\n source = _ref.source;\n\n if (function_type === 'remote') {\n return [function_type, btoa(source)].join(\":\");\n } else if (function_type === 'wasm') {\n return [function_type, source].join(\":\");\n }\n }\n /**\n * Transformation Class methods.\n * This is a list of the parameters defined in Transformation.\n * Values are camelCased.\n * @const Transformation.methods\n * @private\n * @ignore\n * @type {Array<string>}\n */\n\n /**\n * Parameters that are filtered out before passing the options to an HTML tag.\n *\n * The list of parameters is a combination of `Transformation::methods` and `Configuration::CONFIG_PARAMS`\n * @const {Array<string>} Transformation.PARAM_NAMES\n * @private\n * @ignore\n * @see toHtmlAttributes\n */\n\n\n var transformation_Transformation = /*#__PURE__*/function (_TransformationBase) {\n transformation_inherits(Transformation, _TransformationBase);\n\n var _super = transformation_createSuper(Transformation);\n /**\n * Represents a single transformation.\n * @class Transformation\n * @example\n * t = new cloudinary.Transformation();\n * t.angle(20).crop(\"scale\").width(\"auto\");\n *\n * // or\n *\n * t = new cloudinary.Transformation( {angle: 20, crop: \"scale\", width: \"auto\"});\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\"\n * target=\"_blank\">Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\"\n * target=\"_blank\">Available video transformations</a>\n */\n\n\n function Transformation(options) {\n transformation_classCallCheck(this, Transformation);\n return _super.call(this, options);\n }\n /**\n * Convenience constructor\n * @param {Object} options\n * @return {Transformation}\n * @example cl = cloudinary.Transformation.new( {angle: 20, crop: \"scale\", width: \"auto\"})\n */\n\n\n transformation_createClass(Transformation, [{\n key: \"angle\",\n value:\n /*\n Transformation Parameters\n */\n function angle(value) {\n return this.arrayParam(value, \"angle\", \"a\", \".\", expression.normalize);\n }\n }, {\n key: \"audioCodec\",\n value: function audioCodec(value) {\n return this.param(value, \"audio_codec\", \"ac\");\n }\n }, {\n key: \"audioFrequency\",\n value: function audioFrequency(value) {\n return this.param(value, \"audio_frequency\", \"af\");\n }\n }, {\n key: \"aspectRatio\",\n value: function aspectRatio(value) {\n return this.param(value, \"aspect_ratio\", \"ar\", expression.normalize);\n }\n }, {\n key: \"background\",\n value: function background(value) {\n return this.param(value, \"background\", \"b\", parameters_Param.norm_color);\n }\n }, {\n key: \"bitRate\",\n value: function bitRate(value) {\n return this.param(value, \"bit_rate\", \"br\");\n }\n }, {\n key: \"border\",\n value: function border(value) {\n return this.param(value, \"border\", \"bo\", function (border) {\n if (isPlainObject_root_isPlainObject_default()(border)) {\n border = assign_root_assign_default()({}, {\n color: \"black\",\n width: 2\n }, border);\n return \"\".concat(border.width, \"px_solid_\").concat(parameters_Param.norm_color(border.color));\n } else {\n return border;\n }\n });\n }\n }, {\n key: \"color\",\n value: function color(value) {\n return this.param(value, \"color\", \"co\", parameters_Param.norm_color);\n }\n }, {\n key: \"colorSpace\",\n value: function colorSpace(value) {\n return this.param(value, \"color_space\", \"cs\");\n }\n }, {\n key: \"crop\",\n value: function crop(value) {\n return this.param(value, \"crop\", \"c\");\n }\n }, {\n key: \"customFunction\",\n value: function customFunction(value) {\n return this.param(value, \"custom_function\", \"fn\", function () {\n return processCustomFunction(value);\n });\n }\n }, {\n key: \"customPreFunction\",\n value: function customPreFunction(value) {\n if (this.get('custom_function')) {\n return;\n }\n\n return this.rawParam(value, \"custom_function\", \"\", function () {\n value = processCustomFunction(value);\n return value ? \"fn_pre:\".concat(value) : value;\n });\n }\n }, {\n key: \"defaultImage\",\n value: function defaultImage(value) {\n return this.param(value, \"default_image\", \"d\");\n }\n }, {\n key: \"delay\",\n value: function delay(value) {\n return this.param(value, \"delay\", \"dl\");\n }\n }, {\n key: \"density\",\n value: function density(value) {\n return this.param(value, \"density\", \"dn\");\n }\n }, {\n key: \"duration\",\n value: function duration(value) {\n return this.rangeParam(value, \"duration\", \"du\");\n }\n }, {\n key: \"dpr\",\n value: function dpr(value) {\n return this.param(value, \"dpr\", \"dpr\", function (dpr) {\n dpr = dpr.toString();\n\n if (dpr != null ? dpr.match(/^\\d+$/) : void 0) {\n return dpr + \".0\";\n } else {\n return expression.normalize(dpr);\n }\n });\n }\n }, {\n key: \"effect\",\n value: function effect(value) {\n return this.arrayParam(value, \"effect\", \"e\", \":\", expression.normalize);\n }\n }, {\n key: \"else\",\n value: function _else() {\n return this[\"if\"]('else');\n }\n }, {\n key: \"endIf\",\n value: function endIf() {\n return this[\"if\"]('end');\n }\n }, {\n key: \"endOffset\",\n value: function endOffset(value) {\n return this.rangeParam(value, \"end_offset\", \"eo\");\n }\n }, {\n key: \"fallbackContent\",\n value: function fallbackContent(value) {\n return this.param(value, \"fallback_content\");\n }\n }, {\n key: \"fetchFormat\",\n value: function fetchFormat(value) {\n return this.param(value, \"fetch_format\", \"f\");\n }\n }, {\n key: \"format\",\n value: function format(value) {\n return this.param(value, \"format\");\n }\n }, {\n key: \"flags\",\n value: function flags(value) {\n return this.arrayParam(value, \"flags\", \"fl\", \".\");\n }\n }, {\n key: \"gravity\",\n value: function gravity(value) {\n return this.param(value, \"gravity\", \"g\");\n }\n }, {\n key: \"fps\",\n value: function fps(value) {\n return this.param(value, \"fps\", \"fps\", function (fps) {\n if (isString_root_isString_default()(fps)) {\n return fps;\n } else if (isArray_root_isArray_default()(fps)) {\n return fps.join(\"-\");\n } else {\n return fps;\n }\n });\n }\n }, {\n key: \"height\",\n value: function height(value) {\n var _this3 = this;\n\n return this.param(value, \"height\", \"h\", function () {\n if (_this3.getValue(\"crop\") || _this3.getValue(\"overlay\") || _this3.getValue(\"underlay\")) {\n return expression.normalize(value);\n } else {\n return null;\n }\n });\n }\n }, {\n key: \"htmlHeight\",\n value: function htmlHeight(value) {\n return this.param(value, \"html_height\");\n }\n }, {\n key: \"htmlWidth\",\n value: function htmlWidth(value) {\n return this.param(value, \"html_width\");\n }\n }, {\n key: \"if\",\n value: function _if() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var i, ifVal, j, ref, trIf, trRest;\n\n switch (value) {\n case \"else\":\n this.chain();\n return this.param(value, \"if\", \"if\");\n\n case \"end\":\n this.chain();\n\n for (i = j = ref = this.chained.length - 1; j >= 0; i = j += -1) {\n ifVal = this.chained[i].getValue(\"if\");\n\n if (ifVal === \"end\") {\n break;\n } else if (ifVal != null) {\n trIf = Transformation[\"new\"]()[\"if\"](ifVal);\n this.chained[i].remove(\"if\");\n trRest = this.chained[i];\n this.chained[i] = Transformation[\"new\"]().transformation([trIf, trRest]);\n\n if (ifVal !== \"else\") {\n break;\n }\n }\n }\n\n return this.param(value, \"if\", \"if\");\n\n case \"\":\n return condition[\"new\"]().setParent(this);\n\n default:\n return this.param(value, \"if\", \"if\", function (value) {\n return condition[\"new\"](value).toString();\n });\n }\n }\n }, {\n key: \"keyframeInterval\",\n value: function keyframeInterval(value) {\n return this.param(value, \"keyframe_interval\", \"ki\");\n }\n }, {\n key: \"ocr\",\n value: function ocr(value) {\n return this.param(value, \"ocr\", \"ocr\");\n }\n }, {\n key: \"offset\",\n value: function offset(value) {\n var end_o, start_o;\n\n var _ref2 = isFunction_root_isFunction_default()(value != null ? value.split : void 0) ? value.split('..') : isArray_root_isArray_default()(value) ? value : [null, null];\n\n var _ref3 = transformation_slicedToArray(_ref2, 2);\n\n start_o = _ref3[0];\n end_o = _ref3[1];\n\n if (start_o != null) {\n this.startOffset(start_o);\n }\n\n if (end_o != null) {\n return this.endOffset(end_o);\n }\n }\n }, {\n key: \"opacity\",\n value: function opacity(value) {\n return this.param(value, \"opacity\", \"o\", expression.normalize);\n }\n }, {\n key: \"overlay\",\n value: function overlay(value) {\n return this.layerParam(value, \"overlay\", \"l\");\n }\n }, {\n key: \"page\",\n value: function page(value) {\n return this.param(value, \"page\", \"pg\");\n }\n }, {\n key: \"poster\",\n value: function poster(value) {\n return this.param(value, \"poster\");\n }\n }, {\n key: \"prefix\",\n value: function prefix(value) {\n return this.param(value, \"prefix\", \"p\");\n }\n }, {\n key: \"quality\",\n value: function quality(value) {\n return this.param(value, \"quality\", \"q\", expression.normalize);\n }\n }, {\n key: \"radius\",\n value: function radius(value) {\n return this.arrayParam(value, \"radius\", \"r\", \":\", expression.normalize);\n }\n }, {\n key: \"rawTransformation\",\n value: function rawTransformation(value) {\n return this.rawParam(value, \"raw_transformation\");\n }\n }, {\n key: \"size\",\n value: function size(value) {\n var height, width;\n\n if (isFunction_root_isFunction_default()(value != null ? value.split : void 0)) {\n var _value$split = value.split('x');\n\n var _value$split2 = transformation_slicedToArray(_value$split, 2);\n\n width = _value$split2[0];\n height = _value$split2[1];\n this.width(width);\n return this.height(height);\n }\n }\n }, {\n key: \"sourceTypes\",\n value: function sourceTypes(value) {\n return this.param(value, \"source_types\");\n }\n }, {\n key: \"sourceTransformation\",\n value: function sourceTransformation(value) {\n return this.param(value, \"source_transformation\");\n }\n }, {\n key: \"startOffset\",\n value: function startOffset(value) {\n return this.rangeParam(value, \"start_offset\", \"so\");\n }\n }, {\n key: \"streamingProfile\",\n value: function streamingProfile(value) {\n return this.param(value, \"streaming_profile\", \"sp\");\n }\n }, {\n key: \"transformation\",\n value: function transformation(value) {\n return this.transformationParam(value, \"transformation\", \"t\");\n }\n }, {\n key: \"underlay\",\n value: function underlay(value) {\n return this.layerParam(value, \"underlay\", \"u\");\n }\n }, {\n key: \"variable\",\n value: function variable(name, value) {\n return this.param(value, name, name);\n }\n }, {\n key: \"variables\",\n value: function variables(values) {\n return this.arrayParam(values, \"variables\");\n }\n }, {\n key: \"videoCodec\",\n value: function videoCodec(value) {\n return this.param(value, \"video_codec\", \"vc\", parameters_Param.process_video_params);\n }\n }, {\n key: \"videoSampling\",\n value: function videoSampling(value) {\n return this.param(value, \"video_sampling\", \"vs\");\n }\n }, {\n key: \"width\",\n value: function width(value) {\n var _this4 = this;\n\n return this.param(value, \"width\", \"w\", function () {\n if (_this4.getValue(\"crop\") || _this4.getValue(\"overlay\") || _this4.getValue(\"underlay\")) {\n return expression.normalize(value);\n } else {\n return null;\n }\n });\n }\n }, {\n key: \"x\",\n value: function x(value) {\n return this.param(value, \"x\", \"x\", expression.normalize);\n }\n }, {\n key: \"y\",\n value: function y(value) {\n return this.param(value, \"y\", \"y\", expression.normalize);\n }\n }, {\n key: \"zoom\",\n value: function zoom(value) {\n return this.param(value, \"zoom\", \"z\", expression.normalize);\n }\n }], [{\n key: \"new\",\n value: function _new(options) {\n return new Transformation(options);\n }\n }]);\n return Transformation;\n }(transformation_TransformationBase);\n /**\n * Transformation Class methods.\n * This is a list of the parameters defined in Transformation.\n * Values are camelCased.\n */\n\n\n transformation_Transformation.methods = [\"angle\", \"audioCodec\", \"audioFrequency\", \"aspectRatio\", \"background\", \"bitRate\", \"border\", \"color\", \"colorSpace\", \"crop\", \"customFunction\", \"customPreFunction\", \"defaultImage\", \"delay\", \"density\", \"duration\", \"dpr\", \"effect\", \"else\", \"endIf\", \"endOffset\", \"fallbackContent\", \"fetchFormat\", \"format\", \"flags\", \"gravity\", \"fps\", \"height\", \"htmlHeight\", \"htmlWidth\", \"if\", \"keyframeInterval\", \"ocr\", \"offset\", \"opacity\", \"overlay\", \"page\", \"poster\", \"prefix\", \"quality\", \"radius\", \"rawTransformation\", \"size\", \"sourceTypes\", \"sourceTransformation\", \"startOffset\", \"streamingProfile\", \"transformation\", \"underlay\", \"variable\", \"variables\", \"videoCodec\", \"videoSampling\", \"width\", \"x\", \"y\", \"zoom\"];\n /**\n * Parameters that are filtered out before passing the options to an HTML tag.\n *\n * The list of parameters is a combination of `Transformation::methods` and `Configuration::CONFIG_PARAMS`\n */\n\n transformation_Transformation.PARAM_NAMES = transformation_Transformation.methods.map(snakeCase).concat(src_configuration.CONFIG_PARAMS);\n /* harmony default export */\n\n var src_transformation = transformation_Transformation; // CONCATENATED MODULE: ./src/tags/htmltag.js\n\n function htmltag_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function htmltag_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function htmltag_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) htmltag_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) htmltag_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n /**\n * Generic HTML tag\n * Depends on 'transformation', 'util'\n */\n\n /**\n * Represents an HTML (DOM) tag\n * @constructor HtmlTag\n * @param {string} name - the name of the tag\n * @param {string} [publicId]\n * @param {Object} options\n * @example tag = new HtmlTag( 'div', { 'width': 10})\n */\n\n\n var htmltag_HtmlTag = /*#__PURE__*/function () {\n function HtmlTag(name, publicId, options) {\n htmltag_classCallCheck(this, HtmlTag);\n var transformation;\n this.name = name;\n this.publicId = publicId;\n\n if (options == null) {\n if (isPlainObject_root_isPlainObject_default()(publicId)) {\n options = publicId;\n this.publicId = void 0;\n } else {\n options = {};\n }\n }\n\n transformation = new src_transformation(options);\n transformation.setParent(this);\n\n this.transformation = function () {\n return transformation;\n };\n }\n /**\n * Convenience constructor\n * Creates a new instance of an HTML (DOM) tag\n * @function HtmlTag.new\n * @param {string} name - the name of the tag\n * @param {string} [publicId]\n * @param {Object} options\n * @return {HtmlTag}\n * @example tag = HtmlTag.new( 'div', { 'width': 10})\n */\n\n\n htmltag_createClass(HtmlTag, [{\n key: \"htmlAttrs\",\n value:\n /**\n * combine key and value from the `attr` to generate an HTML tag attributes string.\n * `Transformation::toHtmlTagOptions` is used to filter out transformation and configuration keys.\n * @protected\n * @param {Object} attrs\n * @return {string} the attributes in the format `'key1=\"value1\" key2=\"value2\"'`\n * @ignore\n */\n function htmlAttrs(attrs) {\n var key, pairs, value;\n return pairs = function () {\n var results;\n results = [];\n\n for (key in attrs) {\n value = escapeQuotes(attrs[key]);\n\n if (value) {\n results.push(htmltag_toAttribute(key, value));\n }\n }\n\n return results;\n }().sort().join(' ');\n }\n /**\n * Get all options related to this tag.\n * @function HtmlTag#getOptions\n * @returns {Object} the options\n *\n */\n\n }, {\n key: \"getOptions\",\n value: function getOptions() {\n return this.transformation().toOptions();\n }\n /**\n * Get the value of option `name`\n * @function HtmlTag#getOption\n * @param {string} name - the name of the option\n * @returns {*} Returns the value of the option\n *\n */\n\n }, {\n key: \"getOption\",\n value: function getOption(name) {\n return this.transformation().getValue(name);\n }\n /**\n * Get the attributes of the tag.\n * @function HtmlTag#attributes\n * @returns {Object} attributes\n */\n\n }, {\n key: \"attributes\",\n value: function attributes() {\n // The attributes are be computed from the options every time this method is invoked.\n var htmlAttributes = this.transformation().toHtmlAttributes();\n Object.keys(htmlAttributes).forEach(function (key) {\n if (isPlainObject_root_isPlainObject_default()(htmlAttributes[key])) {\n delete htmlAttributes[key];\n }\n });\n\n if (htmlAttributes.attributes) {\n // Currently HTML attributes are defined both at the top level and under 'attributes'\n merge_root_merge_default()(htmlAttributes, htmlAttributes.attributes);\n delete htmlAttributes.attributes;\n }\n\n return htmlAttributes;\n }\n /**\n * Set a tag attribute named `name` to `value`\n * @function HtmlTag#setAttr\n * @param {string} name - the name of the attribute\n * @param {string} value - the value of the attribute\n */\n\n }, {\n key: \"setAttr\",\n value: function setAttr(name, value) {\n this.transformation().set(\"html_\".concat(name), value);\n return this;\n }\n /**\n * Get the value of the tag attribute `name`\n * @function HtmlTag#getAttr\n * @param {string} name - the name of the attribute\n * @returns {*}\n */\n\n }, {\n key: \"getAttr\",\n value: function getAttr(name) {\n return this.attributes()[\"html_\".concat(name)] || this.attributes()[name];\n }\n /**\n * Remove the tag attributed named `name`\n * @function HtmlTag#removeAttr\n * @param {string} name - the name of the attribute\n * @returns {*}\n */\n\n }, {\n key: \"removeAttr\",\n value: function removeAttr(name) {\n var ref;\n return (ref = this.transformation().remove(\"html_\".concat(name))) != null ? ref : this.transformation().remove(name);\n }\n /**\n * @function HtmlTag#content\n * @protected\n * @ignore\n */\n\n }, {\n key: \"content\",\n value: function content() {\n return \"\";\n }\n /**\n * @function HtmlTag#openTag\n * @protected\n * @ignore\n */\n\n }, {\n key: \"openTag\",\n value: function openTag() {\n var tag = \"<\" + this.name;\n var htmlAttrs = this.htmlAttrs(this.attributes());\n\n if (htmlAttrs && htmlAttrs.length > 0) {\n tag += \" \" + htmlAttrs;\n }\n\n return tag + \">\";\n }\n /**\n * @function HtmlTag#closeTag\n * @protected\n * @ignore\n */\n\n }, {\n key: \"closeTag\",\n value: function closeTag() {\n return \"</\".concat(this.name, \">\");\n }\n /**\n * Generates an HTML representation of the tag.\n * @function HtmlTag#toHtml\n * @returns {string} Returns HTML in string format\n */\n\n }, {\n key: \"toHtml\",\n value: function toHtml() {\n return this.openTag() + this.content() + this.closeTag();\n }\n /**\n * Creates a DOM object representing the tag.\n * @function HtmlTag#toDOM\n * @returns {Element}\n */\n\n }, {\n key: \"toDOM\",\n value: function toDOM() {\n var element, name, ref, value;\n\n if (!isFunction_root_isFunction_default()(typeof document !== \"undefined\" && document !== null ? document.createElement : void 0)) {\n throw \"Can't create DOM if document is not present!\";\n }\n\n element = document.createElement(this.name);\n ref = this.attributes();\n\n for (name in ref) {\n value = ref[name];\n element.setAttribute(name, value);\n }\n\n return element;\n }\n }], [{\n key: \"new\",\n value: function _new(name, publicId, options) {\n return new this(name, publicId, options);\n }\n }, {\n key: \"isResponsive\",\n value: function isResponsive(tag, responsiveClass) {\n var dataSrc;\n dataSrc = lodash_getData(tag, 'src-cache') || lodash_getData(tag, 'src');\n return lodash_hasClass(tag, responsiveClass) && /\\bw_auto\\b/.exec(dataSrc);\n }\n }]);\n return HtmlTag;\n }();\n\n ;\n /**\n * Represent the given key and value as an HTML attribute.\n * @function toAttribute\n * @protected\n * @param {string} key - attribute name\n * @param {*|boolean} value - the value of the attribute. If the value is boolean `true`, return the key only.\n * @returns {string} the attribute\n *\n */\n\n function htmltag_toAttribute(key, value) {\n if (!value) {\n return void 0;\n } else if (value === true) {\n return key;\n } else {\n return \"\".concat(key, \"=\\\"\").concat(value, \"\\\"\");\n }\n }\n /**\n * If given value is a string, replaces quotes with character entities (", ')\n * @param value - value to change\n * @returns {*} changed value\n */\n\n\n function escapeQuotes(value) {\n return isString_root_isString_default()(value) ? value.replace('\"', '"').replace(\"'\", ''') : value;\n }\n /* harmony default export */\n\n\n var htmltag = htmltag_HtmlTag; // CONCATENATED MODULE: ./src/url.js\n\n var _excluded = [\"placeholder\", \"accessibility\"];\n\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n }\n /**\n * Adds protocol, host, pathname prefixes to given string\n * @param str\n * @returns {string}\n */\n\n\n function makeUrl(str) {\n var prefix = document.location.protocol + '//' + document.location.host;\n\n if (str[0] === '?') {\n prefix += document.location.pathname;\n } else if (str[0] !== '/') {\n prefix += document.location.pathname.replace(/\\/[^\\/]*$/, '/');\n }\n\n return prefix + str;\n }\n /**\n * Check is given string is a url\n * @param str\n * @returns {boolean}\n */\n\n\n function isUrl(str) {\n return str ? !!str.match(/^https?:\\//) : false;\n } // Produce a number between 1 and 5 to be used for cdn sub domains designation\n\n\n function cdnSubdomainNumber(publicId) {\n return src_crc32(publicId) % 5 + 1;\n }\n /**\n * Removes signature from options and returns the signature\n * Makes sure signature is empty or of this format: s--signature--\n * @param {object} options\n * @returns {string} the formatted signature\n */\n\n\n function handleSignature(options) {\n var signature = options.signature;\n var isFormatted = !signature || signature.indexOf('s--') === 0 && signature.substr(-2) === '--';\n delete options.signature;\n return isFormatted ? signature : \"s--\".concat(signature, \"--\");\n }\n /**\n * Create the URL prefix for Cloudinary resources.\n * @param {string} publicId the resource public ID\n * @param {object} options additional options\n * @param {string} options.cloud_name - the cloud name.\n * @param {boolean} [options.cdn_subdomain=false] - Whether to automatically build URLs with\n * multiple CDN sub-domains.\n * @param {string} [options.private_cdn] - Boolean (default: false). Should be set to true for Advanced plan's users\n * that have a private CDN distribution.\n * @param {string} [options.protocol=\"http://\"] - the URI protocol to use. If options.secure is true,\n * the value is overridden to \"https://\"\n * @param {string} [options.secure_distribution] - The domain name of the CDN distribution to use for building HTTPS URLs.\n * Relevant only for Advanced plan's users that have a private CDN distribution.\n * @param {string} [options.cname] - Custom domain name to use for building HTTP URLs.\n * Relevant only for Advanced plan's users that have a private CDN distribution and a custom CNAME.\n * @param {boolean} [options.secure_cdn_subdomain=true] - When options.secure is true and this parameter is false,\n * the subdomain is set to \"res\".\n * @param {boolean} [options.secure=false] - Force HTTPS URLs of images even if embedded in non-secure HTTP pages.\n * When this value is true, options.secure_distribution will be used as host if provided, and options.protocol is set\n * to \"https://\".\n * @returns {string} the URL prefix for the resource.\n * @private\n */\n\n\n function handlePrefix(publicId, options) {\n if (options.cloud_name && options.cloud_name[0] === '/') {\n return '/res' + options.cloud_name;\n } // defaults\n\n\n var protocol = \"http://\";\n var cdnPart = \"\";\n var subdomain = \"res\";\n var host = \".cloudinary.com\";\n var path = \"/\" + options.cloud_name; // modifications\n\n if (options.protocol) {\n protocol = options.protocol + '//';\n }\n\n if (options.private_cdn) {\n cdnPart = options.cloud_name + \"-\";\n path = \"\";\n }\n\n if (options.cdn_subdomain) {\n subdomain = \"res-\" + cdnSubdomainNumber(publicId);\n }\n\n if (options.secure) {\n protocol = \"https://\";\n\n if (options.secure_cdn_subdomain === false) {\n subdomain = \"res\";\n }\n\n if (options.secure_distribution != null && options.secure_distribution !== OLD_AKAMAI_SHARED_CDN && options.secure_distribution !== SHARED_CDN) {\n cdnPart = \"\";\n subdomain = \"\";\n host = options.secure_distribution;\n }\n } else if (options.cname) {\n protocol = \"http://\";\n cdnPart = \"\";\n subdomain = options.cdn_subdomain ? 'a' + (src_crc32(publicId) % 5 + 1) + '.' : '';\n host = options.cname;\n }\n\n return [protocol, cdnPart, subdomain, host, path].join(\"\");\n }\n /**\n * Return the resource type and action type based on the given configuration\n * @function Cloudinary#handleResourceType\n * @param {Object|string} resource_type\n * @param {string} [type='upload']\n * @param {string} [url_suffix]\n * @param {boolean} [use_root_path]\n * @param {boolean} [shorten]\n * @returns {string} resource_type/type\n * @ignore\n */\n\n\n function handleResourceType(_ref) {\n var _ref$resource_type = _ref.resource_type,\n resource_type = _ref$resource_type === void 0 ? \"image\" : _ref$resource_type,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? \"upload\" : _ref$type,\n url_suffix = _ref.url_suffix,\n use_root_path = _ref.use_root_path,\n shorten = _ref.shorten;\n var options,\n resourceType = resource_type;\n\n if (isPlainObject_root_isPlainObject_default()(resourceType)) {\n options = resourceType;\n resourceType = options.resource_type;\n type = options.type;\n shorten = options.shorten;\n }\n\n if (type == null) {\n type = 'upload';\n }\n\n if (url_suffix != null) {\n resourceType = SEO_TYPES[\"\".concat(resourceType, \"/\").concat(type)];\n type = null;\n\n if (resourceType == null) {\n throw new Error(\"URL Suffix only supported for \".concat(Object.keys(SEO_TYPES).join(', ')));\n }\n }\n\n if (use_root_path) {\n if (resourceType === 'image' && type === 'upload' || resourceType === \"images\") {\n resourceType = null;\n type = null;\n } else {\n throw new Error(\"Root path only supported for image/upload\");\n }\n }\n\n if (shorten && resourceType === 'image' && type === 'upload') {\n resourceType = 'iu';\n type = null;\n }\n\n return [resourceType, type].join(\"/\");\n }\n /**\n * Encode publicId\n * @param publicId\n * @returns {string} encoded publicId\n */\n\n\n function encodePublicId(publicId) {\n return encodeURIComponent(publicId).replace(/%3A/g, ':').replace(/%2F/g, '/');\n }\n /**\n * Encode and format publicId\n * @param publicId\n * @param options\n * @returns {string} publicId\n */\n\n\n function formatPublicId(publicId, options) {\n if (isUrl(publicId)) {\n publicId = encodePublicId(publicId);\n } else {\n try {\n // Make sure publicId is URI encoded.\n publicId = decodeURIComponent(publicId);\n } catch (error) {}\n\n publicId = encodePublicId(publicId);\n\n if (options.url_suffix) {\n publicId = publicId + '/' + options.url_suffix;\n }\n\n if (options.format) {\n if (!options.trust_public_id) {\n publicId = publicId.replace(/\\.(jpg|png|gif|webp)$/, '');\n }\n\n publicId = publicId + '.' + options.format;\n }\n }\n\n return publicId;\n }\n /**\n * Get any error with url options\n * @param options\n * @returns {string} if error, otherwise return undefined\n */\n\n\n function validate(options) {\n var cloud_name = options.cloud_name,\n url_suffix = options.url_suffix;\n\n if (!cloud_name) {\n return 'Unknown cloud_name';\n }\n\n if (url_suffix && url_suffix.match(/[\\.\\/]/)) {\n return 'url_suffix should not include . or /';\n }\n }\n /**\n * Get version part of the url\n * @param publicId\n * @param options\n * @returns {string}\n */\n\n\n function handleVersion(publicId, options) {\n // force_version param means to make sure there is a version in the url (Default is true)\n var isForceVersion = options.force_version || typeof options.force_version === 'undefined'; // Is version included in publicId or in options, or publicId is a url (doesn't need version)\n\n var isVersionExist = publicId.indexOf('/') < 0 || publicId.match(/^v[0-9]+/) || isUrl(publicId) || options.version;\n\n if (isForceVersion && !isVersionExist) {\n options.version = 1;\n }\n\n return options.version ? \"v\".concat(options.version) : '';\n }\n /**\n * Get final transformation component for url string\n * @param options\n * @returns {string}\n */\n\n\n function handleTransformation(options) {\n var _ref2 = options || {},\n placeholder = _ref2.placeholder,\n accessibility = _ref2.accessibility,\n otherOptions = _objectWithoutProperties(_ref2, _excluded);\n\n var result = new src_transformation(otherOptions); // Append accessibility transformations\n\n if (accessibility && ACCESSIBILITY_MODES[accessibility]) {\n result.chain().effect(ACCESSIBILITY_MODES[accessibility]);\n } // Append placeholder transformations\n\n\n if (placeholder) {\n if (placeholder === \"predominant-color\" && result.getValue('width') && result.getValue('height')) {\n placeholder += '-pixel';\n }\n\n var placeholderTransformations = PLACEHOLDER_IMAGE_MODES[placeholder] || PLACEHOLDER_IMAGE_MODES.blur;\n placeholderTransformations.forEach(function (t) {\n return result.chain().transformation(t);\n });\n }\n\n return result.serialize();\n }\n /**\n * If type is 'fetch', update publicId to be a url\n * @param publicId\n * @param type\n * @returns {string}\n */\n\n\n function preparePublicId(publicId, _ref3) {\n var type = _ref3.type;\n return !isUrl(publicId) && type === 'fetch' ? makeUrl(publicId) : publicId;\n }\n /**\n * Generate url string\n * @param publicId\n * @param options\n * @returns {string} final url\n */\n\n\n function urlString(publicId, options) {\n if (isUrl(publicId) && (options.type === 'upload' || options.type === 'asset')) {\n return publicId;\n }\n\n var version = handleVersion(publicId, options);\n var transformationString = handleTransformation(options);\n var prefix = handlePrefix(publicId, options);\n var signature = handleSignature(options);\n var resourceType = handleResourceType(options);\n publicId = formatPublicId(publicId, options);\n return compact_root_compact_default()([prefix, resourceType, signature, transformationString, version, publicId]).join('/').replace(/([^:])\\/+/g, '$1/') // replace '///' with '//'\n .replace(' ', '%20');\n }\n /**\n * Merge options and config with defaults\n * update options fetch_format according to 'type' param\n * @param options\n * @param config\n * @returns {*} updated options\n */\n\n\n function prepareOptions(options, config) {\n if (options instanceof src_transformation) {\n options = options.toOptions();\n }\n\n options = defaults({}, options, config, DEFAULT_IMAGE_PARAMS);\n\n if (options.type === 'fetch') {\n options.fetch_format = options.fetch_format || options.format;\n }\n\n return options;\n }\n /**\n * Generates a URL for any asset in your Media library.\n * @function url\n * @ignore\n * @param {string} publicId - The public ID of the media asset.\n * @param {Object} [options={}] - The {@link Transformation} parameters to include in the URL.\n * @param {object} [config={}] - URL configuration parameters\n * @param {type} [options.type='upload'] - The asset's storage type.\n * For details on all fetch types, see\n * <a href=\"https://cloudinary.com/documentation/image_transformations#fetching_images_from_remote_locations\"\n * target=\"_blank\">Fetch types</a>.\n * @param {Object} [options.resource_type='image'] - The type of asset. <p>Possible values:<br/>\n * - `image`<br/>\n * - `video`<br/>\n * - `raw`\n * @param {signature} [options.signature='s--12345678--'] - The signature component of a\n * signed delivery URL of the format: /s--SIGNATURE--/.\n * For details on signatures, see\n * <a href=\"https://cloudinary.com/documentation/signatures\" target=\"_blank\">Signatures</a>.\n * @return {string} The media asset URL.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\" target=\"_blank\">\n * Available video transformations</a>\n */\n\n\n function url_url(publicId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!publicId) {\n return publicId;\n }\n\n options = prepareOptions(options, config);\n publicId = preparePublicId(publicId, options);\n var error = validate(options);\n\n if (error) {\n throw error;\n }\n\n var resultUrl = urlString(publicId, options);\n\n if (options.urlAnalytics) {\n var analyticsOptions = getAnalyticsOptions(options);\n var sdkAnalyticsSignature = getSDKAnalyticsSignature(analyticsOptions); // url might already have a '?' query param\n\n var appender = '?';\n\n if (resultUrl.indexOf('?') >= 0) {\n appender = '&';\n }\n\n resultUrl = \"\".concat(resultUrl).concat(appender, \"_a=\").concat(sdkAnalyticsSignature);\n }\n\n return resultUrl;\n }\n\n ; // CONCATENATED MODULE: ./src/util/generateBreakpoints.js\n\n function generateBreakpoints_slicedToArray(arr, i) {\n return generateBreakpoints_arrayWithHoles(arr) || generateBreakpoints_iterableToArrayLimit(arr, i) || generateBreakpoints_unsupportedIterableToArray(arr, i) || generateBreakpoints_nonIterableRest();\n }\n\n function generateBreakpoints_nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function generateBreakpoints_unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return generateBreakpoints_arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return generateBreakpoints_arrayLikeToArray(o, minLen);\n }\n\n function generateBreakpoints_arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function generateBreakpoints_iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function generateBreakpoints_arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n /**\n * Helper function. Gets or populates srcset breakpoints using provided parameters\n * Either the breakpoints or min_width, max_width, max_images must be provided.\n *\n * @private\n * @param {srcset} srcset Options with either `breakpoints` or `min_width`, `max_width`, and `max_images`\n *\n * @return {number[]} Array of breakpoints\n *\n */\n\n\n function generateBreakpoints(srcset) {\n var breakpoints = srcset.breakpoints || [];\n\n if (breakpoints.length) {\n return breakpoints;\n }\n\n var _map = [srcset.min_width, srcset.max_width, srcset.max_images].map(Number),\n _map2 = generateBreakpoints_slicedToArray(_map, 3),\n min_width = _map2[0],\n max_width = _map2[1],\n max_images = _map2[2];\n\n if ([min_width, max_width, max_images].some(isNaN)) {\n throw 'Either (min_width, max_width, max_images) ' + 'or breakpoints must be provided to the image srcset attribute';\n }\n\n if (min_width > max_width) {\n throw 'min_width must be less than max_width';\n }\n\n if (max_images <= 0) {\n throw 'max_images must be a positive integer';\n } else if (max_images === 1) {\n min_width = max_width;\n }\n\n var stepSize = Math.ceil((max_width - min_width) / Math.max(max_images - 1, 1));\n\n for (var current = min_width; current < max_width; current += stepSize) {\n breakpoints.push(current);\n }\n\n breakpoints.push(max_width);\n return breakpoints;\n } // CONCATENATED MODULE: ./src/util/srcsetUtils.js\n\n\n var srcsetUtils_isEmpty = isEmpty;\n /**\n * Options used to generate the srcset attribute.\n * @typedef {object} srcset\n * @property {(number[]|string[])} [breakpoints] An array of breakpoints.\n * @property {number} [min_width] Minimal width of the srcset images.\n * @property {number} [max_width] Maximal width of the srcset images.\n * @property {number} [max_images] Number of srcset images to generate.\n * @property {object|string} [transformation] The transformation to use in the srcset urls.\n * @property {boolean} [sizes] Whether to calculate and add the sizes attribute.\n */\n\n /**\n * Helper function. Generates a single srcset item url\n *\n * @private\n * @param {string} public_id Public ID of the resource.\n * @param {number} width Width in pixels of the srcset item.\n * @param {object|string} transformation\n * @param {object} options Additional options.\n *\n * @return {string} Resulting URL of the item\n */\n\n function scaledUrl(public_id, width, transformation) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var configParams = extractUrlParams(options);\n transformation = transformation || options;\n configParams.raw_transformation = new src_transformation([merge_root_merge_default.a({}, transformation), {\n crop: 'scale',\n width: width\n }]).toString();\n return url_url(public_id, configParams);\n }\n /**\n * If cache is enabled, get the breakpoints from the cache. If the values were not found in the cache,\n * or cache is not enabled, generate the values.\n * @param {srcset} srcset The srcset configuration parameters\n * @param {string} public_id\n * @param {object} options\n * @return {*|Array}\n */\n\n\n function getOrGenerateBreakpoints(public_id) {\n var srcset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return generateBreakpoints(srcset);\n }\n /**\n * Helper function. Generates srcset attribute value of the HTML img tag\n * @private\n *\n * @param {string} public_id Public ID of the resource\n * @param {number[]} breakpoints An array of breakpoints (in pixels)\n * @param {object} transformation The transformation\n * @param {object} options Includes html tag options, transformation options\n * @return {string} Resulting srcset attribute value\n */\n\n\n function generateSrcsetAttribute(public_id, breakpoints, transformation, options) {\n options = cloneDeep_root_cloneDeep_default.a(options);\n patchFetchFormat(options);\n return breakpoints.map(function (width) {\n return \"\".concat(scaledUrl(public_id, width, transformation, options), \" \").concat(width, \"w\");\n }).join(', ');\n }\n /**\n * Helper function. Generates sizes attribute value of the HTML img tag\n * @private\n * @param {number[]} breakpoints An array of breakpoints.\n * @return {string} Resulting sizes attribute value\n */\n\n\n function generateSizesAttribute(breakpoints) {\n if (breakpoints == null) {\n return '';\n }\n\n return breakpoints.map(function (width) {\n return \"(max-width: \".concat(width, \"px) \").concat(width, \"px\");\n }).join(', ');\n }\n /**\n * Helper function. Generates srcset and sizes attributes of the image tag\n *\n * Generated attributes are added to attributes argument\n *\n * @private\n * @param {string} publicId The public ID of the resource\n * @param {object} attributes Existing HTML attributes.\n * @param {srcset} srcsetData\n * @param {object} options Additional options.\n *\n * @return array The responsive attributes\n */\n\n\n function generateImageResponsiveAttributes(publicId) {\n var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var srcsetData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; // Create both srcset and sizes here to avoid fetching breakpoints twice\n\n var responsiveAttributes = {};\n\n if (srcsetUtils_isEmpty(srcsetData)) {\n return responsiveAttributes;\n }\n\n var generateSizes = !attributes.sizes && srcsetData.sizes === true;\n var generateSrcset = !attributes.srcset;\n\n if (generateSrcset || generateSizes) {\n var breakpoints = getOrGenerateBreakpoints(publicId, srcsetData, options);\n\n if (generateSrcset) {\n var transformation = srcsetData.transformation;\n var srcsetAttr = generateSrcsetAttribute(publicId, breakpoints, transformation, options);\n\n if (!srcsetUtils_isEmpty(srcsetAttr)) {\n responsiveAttributes.srcset = srcsetAttr;\n }\n }\n\n if (generateSizes) {\n var sizesAttr = generateSizesAttribute(breakpoints);\n\n if (!srcsetUtils_isEmpty(sizesAttr)) {\n responsiveAttributes.sizes = sizesAttr;\n }\n }\n }\n\n return responsiveAttributes;\n }\n /**\n * Generate a media query\n *\n * @private\n * @param {object} options configuration options\n * @param {number|string} options.min_width\n * @param {number|string} options.max_width\n * @return {string} a media query string\n */\n\n\n function generateMediaAttr(options) {\n var mediaQuery = [];\n\n if (options != null) {\n if (options.min_width != null) {\n mediaQuery.push(\"(min-width: \".concat(options.min_width, \"px)\"));\n }\n\n if (options.max_width != null) {\n mediaQuery.push(\"(max-width: \".concat(options.max_width, \"px)\"));\n }\n }\n\n return mediaQuery.join(' and ');\n }\n\n var srcsetUrl = scaledUrl; // CONCATENATED MODULE: ./src/tags/imagetag.js\n\n function imagetag_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n imagetag_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n imagetag_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return imagetag_typeof(obj);\n }\n\n function imagetag_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function imagetag_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function imagetag_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) imagetag_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) imagetag_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function imagetag_get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n imagetag_get = Reflect.get;\n } else {\n imagetag_get = function _get(target, property, receiver) {\n var base = imagetag_superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return imagetag_get(target, property, receiver || target);\n }\n\n function imagetag_superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = imagetag_getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function imagetag_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) imagetag_setPrototypeOf(subClass, superClass);\n }\n\n function imagetag_setPrototypeOf(o, p) {\n imagetag_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return imagetag_setPrototypeOf(o, p);\n }\n\n function imagetag_createSuper(Derived) {\n var hasNativeReflectConstruct = imagetag_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = imagetag_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = imagetag_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return imagetag_possibleConstructorReturn(this, result);\n };\n }\n\n function imagetag_possibleConstructorReturn(self, call) {\n if (call && (imagetag_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return imagetag_assertThisInitialized(self);\n }\n\n function imagetag_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function imagetag_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function imagetag_getPrototypeOf(o) {\n imagetag_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return imagetag_getPrototypeOf(o);\n }\n /**\n * Image Tag\n * Depends on 'tags/htmltag', 'cloudinary'\n */\n\n /**\n * Creates an HTML (DOM) Image tag using Cloudinary as the source.\n * @constructor ImageTag\n * @extends HtmlTag\n * @param {string} [publicId]\n * @param {Object} [options]\n */\n\n\n var imagetag_ImageTag = /*#__PURE__*/function (_HtmlTag) {\n imagetag_inherits(ImageTag, _HtmlTag);\n\n var _super = imagetag_createSuper(ImageTag);\n\n function ImageTag(publicId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n imagetag_classCallCheck(this, ImageTag);\n return _super.call(this, \"img\", publicId, options);\n }\n /** @override */\n\n\n imagetag_createClass(ImageTag, [{\n key: \"closeTag\",\n value: function closeTag() {\n return \"\";\n }\n /** @override */\n\n }, {\n key: \"attributes\",\n value: function attributes() {\n var attr, options, srcAttribute;\n attr = imagetag_get(imagetag_getPrototypeOf(ImageTag.prototype), \"attributes\", this).call(this) || {};\n options = this.getOptions();\n var srcsetParam = this.getOption('srcset');\n var attributes = this.getOption('attributes') || {};\n var responsiveAttributes = {};\n\n if (isString_root_isString_default()(srcsetParam)) {\n responsiveAttributes.srcset = srcsetParam;\n } else {\n responsiveAttributes = generateImageResponsiveAttributes(this.publicId, attributes, srcsetParam, options);\n }\n\n if (!isEmpty(responsiveAttributes)) {\n delete options.width;\n delete options.height;\n }\n\n merge_root_merge_default()(attr, responsiveAttributes);\n srcAttribute = options.responsive && !options.client_hints ? 'data-src' : 'src';\n\n if (attr[srcAttribute] == null) {\n attr[srcAttribute] = url_url(this.publicId, this.getOptions());\n }\n\n return attr;\n }\n }]);\n return ImageTag;\n }(htmltag);\n\n ;\n /* harmony default export */\n\n var imagetag = imagetag_ImageTag; // CONCATENATED MODULE: ./src/tags/sourcetag.js\n\n function sourcetag_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n sourcetag_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n sourcetag_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return sourcetag_typeof(obj);\n }\n\n function sourcetag_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function sourcetag_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function sourcetag_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) sourcetag_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) sourcetag_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function sourcetag_get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n sourcetag_get = Reflect.get;\n } else {\n sourcetag_get = function _get(target, property, receiver) {\n var base = sourcetag_superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return sourcetag_get(target, property, receiver || target);\n }\n\n function sourcetag_superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = sourcetag_getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function sourcetag_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) sourcetag_setPrototypeOf(subClass, superClass);\n }\n\n function sourcetag_setPrototypeOf(o, p) {\n sourcetag_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return sourcetag_setPrototypeOf(o, p);\n }\n\n function sourcetag_createSuper(Derived) {\n var hasNativeReflectConstruct = sourcetag_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = sourcetag_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = sourcetag_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return sourcetag_possibleConstructorReturn(this, result);\n };\n }\n\n function sourcetag_possibleConstructorReturn(self, call) {\n if (call && (sourcetag_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return sourcetag_assertThisInitialized(self);\n }\n\n function sourcetag_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function sourcetag_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function sourcetag_getPrototypeOf(o) {\n sourcetag_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return sourcetag_getPrototypeOf(o);\n }\n /**\n * Image Tag\n * Depends on 'tags/htmltag', 'cloudinary'\n */\n\n /**\n * Creates an HTML (DOM) Image tag using Cloudinary as the source.\n * @constructor SourceTag\n * @extends HtmlTag\n * @param {string} [publicId]\n * @param {Object} [options]\n */\n\n\n var sourcetag_SourceTag = /*#__PURE__*/function (_HtmlTag) {\n sourcetag_inherits(SourceTag, _HtmlTag);\n\n var _super = sourcetag_createSuper(SourceTag);\n\n function SourceTag(publicId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n sourcetag_classCallCheck(this, SourceTag);\n return _super.call(this, \"source\", publicId, options);\n }\n /** @override */\n\n\n sourcetag_createClass(SourceTag, [{\n key: \"closeTag\",\n value: function closeTag() {\n return \"\";\n }\n /** @override */\n\n }, {\n key: \"attributes\",\n value: function attributes() {\n var srcsetParam = this.getOption('srcset');\n var attr = sourcetag_get(sourcetag_getPrototypeOf(SourceTag.prototype), \"attributes\", this).call(this) || {};\n var options = this.getOptions();\n merge_root_merge_default()(attr, generateImageResponsiveAttributes(this.publicId, attr, srcsetParam, options));\n\n if (!attr.srcset) {\n attr.srcset = url_url(this.publicId, options);\n }\n\n if (!attr.media && options.media) {\n attr.media = generateMediaAttr(options.media);\n }\n\n return attr;\n }\n }]);\n return SourceTag;\n }(htmltag);\n\n ;\n /* harmony default export */\n\n var sourcetag = sourcetag_SourceTag; // CONCATENATED MODULE: ./src/tags/picturetag.js\n\n function picturetag_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n picturetag_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n picturetag_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return picturetag_typeof(obj);\n }\n\n function picturetag_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function picturetag_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function picturetag_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) picturetag_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) picturetag_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function picturetag_get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n picturetag_get = Reflect.get;\n } else {\n picturetag_get = function _get(target, property, receiver) {\n var base = picturetag_superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return picturetag_get(target, property, receiver || target);\n }\n\n function picturetag_superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = picturetag_getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function picturetag_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) picturetag_setPrototypeOf(subClass, superClass);\n }\n\n function picturetag_setPrototypeOf(o, p) {\n picturetag_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return picturetag_setPrototypeOf(o, p);\n }\n\n function picturetag_createSuper(Derived) {\n var hasNativeReflectConstruct = picturetag_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = picturetag_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = picturetag_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return picturetag_possibleConstructorReturn(this, result);\n };\n }\n\n function picturetag_possibleConstructorReturn(self, call) {\n if (call && (picturetag_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return picturetag_assertThisInitialized(self);\n }\n\n function picturetag_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function picturetag_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function picturetag_getPrototypeOf(o) {\n picturetag_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return picturetag_getPrototypeOf(o);\n }\n\n var picturetag_PictureTag = /*#__PURE__*/function (_HtmlTag) {\n picturetag_inherits(PictureTag, _HtmlTag);\n\n var _super = picturetag_createSuper(PictureTag);\n\n function PictureTag(publicId) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var sources = arguments.length > 2 ? arguments[2] : undefined;\n picturetag_classCallCheck(this, PictureTag);\n _this = _super.call(this, 'picture', publicId, options);\n _this.widthList = sources;\n return _this;\n }\n /** @override */\n\n\n picturetag_createClass(PictureTag, [{\n key: \"content\",\n value: function content() {\n var _this2 = this;\n\n return this.widthList.map(function (_ref) {\n var min_width = _ref.min_width,\n max_width = _ref.max_width,\n transformation = _ref.transformation;\n\n var options = _this2.getOptions();\n\n var sourceTransformation = new src_transformation(options);\n sourceTransformation.chain().fromOptions(typeof transformation === 'string' ? {\n raw_transformation: transformation\n } : transformation);\n options = extractUrlParams(options);\n options.media = {\n min_width: min_width,\n max_width: max_width\n };\n options.transformation = sourceTransformation;\n return new sourcetag(_this2.publicId, options).toHtml();\n }).join('') + new imagetag(this.publicId, this.getOptions()).toHtml();\n }\n /** @override */\n\n }, {\n key: \"attributes\",\n value: function attributes() {\n var attr = picturetag_get(picturetag_getPrototypeOf(PictureTag.prototype), \"attributes\", this).call(this);\n delete attr.width;\n delete attr.height;\n return attr;\n }\n /** @override */\n\n }, {\n key: \"closeTag\",\n value: function closeTag() {\n return \"</\" + this.name + \">\";\n }\n }]);\n return PictureTag;\n }(htmltag);\n\n ;\n /* harmony default export */\n\n var picturetag = picturetag_PictureTag; // CONCATENATED MODULE: ./src/tags/videotag.js\n\n function videotag_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n videotag_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n videotag_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return videotag_typeof(obj);\n }\n\n function videotag_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function videotag_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function videotag_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) videotag_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) videotag_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function videotag_get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n videotag_get = Reflect.get;\n } else {\n videotag_get = function _get(target, property, receiver) {\n var base = videotag_superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return videotag_get(target, property, receiver || target);\n }\n\n function videotag_superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = videotag_getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function videotag_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) videotag_setPrototypeOf(subClass, superClass);\n }\n\n function videotag_setPrototypeOf(o, p) {\n videotag_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return videotag_setPrototypeOf(o, p);\n }\n\n function videotag_createSuper(Derived) {\n var hasNativeReflectConstruct = videotag_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = videotag_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = videotag_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return videotag_possibleConstructorReturn(this, result);\n };\n }\n\n function videotag_possibleConstructorReturn(self, call) {\n if (call && (videotag_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return videotag_assertThisInitialized(self);\n }\n\n function videotag_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function videotag_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function videotag_getPrototypeOf(o) {\n videotag_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return videotag_getPrototypeOf(o);\n }\n /**\n * Video Tag\n * Depends on 'tags/htmltag', 'util', 'cloudinary'\n */\n\n\n var VIDEO_TAG_PARAMS = ['source_types', 'source_transformation', 'fallback_content', 'poster', 'sources'];\n var videotag_DEFAULT_VIDEO_SOURCE_TYPES = ['webm', 'mp4', 'ogv'];\n var videotag_DEFAULT_POSTER_OPTIONS = {\n format: 'jpg',\n resource_type: 'video'\n };\n /**\n * Creates an HTML (DOM) Video tag using Cloudinary as the source.\n * @constructor VideoTag\n * @extends HtmlTag\n * @param {string} [publicId]\n * @param {Object} [options]\n */\n\n var videotag_VideoTag = /*#__PURE__*/function (_HtmlTag) {\n videotag_inherits(VideoTag, _HtmlTag);\n\n var _super = videotag_createSuper(VideoTag);\n\n function VideoTag(publicId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n videotag_classCallCheck(this, VideoTag);\n options = defaults({}, options, DEFAULT_VIDEO_PARAMS);\n return _super.call(this, \"video\", publicId.replace(/\\.(mp4|ogv|webm)$/, ''), options);\n }\n /**\n * Set the transformation to apply on each source\n * @function VideoTag#setSourceTransformation\n * @param {Object} an object with pairs of source type and source transformation\n * @returns {VideoTag} Returns this instance for chaining purposes.\n */\n\n\n videotag_createClass(VideoTag, [{\n key: \"setSourceTransformation\",\n value: function setSourceTransformation(value) {\n this.transformation().sourceTransformation(value);\n return this;\n }\n /**\n * Set the source types to include in the video tag\n * @function VideoTag#setSourceTypes\n * @param {Array<string>} an array of source types\n * @returns {VideoTag} Returns this instance for chaining purposes.\n */\n\n }, {\n key: \"setSourceTypes\",\n value: function setSourceTypes(value) {\n this.transformation().sourceTypes(value);\n return this;\n }\n /**\n * Set the poster to be used in the video tag\n * @function VideoTag#setPoster\n * @param {string|Object} value\n * - string: a URL to use for the poster\n * - Object: transformation parameters to apply to the poster. May optionally include a public_id to use instead of the video public_id.\n * @returns {VideoTag} Returns this instance for chaining purposes.\n */\n\n }, {\n key: \"setPoster\",\n value: function setPoster(value) {\n this.transformation().poster(value);\n return this;\n }\n /**\n * Set the content to use as fallback in the video tag\n * @function VideoTag#setFallbackContent\n * @param {string} value - the content to use, in HTML format\n * @returns {VideoTag} Returns this instance for chaining purposes.\n */\n\n }, {\n key: \"setFallbackContent\",\n value: function setFallbackContent(value) {\n this.transformation().fallbackContent(value);\n return this;\n }\n }, {\n key: \"content\",\n value: function content() {\n var _this = this;\n\n var sourceTypes = this.transformation().getValue('source_types');\n var sourceTransformation = this.transformation().getValue('source_transformation');\n var fallback = this.transformation().getValue('fallback_content');\n var sources = this.getOption('sources');\n var innerTags = [];\n\n if (isArray_root_isArray_default()(sources) && !isEmpty(sources)) {\n innerTags = sources.map(function (source) {\n var src = url_url(_this.publicId, defaults({}, source.transformations || {}, {\n resource_type: 'video',\n format: source.type\n }), _this.getOptions());\n return _this.createSourceTag(src, source.type, source.codecs);\n });\n } else {\n if (isEmpty(sourceTypes)) {\n sourceTypes = videotag_DEFAULT_VIDEO_SOURCE_TYPES;\n }\n\n if (isArray_root_isArray_default()(sourceTypes)) {\n innerTags = sourceTypes.map(function (srcType) {\n var src = url_url(_this.publicId, defaults({}, sourceTransformation[srcType] || {}, {\n resource_type: 'video',\n format: srcType\n }), _this.getOptions());\n return _this.createSourceTag(src, srcType);\n });\n }\n }\n\n return innerTags.join('') + fallback;\n }\n }, {\n key: \"attributes\",\n value: function attributes() {\n var sourceTypes = this.getOption('source_types');\n var poster = this.getOption('poster');\n\n if (poster === undefined) {\n poster = {};\n }\n\n if (isPlainObject_root_isPlainObject_default()(poster)) {\n var defaultOptions = poster.public_id != null ? DEFAULT_IMAGE_PARAMS : videotag_DEFAULT_POSTER_OPTIONS;\n poster = url_url(poster.public_id || this.publicId, defaults({}, poster, defaultOptions, this.getOptions()));\n }\n\n var attr = videotag_get(videotag_getPrototypeOf(VideoTag.prototype), \"attributes\", this).call(this) || {};\n attr = omit(attr, VIDEO_TAG_PARAMS);\n var sources = this.getOption('sources'); // In case of empty sourceTypes - fallback to default source types is used.\n\n var hasSourceTags = !isEmpty(sources) || isEmpty(sourceTypes) || isArray_root_isArray_default()(sourceTypes);\n\n if (!hasSourceTags) {\n attr[\"src\"] = url_url(this.publicId, this.getOptions(), {\n resource_type: 'video',\n format: sourceTypes\n });\n }\n\n if (poster != null) {\n attr[\"poster\"] = poster;\n }\n\n return attr;\n }\n }, {\n key: \"createSourceTag\",\n value: function createSourceTag(src, sourceType) {\n var codecs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var mimeType = null;\n\n if (!isEmpty(sourceType)) {\n var videoType = sourceType === 'ogv' ? 'ogg' : sourceType;\n mimeType = 'video/' + videoType;\n\n if (!isEmpty(codecs)) {\n var codecsStr = isArray_root_isArray_default()(codecs) ? codecs.join(', ') : codecs;\n mimeType += '; codecs=' + codecsStr;\n }\n }\n\n return \"<source \" + this.htmlAttrs({\n src: src,\n type: mimeType\n }) + \">\";\n }\n }]);\n return VideoTag;\n }(htmltag);\n /* harmony default export */\n\n\n var videotag = videotag_VideoTag; // CONCATENATED MODULE: ./src/tags/clienthintsmetatag.js\n\n function clienthintsmetatag_typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n clienthintsmetatag_typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n clienthintsmetatag_typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return clienthintsmetatag_typeof(obj);\n }\n\n function clienthintsmetatag_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function clienthintsmetatag_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function clienthintsmetatag_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) clienthintsmetatag_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) clienthintsmetatag_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function clienthintsmetatag_inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) clienthintsmetatag_setPrototypeOf(subClass, superClass);\n }\n\n function clienthintsmetatag_setPrototypeOf(o, p) {\n clienthintsmetatag_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return clienthintsmetatag_setPrototypeOf(o, p);\n }\n\n function clienthintsmetatag_createSuper(Derived) {\n var hasNativeReflectConstruct = clienthintsmetatag_isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = clienthintsmetatag_getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = clienthintsmetatag_getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return clienthintsmetatag_possibleConstructorReturn(this, result);\n };\n }\n\n function clienthintsmetatag_possibleConstructorReturn(self, call) {\n if (call && (clienthintsmetatag_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return clienthintsmetatag_assertThisInitialized(self);\n }\n\n function clienthintsmetatag_assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function clienthintsmetatag_isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function clienthintsmetatag_getPrototypeOf(o) {\n clienthintsmetatag_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return clienthintsmetatag_getPrototypeOf(o);\n }\n /**\n * Image Tag\n * Depends on 'tags/htmltag', 'cloudinary'\n */\n\n /**\n * Creates an HTML (DOM) Meta tag that enables Client-Hints for the HTML page. <br/>\n * See\n * <a href=\"https://cloudinary.com/documentation/responsive_images#automating_responsive_images_with_client_hints\"\n * target=\"_new\">Automating responsive images with Client Hints</a> for more details.\n * @constructor ClientHintsMetaTag\n * @extends HtmlTag\n * @param {object} options\n * @example\n * tag = new ClientHintsMetaTag()\n * //returns: <meta http-equiv=\"Accept-CH\" content=\"DPR, Viewport-Width, Width\">\n */\n\n\n var clienthintsmetatag_ClientHintsMetaTag = /*#__PURE__*/function (_HtmlTag) {\n clienthintsmetatag_inherits(ClientHintsMetaTag, _HtmlTag);\n\n var _super = clienthintsmetatag_createSuper(ClientHintsMetaTag);\n\n function ClientHintsMetaTag(options) {\n clienthintsmetatag_classCallCheck(this, ClientHintsMetaTag);\n return _super.call(this, 'meta', void 0, assign_root_assign_default()({\n \"http-equiv\": \"Accept-CH\",\n content: \"DPR, Viewport-Width, Width\"\n }, options));\n }\n /** @override */\n\n\n clienthintsmetatag_createClass(ClientHintsMetaTag, [{\n key: \"closeTag\",\n value: function closeTag() {\n return \"\";\n }\n }]);\n return ClientHintsMetaTag;\n }(htmltag);\n\n ;\n /* harmony default export */\n\n var clienthintsmetatag = clienthintsmetatag_ClientHintsMetaTag; // CONCATENATED MODULE: ./src/util/parse/normalizeToArray.js\n\n function normalizeToArray_toConsumableArray(arr) {\n return normalizeToArray_arrayWithoutHoles(arr) || normalizeToArray_iterableToArray(arr) || normalizeToArray_unsupportedIterableToArray(arr) || normalizeToArray_nonIterableSpread();\n }\n\n function normalizeToArray_nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function normalizeToArray_unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return normalizeToArray_arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return normalizeToArray_arrayLikeToArray(o, minLen);\n }\n\n function normalizeToArray_iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n\n function normalizeToArray_arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return normalizeToArray_arrayLikeToArray(arr);\n }\n\n function normalizeToArray_arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n /**\n * @desc normalize elements, support a single element, array or nodelist, always outputs array\n * @param elements<HTMLElement[]>\n * @returns {[]}\n */\n\n\n function normalizeToArray(elements) {\n if (isArray_root_isArray_default()(elements)) {\n return elements;\n } else if (elements.constructor.name === \"NodeList\") {\n return normalizeToArray_toConsumableArray(elements); // ensure an array is always returned, even if nodelist\n } else if (isString_root_isString_default()(elements)) {\n return Array.prototype.slice.call(document.querySelectorAll(elements), 0);\n } else {\n return [elements];\n }\n } // CONCATENATED MODULE: ./src/util/features/transparentVideo/mountCloudinaryVideoTag.js\n\n /**\n * @param {HTMLElement} htmlElContainer\n * @param {object} clInstance cloudinary instance\n * @param {string} publicId\n * @param {object} options - TransformationOptions\n * @returns Promise<HTMLElement>\n */\n\n\n function mountCloudinaryVideoTag(htmlElContainer, clInstance, publicId, options) {\n return new Promise(function (resolve, reject) {\n htmlElContainer.innerHTML = clInstance.videoTag(publicId, options).toHtml(); // All videos under the html container must have a width of 100%, or they might overflow from the container\n\n var cloudinaryVideoElement = htmlElContainer.querySelector('.cld-transparent-video');\n cloudinaryVideoElement.style.width = '100%';\n resolve(htmlElContainer);\n });\n }\n /* harmony default export */\n\n\n var transparentVideo_mountCloudinaryVideoTag = mountCloudinaryVideoTag; // CONCATENATED MODULE: ./src/util/transformations/addFlag.js\n\n /**\n * @description - Function will push a flag to incoming options\n * @param {{transformation} | {...transformation}} options - These options are the same options provided to all our SDK methods\n * We expect options to either be the transformation itself, or an object containing\n * an array of transformations\n *\n * @param {string} flag\n * @returns the mutated options object\n */\n\n function addFlagToOptions(options, flag) {\n // Do we have transformation\n if (options.transformation) {\n options.transformation.push({\n flags: [flag]\n });\n } else {\n // no transformation\n // ensure the flags are extended\n if (!options.flags) {\n options.flags = [];\n }\n\n if (typeof options.flags === 'string') {\n options.flags = [options.flags];\n }\n\n options.flags.push(flag);\n }\n }\n /* harmony default export */\n\n\n var addFlag = addFlagToOptions; // CONCATENATED MODULE: ./src/util/features/transparentVideo/enforceOptionsForTransparentVideo.js\n\n /**\n * @description - Enforce option structure, sets defaults and ensures alpha flag exists\n * @param options {TransformationOptions}\n */\n\n function enforceOptionsForTransparentVideo(options) {\n options.autoplay = true;\n options.muted = true;\n options.controls = false;\n options.max_timeout_ms = options.max_timeout_ms || DEFAULT_TIMEOUT_MS;\n options[\"class\"] = options[\"class\"] || '';\n options[\"class\"] += ' cld-transparent-video';\n options.externalLibraries = options.externalLibraries || {};\n\n if (!options.externalLibraries.seeThru) {\n options.externalLibraries.seeThru = DEFAULT_EXTERNAL_LIBRARIES.seeThru;\n } // ensure there's an alpha transformation present\n // this is a non documented internal flag\n\n\n addFlag(options, 'alpha');\n }\n /* harmony default export */\n\n\n var transparentVideo_enforceOptionsForTransparentVideo = enforceOptionsForTransparentVideo; // CONCATENATED MODULE: ./src/util/xhr/loadScript.js\n\n /**\n * @description - Given a string URL, this function will load the script and resolve the promise.\n * The function doesn't resolve any value,\n * this is not a UMD loader where you can get your library name back.\n * @param scriptURL {string}\n * @param {number} max_timeout_ms - Time to elapse before promise is rejected\n * @param isAlreadyLoaded {boolean} if true, the loadScript resolves immediately\n * this is used for multiple invocations - prevents the script from being loaded multiple times\n * @return {Promise<any | {status:string, message:string}>}\n */\n\n function loadScript(scriptURL, max_timeout_ms, isAlreadyLoaded) {\n return new Promise(function (resolve, reject) {\n if (isAlreadyLoaded) {\n resolve();\n } else {\n var scriptTag = document.createElement('script');\n scriptTag.src = scriptURL;\n var timerID = setTimeout(function () {\n reject({\n status: 'error',\n message: \"Timeout loading script \".concat(scriptURL)\n });\n }, max_timeout_ms); // 10 seconds for timeout\n\n scriptTag.onerror = function () {\n clearTimeout(timerID); // clear timeout reject error\n\n reject({\n status: 'error',\n message: \"Error loading \".concat(scriptURL)\n });\n };\n\n scriptTag.onload = function () {\n clearTimeout(timerID); // clear timeout reject error\n\n resolve();\n };\n\n document.head.appendChild(scriptTag);\n }\n });\n }\n /* harmony default export */\n\n\n var xhr_loadScript = loadScript; // CONCATENATED MODULE: ./src/util/xhr/getBlobFromURL.js\n\n /**\n * @description Converts a URL to a BLOB URL\n * @param {string} urlToLoad\n * @param {number} max_timeout_ms - Time to elapse before promise is rejected\n * @return {Promise<{\n * status: 'success' | 'error'\n * message?: string,\n * payload: {\n * url: string\n * }\n * }>}\n */\n\n function getBlobFromURL(urlToLoad, max_timeout_ms) {\n return new Promise(function (resolve, reject) {\n var timerID = setTimeout(function () {\n reject({\n status: 'error',\n message: 'Timeout loading Blob URL'\n });\n }, max_timeout_ms);\n var xhr = new XMLHttpRequest();\n xhr.responseType = 'blob';\n\n xhr.onload = function (response) {\n clearTimeout(timerID); // clear timeout reject error\n\n resolve({\n status: 'success',\n payload: {\n blobURL: URL.createObjectURL(xhr.response)\n }\n });\n };\n\n xhr.onerror = function () {\n clearTimeout(timerID); // clear timeout reject error\n\n reject({\n status: 'error',\n message: 'Error loading Blob URL'\n });\n };\n\n xhr.open('GET', urlToLoad, true);\n xhr.send();\n });\n }\n /* harmony default export */\n\n\n var xhr_getBlobFromURL = getBlobFromURL; // CONCATENATED MODULE: ./src/util/features/transparentVideo/createHiddenVideoTag.js\n\n /**\n * @description Creates a hidden HTMLVideoElement with the specified videoOptions\n * @param {{autoplay, playsinline, loop, muted, poster, blobURL, videoURL }} videoOptions\n * @param {boolean} videoOptions.autoplay - autoplays the video if true\n * @param {string} videoOptions.blobURL - the blobURL to set as video.src\n * @param {string} videoOptions.videoURL - the original videoURL the user created (with transformations)\n * @return {HTMLVideoElement}\n */\n\n function createHiddenVideoTag(videoOptions) {\n var autoplay = videoOptions.autoplay,\n playsinline = videoOptions.playsinline,\n loop = videoOptions.loop,\n muted = videoOptions.muted,\n poster = videoOptions.poster,\n blobURL = videoOptions.blobURL,\n videoURL = videoOptions.videoURL;\n var el = document.createElement('video');\n el.style.visibility = 'hidden';\n el.position = 'absolute';\n el.x = 0;\n el.y = 0;\n el.src = blobURL;\n el.setAttribute('data-video-url', videoURL); // for debugging/testing\n\n autoplay && el.setAttribute('autoplay', autoplay);\n playsinline && el.setAttribute('playsinline', playsinline);\n loop && el.setAttribute('loop', loop);\n muted && el.setAttribute('muted', muted);\n muted && (el.muted = muted); // this is also needed for autoplay, on top of setAttribute\n\n poster && el.setAttribute('poster', poster); // Free memory at the end of the file loading.\n\n el.onload = function () {\n URL.revokeObjectURL(blobURL);\n };\n\n return el;\n }\n /* harmony default export */\n\n\n var transparentVideo_createHiddenVideoTag = createHiddenVideoTag; // CONCATENATED MODULE: ./src/util/features/transparentVideo/instantiateSeeThru.js\n\n /**\n * @description This function creates a new instanc eof seeThru (seeThru.create()) and returns a promise of the seeThru instance\n * @param {HTMLVideoElement} videoElement\n * @param {number} max_timeout_ms - Time to elapse before promise is rejected\n * @param {string} customClass - A classname to be added to the canvas element created by seeThru\n * @param {boolean} autoPlay\n * @return {Promise<any>} SeeThru instance or rejection error\n */\n\n function instantiateSeeThru(videoElement, max_timeout_ms, customClass, autoPlay) {\n var _window = window,\n seeThru = _window.seeThru,\n setTimeout = _window.setTimeout,\n clearTimeout = _window.clearTimeout;\n return new Promise(function (resolve, reject) {\n var timerID = setTimeout(function () {\n reject({\n status: 'error',\n message: 'Timeout instantiating seeThru instance'\n });\n }, max_timeout_ms);\n\n if (seeThru) {\n var seeThruInstance = seeThru.create(videoElement).ready(function () {\n // clear timeout reject error\n clearTimeout(timerID); // force container width, else the canvas can overflow out\n\n var canvasElement = seeThruInstance.getCanvas();\n canvasElement.style.width = '100%';\n canvasElement.className += ' ' + customClass; // start the video if autoplay is set\n\n if (autoPlay) {\n seeThruInstance.play();\n }\n\n resolve(seeThruInstance);\n });\n } else {\n reject({\n status: 'error',\n message: 'Error instantiating seeThru instance'\n });\n }\n });\n }\n /* harmony default export */\n\n\n var transparentVideo_instantiateSeeThru = instantiateSeeThru; // CONCATENATED MODULE: ./src/util/features/transparentVideo/mountSeeThruCanvasTag.js\n\n /**\n *\n * @param {HTMLElement} htmlElContainer\n * @param {string} videoURL\n * @param {TransformationOptions} options\n * @return {Promise<any>}\n */\n\n function mountSeeThruCanvasTag(htmlElContainer, videoURL, options) {\n var poster = options.poster,\n autoplay = options.autoplay,\n playsinline = options.playsinline,\n loop = options.loop,\n muted = options.muted;\n videoURL = videoURL + '.mp4'; // seeThru always uses mp4\n\n return new Promise(function (resolve, reject) {\n xhr_loadScript(options.externalLibraries.seeThru, options.max_timeout_ms, window.seeThru).then(function () {\n xhr_getBlobFromURL(videoURL, options.max_timeout_ms).then(function (_ref) {\n var payload = _ref.payload;\n var videoElement = transparentVideo_createHiddenVideoTag({\n blobURL: payload.blobURL,\n videoURL: videoURL,\n // for debugging/testing\n poster: poster,\n autoplay: autoplay,\n playsinline: playsinline,\n loop: loop,\n muted: muted\n });\n htmlElContainer.appendChild(videoElement);\n transparentVideo_instantiateSeeThru(videoElement, options.max_timeout_ms, options[\"class\"], options.autoplay).then(function () {\n resolve(htmlElContainer);\n })[\"catch\"](function (err) {\n reject(err);\n }); // catch for getBlobFromURL()\n })[\"catch\"](function (_ref2) {\n var status = _ref2.status,\n message = _ref2.message;\n reject({\n status: status,\n message: message\n });\n }); // catch for loadScript()\n })[\"catch\"](function (_ref3) {\n var status = _ref3.status,\n message = _ref3.message;\n reject({\n status: status,\n message: message\n });\n });\n });\n }\n /* harmony default export */\n\n\n var transparentVideo_mountSeeThruCanvasTag = mountSeeThruCanvasTag; // CONCATENATED MODULE: ./src/util/features/transparentVideo/checkSupportForTransparency.js\n\n /**\n * @return {Promise<boolean>} - Whether the browser supports transparent videos or not\n */\n\n function checkSupportForTransparency() {\n return new Promise(function (resolve, reject) {\n var video = document.createElement('video');\n var canPlay = video.canPlayType && video.canPlayType('video/webm; codecs=\"vp9\"');\n resolve(canPlay === 'maybe' || canPlay === 'probably');\n });\n }\n /* harmony default export */\n\n\n var transparentVideo_checkSupportForTransparency = checkSupportForTransparency; // CONCATENATED MODULE: ./src/cloudinary.js\n\n function cloudinary_classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function cloudinary_defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function cloudinary_createClass(Constructor, protoProps, staticProps) {\n if (protoProps) cloudinary_defineProperties(Constructor.prototype, protoProps);\n if (staticProps) cloudinary_defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n var applyBreakpoints, closestAbove, defaultBreakpoints, cloudinary_findContainerWidth, cloudinary_maxWidth, updateDpr; //\n\n defaultBreakpoints = function defaultBreakpoints(width) {\n var steps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;\n return steps * Math.ceil(width / steps);\n };\n\n closestAbove = function closestAbove(list, value) {\n var i;\n i = list.length - 2;\n\n while (i >= 0 && list[i] >= value) {\n i--;\n }\n\n return list[i + 1];\n };\n\n applyBreakpoints = function applyBreakpoints(tag, width, steps, options) {\n var ref, ref1, ref2, responsive_use_breakpoints;\n responsive_use_breakpoints = (ref = (ref1 = (ref2 = options['responsive_use_breakpoints']) != null ? ref2 : options['responsive_use_stoppoints']) != null ? ref1 : this.config('responsive_use_breakpoints')) != null ? ref : this.config('responsive_use_stoppoints');\n\n if (!responsive_use_breakpoints || responsive_use_breakpoints === 'resize' && !options.resizing) {\n return width;\n } else {\n return this.calc_breakpoint(tag, width, steps);\n }\n };\n\n cloudinary_findContainerWidth = function findContainerWidth(element) {\n var containerWidth, style;\n containerWidth = 0;\n\n while ((element = element != null ? element.parentNode : void 0) instanceof Element && !containerWidth) {\n style = window.getComputedStyle(element);\n\n if (!/^inline/.test(style.display)) {\n containerWidth = lodash_width(element);\n }\n }\n\n return containerWidth;\n };\n\n updateDpr = function updateDpr(dataSrc, roundDpr) {\n return dataSrc.replace(/\\bdpr_(1\\.0|auto)\\b/g, 'dpr_' + this.device_pixel_ratio(roundDpr));\n };\n\n cloudinary_maxWidth = function maxWidth(requiredWidth, tag) {\n var imageWidth;\n imageWidth = lodash_getData(tag, 'width') || 0;\n\n if (requiredWidth > imageWidth) {\n imageWidth = requiredWidth;\n lodash_setData(tag, 'width', requiredWidth);\n }\n\n return imageWidth;\n };\n\n var cloudinary_Cloudinary = /*#__PURE__*/function () {\n /**\n * Creates a new Cloudinary instance.\n * @class Cloudinary\n * @classdesc Main class for accessing Cloudinary functionality.\n * @param {Object} options - A {@link Configuration} object for globally configuring Cloudinary account settings.\n * @example<br/>\n * var cl = new cloudinary.Cloudinary( { cloud_name: \"mycloud\"});<br/>\n * var imgTag = cl.image(\"myPicID\");\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\" target=\"_blank\">\n * Available configuration options</a>\n */\n function Cloudinary(options) {\n cloudinary_classCallCheck(this, Cloudinary);\n var configuration;\n this.devicePixelRatioCache = {};\n this.responsiveConfig = {};\n this.responsiveResizeInitialized = false;\n configuration = new src_configuration(options); // Provided for backward compatibility\n\n this.config = function (newConfig, newValue) {\n return configuration.config(newConfig, newValue);\n };\n /**\n * Use \\<meta\\> tags in the document to configure this `cloudinary` instance.\n * @return This {Cloudinary} instance for chaining.\n */\n\n\n this.fromDocument = function () {\n configuration.fromDocument();\n return this;\n };\n /**\n * Use environment variables to configure this `cloudinary` instance.\n * @return This {Cloudinary} instance for chaining.\n */\n\n\n this.fromEnvironment = function () {\n configuration.fromEnvironment();\n return this;\n };\n /**\n * Initializes the configuration of this `cloudinary` instance.\n * This is a convenience method that invokes both {@link Configuration#fromEnvironment|fromEnvironment()}\n * (Node.js environment only) and {@link Configuration#fromDocument|fromDocument()}.\n * It first tries to retrieve the configuration from the environment variable.\n * If not available, it tries from the document meta tags.\n * @function Cloudinary#init\n * @see Configuration#init\n * @return This {Cloudinary} instance for chaining.\n */\n\n\n this.init = function () {\n configuration.init();\n return this;\n };\n }\n /**\n * Convenience constructor\n * @param {Object} options\n * @return {Cloudinary}\n * @example cl = cloudinary.Cloudinary.new( { cloud_name: \"mycloud\"})\n */\n\n\n cloudinary_createClass(Cloudinary, [{\n key: \"url\",\n value:\n /**\n * Generates a URL for any asset in your Media library.\n * @function Cloudinary#url\n * @param {string} publicId - The public ID of the media asset.\n * @param {Object} [options] - The {@link Transformation} parameters to include in the URL.\n * @param {type} [options.type='upload'] - The asset's storage type.\n * For details on all fetch types, see\n * <a href=\"https://cloudinary.com/documentation/image_transformations#fetching_images_from_remote_locations\"\n * target=\"_blank\">Fetch types</a>.\n * @param {resourceType} [options.resource_type='image'] - The type of asset. Possible values:<br/>\n * - `image`<br/>\n * - `video`<br/>\n * - `raw`\n * @return {string} The media asset URL.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\" target=\"_blank\">\n * Available video transformations</a>\n */\n function url(publicId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return url_url(publicId, options, this.config());\n }\n /**\n * Generates a video asset URL.\n * @function Cloudinary#video_url\n * @param {string} publicId - The public ID of the video.\n * @param {Object} [options] - The {@link Transformation} parameters to include in the URL.\n * @param {type} [options.type='upload'] - The asset's storage type.\n * For details on all fetch types, see\n * <a href=\"https://cloudinary.com/documentation/image_transformations#fetching_images_from_remote_locations\"\n * target=\"_blank\">Fetch types</a>.\n * @return {string} The video URL.\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\"\n * target=\"_blank\">Available video transformations</a>\n */\n\n }, {\n key: \"video_url\",\n value: function video_url(publicId, options) {\n options = assign_root_assign_default()({\n resource_type: 'video'\n }, options);\n return this.url(publicId, options);\n }\n /**\n * Generates a URL for an image intended to be used as a thumbnail for the specified video.\n * Identical to {@link Cloudinary#url|url}, except that the `resource_type` is `video`\n * and the default `format` is `jpg`.\n * @function Cloudinary#video_thumbnail_url\n * @param {string} publicId - The unique identifier of the video from which you want to generate a thumbnail image.\n * @param {Object} [options] - The image {@link Transformation} parameters to apply to the thumbnail.\n * In addition to standard image transformations, you can also use the `start_offset` transformation parameter\n * to instruct Cloudinary to generate the thumbnail from a frame other than the middle frame of the video.\n * For details, see\n * <a href=\"https://cloudinary.com/documentation/video_manipulation_and_delivery#generating_video_thumbnails\"\n * target=\"_blank\">Generating video thumbnails</a> in the Cloudinary documentation.\n * @param {type} [options.type='upload'] - The asset's storage type.\n * @return {string} The URL of the video thumbnail image.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n */\n\n }, {\n key: \"video_thumbnail_url\",\n value: function video_thumbnail_url(publicId, options) {\n options = assign_root_assign_default()({}, DEFAULT_POSTER_OPTIONS, options);\n return this.url(publicId, options);\n }\n /**\n * Generates a string representation of the specified transformation options.\n * @function Cloudinary#transformation_string\n * @param {Object} options - The {@link Transformation} options.\n * @returns {string} The transformation string.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\" target=\"_blank\">\n * Available video transformations</a>\n */\n\n }, {\n key: \"transformation_string\",\n value: function transformation_string(options) {\n return new src_transformation(options).serialize();\n }\n /**\n * Generates an image tag.\n * @function Cloudinary#image\n * @param {string} publicId - The public ID of the image.\n * @param {Object} options - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {HTMLImageElement} An image tag DOM element.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n\n }, {\n key: \"image\",\n value: function image(publicId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var client_hints, img, ref;\n img = this.imageTag(publicId, options);\n client_hints = (ref = options.client_hints != null ? options.client_hints : this.config('client_hints')) != null ? ref : false;\n\n if (options.src == null && !client_hints) {\n // src must be removed before creating the DOM element to avoid loading the image\n img.setAttr(\"src\", '');\n }\n\n img = img.toDOM();\n\n if (!client_hints) {\n // cache the image src\n lodash_setData(img, 'src-cache', this.url(publicId, options)); // set image src taking responsiveness in account\n\n this.cloudinary_update(img, options);\n }\n\n return img;\n }\n /**\n * Creates a new ImageTag instance using the configuration defined for this `cloudinary` instance.\n * @function Cloudinary#imageTag\n * @param {string} publicId - The public ID of the image.\n * @param {Object} [options] - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {ImageTag} An ImageTag instance that is attached (chained) to this Cloudinary instance.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n\n }, {\n key: \"imageTag\",\n value: function imageTag(publicId, options) {\n var tag;\n tag = new imagetag(publicId, this.config());\n tag.transformation().fromOptions(options);\n return tag;\n }\n /**\n * Creates a new PictureTag instance, configured using this `cloudinary` instance.\n * @function Cloudinary#PictureTag\n * @param {string} publicId - the public ID of the resource\n * @param {Object} options - additional options to pass to the new ImageTag instance\n * @return {PictureTag} A PictureTag that is attached (chained) to this Cloudinary instance\n */\n\n }, {\n key: \"pictureTag\",\n value: function pictureTag(publicId, options) {\n var tag;\n tag = new picturetag(publicId, this.config());\n tag.transformation().fromOptions(options);\n return tag;\n }\n /**\n * Creates a new SourceTag instance, configured using this `cloudinary` instance.\n * @function Cloudinary#SourceTag\n * @param {string} publicId - the public ID of the resource.\n * @param {Object} options - additional options to pass to the new instance.\n * @return {SourceTag} A SourceTag that is attached (chained) to this Cloudinary instance\n */\n\n }, {\n key: \"sourceTag\",\n value: function sourceTag(publicId, options) {\n var tag;\n tag = new sourcetag(publicId, this.config());\n tag.transformation().fromOptions(options);\n return tag;\n }\n /**\n * Generates a video thumbnail URL from the specified remote video and includes it in an image tag.\n * @function Cloudinary#video_thumbnail\n * @param {string} publicId - The unique identifier of the video from the relevant video site.\n * Additionally, either append the image extension type to the identifier value or set\n * the image delivery format in the 'options' parameter using the 'format' transformation option.\n * For example, a YouTube video might have the identifier: 'o-urnlaJpOA.jpg'.\n * @param {Object} [options] - The {@link Transformation} parameters to apply.\n * @return {HTMLImageElement} An HTML image tag element\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\" target=\"_blank\">\n * Available video transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n\n }, {\n key: \"video_thumbnail\",\n value: function video_thumbnail(publicId, options) {\n return this.image(publicId, merge_root_merge_default()({}, DEFAULT_POSTER_OPTIONS, options));\n }\n /**\n * Fetches a facebook profile image and delivers it in an image tag element.\n * @function Cloudinary#facebook_profile_image\n * @param {string} publicId - The Facebook numeric ID. Additionally, either append the image extension type\n * to the ID or set the image delivery format in the 'options' parameter using the 'format' transformation option.\n * @param {Object} [options] - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {HTMLImageElement} An image tag element.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n\n }, {\n key: \"facebook_profile_image\",\n value: function facebook_profile_image(publicId, options) {\n return this.image(publicId, assign_root_assign_default()({\n type: 'facebook'\n }, options));\n }\n /**\n * Fetches a Twitter profile image by ID and delivers it in an image tag element.\n * @function Cloudinary#twitter_profile_image\n * @param {string} publicId - The Twitter numeric ID. Additionally, either append the image extension type\n * to the ID or set the image delivery format in the 'options' parameter using the 'format' transformation option.\n * @param {Object} [options] - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {HTMLImageElement} An image tag element.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n\n }, {\n key: \"twitter_profile_image\",\n value: function twitter_profile_image(publicId, options) {\n return this.image(publicId, assign_root_assign_default()({\n type: 'twitter'\n }, options));\n }\n /**\n * Fetches a Twitter profile image by name and delivers it in an image tag element.\n * @function Cloudinary#twitter_name_profile_image\n * @param {string} publicId - The Twitter screen name. Additionally, either append the image extension type\n * to the screen name or set the image delivery format in the 'options' parameter using the 'format' transformation option.\n * @param {Object} [options] - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {HTMLImageElement} An image tag element.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n\n }, {\n key: \"twitter_name_profile_image\",\n value: function twitter_name_profile_image(publicId, options) {\n return this.image(publicId, assign_root_assign_default()({\n type: 'twitter_name'\n }, options));\n }\n /**\n * Fetches a Gravatar profile image and delivers it in an image tag element.\n * @function Cloudinary#gravatar_image\n * @param {string} publicId - The calculated hash for the Gravatar email address.\n * Additionally, either append the image extension type to the screen name or set the image delivery format\n * in the 'options' parameter using the 'format' transformation option.\n * @param {Object} [options] - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {HTMLImageElement} An image tag element.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n\n }, {\n key: \"gravatar_image\",\n value: function gravatar_image(publicId, options) {\n return this.image(publicId, assign_root_assign_default()({\n type: 'gravatar'\n }, options));\n }\n /**\n * Fetches an image from a remote URL and delivers it in an image tag element.\n * @function Cloudinary#fetch_image\n * @param {string} publicId - The full URL of the image to fetch, including the extension.\n * @param {Object} [options] - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {HTMLImageElement} An image tag element.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n\n }, {\n key: \"fetch_image\",\n value: function fetch_image(publicId, options) {\n return this.image(publicId, assign_root_assign_default()({\n type: 'fetch'\n }, options));\n }\n /**\n * Generates a video tag.\n * @function Cloudinary#video\n * @param {string} publicId - The public ID of the video.\n * @param {Object} [options] - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {HTMLVideoElement} A video tag DOM element.\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\" target=\"_blank\">\n * Available video transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n\n }, {\n key: \"video\",\n value: function video(publicId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.videoTag(publicId, options).toHtml();\n }\n /**\n * Creates a new VideoTag instance using the configuration defined for this `cloudinary` instance.\n * @function Cloudinary#videoTag\n * @param {string} publicId - The public ID of the video.\n * @param {Object} options - The {@link Transformation} parameters, {@link Configuration} parameters,\n * and standard HTML <img> tag attributes to apply to the image tag.\n * @return {VideoTag} A VideoTag that is attached (chained) to this `cloudinary` instance.\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\" target=\"_blank\">\n * Available video transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/solution_overview#configuration_parameters\"\n * target=\"_blank\">Available configuration options</a>\n */\n\n }, {\n key: \"videoTag\",\n value: function videoTag(publicId, options) {\n options = defaults({}, options, this.config());\n return new videotag(publicId, options);\n }\n /**\n * Generates a sprite PNG image that contains all images with the specified tag and the corresponding css file.\n * @function Cloudinary#sprite_css\n * @param {string} publicId - The tag on which to base the sprite image.\n * @param {Object} [options] - The {@link Transformation} parameters to include in the URL.\n * @return {string} The URL of the generated CSS file. The sprite image has the same URL, but with a PNG extension.\n * @see <a href=\"https://cloudinary.com/documentation/sprite_generation\" target=\"_blank\">\n * Sprite generation</a>\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n */\n\n }, {\n key: \"sprite_css\",\n value: function sprite_css(publicId, options) {\n options = assign_root_assign_default()({\n type: 'sprite'\n }, options);\n\n if (!publicId.match(/.css$/)) {\n options.format = 'css';\n }\n\n return this.url(publicId, options);\n }\n /**\n * Initializes responsive image behavior for all image tags with the 'cld-responsive'\n * (or other defined {@link Cloudinary#responsive|responsive} class).<br/>\n * This method should be invoked after the page has loaded.<br/>\n * <b>Note</b>: Calls {@link Cloudinary#cloudinary_update|cloudinary_update} to modify image tags.\n * @function Cloudinary#responsive\n * @param {Object} options\n * @param {String} [options.responsive_class='cld-responsive'] - An alternative class\n * to locate the relevant <img> tags.\n * @param {number} [options.responsive_debounce=100] - The debounce interval in milliseconds.\n * @param {boolean} [bootstrap=true] If true, processes the <img> tags by calling\n * {@link Cloudinary#cloudinary_update|cloudinary_update}. When false, the tags are processed\n * only after a resize event.\n * @see {@link Cloudinary#cloudinary_update|cloudinary_update} for additional configuration parameters\n * @see <a href=\"https://cloudinary.com/documentation/responsive_images#automating_responsive_images_with_javascript\"\n * target=\"_blank\">Automating responsive images with JavaScript</a>\n * @return {function} that when called, removes the resize EventListener added by this function\n */\n\n }, {\n key: \"responsive\",\n value: function responsive(options) {\n var _this = this;\n\n var bootstrap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var ref, ref1, ref2, responsiveClass, responsiveResize, timeout;\n this.responsiveConfig = merge_root_merge_default()(this.responsiveConfig || {}, options);\n responsiveClass = (ref = this.responsiveConfig.responsive_class) != null ? ref : this.config('responsive_class');\n\n if (bootstrap) {\n this.cloudinary_update(\"img.\".concat(responsiveClass, \", img.cld-hidpi\"), this.responsiveConfig);\n }\n\n responsiveResize = (ref1 = (ref2 = this.responsiveConfig.responsive_resize) != null ? ref2 : this.config('responsive_resize')) != null ? ref1 : true;\n\n if (responsiveResize && !this.responsiveResizeInitialized) {\n this.responsiveConfig.resizing = this.responsiveResizeInitialized = true;\n timeout = null;\n\n var makeResponsive = function makeResponsive() {\n var debounce, ref3, ref4, reset, run, wait, waitFunc;\n debounce = (ref3 = (ref4 = _this.responsiveConfig.responsive_debounce) != null ? ref4 : _this.config('responsive_debounce')) != null ? ref3 : 100;\n\n reset = function reset() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n run = function run() {\n return _this.cloudinary_update(\"img.\".concat(responsiveClass), _this.responsiveConfig);\n };\n\n waitFunc = function waitFunc() {\n reset();\n return run();\n };\n\n wait = function wait() {\n reset();\n timeout = setTimeout(waitFunc, debounce);\n };\n\n if (debounce) {\n return wait();\n } else {\n return run();\n }\n };\n\n window.addEventListener('resize', makeResponsive);\n return function () {\n return window.removeEventListener('resize', makeResponsive);\n };\n }\n }\n /**\n * @function Cloudinary#calc_breakpoint\n * @private\n * @ignore\n */\n\n }, {\n key: \"calc_breakpoint\",\n value: function calc_breakpoint(element, width, steps) {\n var breakpoints = lodash_getData(element, 'breakpoints') || lodash_getData(element, 'stoppoints') || this.config('breakpoints') || this.config('stoppoints') || defaultBreakpoints;\n\n if (isFunction_root_isFunction_default()(breakpoints)) {\n return breakpoints(width, steps);\n } else {\n if (isString_root_isString_default()(breakpoints)) {\n breakpoints = breakpoints.split(',').map(function (point) {\n return parseInt(point);\n }).sort(function (a, b) {\n return a - b;\n });\n }\n\n return closestAbove(breakpoints, width);\n }\n }\n /**\n * @function Cloudinary#calc_stoppoint\n * @deprecated Use {@link calc_breakpoint} instead.\n * @private\n * @ignore\n */\n\n }, {\n key: \"calc_stoppoint\",\n value: function calc_stoppoint(element, width, steps) {\n return this.calc_breakpoint(element, width, steps);\n }\n /**\n * @function Cloudinary#device_pixel_ratio\n * @private\n */\n\n }, {\n key: \"device_pixel_ratio\",\n value: function device_pixel_ratio(roundDpr) {\n roundDpr = roundDpr == null ? true : roundDpr;\n var dpr = (typeof window !== \"undefined\" && window !== null ? window.devicePixelRatio : void 0) || 1;\n\n if (roundDpr) {\n dpr = Math.ceil(dpr);\n }\n\n if (dpr <= 0 || dpr === 0 / 0) {\n dpr = 1;\n }\n\n var dprString = dpr.toString();\n\n if (dprString.match(/^\\d+$/)) {\n dprString += '.0';\n }\n\n return dprString;\n }\n /**\n * Applies responsiveness to all <code><img></code> tags under each relevant node\n * (regardless of whether the tag contains the {@link Cloudinary#responsive|responsive} class).\n * @param {Element[]} nodes The parent nodes where you want to search for <img> tags.\n * @param {Object} [options] The {@link Cloudinary#cloudinary_update|cloudinary_update} options to apply.\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\"\n * target=\"_blank\">Available image transformations</a>\n * @function Cloudinary#processImageTags\n */\n\n }, {\n key: \"processImageTags\",\n value: function processImageTags(nodes, options) {\n if (isEmpty(nodes)) {\n // similar to `$.fn.cloudinary`\n return this;\n }\n\n options = defaults({}, options || {}, this.config());\n var images = nodes.filter(function (node) {\n return /^img$/i.test(node.tagName);\n }).map(function (node) {\n var imgOptions = assign_root_assign_default()({\n width: node.getAttribute('width'),\n height: node.getAttribute('height'),\n src: node.getAttribute('src')\n }, options);\n var publicId = imgOptions['source'] || imgOptions['src'];\n delete imgOptions['source'];\n delete imgOptions['src'];\n var attr = new src_transformation(imgOptions).toHtmlAttributes();\n lodash_setData(node, 'src-cache', url_url(publicId, imgOptions));\n node.setAttribute('width', attr.width);\n node.setAttribute('height', attr.height);\n return node;\n });\n this.cloudinary_update(images, options);\n return this;\n }\n /**\n * Updates the dpr (for `dpr_auto`) and responsive (for `w_auto`) fields according to\n * the current container size and the device pixel ratio.<br/>\n * <b>Note</b>:`w_auto` is updated only for images marked with the `cld-responsive`\n * (or other defined {@link Cloudinary#responsive|responsive}) class.\n * @function Cloudinary#cloudinary_update\n * @param {(Array|string|NodeList)} elements - The HTML image elements to modify.\n * @param {Object} options\n * @param {boolean|string} [options.responsive_use_breakpoints=true]\n * Possible values:<br/>\n * - `true`: Always use breakpoints for width.<br/>\n * - `resize`: Use exact width on first render and breakpoints on resize.<br/>\n * - `false`: Always use exact width.\n * @param {boolean} [options.responsive] - If `true`, enable responsive on all specified elements.\n * Alternatively, you can define specific HTML elements to modify by adding the `cld-responsive`\n * (or other custom-defined {@link Cloudinary#responsive|responsive_class}) class to those elements.\n * @param {boolean} [options.responsive_preserve_height] - If `true`, original css height is preserved.\n * Should be used only if the transformation supports different aspect ratios.\n */\n\n }, {\n key: \"cloudinary_update\",\n value: function cloudinary_update(elements, options) {\n var _this2 = this;\n\n var containerWidth, dataSrc, match, ref4, requiredWidth;\n\n if (elements === null) {\n return this;\n }\n\n if (options == null) {\n options = {};\n }\n\n var responsive = options.responsive != null ? options.responsive : this.config('responsive');\n elements = normalizeToArray(elements);\n var responsiveClass;\n\n if (this.responsiveConfig && this.responsiveConfig.responsive_class != null) {\n responsiveClass = this.responsiveConfig.responsive_class;\n } else if (options.responsive_class != null) {\n responsiveClass = options.responsive_class;\n } else {\n responsiveClass = this.config('responsive_class');\n }\n\n var roundDpr = options.round_dpr != null ? options.round_dpr : this.config('round_dpr');\n elements.forEach(function (tag) {\n if (/img/i.test(tag.tagName)) {\n var setUrl = true;\n\n if (responsive) {\n lodash_addClass(tag, responsiveClass);\n }\n\n dataSrc = lodash_getData(tag, 'src-cache') || lodash_getData(tag, 'src');\n\n if (!isEmpty(dataSrc)) {\n // Update dpr according to the device's devicePixelRatio\n dataSrc = updateDpr.call(_this2, dataSrc, roundDpr);\n\n if (htmltag.isResponsive(tag, responsiveClass)) {\n containerWidth = cloudinary_findContainerWidth(tag);\n\n if (containerWidth !== 0) {\n if (/w_auto:breakpoints/.test(dataSrc)) {\n requiredWidth = cloudinary_maxWidth(containerWidth, tag);\n\n if (requiredWidth) {\n dataSrc = dataSrc.replace(/w_auto:breakpoints([_0-9]*)(:[0-9]+)?/, \"w_auto:breakpoints$1:\".concat(requiredWidth));\n } else {\n setUrl = false;\n }\n } else {\n match = /w_auto(:(\\d+))?/.exec(dataSrc);\n\n if (match) {\n requiredWidth = applyBreakpoints.call(_this2, tag, containerWidth, match[2], options);\n requiredWidth = cloudinary_maxWidth(requiredWidth, tag);\n\n if (requiredWidth) {\n dataSrc = dataSrc.replace(/w_auto[^,\\/]*/g, \"w_\".concat(requiredWidth));\n } else {\n setUrl = false;\n }\n }\n }\n\n lodash_removeAttribute(tag, 'width');\n\n if (!options.responsive_preserve_height) {\n lodash_removeAttribute(tag, 'height');\n }\n } else {\n // Container doesn't know the size yet - usually because the image is hidden or outside the DOM.\n setUrl = false;\n }\n }\n\n var isLazyLoading = options.loading === 'lazy' && !_this2.isNativeLazyLoadSupported() && _this2.isLazyLoadSupported() && !elements[0].getAttribute('src');\n\n if (setUrl || isLazyLoading) {\n // If data-width exists, set width to be data-width\n _this2.setAttributeIfExists(elements[0], 'width', 'data-width');\n }\n\n if (setUrl && !isLazyLoading) {\n lodash_setAttribute(tag, 'src', dataSrc);\n }\n }\n }\n });\n return this;\n }\n /**\n * Sets element[toAttribute] = element[fromAttribute] if element[fromAttribute] is set\n * @param element\n * @param toAttribute\n * @param fromAttribute\n */\n\n }, {\n key: \"setAttributeIfExists\",\n value: function setAttributeIfExists(element, toAttribute, fromAttribute) {\n var attributeValue = element.getAttribute(fromAttribute);\n\n if (attributeValue != null) {\n lodash_setAttribute(element, toAttribute, attributeValue);\n }\n }\n /**\n * Returns true if Intersection Observer API is supported\n * @returns {boolean}\n */\n\n }, {\n key: \"isLazyLoadSupported\",\n value: function isLazyLoadSupported() {\n return window && 'IntersectionObserver' in window;\n }\n /**\n * Returns true if using Chrome\n * @returns {boolean}\n */\n\n }, {\n key: \"isNativeLazyLoadSupported\",\n value: function isNativeLazyLoadSupported() {\n return 'loading' in HTMLImageElement.prototype;\n }\n /**\n * Returns a {@link Transformation} object, initialized with the specified options, for chaining purposes.\n * @function Cloudinary#transformation\n * @param {Object} options The {@link Transformation} options to apply.\n * @return {Transformation}\n * @see Transformation\n * @see <a href=\"https://cloudinary.com/documentation/image_transformation_reference\" target=\"_blank\">\n * Available image transformations</a>\n * @see <a href=\"https://cloudinary.com/documentation/video_transformation_reference\" target=\"_blank\">\n * Available video transformations</a>\n */\n\n }, {\n key: \"transformation\",\n value: function transformation(options) {\n return src_transformation[\"new\"](this.config()).fromOptions(options).setParent(this);\n }\n /**\n * @description This function will append a TransparentVideo element to the htmlElContainer passed to it.\n * TransparentVideo can either be an HTML Video tag, or an HTML Canvas Tag.\n * @param {HTMLElement} htmlElContainer\n * @param {string} publicId\n * @param {object} options The {@link TransparentVideoOptions} options to apply - Extends TransformationOptions\n * options.playsinline - HTML Video Tag's native playsinline - passed to video element.\n * options.poster - HTML Video Tag's native poster - passed to video element.\n * options.loop - HTML Video Tag's native loop - passed to video element.\n * options?.externalLibraries = { [key: string]: string} - map of external libraries to be loaded\n * @return {Promise<HTMLElement | {status:string, message:string}>}\n */\n\n }, {\n key: \"injectTransparentVideoElement\",\n value: function injectTransparentVideoElement(htmlElContainer, publicId) {\n var _this3 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return new Promise(function (resolve, reject) {\n if (!htmlElContainer) {\n reject({\n status: 'error',\n message: 'Expecting htmlElContainer to be HTMLElement'\n });\n }\n\n transparentVideo_enforceOptionsForTransparentVideo(options);\n\n var videoURL = _this3.video_url(publicId, options);\n\n transparentVideo_checkSupportForTransparency().then(function (isNativelyTransparent) {\n var mountPromise;\n\n if (isNativelyTransparent) {\n mountPromise = transparentVideo_mountCloudinaryVideoTag(htmlElContainer, _this3, publicId, options);\n resolve(htmlElContainer);\n } else {\n mountPromise = transparentVideo_mountSeeThruCanvasTag(htmlElContainer, videoURL, options);\n }\n\n mountPromise.then(function () {\n resolve(htmlElContainer);\n })[\"catch\"](function (_ref) {\n var status = _ref.status,\n message = _ref.message;\n reject({\n status: status,\n message: message\n });\n }); // catch for checkSupportForTransparency()\n })[\"catch\"](function (_ref2) {\n var status = _ref2.status,\n message = _ref2.message;\n reject({\n status: status,\n message: message\n });\n });\n });\n }\n }], [{\n key: \"new\",\n value: function _new(options) {\n return new this(options);\n }\n }]);\n return Cloudinary;\n }();\n\n assign_root_assign_default()(cloudinary_Cloudinary, constants_namespaceObject);\n /* harmony default export */\n\n var cloudinary = cloudinary_Cloudinary; // CONCATENATED MODULE: ./src/namespace/cloudinary-core.js\n\n /**\n * Creates the namespace for Cloudinary\n */\n\n /* harmony default export */\n\n var cloudinary_core = __webpack_exports__[\"default\"] = {\n ClientHintsMetaTag: clienthintsmetatag,\n Cloudinary: cloudinary,\n Condition: condition,\n Configuration: src_configuration,\n crc32: src_crc32,\n Expression: expression,\n FetchLayer: fetchlayer,\n HtmlTag: htmltag,\n ImageTag: imagetag,\n Layer: layer_layer,\n PictureTag: picturetag,\n SubtitlesLayer: subtitleslayer,\n TextLayer: textlayer,\n Transformation: src_transformation,\n utf8_encode: src_utf8_encode,\n Util: lodash_namespaceObject,\n VideoTag: videotag\n };\n /***/\n },\n\n /***/\n \"lodash/assign\":\n /***/\n function lodashAssign(module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_assign__;\n /***/\n },\n\n /***/\n \"lodash/cloneDeep\":\n /***/\n function lodashCloneDeep(module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_cloneDeep__;\n /***/\n },\n\n /***/\n \"lodash/compact\":\n /***/\n function lodashCompact(module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_compact__;\n /***/\n },\n\n /***/\n \"lodash/difference\":\n /***/\n function lodashDifference(module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_difference__;\n /***/\n },\n\n /***/\n \"lodash/functions\":\n /***/\n function lodashFunctions(module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_functions__;\n /***/\n },\n\n /***/\n \"lodash/identity\":\n /***/\n function lodashIdentity(module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_identity__;\n /***/\n },\n\n /***/\n \"lodash/includes\":\n /***/\n function lodashIncludes(module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_includes__;\n /***/\n },\n\n /***/\n \"lodash/isArray\":\n /***/\n function lodashIsArray(module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_isArray__;\n /***/\n },\n\n /***/\n \"lodash/isElement\":\n /***/\n function lodashIsElement(module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_isElement__;\n /***/\n },\n\n /***/\n \"lodash/isFunction\":\n /***/\n function lodashIsFunction(module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_isFunction__;\n /***/\n },\n\n /***/\n \"lodash/isPlainObject\":\n /***/\n function lodashIsPlainObject(module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_isPlainObject__;\n /***/\n },\n\n /***/\n \"lodash/isString\":\n /***/\n function lodashIsString(module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_isString__;\n /***/\n },\n\n /***/\n \"lodash/merge\":\n /***/\n function lodashMerge(module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_merge__;\n /***/\n },\n\n /***/\n \"lodash/trim\":\n /***/\n function lodashTrim(module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_lodash_trim__;\n /***/\n }\n /******/\n\n })\n );\n});","// @noflow\nimport React from 'react'\nimport Skeleton, { SkeletonTheme } from 'react-loading-skeleton'\nimport 'react-loading-skeleton/dist/skeleton.css'\n\nimport BRAND_COLOURS from '@/constants/BrandColours'\nimport SUPPORT_COLOURS from '@/constants/SupportColours'\n\ntype Props = {\n baseColor?: string\n highlightColor?: string\n width?: string | number\n height?: string | number\n count?: number\n}\n\nconst ButtonSkeleton = ({\n baseColor = SUPPORT_COLOURS.grey200,\n highlightColor = BRAND_COLOURS.brandWhite,\n width = '100%',\n height = 40,\n count = 1\n}: Props): JSX.Element => {\n return (\n <SkeletonTheme baseColor={baseColor} highlightColor={highlightColor}>\n <Skeleton\n count={count}\n width={width}\n height={height}\n style={{\n borderRadius: '10px'\n }}\n />\n </SkeletonTheme>\n )\n}\n\nexport type { Props }\n\nexport { ButtonSkeleton }\n","var hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","// @noflow\n\ntype AgeCategory = 'puppy' | 'adult' | 'senior'\n\ntype DogSize =\n | 'extra_small'\n | 'small'\n | 'medium_1'\n | 'medium_2'\n | 'medium_3'\n | 'large_1'\n | 'large_2'\n | 'large_3'\n | 'large_4'\n | 'extra_large'\n\ntype EstimatedDailyPlanPrices = {\n ageCategory: AgeCategory\n size: DogSize\n GB: {\n mix: number\n all: number\n }\n NI: {\n mix: number\n all: number\n }\n IE: {\n mix: number\n all: number\n }\n NL: {\n mix: number\n all: number\n }\n BE: {\n mix: number\n all: number\n }\n PL: {\n mix: number\n all: number\n }\n CZ: {\n mix: number\n all: number\n }\n DE: {\n mix: number\n all: number\n }\n}\n\nconst EstimatedDailyPlanPrices: Array<EstimatedDailyPlanPrices> = [\n {\n ageCategory: 'puppy',\n size: 'extra_small',\n GB: { mix: 137, all: 205 },\n NI: { mix: 137, all: 205 },\n IE: { mix: 147, all: 221 },\n NL: { mix: 155, all: 233 },\n BE: { mix: 155, all: 233 },\n PL: { mix: 544, all: 816 },\n CZ: { mix: 3235, all: 4852 },\n DE: { mix: 101, all: 151 }\n },\n {\n ageCategory: 'puppy',\n size: 'small',\n GB: { mix: 152, all: 228 },\n NI: { mix: 152, all: 228 },\n IE: { mix: 147, all: 221 },\n NL: { mix: 165, all: 248 },\n BE: { mix: 165, all: 248 },\n PL: { mix: 544, all: 816 },\n CZ: { mix: 3235, all: 4852 },\n DE: { mix: 145, all: 218 }\n },\n {\n ageCategory: 'puppy',\n size: 'medium_1',\n GB: { mix: 165, all: 247 },\n NI: { mix: 165, all: 247 },\n IE: { mix: 184, all: 276 },\n NL: { mix: 168, all: 252 },\n BE: { mix: 168, all: 252 },\n PL: { mix: 605, all: 908 },\n CZ: { mix: 3597, all: 5400 },\n DE: { mix: 175, all: 263 }\n },\n {\n ageCategory: 'puppy',\n size: 'medium_2',\n GB: { mix: 178, all: 267 },\n NI: { mix: 178, all: 267 },\n IE: { mix: 200, all: 300 },\n NL: { mix: 173, all: 259 },\n BE: { mix: 173, all: 259 },\n PL: { mix: 662, all: 993 },\n CZ: { mix: 3937, all: 5905 },\n DE: { mix: 176, all: 264 }\n },\n {\n ageCategory: 'puppy',\n size: 'medium_3',\n GB: { mix: 184, all: 276 },\n NI: { mix: 184, all: 276 },\n IE: { mix: 215, all: 323 },\n NL: { mix: 183, all: 275 },\n BE: { mix: 183, all: 275 },\n PL: { mix: 707, all: 1060 },\n CZ: { mix: 4204, all: 6304 },\n DE: { mix: 185, all: 278 }\n },\n {\n ageCategory: 'puppy',\n size: 'large_1',\n GB: { mix: 206, all: 309 },\n NI: { mix: 206, all: 309 },\n IE: { mix: 233, all: 350 },\n NL: { mix: 198, all: 297 },\n BE: { mix: 198, all: 297 },\n PL: { mix: 775, all: 1163 },\n CZ: { mix: 4609, all: 6916 },\n DE: { mix: 225, all: 338 }\n },\n {\n ageCategory: 'puppy',\n size: 'large_2',\n GB: { mix: 240, all: 360 },\n NI: { mix: 240, all: 360 },\n IE: { mix: 246, all: 369 },\n NL: { mix: 198, all: 297 },\n BE: { mix: 198, all: 297 },\n PL: { mix: 799, all: 1198 },\n CZ: { mix: 4752, all: 7124 },\n DE: { mix: 225, all: 338 }\n },\n {\n ageCategory: 'puppy',\n size: 'large_3',\n GB: { mix: 240, all: 360 },\n NI: { mix: 240, all: 360 },\n IE: { mix: 247, all: 371 },\n NL: { mix: 199, all: 299 },\n BE: { mix: 199, all: 299 },\n PL: { mix: 900, all: 1350 },\n CZ: { mix: 5352, all: 8028 },\n DE: { mix: 227, all: 341 }\n },\n {\n ageCategory: 'puppy',\n size: 'large_4',\n GB: { mix: 240, all: 360 },\n NI: { mix: 240, all: 360 },\n IE: { mix: 251, all: 376 },\n NL: { mix: 239, all: 359 },\n BE: { mix: 239, all: 359 },\n PL: { mix: 931, all: 1396 },\n CZ: { mix: 5537, all: 8302 },\n DE: { mix: 235, all: 352 }\n },\n {\n ageCategory: 'puppy',\n size: 'extra_large',\n GB: { mix: 286, all: 429 },\n NI: { mix: 286, all: 429 },\n IE: { mix: 251, all: 376 },\n NL: { mix: 273, all: 409 },\n BE: { mix: 273, all: 409 },\n PL: { mix: 931, all: 1396 },\n CZ: { mix: 5537, all: 8302 },\n DE: { mix: 267, all: 401 }\n },\n {\n ageCategory: 'senior',\n size: 'extra_small',\n GB: { mix: 143, all: 214 },\n NI: { mix: 143, all: 214 },\n IE: { mix: 168, all: 252 },\n NL: { mix: 166, all: 249 },\n BE: { mix: 166, all: 249 },\n PL: { mix: 498, all: 747 },\n CZ: { mix: 2962, all: 4442 },\n DE: { mix: 136, all: 204 }\n },\n {\n ageCategory: 'senior',\n size: 'small',\n GB: { mix: 143, all: 215 },\n NI: { mix: 143, all: 215 },\n IE: { mix: 178, all: 267 },\n NL: { mix: 167, all: 250 },\n BE: { mix: 167, all: 250 },\n PL: { mix: 528, all: 792 },\n CZ: { mix: 3140, all: 4710 },\n DE: { mix: 149, all: 223 }\n },\n {\n ageCategory: 'senior',\n size: 'medium_1',\n GB: { mix: 149, all: 223 },\n NI: { mix: 149, all: 223 },\n IE: { mix: 181, all: 271 },\n NL: { mix: 185, all: 278 },\n BE: { mix: 185, all: 278 },\n PL: { mix: 557, all: 836 },\n CZ: { mix: 3312, all: 4972 },\n DE: { mix: 157, all: 235 }\n },\n {\n ageCategory: 'senior',\n size: 'medium_2',\n GB: { mix: 150, all: 225 },\n NI: { mix: 150, all: 225 },\n IE: { mix: 183, all: 275 },\n NL: { mix: 191, all: 287 },\n BE: { mix: 191, all: 287 },\n PL: { mix: 601, all: 901 },\n CZ: { mix: 3574, all: 5358 },\n DE: { mix: 166, all: 249 }\n },\n {\n ageCategory: 'senior',\n size: 'medium_3',\n GB: { mix: 152, all: 228 },\n NI: { mix: 152, all: 228 },\n IE: { mix: 202, all: 303 },\n NL: { mix: 193, all: 290 },\n BE: { mix: 193, all: 290 },\n PL: { mix: 655, all: 982 },\n CZ: { mix: 3895, all: 5840 },\n DE: { mix: 173, all: 259 }\n },\n {\n ageCategory: 'senior',\n size: 'large_1',\n GB: { mix: 166, all: 249 },\n NI: { mix: 166, all: 249 },\n IE: { mix: 216, all: 324 },\n NL: { mix: 193, all: 290 },\n BE: { mix: 193, all: 290 },\n PL: { mix: 669, all: 1004 },\n CZ: { mix: 3979, all: 5971 },\n DE: { mix: 205, all: 307 }\n },\n {\n ageCategory: 'senior',\n size: 'large_2',\n GB: { mix: 181, all: 272 },\n NI: { mix: 181, all: 272 },\n IE: { mix: 235, all: 352 },\n NL: { mix: 199, all: 299 },\n BE: { mix: 199, all: 299 },\n PL: { mix: 801, all: 1201 },\n CZ: { mix: 4764, all: 7142 },\n DE: { mix: 207, all: 311 }\n },\n {\n ageCategory: 'senior',\n size: 'large_3',\n GB: { mix: 190, all: 285 },\n NI: { mix: 190, all: 285 },\n IE: { mix: 248, all: 372 },\n NL: { mix: 240, all: 360 },\n BE: { mix: 240, all: 360 },\n PL: { mix: 835, all: 1253 },\n CZ: { mix: 4866, all: 7452 },\n DE: { mix: 225, all: 338 }\n },\n {\n ageCategory: 'senior',\n size: 'large_4',\n GB: { mix: 203, all: 304 },\n NI: { mix: 203, all: 304 },\n IE: { mix: 252, all: 378 },\n NL: { mix: 243, all: 365 },\n BE: { mix: 243, all: 365 },\n PL: { mix: 845, all: 1267 },\n CZ: { mix: 5025, all: 7535 },\n DE: { mix: 266, all: 399 }\n },\n {\n ageCategory: 'senior',\n size: 'extra_large',\n GB: { mix: 205, all: 307 },\n NI: { mix: 205, all: 307 },\n IE: { mix: 253, all: 380 },\n NL: { mix: 253, all: 380 },\n BE: { mix: 253, all: 380 },\n PL: { mix: 880, all: 1320 },\n CZ: { mix: 5233, all: 7850 },\n DE: { mix: 287, all: 431 }\n },\n {\n ageCategory: 'adult',\n size: 'extra_small',\n GB: { mix: 143, all: 214 },\n NI: { mix: 143, all: 214 },\n IE: { mix: 168, all: 252 },\n NL: { mix: 166, all: 249 },\n BE: { mix: 166, all: 249 },\n PL: { mix: 498, all: 747 },\n CZ: { mix: 2962, all: 4442 },\n DE: { mix: 136, all: 204 }\n },\n {\n ageCategory: 'adult',\n size: 'small',\n GB: { mix: 143, all: 215 },\n NI: { mix: 143, all: 215 },\n IE: { mix: 178, all: 267 },\n NL: { mix: 167, all: 250 },\n BE: { mix: 167, all: 250 },\n PL: { mix: 528, all: 792 },\n CZ: { mix: 3140, all: 4710 },\n DE: { mix: 149, all: 223 }\n },\n {\n ageCategory: 'adult',\n size: 'medium_1',\n GB: { mix: 149, all: 223 },\n NI: { mix: 149, all: 223 },\n IE: { mix: 181, all: 271 },\n NL: { mix: 185, all: 278 },\n BE: { mix: 185, all: 278 },\n PL: { mix: 557, all: 836 },\n CZ: { mix: 3312, all: 4972 },\n DE: { mix: 157, all: 235 }\n },\n {\n ageCategory: 'adult',\n size: 'medium_2',\n GB: { mix: 150, all: 225 },\n NI: { mix: 150, all: 225 },\n IE: { mix: 183, all: 275 },\n NL: { mix: 191, all: 287 },\n BE: { mix: 191, all: 287 },\n PL: { mix: 601, all: 901 },\n CZ: { mix: 3574, all: 5358 },\n DE: { mix: 166, all: 249 }\n },\n {\n ageCategory: 'adult',\n size: 'medium_3',\n GB: { mix: 152, all: 228 },\n NI: { mix: 152, all: 228 },\n IE: { mix: 202, all: 303 },\n NL: { mix: 193, all: 290 },\n BE: { mix: 193, all: 290 },\n PL: { mix: 655, all: 982 },\n CZ: { mix: 3895, all: 5840 },\n DE: { mix: 173, all: 259 }\n },\n {\n ageCategory: 'adult',\n size: 'large_1',\n GB: { mix: 166, all: 249 },\n NI: { mix: 166, all: 249 },\n IE: { mix: 216, all: 324 },\n NL: { mix: 193, all: 290 },\n BE: { mix: 193, all: 290 },\n PL: { mix: 669, all: 1004 },\n CZ: { mix: 3979, all: 5971 },\n DE: { mix: 205, all: 307 }\n },\n {\n ageCategory: 'adult',\n size: 'large_2',\n GB: { mix: 181, all: 272 },\n NI: { mix: 181, all: 272 },\n IE: { mix: 235, all: 352 },\n NL: { mix: 199, all: 299 },\n BE: { mix: 199, all: 299 },\n PL: { mix: 801, all: 1201 },\n CZ: { mix: 4763, all: 7142 },\n DE: { mix: 207, all: 311 }\n },\n {\n ageCategory: 'adult',\n size: 'large_3',\n GB: { mix: 190, all: 285 },\n NI: { mix: 190, all: 285 },\n IE: { mix: 248, all: 372 },\n NL: { mix: 240, all: 360 },\n BE: { mix: 240, all: 360 },\n PL: { mix: 835, all: 1253 },\n CZ: { mix: 4966, all: 7452 },\n DE: { mix: 225, all: 338 }\n },\n {\n ageCategory: 'adult',\n size: 'large_4',\n GB: { mix: 203, all: 304 },\n NI: { mix: 203, all: 304 },\n IE: { mix: 252, all: 378 },\n NL: { mix: 243, all: 365 },\n BE: { mix: 243, all: 365 },\n PL: { mix: 845, all: 1267 },\n CZ: { mix: 5025, all: 7535 },\n DE: { mix: 266, all: 399 }\n },\n {\n ageCategory: 'adult',\n size: 'extra_large',\n GB: { mix: 205, all: 307 },\n NI: { mix: 205, all: 307 },\n IE: { mix: 253, all: 380 },\n NL: { mix: 253, all: 380 },\n BE: { mix: 253, all: 380 },\n PL: { mix: 880, all: 1320 },\n CZ: { mix: 5233, all: 7850 },\n DE: { mix: 287, all: 431 }\n }\n]\n\nexport default EstimatedDailyPlanPrices\nexport type { AgeCategory, EstimatedDailyPlanPrices }\n","// @noflow\nimport type { Language } from '@/packs/localisation'\nimport EstimatedDailyPlanPrices from '@/static_content/EstimatedDailyPlanPrices'\nimport { useReactiveVar } from '@apollo/client'\nimport React, { useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { DiscountBasis } from '@/utils/butternutbox/discountCodes'\nimport { countryCodeToLocaleCurrency } from '@/utils/countryCodeHelper'\nimport { formatCurrencyWithDecimal } from '@/utils/currency'\nimport * as Sentry from '@/utils/sentry'\n\nimport Image from '@/components/shared/elements/Image/Image'\nimport { ageToAgeCategory } from '@/components/shared/elements/RoughCostCalculator/helpers/roughCostCalculatorHelpers'\n\nimport type { Code as CountryCode } from '@/shared_types/rails_models/shipping_countries'\n\nimport { dogDetailsState } from './DogDetailsForm'\n\ntype Props = {\n description: string\n planType: 'mix' | 'all' | 'bowl'\n copyContext: string\n namespace: string\n preferredLanguage: Language\n shippingCountryCode: CountryCode\n discountValue: number\n discountBasis: DiscountBasis\n align?: 'center'\n}\n\nconst Plan = ({\n description,\n planType,\n copyContext,\n namespace,\n preferredLanguage,\n shippingCountryCode,\n discountValue,\n discountBasis,\n align\n}: Props): JSX.Element | null => {\n const baseClass = 'rough-cost-calculator__plan'\n const { t } = useTranslation(namespace)\n\n const { locale, currency } = countryCodeToLocaleCurrency(\n shippingCountryCode,\n preferredLanguage\n )\n\n const dogDetails = useReactiveVar(dogDetailsState)\n\n const getDiscountedPrice = useCallback(\n (price: number, discountValue: number, discountBasis: DiscountBasis) => {\n if (discountValue && discountBasis === 'percentage') {\n return price - (price * discountValue) / 100\n }\n },\n []\n )\n\n const dogAgeCategory = ageToAgeCategory(dogDetails.age)\n\n const dailyPlanPrices = EstimatedDailyPlanPrices.find(\n ({ ageCategory, size }) =>\n ageCategory === dogAgeCategory && size === dogDetails.weight\n )\n if (!dailyPlanPrices) {\n Sentry.captureException(\n 'dailyPlanPrices not found for Rough Cost Calculator'\n )\n return null\n }\n\n const mixedPlanDailyPrice = dailyPlanPrices[shippingCountryCode].mix\n const allPlanDailyPrice = dailyPlanPrices[shippingCountryCode].all\n\n const allPlanDiscountedPrice =\n (discountValue &&\n discountBasis &&\n getDiscountedPrice(\n allPlanDailyPrice,\n discountValue,\n discountBasis as DiscountBasis\n )) ||\n 0\n\n const mixedPlanDiscountedPrice =\n discountValue && discountBasis\n ? getDiscountedPrice(\n mixedPlanDailyPrice,\n discountValue,\n discountBasis as DiscountBasis\n )\n : 0\n\n const strikethroughPrice =\n planType === 'mix' ? mixedPlanDailyPrice : allPlanDailyPrice\n const discountedPrice =\n planType === 'mix' ? mixedPlanDiscountedPrice : allPlanDiscountedPrice\n\n const imageAlt = () => {\n switch (planType) {\n case 'bowl':\n return t(`${copyContext}.bowl_butternut_img_alt`)\n case 'mix':\n return t(`${copyContext}.mix_butternut_img_alt`)\n default:\n return t(`${copyContext}.full_butternut_img_alt`)\n }\n }\n const imageSlug = () => {\n switch (planType) {\n case 'bowl':\n return 'duck-and-chicken-bowl'\n case 'mix':\n return 'most-butternut-with-pink-background'\n default:\n return 'all-butternut-with-pink-background'\n }\n }\n\n const isDiscounted = !!(discountedPrice && discountedPrice > 0)\n\n return (\n <div className={`${baseClass} ${align ? `${baseClass}--${align}` : ''}`}>\n <div className={`${baseClass}__image-wrapper`}>\n <Image\n alt={imageAlt()}\n slug={imageSlug()}\n image={{\n width: 80,\n height: 80,\n resizeMode: 'resize_to_fill',\n retina: true\n }}\n className={`${baseClass}__image-wrapper__image`}\n />\n </div>\n <div className={`${baseClass}__text-wrapper`}>\n <p className=\"text-regular-16 no-scale\">{description}</p>\n <p>\n <span\n className={`display-24 no-scale ${\n isDiscounted ? baseClass + '__discounted-price' : ''\n }`}\n >\n {formatCurrencyWithDecimal(\n isDiscounted ? discountedPrice : strikethroughPrice,\n {\n locale,\n currency\n }\n )}\n </span>\n <span className=\"text-regular-16 no-scale\">\n {t(`${copyContext}.per_day`)}\n </span>\n </p>\n {isDiscounted && (\n <p className=\"text-regular-14 no-scale strikethrough\">\n <span>\n {formatCurrencyWithDecimal(strikethroughPrice, {\n locale,\n currency\n })}\n </span>\n {t(`${copyContext}.per_day`)}\n </p>\n )}\n </div>\n </div>\n )\n}\n\nexport type { Props }\nexport default Plan\n","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","var toNumber = require('./toNumber');\n/** Used as references for various `Number` constants. */\n\n\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n\n value = toNumber(value);\n\n if (value === INFINITY || value === -INFINITY) {\n var sign = value < 0 ? -1 : 1;\n return sign * MAX_INTEGER;\n }\n\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;","// @flow\n\n/**\n * Brand Colours\n * Here is where we define our core brand colours in JavaScript variables so we\n * can pass them as parameters into our asset functions that are stored inside\n * 'javascript/assets/...'. These colours should ALWAYS be in-line with the\n * variables stored in our `_colours.scss` CSS sheet.\n */\n\ntype BrandColours = {|\n // Blue\n brandBlue100: '#ecf4f9',\n brandBlue200: '#c9dbe8',\n brandBlue300: '#94b8d1',\n brandBlue400: '#3f769e',\n brandBlue500: '#174f78',\n brandBlue600: '#0f3f61',\n brandBlue700: '#092d46',\n\n // Yellow\n brandYellow100: '#fbf8e9',\n brandYellow200: '#fbedb6',\n brandYellow300: '#ffe180',\n brandYellow400: '#ffd54b',\n brandYellow500: '#efbf0b',\n brandYellow600: '#d9b226',\n brandYellow700: '#8c741f',\n\n // Pink\n brandPink100: '#f9ecec',\n brandPink200: '#f2c4c4',\n brandPink300: '#e89797',\n brandPink400: '#df6d6d',\n brandPink500: '#bf4040',\n brandPink600: '#933',\n brandPink700: '#7a1f1f',\n\n // Red\n brandRed100: '#f9eeec',\n brandRed200: '#f5c5bc',\n brandRed300: '#ef9f90',\n brandRed400: '#e66c55',\n brandRed500: '#cc4b33',\n brandRed600: '#a83924',\n brandRed700: '#7e2b1b',\n\n // Black\n brandBlack: '#000',\n\n // White\n brandWhite: '#fff',\n\n // Brown\n cardboardBrown: '#85614d'\n|}\n\nconst BRAND_COLOURS: BrandColours = {\n // Blue\n brandBlue100: '#ecf4f9',\n brandBlue200: '#c9dbe8',\n brandBlue300: '#94b8d1',\n brandBlue400: '#3f769e',\n brandBlue500: '#174f78',\n brandBlue600: '#0f3f61',\n brandBlue700: '#092d46',\n\n // Yellow\n brandYellow100: '#fbf8e9',\n brandYellow200: '#fbedb6',\n brandYellow300: '#ffe180',\n brandYellow400: '#ffd54b',\n brandYellow500: '#efbf0b',\n brandYellow600: '#d9b226',\n brandYellow700: '#8c741f',\n\n // Pink\n brandPink100: '#f9ecec',\n brandPink200: '#f2c4c4',\n brandPink300: '#e89797',\n brandPink400: '#df6d6d',\n brandPink500: '#bf4040',\n brandPink600: '#933',\n brandPink700: '#7a1f1f',\n\n // Red\n brandRed100: '#f9eeec',\n brandRed200: '#f5c5bc',\n brandRed300: '#ef9f90',\n brandRed400: '#e66c55',\n brandRed500: '#cc4b33',\n brandRed600: '#a83924',\n brandRed700: '#7e2b1b',\n\n // Black\n brandBlack: '#000',\n\n // White\n brandWhite: '#fff',\n\n // Brown\n cardboardBrown: '#85614d'\n}\n\nexport default BRAND_COLOURS\n\nexport type { BrandColours }\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n/** Used as references for various `Number` constants. */\n\n\nvar NAN = 0 / 0;\n/** Used to detect bad signed hexadecimal string values. */\n\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n/** Used to detect binary string values. */\n\nvar reIsBinary = /^0b[01]+$/i;\n/** Used to detect octal string values. */\n\nvar reIsOctal = /^0o[0-7]+$/i;\n/** Built-in method references without a dependency on `root`. */\n\nvar freeParseInt = parseInt;\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\n\nmodule.exports = toNumber;","// @noflow\nimport BreedQuestionnaire from './BreedQuestionnaire'\n\nexport default BreedQuestionnaire\n","// A [trie](https://en.wikipedia.org/wiki/Trie) data structure that holds\n// object keys weakly, yet can also hold non-object keys, unlike the\n// native `WeakMap`.\n// If no makeData function is supplied, the looked-up data will be an empty,\n// null-prototype Object.\nvar defaultMakeData = function defaultMakeData() {\n return Object.create(null);\n}; // Useful for processing arguments objects as well as arrays.\n\n\nvar _a = Array.prototype,\n forEach = _a.forEach,\n slice = _a.slice;\n\nvar Trie =\n/** @class */\nfunction () {\n function Trie(weakness, makeData) {\n if (weakness === void 0) {\n weakness = true;\n }\n\n if (makeData === void 0) {\n makeData = defaultMakeData;\n }\n\n this.weakness = weakness;\n this.makeData = makeData;\n }\n\n Trie.prototype.lookup = function () {\n var array = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n\n return this.lookupArray(array);\n };\n\n Trie.prototype.lookupArray = function (array) {\n var node = this;\n forEach.call(array, function (key) {\n return node = node.getChildTrie(key);\n });\n return node.data || (node.data = this.makeData(slice.call(array)));\n };\n\n Trie.prototype.getChildTrie = function (key) {\n var map = this.weakness && isObjRef(key) ? this.weak || (this.weak = new WeakMap()) : this.strong || (this.strong = new Map());\n var child = map.get(key);\n if (!child) map.set(key, child = new Trie(this.weakness, this.makeData));\n return child;\n };\n\n return Trie;\n}();\n\nfunction isObjRef(value) {\n switch (typeof value) {\n case \"object\":\n if (value === null) break;\n // Fall through to return true...\n\n case \"function\":\n return true;\n }\n\n return false;\n}\n\nexport { Trie };","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n\n return result;\n}\n\nmodule.exports = baseTimes;","var toFinite = require('./toFinite');\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n\n\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n return result === result ? remainder ? result - remainder : result : 0;\n}\n\nmodule.exports = toInteger;","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n\n return index;\n}\n\nmodule.exports = trimmedEndIndex;","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n\n\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n\n var type = typeof index;\n\n if (type == 'number' ? isArrayLike(object) && isIndex(index, object.length) : type == 'string' && index in object) {\n return eq(object[index], value);\n }\n\n return false;\n}\n\nmodule.exports = isIterateeCall;","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","const times = (n: number): number[] => {\n return Array.from({ length: n }, (_, i) => i)\n}\n\nexport default times\n","'use strict';\n\nexports.__esModule = true;\nexports.extend = extend;\nexports.indexOf = indexOf;\nexports.escapeExpression = escapeExpression;\nexports.isEmpty = isEmpty;\nexports.createFrame = createFrame;\nexports.blockParams = blockParams;\nexports.appendContextPath = appendContextPath;\nvar escape = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`',\n '=': '='\n};\nvar badChars = /[&<>\"'`=]/g,\n possible = /[&<>\"'`=]/;\n\nfunction escapeChar(chr) {\n return escape[chr];\n}\n\nfunction extend(obj\n/* , ...source */\n) {\n for (var i = 1; i < arguments.length; i++) {\n for (var key in arguments[i]) {\n if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n obj[key] = arguments[i][key];\n }\n }\n }\n\n return obj;\n}\n\nvar toString = Object.prototype.toString;\nexports.toString = toString; // Sourced from lodash\n// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n\n/* eslint-disable func-style */\n\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n}; // fallback for older versions of Chrome and Safari\n\n/* istanbul ignore next */\n\n\nif (isFunction(/x/)) {\n exports.isFunction = isFunction = function isFunction(value) {\n return typeof value === 'function' && toString.call(value) === '[object Function]';\n };\n}\n\nexports.isFunction = isFunction;\n/* eslint-enable func-style */\n\n/* istanbul ignore next */\n\nvar isArray = Array.isArray || function (value) {\n return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\n};\n\nexports.isArray = isArray; // Older IE versions do not directly support indexOf so we must implement our own, sadly.\n\nfunction indexOf(array, value) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n\n return -1;\n}\n\nfunction escapeExpression(string) {\n if (typeof string !== 'string') {\n // don't escape SafeStrings, since they're already safe\n if (string && string.toHTML) {\n return string.toHTML();\n } else if (string == null) {\n return '';\n } else if (!string) {\n return string + '';\n } // Force a string conversion as this will be done by the append regardless and\n // the regex test will do this transparently behind the scenes, causing issues if\n // an object's to string has escaped characters in it.\n\n\n string = '' + string;\n }\n\n if (!possible.test(string)) {\n return string;\n }\n\n return string.replace(badChars, escapeChar);\n}\n\nfunction isEmpty(value) {\n if (!value && value !== 0) {\n return true;\n } else if (isArray(value) && value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction createFrame(object) {\n var frame = extend({}, object);\n frame._parent = object;\n return frame;\n}\n\nfunction blockParams(params, ids) {\n params.path = ids;\n return params;\n}\n\nfunction appendContextPath(contextPath, id) {\n return (contextPath ? contextPath + '.' : '') + id;\n}","const ageOptions = [\n {\n value: 0,\n text: '0_year'\n },\n {\n value: 1,\n text: '1_year'\n },\n {\n value: 2,\n text: '2_year'\n },\n {\n value: 3,\n text: '3_year'\n },\n {\n value: 4,\n text: '4_year'\n },\n {\n value: 5,\n text: '5_year'\n },\n {\n value: 6,\n text: '6_year'\n },\n {\n value: 7,\n text: '7_year'\n },\n {\n value: 8,\n text: '8_year'\n },\n {\n value: 9,\n text: '9_year'\n },\n {\n value: 10,\n text: '10_year'\n },\n {\n value: 11,\n text: '11_year'\n },\n {\n value: 12,\n text: '12_year'\n }\n]\n\nexport { ageOptions }\n","// @noflow\nimport { ageOptions } from '@/static_content/dropdownOptions'\nimport { useReactiveVar } from '@apollo/client'\nimport React, { useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport Select from '@/components/shared/elements/Select/Select'\nimport type { Option } from '@/components/shared/elements/Select/Select'\n\nimport { dogDetailsState } from './DogDetailsForm'\n\nconst namespace = 'homepage'\nconst copyContext = 'rough_cost_calculator'\nconst baseClass = 'rough-cost-calculator__cost-calculator'\n\nconst AgeSelect = (): JSX.Element => {\n const { t } = useTranslation(namespace)\n\n const dogDetails = useReactiveVar(dogDetailsState)\n\n const formattedAgeOptions = ageOptions.map((option, index): Option => {\n return {\n id: index.toString(),\n value: option.value,\n label: t(`${copyContext}.age.${option.text}`)\n }\n })\n\n const formattedAgeOption = formattedAgeOptions.find(\n (option) => option.value === dogDetails.age\n )\n\n const handleAgeChange = useCallback(\n (option: Option) => {\n // We want to set interactedWithAge explicitly as true so that we don't end up using the\n // defaulted value of 2 years old in the Signup Wizard if this isn't a value picked by the user\n dogDetailsState({\n ...dogDetails,\n age: parseInt(option.value.toString()),\n interactedWithAge: true\n })\n },\n [dogDetails]\n )\n\n return (\n <div className={`${baseClass}__dropdown-wrapper`}>\n <Select\n onChange={handleAgeChange}\n label={t(`${copyContext}.age_label`)}\n options={formattedAgeOptions}\n initialValue={formattedAgeOption}\n />\n </div>\n )\n}\n\nexport default AgeSelect\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction uniqBy<T>(array: T[], key: (item: T) => any): T[] {\n const seen = new Set()\n return array.filter((item) => {\n const keyValue = key(item)\n if (seen.has(keyValue)) {\n return false\n } else {\n seen.add(keyValue)\n return true\n }\n })\n}\n\nexport default uniqBy\n","// @noflow\nimport EstimatedDailyPlanPrices from '@/static_content/EstimatedDailyPlanPrices'\nimport { useReactiveVar } from '@apollo/client'\nimport React, { useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport uniqBy from '@/utils/uniqBy'\n\nimport Select from '@/components/shared/elements/Select/Select'\nimport type { Option } from '@/components/shared/elements/Select/Select'\n\nimport { dogDetailsState } from './DogDetailsForm'\n\nconst namespace = 'homepage'\nconst copyContext = 'rough_cost_calculator'\nconst baseClass = 'rough-cost-calculator__cost-calculator'\n\nconst WeightSelect = (): JSX.Element => {\n const { t } = useTranslation(namespace)\n\n const dogDetails = useReactiveVar(dogDetailsState)\n\n const weightOptions = uniqBy(\n EstimatedDailyPlanPrices,\n (estimate) => estimate.size\n )\n\n const formattedWeightOptions = weightOptions.map((option, index): Option => {\n return {\n id: index.toString(),\n value: option.size,\n label: t(`${copyContext}.weight.${option.size}`)\n }\n })\n\n const formattedWeightOption = formattedWeightOptions.find(\n (option) => option.value === dogDetails.weight\n )\n\n const handleWeightChange = useCallback(\n (option: Option) => {\n dogDetailsState({ ...dogDetails, weight: option.value })\n },\n [dogDetails]\n )\n\n return (\n <div className={`${baseClass}__dropdown-wrapper`}>\n <Select\n onChange={handleWeightChange}\n label={t(`${copyContext}.weight_label`)}\n options={formattedWeightOptions}\n initialValue={formattedWeightOption}\n />\n </div>\n )\n}\n\nexport default WeightSelect\n","// This currentContext variable will only be used if the makeSlotClass\n// function is called, which happens only if this is the first copy of the\n// @wry/context package to be imported.\nvar currentContext = null; // This unique internal object is used to denote the absence of a value\n// for a given Slot, and is never exposed to outside code.\n\nvar MISSING_VALUE = {};\nvar idCounter = 1; // Although we can't do anything about the cost of duplicated code from\n// accidentally bundling multiple copies of the @wry/context package, we can\n// avoid creating the Slot class more than once using makeSlotClass.\n\nvar makeSlotClass = function makeSlotClass() {\n return (\n /** @class */\n function () {\n function Slot() {\n // If you have a Slot object, you can find out its slot.id, but you cannot\n // guess the slot.id of a Slot you don't have access to, thanks to the\n // randomized suffix.\n this.id = [\"slot\", idCounter++, Date.now(), Math.random().toString(36).slice(2)].join(\":\");\n }\n\n Slot.prototype.hasValue = function () {\n for (var context_1 = currentContext; context_1; context_1 = context_1.parent) {\n // We use the Slot object iself as a key to its value, which means the\n // value cannot be obtained without a reference to the Slot object.\n if (this.id in context_1.slots) {\n var value = context_1.slots[this.id];\n if (value === MISSING_VALUE) break;\n\n if (context_1 !== currentContext) {\n // Cache the value in currentContext.slots so the next lookup will\n // be faster. This caching is safe because the tree of contexts and\n // the values of the slots are logically immutable.\n currentContext.slots[this.id] = value;\n }\n\n return true;\n }\n }\n\n if (currentContext) {\n // If a value was not found for this Slot, it's never going to be found\n // no matter how many times we look it up, so we might as well cache\n // the absence of the value, too.\n currentContext.slots[this.id] = MISSING_VALUE;\n }\n\n return false;\n };\n\n Slot.prototype.getValue = function () {\n if (this.hasValue()) {\n return currentContext.slots[this.id];\n }\n };\n\n Slot.prototype.withValue = function (value, callback, // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n var _a;\n\n var slots = (_a = {\n __proto__: null\n }, _a[this.id] = value, _a);\n var parent = currentContext;\n currentContext = {\n parent: parent,\n slots: slots\n };\n\n try {\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg, args);\n } finally {\n currentContext = parent;\n }\n }; // Capture the current context and wrap a callback function so that it\n // reestablishes the captured context when called.\n\n\n Slot.bind = function (callback) {\n var context = currentContext;\n return function () {\n var saved = currentContext;\n\n try {\n currentContext = context;\n return callback.apply(this, arguments);\n } finally {\n currentContext = saved;\n }\n };\n }; // Immediately run a callback function without any captured context.\n\n\n Slot.noContext = function (callback, // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n if (currentContext) {\n var saved = currentContext;\n\n try {\n currentContext = null; // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n\n return callback.apply(thisArg, args);\n } finally {\n currentContext = saved;\n }\n } else {\n return callback.apply(thisArg, args);\n }\n };\n\n return Slot;\n }()\n );\n}; // We store a single global implementation of the Slot class as a permanent\n// non-enumerable symbol property of the Array constructor. This obfuscation\n// does nothing to prevent access to the Slot class, but at least it ensures\n// the implementation (i.e. currentContext) cannot be tampered with, and all\n// copies of the @wry/context package (hopefully just one) will share the\n// same Slot implementation. Since the first copy of the @wry/context package\n// to be imported wins, this technique imposes a very high cost for any\n// future breaking changes to the Slot class.\n\n\nvar globalKey = \"@wry/context:Slot\";\nvar host = Array;\n\nvar Slot = host[globalKey] || function () {\n var Slot = makeSlotClass();\n\n try {\n Object.defineProperty(host, globalKey, {\n value: host[globalKey] = Slot,\n enumerable: false,\n writable: false,\n configurable: false\n });\n } finally {\n return Slot;\n }\n}();\n\nvar bind = Slot.bind,\n noContext = Slot.noContext;\n\nfunction setTimeoutWithContext(callback, delay) {\n return setTimeout(bind(callback), delay);\n} // Turn any generator function into an async function (using yield instead\n// of await), with context automatically preserved across yields.\n\n\nfunction asyncFromGen(genFn) {\n return function () {\n var gen = genFn.apply(this, arguments);\n var boundNext = bind(gen.next);\n var boundThrow = bind(gen.throw);\n return new Promise(function (resolve, reject) {\n function invoke(method, argument) {\n try {\n var result = method.call(gen, argument);\n } catch (error) {\n return reject(error);\n }\n\n var next = result.done ? resolve : invokeNext;\n\n if (isPromiseLike(result.value)) {\n result.value.then(next, result.done ? reject : invokeThrow);\n } else {\n next(result.value);\n }\n }\n\n var invokeNext = function invokeNext(value) {\n return invoke(boundNext, value);\n };\n\n var invokeThrow = function invokeThrow(error) {\n return invoke(boundThrow, error);\n };\n\n invokeNext();\n });\n };\n}\n\nfunction isPromiseLike(value) {\n return value && typeof value.then === \"function\";\n} // If you use the fibers npm package to implement coroutines in Node.js,\n// you should call this function at least once to ensure context management\n// remains coherent across any yields.\n\n\nvar wrappedFibers = [];\n\nfunction wrapYieldingFiberMethods(Fiber) {\n // There can be only one implementation of Fiber per process, so this array\n // should never grow longer than one element.\n if (wrappedFibers.indexOf(Fiber) < 0) {\n var wrap = function wrap(obj, method) {\n var fn = obj[method];\n\n obj[method] = function () {\n return noContext(fn, arguments, this);\n };\n }; // These methods can yield, according to\n // https://github.com/laverdet/node-fibers/blob/ddebed9b8ae3883e57f822e2108e6943e5c8d2a8/fibers.js#L97-L100\n\n\n wrap(Fiber, \"yield\");\n wrap(Fiber.prototype, \"run\");\n wrap(Fiber.prototype, \"throwInto\");\n wrappedFibers.push(Fiber);\n }\n\n return Fiber;\n}\n\nexport { Slot, asyncFromGen, bind, noContext, setTimeoutWithContext as setTimeout, wrapYieldingFiberMethods };","import { Trie } from '@wry/trie';\nexport { Trie as KeyTrie } from '@wry/trie';\nimport { Slot } from '@wry/context';\nexport { asyncFromGen, bind as bindContext, noContext, setTimeout } from '@wry/context';\n\nfunction defaultDispose() {}\n\nvar Cache =\n/** @class */\nfunction () {\n function Cache(max, dispose) {\n if (max === void 0) {\n max = Infinity;\n }\n\n if (dispose === void 0) {\n dispose = defaultDispose;\n }\n\n this.max = max;\n this.dispose = dispose;\n this.map = new Map();\n this.newest = null;\n this.oldest = null;\n }\n\n Cache.prototype.has = function (key) {\n return this.map.has(key);\n };\n\n Cache.prototype.get = function (key) {\n var node = this.getNode(key);\n return node && node.value;\n };\n\n Cache.prototype.getNode = function (key) {\n var node = this.map.get(key);\n\n if (node && node !== this.newest) {\n var older = node.older,\n newer = node.newer;\n\n if (newer) {\n newer.older = older;\n }\n\n if (older) {\n older.newer = newer;\n }\n\n node.older = this.newest;\n node.older.newer = node;\n node.newer = null;\n this.newest = node;\n\n if (node === this.oldest) {\n this.oldest = newer;\n }\n }\n\n return node;\n };\n\n Cache.prototype.set = function (key, value) {\n var node = this.getNode(key);\n\n if (node) {\n return node.value = value;\n }\n\n node = {\n key: key,\n value: value,\n newer: null,\n older: this.newest\n };\n\n if (this.newest) {\n this.newest.newer = node;\n }\n\n this.newest = node;\n this.oldest = this.oldest || node;\n this.map.set(key, node);\n return node.value;\n };\n\n Cache.prototype.clean = function () {\n while (this.oldest && this.map.size > this.max) {\n this.delete(this.oldest.key);\n }\n };\n\n Cache.prototype.delete = function (key) {\n var node = this.map.get(key);\n\n if (node) {\n if (node === this.newest) {\n this.newest = node.older;\n }\n\n if (node === this.oldest) {\n this.oldest = node.newer;\n }\n\n if (node.newer) {\n node.newer.older = node.older;\n }\n\n if (node.older) {\n node.older.newer = node.newer;\n }\n\n this.map.delete(key);\n this.dispose(node.value, key);\n return true;\n }\n\n return false;\n };\n\n return Cache;\n}();\n\nvar parentEntrySlot = new Slot();\n\nvar _a;\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar // This Array.from polyfill is restricted to working with Set<any> for now,\n// but we can improve the polyfill and add other input types, as needed. Note\n// that this fallback implementation will only be used if the host environment\n// does not support a native Array.from function. In most modern JS runtimes,\n// the toArray function exported here will be === Array.from.\ntoArray = (_a = Array.from, _a === void 0 ? function (collection) {\n var array = [];\n collection.forEach(function (item) {\n return array.push(item);\n });\n return array;\n} : _a);\n\nfunction maybeUnsubscribe(entryOrDep) {\n var unsubscribe = entryOrDep.unsubscribe;\n\n if (typeof unsubscribe === \"function\") {\n entryOrDep.unsubscribe = void 0;\n unsubscribe();\n }\n}\n\nvar emptySetPool = [];\nvar POOL_TARGET_SIZE = 100; // Since this package might be used browsers, we should avoid using the\n// Node built-in assert module.\n\nfunction assert(condition, optionalMessage) {\n if (!condition) {\n throw new Error(optionalMessage || \"assertion failure\");\n }\n}\n\nfunction valueIs(a, b) {\n var len = a.length;\n return (// Unknown values are not equal to each other.\n len > 0 && // Both values must be ordinary (or both exceptional) to be equal.\n len === b.length && // The underlying value or exception must be the same.\n a[len - 1] === b[len - 1]\n );\n}\n\nfunction valueGet(value) {\n switch (value.length) {\n case 0:\n throw new Error(\"unknown value\");\n\n case 1:\n return value[0];\n\n case 2:\n throw value[1];\n }\n}\n\nfunction valueCopy(value) {\n return value.slice(0);\n}\n\nvar Entry =\n/** @class */\nfunction () {\n function Entry(fn) {\n this.fn = fn;\n this.parents = new Set();\n this.childValues = new Map(); // When this Entry has children that are dirty, this property becomes\n // a Set containing other Entry objects, borrowed from emptySetPool.\n // When the set becomes empty, it gets recycled back to emptySetPool.\n\n this.dirtyChildren = null;\n this.dirty = true;\n this.recomputing = false;\n this.value = [];\n this.deps = null;\n ++Entry.count;\n }\n\n Entry.prototype.peek = function () {\n if (this.value.length === 1 && !mightBeDirty(this)) {\n rememberParent(this);\n return this.value[0];\n }\n }; // This is the most important method of the Entry API, because it\n // determines whether the cached this.value can be returned immediately,\n // or must be recomputed. The overall performance of the caching system\n // depends on the truth of the following observations: (1) this.dirty is\n // usually false, (2) this.dirtyChildren is usually null/empty, and thus\n // (3) valueGet(this.value) is usually returned without recomputation.\n\n\n Entry.prototype.recompute = function (args) {\n assert(!this.recomputing, \"already recomputing\");\n rememberParent(this);\n return mightBeDirty(this) ? reallyRecompute(this, args) : valueGet(this.value);\n };\n\n Entry.prototype.setDirty = function () {\n if (this.dirty) return;\n this.dirty = true;\n this.value.length = 0;\n reportDirty(this); // We can go ahead and unsubscribe here, since any further dirty\n // notifications we receive will be redundant, and unsubscribing may\n // free up some resources, e.g. file watchers.\n\n maybeUnsubscribe(this);\n };\n\n Entry.prototype.dispose = function () {\n var _this = this;\n\n this.setDirty(); // Sever any dependency relationships with our own children, so those\n // children don't retain this parent Entry in their child.parents sets,\n // thereby preventing it from being fully garbage collected.\n\n forgetChildren(this); // Because this entry has been kicked out of the cache (in index.js),\n // we've lost the ability to find out if/when this entry becomes dirty,\n // whether that happens through a subscription, because of a direct call\n // to entry.setDirty(), or because one of its children becomes dirty.\n // Because of this loss of future information, we have to assume the\n // worst (that this entry might have become dirty very soon), so we must\n // immediately mark this entry's parents as dirty. Normally we could\n // just call entry.setDirty() rather than calling parent.setDirty() for\n // each parent, but that would leave this entry in parent.childValues\n // and parent.dirtyChildren, which would prevent the child from being\n // truly forgotten.\n\n eachParent(this, function (parent, child) {\n parent.setDirty();\n forgetChild(parent, _this);\n });\n };\n\n Entry.prototype.forget = function () {\n // The code that creates Entry objects in index.ts will replace this method\n // with one that actually removes the Entry from the cache, which will also\n // trigger the entry.dispose method.\n this.dispose();\n };\n\n Entry.prototype.dependOn = function (dep) {\n dep.add(this);\n\n if (!this.deps) {\n this.deps = emptySetPool.pop() || new Set();\n }\n\n this.deps.add(dep);\n };\n\n Entry.prototype.forgetDeps = function () {\n var _this = this;\n\n if (this.deps) {\n toArray(this.deps).forEach(function (dep) {\n return dep.delete(_this);\n });\n this.deps.clear();\n emptySetPool.push(this.deps);\n this.deps = null;\n }\n };\n\n Entry.count = 0;\n return Entry;\n}();\n\nfunction rememberParent(child) {\n var parent = parentEntrySlot.getValue();\n\n if (parent) {\n child.parents.add(parent);\n\n if (!parent.childValues.has(child)) {\n parent.childValues.set(child, []);\n }\n\n if (mightBeDirty(child)) {\n reportDirtyChild(parent, child);\n } else {\n reportCleanChild(parent, child);\n }\n\n return parent;\n }\n}\n\nfunction reallyRecompute(entry, args) {\n forgetChildren(entry); // Set entry as the parent entry while calling recomputeNewValue(entry).\n\n parentEntrySlot.withValue(entry, recomputeNewValue, [entry, args]);\n\n if (maybeSubscribe(entry, args)) {\n // If we successfully recomputed entry.value and did not fail to\n // (re)subscribe, then this Entry is no longer explicitly dirty.\n setClean(entry);\n }\n\n return valueGet(entry.value);\n}\n\nfunction recomputeNewValue(entry, args) {\n entry.recomputing = true; // Set entry.value as unknown.\n\n entry.value.length = 0;\n\n try {\n // If entry.fn succeeds, entry.value will become a normal Value.\n entry.value[0] = entry.fn.apply(null, args);\n } catch (e) {\n // If entry.fn throws, entry.value will become exceptional.\n entry.value[1] = e;\n } // Either way, this line is always reached.\n\n\n entry.recomputing = false;\n}\n\nfunction mightBeDirty(entry) {\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\n}\n\nfunction setClean(entry) {\n entry.dirty = false;\n\n if (mightBeDirty(entry)) {\n // This Entry may still have dirty children, in which case we can't\n // let our parents know we're clean just yet.\n return;\n }\n\n reportClean(entry);\n}\n\nfunction reportDirty(child) {\n eachParent(child, reportDirtyChild);\n}\n\nfunction reportClean(child) {\n eachParent(child, reportCleanChild);\n}\n\nfunction eachParent(child, callback) {\n var parentCount = child.parents.size;\n\n if (parentCount) {\n var parents = toArray(child.parents);\n\n for (var i = 0; i < parentCount; ++i) {\n callback(parents[i], child);\n }\n }\n} // Let a parent Entry know that one of its children may be dirty.\n\n\nfunction reportDirtyChild(parent, child) {\n // Must have called rememberParent(child) before calling\n // reportDirtyChild(parent, child).\n assert(parent.childValues.has(child));\n assert(mightBeDirty(child));\n var parentWasClean = !mightBeDirty(parent);\n\n if (!parent.dirtyChildren) {\n parent.dirtyChildren = emptySetPool.pop() || new Set();\n } else if (parent.dirtyChildren.has(child)) {\n // If we already know this child is dirty, then we must have already\n // informed our own parents that we are dirty, so we can terminate\n // the recursion early.\n return;\n }\n\n parent.dirtyChildren.add(child); // If parent was clean before, it just became (possibly) dirty (according to\n // mightBeDirty), since we just added child to parent.dirtyChildren.\n\n if (parentWasClean) {\n reportDirty(parent);\n }\n} // Let a parent Entry know that one of its children is no longer dirty.\n\n\nfunction reportCleanChild(parent, child) {\n // Must have called rememberChild(child) before calling\n // reportCleanChild(parent, child).\n assert(parent.childValues.has(child));\n assert(!mightBeDirty(child));\n var childValue = parent.childValues.get(child);\n\n if (childValue.length === 0) {\n parent.childValues.set(child, valueCopy(child.value));\n } else if (!valueIs(childValue, child.value)) {\n parent.setDirty();\n }\n\n removeDirtyChild(parent, child);\n\n if (mightBeDirty(parent)) {\n return;\n }\n\n reportClean(parent);\n}\n\nfunction removeDirtyChild(parent, child) {\n var dc = parent.dirtyChildren;\n\n if (dc) {\n dc.delete(child);\n\n if (dc.size === 0) {\n if (emptySetPool.length < POOL_TARGET_SIZE) {\n emptySetPool.push(dc);\n }\n\n parent.dirtyChildren = null;\n }\n }\n} // Removes all children from this entry and returns an array of the\n// removed children.\n\n\nfunction forgetChildren(parent) {\n if (parent.childValues.size > 0) {\n parent.childValues.forEach(function (_value, child) {\n forgetChild(parent, child);\n });\n } // Remove this parent Entry from any sets to which it was added by the\n // addToSet method.\n\n\n parent.forgetDeps(); // After we forget all our children, this.dirtyChildren must be empty\n // and therefore must have been reset to null.\n\n assert(parent.dirtyChildren === null);\n}\n\nfunction forgetChild(parent, child) {\n child.parents.delete(parent);\n parent.childValues.delete(child);\n removeDirtyChild(parent, child);\n}\n\nfunction maybeSubscribe(entry, args) {\n if (typeof entry.subscribe === \"function\") {\n try {\n maybeUnsubscribe(entry); // Prevent double subscriptions.\n\n entry.unsubscribe = entry.subscribe.apply(null, args);\n } catch (e) {\n // If this Entry has a subscribe function and it threw an exception\n // (or an unsubscribe function it previously returned now throws),\n // return false to indicate that we were not able to subscribe (or\n // unsubscribe), and this Entry should remain dirty.\n entry.setDirty();\n return false;\n }\n } // Returning true indicates either that there was no entry.subscribe\n // function or that it succeeded.\n\n\n return true;\n}\n\nvar EntryMethods = {\n setDirty: true,\n dispose: true,\n forget: true\n};\n\nfunction dep(options) {\n var depsByKey = new Map();\n var subscribe = options && options.subscribe;\n\n function depend(key) {\n var parent = parentEntrySlot.getValue();\n\n if (parent) {\n var dep_1 = depsByKey.get(key);\n\n if (!dep_1) {\n depsByKey.set(key, dep_1 = new Set());\n }\n\n parent.dependOn(dep_1);\n\n if (typeof subscribe === \"function\") {\n maybeUnsubscribe(dep_1);\n dep_1.unsubscribe = subscribe(key);\n }\n }\n }\n\n depend.dirty = function dirty(key, entryMethodName) {\n var dep = depsByKey.get(key);\n\n if (dep) {\n var m_1 = entryMethodName && hasOwnProperty.call(EntryMethods, entryMethodName) ? entryMethodName : \"setDirty\"; // We have to use toArray(dep).forEach instead of dep.forEach, because\n // modifying a Set while iterating over it can cause elements in the Set\n // to be removed from the Set before they've been iterated over.\n\n toArray(dep).forEach(function (entry) {\n return entry[m_1]();\n });\n depsByKey.delete(key);\n maybeUnsubscribe(dep);\n }\n };\n\n return depend;\n}\n\nfunction makeDefaultMakeCacheKeyFunction() {\n var keyTrie = new Trie(typeof WeakMap === \"function\");\n return function () {\n return keyTrie.lookupArray(arguments);\n };\n} // The defaultMakeCacheKey function is remarkably powerful, because it gives\n// a unique object for any shallow-identical list of arguments. If you need\n// to implement a custom makeCacheKey function, you may find it helpful to\n// delegate the final work to defaultMakeCacheKey, which is why we export it\n// here. However, you may want to avoid defaultMakeCacheKey if your runtime\n// does not support WeakMap, or you have the ability to return a string key.\n// In those cases, just write your own custom makeCacheKey functions.\n\n\nvar defaultMakeCacheKey = makeDefaultMakeCacheKeyFunction();\nvar caches = new Set();\n\nfunction wrap(originalFunction, options) {\n if (options === void 0) {\n options = Object.create(null);\n }\n\n var cache = new Cache(options.max || Math.pow(2, 16), function (entry) {\n return entry.dispose();\n });\n var keyArgs = options.keyArgs;\n var makeCacheKey = options.makeCacheKey || makeDefaultMakeCacheKeyFunction();\n\n var optimistic = function optimistic() {\n var key = makeCacheKey.apply(null, keyArgs ? keyArgs.apply(null, arguments) : arguments);\n\n if (key === void 0) {\n return originalFunction.apply(null, arguments);\n }\n\n var entry = cache.get(key);\n\n if (!entry) {\n cache.set(key, entry = new Entry(originalFunction));\n entry.subscribe = options.subscribe; // Give the Entry the ability to trigger cache.delete(key), even though\n // the Entry itself does not know about key or cache.\n\n entry.forget = function () {\n return cache.delete(key);\n };\n }\n\n var value = entry.recompute(Array.prototype.slice.call(arguments)); // Move this entry to the front of the least-recently used queue,\n // since we just finished computing its value.\n\n cache.set(key, entry);\n caches.add(cache); // Clean up any excess entries in the cache, but only if there is no\n // active parent entry, meaning we're not in the middle of a larger\n // computation that might be flummoxed by the cleaning.\n\n if (!parentEntrySlot.hasValue()) {\n caches.forEach(function (cache) {\n return cache.clean();\n });\n caches.clear();\n }\n\n return value;\n };\n\n Object.defineProperty(optimistic, \"size\", {\n get: function get() {\n return cache[\"map\"].size;\n },\n configurable: false,\n enumerable: false\n });\n\n function dirtyKey(key) {\n var entry = cache.get(key);\n\n if (entry) {\n entry.setDirty();\n }\n }\n\n optimistic.dirtyKey = dirtyKey;\n\n optimistic.dirty = function dirty() {\n dirtyKey(makeCacheKey.apply(null, arguments));\n };\n\n function peekKey(key) {\n var entry = cache.get(key);\n\n if (entry) {\n return entry.peek();\n }\n }\n\n optimistic.peekKey = peekKey;\n\n optimistic.peek = function peek() {\n return peekKey(makeCacheKey.apply(null, arguments));\n };\n\n function forgetKey(key) {\n return cache.delete(key);\n }\n\n optimistic.forgetKey = forgetKey;\n\n optimistic.forget = function forget() {\n return forgetKey(makeCacheKey.apply(null, arguments));\n };\n\n optimistic.makeCacheKey = makeCacheKey;\n optimistic.getKey = keyArgs ? function getKey() {\n return makeCacheKey.apply(null, keyArgs.apply(null, arguments));\n } : makeCacheKey;\n return Object.freeze(optimistic);\n}\n\nexport { defaultMakeCacheKey, dep, wrap };","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n\n\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n\n return result;\n}\n\nmodule.exports = baseFlatten;","import { gql } from '@apollo/client'\n\nconst HOME_BREED_SELECTOR_QUERY = gql`\n query HomeBreedSelectorQuery($name: String, $popular: Boolean) {\n breeds(name: $name, popular: $popular) {\n id\n name\n key\n popular\n }\n }\n`\n\nexport { HOME_BREED_SELECTOR_QUERY }\n","// @noflow\nimport * as React from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport times from '@/utils/times'\n\nimport Paw from 'assets/images/icons/paws/paw-yellow-alt.svg'\n\nimport type { HomeBreedSelectorQuery_breeds as Breed } from '../../queries/__generated__/HomeBreedSelectorQuery'\n\nimport { BreedSelectorVariant } from '../../BreedSelector'\nimport BreedAutocomplete from '../BreedAutocomplete/BreedAutocomplete'\nimport BreedCard, {\n NonPopularBreed,\n PopularBreed\n} from '../BreedCard/BreedCard'\n\ntype Props = {\n selectedBreed: PopularBreed | NonPopularBreed | null\n isPreWizardGuest: boolean\n variant: BreedSelectorVariant\n namespace: string\n onClickCTA: () => void\n events: {\n onBreedSelection: (breed: Breed) => void\n onListOpen: () => void\n onFocus: () => void\n onInputEmpty: () => void\n }\n}\n\nconst BreedQuestionnaire = ({\n onClickCTA,\n events,\n namespace,\n variant = BreedSelectorVariant.Generic,\n selectedBreed,\n isPreWizardGuest\n}: Props): JSX.Element => {\n const { t } = useTranslation(namespace)\n return (\n <div className=\"breed-selector--homepage\">\n <div className=\"breed-selector--homepage__paw-container\">\n {times(4).map((i) => (\n <img\n className={`breed-selector--homepage__paw-container__paw breed-selector--homepage__paw-container__paw--${\n i + 1\n }`}\n key={i}\n src={Paw}\n alt={t(`breed_hero_section.paw_alt`)}\n />\n ))}\n </div>\n <p className=\"text-regular-20 breed-selector--homepage__subtitle\">\n {t(`breed_hero_section.text_homepage`)}\n </p>\n <div className=\"breed-selector--homepage__autocomplete-wrapper\">\n <BreedAutocomplete\n variant={variant}\n loadingPlaceholder={t(`breed_hero_section.field_placeholder_loading`)}\n placeholder={t('breed_hero_section.field_placeholder')}\n embeddedCTA\n onClickCTA={onClickCTA}\n events={{\n onBreedSelection: events.onBreedSelection,\n onListOpen: events.onListOpen,\n onFocus: events.onFocus,\n onInputEmpty: () => null\n }}\n />\n </div>\n {selectedBreed !== null && (\n <div className=\"breed-selector__breed-card-section breed-selector__breed-card-section--homepage\">\n <div className=\"breed-selector__breed-card-wrapper breed-selector__breed-card-wrapper--homepage\">\n <BreedCard\n selectedBreed={selectedBreed}\n isPreWizardGuest={isPreWizardGuest}\n namespace={namespace}\n variant={variant}\n />\n </div>\n </div>\n )}\n </div>\n )\n}\n\nexport default BreedQuestionnaire\n","// @noflow\nimport { TOptions } from 'i18next'\nimport React, { useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport Arrow from 'assets/images/icons/arrows/arrow--white.svg'\n\ntype ExpandableIconButtonProps = {\n namespace?: string\n text: string | Array<string>\n variables?: TOptions\n disabled?: boolean\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void\n disabledOnClick?: (e: React.MouseEvent<HTMLButtonElement>) => void\n translate?: boolean\n toggleIconButton: boolean\n onFocus?: () => void\n}\n\nconst ExpandableIconButton = ({\n namespace,\n text,\n variables,\n disabled,\n onClick,\n disabledOnClick,\n translate = true,\n toggleIconButton = false,\n onFocus\n}: ExpandableIconButtonProps): JSX.Element => {\n const { t } = useTranslation(namespace)\n\n const handleOnClick = useCallback(\n (e: React.MouseEvent<HTMLButtonElement>): void => {\n if (disabled) {\n if (disabledOnClick) disabledOnClick(e)\n } else {\n onClick && onClick(e)\n }\n },\n [disabled, disabledOnClick, onClick]\n )\n\n return (\n <button\n className={`expandable-icon-button__button ${\n toggleIconButton\n ? 'expandable-icon-button__button__short'\n : 'expandable-icon-button__button__long'\n }`}\n disabled={disabled}\n onClick={handleOnClick}\n type=\"button\"\n aria-label={translate ? t(text) : (text as string)}\n onFocus={onFocus}\n >\n <div className=\"button-icon\">{<img src={Arrow} alt=\"\" />}</div>\n <div className=\"button-text\">\n <span className=\"text-mono-18\">{t(text, variables)}</span>\n </div>\n </button>\n )\n}\n\nexport default ExpandableIconButton\n","type WizardCtaLink = {\n url: string\n text: string\n}\n\nenum UserType {\n PreWizardGuest = 'PreWizardGuest',\n Guest = 'Guest',\n User = 'User'\n}\n\nconst wizardCtaLink = (currentUserType: UserType | string): WizardCtaLink => {\n switch (currentUserType) {\n case UserType.PreWizardGuest: {\n return {\n url: '/wizard/new',\n text: 'cta_build'\n }\n }\n case UserType.Guest: {\n return {\n url: '/plans/recipes',\n text: 'cta_plan'\n }\n }\n case UserType.User: {\n return {\n url: '/dashboard',\n text: 'cta_account'\n }\n }\n default: {\n return {\n url: '/wizard/new',\n text: 'cta_build'\n }\n }\n }\n}\n\nexport { wizardCtaLink, WizardCtaLink, UserType }\n","// @noflow\nimport React, { useCallback } from 'react'\n\nimport { UserType, wizardCtaLink } from '@/utils/wizardCtaLink'\n\nimport { Button } from '@/components/shared/elements/Button/Button'\n\ntype Props = {\n namespace: string\n text: string\n currentUserType?: UserType\n screenIdentifier: string\n}\n\nconst CTA = ({\n currentUserType,\n screenIdentifier,\n namespace,\n text\n}: Props): JSX.Element => {\n const handleCTAClick = useCallback(() => {\n window.location.href = currentUserType\n ? wizardCtaLink(currentUserType).url\n : '/wizard/new'\n }, [currentUserType])\n\n return (\n <Button\n typography={{\n text,\n namespace\n }}\n onClick={handleCTAClick}\n identifier=\"rough_cost_calculator_cta\"\n screenIdentifier={screenIdentifier}\n fullWidth\n />\n )\n}\n\nexport default CTA\n","import { __extends } from \"tslib\";\nimport \"../utilities/globals/index.js\";\nimport { isNonEmptyArray } from \"../utilities/index.js\";\nexport function isApolloError(err) {\n return err.hasOwnProperty('graphQLErrors');\n}\n\nvar generateErrorMessage = function generateErrorMessage(err) {\n var message = '';\n\n if (isNonEmptyArray(err.graphQLErrors) || isNonEmptyArray(err.clientErrors)) {\n var errors = (err.graphQLErrors || []).concat(err.clientErrors || []);\n errors.forEach(function (error) {\n var errorMessage = error ? error.message : 'Error message not found.';\n message += \"\".concat(errorMessage, \"\\n\");\n });\n }\n\n if (err.networkError) {\n message += \"\".concat(err.networkError.message, \"\\n\");\n }\n\n message = message.replace(/\\n$/, '');\n return message;\n};\n\nvar ApolloError = function (_super) {\n __extends(ApolloError, _super);\n\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors,\n clientErrors = _a.clientErrors,\n networkError = _a.networkError,\n errorMessage = _a.errorMessage,\n extraInfo = _a.extraInfo;\n\n var _this = _super.call(this, errorMessage) || this;\n\n _this.graphQLErrors = graphQLErrors || [];\n _this.clientErrors = clientErrors || [];\n _this.networkError = networkError || null;\n _this.message = errorMessage || generateErrorMessage(_this);\n _this.extraInfo = extraInfo;\n _this.__proto__ = ApolloError.prototype;\n return _this;\n }\n\n return ApolloError;\n}(Error);\n\nexport { ApolloError };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\"; // Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\n\nexport var keys = ['xs', 'sm', 'md', 'lg', 'xl']; // Keep in mind that @media is inclusive by the CSS specification.\n\nexport default function createBreakpoints(breakpoints) {\n var _breakpoints$values = breakpoints.values,\n values = _breakpoints$values === void 0 ? {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n } : _breakpoints$values,\n _breakpoints$unit = breakpoints.unit,\n unit = _breakpoints$unit === void 0 ? 'px' : _breakpoints$unit,\n _breakpoints$step = breakpoints.step,\n step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,\n other = _objectWithoutProperties(breakpoints, [\"values\", \"unit\", \"step\"]);\n\n function up(key) {\n var value = typeof values[key] === 'number' ? values[key] : key;\n return \"@media (min-width:\".concat(value).concat(unit, \")\");\n }\n\n function down(key) {\n var endIndex = keys.indexOf(key) + 1;\n var upperbound = values[keys[endIndex]];\n\n if (endIndex === keys.length) {\n // xl down applies to all sizes\n return up('xs');\n }\n\n var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key;\n return \"@media (max-width:\".concat(value - step / 100).concat(unit, \")\");\n }\n\n function between(start, end) {\n var endIndex = keys.indexOf(end);\n\n if (endIndex === keys.length - 1) {\n return up(start);\n }\n\n return \"@media (min-width:\".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, \") and \") + \"(max-width:\".concat((endIndex !== -1 && typeof values[keys[endIndex + 1]] === 'number' ? values[keys[endIndex + 1]] : end) - step / 100).concat(unit, \")\");\n }\n\n function only(key) {\n return between(key, key);\n }\n\n var warnedOnce = false;\n\n function width(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.warn([\"Material-UI: The `theme.breakpoints.width` utility is deprecated because it's redundant.\", 'Use the `theme.breakpoints.values` instead.'].join('\\n'));\n }\n }\n\n return values[key];\n }\n\n return _extends({\n keys: keys,\n values: values,\n up: up,\n down: down,\n between: between,\n only: only,\n width: width\n }, other);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, spacing, mixins) {\n var _toolbar;\n\n return _extends({\n gutters: function gutters() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n console.warn(['Material-UI: theme.mixins.gutters() is deprecated.', 'You can use the source of the mixin directly:', \"\\n paddingLeft: theme.spacing(2),\\n paddingRight: theme.spacing(2),\\n [theme.breakpoints.up('sm')]: {\\n paddingLeft: theme.spacing(3),\\n paddingRight: theme.spacing(3),\\n },\\n \"].join('\\n'));\n return _extends({\n paddingLeft: spacing(2),\n paddingRight: spacing(2)\n }, styles, _defineProperty({}, breakpoints.up('sm'), _extends({\n paddingLeft: spacing(3),\n paddingRight: spacing(3)\n }, styles[breakpoints.up('sm')])));\n },\n toolbar: (_toolbar = {\n minHeight: 56\n }, _defineProperty(_toolbar, \"\".concat(breakpoints.up('xs'), \" and (orientation: landscape)\"), {\n minHeight: 48\n }), _defineProperty(_toolbar, breakpoints.up('sm'), {\n minHeight: 64\n }), _toolbar)\n }, mixins);\n}","var common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","var grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#d5d5d5',\n A200: '#aaaaaa',\n A400: '#303030',\n A700: '#616161'\n};\nexport default grey;","var indigo = {\n 50: '#e8eaf6',\n 100: '#c5cae9',\n 200: '#9fa8da',\n 300: '#7986cb',\n 400: '#5c6bc0',\n 500: '#3f51b5',\n 600: '#3949ab',\n 700: '#303f9f',\n 800: '#283593',\n 900: '#1a237e',\n A100: '#8c9eff',\n A200: '#536dfe',\n A400: '#3d5afe',\n A700: '#304ffe'\n};\nexport default indigo;","var pink = {\n 50: '#fce4ec',\n 100: '#f8bbd0',\n 200: '#f48fb1',\n 300: '#f06292',\n 400: '#ec407a',\n 500: '#e91e63',\n 600: '#d81b60',\n 700: '#c2185b',\n 800: '#ad1457',\n 900: '#880e4f',\n A100: '#ff80ab',\n A200: '#ff4081',\n A400: '#f50057',\n A700: '#c51162'\n};\nexport default pink;","var red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","var orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","var blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","var green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\n\nfunction clamp(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(\"Material-UI: The value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(max, \"].\"));\n }\n }\n\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nexport function hexToRgb(color) {\n color = color.substr(1);\n var re = new RegExp(\".{1,\".concat(color.length >= 6 ? 2 : 1, \"}\"), 'g');\n var colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(function (n) {\n return n + n;\n });\n }\n\n return colors ? \"rgb\".concat(colors.length === 4 ? 'a' : '', \"(\").concat(colors.map(function (n, index) {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', '), \")\") : '';\n}\n\nfunction intToHex(int) {\n var hex = int.toString(16);\n return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\n\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n var _decomposeColor = decomposeColor(color),\n values = _decomposeColor.values;\n\n return \"#\".concat(values.map(function (n) {\n return intToHex(n);\n }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n var _color = color,\n values = _color.values;\n var h = values[0];\n var s = values[1] / 100;\n var l = values[2] / 100;\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n var type = 'rgb';\n var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n\n return recomposeColor({\n type: type,\n values: rgb\n });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n\n var marker = color.indexOf('(');\n var type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: Unsupported `\".concat(color, \"` color.\\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().\") : _formatMuiErrorMessage(3, color));\n }\n\n var values = color.substring(marker + 1, color.length - 1).split(',');\n values = values.map(function (value) {\n return parseFloat(value);\n });\n return {\n type: type,\n values: values\n };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\nexport function recomposeColor(color) {\n var type = color.type;\n var values = color.values;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map(function (n, i) {\n return i < 3 ? parseInt(n, 10) : n;\n });\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = \"\".concat(values[1], \"%\");\n values[2] = \"\".concat(values[2], \"%\");\n }\n\n return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\nexport function getContrastRatio(foreground, background) {\n var lumA = getLuminance(foreground);\n var lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\nexport function getLuminance(color) {\n color = decomposeColor(color);\n var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(function (val) {\n val /= 255; // normalized\n\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function emphasize(color) {\n var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nvar warnedOnce = false;\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0 -1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n *\n * @deprecated\n * Use `import { alpha } from '@material-ui/core/styles'` instead.\n */\n\nexport function fade(color, value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: The `fade` color utility was renamed to `alpha` to better describe its functionality.', '', \"You should use `import { alpha } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return alpha(color, value);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha value is overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0-1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n\n color.values[3] = value;\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\nimport { deepmerge } from '@material-ui/utils';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport indigo from '../colors/indigo';\nimport pink from '../colors/pink';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport green from '../colors/green';\nimport { darken, getContrastRatio, lighten } from './colorManipulator';\nexport var light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.54)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)',\n // Text hints.\n hint: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: grey[50]\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport var dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n hint: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: grey[800],\n default: '#303030'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n var tonalOffsetLight = tonalOffset.light || tonalOffset;\n var tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\n\nexport default function createPalette(palette) {\n var _palette$primary = palette.primary,\n primary = _palette$primary === void 0 ? {\n light: indigo[300],\n main: indigo[500],\n dark: indigo[700]\n } : _palette$primary,\n _palette$secondary = palette.secondary,\n secondary = _palette$secondary === void 0 ? {\n light: pink.A200,\n main: pink.A400,\n dark: pink.A700\n } : _palette$secondary,\n _palette$error = palette.error,\n error = _palette$error === void 0 ? {\n light: red[300],\n main: red[500],\n dark: red[700]\n } : _palette$error,\n _palette$warning = palette.warning,\n warning = _palette$warning === void 0 ? {\n light: orange[300],\n main: orange[500],\n dark: orange[700]\n } : _palette$warning,\n _palette$info = palette.info,\n info = _palette$info === void 0 ? {\n light: blue[300],\n main: blue[500],\n dark: blue[700]\n } : _palette$info,\n _palette$success = palette.success,\n success = _palette$success === void 0 ? {\n light: green[300],\n main: green[500],\n dark: green[700]\n } : _palette$success,\n _palette$type = palette.type,\n type = _palette$type === void 0 ? 'light' : _palette$type,\n _palette$contrastThre = palette.contrastThreshold,\n contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,\n _palette$tonalOffset = palette.tonalOffset,\n tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,\n other = _objectWithoutProperties(palette, [\"primary\", \"secondary\", \"error\", \"warning\", \"info\", \"success\", \"type\", \"contrastThreshold\", \"tonalOffset\"]); // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n\n\n function getContrastText(background) {\n var contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n if (process.env.NODE_ENV !== 'production') {\n var contrast = getContrastRatio(background, contrastText);\n\n if (contrast < 3) {\n console.error([\"Material-UI: The contrast ratio of \".concat(contrast, \":1 for \").concat(contrastText, \" on \").concat(background), 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n\n return contrastText;\n }\n\n var augmentColor = function augmentColor(color) {\n var mainShade = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n var lightShade = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var darkShade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 700;\n color = _extends({}, color);\n\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n\n if (!color.main) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\nThe color object needs to have a `main` property or a `\".concat(mainShade, \"` property.\") : _formatMuiErrorMessage(4, mainShade));\n }\n\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\n`color.main` should be a string, but `\".concat(JSON.stringify(color.main), \"` was provided instead.\\n\\nDid you intend to use one of the following approaches?\\n\\nimport {\\xA0green } from \\\"@material-ui/core/colors\\\";\\n\\nconst theme1 = createTheme({ palette: {\\n primary: green,\\n} });\\n\\nconst theme2 = createTheme({ palette: {\\n primary: { main: green[500] },\\n} });\") : _formatMuiErrorMessage(5, JSON.stringify(color.main)));\n }\n\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n\n return color;\n };\n\n var types = {\n dark: dark,\n light: light\n };\n\n if (process.env.NODE_ENV !== 'production') {\n if (!types[type]) {\n console.error(\"Material-UI: The palette type `\".concat(type, \"` is not supported.\"));\n }\n }\n\n var paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: common,\n // The palette type, can be light or dark.\n type: type,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor(primary),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor(secondary, 'A400', 'A200', 'A700'),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor(error),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor(warning),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor(info),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor(success),\n // The grey colors.\n grey: grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold: contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText: getContrastText,\n // Generate a rich color object.\n augmentColor: augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset: tonalOffset\n }, types[type]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nvar warnedOnce = false;\n\nfunction roundWithDeprecationWarning(value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n console.warn(['Material-UI: The `theme.typography.round` helper is deprecated.', 'Head to https://mui.com/r/migration-v4/#theme for a migration path.'].join('\\n'));\n warnedOnce = true;\n }\n }\n\n return round(value);\n}\n\nvar caseAllCaps = {\n textTransform: 'uppercase'\n};\nvar defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nexport default function createTypography(palette, typography) {\n var _ref = typeof typography === 'function' ? typography(palette) : typography,\n _ref$fontFamily = _ref.fontFamily,\n fontFamily = _ref$fontFamily === void 0 ? defaultFontFamily : _ref$fontFamily,\n _ref$fontSize = _ref.fontSize,\n fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,\n _ref$fontWeightLight = _ref.fontWeightLight,\n fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,\n _ref$fontWeightRegula = _ref.fontWeightRegular,\n fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,\n _ref$fontWeightMedium = _ref.fontWeightMedium,\n fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,\n _ref$fontWeightBold = _ref.fontWeightBold,\n fontWeightBold = _ref$fontWeightBold === void 0 ? 700 : _ref$fontWeightBold,\n _ref$htmlFontSize = _ref.htmlFontSize,\n htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,\n allVariants = _ref.allVariants,\n pxToRem2 = _ref.pxToRem,\n other = _objectWithoutProperties(_ref, [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('Material-UI: `fontSize` is required to be a number.');\n }\n\n if (typeof htmlFontSize !== 'number') {\n console.error('Material-UI: `htmlFontSize` is required to be a number.');\n }\n }\n\n var coef = fontSize / 14;\n\n var pxToRem = pxToRem2 || function (size) {\n return \"\".concat(size / htmlFontSize * coef, \"rem\");\n };\n\n var buildVariant = function buildVariant(fontWeight, size, lineHeight, letterSpacing, casing) {\n return _extends({\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight: lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: \"\".concat(round(letterSpacing / size), \"em\")\n } : {}, casing, allVariants);\n };\n\n var variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return deepmerge(_extends({\n htmlFontSize: htmlFontSize,\n pxToRem: pxToRem,\n round: roundWithDeprecationWarning,\n // TODO v5: remove\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeightLight: fontWeightLight,\n fontWeightRegular: fontWeightRegular,\n fontWeightMedium: fontWeightMedium,\n fontWeightBold: fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n\n });\n}","var shadowKeyUmbraOpacity = 0.2;\nvar shadowKeyPenumbraOpacity = 0.14;\nvar shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow() {\n return [\"\".concat(arguments.length <= 0 ? undefined : arguments[0], \"px \").concat(arguments.length <= 1 ? undefined : arguments[1], \"px \").concat(arguments.length <= 2 ? undefined : arguments[2], \"px \").concat(arguments.length <= 3 ? undefined : arguments[3], \"px rgba(0,0,0,\").concat(shadowKeyUmbraOpacity, \")\"), \"\".concat(arguments.length <= 4 ? undefined : arguments[4], \"px \").concat(arguments.length <= 5 ? undefined : arguments[5], \"px \").concat(arguments.length <= 6 ? undefined : arguments[6], \"px \").concat(arguments.length <= 7 ? undefined : arguments[7], \"px rgba(0,0,0,\").concat(shadowKeyPenumbraOpacity, \")\"), \"\".concat(arguments.length <= 8 ? undefined : arguments[8], \"px \").concat(arguments.length <= 9 ? undefined : arguments[9], \"px \").concat(arguments.length <= 10 ? undefined : arguments[10], \"px \").concat(arguments.length <= 11 ? undefined : arguments[11], \"px rgba(0,0,0,\").concat(shadowAmbientShadowOpacity, \")\")].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nvar shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","var shape = {\n borderRadius: 4\n};\nexport default shape;","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import { deepmerge } from '@material-ui/utils';\n\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n\n });\n}\n\nexport default merge;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport PropTypes from 'prop-types';\nimport merge from './merge'; // The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\n\nvar values = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n};\nvar defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: function up(key) {\n return \"@media (min-width:\".concat(values[key], \"px)\");\n }\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n if (process.env.NODE_ENV !== 'production') {\n if (!props.theme) {\n console.error('Material-UI: You are calling a style function without a theme value.');\n }\n }\n\n if (Array.isArray(propValue)) {\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n return propValue.reduce(function (acc, item, index) {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n\n if (_typeof(propValue) === 'object') {\n var _themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n\n return Object.keys(propValue).reduce(function (acc, breakpoint) {\n acc[_themeBreakpoints.up(breakpoint)] = styleFromPropValue(propValue[breakpoint]);\n return acc;\n }, {});\n }\n\n var output = styleFromPropValue(propValue);\n return output;\n}\n\nfunction breakpoints(styleFunction) {\n var newStyleFunction = function newStyleFunction(props) {\n var base = styleFunction(props);\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n var extended = themeBreakpoints.keys.reduce(function (acc, key) {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme: props.theme\n }, props[key]));\n }\n\n return acc;\n }, null);\n return merge(base, extended);\n };\n\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl'].concat(_toConsumableArray(styleFunction.filterProps));\n return newStyleFunction;\n}\n\nexport default breakpoints;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport merge from './merge';\nimport memoize from './memoize';\nvar properties = {\n m: 'margin',\n p: 'padding'\n};\nvar directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nvar aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n}; // memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\n\nvar getCssProperties = memoize(function (prop) {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n\n var _prop$split = prop.split(''),\n _prop$split2 = _slicedToArray(_prop$split, 2),\n a = _prop$split2[0],\n b = _prop$split2[1];\n\n var property = properties[a];\n var direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(function (dir) {\n return property + dir;\n }) : [property + direction];\n});\nvar spacingKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY'];\nexport function createUnarySpacing(theme) {\n var themeSpacing = theme.spacing || 8;\n\n if (typeof themeSpacing === 'number') {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(\"Material-UI: Expected spacing argument to be a number, got \".concat(abs, \".\"));\n }\n }\n\n return themeSpacing * abs;\n };\n }\n\n if (Array.isArray(themeSpacing)) {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (abs > themeSpacing.length - 1) {\n console.error([\"Material-UI: The value provided (\".concat(abs, \") overflows.\"), \"The supported values are: \".concat(JSON.stringify(themeSpacing), \".\"), \"\".concat(abs, \" > \").concat(themeSpacing.length - 1, \", you need to add the missing values.\")].join('\\n'));\n }\n }\n\n return themeSpacing[abs];\n };\n }\n\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `theme.spacing` value (\".concat(themeSpacing, \") is invalid.\"), 'It should be a number, an array or a function.'].join('\\n'));\n }\n\n return function () {\n return undefined;\n };\n}\n\nfunction getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n\n var abs = Math.abs(propValue);\n var transformed = transformer(abs);\n\n if (propValue >= 0) {\n return transformed;\n }\n\n if (typeof transformed === 'number') {\n return -transformed;\n }\n\n return \"-\".concat(transformed);\n}\n\nfunction getStyleFromPropValue(cssProperties, transformer) {\n return function (propValue) {\n return cssProperties.reduce(function (acc, cssProperty) {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n };\n}\n\nfunction spacing(props) {\n var theme = props.theme;\n var transformer = createUnarySpacing(theme);\n return Object.keys(props).map(function (prop) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (spacingKeys.indexOf(prop) === -1) {\n return null;\n }\n\n var cssProperties = getCssProperties(prop);\n var styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n var propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n }).reduce(merge, {});\n}\n\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce(function (obj, key) {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n\n return cache[arg];\n };\n}","import { createUnarySpacing } from '@material-ui/system';\nvar warnOnce;\nexport default function createSpacing() {\n var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8; // Already transformed.\n\n if (spacingInput.mui) {\n return spacingInput;\n } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid applied, which aligns both spacing and the overall layout.\n // Smaller components, such as icons and type, can align to a 4dp grid.\n // https://material.io/design/layout/understanding-layout.html#usage\n\n\n var transform = createUnarySpacing({\n spacing: spacingInput\n });\n\n var spacing = function spacing() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(args.length <= 4)) {\n console.error(\"Material-UI: Too many arguments provided, expected between 0 and 4, got \".concat(args.length));\n }\n }\n\n if (args.length === 0) {\n return transform(1);\n }\n\n if (args.length === 1) {\n return transform(args[0]);\n }\n\n return args.map(function (argument) {\n if (typeof argument === 'string') {\n return argument;\n }\n\n var output = transform(argument);\n return typeof output === 'number' ? \"\".concat(output, \"px\") : output;\n }).join(' ');\n }; // Backward compatibility, to remove in v5.\n\n\n Object.defineProperty(spacing, 'unit', {\n get: function get() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnOnce || process.env.NODE_ENV === 'test') {\n console.error(['Material-UI: theme.spacing.unit usage has been deprecated.', 'It will be removed in v5.', 'You can replace `theme.spacing.unit * y` with `theme.spacing(y)`.', '', 'You can use the `https://github.com/mui-org/material-ui/tree/master/packages/material-ui-codemod/README.md#theme-spacing-api` migration helper to make the process smoother.'].join('\\n'));\n }\n\n warnOnce = true;\n }\n\n return spacingInput;\n }\n });\n spacing.mui = true;\n return spacing;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\"; // Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\n\nexport var easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexport var duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\n\nfunction formatMs(milliseconds) {\n return \"\".concat(Math.round(milliseconds), \"ms\");\n}\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\n\nexport default {\n easing: easing,\n duration: duration,\n create: function create() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _options$duration = options.duration,\n durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n _options$easing = options.easing,\n easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n _options$delay = options.delay,\n delay = _options$delay === void 0 ? 0 : _options$delay,\n other = _objectWithoutProperties(options, [\"duration\", \"easing\", \"delay\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n\n var isNumber = function isNumber(value) {\n return !isNaN(parseFloat(value));\n };\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('Material-UI: Argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(\"Material-UI: Argument \\\"duration\\\" must be a number or a string but found \".concat(durationOption, \".\"));\n }\n\n if (!isString(easingOption)) {\n console.error('Material-UI: Argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('Material-UI: Argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(\"Material-UI: Unrecognized argument(s) [\".concat(Object.keys(other).join(','), \"].\"));\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n return \"\".concat(animatedProp, \" \").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), \" \").concat(easingOption, \" \").concat(typeof delay === 'string' ? delay : formatMs(delay));\n }).join(',');\n },\n getAutoHeightDuration: function getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n var constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);\n }\n};","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nvar zIndex = {\n mobileStepper: 1000,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\nimport createBreakpoints from './createBreakpoints';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport transitions from './transitions';\nimport zIndex from './zIndex';\n\nfunction createTheme() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _options$breakpoints = options.breakpoints,\n breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,\n _options$mixins = options.mixins,\n mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,\n _options$palette = options.palette,\n paletteInput = _options$palette === void 0 ? {} : _options$palette,\n spacingInput = options.spacing,\n _options$typography = options.typography,\n typographyInput = _options$typography === void 0 ? {} : _options$typography,\n other = _objectWithoutProperties(options, [\"breakpoints\", \"mixins\", \"palette\", \"spacing\", \"typography\"]);\n\n var palette = createPalette(paletteInput);\n var breakpoints = createBreakpoints(breakpointsInput);\n var spacing = createSpacing(spacingInput);\n var muiTheme = deepmerge({\n breakpoints: breakpoints,\n direction: 'ltr',\n mixins: createMixins(breakpoints, spacing, mixinsInput),\n overrides: {},\n // Inject custom styles\n palette: palette,\n props: {},\n // Provide default props\n shadows: shadows,\n typography: createTypography(palette, typographyInput),\n spacing: spacing,\n shape: shape,\n transitions: transitions,\n zIndex: zIndex\n }, other);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n muiTheme = args.reduce(function (acc, argument) {\n return deepmerge(acc, argument);\n }, muiTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n var pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected'];\n\n var traverse = function traverse(node, parentKey) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (key in node) {\n var child = node[key];\n\n if (depth === 1) {\n if (key.indexOf('Mui') === 0 && child) {\n traverse(child, key, depth + 1);\n }\n } else if (pseudoClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `\".concat(parentKey, \"` component increases \") + \"the CSS specificity of the `\".concat(key, \"` internal state.\"), 'You can not override it like this: ', JSON.stringify(node, null, 2), '', 'Instead, you need to use the $ruleName syntax:', JSON.stringify({\n root: _defineProperty({}, \"&$\".concat(key), child)\n }, null, 2), '', 'https://mui.com/r/pseudo-classes-guide'].join('\\n'));\n } // Remove the style to prevent global conflicts.\n\n\n node[key] = {};\n }\n }\n };\n\n traverse(muiTheme.overrides);\n }\n\n return muiTheme;\n}\n\nvar warnedOnce = false;\nexport function createMuiTheme() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return createTheme.apply(void 0, arguments);\n}\nexport default createTheme;","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n/** Used to compose bitmasks for cloning. */\n\n\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n/** `Object#toString` result references. */\n\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n/** Used to identify `toStringTag` values supported by `_.clone`. */\n\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n\n if (result !== undefined) {\n return result;\n }\n\n if (!isObject(value)) {\n return value;\n }\n\n var isArr = isArray(value);\n\n if (isArr) {\n result = initCloneArray(value);\n\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n\n if (tag == objectTag || tag == argsTag || isFunc && !object) {\n result = isFlat || isFunc ? {} : initCloneObject(value);\n\n if (!isDeep) {\n return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n\n result = initCloneByTag(value, tag, isDeep);\n }\n } // Check for circular references and return its corresponding clone.\n\n\n stack || (stack = new Stack());\n var stacked = stack.get(value);\n\n if (stacked) {\n return stacked;\n }\n\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function (subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function (subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function (subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n } // Recursively populate clone (susceptible to call stack limits).\n\n\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n\n\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n this.__data__ = new MapCache();\n\n while (++index < length) {\n this.add(values[index]);\n }\n} // Add methods to `SetCache`.\n\n\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\nmodule.exports = SetCache;","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;","import { invariant } from \"../../utilities/globals/index.js\";\nimport * as React from 'react';\nimport { canUseLayoutEffect } from \"../../utilities/index.js\";\nvar didWarnUncachedGetSnapshot = false;\nvar uSESKey = \"useSyncExternalStore\";\nvar realHook = React[uSESKey];\nexport var useSyncExternalStore = realHook || function (subscribe, getSnapshot, getServerSnapshot) {\n var value = getSnapshot();\n\n if (__DEV__ && !didWarnUncachedGetSnapshot && value !== getSnapshot()) {\n didWarnUncachedGetSnapshot = true;\n __DEV__ && invariant.error('The result of getSnapshot should be cached to avoid an infinite loop');\n }\n\n var _a = React.useState({\n inst: {\n value: value,\n getSnapshot: getSnapshot\n }\n }),\n inst = _a[0].inst,\n forceUpdate = _a[1];\n\n if (canUseLayoutEffect) {\n React.useLayoutEffect(function () {\n Object.assign(inst, {\n value: value,\n getSnapshot: getSnapshot\n });\n\n if (checkIfSnapshotChanged(inst)) {\n forceUpdate({\n inst: inst\n });\n }\n }, [subscribe, value, getSnapshot]);\n } else {\n Object.assign(inst, {\n value: value,\n getSnapshot: getSnapshot\n });\n }\n\n React.useEffect(function () {\n if (checkIfSnapshotChanged(inst)) {\n forceUpdate({\n inst: inst\n });\n }\n\n return subscribe(function handleStoreChange() {\n if (checkIfSnapshotChanged(inst)) {\n forceUpdate({\n inst: inst\n });\n }\n });\n }, [subscribe]);\n return value;\n};\n\nfunction checkIfSnapshotChanged(_a) {\n var value = _a.value,\n getSnapshot = _a.getSnapshot;\n\n try {\n return value !== getSnapshot();\n } catch (_b) {\n return true;\n }\n}","import { __assign, __rest } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { useCallback, useContext, useMemo, useRef, useState } from 'react';\nimport { useSyncExternalStore } from \"./useSyncExternalStore.js\";\nimport { equal } from '@wry/equality';\nimport { mergeOptions } from \"../../core/index.js\";\nimport { getApolloContext } from \"../context/index.js\";\nimport { ApolloError } from \"../../errors/index.js\";\nimport { NetworkStatus } from \"../../core/index.js\";\nimport { DocumentType, verifyDocumentType } from \"../parser/index.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nimport { canUseWeakMap, canUseWeakSet, compact, isNonEmptyArray, maybeDeepFreeze } from \"../../utilities/index.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function useQuery(query, options) {\n if (options === void 0) {\n options = Object.create(null);\n }\n\n return useInternalState(useApolloClient(options.client), query).useQuery(options);\n}\nexport function useInternalState(client, query) {\n var stateRef = useRef();\n\n if (!stateRef.current || client !== stateRef.current.client || query !== stateRef.current.query) {\n stateRef.current = new InternalState(client, query, stateRef.current);\n }\n\n var state = stateRef.current;\n\n var _a = useState(0),\n _tick = _a[0],\n setTick = _a[1];\n\n state.forceUpdate = function () {\n setTick(function (tick) {\n return tick + 1;\n });\n };\n\n return state;\n}\n\nvar InternalState = function () {\n function InternalState(client, query, previous) {\n this.client = client;\n this.query = query;\n this.asyncResolveFns = new Set();\n this.optionsToIgnoreOnce = new (canUseWeakSet ? WeakSet : Set)();\n this.ssrDisabledResult = maybeDeepFreeze({\n loading: true,\n data: void 0,\n error: void 0,\n networkStatus: NetworkStatus.loading\n });\n this.skipStandbyResult = maybeDeepFreeze({\n loading: false,\n data: void 0,\n error: void 0,\n networkStatus: NetworkStatus.ready\n });\n this.toQueryResultCache = new (canUseWeakMap ? WeakMap : Map)();\n verifyDocumentType(query, DocumentType.Query);\n var previousResult = previous && previous.result;\n var previousData = previousResult && previousResult.data;\n\n if (previousData) {\n this.previousData = previousData;\n }\n }\n\n InternalState.prototype.forceUpdate = function () {\n __DEV__ && invariant.warn(\"Calling default no-op implementation of InternalState#forceUpdate\");\n };\n\n InternalState.prototype.asyncUpdate = function () {\n var _this = this;\n\n return new Promise(function (resolve) {\n _this.asyncResolveFns.add(resolve);\n\n _this.optionsToIgnoreOnce.add(_this.watchQueryOptions);\n\n _this.forceUpdate();\n });\n };\n\n InternalState.prototype.useQuery = function (options) {\n var _this = this;\n\n this.renderPromises = useContext(getApolloContext()).renderPromises;\n this.useOptions(options);\n var obsQuery = this.useObservableQuery();\n var result = useSyncExternalStore(useCallback(function () {\n if (_this.renderPromises) {\n return function () {};\n }\n\n var onNext = function onNext() {\n var previousResult = _this.result;\n var result = obsQuery.getCurrentResult();\n\n if (previousResult && previousResult.loading === result.loading && previousResult.networkStatus === result.networkStatus && equal(previousResult.data, result.data)) {\n return;\n }\n\n _this.setResult(result);\n };\n\n var onError = function onError(error) {\n var last = obsQuery[\"last\"];\n subscription.unsubscribe();\n\n try {\n obsQuery.resetLastResults();\n subscription = obsQuery.subscribe(onNext, onError);\n } finally {\n obsQuery[\"last\"] = last;\n }\n\n if (!hasOwnProperty.call(error, 'graphQLErrors')) {\n throw error;\n }\n\n var previousResult = _this.result;\n\n if (!previousResult || previousResult && previousResult.loading || !equal(error, previousResult.error)) {\n _this.setResult({\n data: previousResult && previousResult.data,\n error: error,\n loading: false,\n networkStatus: NetworkStatus.error\n });\n }\n };\n\n var subscription = obsQuery.subscribe(onNext, onError);\n return function () {\n return subscription.unsubscribe();\n };\n }, [obsQuery, this.renderPromises, this.client.disableNetworkFetches]), function () {\n return _this.getCurrentResult();\n }, function () {\n return _this.getCurrentResult();\n });\n this.unsafeHandlePartialRefetch(result);\n var queryResult = this.toQueryResult(result);\n\n if (!queryResult.loading && this.asyncResolveFns.size) {\n this.asyncResolveFns.forEach(function (resolve) {\n return resolve(queryResult);\n });\n this.asyncResolveFns.clear();\n }\n\n return queryResult;\n };\n\n InternalState.prototype.useOptions = function (options) {\n var _a;\n\n var watchQueryOptions = this.createWatchQueryOptions(this.queryHookOptions = options);\n var currentWatchQueryOptions = this.watchQueryOptions;\n\n if (this.optionsToIgnoreOnce.has(currentWatchQueryOptions) || !equal(watchQueryOptions, currentWatchQueryOptions)) {\n this.watchQueryOptions = watchQueryOptions;\n\n if (currentWatchQueryOptions && this.observable) {\n this.optionsToIgnoreOnce.delete(currentWatchQueryOptions);\n this.observable.reobserve(this.getObsQueryOptions());\n this.previousData = ((_a = this.result) === null || _a === void 0 ? void 0 : _a.data) || this.previousData;\n this.result = void 0;\n }\n }\n\n this.onCompleted = options.onCompleted || InternalState.prototype.onCompleted;\n this.onError = options.onError || InternalState.prototype.onError;\n\n if ((this.renderPromises || this.client.disableNetworkFetches) && this.queryHookOptions.ssr === false && !this.queryHookOptions.skip) {\n this.result = this.ssrDisabledResult;\n } else if (this.queryHookOptions.skip || this.watchQueryOptions.fetchPolicy === 'standby') {\n this.result = this.skipStandbyResult;\n } else if (this.result === this.ssrDisabledResult || this.result === this.skipStandbyResult) {\n this.result = void 0;\n }\n };\n\n InternalState.prototype.getObsQueryOptions = function () {\n var toMerge = [];\n var globalDefaults = this.client.defaultOptions.watchQuery;\n if (globalDefaults) toMerge.push(globalDefaults);\n\n if (this.queryHookOptions.defaultOptions) {\n toMerge.push(this.queryHookOptions.defaultOptions);\n }\n\n toMerge.push(compact(this.observable && this.observable.options, this.watchQueryOptions));\n return toMerge.reduce(mergeOptions);\n };\n\n InternalState.prototype.createWatchQueryOptions = function (_a) {\n var _b;\n\n if (_a === void 0) {\n _a = {};\n }\n\n var skip = _a.skip,\n ssr = _a.ssr,\n onCompleted = _a.onCompleted,\n onError = _a.onError,\n defaultOptions = _a.defaultOptions,\n otherOptions = __rest(_a, [\"skip\", \"ssr\", \"onCompleted\", \"onError\", \"defaultOptions\"]);\n\n var watchQueryOptions = Object.assign(otherOptions, {\n query: this.query\n });\n\n if (this.renderPromises && (watchQueryOptions.fetchPolicy === 'network-only' || watchQueryOptions.fetchPolicy === 'cache-and-network')) {\n watchQueryOptions.fetchPolicy = 'cache-first';\n }\n\n if (!watchQueryOptions.variables) {\n watchQueryOptions.variables = {};\n }\n\n if (skip) {\n var _c = watchQueryOptions.fetchPolicy,\n fetchPolicy = _c === void 0 ? this.getDefaultFetchPolicy() : _c,\n _d = watchQueryOptions.initialFetchPolicy,\n initialFetchPolicy = _d === void 0 ? fetchPolicy : _d;\n Object.assign(watchQueryOptions, {\n initialFetchPolicy: initialFetchPolicy,\n fetchPolicy: 'standby'\n });\n } else if (!watchQueryOptions.fetchPolicy) {\n watchQueryOptions.fetchPolicy = ((_b = this.observable) === null || _b === void 0 ? void 0 : _b.options.initialFetchPolicy) || this.getDefaultFetchPolicy();\n }\n\n return watchQueryOptions;\n };\n\n InternalState.prototype.getDefaultFetchPolicy = function () {\n var _a, _b;\n\n return ((_a = this.queryHookOptions.defaultOptions) === null || _a === void 0 ? void 0 : _a.fetchPolicy) || ((_b = this.client.defaultOptions.watchQuery) === null || _b === void 0 ? void 0 : _b.fetchPolicy) || \"cache-first\";\n };\n\n InternalState.prototype.onCompleted = function (data) {};\n\n InternalState.prototype.onError = function (error) {};\n\n InternalState.prototype.useObservableQuery = function () {\n var obsQuery = this.observable = this.renderPromises && this.renderPromises.getSSRObservable(this.watchQueryOptions) || this.observable || this.client.watchQuery(this.getObsQueryOptions());\n this.obsQueryFields = useMemo(function () {\n return {\n refetch: obsQuery.refetch.bind(obsQuery),\n reobserve: obsQuery.reobserve.bind(obsQuery),\n fetchMore: obsQuery.fetchMore.bind(obsQuery),\n updateQuery: obsQuery.updateQuery.bind(obsQuery),\n startPolling: obsQuery.startPolling.bind(obsQuery),\n stopPolling: obsQuery.stopPolling.bind(obsQuery),\n subscribeToMore: obsQuery.subscribeToMore.bind(obsQuery)\n };\n }, [obsQuery]);\n var ssrAllowed = !(this.queryHookOptions.ssr === false || this.queryHookOptions.skip);\n\n if (this.renderPromises && ssrAllowed) {\n this.renderPromises.registerSSRObservable(obsQuery);\n\n if (obsQuery.getCurrentResult().loading) {\n this.renderPromises.addObservableQueryPromise(obsQuery);\n }\n }\n\n return obsQuery;\n };\n\n InternalState.prototype.setResult = function (nextResult) {\n var previousResult = this.result;\n\n if (previousResult && previousResult.data) {\n this.previousData = previousResult.data;\n }\n\n this.result = nextResult;\n this.forceUpdate();\n this.handleErrorOrCompleted(nextResult);\n };\n\n InternalState.prototype.handleErrorOrCompleted = function (result) {\n var _this = this;\n\n if (!result.loading) {\n Promise.resolve().then(function () {\n if (result.error) {\n _this.onError(result.error);\n } else if (result.data) {\n _this.onCompleted(result.data);\n }\n }).catch(function (error) {\n __DEV__ && invariant.warn(error);\n });\n }\n };\n\n InternalState.prototype.getCurrentResult = function () {\n if (!this.result) {\n this.handleErrorOrCompleted(this.result = this.observable.getCurrentResult());\n }\n\n return this.result;\n };\n\n InternalState.prototype.toQueryResult = function (result) {\n var queryResult = this.toQueryResultCache.get(result);\n if (queryResult) return queryResult;\n\n var data = result.data,\n partial = result.partial,\n resultWithoutPartial = __rest(result, [\"data\", \"partial\"]);\n\n this.toQueryResultCache.set(result, queryResult = __assign(__assign(__assign({\n data: data\n }, resultWithoutPartial), this.obsQueryFields), {\n client: this.client,\n observable: this.observable,\n variables: this.observable.variables,\n called: !this.queryHookOptions.skip,\n previousData: this.previousData\n }));\n\n if (!queryResult.error && isNonEmptyArray(result.errors)) {\n queryResult.error = new ApolloError({\n graphQLErrors: result.errors\n });\n }\n\n return queryResult;\n };\n\n InternalState.prototype.unsafeHandlePartialRefetch = function (result) {\n if (result.partial && this.queryHookOptions.partialRefetch && !result.loading && (!result.data || Object.keys(result.data).length === 0) && this.observable.options.fetchPolicy !== 'cache-only') {\n Object.assign(result, {\n loading: true,\n networkStatus: NetworkStatus.refetch\n });\n this.observable.refetch();\n }\n };\n\n return InternalState;\n}();","/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n\n if (value) {\n result[resIndex++] = value;\n }\n }\n\n return result;\n}\n\nmodule.exports = compact;","export function maybe(thunk) {\n try {\n return thunk();\n } catch (_a) {}\n}","import InjectedMarkupText from './InjectedMarkupText'\n\nexport default InjectedMarkupText\n","export function isNonNullObject(obj) {\n return obj !== null && typeof obj === 'object';\n}","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n\n var result = [];\n\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n\n return result;\n}\n\nmodule.exports = baseKeys;","var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nvar htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\n\nvar unescapeHtmlEntity = function unescapeHtmlEntity(m) {\n return htmlEntities[m];\n};\n\nexport var unescape = function unescape(text) {\n return text.replace(matchHtmlEntity, unescapeHtmlEntity);\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nimport { createContext } from 'react';\nimport { unescape } from './unescape';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape: unescape\n};\nvar i18nInstance;\nexport var I18nContext = createContext();\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n\n\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;","var getNative = require('./_getNative'),\n root = require('./_root');\n/* Built-in method references that are verified to be native. */\n\n\nvar Set = getNative(root, 'Set');\nmodule.exports = Set;","var root = require('./_root');\n/** Built-in value references. */\n\n\nvar Uint8Array = root.Uint8Array;\nmodule.exports = Uint8Array;","var baseIndexOf = require('./_baseIndexOf');\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n\n\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n\n return false;\n}\n\nmodule.exports = arrayIncludesWith;","var createBaseFor = require('./_createBaseFor');\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n\n\nvar baseFor = createBaseFor();\nmodule.exports = baseFor;","// @noflow\n\nexport { default } from './Image'\n","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","module.exports = __webpack_public_path__ + \"media/paws/paw-yellow-alt-ec6fabb1.svg\";","module.exports = __webpack_public_path__ + \"media/arrows/arrow--white-88052e73.svg\";","'use strict';\n\nexports.__esModule = true;\nvar errorProps = ['description', 'fileName', 'lineNumber', 'endLineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var loc = node && node.loc,\n line = undefined,\n endLineNumber = undefined,\n column = undefined,\n endColumn = undefined;\n\n if (loc) {\n line = loc.start.line;\n endLineNumber = loc.end.line;\n column = loc.start.column;\n endColumn = loc.end.column;\n message += ' - ' + line + ':' + column;\n }\n\n var tmp = Error.prototype.constructor.call(this, message); // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n /* istanbul ignore else */\n\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, Exception);\n }\n\n try {\n if (loc) {\n this.lineNumber = line;\n this.endLineNumber = endLineNumber; // Work around issue under safari where we can't directly set the column value\n\n /* istanbul ignore next */\n\n if (Object.defineProperty) {\n Object.defineProperty(this, 'column', {\n value: column,\n enumerable: true\n });\n Object.defineProperty(this, 'endColumn', {\n value: endColumn,\n enumerable: true\n });\n } else {\n this.column = column;\n this.endColumn = endColumn;\n }\n }\n } catch (nop) {\n /* Ignore if the browser is very particular */\n }\n}\n\nException.prototype = new Error();\nexports['default'] = Exception;\nmodule.exports = exports['default'];","import { __assign } from \"tslib\";\nimport { useCallback, useMemo, useRef } from 'react';\nimport { mergeOptions } from \"../../utilities/index.js\";\nimport { useInternalState } from \"./useQuery.js\";\nimport { useApolloClient } from \"./useApolloClient.js\";\nvar EAGER_METHODS = ['refetch', 'reobserve', 'fetchMore', 'updateQuery', 'startPolling', 'subscribeToMore'];\nexport function useLazyQuery(query, options) {\n var internalState = useInternalState(useApolloClient(options && options.client), query);\n var execOptionsRef = useRef();\n var merged = execOptionsRef.current ? mergeOptions(options, execOptionsRef.current) : options;\n var useQueryResult = internalState.useQuery(__assign(__assign({}, merged), {\n skip: !execOptionsRef.current\n }));\n var initialFetchPolicy = useQueryResult.observable.options.initialFetchPolicy || internalState.getDefaultFetchPolicy();\n var result = Object.assign(useQueryResult, {\n called: !!execOptionsRef.current\n });\n var eagerMethods = useMemo(function () {\n var eagerMethods = {};\n\n var _loop_1 = function _loop_1(key) {\n var method = result[key];\n\n eagerMethods[key] = function () {\n if (!execOptionsRef.current) {\n execOptionsRef.current = Object.create(null);\n internalState.forceUpdate();\n }\n\n return method.apply(this, arguments);\n };\n };\n\n for (var _i = 0, EAGER_METHODS_1 = EAGER_METHODS; _i < EAGER_METHODS_1.length; _i++) {\n var key = EAGER_METHODS_1[_i];\n\n _loop_1(key);\n }\n\n return eagerMethods;\n }, []);\n Object.assign(result, eagerMethods);\n var execute = useCallback(function (executeOptions) {\n execOptionsRef.current = executeOptions ? __assign(__assign({}, executeOptions), {\n fetchPolicy: executeOptions.fetchPolicy || initialFetchPolicy\n }) : {\n fetchPolicy: initialFetchPolicy\n };\n var promise = internalState.asyncUpdate().then(function (queryResult) {\n return Object.assign(queryResult, eagerMethods);\n });\n promise.catch(function () {});\n return promise;\n }, []);\n return [execute, result];\n}","// @noflow\nimport { useReactiveVar } from '@apollo/client'\nimport Cookies from 'js-cookie'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport ManageModal, {\n ManageProps\n} from '@/components/shared/CookieConsent/Modals/ManageModal'\nimport StrictModal, {\n StrictProps\n} from '@/components/shared/CookieConsent/Modals/StrictModal'\n\nimport { Code as CountryCode } from '@/types'\n\nimport { cookieConsentModalState } from '../CookieConsent'\n\nenum Variant {\n Strict = 'strict',\n Default = 'default'\n}\n\ntype BaseProps = ManageProps | StrictProps\n\ntype BaseModalProps = BaseProps & {\n variant: Variant\n shippingCountryCode: CountryCode\n handleModalClose: () => void\n setShowStrictModal: (arg0: boolean) => void\n}\n\nconst CookieConsentModal = ({\n variant,\n applyPreferences\n}: BaseProps): JSX.Element => {\n const countryCodeCookiesKey = 'user_country_code'\n const cookieConsentModal = useReactiveVar(cookieConsentModalState)\n const shippingCountryCode =\n (Cookies.get(countryCodeCookiesKey) as CountryCode) || CountryCode.GB\n\n const [isModalOpen, setIsModalOpen] = useState(cookieConsentModal.visible)\n const [showStrictModal, setShowStrictModal] = useState(\n variant === Variant.Strict && cookieConsentModal.visible\n )\n\n const handleModalClose = useCallback(() => {\n setIsModalOpen(false)\n\n setTimeout(() => {\n cookieConsentModalState({ visible: false })\n }, 300)\n }, [])\n\n useEffect(() => {\n setIsModalOpen(cookieConsentModal.visible)\n setShowStrictModal(variant === Variant.Strict && cookieConsentModal.visible)\n\n document.body.style.overflow = isModalOpen ? 'hidden' : 'auto'\n }, [cookieConsentModal, isModalOpen, variant])\n\n return (\n <>\n <div\n className={`cookie-modal-overlay ${isModalOpen ? 'transition-in' : ''}`}\n />\n <section className={`cookie-modal ${isModalOpen ? 'transition-in' : ''}`}>\n {showStrictModal ? (\n <StrictModal\n variant={variant}\n shippingCountryCode={shippingCountryCode}\n applyPreferences={applyPreferences}\n handleModalClose={handleModalClose}\n setShowStrictModal={setShowStrictModal}\n />\n ) : (\n <ManageModal\n variant={variant}\n shippingCountryCode={shippingCountryCode}\n applyPreferences={applyPreferences}\n handleModalClose={handleModalClose}\n setShowStrictModal={setShowStrictModal}\n />\n )}\n </section>\n </>\n )\n}\n\nexport default CookieConsentModal\n\nexport { Variant, BaseModalProps }\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n\n/* eslint-disable no-proto */\n'use strict';\n\nvar base64 = require('base64-js');\n\nvar ieee754 = require('ieee754');\n\nvar isArray = require('isarray');\n\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\n\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n/*\n * Export kMaxLength after typed array support is determined.\n */\n\nexports.kMaxLength = kMaxLength();\n\nfunction typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n };\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0; // ie10 has broken `subarray`\n } catch (e) {\n return false;\n }\n}\n\nfunction kMaxLength() {\n return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;\n}\n\nfunction createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n\n that.length = length;\n }\n\n return that;\n}\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n\nfunction Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n } // Common case.\n\n\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n\n return allocUnsafe(this, arg);\n }\n\n return from(this, arg, encodingOrOffset, length);\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n// TODO: Legacy, not needed anymore. Remove in next major version.\n\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr;\n};\n\nfunction from(that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number');\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length);\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset);\n }\n\n return fromObject(that, value);\n}\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n\n\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length);\n};\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n\n if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n });\n }\n}\n\nfunction assertSize(size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number');\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative');\n }\n}\n\nfunction alloc(that, size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(that, size);\n }\n\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n\n return createBuffer(that, size);\n}\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding);\n};\n\nfunction allocUnsafe(that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n\n return that;\n}\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size);\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size);\n};\n\nfunction fromString(that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding');\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that;\n}\n\nfunction fromArrayLike(that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n\n return that;\n}\n\nfunction fromArrayBuffer(that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds');\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds');\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n\n return that;\n}\n\nfunction fromObject(that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that;\n }\n\n obj.copy(that, 0, 0, len);\n return that;\n }\n\n if (obj) {\n if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\n\n return fromArrayLike(that, obj);\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data);\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');\n}\n\nfunction checked(length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n\n return length | 0;\n}\n\nfunction SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer.alloc(+length);\n}\n\nBuffer.isBuffer = function isBuffer(b) {\n return !!(b != null && b._isBuffer);\n};\n\nBuffer.compare = function compare(a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers');\n }\n\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n};\n\nBuffer.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true;\n\n default:\n return false;\n }\n};\n\nBuffer.concat = function concat(list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n\n var i;\n\n if (length === undefined) {\n length = 0;\n\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n\n return buffer;\n};\n\nfunction byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\n\nBuffer.byteLength = byteLength;\n\nfunction slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\n if (start > this.length) {\n return '';\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return '';\n } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\n\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return '';\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end);\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end);\n\n case 'ascii':\n return asciiSlice(this, start, end);\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end);\n\n case 'base64':\n return base64Slice(this, start, end);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n} // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\n\n\nBuffer.prototype._isBuffer = true;\n\nfunction swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16() {\n var len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n};\n\nBuffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\n\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n\n return this;\n};\n\nBuffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\n\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n\n return this;\n};\n\nBuffer.prototype.toString = function toString() {\n var length = this.length | 0;\n if (length === 0) return '';\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n};\n\nBuffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n};\n\nBuffer.prototype.inspect = function inspect() {\n var str = '';\n var max = exports.INSPECT_MAX_BYTES;\n\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n\n return '<Buffer ' + str + '>';\n};\n\nBuffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer');\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\n\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index');\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n}; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n\n byteOffset = +byteOffset; // Coerce to Number.\n\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n\n if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError('val must be string, number or Buffer');\n}\n\nfunction arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n\n var i;\n\n if (dir) {\n var foundIndex = -1;\n\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n\n if (found) return i;\n }\n }\n\n return -1;\n}\n\nBuffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n};\n\nBuffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n};\n\nfunction hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n } // must be an even number of digits\n\n\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n}\n\nfunction utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nfunction asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n}\n\nfunction latin1Write(buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length);\n}\n\nfunction base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n}\n\nfunction ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nBuffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds');\n }\n\n if (!encoding) encoding = 'utf8';\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length);\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length);\n\n case 'ascii':\n return asciiWrite(this, string, offset, length);\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length);\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer.prototype.toJSON = function toJSON() {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n};\n\nfunction base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n}\n\nfunction utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;\n\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res);\n} // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n}\n\nfunction asciiSlice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n\n return ret;\n}\n\nfunction latin1Slice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n\n return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n\n return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n}\n\nBuffer.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n var newBuf;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\nfunction checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n};\n\nBuffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return this[offset];\n return (0xff - this[offset] + 1) * -1;\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n};\n\nfunction checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nfunction objectWriteUInt16(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nfunction checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n if (offset < 0) throw new RangeError('Index out of range');\n}\n\nfunction writeFloat(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n};\n\nfunction writeDouble(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\nBuffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\n\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds');\n if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);\n }\n\n return len;\n}; // Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\n\n\nBuffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n } // Invalid ranges are not set to a default, so can range check early.\n\n\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index');\n }\n\n if (end <= start) {\n return this;\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n var i;\n\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n}; // HELPER FUNCTIONS\n// ================\n\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean(str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n\n return str;\n}\n\nfunction stringtrim(str) {\n if (str.trim) return str.trim();\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nfunction toHex(n) {\n if (n < 16) return '0' + n.toString(16);\n return n.toString(16);\n}\n\nfunction utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // is surrogate component\n\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null; // encode utf8\n\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n}\n\nfunction asciiToBytes(str) {\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n\n return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray;\n}\n\nfunction base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n}\n\nfunction blitBuffer(src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n\n return i;\n}\n\nfunction isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n}","'use strict';\n\nexports.byteLength = byteLength;\nexports.toByteArray = toByteArray;\nexports.fromByteArray = fromByteArray;\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n} // Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens(b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4');\n } // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n} // base64 is 4/3 + up to two characters of the original data\n\n\nfunction byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars\n\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = tmp >> 16 & 0xFF;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr;\n}\n\nfunction tripletToBase64(num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n}\n\nfunction encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n\n return output.join('');\n}\n\nfunction fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n }\n\n return parts.join('');\n}","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n};\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = e << mLen | m;\n eLen += mLen;\n\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n\nvar assign = createAssigner(function (object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\nmodule.exports = assign;","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n\n\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n/** Used to detect host constructors (Safari). */\n\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n/** Used for built-in method references. */\n\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n/** Used to resolve the decompiled source of functions. */\n\nvar funcToString = funcProto.toString;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/** Used to detect if a method is native. */\n\nvar reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;","var coreJsData = require('./_coreJsData');\n/** Used to detect methods masquerading as native. */\n\n\nvar maskSrcKey = function () {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? 'Symbol(src)_1.' + uid : '';\n}();\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n\n\nfunction isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\n}\n\nmodule.exports = isMasked;","var root = require('./_root');\n/** Used to detect overreaching core-js shims. */\n\n\nvar coreJsData = root['__core-js_shared__'];\nmodule.exports = coreJsData;","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;","var apply = require('./_apply');\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\n\nvar nativeMax = Math.max;\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? func.length - 1 : start, 0);\n return function () {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n\n index = -1;\n var otherArgs = Array(start + 1);\n\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0:\n return func.call(thisArg);\n\n case 1:\n return func.call(thisArg, args[0]);\n\n case 2:\n return func.call(thisArg, args[0], args[1]);\n\n case 3:\n return func.call(thisArg, args[0], args[1], args[2]);\n }\n\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n\n\nvar setToString = shortOut(baseSetToString);\nmodule.exports = setToString;","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n\n\nvar baseSetToString = !defineProperty ? identity : function (func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\nmodule.exports = baseSetToString;","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function () {\n return value;\n };\n}\n\nmodule.exports = constant;","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeNow = Date.now;\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n return function () {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n lastCalled = stamp;\n\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar argsTag = '[object Arguments]';\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n/** Used to identify `toStringTag` values of typed arrays. */\n\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;","var overArg = require('./_overArg');\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\n\nvar nativeKeys = overArg(Object.keys, Object);\nmodule.exports = nativeKeys;","var baseClone = require('./_baseClone');\n/** Used to compose bitmasks for cloning. */\n\n\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;","var assocIndexOf = require('./_assocIndexOf');\n/** Used for built-in method references. */\n\n\nvar arrayProto = Array.prototype;\n/** Built-in value references. */\n\nvar splice = arrayProto.splice;\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n\n var lastIndex = data.length - 1;\n\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;","var assocIndexOf = require('./_assocIndexOf');\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n\n\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;","var assocIndexOf = require('./_assocIndexOf');\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n\n\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;","var assocIndexOf = require('./_assocIndexOf');\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n\n\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n\n return this;\n}\n\nmodule.exports = listCacheSet;","var ListCache = require('./_ListCache');\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n\n\nfunction stackClear() {\n this.__data__ = new ListCache();\n this.size = 0;\n}\n\nmodule.exports = stackClear;","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n/** Used as the size to enable large array optimizations. */\n\n\nvar LARGE_ARRAY_SIZE = 200;\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n\nfunction stackSet(key, value) {\n var data = this.__data__;\n\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n\n if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n\n data = this.__data__ = new MapCache(pairs);\n }\n\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n\n\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash(),\n 'map': new (Map || ListCache)(),\n 'string': new Hash()\n };\n}\n\nmodule.exports = mapCacheClear;","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n\n\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n this.clear();\n\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n} // Add methods to `Hash`.\n\n\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\nmodule.exports = Hash;","var nativeCreate = require('./_nativeCreate');\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n\n\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;","var nativeCreate = require('./_nativeCreate');\n/** Used to stand-in for `undefined` hash values. */\n\n\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n/** Used for built-in method references. */\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n\nfunction hashGet(key) {\n var data = this.__data__;\n\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var nativeCreate = require('./_nativeCreate');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;","var nativeCreate = require('./_nativeCreate');\n/** Used to stand-in for `undefined` hash values. */\n\n\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;","var getMapData = require('./_getMapData');\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n\n\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\n}\n\nmodule.exports = isKeyable;","var getMapData = require('./_getMapData');\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n\n\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;","var getMapData = require('./_getMapData');\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n\n\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;","var getMapData = require('./_getMapData');\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n\n\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n\n return array;\n}\n\nmodule.exports = arrayEach;","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n\n\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n\n\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n\n return result;\n}\n\nmodule.exports = baseKeysIn;","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n\n return result;\n}\n\nmodule.exports = nativeKeysIn;","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n\n\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n\n\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n\n\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;","var getNative = require('./_getNative'),\n root = require('./_root');\n/* Built-in method references that are verified to be native. */\n\n\nvar DataView = getNative(root, 'DataView');\nmodule.exports = DataView;","var getNative = require('./_getNative'),\n root = require('./_root');\n/* Built-in method references that are verified to be native. */\n\n\nvar Promise = getNative(root, 'Promise');\nmodule.exports = Promise;","var getNative = require('./_getNative'),\n root = require('./_root');\n/* Built-in method references that are verified to be native. */\n\n\nvar WeakMap = getNative(root, 'WeakMap');\nmodule.exports = WeakMap;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length); // Add properties assigned by `RegExp#exec`.\n\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n\n return result;\n}\n\nmodule.exports = initCloneArray;","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n/** `Object#toString` result references. */\n\n\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag:\n case float64Tag:\n case int8Tag:\n case int16Tag:\n case int32Tag:\n case uint8Tag:\n case uint8ClampedTag:\n case uint16Tag:\n case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor();\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor();\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;","// @noflow\nimport { ReactiveVar, makeVar } from '@apollo/client'\n\nimport type {\n ClientInitQuery_user_dogs as Dog,\n ClientInitQuery_user_shippingCountry as ShippingCountry,\n ClientInitQuery_user_subscription as Subscription,\n ClientInitQuery_user as User\n} from '@/components/pages/App/queries/__generated__/ClientInitQuery'\n\nimport { SubscriptionStatus } from '@/types/index'\n\ntype DynamicDefaultTrackEventProperties = {\n subscription_id?: string\n subscription_status?: SubscriptionStatus\n deliveries_received?: number\n has_puppy?: boolean\n has_fussy_eater?: boolean\n}\n\ntype DogInfo = {\n dogs: Array<Dog>\n pronoun: 'male' | 'female' | 'plural'\n possessive: Record<string, string>\n has_puppy: boolean\n has_fussy_eater: boolean\n}\n\nconst dynamicDefaultTrackEventPropertiesVar: ReactiveVar<DynamicDefaultTrackEventProperties | null> =\n makeVar<DynamicDefaultTrackEventProperties | null>(null)\n\nconst userDataVar: ReactiveVar<User | null> = makeVar<User | null>(null)\n\nconst dogsDataVar: ReactiveVar<DogInfo | null> = makeVar<DogInfo | null>(null)\n\nconst subscriptionDataVar: ReactiveVar<Subscription | null> =\n makeVar<Subscription | null>(null)\n\nconst shippingCountryDataVar: ReactiveVar<ShippingCountry | null> =\n makeVar<ShippingCountry | null>(null)\n\nconst featureFlagsDataVar: ReactiveVar<Record<string, string | null> | null> =\n makeVar<Record<string, string | null> | null>(null)\n\nconst hasNotificationsVar: ReactiveVar<boolean> = makeVar<boolean>(false)\n\nconst settingsVar: ReactiveVar<Record<string, boolean>> = makeVar<\n Record<string, boolean>\n>({})\n\nexport type { DynamicDefaultTrackEventProperties, DogInfo, ShippingCountry }\n\nexport {\n dynamicDefaultTrackEventPropertiesVar,\n dogsDataVar,\n userDataVar,\n subscriptionDataVar,\n shippingCountryDataVar,\n featureFlagsDataVar,\n hasNotificationsVar,\n settingsVar\n}\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n\n\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;","var Symbol = require('./_Symbol');\n/** Used to convert symbols to primitives and strings. */\n\n\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;","var isObject = require('./isObject');\n/** Built-in value references. */\n\n\nvar objectCreate = Object.create;\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n\nvar baseCreate = function () {\n function object() {}\n\n return function (proto) {\n if (!isObject(proto)) {\n return {};\n }\n\n if (objectCreate) {\n return objectCreate(proto);\n }\n\n object.prototype = proto;\n var result = new object();\n object.prototype = undefined;\n return result;\n };\n}();\n\nmodule.exports = baseCreate;","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n/* Node.js helper references. */\n\n\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\nmodule.exports = isMap;","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar mapTag = '[object Map]';\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n/* Node.js helper references. */\n\n\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\nmodule.exports = isSet;","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar setTag = '[object Set]';\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n\n\nvar difference = baseRest(function (array, values) {\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) : [];\n});\nmodule.exports = difference;","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n/** Used as the size to enable large array optimizations. */\n\n\nvar LARGE_ARRAY_SIZE = 200;\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n } else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n\n outer: while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n value = comparator || value !== 0 ? value : 0;\n\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n\n result.push(value);\n } else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n\n return result;\n}\n\nmodule.exports = baseDifference;","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n\n return this;\n}\n\nmodule.exports = setCacheAdd;","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while (fromRight ? index-- : ++index < length) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n\n return -1;\n}\n\nmodule.exports = baseFindIndex;","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n\n return -1;\n}\n\nmodule.exports = strictIndexOf;","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n/** Built-in value references. */\n\n\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;","var baseFunctions = require('./_baseFunctions'),\n keys = require('./keys');\n/**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n\n\nfunction functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n}\n\nmodule.exports = functions;","var arrayFilter = require('./_arrayFilter'),\n isFunction = require('./isFunction');\n/**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n\n\nfunction baseFunctions(object, props) {\n return arrayFilter(props, function (key) {\n return isFunction(object[key]);\n });\n}\n\nmodule.exports = baseFunctions;","var baseIndexOf = require('./_baseIndexOf'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n toInteger = require('./toInteger'),\n values = require('./values');\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\n\nvar nativeMax = Math.max;\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0;\n var length = collection.length;\n\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n\n return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1;\n}\n\nmodule.exports = includes;","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n\n\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","var arrayMap = require('./_arrayMap');\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n\n\nfunction baseValues(object, props) {\n return arrayMap(props, function (key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;","var isObjectLike = require('./isObjectLike'),\n isPlainObject = require('./isPlainObject');\n/**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('<body>');\n * // => false\n */\n\n\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nmodule.exports = isElement;","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n\n\nvar merge = createAssigner(function (object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\nmodule.exports = merge;","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n\n\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n\n baseFor(source, function (srcValue, key) {\n stack || (stack = new Stack());\n\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n } else {\n var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + '', object, source, stack) : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function (object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n\n return object;\n };\n}\n\nmodule.exports = createBaseFor;","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n\n\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n\n var newValue = customizer ? customizer(objValue, srcValue, key + '', object, source, stack) : undefined;\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n newValue = srcValue;\n\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n } else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n } else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n } else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n } else {\n newValue = [];\n }\n } else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n } else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n } else {\n isCommon = false;\n }\n }\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n\n\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;","var baseToString = require('./_baseToString'),\n baseTrim = require('./_baseTrim'),\n castSlice = require('./_castSlice'),\n charsEndIndex = require('./_charsEndIndex'),\n charsStartIndex = require('./_charsStartIndex'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n/**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\n\n\nfunction trim(string, chars, guard) {\n string = toString(string);\n\n if (string && (guard || chars === undefined)) {\n return baseTrim(string);\n }\n\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n return castSlice(strSymbols, start, end).join('');\n}\n\nmodule.exports = trim;","var baseIndexOf = require('./_baseIndexOf');\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n\n\nfunction charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n\n return index;\n}\n\nmodule.exports = charsEndIndex;","var baseIndexOf = require('./_baseIndexOf');\n/**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n\n\nfunction charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n\n return index;\n}\n\nmodule.exports = charsStartIndex;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","// @noflow\nimport Cookies from 'js-cookie'\nimport React, { useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport type { BreedSelectorQuery_breeds as Breed } from '@/components/elements/molecules/BreedAutocomplete/queries/__generated__/BreedSelectorQuery'\nimport BreedAutocomplete from '@/components/shared/elements/BreedSelector/components/BreedAutocomplete/BreedAutocomplete'\n\nimport { BreedSelectorVariant } from '../../BreedSelector/BreedSelector'\n\ntype Props = {\n breedSelectRef?: React.RefObject<HTMLDivElement>\n onFocusCallback?: () => void\n}\n\nconst namespace = 'homepage'\nconst copyContext = 'rough_cost_calculator'\nconst baseClass = 'rough-cost-calculator__cost-calculator'\n\nconst BreedSelect = ({\n breedSelectRef,\n onFocusCallback\n}: Props): JSX.Element => {\n const { t } = useTranslation(namespace)\n\n const onBreedSelectionCallback = useCallback((breed: Breed) => {\n // Set Breed ID cookie to be accessed by the Wizard to allow\n // for pre-populated breed selection\n Cookies.set(\n 'breedSelectorBreedId',\n JSON.stringify({\n id: parseInt(breed.id),\n key: breed.key,\n name: breed.name\n })\n )\n }, [])\n\n return (\n <div className={`${baseClass}__breed-row`}>\n <p className={`text-regular-18 no-scale breed-label`}>\n {t(`${copyContext}.breed_label`)}\n </p>\n <div className={`${baseClass}__breed-autocomplete`} ref={breedSelectRef}>\n <BreedAutocomplete\n loadingPlaceholder={t(`${copyContext}.breed_loading`)}\n placeholder={t(`${copyContext}.breed_placeholder`)}\n events={{\n onBreedSelection: onBreedSelectionCallback,\n onListOpen: () => null,\n onFocus: onFocusCallback || (() => null),\n onInputEmpty: () => null\n }}\n variant={BreedSelectorVariant.Generic}\n />\n </div>\n </div>\n )\n}\n\nexport default BreedSelect\n","// @noflow\nimport type { AgeCategory } from '@/static_content/EstimatedDailyPlanPrices'\n\nconst ageToAgeCategory = (dogAge: number): AgeCategory => {\n switch (dogAge) {\n case 0: {\n return 'puppy'\n }\n case 12: {\n return 'senior'\n }\n default: {\n return 'adult'\n }\n }\n}\n\nexport { ageToAgeCategory }\n","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import \"../globals/index.js\";\nimport { isNonNullObject } from \"./objects.js\";\n\nfunction deepFreeze(value) {\n var workSet = new Set([value]);\n workSet.forEach(function (obj) {\n if (isNonNullObject(obj) && shallowFreeze(obj) === obj) {\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n if (isNonNullObject(obj[name])) workSet.add(obj[name]);\n });\n }\n });\n return value;\n}\n\nfunction shallowFreeze(obj) {\n if (__DEV__ && !Object.isFrozen(obj)) {\n try {\n Object.freeze(obj);\n } catch (e) {\n if (e instanceof TypeError) return null;\n throw e;\n }\n }\n\n return obj;\n}\n\nexport function maybeDeepFreeze(obj) {\n if (__DEV__) {\n deepFreeze(obj);\n }\n\n return obj;\n}"],"sourceRoot":""}